|
|
Dibujo de la respuesta en frecuencia usando el comando bode
Agregado de un doble-controlador en adelanto
Dibujo de la respuesta a lazo cerrado
A partir del problema principal, las ecuaciones dinámicas en la forma función de transferencia son las siguientes:



y el esquema del sistema es:
Para saber sobre el problema original y la derivación de las ecuaciones de arriba y el esquemático, refiérase por favor a página de Modelación del bus.
Queremos diseñar un controlador realimentado de modo que cuando la perturbación del camino (W) que se simula por una entrada escalón unitario, la salida (X1-X2)posea un tiempo de asentamiento menor que 5 segundos y un sobrepico menor que 5%. Por ejemplo, cuando el colectivo corre hacia un escalón de 10 cm de altura, la carrocería del colectivo oscilará en un rango de +/- 5 mm y dejará de oscilar en 5 segundos.
el modelo del sistema puede representarse en Matlab creando un nuevo archivo-m y entrando los siguientes comandos (pinche en problema original para detalles de cómo obtener estos comandos).
m1=2500; m2=320; k1 = 80000; k2 = 500000; b1 = 350; b2 = 15020; nump=[(m1+m2) b2 k2] denp=[(m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+(b1*b2) (b1*k2)+(b2*k1) k1*k2] num1=[-(m1*b2) -(m1*k2) 0 0] den1=[(m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+(b1*b2) (b1*k2)+(b2*k1) k1*k2] numf=num1; denf=nump;
La idea principal del diseño basado en la frecuencia es usar el diagrama de Bode del función de transferencia a lazo abierto para estimar la respuesta a lazo cerrado. El agregado de un controlador al sistema cambia el diagrama de Bode a lazo abierto de modo que la respuesta a lazo cerrado también se modificará. Primero grafiquemos el diagrama de Bode para la función de transferencia a lazo abierto original . Agregue la siguiente línea de código a su archivo-m y re-ejecútelo:

Por conveniencia en la representación con sistemas de diferentes frecuencias naturales, se normaliza y escala lo que se busca antes de dibujar el Diagrama de Bode, de modo que la asíntota de baja frecuencia de cada término esté en 0 dB. Esta normalización ajustando la ganancia, K, facilita agregar las componentes del diagrama de Bode. El efecto de K es mover la curva de magnitud hacia arriba (incrementando K) o hacia abajo (decrementando K) en la cantidad 20*logK, pero la ganancia, K, no tiene efecto en la curva de la fase. Por lo tanto de la figura anterior, K debe ser igual a 100 dB o 100,000 para mover la curva de magnitud hasta 0 dB en 0.1 rad/s. Regrese a su archivo-m y agregue lo siguiente a su archivo-m antes del comando bode y vuelva a correrlo:

Del diagrama de Bode anterior, vemos que curva de la fase es cóncava en las proximidades de 5 rad/seg.. Primero, intentemos de agregar una fase positiva alrededor de esta región, de modo que la fase permanezca por encima de la línea de -180 grados. Como un gran margen de fase lleva a un sobrepico pequeño, quisiéramos agregar al menos 140 grados de fase positiva en el área de los 5 rad/seg.. Como un controlador en adelanto puede agregar no más que +90 grados, usaremos un doble-controlador en adelanto:

Para obtener T y a, pueden usarse los siguientes pasos:
1: Determine la fase positiva necesaria :

4: Determine T y aT de las siguientes ecuaciones, esto determina las frecuencias de corte de modo que la máxima fase será adicionada en la frecuencia deseada.

Ahora pongamos nuestro doble-controlador en adelanto en el sistema y veamos el diagrama de Bode que se ve. Agregue el código siguiente a su archivo-m, y además un % adelante del comando bode anterior (si hubiera uno):
numc=conv([1.13426 1], [1.13426 1]); denc=conv([0.035265 1], [0.035265 1]); margin(conv(nump,numc),conv(denp,denc))Debería obtenerse el siguiente diagrama deBode :

Como el diagrama de Bode tiene un rango de fase limitado (-360-0), el gráfico de arriba es un poco engañoso. La figura es equivalente al siguiente:

De esta figura vemos que la porción cóncava del gráfico de la fase está ahora por encima de los -180 grados, y el margen de fase es lo bastante grande como para los criterios de diseño. Veamos cómo responde la salida (distancia X1-X2) a una lomada en el camino (W). Recordemos que el esquema del sistema es:
y la función de transferencia a lazo cerrado puede derivarse como sigue:
Para obtener la función de transferencia a lazo cerrado de W a X1-X2, puede agregarse los siguientes comandos al archivo-m:
numa=conv(conv(numf,nump),denc); dena=conv(denf,polyadd(conv(denp,denc),conv(nump,numc)));Note que la función "polyadd" no es una función estándar del Matlab. necesitará copiarla a un archivo-m nuevo para usarla. Pinche aquí para más información.
Refiérase a la página de Modelación del colectivo, nump = denf como podemos ver en el comando Matlab de arriba. Por lo que podemos simplificar esta función de transferencia a la siguiente:
numa=conv(numf,denc); dena=polyadd(conv(denp,denc),conv(nump,numc));
Veamos cómo se ve la respuesta al escalón ahora. Tenga en cuenta que estamos usando un escalón de 0.1 m de alto como perturbación . Para simular esto, simplemente multiplique numa por 0.1. Agregue el siguiente código en el archivo-m y ejecútelo de nuevo. No olvide poner la marca % delante de todos los comandos bode y margin !
t=0:0.01:5; step(0.1*numa,dena,t) axis([0 5 -.01 .01])y debería ver la figura siguiente:


De esta figura podemos ver que el sobrepico porcentual es alrededor de 0.15 mm menor que el del gráfico anterior y el tiempo de establecimiento es también menor que 5 segundos. Esta respuesta ahora es satisfactoria y no es necesario más iteraciones de diseño.
Tutoriales