Вы находитесь на странице: 1из 15

SISTEMAS DE CONTROL / Control Automtico

UTN FRH / FRBA

UTN FRH / FRBA. Dtos. Electrnica y Elctrica


CATEDRA: SISTEMAS DE CONTROL y CONTROL AUTOMTICO Gua Sinttica para uso de MatLab, en la resolucin de problemas de control

Objetivo Para aquellos estudiantes que no conocen el software, daremos una breve gua, de las rutinas ms comunes para utilizar MatLab, agregndose algunos ejemplos para completar la Gua. Para versiones ms actualizadas del software, las rutinas pueden cambian ligeramente, no obstante, lo sustancial se mantiene. help la orden help nombre de funcin dar informacin sobre la funcin especfica consultada,respecto de su finalidad y forma de uso. help help Dar informacin de cmo utilizar la ayuda en lnea. Operadores matriciales + Suma Resta * Multiplicacin ^ Potencia Transpuesta conjugada Operadores relacionales y lgicos < Menor que > Mayor que <= Menor que o igual a >= Mayor que o igual a == Igual -= No igual Los operadores lgicos son: & And I OR NOT Caracteres especiales En MATLAB, se utilizan los siguientes caracteres especiales [] Utilizado para formar vectores y matrices () Precedencia de funcin aritmtica . Separa elementos y argumentos de funcin ; Final de filas, suprime la impresin : Generacin de vectores ! Ejecucin de orden del sistema operativo % Comentarios

Ao 2008/ Rev. b

Pg. 1

Ctedra del Ing. A. M. Mariani

SISTEMAS DE CONTROL / Control Automtico

UTN FRH / FRBA

Utilizacin del operador ; (punto y coma) El operador ; (punto y coma) se utiliza para suprimir la impresin. Si el ltimo carcter de una sentencia es un ; se suprime la impresin: la orden se ejecuta pero el resultado no se visualiza. Utilizacin del operador: (dos puntos) El operador: (dos puntos) juega un papel importante en MatLab. Este operador puede utilizarse para crear vectores, referenciar submatrices de una matriz dada y especificar los bucles de iteracin. Por ejemplo, j :k es lo mismo que[j j+1...k], A(: , j) es la columna j-sima de A, y A(i , :) es la fila i-sima de A. Lnea de programa comenzando con % Las lneas de programa que comienzan con % son comentarios La notacin % es similar a REM en Basic. Una lnea que comienza con % se emplea para almacenar los comentarios del programador y estas observaciones no se ejecutan. Si los comentarios requieren ms de una lnea de programa, cada una de ellas debe comenzar con el signo %. Acceso y salida de MatLab. En la mayora de los sistemas, una vez que se ha instalado MatLab, para llamar a MATLAB ejecute la orden MATLAB. Para salir de MatLab, ejecute la orden exit o quit. Como se utiliza MATLAB. Normalmente MATLAB se utiliza en modo de orden dirigida. Cuando las rdenes se introducen en una lnea MATLAB las procesa inmediatamente y visualiza los resultados. MATLAB, tambin es capaz de ejecutar secuencias de rdenes que estn almacenadas en filas. A las rdenes que se hayan escrito, se puede acceder ms tarde utilizando la tecla de flecha hacia arriba Es posible encontrar algunas de las ltimas rdenes que se hayan introducido y volverlas a llamar en una lnea de orden particular. Variables en MATLAB En MatLab las variables se generan de una manera automtica una vez que son utilizadas. Estas variables permanecen en memoria hasta que se introduce la orden quit o exit. Para obtener una lista de las variables en el espacio de trabajo, nicamente escriba la orden who Despus todas las variables que estn actualmente en el espacio de trabajo aparecern en la pantalla. La orden clear limpiar todas las variables no permanentes del espacio de trabajo. Si desea limpiar nicamente una variable en particular, por ejemplo x, del espacio de trabajo. Introduzca la orden clear x. Como guardar variables cuando se sale de MATLAB. Cuando se escribe exit o quit, todas las variables en MatLab se pierden. Si se introduce la orden save antes de salir, todas las variables se pueden guardar en un archivo de disco llamado matlab.mat . Cuando se vuelva a entrar en MatLab, la orden load recuperar el estado inicial del espacio de trabajo. Representacin grfica de curvas. MATLAB tiene un conjunto extensivo de rutinas para obtener salidas grficas. La orden plot crea dibujos lineales x-y (Los dibujos logartmicos y polares se crean sustituyendo las palabras

Ao 2008/ Rev. b

Pg. 2

Ctedra del Ing. A. M. Mariani

loglog, semilogx o polar por plot). Todas estas rdenes se utilizan de la misma manera: nicamente se diferencian en como se escalan los ejes y en como se visualizan los datos. Grficas x-y Si x e y son vectores de la misma longitud, la orden: plot(x,y) Dibuja los valores de y en funcin de x. Ejemplo: Graficar la funcin y ( x) = e El programa de MatLab, podra ser:
x

SISTEMAS DE CONTROL / Control Automtico

UTN FRH / FRBA

sin x

>> x=0:0.01:8; >> y=exp(-x).*sin(x); >> plot(x,y) >> xlabel(' x');ylabel('y(x)') >> title('Grfica de la funcin y = exp(-x)*sin(x)')

Representacin de curvas mltiples. Para dibujar varias curvas en un mismo grfico, utilice la orden plot con mltiples argumentos. plot(X1,Y1,X2,Y2,...,Xn,Yn)

Ao 2008/ Rev. b

Pg. 3

Ctedra del Ing. A. M. Mariani

SISTEMAS DE CONTROL / Control Automtico

UTN FRH / FRBA

Cada par X,Y utiliza un tipo de lnea distinto. Inclusin de la cuadrcula, ttulo de la grfica, y etiquetas en los ejes X e Y. Una vez que se tiene el grfico en pantalla, se pueden dibujar las lneas de cuadriculado, poner ttulo a la grfica y los ejes x-y pueden ser etiquetados. Las rdenes de MATLAB para incluir el cuadriculado, ttulo y etiquetas en los ejes x e y son: grid (lneas del cuadriculado) title (ttulo del grfico xlabel (etiqueta en el eje x) ylabel (etiqueta en el eje y) Escritura de texto en la pantalla grfica. Para escribir texto al comienzo del punto (X,Y) sobre la pantalla grfica , utilizar la orden: text (X,Y, texto ) Por ejemplo, la declaracin text(3, 0.45, sin t ) Escribe sin t, horizontalmente empezando en el punto (3, 0.45). De la misma manera las declaraciones: plot(x1,y1,x2,y2), text(x1, y1,1 ), text(x2, y2,2 ) Marcaran dos curvas (1 y 2) para que se puedan distinguir claramente. Datos imaginarios y complejos. Si z es un vector complejo, entonces plot(z) es equivalente a plot(real(z), imag(z)). Diagramas polares. polar(teta, ro) dar un grfico en coordenadas polares de ngulo teta(en radianes) frente al radio ro. Utilizar la orden grid para dibujar las lneas del cuadriculado del diagrama polar. Diagramas logartmicos. log log un grfico utilizando escalas log10-log10 (doble logartmico) semilogx un grfico utilizando escala semilogartmica el eje x es log10, y el eje y es lineal semilogy un grfico utilizando escala semilogartmica, el eje y es log10, y el eje x es lineal

Otros tipos de grficos. bar(x) visualiza un grfico de barras de los elementos del vector x; bar no acepta argumentos mltiples. stairs parecido a bar pero pierde las lneas verticales, proporciona un dibujo de escalera til para grficas de seales de sistemas discretos(datos muestreados). Algoritmos automticos de representacin. En MATLAB el grfico es escalado automticamente. Este grfico permanece como actual hasta que se dibuja otro, en tal caso el dibujo antiguo se elimina y los ejes se reescalan automticamente. Los algoritmos para representar la respuesta transitoria, lugar de races,

Ao 2008/ Rev. b

Pg. 4

Ctedra del Ing. A. M. Mariani

SISTEMAS DE CONTROL / Control Automtico

UTN FRH / FRBA

diagramas de Bode, diagramas de Nyquist, etc., son diseados para trabajar con una gran variedad de sistemas, pero no siempre son perfectos. As en algunas ocasiones, puede llegar a ser deseable no hacer caso a la caracterstica de escalado automtico de la orden plot, y seleccionar manualmente los lmites del grfico. Escalado manual de ejes. Si se desea dibujar una curva en una regin especificada por: v=[x-min x-max y-min y-max] Introducir la orden: axis(v). axis(v), donde v es un vector de cuatro elementos, fija el escalado de los ejes a los lmites propuestos. Para grficas logartmicas, los elementos de v son log10 de los mnimos y los mximos. Al ejecutar axis(v) se congela el escalado de los ejes actuales para los grficos siguientes. Escriba nuevamente axis para reanudar el auto escalado. axis(square) fija una regin cuadrada para el grfico en la pantalla. Con una razn de apariencia cuadrada, una lnea con pendiente 1 est a 45, y no sesgada por una forma irregular de la pantalla. axis(normal ) devuelve la razn de apariencia normal. Tipos de grficos. plot(X,Y, x) Dibuja un punto en el grfico usando la marca x, mientras plot(X1,Y1,:,X2,Y2, + ) Utiliza una lnea ( : ) punteada para la primera curva, y el smbolo (+) para la segunda curva. Algunos tipos de lneas y puntos disponibles son: Tipos de lnea Slida Discontinua Punteada Discontinua-punteada - . Color. Las declaraciones: plot(X,Y,r ) plot(X,Y,+g ) Indican la utilizacin de una lnea roja (r) en el primer grfico, y marcas (+ de color verde) en el segundo. Algunos colores disponibles son: rojo verde r g -: Tipos de puntos punto signo de sumar estrella circulo marca x o x . + *

Ao 2008/ Rev. b

Pg. 5

Ctedra del Ing. A. M. Mariani

SISTEMAS DE CONTROL / Control Automtico

UTN FRH / FRBA

azul blanco invisible

b w i

Anlisis de la respuesta transitoria. Si se conocen num y den (el numerador y el denominador de la transferencia a lazo cerrado), rdenes tales como: step(num,den) step(num,den,t)

Generan grficas de respuesta a un escaln unitario. El parmetro t en la orden step es el tiempo especificado por el usuario. Representacin en MATLAB de sistemas lineales. La funcin de transferencia de un sistema se representa mediante dos arrays de nmeros. Considrese el sistema

G ( s) =

3s + 5 s + 1.5s 2 + 7 s + 4
3

Este sistema se representa como dos arrays cada uno de ellos conteniendo los coeficientes de los polinomios en potencias decrecientes de s, tal como sigue. num (0 0 3 5) den (1 1.5 7 4) Obsrvese que hay que completar con ceros las potencias de s faltantes. Los coeficientes con decimales se deben introducir con un punto para separar parte entera de la fraccionaria. Ejemplo 1: Trazar la respuesta al escaln de un sistema dado por su funcin transferencia

C ( s) 25 = 2 R ( s ) s + 4 s + 25
Programa en MATLAB: %---------------respuesta a un escaln unitario-----------%-----respuesta a un escaln de una funcin transferencia-----------%------introducir el numerador y el denominador de la funcin transferencia----num(0 0 25) ; den(1 4 25); %----------introduzca la siguiente orden de respuesta--------step(num, den) %---------introduzca la cuadrcula, leyendas en los ejes y el ttulo de la grfica----grid

Ao 2008/ Rev. b

Pg. 6

Ctedra del Ing. A. M. Mariani

SISTEMAS DE CONTROL / Control Automtico

UTN FRH / FRBA

xlabel(tiempo [seg]);ylabel(Salida) title(Respuesta a un escaln unitario de

G ( s ) = 25 ( s ^ 2 + 4 s + 25)

Ejemplo 2 Trazar la respuesta al escaln de un sistema dado por su modelo de estado

5 25 1 A= ; B = 0 ; C = [ 0 20] ; D = 0 0 1
El programa de MatLab, puede ser el siguiente >> A=[-5 -25;1 0]; >> B=[1;0]; >> C=[0 20]; >> D=0; >> step(A,B,C,D) >> title('Respuesta al escaln del sistema dx/dt=Ax+Bu y=Cx+Du')

Ao 2008/ Rev. b

Pg. 7

Ctedra del Ing. A. M. Mariani

SISTEMAS DE CONTROL / Control Automtico

UTN FRH / FRBA

Lugar de Races. Para trazar el lugar de races mediante la orden rlocus se escribe la ecuacin como:

1+ K

num =0 den

num = ( s + z1 )( s + z2 )...( s + zm ) = = s m + ( z1 + z2 + ... + zm ) s m1 + ... + z1 z2 ...zm den = ( s + p1 )( s + p2 )...( s + pn ) = s n + ( p1 + p2 + ... + p n ) s n 1 + ... + p1 p2 ... pn
Obsrvese que los vectores num y den deben escribirse en potencias decrecientes de s. Una orden de MATLAB utilizada con frecuencia para dibujar el lugar de races es. rlocus(num, den) Si se desea especificar la ganancia K, se utiliza una orden como: rlocus(num, den, K) Por ejemplo de K =0 a 3 con un paso de 0.2 se especifica como.

Ao 2008/ Rev. b

Pg. 8

Ctedra del Ing. A. M. Mariani

SISTEMAS DE CONTROL / Control Automtico

UTN FRH / FRBA

K= (0:0.2:3); Ejemplo 3 Trazar el lugar de races para el sistema dado por su funcin transferencia a lazo abierto:

G (s) =
El programa de MatLab, puede ser:

K ( s + 1) s ( s + 2)( s + 3)

>> n = [1 1]; >> d = [1 5 6 0]; >> rlocus(n, d) >> title('Lugar de races de G(s)=K(s+1)/s(s+2)(s+3)')

Representacin de BODE con MATLAB. Frente a la orden bode(num, den) MatLab desarrolla el diagrama de Bode en mdulo y fase en la plantilla. Cuando se llama con argumentos en el lado izquierdo: [mag, fase, w]=bode(num, den, w)

Ao 2008/ Rev. b

Pg. 9

Ctedra del Ing. A. M. Mariani

SISTEMAS DE CONTROL / Control Automtico

UTN FRH / FRBA

Bode devuelve la respuesta en frecuencia del sistema en las matrices mag, fase y w. Ningn diagrama es dibujado en la pantalla. Las matrices mag y fase contienen la amplitud y los ngulos de fase de la respuesta en frecuencia del sistema evaluados en los puntos de frecuencia especificados por el usuario. El ngulo de fase se devuelve en grados. La magnitud se puede convertir a db, mediante la orden: magdB=20*log10(mag) Para especificar el rango de frecuencias, utilizar la orden logspace(d1,d2) o logspace(d1,d2,n) logspace(d1,d2), genera un vector de 50 puntos espaciados logartmicamente por igual entre las dcadas 10 y 10 . Es decir, para generar 50 puntos entre 0.1 rad/seg y 100 rad/seg, se debe introducir la orden: w=logspace(-1,2) logspace(d1,d2,n) genera n puntos espaciados logartmicamente por igual entre la dcadas
d1 d2

10d 1 y 10d 2 .
Por ejemplo, para generar 100 puntos entre 1 rad/seg y 1000 rad/seg, se debe introducir la orden: w= logspace(0,3,100)

Ejemplo: trazar el Bode de la funcin transferencia:

Y 25 ( s) = 2 U s + 4 s + 25

El programa podra ser: num(0 0 25); den(1 4 25); bode(num, den) title(Diagrama de Bode de G(s)=25/(s^2+4s+25))

Ao 2008/ Rev. b

Pg. 10

Ctedra del Ing. A. M. Mariani

SISTEMAS DE CONTROL / Control Automtico

UTN FRH / FRBA

Representacin de Nyquist con MATLAB. La orden nyquist (num, den) Dibuja el diagrama de Nyquist en funcin de la frecuencia para la transferencia:

G ( s) =
La orden:

num den
nyquist (num, den, w)

Utiliza el vector de frecuencia especificado por w Ejemplo: trazar el diagrama de Nyquist de :

G ( s) =

1 s 2 + 0.8s + 1

El programa sera: num(0 0 1): den(1 0.8 1); Nyquist (num, den) grid title(Diagrama de Nyquist de G(s)=1/(s^2+0.8s+1) )

Ao 2008/ Rev. b

Pg. 11

Ctedra del Ing. A. M. Mariani

SISTEMAS DE CONTROL / Control Automtico

UTN FRH / FRBA

Representacin de Nichols con MATLAB. La orden nichols (num, den) Dibuja el diagrama de Nichols. En el plano dB y fase en grados, para la funcin transferencia dada por

G ( s) =

num den
G (s) = 1 s 2 + 0.8s + 1

Ejemplo: trazar el diagrama de Nichols para: El programa de MatLab, podra ser:

>> n=25; >> d=[1 4 25]; >> nichols(n,d) >> title(' Diagrama de Nichols de G(s)=25/(s^2+4s+25)' ) >> grid

Ao 2008/ Rev. b

Pg. 12

Ctedra del Ing. A. M. Mariani

SISTEMAS DE CONTROL / Control Automtico

UTN FRH / FRBA

Conversin de funcin transferencia a modelo de estado. Para convertir una funcin transferencia a modelo de estado se utiliza la sentencia: [A, B, C, D]=tf2ss (n, d) Ejemplo: dada la funcin transferencia G ( s ) = El programa de MATLAB., puede ser: >> n = [6.5 6.5]; >> d = [1 5 6 0]; >> [A, B, C, D] = tf2ss (n, d) A= -5 1 0 B= 1 0 0 -6 0 1 0 0 0

6.5( s + 1) , obtener un modelo de estado s ( s + 2)( s + 3)

Ao 2008/ Rev. b

Pg. 13

Ctedra del Ing. A. M. Mariani

SISTEMAS DE CONTROL / Control Automtico

UTN FRH / FRBA

C= 0 D= 0 El programa para graficar la respuesta de salida frente a un escaln, podra ser el siguiente: >> A=[-5 -6 0;1 0 0;0 1 0]; >> B=[1;0;0]; >> C=[0 6.5 6.5]; >> D=0; >> [y, x, t]=step(A, B, C, D); >> plot(t, y);grid >> xlabel('t seg');ylabel( 'Salida y(t)' ) >> title(' Respuesta a un escaln unitario' ) 6.5000 6.5000

Para obtener la grfica de las variables de estado en funcin del tiempo, el programa de MatLab podra ser:

Ao 2008/ Rev. b

Pg. 14

Ctedra del Ing. A. M. Mariani

SISTEMAS DE CONTROL / Control Automtico

UTN FRH / FRBA

>> A=[-5 -6 0;1 0 0;0 1 0]; >> B=[1;0;0]; >> C=[0 6.5 6.5]; >> D=0; >> [y, x, t]=step(A, B, C, D); >> plot(t, x)

Ctedra: Sistemas de Control FRH / FRBA Ing. A.M.Mariani

Ao 2008/ Rev. b

Pg. 15

Ctedra del Ing. A. M. Mariani

Вам также может понравиться