Laboratorio 6

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 10

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS 2020-N

FACULTAD DE INGENIERIA ELECTRONICA Y ELECTRICA


ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA
CONTROL 1
LABORATORIO # 06
INTRODUCCIÓN A MATLAB
Este apunte es una introducción elemental a MATLAB, destinado a conocer y practicar algunas
de las operaciones básicas con funciones de transferencia. Los comandos que utilizaremos son
los que figuran en la Tabla 1. Para mayor información sobre un comando en particular puede
ejecutarse help topic o simplemente help comando, desde la ventana de comando de MATLAB.

Una función transferencia puede describirse en MATLAB utilizando dos vectores filas: uno para
los coeficientes del numerador y otro para los coeficientes del denominador. A menudo se
requiere para analizar o diseñar un sistema conocer la ubicación de sus polos y ceros; dicha
información está contenida en la función transferencia del sistema. Cuando la función de
transferencia esta especificada como razón de polinomios, podemos conocer sus polos, ceros y
ganancia, o viceversa. Los comandos que nos permiten esto son: tf2zp, que de un cociente de
polinomios nos devuelve los ceros, polos y una ganancia, y zp2tf, que de conocer los polos, ceros
y la ganancia de un sistema nos da el numerador y denominador de su función de transferencia.

Ejemplo 1. Supongamos la función transferencia

si sacamos el 5 factor común del numerador y factorizamos el denominador utilizando


sus raíces, nos queda de la forma

MSC. ING. JUAN APESTEGUIA INFANTES [email protected]


UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS 2020-N
FACULTAD DE INGENIERIA ELECTRONICA Y ELECTRICA
ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA
Para llevar a cabo lo mismo con MATLAB, debemos ingresar los polinomios numerador
y denominador, en forma de vectores de la siguiente manera:
num=[0 5 20];
den=[1 4 20];

Observemos que para definir el vector lo hacemos colocando entre corchetes los
coeficientes de cada termino, ordenados de mayor orden al menor. Para separar las
columnas del vector lo hacemos con un espacio, o también podríamos utilizar coma. El
punto y coma final es para que el resultado de lo ejecutado por MATLAB no salga por
pantalla.
Si ahora ingresamos: [z,p,k]=tf2zp(num,den)
Obtenemos:

Dado que toda función transferencia dada por un cociente de polinomios se puede
escribir de la forma:

Podemos armar fácilmente nuestra función de transferencia haciendo

Si queremos realizar el procedimiento inverso, necesitamos ingresar las variables k, z y p. Con


la instrucción:

[num,den]=zp2tf(z,p,k)

obtenemos el numerador y denominador de la función transferencia:

num=[0 5 20]

den=[1 4 20]

El hecho de tener el numerador y el denominador de la función de transferencia en

MSC. ING. JUAN APESTEGUIA INFANTES [email protected]


UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS 2020-N
FACULTAD DE INGENIERIA ELECTRONICA Y ELECTRICA
ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA
dos variables, no significa que MATLAB la identifique como tal. Para ello se utiliza el
comando tf, que describe en una sola variable la transferencia dada por su numerador
y al denominador. Lo utilizamos de la siguiente forma:
G=tf(num,den)

Si queremos que MATLAB arme la funcion transferencia como cociente de productos


de los ceros y los polos, para ello utilizamos zpk, de la siguiente forma:
G=zpk(z,p,k)

Raíces de un polinomio
En el Ejemplo anterior vimos que el polinomio denominador de la función transferencia
venía dado por: s 2 + 4s + 20, y pudimos hallar sus raíces dado que se trata de una
ecuación de segundo orden.
En polinomios de orden superior, la tarea de encontrar sus raíces no siempre es tan fácil.
Con la función de MATLAB roots podemos calcular las raíces de cualquier polinomio.
Para ejecutar dicha función tenemos que ingresar el polinomio, como vector,
recordando que los polinomios se ingresan en el primer componente el termino de
mayor orden y luego en forma descendente separados por coma o un espacio.
Ejemplo. Consideremos el siguiente polinomio:

Ingresamos el polinomio p=[1 4 4 1 20]

y luego: r=roots(p)

En lugar de hacer la operación en dos pasos, podemos hacerlo solo en uno; si tipeamos

r=roots([1 4 4 1 20])

obtenemos el mismo resultado Las cuatro raíces del polinomio anterior que surgen de MATLAB

MSC. ING. JUAN APESTEGUIA INFANTES [email protected]


UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS 2020-N
FACULTAD DE INGENIERIA ELECTRONICA Y ELECTRICA
ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA

Si el caso es al revés, es decir, tengo las raíces y quiero conocer el polinomio, el


comando poly es el que se utilizaremos. Siguiendo con el mismo ejemplo, supongamos
que lo que tenemos son las raíces:
p1 = -2.6445 + 1.2595i;
p2 = -2.6445 - 1.2595i;
p3 = 0.6545 + 1.3742i;
p4 = 0.6545 - 1.3742i;
Entonces el polinomio al que le corresponden esas raíces es:
P=poly([p1,p2,p3,p4])

Notemos que el polinomio P que obtuvimos es Mónico; si quisiéramos cualquier otro,


deberíamos multiplicar a P por el coeficiente principal. Otra cosa a tener en cuenta es
que siempre que pongamos una raíz compleja debemos poner su conjugada.

Función de Transferencia Lazo Cerrado

En MATLAB la función transferencia a lazo cerrado se puede calcular de dos formas:


• Utilizando SIMULINK

MSC. ING. JUAN APESTEGUIA INFANTES [email protected]


UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS 2020-N
FACULTAD DE INGENIERIA ELECTRONICA Y ELECTRICA
ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA
• Utilizando las funciones de MATLAB series, parallel, feedback y cloop.
Para calcular la función transferencia a lazo cerrado G(s) sigamos los siguientes pasos:
1. Definimos los numeradores y denominadores de las funciones transferencia de cada
bloque de la siguiente forma:

2. Calculamos la función transferencia de V(s) a Y(s):

[numvc,denvc]=feedback(numg2,deng2,numh2,denh2,-1);

3. Ahora calculamos la funcion transferencia de E(s) a Y(s) con:

[numec,denec]=series(numg1,deng1,numvc,denvc);

4. Por ultimo calculamos el lazo cerrado:

[num, den]=cloop(numec,denec,-1)

Lo que obtuvimos son los vectores numerador y denominador de la función transferencia por
separado. Recordemos que para ingresarla como función de transferencia a M ATLAB,
debemos utilizar tf.

Respuesta al impulso
Ahora que ya sabemos cómo pasar de la respuesta temporal a Laplace, verifiquemos
que la respuesta al impulso de la transformada de Laplace coincide con la respuesta
temporal. Para ello utilizaremos el comando de MATLAB impulse.
Ejemplo. Supongamos que tenemos una función transferencia de la siguiente forma:

Ingresemos los vectores numerador y denominador y luego ejecutemos el comando:

num=[1];
den=[1 3 2];
impulse(num,den);

Veremos que este comando devuelve el grafico de la Figura Como podemos ver, solo nos
muestra los primeros 6 segundos de la respuesta.

MSC. ING. JUAN APESTEGUIA INFANTES [email protected]


UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS 2020-N
FACULTAD DE INGENIERIA ELECTRONICA Y ELECTRICA
ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA

Si quisiéramos que nos mostrara 12 segundos, debemos definir un vector de tiempo. Para ello
ingresemos, por ejemplo,

t=0:0.1:12;

El vector t tendrá como primer elemento el 0 y como ultimo al 12. Cada elemento estar a una
distancia de 0.1 de su consecutivo. Si ahora introducimos este parámetro en el comando
impulse(num,den,t) el grafico mostrara los primeros 12 segundos de la respuesta al impulso.

Respuesta al Escalón

MSC. ING. JUAN APESTEGUIA INFANTES [email protected]


UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS 2020-N
FACULTAD DE INGENIERIA ELECTRONICA Y ELECTRICA
ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA
De la misma forma que en la sección anterior, podríamos querer graficar la respuesta
al escalón unitario. M ATLAB posee un comando, llamado step, para calcular la salida
temporal cuando la entrada se trata de un escalón unitario. Lo único que necesita este
comando es el numerador y el denominador de la función transferencia.
step(num,den);

y=step(num,den);

Si utilizamos el comando sin asignarle la salida a ninguna variable, MATLAB abre una
ventana grafica mostrando el grafico de la salida a la excitación escalón unitario, de la
misma forma que antes. Sin embargo, al igual que vimos en el comando impulse, cuando
este es asignado a una variable, los valores obtenidos se guardan en el vector y.
Ejemplo . Calculemos la respuesta al escalón unitario de la función transferencia:

num=[4];
den=[1 0.8 4];

Si ingresamos el comando step(num,den), veremos un gráfico similar al que podemos observar


en la Figura.

Si ahora queremos la respuesta a una entrada rampa unitaria, MATLAB no posee ningún
comando que lo resuelva. Por lo que veremos como con el comando step podemos obtener una

MSC. ING. JUAN APESTEGUIA INFANTES [email protected]


UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS 2020-N
FACULTAD DE INGENIERIA ELECTRONICA Y ELECTRICA
ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA
rampa. Si seguimos con el ejemplo anterior y excitamos al sistema con r(t) = t, es decir que R(s)
= 1/ s2 , tenemos lo siguiente:

Por lo que utilizando como denominador de la función transferencia al polinomio


s3 +0.8s2 + 4s
es decir den=[1 0.8 4 0] y calculando la respuesta al escalón unitario con step(num,den)
obtenemos la respuesta a la rampa unitaria que se muestra en la Figura.

Cuestionario:
1.- Indique el resultado luego de ejecutar los siguientes programas

MSC. ING. JUAN APESTEGUIA INFANTES [email protected]


UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS 2020-N
FACULTAD DE INGENIERIA ELECTRONICA Y ELECTRICA
ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA

2.- Que son las funciones de transferencia de sistemas lineales


3.- De 4 ejemplos de funciones de transferencia aplicados a circuitos eléctricos RLC

MSC. ING. JUAN APESTEGUIA INFANTES [email protected]


UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS 2020-N
FACULTAD DE INGENIERIA ELECTRONICA Y ELECTRICA
ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA

OBSERVACIONES
El grupo deberá enviar la Guía de Laboratorio realizada, la quincena siguiente por
correo electrónico junto con las simulaciones en Matlab.
Este informe se presenta en forma grupal (por equipo de laboratorio) y deberá
contener los siguientes puntos:
a) Caratula
b) Introducción
c) Desarrollo de Problemas
d) Cuestionario
e) Los archivos generados por Matlab
BIBLIOGRAFIA:
Sistemas de Control - OGATA
Introducción Rapida a Matlab y Simulink

MSC. ING. JUAN APESTEGUIA INFANTES [email protected]

También podría gustarte