Está en la página 1de 13

CTM: Frequency Response Tutorial

http://www.ing.una.py/APOYO/CONTROL CON SC...

Tutorial de Analisis y Diseo usando Respuesta de Frecuencia


I. Diagramas de Bode [ Mrgeners de Fase y de Ganancia | Ancho de Banda |
Respuesta de Lazo Cerrado ]

II. Diagramas de Nyquist [ Estabilidad de Lazo Cerrado | Margen de


Ganancia | Margen de Fase ] Key matlab commands used in these tutorial are bode, nyquist, nyquist1, lnyquist1, margin, lsim, step, and cloop Los mtodos de respuesta de frecuencia podrn parecer menos intuitivos que los dems mtodos estudiados con anterioridad. Sin embargo, posee ventajas especcas, especialmente en lo que se reere a situaciones de la vida real tales como el modelado de funciones de transferencia a partir de datos fsicos. La respuesta de frecuencia de un sistema puede ser vista desde 2 diferentes enfoques: a travs de los diagramas de Bode o a travs de los diagramas de Nyquist. Ambos mtodos ofrecen la misma informacin, diferencindose slamente en la forma en que la misma es presentada. Se estudiarn ambos mtodos en el presente tutorial. La respuesta de frecuencia es una representacin de la respuesta del sistema a entradas sinusoidales a distintas frecuencias. Esta salida ser tambin una onda sinusoidal con diferente fase y mdulo. La respuesta de frecuencia est denida como las diferencias de magnitud y fase entre la entrada y la salida sinusoidal. En el presente tutorial, se mostrar como puede utilizarse la respuesta de frecuencia de lazo abierto de un sistema para predecir el comportamiento de lazo cerrado del mismo. Para gracar la respuesta de frecuencia, se crea un vector de frecuencias (variando entre cero o "DC" e innito)y se computa el v alor de la funcin de transferencia de la planta para dichas frecuencias. Si G(s) es la funcin de transferencia de lazo abierto de un sistema, y w es el vector de frecuencia, se graca G(j*w) vs. w. Ya que G(j*w) es un nmero complejo, pueden gracarse tanto su magnitud como su fase (diagramas de Bode) o su posicin en el plano complejo (el grco de Nyquist). Ms informacin puede encontrarse en

1 de 13

12/03/12 23:30

CTM: Frequency Response Tutorial

http://www.ing.una.py/APOYO/CONTROL CON SC...

dibujando la respuesta de frecuencia.

Diagramas de Bode
Como se dijo arriba, los diagramas de Bode son las representaciones de la magnitud y la fase de G(j*w) (donde el vector de frecuencia w contiene slamente frecuencias positivas). Para generar el diagrama de Bode, pueden utilizarse los siguientes comandos (crearemos el archivo "rf.sce") // Denicion de un sistema s=poly(0,"s"); num=poly([50],"s","coe"); den=poly([40 30 9 1],"s","coe"); [sistema1]=syslin('c',num/den); // Ploteo del diagrama de Bode bode(sistema1,0.01,1,0.0001); La funcin de transferencia ser:
50 ----------------------s^3 + 9 s^2 + 30 s + 40

La frecuencia se encuentra en escala logartmica, la fase est dada en grados y la magnitud de la ganancia se encuentra en decibeles. Nota: un decibel est denido como 20*log10 ( |G(j*w| ) Aqui puede ver ejemplos de diagramas de Bode sencillos.

Mrgenes de Fase y Ganancia

2 de 13

12/03/12 23:30

CTM: Frequency Response Tutorial

http://www.ing.una.py/APOYO/CONTROL CON SC...

Considere el siguiente sistema:

donde K es la ganancia variable (constante) y G(s) es la planta estudiada. El margen de ganancia est denida como el cambio en la ganancia de lazo abierto necesario para inestabilizar el sistema de lazo cerrado. Los sistemas con mrgenes de ganancia grandes pueden soportar cambios importantes en los parmetros del sistema sin comprometer la estabilidad de lazo cerrado. Notese que una ganancia unitaria es igual a una ganancia CERO en dB. El margen de fase es denido como el cambio en la fase de lazo abierto necesaria para que el sistema de lazo cerrado sea inestable. El margen de fase adems mide la tolerancia del sistema al retraso de tiempo. Si hubiera un retraso de tiempo superior a 180/Wpc en el lazo (donde Wpc es la frecuencia donde el cambio de fase es igual a 180 grados), el sistema de lazo cerrado sera inestable. El retardo de tiempo puede ser visto como un bloque extra en el camino directo del diagrama de bloques que agrega fase al sistema pero no tiene efecto en la ganancia. Esto es, un retardo de tiempo puede ser representado por un bloque con magnitud 1 y fase igual a w*retardo (en radianes/segundo). Por ahora, no nos preocuparemos en el origen de todo esto, y nos concentraremos en identicar los mrgenes de fase y ganancia de un diagrama de Bode. EL margen de fase es la diferencia entre la curva de fase y -180 grados en el punto correspondientes a la frecuencia que nos da una ganancia de 0 dB (la frecuencia de cruce de ganancia Wgc). Igualmente, el margen de ganancia es la diferencia entre la curva de magnitud y o dB en el punto correspondiente a la frecuencia que da una fase de -180 grados (frecuencia de cruce de fase Wpc).

3 de 13

12/03/12 23:30

CTM: Frequency Response Tutorial

http://www.ing.una.py/APOYO/CONTROL CON SC...

Un aspecto interesante sobre el margen de fase es que no es necesario recalcular el diagrama de Bode para encontrar el nuevo margen de fase cuando se modica la ganancia. Recuerdese que la adicion de ganancia solamente tiene el efecto de desplazar la curva de ganancia para arriba. Esto equivale a cambiar el eje y en el graco de magnitud. Encontrar el margen de fase simplemente se reduce a encontrar la nueva frecuencia de cruce. Por ejemplo, supongase el diagrama de Bode que se muestra:

Se puede apreciar que el margen de fase es aproximadamente 100 grados. Supongase ahora que se agrega una ganancia de 100. Se obtendra el graco que se muestra:

Como puede verse, el graco de fase es exactamente igual al anterior, y el graco de magnitud se ha desplazado para arriba en 40 dB (igual a una ganancia de 100). El margen de fase es ahora aproximadamente igual a -60 grados. El mismo resultado podria haberse obtenido al desplazar para abajo el

4 de 13

12/03/12 23:30

CTM: Frequency Response Tutorial

http://www.ing.una.py/APOYO/CONTROL CON SC...

eje y en 40 dB. Los valores de margenes de fase y ganancia pueden ser obtenidos directamente por SCILAB, utilizando los siguientes comandos: // Obtencion de los margenes de ganancia y fase [MG, Wpc]=g_margin(sistema1) [MF, Wgc]=p_margin(sistema1)

Frecuencia de Ancho de Banda


La frecuencia de ancho de banda esta denida como la frecuencia a la cual la magnitud de la respuesta de lazo cerrado es igual a -3 dB. Sin embargo, cuando se aplica respuesta de frecuencia en el disenho, se busca predecir el comportamiento del lazo cerrado a partir del lazo abierto. Por lo tanto, utilizaremos una aproximacion a un sistema de segundo orden para establecer que la frecuencia de ancho de banda es igual a la frecuencia en la cual la magnitud de lazo abierto se encuentra entre -6 y -7.5 dB, asumiendo que la fase de lazo abierto se encuentra entre -135 and -225 grados. Para una deduccion completa de esta aproximacion, recomendamos consultar el libro de texto. Si se desea estudiar con mayor detenimiento como el ancho de banda de un sistema puede ser encontrado matematicamente a partir del coeciente de amortiguamiento y la frecuencia natural de lazo cerrado, las ecuaciones principales se encuentran en esta pagina. De modo a ilustrar la importancia del ancho de banda, se mostrara a

5 de 13

12/03/12 23:30

CTM: Frequency Response Tutorial

http://www.ing.una.py/APOYO/CONTROL CON SC...

continuacion la forma en que la salida cambia con diferentes frecuencias de entrada. Hallaremos que las entradas sinusoidales con frecuencias menores que Wbw (frecuencia de ancho de banda) son seguidas "razonablemente bien" por el sistema. Las entradas con frecuencias mayores que Wbw son atenuadas en magnitud por un factor de 0.707 o mayor, con un desfasaje adicional. Consideremos la siguiente funcion de transferencia de lazo cerrado, representando un sistema dado: 1 s^2 + 0.5 s + 1 Inicialmente, hallaremos la frecuencia de ancho de banda observando el diagrama de Bode // Determinacion de ancho de banda de un sistema num=poly([1],"s","coe"); den=poly([1 0.5 1],"s","coe"); [sistema3]=syslin('c',num/den); bode(sistema3,0.01,10,0.0001);

Debido a que se ha gracado la funcion de transferencia de lazo cerrado, nuestra frecuencia de ancho de banda correspondera a la ganancia de -3 dB. Del graco, identicamos que la misma es aproximadamente igual a 1.4 rad/s. Podemos concluir tambien del graco que, para una frecuencia de entrada de 0.3 radianes, la salida tendra una magnitud aproximadamente unitaria con un desfase de pocos grados con respecto a la salida. Para una frecuencia de entrada de 3 rad/sec, la magnitud de salida debera ser aproximadamente -20dB (1/10 tan grande como la entrada) y la fase debera ser aproximadamente -180. Podemos utilizar el comando csim para simular la respuesta del sistema a entradas sinusoidales Inicialmente, consideremos una entrada sinusoidal con una frecuencia menor que Wbw. Debemos tener presente que buscamos analizar la respuesta en

6 de 13

12/03/12 23:30

CTM: Frequency Response Tutorial

http://www.ing.una.py/APOYO/CONTROL CON SC...

estado estable. w=0.3 num=poly([1],"s","coe"); den=poly([1 0.5 1],"s","coe"); [sistema4]=syslin('c',num/den); t=0:0.1:100; u=sin(w*t); [y x]=csim(u,t,sistema4); plot2d(t,y,style=[color("red")]); plot2d(t,u,style=[color("blue")]);

Note que la salida sigue a la entrada bastante bien, probablemente con solo algunos grados de desfasaje. Por otro lado, si establecemos la frencuencia de la salida mayor que la frencuencia de ancho de banda , obtendremos una respuesta distorsionada con respecto a la entrada: w=3 num=poly([1],"s","coe"); den=poly([1 0.5 1],"s","coe"); [sistema4]=syslin('c',num/den); t=0:0.1:10; u=sin(w*t); [y x]=csim(u,t,sistema4); plot2d(t,y,style=[color("red")]); plot2d(t,u,style=[color("blue")]);

Nuevamente, notese que la magnitud de la salida es aproximandamente 1/10 que la de la entrada, como se ha dicho, y que se encuentra aproximadamente 180 grados retrasada con respecto a la entrada.

7 de 13

12/03/12 23:30

CTM: Frequency Response Tutorial

http://www.ing.una.py/APOYO/CONTROL CON SC...

Desempenho de Lazo Cerrado


Para poder predecir el desempenho de lazo cerrado a partir de la respuesta de frecuencia de lazo abierto, deben establecerse claramente algunos conceptos: El sistema debe ser estable en lazo abierto para poder disenhar por medio de diagramas de Bode. Si la frecuencia de cruce de ganancia es menor que la frecuencia de cruce de fase(esto es, Wgc < Wpc), entonces el sistema de lazo cerrado sera estable. Para sistemas de segundo orden, el coeciente de amortiguamiento de lazo cerrado es aproximadamente igual al pargen de fase dicidido por 100, siempre y cuando el margen de fase se encuentre entre 0 y 60 grados. Este concepto debe usarse cuidadosamente si el margen de fase es mayor a 60 grados. Para sistemas de segundo orden, las relaciones entre coeciente de amortiguamiento, frecuencia de ancho de banda y tiempo de establecimiento esta dada por la ecuacion expuesta en la pagina de ancho de banda. Una estimacion burda puede ser el igualar aproximadamente al ancho de banda con la frecuencia natural. Utilicemos estos conceptos para disenhar un controlador para el siguiente sistema:

Donde Gc(s) es el controlador y G(s) es: 10 1.25 s + 1 El disenho debe cumplir con las siguientes especicaciones: Error de estado estable igual a cero. Sobrepico menor que 40%. Tiempo de establecimiento menor a 2 seg. Existen dos caminos para resolver este problema: uno es graco, y el otro es numerico. Utilizaremos en este ejemplo el metodo graco. Inicialmente, daremos un vistazo a los diagramas de bode. Para esto, creamos un archivo "rf1.sce": // Denicion del sistema ejemplo s=poly(0,"s"); num=poly([10],"s","coe"); den=poly([1 1.15],"s","coe");
8 de 13 12/03/12 23:30

CTM: Frequency Response Tutorial

http://www.ing.una.py/APOYO/CONTROL CON SC...

[sistema1]=syslin('c',num/den); // Ploteo del diagrama de Bode bode(sistema1,0.01,10,0.0001);

Existen diversas caracteristicas del sistema que pueden ser "leidas" directamente de estos diagramas. Antes que nada, podemos ver que la frecuencia de ancho de banda esta alrededor de los 10 rad/seg. Debido a que, aproximando, esta frecuencia es igual a la frecuencia natural de sistema (para un sistema de segundo orden, como el presente), el tiempo de crecimiento es igual a 1.8/BW=1.8/10=1.8 segundos. Esta es simplemente una estimacion, de modo que podremos decir que el tiempo de crecimiento es de alrededor de 2 segundos. El margen de fase del sistema es aproximadamente 95 grados. Esto corresponde a un coeciente de amortiguamiento de PM/100=95/100=0.95. Introduciendo este valor en la expresion del sobrepico, encontramos que el mismo es aproximadamente igual a 1%. Esto es, el sistema se encuentra proximo al sobreamortiguamiento. El siguiente punto de estudio es el error de estado estable. Este error puede ser obtenido directamente del diagrama de Bode. La constante (Kp, Kv, or Ka) se encuentra ubicada en la interseccion de la asintota de baja frecuencia con las linea w=1, con la magnitud en este punto igual a la constante. Debido a que el diagrama de Bode de este sistema es una linea horizontal para bajas frecuencias, sabemos que el sistema es te tipo cero. Por lo tanto, la interseccion es facil de hallar. La ganancia es 20 dB (magnitud 10). Esto signica que la constante para la funcion de error es 10. Puede verseaqui la tabla de tipos de sistemas y funciones de error.to see the table of system types and error functions. El error de estado estable es 1/(1+Kp)=1/(1+10)=0.091. Si el sistema fuera de tipo 1 en vez de ser tipo 0, la constante de error de estado estable seria encontrada como se muestra en el siguiente graco:

9 de 13

12/03/12 23:30

CTM: Frequency Response Tutorial

http://www.ing.una.py/APOYO/CONTROL CON SC...

Procedamos ahora a vericar nuestras conclusiones examinando la respuesta al escalon: // Respuesta a la entrada escalon // Construyendo el lazo cerrado sistema2=(num/den)/(1+num/den); t=0:0.001:0.5; [y X]=csim("step",t,sistema2); plot2d(t,y);

Como puede verse, las predicciones son bastante precisas. Ahora necesitamos seleccionar un controlador que permita cumplir con los criterios establecidos. Seleccionamos un controlador PI debido a que nos permitira eliminar el error de estado estable. Ademas, el controlador PI posee un cero, que podemos colocar donde queramos. Esto nos da una exibilidad adicional. Recordese que un controlador PI posee la siguiente funcion de transferencia:
K*(s+a) Gc(s) = ------s

Lo primero que debemos uallar es el porcentaje de amortiguamiento

10 de 13

12/03/12 23:30

CTM: Frequency Response Tutorial

http://www.ing.una.py/APOYO/CONTROL CON SC...

correspondiente a un sobrepico de 40%. De la ecuacion que relaciona ambos valores, tenemos que el valor de amortiguamiento es igual a 0.28. Por lo tanto, nuestro margen de fase debera ser de aproximadamente 30 grados. De nuestro graco Ts*Wbw vs coef. amortig, tenemos que Ts*Wbw ~ 21. Debemos asegurar un ancho de banda mayor o igual que 12, si queremos que el tiempo de establecimiento sea menor que 1.75 seg, para cumplir las especicaciones. Ahora que conocemos nuestro margen de fase y frecuencia de ancho de banda deseados, podemos dar inicio al diseo. Recurdese que siempre observamos los diagramas de Bode de lazo abierto. Por lo tanto, nuestra frecuencia de ancho de banda ser la frecuencia correspondiente a aproximadamente -t dB. Veamos ahora como la parte integradora del controlador afecta nuestra respuesta. Para esto, crearemos un nuevo archivo "rf2.sce", en el que incluiremos siguientes comandos: // Programa ejemplo de disenho de un controlador PI // utilizando respuesta de frecuencia s=poly(0,"s"); num=poly([10],"s","coe"); den=poly([1 1.25],"s","coe"); numPI=poly([1],"s","coe"); denPI=poly([0 1],"s","coe"); newnum=num*numPI; newden=den*denPI; [sistema1]=syslin('c',num/den); // Ploteo del diagrama de Bode bode(sistema1,0.01,10,0.0001);

Nuestros nuevos margen de fase y frecuencia de ancho de banda son demasiado pequeos. Aadiremos ganancia y fase con un cero. Coloquemos por ahora el cero en 1 y veamos que ocurre: // Agregado de un cero numPI=poly([1 1],"s","coe");
11 de 13 12/03/12 23:30

CTM: Frequency Response Tutorial

http://www.ing.una.py/APOYO/CONTROL CON SC...

denPI=poly([0 1],"s","coe"); newnum=num*numPI; newden=den*denPI; [sistema2]=syslin('c',newnum/newden); // Ploteo del diagrama de Bode bode(sistema2,0.01,10,0.0001);

Vemos asi que el agregado del cero con una ganancia unitaria proporciona la respuesta satisfactoria. Nuestro margen de fase es mayor que 60 grados (aun menos sobrepico que el esperado) y nuestra frecuencia de ancho de banda es aproximandamente 11 rad/s, lo que nos da una respuesta satisfactoria. A pesar de esto, la respuesta an no es tan buena como quisieramos. Por lo tanto, trataremos de obtener una mayor frecuencia de ancho de banda sin cambiar demasiado el margen de fase. Incrementemos la ganancia a 5 y veamos que ocurre. Esto har que la ganancia se desplace sin modicar la fase. // modicacion de la ganancia para mejorar la // frecuencia de ancho de banda numPI=5*numPI; newnum=num*numPI; [sistema3]=syslin('c',newnum/newden); // Ploteo del diagrama de Bode bode(sistema3,0.01,10,0.0001);

12 de 13

12/03/12 23:30

CTM: Frequency Response Tutorial

http://www.ing.una.py/APOYO/CONTROL CON SC...

Estos grcos se ven an mejor. Observemos la respuesta al escaln para vericar los resultados: // Respuesta a la entrada escalon // Construyendo el lazo cerrado sistema4=(newnum/newden)/(1+newnum/newden); t=0:0.001:0.5; [y X]=csim("step",t,sistema4); plot2d(t,y);

Como puede verse, la respuesta obtenida es mejor que la esperada. Sin embargo, no siempre tendremos la misma suerte y normalmente se debera entrar en un proceso de tanteo y error con respecto a la ganancia y a la posicin del polo y/o los ceros.

13 de 13

12/03/12 23:30

También podría gustarte