CMU
UM


Tutorial de Análisis y Diseño de la Respuesta en Frecuencia


I. Diagramas de Bode [ Ganancia y margen de fase | Ancho de banda | Respuesta a lazo cerrado ]

II. El Diagrama de Nyquist [ Estabilidad a lazo cerrado | Margen de ganancia | Margen de fase ]

Los comandos del Matlab empleados en estas guías son bode, nyquist, nyquist1, lnyquist1, margin, lsim, step, y cloop


El método de la respuesta en frecuencia puede ser menos intuitivo que otros métodos que ha estudiado anteriormente. Sin embargo, tiene ciertas ventajas, especialmente en situaciones reales como modelado de funciones de transferencia a partir de datos físicos.

La respuesta en frecuencia de un sistema puede verse de dos maneras distintas: via el diagrama de Bode ,o via el Diagrama de Nyquist. Ambos métodos presentan la misma información; la diferencia radica en la manera en que se presenta la información. En este tutorial estudiaremos ambos métodos .

La respuesta en frecuencia es una representación de la respuesta del sistema a entradas sinusoidales a frecuencia variable. La salida de un sistema lineal a una entrada sinusoidal es una sinusoide de la misma frecuencia pero con distinta magnitud y fase. La respuesta en frecuencia se define como las diferencias de magnitud y fase entre las sinusoides de entrada y salida. En esta Guía, veremos cómo podemos usar la respuesta en frecuencia de un sistema a lazo abierto para predecir su comportamiento a lazo cerrado.

Para graficar la respuesta en frecuencia, creamos un vector de frecuencias (entre cero o "DC" e infinito) y calculamos el valor de la función de transferencia de la planta a estas frecuencias. Si G(s) es la función de transferencia de un sistema a lazo abierto y w es el vector frecuencia, grafiquemos entonces G(j*w) vs. w. Como G(j*w) es un número complejo, podemos graficar su magnitud y fase (diagrama de Bode) o su posición en el plano complejo (diagrama de Nyquist). Se dispone de mayor información en ploteo de la respuesta en frecuencia.

Diagramas de Bode

Como se vio anteriormente, el diagrama de Bode es la representación de la magnitud y fase de G(j*w) (donde el vector frecuencia w contiene únicamente frecuencias positivas). Para ver el diagrama de Bode de una función de transferencia, puede usar el comando bode. por ejemplo,
	bode(50,[1 9 30 40])
muestra los diagramas de Bode por el función de transferencia:

  50
   -----------------------
   s^3 + 9 s^2 + 30 s + 40

Fíjese en los ejes de la figura. La frecuencia está en escala logarítmica, la fase se da en grados, y la magnitud se da como la ganancia en decibeles.

Nota: se define un decibel como 20*log10 ( |G(j*w| )

Pinche aquí para ver una colección de unos pocos Diagramas de Bode simples.

Ganancia y margen de Fase

Digamos que tenemos el siguiente sistema:

donde K es una ganancia variable (constante) y G(s) es la planta en consideración. El margen de ganancia se define como el cambio en la ganancia a lazo abierto necesario para inestabilizar el sistema. Los sistemas con márgenes de ganancia grandes pueden tolerar mayores cambios en los parámetros del sistema antes de hacerse inestable a lazo cerrado.

Tenga en cuenta que una ganancia unitaria en magnitud es igual a ganancia de cero en dB.

El margen de fase se define como el cambio a lazo abierto en la fase necesario para inestabilizar el sistema a lazo cerrado.

El margen de fase mide también el la tolerancia del sistema a retardos. Si hay un retardo mayor que 180/Wpc en el lazo (donde Wpc es la frecuencia donde el cambio de fase es 180 grados), el sistema se inestabilizará a lazo cerrado. El retardo puede pensarse como un bloque extra en el camino directo del diagrama en bloque que adiciona fase al sistema pero no tiene efecto en la ganancia. Esto es, un retardo puede representarse como un bloque con magnitud de 1 y fase w*tiempo_retardo (en radianes/segundo ).

Por ahora, no nos preocupemos por saber de donde viene todo esto y concentrémonos en identificar los márgenes de ganancia y fase en el diagrama de Bode:

El margen de fase es la diferencia de fase entre curva de la fase y -180 grados en el punto correspondiente a la frecuencia que nos da una ganancia de 0dB (la frecuencia de cruce de ganancia, Wgc). Del mismo modo, el margen de ganancia es la diferencia entre la curva de magnitud y 0dB en el punto correspondiente a la frecuencia que nos da una fase de -180 grados (la frecuencia de cruce de fase, Wpc).

Algo interesante acerca del margen de fase es que no es necesario volver a graficar el d. de Bode para hallar el nuevo margen de fase cuando cambiamos las ganancias. Si recuerda, el agregado de ganancia solo desplaza la línea de magnitud en sentido vertical. Esto es equivalente a cambiar el eje y en el gráfico de magnitud. Hallar el margen de fase es simplemente cuestión de encontrar la nueva frecuencia de cruce y leer el margen de fase. Por ejemplo, suponga que ingresa el comando bode(50,[1 9 30 40]). Obtendrá el siguiente diagrama de Bode:

Debería verse que el margen de fase es alrededor de 100 grados. Suponga que ahora adiciona una ganancia de 100, mediante el comando bode(100*50,[1 9 30 40]). Debería obtenerse la figura siguiente (note que se han cambiado los ejes de modo que la escala será la misma que la de la figura anterior, el diagrama de Bode podría no tener exactamente la misma forma, ya que esto dependerá de la escala usada):

Como puede ver la línea de la fase es exactamente la misma que antes, y el gráfico de magnitud se corrió para arriba en 40dB (ganancia de 100). El margen de fase es ahora acerca de -60 grados. Puede lograrse idéntico resultado si el eje y del gráfico de magnitud fuese bajado 40dB. Experimente: observe el primer diagrama de Bode, encuentre la frecuencia donde la curva cruza la línea de -40dB, y saque el margen de fase. Debería ser cerca de -60 grados, lo mismo que el segundo Diagrama de Bode.

Podemos hallar los márgenes de ganancia y fase de un sistema directamente, usando Matlab. Ingrese el comando margin. Este comando devuelve los márgenes de ganancia y fase, las frecuencias de cruce de ganancia y fase, y una representación gráfica de ellas en el diagrama de Bode. Verifiquémoslo :

	margin(50,[1 9 30 40])

Ancho de banda frecuencial

El ancho de banda se define como la frecuencia a la cual la respuesta en magnitud lazo cerrado es igual a -3 dB. Sin embargo, cuando se diseña via respuesta en frecuencia, nos interesa predecir el comportamiento a lazo cerrado a partir de la respuesta a lazo abierto. Por lo tanto, usaremos una aproximación a un sistema de segundo orden y diremos que el ancho de banda es igual a la frecuencia a la cual la respuesta en magnitud a lazo abierto está entre -6 y - 7.5dB, considerando que la respuesta en fase a lazo abierto está entre -135 grados y -225 grados. Consulte el libro de texto si busca una derivación más completa de esta aproximación.

Si quisiera ver cómo puede hallarse matemáticamente el ancho de banda de un sistema a lazo cerrado, a partir del coeficiente de amortiguamiento y la frecuencia natural, en Ancho de banda frecuencial se dan las ecuaciones más importantes así como alguno gráficos y código Matlab.

para ilustrar la importancia del ancho de banda, se mostrará cómo cambia la salida con diferentes frecuencias de entrada . Se hallará que el sistema es capaz de seguir(copiar) "razonablemente bien" las entradas sinusoidales con frecuencia menor que Wbw (el ancho de banda) . Sin embargo las entradas sinusoidales con frecuencia mayor que Wbw son atenuadas (en magnitud) en un factor de 0.707 o mayor (y también cambiadas de fase).

Digamos que tenemos la siguiente función de transferencia a lazo cerrado que representa un sistema:

1 --------------- s^2 + 0.5 s + 1
Antes que nada, encontremos el ancho de banda mirando el Diagrama de Bode:
bode (1, [1 0.5 1 ])

Como ésta es la función de transferencia a lazo cerrado , el ancho de banda será la frecuencia correspondiente a una ganancia de -3 dB. observando el gráfico, encontramos que AB es aproximadamente 1.4 rad/s. Podemos también sacar del gráfico que para una frecuencia de entrada de 0.3 radianes, la sinusoide de salida debería tener una magnitud cercana a uno y la fase debería ser desplazada tal vez unos grados (atrasada de la entrada). Para una frecuencia de entrada de 3 rad/seg., la magnitud de salida debería ser más o menos de -20dB (o 1/10 de la entrada) y la fase debería ser aproximadamente -180 (casi exactamente la fuera-de-fase). Podemos usar el comando lsim para simular la respuesta del sistema a entradas sinusoidales .

Primero, considere una entrada sinusoidal con una frecuencia menor que Wbw. Se deberá tener en cuenta que también queremos ver la respuesta en estado estacionario. Por lo tanto, modificaremos los ejes para ver la respuesta en estado estacionario claramente (ignorando la respuesta transitoria).

	w= 0.3;
	num = 1;
	den = [1 0.5 1 ];
	t=0:0.1:100;
	u = sin(w*t);
	[y,x] = lsim(num,den,u,t);
	plot(t,y,t,u)
	axis([50,100,-2,2])

Note que la salida (azul) copia la entrada (magenta) bastante bien; es quizás unos grados detrás de la entrada como se esperaba.

Sin embargo, si hacemos la frecuencia de la entrada más alta que el ancho de banda del sistema, obtenemos una respuesta muy distorsionada (respecto de la entrada):

	w = 3;
	num = 1;
	den = [1 0.5 1 ];
	t=0:0.1:100;
	u = sin(w*t);
	[y,x] = lsim(num,den,u,t);
	plot(t,y,t,u)
	axis([90, 100, -1, 1])

De nuevo, note que la magnitud es alrededor de 1/10 de la entrada, como se predijo, y que está casi en contrafase (180 grados atrás) con la entrada. Siéntase libre de experimentar y observar la respuesta a varias frecuencias distintas w, veamos si coinciden en el diagrama de Bode.

Comportamiento a lazo cerrado

Para predecir performance a lazo cerrado a partir de la respuesta en frecuencia a lazo abierto, necesitamos tener en claro varios conceptos: Usemos estos conceptos para diseñar a controlador para el siguiente sistema:

Donde Gc(s) es el controlador y G(s) es:

  10
   ----------
   1.25s + 1

El diseño debe conseguir los requisitos siguientes: Hay dos maneras de resolver este problema: uno es gráfico y el otro es numérico. Dentro del Matlab, el método gráfico es el mejor, de modo que es lo que usaremos. Primero, mire el diagrama de Bode. Cree un archivo-m con el siguiente código:
num = 10;
den = [1.25,1];
bode(num, den)

Hay muchas características del sistema que puede leerse directamente del diagrama de Bode. Antes que nada, podemos ver que el ancho de banda es alrededor de 10 rad/seg.. Como el ancho de banda es aproximadamente la frecuencia natural (para un sistema de segundo orden de este tipo), el tiempo de elevación es 18/BW=18/10=1.8 segundos. Esta estimación es imprecisa, así que diremos que el tiempo de elevación es alrededor de 2 segundos.

El margen de fase para este sistema es aproximadamente 95 grados. Esto se corresponde a un amortiguamiento de PM/100=95/100=0.95. Introduciendo este valor en la ecuación que relaciona el sobrepico y el coeficiente de amortiguamiento (o consultando un gráfico con esta relación), encontramos que el coeficiente de amortiguamiento correspondiente a este sobrepico es aproximadamente 1%. el sistema será cerca de ser sobreamortiguado.

El último punto de mayor interés es el error de estado estacionario. El error de estado estacionario puede también leerse directamente del diagrama de Bode . Las constantes (Kp, Kv, o Ka) se ubican en la intersección de la asíntota de baja frecuencia con la línea w=1. Tan solo extienda la línea de baja frecuencia hacia la línea w=1. La magnitud en este punto es la constante. Como el diagrama de Bode de este sistema es a bajas frecuencias una línea horizontal (pendiente = 0), sabemos este sistema es de tipo cero. Por lo tanto, la intersección es fácil de hallar. La ganancia es 20dB (magnitud 10). Lo que significa que la constante de la función error es 10. Pinche aquí para ver la tabla de tipo de sistema y funciones error. El error de estado estacionario es 1/(1+Kp)=1/(1+10)=0.091. Si el sistema fuera tipo uno en lugar de tipo cero, la constante del error de estado estacionario se encontrara de manera similar a la siguiente

Verifiquemos nuestras predicciones mirando al gráfico de respuesta al escalón. Esto puede lograrse agregando la siguiente dos líneas de código en la ventana de comandos del Matlab.

Como puede ver, nuestras predicciones han sido muy buenas. El sistema tiene un tiempo de subida de aproximadamente 2 segundos, está sobreamortigüado, y tiene un error de estado estacionario de alrededor del 9%. Ahora necesitamos elegir un controlador que nos permita cumplir con los criterios de diseño. Elegimos controlador PI porque nos dará un error de estado estacionario cero frente a entrada escalón . Además, el controlador PI tiene un cero, que podemos ubicar. Esto nos da una flexibilidad adicional en el diseño que nos ayuda a satisfacer nuestros criterios. Recordemos que el controlador PI está dado por:

K*(s+a) Gc(s) = ------- s
Lo primero que necesitamos hallar es el coeficiente de amortiguamiento correspondiente a un porcentaje de sobrepico de 40%. Introduciendo este valor en la ecuación que relaciona sobrepico y coeficiente de amortiguamiento (o consultando un gráfico con esta relación), encontramos que el coeficiente de amortiguamiento correspondiente a este sobrepico es aproximadamente 0.28. Por lo tanto, nuestro margen de fase debería ser aproximadamente 30 grados. En Gráfico de Ts*Wbw vs coeficiente de amortiguamiento , encontramos que Ts*Wbw ~ 21. Debemos tener un ancho de banda mayor o igual a 12 si queremos nuestro tiempo de establecimiento sea menor que 1.75 segundos, lo cual cumple con las especificaciones de diseño.

Ahora que conocemos el margen de fase deseado y ancho de banda, podemos empezar nuestro diseño. Recuerde que estamos mirando los diagramas de Bode a lazo abierto . Por lo tanto, el ancho de banda será la frecuencia correspondiente a una ganancia de aproximadamente -7 dB.

Veamos cómo afecta la parte integradora del PI a la respuesta. Modifique su archivo-m al siguiente (esto agrega un término integral pero no uno proporcional):

num = [10];
den = [1.25, 1];
numPI = [1];
denPI = [1 0];
newnum = conv(num,numPI);
newden = conv(den,denPI);
bode(newnum, newden, logspace(0,2))

Nuestros margen de fase y ancho de banda son muy pequeños. Agregaremos ganancia y fase con un cero. Ubiquemos el cero en 1 por ahora y veamos qué sucede. Cambie su archivo-m al siguiente:

num = [10];
den = [1.25, 1];
numPI = [1 1];
denPI = [1 0];
newnum = conv(num,numPI);
newden = conv(den,denPI);
bode(newnum, newden, logspace(0,2))

Resulta que el cero en 1 con ganancia unitaria nos da una respuesta satisfactoria. Nuestro margen de fase es mayor que 60 grados (aún menor sobrepico que el esperado) y el ancho de banda es aproximadamente 11 rad/s, lo cual nos dará una respuesta satisfactoria. A pesar que satisfactoria, la respuesta no es tan buena como quisiéramos. Por lo tanto, Intentemos obtener un ancho de banda mayor sin cambiar demasiado el margen de fase. Probemos incrementar la ganancia a 5 y veamos qué sucede. Esto hará aumentará la ganancia y la fase permanecerá sin cambios.

num = [10];
den = [1.25, 1];
numPI = 5*[1 1];
denPI = [1 0];
newnum = conv(num,numPI);
newden = conv(den,denPI);
bode(newnum, newden, logspace(0,2))

Esto luce realmente bien. Miremos nuestra respuesta al escalón y verifiquemos nuestros resultados. Agregue las siguiente dos líneas a su archivo-m:

[clnum,clden] =cloop(newnum,newden,-1);
step(clnum,clden)

Como puede ver, la respuesta es mejor que la que esperábamos.
Sin embargo, no siempre tendremos tanta suerte y normalmente debamos jugar con la ganancia y la posición de los polos y/o ceros para lograr los requerimientos de diseño.

Esta guía se continúa en la página Nyquist (el link se halla luego del formulario de realimentación).


User Feedback
We would like to hear about suggestions you have for improvement, difficulties you had with the tutorials, errors que you found, or any other comments que you have. This feedback is anonymous.


Respuesta en Frecuencia II: El diagrama de Nyquist

Respuesta en Frecuencia : Ejemplos
Control de Marcha | Velocidad del Motor | Posición de un Motor | Suspensión de un Colectivo | Péndulo Invertido | Control de Inclinación | Barra y Bola

Tutoriales
Matlab Básico | Modelación | PID | Lugar de Raíces | Respuesta en Frecuencia | Espacio de Estado | Control Digital | Ejemplos


Inicio Inicio (sólo texto) Comandos del Matlab

8/27/96 LJO