Introduccion ´ a M ATLAB y S IMULINK para Control

Virginia Mazzone

Regulador centr´ ıfugo de Watt

Control Autom´ atico 1 http://iaci.unq.edu.ar/caut1 Automatizacion ´ y Control Industrial Universidad Nacional de Quilmes Marzo 2002

´ Indice General

´ a M ATLAB y S IMULINK - 1 Introduccion

´ Indice General
1 Introduccion ´ a M ATLAB ´ de una funcion ´ transferencia 1.1 Conversion 1.2 Ra´ ıces de un polinomio . . . . . . . . . . . 1.3 Desarrollo en fracciones simples . . . . . ´ transferencia a lazo cerrado . . . 1.4 Funcion 1.5 Respuesta al impulso . . . . . . . . . . . . ´ 1.6 Respuesta al escalon . . . . . . . . . . . . 1.7 Gr´ aficos . . . . . . . . . . . . . . . . . . . . Introduccion ´ a S IMULINK ´ . . . . . . . . . . . 2.1 Acceso y descripcion ´ transferencia a lazo cerrado . . 2.2 Funcion ´ . . . . . . . . . . . 2.3 Respuesta al Escalon ´ de par´ 2.4 Utilizacion ametros ya definidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 4 4 6 7 8 9 14 14 16 17 19

2

1

´ a M ATLAB Introduccion

´ elemental a M ATLAB, destinado a conocer y practicar alEste apunte es una introduccion gunas de las operaciones b´ asicas con funciones de transferencia. Los comandos que uti´ sobre un comando lizaremos son los que figuran en la Tabla 1. Para mayor informacion en particular puede ejecutarse help topic o simplemente help ’comando’, desde la ventana de comando de M ATLAB.

1.1

´ de una funcion ´ transferencia Conversion

´ transferencia puede describirse en M ATLAB utilizando dos vectores filas: uno Una funcion para los coeficientes del numerador y otro para los coeficientes del denominador. A menudo ˜ un sistema conocer la ubicacion ´ de sus polos y ceros; se requiere para analizar o disenar ´ est´ ´ transferencia del sistema. Cuando la fundicha informacion a contenida en la funcion ´ de transferencia est´ ´ de polinomios, podemos conocer sus cion a especificada como razon ´ sto son: tf2zp, que polos, ceros y ganancia, o viceversa. Los comandos que nos permiten e 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 transferencia. de su funcion ´ transferencia Ejemplo 1. Supongamos la funcion G (s) = s2 5s + 20 , + 4s + 20

´ del numerador y factorizamos el denominador utilizando sus si sacamos el 5 factor comun ra´ ıces, nos queda de la forma G (s) = 5(s + 4) . (s + 2 − 4 j)(s + 2 + 4 j)

Seno. Coseno. Conversion ´ de modelo en polos y ceros a funcion ´ de transferencia. Agrega nombre del eje-X. Conversion ´ de modelo en funcion ´ de transferencia a polos y ceros. ´ unitario.´ Indice General ´ a M ATLAB y S IMULINK . Conversion ´ de modelo en polos y ceros a espacio de estados. ´ Coseno Hiperbolico. Conversion ´ de modelo en espacio de estados a polos y ceros. Crea un modelo en funcion Crea un modelo de cero-polo-ganancia. Conversion Tabla 1: Comandos que utilizaremos . ´ Crea multiples gr´ aficos en la misma figura. Respuesta al Impulso. Mantiene la gr´ afica anterior. Imprime el gr´ afico o lo guarda en un archivo Crea figuras (ventana para gr´ aficos). Agrega texto al gr´ afico. Agrega t´ ıtulo del gr´ afico. Elimina la figura actual. Respuesta al escalon ´ de transferencia. Crea gr´ aficas.2 Introduccion Comando exp sin cos sinh cosh clf plot subplot hold title xlabel ylabel text print figure impulse step tf zpk ss2tf tf2zp ss2zp zp2tf tf2ss zp2ss ´ Breve explicacion Exponencial. Agrega nombre del eje-Y. ´ Seno Hiperbolico. ´ de modelo en espacio de estados a funcion ´ de transferencia. Conversion ´ de modelo en funcion ´ de transferencia a espacio de estados.

haciendo podemos armar f´ acilmente nuestra funcion G (s) = 5(s + 4) . Lo utilizamos de la siguiente forma: G=tf(num.k]=tf2zp(num. o tambi´ en podr´ ıamos utilizar coma. no significa que M ATLAB la identifique como tal. Para separar las columnas del vector lo hacemos con un espacio. (s + 2 + 4 j)(s + 2 − 4 j) Si queremos realizar el procedimiento inverso. ∏i =1 ( s − pi ) ´ transferencia. Para ello se utiliza el comando tf. para ello utilizamos zpk.p. . ordenados de mayor orden al menor. den=[1 4 20].k).3 Introduccion Para llevar a cabo lo mismo con M ATLAB. debemos ingresar los polinomios numerador y denominador. z y p.p. en forma de vectores de la siguiente manera: num=[5 20]. El punto y coma final es para que el resultado de lo ejecutado por M ATLAB no salga por pantalla. necesitamos ingresar las variables k. que describe en una sola variable la transferencia dada por su numerador y al denominador. Con la instrucci´ on: [num. Si ahora ingresamos: [z. de la siguiente forma: G=zpk(z. ´ transferencia: obtenemos el numerador y denominador de la funcion num=[5 20] den=[1 4 20] ´ de transferencia en El hecho de tener el numerador y el denominador de la funcion dos variables.den) Obtenemos: z=-4 p=[-2+4j -2-4j] k=5 ´ transferencia dada por un cociente de polinomios se puede escribir Dado que toda funcion de la forma ∏im =1 ( s − zi ) G (s) = k n con m ≤ n. ´ transferencia como cociente de productos de Si queremos que M ATLAB arme la funcion los ceros y los polos.k). Observemos que para definir el vector lo hacemos colocando entre corchetes los coeficientes de cada t´ ermino.´ Indice General ´ a M ATLAB y S IMULINK .p.den]=zp2tf(z.den).

y pudimos hallar sus ra´ ıces dado que se trata de una ecuacion segundo orden.6545 ± 1.p2. podemos hacerlo solo en uno.2 = −2. Supongamos que tenemos la siguiente funcion G (s) = 16s + 16 (s + 2)(s + 4) y que R(s) = 1 s . 1. dado que si lo expresamos en fracciones simples podemos utilizar una tabla de transformadas de Laplace. la tarea de encontrar sus ra´ ıces no siempre es tan f´ acil.6545 ± 1. supongamos que lo que tenemos son las ra´ ıces p1.3742 j.3742 j.p3. por lo general disponemos de su funcion Y (s) ferencia a lazo cerrado G (s).2595 j y 0. tengo las ra´ ıces y quiero conocer el polinomio. el comando poly es el que se utilizaremos. Si el caso es al rev´ es. ´ en dos pasos. Entonces el polinomio al que le corresponden esas ra´ ıces es: P=poly([p1.4 Introduccion 1.6445 ± 1. Con lo que podemos escribir la salida en ´ de la transferencia y la entrada: Y (s) = G (s) × R(s). Otra cosa a tener en cuenta es que siempre que pongamos una ra´ ız compleja debemos poner su conjugada. Como sabemos. Consideremos el siguiente polinomio: P = s4 + 4s3 + 4s2 + s + 20 Ingresamos el polinomio p=[1 4 4 1 20] y luego: r=roots(p). debemos calcular la transformada inversa de Laplace. es m´ as sencillo de antitransformar cuando se trata de un cociente de polinomios. ´ tenemos que ingresar el polinomio.p4]). como vector. ´ transferencia: Ejemplo 3. En polinomios de orden superior. si tipeamos En lugar de hacer la operacion r=roots([1 4 4 1 20]) obtenemos el mismo resultado Las cuatro ra´ ıces del polinomio anterior que surgen de M ATLAB son: −2. recordando Para ejecutar dicha funcion que los polinomios se ingresan en la primer componente el t´ ermino de mayor orden y luego en forma descendente separados por coma o un espacio. deber´ ıamos multiplicar a P por el coeficiente principal.4 = 0. si quisi´ eramos cualquier otro.3 Desarrollo en fracciones simples ´ transCuando analizamos un sistema de control. es decir una senal g(t) = L−1 {Y (s)} = L−1 { G (s) × R(s)}. ´ de M ATLAB roots podemos calcular las ra´ Con la funcion ıces de cualquier polinomio.2 Ra´ ıces de un polinomio ´ transferencia ven´ En el Ejemplo 1 vimos que el polinomio denominador de la funcion ıa 2 ´ de dado por: s + 4s + 20. Ejemplo 2.6445 ± 1.´ Indice General ´ a M ATLAB y S IMULINK .2595 j y p3. es decir. Siguiendo con el mismo ejemplo. funcion Si dese´ aramos conocer la respuesta temporal g(t) del sistema cuando lo excitamos con ˜ de entrada r(t). Notemos que el polinomio P que obtuvimos es m´ onico. donde G (s) = R(s) .

den). Ingresemos nuevamente los como se simplifican utilizando la funcion polinomios numerador y denominador de la misma forma como lo venimos haciendo hasta ahora. Supongamos que queremos hallar f (t) siendo: F (s) = 2s3 + 5s2 + 3s + 6 s3 + 6s2 + 11s + 6 ⇒ f ( t ) = L−1 { F ( s ) } . Veamos ´ M ATLAB residue. resulta que Res{ p} = lim(s − p) F (s) s→ p donde p es el polo para el cual se est´ a calculado el residuo. Veamos como ser´ ıa en este ejemplo: 16s + 16 16(0) + 16 = =2 s→0 s(s + 2)(s + 4) (0 + 2)(0 + 4) 16s + 16 16(−2) + 16 B = lim (s + 2) = =4 s→−2 s(s + 2)(s + 4) (−2)(−2 + 4) 16s + 16 16(−4) + 16 C = lim (s + 4) = = −6 s→−4 s(s + 2)(s + 4) (−4)(−4 + 2) A = lim(s) Con estos residuos. estos c´ alculos pueden tornarse muy complicados de realizar ’a mano’. es decir.´ Indice General ´ a M ATLAB y S IMULINK . queda determinada la salida como: c(t) = 2 + 4e−2t − 6e−4t En general. ´ nos devuelve dos par´ Esta funcion ametros vectoriales: en la variable res aparecen los residuos correspondientes a los polos que figuran en la variable p. dado que en este ejemplo los polos son de primer orden. es decir que el grado del numerador es igual Si la funcion ˜ al del denominador. Ingresemos ahora la sentencia: [res.p]=residue(num. B y C lo hacemos mediante la formula de residuos. podemos anadir una par´ ametro m´ as al argumento del lado izquierdo. Veamos como ser´ ıa esto mediante otro ejemplo: Ejemplo 4. el primer residuo corresponde al primer polo y as´ ı sucesivamente. ´ transferencia resulta ser propia. que lo podemos llamar k. el m´ etodo de desarrollo en fracciones simples nos permite escribir a G (s) × R(s) de la siguiente manera: 16s + 16 A B C = + + s(s + 2)(s + 4) s s+2 s+4 Ahora podemos calcular c(t) se la siguiente forma: c ( t ) = L−1 B C A + + s s+2 s+4 A B = L−1 + L−1 + L−1 s s+2 = A + Be−2t + Ce−4t C s+4 ´ Para calcular los valores de A.5 Introduccion Como las ra´ ıces del denominador sor reales y distintas.

´ transferencia a lazo cerrado G (s) sigamos los siguientes pasos: Para calcular la funcion 1.G2 (s) − 6 −6 H2 (s)  H1 (s)  Figura 1: Diagrama de bloques flujo y aplicando Mason.4 Funcion Ejemplo 5. obtenemos: G (s) = s3 40s + 800 + 22s2 + 180s + 800 ´ transferencia a lazo cerrado se puede calcular de dos formas: En M ATLAB la funcion • Utilizando S IMULINK (lo veremos m´ as adelante).p. y pretendemos hallar la funcion G2 (s) = s(100 s+2) lazo cerrado G (s) = Y (s) . ´ desarrollada en fracciones simy si armamos.den]=residue(res. . R(s) ´ de bloques. Definimos los numeradores y denominadores de las funciones transferencia de cada bloque de la siguiente forma: numg1=0.4. ´ transferencia a .k). Esto redeber´ ıamos sacar comun sulta inmediato con el comando de M ATLAB: [num. • Utilizando las funciones de M ATLAB series.l .den). la funcion ples.6 Introduccion Si aplicamos el comando: [res.4. numg2=100. feedback y cloop. el t´ ermino independiente es el que aparece el la variable k. de donde ahora calcular la f (t) resulta muy sencillo. numh2=[1 0]. denh2=[1 20]. s+3 1 ´ escrita en fracSi ahora nuestro inter´ es es el inverso. deng1=1. H2 (s) = s+s20 y H1 (s) = 1. ´ transferencia a lazo cerrado 1. parallel.p. anal´ ciones simples y quisi´ eramos obtener la funcion ıticamente ´ denominador y hacer todas las cuentas correspondientes. como lo hicimos anteriormente.G1 (s) . Supongamos que disponemos del sistema de la Figura 1 donde G1 (s) = 0. es decir que tenemos una funcion ´ como cociente de polinomios. deng2=[1 2 0]. Por lo tanto F (s) = −6 −4 3 + s+2 + s+ + 2.k]=residue(num. o resolviendo el diagrama de Si aplicamos reduccion Y (s)- R(s) l E(s) V (s) .´ Indice General ´ a M ATLAB y S IMULINK .

verifiquemos que la respuesta al impulso de la transformada de Laplace coincide con la respuesta temporal.numh2. Podr´ ıamos tambi´ en graficar este vector con el ´ 1. Para ello ingresemos. Para ello utilizaremos el comando de M ATLAB impulse.deng2.deng1.3.den). debemos definir un vector de tiempo. Ahora calculamos la funcion [numec.denh2. ´ transferencia de la siguiente forma: Ejemplo 6.denvc). Cada elemento estar´ aa una distancia de 0.numvc.-1). den]=cloop(numec. Veremos que este comando devuelve el gr´ afico de la Figura 2 Como podemos ver.´ Indice General ´ a M ATLAB y S IMULINK .t).1 de su consecutivo. Recordemos que para ingresarla como funcion LAB. comando plot(t.den. ´ transferenLo que obtuvimos son los vectores numerador y denominador de la funcion ´ de transferencia a M ATcia por separado. por ejemplo. es decir y=impulse(num. Si ahora introducimos este par´ ametro en el comando impulse(num. resulta que y(t) = e−t − e−2t . ´ 4.denvc]=feedback(numg2. debemos utilizar tf. (s + a)(s + b) donde a = 1.1:12.denec.den. solo nos muestra los primeros 6 segundos de la respuesta. t=0:0.5 Respuesta al impulso Ahora que ya sabemos como pasar de la respuesta temporal a Laplace. 1. comando que veremos en la seccion . desarrollando en fracciones simples como en la ´ 1.y). Supongamos que tenemos una funcion Y (s) = 1 .7 Introduccion ´ transferencia de V (s) a Y (s): 2. Calculamos la funcion [numvc. y as´ ı tendr´ ıamos los valores de la salida de la respuesta al impulso en dicho vector.t).-1). ´ transferencia de E(s) a Y (s) con: 3. Ingresemos los vectores numerador y denomiseccion nador y luego ejecutemos el comando: impulse(num. podr´ ıamos asignarle un vector. Si quisi´ eramos que nos mostrara 12 segundos. Por ultimo calculamos el lazo cerrado: [num. Notemos que este comando no fue asignado a ninguna variable. b = 2 Si calculamos ahora la antitransformada. el gr´ afico mostrar´ a los primeros 12 segundos de la respuesta al impulso.7. ´ El vector t tendr´ a como primer elemento el 0 y como ultimo al 12.denec]=series(numg1.

Calculemos la respuesta al escalon G (s) = Y (s) 4 = 2 R(s) s + 0. cuando ´ ste es asignado a una variable. Ahora podemos comparar los valores obtenidos desde la respuesta al impulso con los obtenidos desde la respuesta temporal (por ejemplo. e ´ unitario de la funcion ´ transferencia: Ejemplo 7. y=step(num.den).den). y la instrucci´ on f=exp(-t)+exp(-2*t).6 ´ Respuesta al escalon ´ anterior. para calcular la salida temporal calon ´ unitario.05 0 0 1 2 3 4 5 6 Time (sec. M ATLAB abre una ´ escalon ´ unitario. rest´ andolos). comparemos el resultado obtenido con el que resultar´ ıa si calcul´ aramos la respuesta temporal. de la ventana gr´ afica mostrando el gr´ afico de la salida a la excitacion misma forma que antes. Para ello utilizaremos el mismo vector temporal t.) Figura 2: Respuesta al impulso ´ transferencia de un sistema lineal invariante en el tiempo se deDado que la funcion fine como la transformada de Laplace de la respuesta al impulso cuando todas las condiciones iniciales son nulas.8 Introduccion 0. Lo unico ´ cuando la entrada se trata de un escalon que necesita este comando es el ´ transferencia. 1. veremos un gr´ afico similar al que podemos observar en la Figura 3.den).15 Amplitude To: Y(1) 0. numerador y el denominador de la funcion step(num. llamado step.25 ´ a M ATLAB y S IMULINK . . los valores obtenidos se guardan en el vector y.2 0.1 0. Si utilizamos el comando sin asignarle la salida a ninguna variable.´ Indice General Impulse Response From: U(1) 0. Sin embargo. podr´ De la misma forma que en la seccion ıamos querer graficar la respuesta al es´ unitario.al igual que vimos en el comando impulse. M ATLAB posee un comando.8s + 4 Si ingresamos el comando step(num.

y calculando la respuesta al escalon step(num.8 0. M ATLAB no posee ningun ´ comando que lo resuelva.) ´ unitario Figura 3: Respuesta al escalon ´ Si ahora queremos la respuesta a una entrada rampa unitaria.8 4 0]. Si ahora ingresamos plot(y).y). vector y los valores de la salida de la respuesta al impulso.7 ´ Graficos Como vimos en secciones anteriores los comandos step e impulse grafican las respuestas ´ y al impulso respectivamente. es decir que R(s) = s12 . obtenemos la respuesta a la rampa unitaria que se muestra en la Figura 4.6 ´ a M ATLAB y S IMULINK . es decir den=[1 0.8s + 4 1 s2 ⇒ Y (s) = 4 s3 + 0. 1. que es como lo ten´ ıamos definido.6 0. Si ingresamos plot(t.den).8s + 4s.2 1 Amplitude To: Y(1) 0. ahora el eje de abscisas corresponder´ a al vector temporal ya definido e ir´ a desde t = 0 a t = 12. ´ en general utilizaremos el comando plot. que solo ´ necesita Para graficar cualquier funcion definir el vector a graficar en la forma b´ asica plot(vector). en lugar de tener segundos en el eje de abscisas tendremos la cantidad de elementos de ese vector.4 0. pero ahora vamos a introducir algo m´ al escalon as general.´ Indice General Step Response From: U(1) 1.8 S2 + 4s 1 s ´ transferencia al polinomio s3 + Por lo que utilizando como denominador de la funcion 2 ´ unitario con 0. Grafiquemos . ´ del elemento del vector y la Se obtiene un gr´ afico donde el eje de abscisas ser´ a la posicion ´ En el ejemplo 6.2 0 0 5 10 15 Time (sec. Si seguimos con el ejemplo anterior y excitamos al sistema con r(t) = t.9 Introduccion 1.4 1. Por lo que veremos como con el comando step podemos obtener una rampa. tenemos lo siguiente: Y (s) = 4 s2 + 0. guardamos en el ordenada el valor que tiene el vector en dicha posicion.

obtendremos el gr´ afico de la Figura 5 Como podemos ver. se usa sin par´ ametros.10 Introduccion 20 15 Amplitude To: Y(1) 10 5 0 0 5 10 15 20 25 Time (sec. Si ingresamos plot(t. Notemos que el texto que queremos que aparezca est´ a escrito entre comillas simples. Supongamos que tenemos la funcion culamos con M ATLAB en el Ejemplo 2. el t´ ıtulo y el nombre de los ejes que trae la fun´ por defecto tambi´ ´ cion en aparecen. el texto que aparecer´ a ser´ a el que se encuentra escrito entre las comillas simples . Veamos que no es dif´ ıcil si se lo queremos agregar a un gr´ afico. Otros comandos que pueden ser utiles a la hora de trabajar con gr´ aficos son grid y text.) Figura 4: Respuesta a la rampa unitaria entonces los valores guardados en el vector f . El comando text se utiliza de la misma forma que que title. que se utilizan para agregar una grilla y agregar texto respectivamente. xlabel y ylabel. Estos valores corresponden a la respuesta temporal. xlabel(’Tiempo(seg. Abramos un archivo nuevo e ingresemos lo siguiente: . no hay casi diferencias con la figura 2. excepto por el t´ ıtulo y los nombres de los ejes que el comando impulse(num. aunque cuando son utilizados en estos comandos. como los nombres de los ejes.2. pueden ser tambi´ en utilizados con step y impulse.)’). se escribir´ an el la figura que se encuentre abierta: title(’Respuesta al Impulso’). para ello utilizaremos las sentencias title. y) donde queremos que aparezca el texto.f). El comando grid.´ Indice General Step Response From: U(1) 25 ´ a M ATLAB y S IMULINK . es decir. pero antes debemos ingresar las coordenadas ( x. por lo que el gr´ afico deber´ a ser el mismo.den) pone autom´ aticamente. Estos comandos se utilizan luego de ingresar el comando plot. Veamos el siguiente ejemplo: ´ transferencia de la Figura 1. Los comandos anteriores. ya que tanto el t´ ıtulo. ylabel(’Salida c(t)’). que ya la calEjemplo 8.

den.5. Si ejecutamos el programa vamos a obtener el gr´ afico de la Figura 6.2 0. y1=sin(t).1. ingresemos en un archivo nuevo: t=0:pi/20:2*pi. xlabel(’Tiempo (seg.1 0. ylabel(’Salida del sistema’).y2). plot(t. que mantiene la figura y superpone el siguiente gr´ afico sobre la misma figura. Supongamos que queremos graficar tres sinusoides con frecuencias diferentes. Ejemplo 9.11 Introduccion 0.1.y1).15 0. Supongamos ahora que queremos graficar en la misma figura dos o m´ as gr´ aficos para poder compararlas. como veremos en el siguiente ejemplo. title(’Respuesta al escalon unitario’). hold off.t). . y3=sin(t-pi).´ Indice General 0.’maximo valor’). y2=sin(t-pi/2).y3). text(0. y=step(num.)’). Esto es posible utilizando el comando hold on . plot(t. t=0:0. plot(t.hold off.05 0 0 2 4 6 8 10 12 Figura 5: Respuesta temporal del ejemplo 6 num=[40 800].25 ´ a M ATLAB y S IMULINK . plot(t. grid.y). hold on.01:2. den[1 22 180 800].

por ejemplo. Espec.’:bs’). .4 0.6 0. en lugar del comando plot(t. aparecen 3 gr´ aficas en el mismo color.8 0.4 1.2 Tiempo (seg. Los par´ ametros que figuran en la Tabla 2 son para elegir el color de la l´ ınea.8 2 ´ del ejemplo Figura 6: Respuesta al escalon Luego de ejecutar estas l´ ıneas veremos que en la figura que resulta.´ Indice General Respuesta al escalón 1.y2.6 1. e imposible de identificar cual corresponde a cada una porque ambas se encuentran graficadas con el mismo tipo de linea y el mismo color. los que se encuentran en la Tabla 3 son para elegir el estilo de la l´ ınea y los que se encuentran el la Tabla 4 son para elegir el tipo de marca que aparecer´ a sobre los puntos del vector graficado. plot(t.2 0 0 0. Para ello veamos un par´ ametro del tipo string que podemos agregar al comando plot para especificaciones del estilo del gr´ afico.2 0.) 1.y1.4 ´ a M ATLAB y S IMULINK .4 0.8 1 1.y) escribamos: plot(t.6 0.’-. r b w g c m y k Color rojo azul (por defecto) blanco verde cian magneto amarillos negro Tabla 2: Especificadores de color Ahora especifiquemos cada uno de los plot con un estilo diferente.2 maximo valor 1 Salida del sistema 0.rx’). plot(t.’--mo’).12 Introduccion 1.y3.

Estas sentencias se usan sin el comando de hold on . plot(t. Otra opcion alida para M ATLAB. plot(t. Es decir. Para ello utilicemos el comando legend.hold off y ´ v´ lo que hacen es abrir una nueva figura para cada gr´ afico.n. que pone la leyenda que queramos a cada gr´ afico. pero seguimos sin saber cu´ al corresponde a qu´ e funcion.´ Indice General ´ a M ATLAB y S IMULINK .’. + o · ∗ s d x p h Estilo de marca signo m` as c´ ırculo punto asterisco cuadrado diamante cruz estrella de 5 puntas estrella de 6 puntas Tabla 4: Especificadores de marca ´ y Si corremos nuevamente el archivo veremos que hay diferencia entre una funcion ´ la otra.1. Estilo de linea ´ linea solida (por defecto) linea rayada linea punteada linea punto-raya Tabla 3: Especificadores de linea Espec.’sin(t-pi)’).3). title(’sin(t)’).2).p).1. Para ello debemos ejecutar el comando figure(2) antes de graficar por segunda vez y figure(3) antes ´ del ultimo gr´ afico. por ejemplo. Tambi´ en podr´ ıamos querer cada gr´ afico en una figura diferente. es que las tres funciones aparezcan en una sola figura pero las tres graficadas en forma independiente. subplot(3. plot(t.1. subplot(3. pero crea una figura en la posicion ver como funciona: clf.y2. que dividir´ a a la figura ´ p. %borra el grafico actual subplot(3. – : -.-r’). title(’sin(t-pi/2)’).1).y1. Ahora si observamos el gr´ afico deber´ ıa ser como el de la Figura 7. Para ello utilicemos subplot(m. Ingresemos lo siguiente para en m filas y n columnas.’:b’). ’sin(t-pi/2)’.’--m’).13 Introduccion Espec. escribamos ´ como ultima linea: legend(’sin(t)’.y3. .

2 0 −0. Este entorno nos permite describir gr´ aficamente un sistema ´ y dibujando su diagrama en bloques. de esta forma se abrir´ a solo una ventana .´ Indice General 1 ´ a M ATLAB y S IMULINK . Si ejecutamos nuevamente el programa. 2. No nos olvidemos que M ATLAB cuenta con una ayuda a la cual podemos recurrir en caso de no recordar como se utiliza un comando. que resulta muy conveniente para la simulacion an´ alisis de sistemas din´ amicos.8 −1 0 1 2 3 4 5 6 7 Figura 7: Tres gr´ aficos en una misma figura title(’sin(t-pi)’). obtenemos lo que se observa en la Figura 8 Con respecto a gr´ aficos.1 ´ Acceso y descripcion Para acceder a S IMULINK. como as´ ı tambi´ en a que conozcan las distintas demostraciones que pueden encontrar si tipean: demo. con loglog. Invito a que se metan a conocerlas. desde la ventana de comandos de M ATLAB. guardar ´ por ejemplopostscript o .8 sin(t) sin(t−pi/2) sin(t−pi) 0.6 0. Si investigamos un poco el help. Tambi´ en permite con el comando print.6 −0. podemos encontrar funciones que resuelven muchas otras cosas interesantes. bar. comentamos texto dentro del archivo. plot3.4 −0. ahora veremos como se puede suplementar utilizando un interfaz de usuario gr´ afica llamada S IMULINK. tenemos varias opciones: una es escribiendo el comando simulink.4 0.jpg. etc.14 Introduccion 0. gr´ aficos en tres dimensiones. como graficar en escala logar´ ıtmica. 2 ´ a S IMULINK Introduccion ´ con l´ Hasta ahora vimos que M ATLAB dispone de un entorno de programacion ıneas de ´ ordenes. semilogx y semilogy. en lo podemos imprimir con el mismo comando indicando el nombre de la impresora. M ATLAB posee muchas otras opciones. Notemos que con el s´ ımbolo %.2 −0. o tambi´ el gr´ afico en un archivo de extension. gr´ aficos de barras.

entre los elementos disponibles utilizaremos los siguientes: Derivative: bloque derivador.´ Indice General sin(t) 1 0.5 0 −0. etc. Nos vamos a referir a la version ıa Simulink se encuentran los elementos que vamos a utilizar organizados en sublibrer´ ıas de acuerdo con su comportamiento. demultexores. Por ejemplo si ingresamos a Continous. otra es desde la barra de menu ´ las librer´ de esta forma se abren no solo ıas sino tambi´ en el entorno donde vamos a trabajar. lo que encontraremos depende de la version ´ 5. Ganancias matriciales o constantes. Dentro de la librer´ que se encuentre instalada.) • Nonlinear • Signals & Sistems(multeplexores. Las sublibrer´ ıas que aparecen son: • Continous (Bloques para sistemas en tiempo continuo) • Discrete: (Bloques para sistemas en tiempo discretos) • Functions & Tables • Math (Sumadores.5 0 −0.5 −1 1 0.5 −1 1 0.5 −1 0 1 2 3 4 0 1 2 3 sin(t−pi) 4 0 1 2 3 sin(t−pi/2) 4 ´ a M ATLAB y S IMULINK . existe un boton ıas tanto en el entorno de trabajo de M ATLAB como en el de S IMULINK. etc.15 Introduccion 5 6 7 5 6 7 5 6 7 Figura 8: Tres gr´ aficos diferentes en la misma figura ´ File elegir la opcion ´ New Model. es decir du dt . con las librer´ ıas disponibles.3. ´ de MATLAB Una vez abiertas las librer´ ıas. etc.) • Sources (Varias fuentes de entradas) Con un doble click sobre la librer´ ıa podemos visualizar los elementos que posee.5 0 −0. .) • Sinks (Graficadores. ´ ´ de acceso directo a las librer´ por ultimo.

los ceros y la ganancia. Zero-pole: bloque para expresar al sistema con ceros. polos y una ganancia. 2. s State-Space: bloque para expresar al sistema en modelo de estados. ´ derecho del podemos seleccionar el bloque anterior. ´ l.16 Introduccion ´ transferencia 1 Integrator: bloque integrador. Tomemos el mismo ejemplo para ver como lo hacemos con S IMULINK. El bloque de ganancia lo encontramos en Math. ingresemos el diagrama en bloques como se puede ver en la Figura 9.4 Gain 100 s2+2s Transfer Fcn s s+20 Transfer Fcn1 1 Out1 Figura 9: Diagrama en bloques con S IMULINK ´ de la siguiente forma: Para poder implementar dicho gr´ afico se procedio ´ transferencia. viene con dos entradas sumadas. donde tenemos que ingresar el numerador y el denominador de la misma forma que lo hacemos desde el entorno de trabajo de MATLAB. ingresamos los par´ ametros de esta funcion ´ Para girar el bloque. Esto mismo se puede hacer sim´ derecho del mouse. Para insertar un bloque de funcion Continous. El sumador. en este caso solo modificamos ++ por . arrastrando el objeto hasta donde queremos ubicarlo. copiar el bloque y pegarlo donde queramos. misma forma que antes.2 vimos como podemos calcular la funcion ´ transferencia a lazo cerrado En la Seccion desde la ventana de comandos. 1 In1 . Para insertar otro bloque igual no es necesario realizar el ´ ıtem anterior nuevamente. lo mismo que los sumadores. Transfer Fnc: bloque para expresar al sistema como cociente de polinomios. los par´ ametros a definir ser´ an los polos. ´ transferencia a lazo cerrado 2. 3. ir a Format de la barra de menu. para que quede mejor orientado para hacer la realimentacion. Si en lugar de seleccionar el bloque de funcion elegimos el bloque de polos y ceros. Block o simplemente con las teclas ctr-f. Si hacemos doble click sobre el bloque se despliega una ventana de propiedades del bloque. lo tomamos y lo arrastramos hasta la ventana de trabajo de SIMULINK. podemos no solo cambiar el signo que queramos sino si hacemos doble click sobre e tambi´ en agregarle las entradas que queramos. ´ y seleccionar Flip tenemos que seleccionar el objeto. haciendo un click con el boton mouse. funcion .´ Indice General ´ a M ATLAB y S IMULINK . De la plemente arrastrando el objeto seleccionado con el boton ´ de transferencia. Para ingresarlos a la figura procedemos de la misma manera.2 Funcion ´ 2. por defecto. ya sabemos que se encuentra en 1. es decir entre corchetes ´ transferencia y separado por espacios.

de otra forma no lo pondr´ ıamos. Para poder visualizar la inicial 0. Para el bloque de la ganancia. Notemos que ˜ ayuda cuando hacemos un doble click en cualquier objeto. Como tenemos la funcion ´ transferencia a lazo cerrado.C.. y la segunda sentencia convierte ese modelo de estados en el numerador y el denominador de ´ transferencia. si ingresamos desde la ventana de comando de MATLAB las sentencias [A. necesitemos discreto.D). Para borrar cualquier elemento. cuando soltamos. tomando la entrada y la salida que seleccionamos. A dicho bloque podemos modificarle algunos par´ ametros como el ´ el valor inicial y final de escalon ´ y en caso de que lo tiempo en que se realizar´ a el escalon. encontramos una pequena ´ sto nos es util ´ para saber con que datos hay que en la parte superior de la ventana.17 Introduccion +−. en caso de estar uniendo con un nodo.4. podr´ entrada escalon ıamos utilizar el comando step(num.B. Para nuestro ejemplo. [num. La necesidad de marcar la entrada y la salida es para que MATLAB sepa desde donde hasta donde vamos a querer la transferencia. se llaman ”In1” e ”Out1”. elegimos como valor ´ del escalon ´ 0seg. ´ transferencia. solo ingresamos el valor que corresponde 0. En este caso el resultado es la funcion num=[40 800] den=[1 22 180 800] que si los comparamos con los obtenidos antes son id´ enticos. deberemos ver un cuadradito negro. e completar cada campo. valor final 1 y tiempo de realizacion salida. Para unir los bloques solo tenemos que hacer un click en la salida de un bloque y ´ est´ arrastra el mouse hasta la entrada de otro. debemos conectar a la salida un osciloscopio.B. Salvemos el archivo. nos interesa saber ahora como responde a una ´ unitario. el sistema resultante es el que observamos en la Figura 10. por ejemplo con el nombre “FuncTrans”. La primer orden produce un modelo de estado obtenemos la funcion del sistema de bloques.C. ´ 5. 2. Luego de agregados estos bloques.den) desde la ventana de comandos para obtener la salida. Este bloque lo encontramos en Sinks bajo el nombre “Scope”. esto lo hacemos para poder sacar la transferencia a lazo cerrado. si la coneccion a bien hecha. . ´ Pero veamos como lo podemos hacer desde SIMULINK. Otra propiedad que podemos modificar es la forma del icono. el tiempo de muestreo.D]=linmod(’Functtrans’). Estos bloques los encontramos en Signals & Systems. ıa Sources bajo el nombre “Step”. 4. simplemente lo seleccionamos y con la tecla DEL se elimina. Por ultimo nos falta solo indicar cu´ al es la entrada y cual es la salida. Para ello cambiemos el bloque ´ que lo encontramos el la librer´ de entrada por un bloque de entrada escalon.3 ´ Respuesta al Escalon ´ Siguiendo con el sistema de la Figura 9. 6.den]=ss2tf(A.´ Indice General ´ a M ATLAB y S IMULINK . marcar´ a una flecha negra.

2 1.2 0.6 1.6 0.8 2 ˜ que muestra el osciloscopio Figura 11: Senal .18 Introduccion .4 1.4 0.8 0.4 1.4 Step Gain 100 s2+2s Transfer Fcn s s+20 Transfer Fcn1 Scope ´ Figura 10: Sistema excitado con un escalon 1.4 0.2 1 0.´ Indice General ´ a M ATLAB y S IMULINK .8 1 1.2 0 0 0.6 0.

´ Indice General ´ a M ATLAB y S IMULINK .19 Introduccion Si hacemos doble click sobre el bloque “Scope”. Otra propiedad es la posibilidad de asignarle los datos que posee a una variable. veremos la salida del sistema como en la Figura 11. entre ellas est´ an los valores de los ejes. 2. dado Si en lugar de la respuesta al escalon que SIMULINK no posee un bloque generador de impulsos. como tambi´ en en archivos del editor. o nos permitir´ a utilizar el mismo sistema cada vez que nos encontremos con problemas similares. Cuenta tambi´ en con Zoom para visualizar alguna zona en detalle. De esta forma. Esto ˜ para distintos valores de resulta apropiado cuando queremos utilizar un mismo diseno par´ ametros. Para ello debemos definir las variables con ´ y luego utilizarlas dentro de los bloques con el mismo nombre. debemos generarlo nosotros como resta de dos escalones. Luego desde la ventana de comandos podemos visualizar los valores o graficarlos dado que SIMULINK guarda tambi´ en en una variable el vector ´ dicha variable se llama tout. temporal que utiliza en la simulacion. Este bloque tambi´ en posee algunas propiedades que podemos modificar. anticipacion SIMULINK identifica el valor de dicho par´ ametro y es el que utiliza en los c´ alculos. el t´ ıtulo y la escala.4 ´ de parametros ´ Utilizacion ya definidos nos permite utilizar variables definidas ya sea en la ventana de comando de MATLAB . SIMULINK . ´ unitario queremos la respuesta al impulso.