UNIVERSIDAD DE SAN BUENAVENTURA FACULTAD DE CIENCIAS BÁSICAS E INGENIERIA INGENIERIA AERONAUTICA DINÁMICA DE VUELO INFORME DE LABORATORIO – MATLAB & SIMULINK
MAYRA GERALDINE BOGOTÁ ANZOLA SEBASTIAN OCAMPO JARAMILLO
1. INTRODUCCIÓN El siguiente laboratorio se enfoca en presentar los resultados obtenidos a partir de la creación de un modelo y análisis del mismo, en las plataformas de MATLAB y SIMULINK, para tres casos de interés, como son control de crucero, suspensión y el movimiento de cabeceo de una aeronave. Se presentarán los pasos a seguir para construir cada uno de los modelos, el código y/o diagrama de bloques para cada caso, así como un análisis de cada uno de los resultados obtenidos. 2. OBJETIVOS 2.1 Objetivo General Modelar y analizar tres casos de estudio, crucero, suspensión y cabeceo de una aeronave, en la plataforma de Matlab y Simulink. 2.2 Objetivos Específicos Identificar las distintas herramientas del entorno de Simulink. Modelar en Matlab las ecuaciones que describen cada uno de los casos. Interpretar cada uno de los casos de estudio. 3. MARCO CONCEPTUAL Matlab y Simulink son plataformas que permiten diseñar, modelar y analizar sistemas y códigos a partir de una serie de herramientas. Matlab es un software que permite visualizar y computar sistemas numéricos de alto rendimiento. Provee un ambiente interactivo con cientos de funciones de un lenguaje de programación [4]. Simulink es un ambiente de diagramas para simulaciones en múltiples dominios y un diseñador de modelos base. Simulink provee un editor gráfico, librerías de bloques y solucionadores para modelar y simular sistemas dinámicos, está incorporado a Matlab, por lo que se pueden importar algoritmos de Matlab dentro de los modelos, y así mismo exportar estos para análisis posteriores en Matlab [5]. Existe una gran variedad de éstas disponibles, a continuación se hará mención de alguna de ellas con el fin de entender el desarrollo del laboratorio. State-space: Es un bloque que modela un sistema que se comporta de acuerdo: ̇
1
Donde x es el vector de estado, y es el vector de salida, u es el vector de entrada. Finalmente lo que se ingresara en el bloque son 4 matrices que deberán tener las siguientes características: La matriz A debe ser una matriz cuadrada N x N, donde n es el número de estados. La matriz B debe ser una matriz de N x M, donde m es el número de entradas. La matriz C deber ser una matriz de R x N, donde r es el número de salidas. La matriz D será la multiplicación de la matriz R x M. Un bloque de state-space es un bloque que utiliza variables de estado que describen un sistema por un conjunto de ecuaciones diferenciales de primer orden. Estas variables de estado pueden reconstruirse a partir de la información medida de entrada y salida, sin embargo estas variables encontradas no son medidas en el sistema en sí. Terminator: Este bloque sirve para limitar los bloques cuyos puertos de salida no se conecten a otros, si no se utiliza Simulink suele mostrar un error. Gain: Este bloque multiplica la señal de entrada por un valor constante, esta puede ser un escalar, un vector o una matriz. En caso de que sea una matriz, Simulink permite indicar el orden en que deben multiplicarse los valores. Controlador PID: Es un mecanismo de control utilizado para la realimentación de los sistemas. Es un controlador realimentado cuyo propósito es hacer que el error en estado estacionario, entre la señal de referencia y la señal de salida de la planta, sea cero de manera asintótica en el tiempo, lo que se logra mediante el uso de la acción integral. Además el controlador tiene la capacidad de anticipar el futuro a través de la acción derivativa que tiene un efecto predictivo sobre la salida del proceso [3]. Se caracteriza por seguir tres acciones:
La salida del controlador es proporcional al error del sistema. Un controlador proporcional puede controlar cualquier sistema estable, pero posee un desempeño limitado y error en régimen permanente [1]. La salida del controlador que es proporcional al error acumulado del sistema, deberá ante una perturbación, presentar un error en régimen permanente igual a cero, por lo que es necesario encontrar una constante que permita esto, a partir de la integral de la señal error. La derivativa del sistema será una dependiente de alguna de las anteriores para estar presente.
Dicho esto un controlador PID, reúne las ventajas de cada una de las tres acciones de control individuales [1]. El diseño de este tipo de controladores requiere de un análisis profundo, es por ello que para el desarrollo de este laboratorio, se utilizaran los valores por defecto del programa. Básicamente, el bloque del controlador en Simulink realiza la suma, la integral y la derivada de la señal de entrada, a partir de unos valores de ganancia determinados y/o estipulados por el diseñador.
2
4. DESARROLLO DE LOS PROBLEMAS 4.1 CONTROL DE CRUCERO Por medio del siguiente ejemplo se puede establecer un modelo simple de dinámica para el entendimiento de un sistema de control de crucero con retroalimentación. Primero se deben establecer las ecuaciones del sistema con el diagrama de cuerpo libre. Se puede identificar que este modelo es de primer orden y también se comporta como un sistema masa- amortiguador. Haciendo una sumatoria de fuerzas en x y aplicando la segunda ley de newton se establece la siguiente ecuación. ̇ Donde los valores de cada una de las variables son masa de 1000 kg, coeficiente de amortiguamiento 50 Ns/m y fuerza de 500 N. 4.1.1 MODELADO EN MATLAB Como se ha establecido anteriormente las ecuaciones de primer orden controlan una variable de estado, en este caso la velocidad del vehículo, de esa forma la representación del modelo es: ̇
[
], -
[ ], -
Luego por medio de Laplace se procede a establecer la función de transferencia de la ecuación diferencial que rige al sistema, teniendo cuenta que la velocidad es la salida y la fuerza es la entrada. ( ) ( ) Es importante tener en cuenta algunos criterios de diseño que el sistema debe lograr para que se encuentre compensado. Se establece que con la fuerza de 500 N este vehículo alcanzara una velocidad máxima de 10 m/s, por lo tanto los criterios de diseño propuestos para este sistema serán los siguientes:
Rise time menor a 5 segundos. Overshoot menor al 10%. Steady-state error menor al 2%.
Ya con estos criterios se puede analizar el sistema por medio de MATLAB y poder presentar la información plateada. El código se muestra en el Anexo 1. 4.1.2
ANALISIS EN MATLAB
Para esta primera parte se analizará el sistema como un sistema de lazo abierto, sin un control de retroalimentación. Teniendo en cuenta los parámetros previamente establecidos.
3
En la figura 1 se puede observar que no se presentan oscilaciones en el sistema y que aunque alcanza la velocidad en estado estacionario de 10 m/s, el tiempo de subida es demasiado lento, por lo tanto es necesario crear un sistema retroalimentado y ver como se comparta la señal escalonada de entrada con el fin de conseguir un aumento del tiempo de subida o de respuesta sin afectar los otros parámetros del rendimiento dinámico. Ceros y polos del sistema
Figura 1. Sistema abierto para el control de crucero.
Con la función de transferencia del sistema se puede identificar que esta solo tiene un polo al igualar su denominador a cero. En la figura 2 se muestra el mapa de polos y ceros. Como se observa en la figura 2, al analizar el sistema como uno de lazo abierto se puede afirmar que este es estable y además que cuando mayor sea la magnitud más rápido el sistema se acercara a ser estacionario. Por lo tanto se debe diseñar un controlador que pueda alterar los polos y ceros para satisfacer los criterios previamente establecidos. Es importante conocer la respuesta en frecuencia del sistema, en este caso se utiliza el diagrama de Bode para un sistema abierto, el resultado se muestra en la figura 3.
Figura 2. Diagrama de polos y ceros para el control de crucero.
4.1.3
MODELADO EN SIMULINK
Como se dedujo anteriormente, este sistema está modelado por medio de la sumatoria de fuerzas. Para realizar el modelado de este vehículo, se siguieron los siguientes pasos: 1. Como primer paso, se procede a modelar la integración de la aceleración ya que se quiere encontrar la variación de velocidad respecto a la entrada que en este caso sería la fuerza de 500 N. 2. Se ubica una ganancia antes del proceso de integración debido a que es necesario dividir en cada componente de la ecuación la inercia, como se puede ver en la ecuación número 2.
4
3. Como se sabe que la entrada es u=500 en el tiempo igual a cero, se procede a colocar una señal tipo Step con un valor final igual a u y un tiempo inicial de cero, ya que cómo se vio anteriormente las variables ya fueron nombradas en el comand window de MATLAB. 4. Para realizar el controlador de retro alimentación se pone un elemento de comparación entre la entrada y la salida del proceso, y entre este la constante de amortiguamiento. Con el fin, de saber el comportamiento de la velocidad respecto al tiempo. Figura 3. Diagrama de Bode para el control de crucero.
La respuesta del diagrama de bloques del anexo 1 ilustración 1, se muestra en la figura 4.
Figura 4. Señal de salida para el control de crucero con retroalimentación.
Luego de establecer la señal de velocidad respecto al tiempo en MATLAB y en Simulink se puede afirmar que se comportan igual, sin embargo se debe diseñar un controlador PI con el fin de que el tiempo de respuesta aumente y mejorar la respuesta del sistema de control de crucero.
5
4.1.4
DISEÑAR UN CONTROLADOR EN SIMULINK
Para este caso se diseñara un control PI, la implementación de este control ayudara a tener la respuesta deseada de crucero para satisfacer las especificaciones de rendimiento del sistema. Se deben establecer los siguientes pasos: 1. Para regular la respuesta deseada se diseñan dos ganancias una de Kp=800 y Ki=40. Para aplicar esto en Simulink se debe contener el procedimiento anterior como un subsistema que será el proceso o el modelo del sistema. 2. Luego de tener el subsistema, se pondrá un comparador, un integrador y las dos ganancias previamente nombradas como se verá a continuación. La salida del bloque de suma brindará la señal de error y a partir de esto se podrá generar componentes proporcional e integral. (Figura 5a) 3. Para generar los componentes proporcional e integrar se inserta otro comparador entre las ganancias Ki y Kp, la salida del bloque del comparador se conecta a la entrada del bloque del proceso. (Figura 5b) 4. Finalmente, se aplicará una señal Step de entrada para ver la salida con un bloque de alcance. El diagrama de bloques se presenta en el anexo 1 ilustración 2. La respuesta del sistema al diagrama de bloques planteado se muestra en la figura 6.
a)
b)
Figura 5. Proceso para diseñar el control PI para control de crucero.
6
Figura 6. Señal de salida para el control de crucero con controlador PI.
4.2 SUSPENSIÓN El diseño de un sistema de suspensión de un automóvil, se puede simplificar por medio de un modelo masaamortiguador analizando una sola rueda. Este modelo caracteriza la suspensión del sistema donde hay un actuador que genera una fuerza de control con el fin de controlar el movimiento del bus. En la figura 7 se muestra está simplificación del modelo con sus respectivos componentes de control. Para modelar y analizar este sistema se requiere establecer ciertos parámetros iniciales:
Figura 7. Diagrama de cuerpo libre para un sistema de suspensión.
( (
) ) 7
(
) (
)
(
) (
4.2.1
)
MODELADO EN MATLAB
Según el diagrama del cuerpo libre del sistema y las leyes de newton, se pueden establecer una sumatoria de fuerzas y conocer las ecuaciones de equilibrio dinámico. Sin embargo al tener en cuenta la masa del bus y de la suspensión, se deben encontrar dos ecuaciones que satisfagan el comportamiento dinámico de cada masa. A continuación se muestran las dos ecuaciones dinámicas que representan el comportamiento del sistema a partir de los parámetros anteriormente mencionados. ̈ ̈
( ̇
̇ )
( ̇
̇ )
(
(
)
( ̇
) ̇ )
(
)
El siguiente paso a seguir es encontrar la función de transferencia expresándolas las ecuaciones dinámicas ( )y ( ) que están en función anteriores en forma de la transformada de Laplace, y así poder obtener de las entradas U y W. ) ( ) ( ) ( ) ( ( ) (
)
( )
(
(
)
(
))
( )
(
) ( )
( )
Ya obtenidas las transformadas de Laplace y teniendo en cuenta que este sistema tiene múltiples entradas y salidas, se resuelve el problema por medio de matrices. Como se ven en las siguientes ecuaciones se ( ) se declara U(s) establece que para obtener ( ) se declara W(s) como cero, mientras que para igual a cero. ( )
( )
( )
Donde
( )
(
)
( ) ( )
( ) ( )
es el determinante de la matriz.
8
(
4.2.2
)(
(
)
(
))
(
)(
)
ANALISIS EN MATLAB
Cuando el vehículo este experimentando cualquier perturbación en la carretera (W), el cuerpo no debe ser sensible a estas perturbaciones o si lo es las oscilaciones en el sistema se deberán disipar rápidamente. Teniendo en cuenta que esta solución es una estimación se utilizaran la distancia X1-X2-X1 como la salida del sistema. Debido a que W es la perturbación que puede ocurrir cuando el vehículo esté operando o en funcionamiento, se podrá representar como una entrada escalón para poder simular cuando el vehiculó sale de algún bache. Los primeros criterios de diseño para la salida X1-X2 son los siguientes:
Overshoot menor que 5%. Setting time menor de 5 segundos.
Ahora ya se ingresan los comandos en MATLAB que comprenden paramentos y herramientas necesarias para solucionar el problema teniendo en cuenta que se analizará por medio de un sistema de lazo abierto. Los comandos anteriormente mencionados se encuentran en el anexo 2. En la figura 8 se muestra la respuesta del sistema abierto diseñado y la respuesta del mismo ante una perturbación.
a)
Sistema de suspensión sin perturbación.
b) Sistema de suspensión con perturbación.
Figura 8. Respuesta de un sistema de suspensión.
9
4.2.3
MODELADO EN SIMULINK
Este sistema se modelara sumando las fuerzas que actúan sobre ambas masas, además de integrar las aceleraciones para obtener las salidas del sistema, en este caso las velocidades y las posiciones. El diagrama de bloques del modelamiento por medio de Simulink se puede observar en el anexo 2 ilustración 3. ∬
∫
∬
∫
Luego de establecer la sumatoria de fuerzas se procede a modelar la segunda ley de newton para cada una de las masas del cuerpo y de la suspensión, expresándolas de la siguiente manera:
Luego se establece la respectiva sumatoria de fuerzas por medio de comparadores teniendo en cuenta las constantes de amortiguamiento y de resorte que se ubican en el diagrama de bloques como ganancias del sistema, esto se puede apreciar en el anexo 2.
Figura 5. Respuesta del sistema de suspensión en Simulink.
10
Para la simulación es necesario declarar las variables en la plataforma de Matlab para no generar ningún error. Los valores necesarios son:
M1= 2500 M2= 320 K1= 80000 K2=500000 B1= 350 B2=15020
Como se está considerando la perturbación del suelo (W), se adiciona al sistema por medio de una señal escalonada la cual es derivada para representar y generar la fuerza de amortiguamiento de la rueda por medio de una señal. Por último se ubicar una señal tipo escalón para simular la fuerza de control U en la entrada conectándola a los elementos comparadores que hacen todo el desarrollo del respectivo modelamiento (anexo 2). Como se puede apreciar en la figura 9, la señal se considera sub amortiguada. 4.2.4
DISEÑAR UN CONTROLADOR EN SIMULINK
Además de encontrar una respuesta del sistema de suspensión respecto a una fuerza de control U, Se debe emplear un diseño de un controlador con el fin de encontrar la respuesta en el tiempo del sistema de una forma adecuada, ya que los requerimientos de diseño se establece que el modelo debe tener un tiempo de asentamiento de 5 segundos sin embargo con la fuerza de control que el problema establece se estabiliza en un tiempo aproximado de 50 segundos. Para iniciar con el controlador se pasa de Simulink a Matlab, extrayendo el código. A partir de cambiar la señal de entrada por un bloque ln, y el scope por un out, como se muestra en la ilustración 4 del anexo 2, se inserta en la plataforma de Matlab el siguiente código. [A,B,C,D]=linmod('suspenscontrol') [num,den]=ss2tf(A,B,C,D) Es importante que dentro del parentisis y las comillas este el nombre con el que se ha guardado el archivo. Al ingresar esto se generara un código en donde se tiene el state-space y la función de transferencia del modelo. Ahora bien, se crea un subsistema en un nuevo archivo cambiando el bloque de la señal step que tiene el valor de W por un bloque ln 1. Seguidamente se insertan una serie de bloques Out1, uno se conecta con la ganancia de damper 1, el segundo se conecta a la línea en donde esta x1, el tercero se conectara a la línea de v1. Lo anterior se evidencia en el diagrama de bloques de la ilustración 5 en el anexo 2. El siguiente paso es generar el sistema de integral para Y1. Para ello se siguen los pasos:
Se inserta un bloque de integración y se conecta antes del bloque out 1 nombrado como y1.
Se inserta un bloque Out y se conecta a la línea de salida del bloque puesto en el paso anterior.
Siguiendo esto se ha creado el subsistema del modelo de suspensión. Ya en la ventana del nuevo archivo creado se inserta un mux en el cual se conecta cada entrada con una de las salidas del subsistema.
11
Seguidamente se inserta una señal tipo step con un step time y un final value de Cero. El resultado final del sistema con controlador se muestra en la ilustración 6 del anexo 2. 4.3 AIRCRAFT PITCH Es claro que una aeronave tiene seis grados de libertad, por lo que las ecuaciones que modelaran su comportamiento son seis ecuaciones diferenciales no lineales. Sin embargo, bajo ciertas condiciones es posible reducir el sistema a unas ecuaciones que describan el movimiento de cabeceo del avión, el cual está gobernado por el eje longitudinal como se explicó anteriormente. Teniendo esto claro, se tendrán las siguientes dos condiciones para el desarrollo del ejercicio que modelará un sistema en donde la entrada es la deflexión del elevador y la salida será el ángulo de pitch de la aeronave.
La aeronave está en vuelo recto y nivelado. El cambio en el ángulo de pitch no producirá ningún cambio en la velocidad de la aeronave.
Una vez se tiene planteado lo anterior, se escogen unos criterios de diseño, de tal forma que la respuesta del sistema a una señal escalonada sea la siguiente: 4.3.1
Overshoot menor al 10% Rise time menor a 2 segundos. Setting time menor a 10 segundos. Steady-state error menor al 2%. MODELADO EN MATLAB
Se establecen las ecuaciones de movimiento para la aeronave bajo las condiciones establecidas.
̇
̇
[ (
*,
(
)
)-
( ,
(
) (
)
)-
]
(
) -+
̇ Para encontrar la función de transferencia del modelo, se utilizan las ecuaciones anteriores pero con los valores de una aeronave comercial de Boeing. ̇ ̇
12
̇ El siguiente paso que se debe seguir es encontrar la función de transferencia encontrando la transformada de Laplace. ( ) El sistema que se modelará pretende tener una respuesta de 11° en la deflexión del elevador en un tiempo de 10 s. Ahora se tienen las herramientas necesarias para generar un código en Matlab y un sistema de bloques en Simulink, que presente la información planteada.
4.3.2
MODELADO EN SIMULINK
El modelamiento del sistema se hace como un sistema abierto. La entrada al igual que en el numeral 4.3.1 es una señal step, con un final value de 0.2 como se indicó anteriormente. El sistema de bloques se muestra en el anexo 3. Para este sistema se utiliza un state-space en donde se escriben las ecuaciones de movimiento pero reescritas en forma de matriz, así: ̇ [ ̇] ̇
][ ]
[
[
], -
De igual forma puede escribirse la ecuación para la salida del sistema. ,
-[ ]
Para configurar el bloque se tiene en cuenta lo anterior haciendo uso del comando eye(3), que permite asumir que todas las variables van a ser medidas y no solo la de salida. El resultado de este primer modelamiento no es estable y tiende a seguir aumentando, como se mostrará en el numeral 4.3.3, por lo que es necesario utilizar un sistema de retroalimentación. Ahora bien, para modelar un sistema que cumpla con los criterios establecidos inicialmente, se plantea un diagrama de bloques cerrado como el mostrado en el anexo 3 ilustración 7. El cual tendrá una ganancia K, con un valor que deberá ser calculado. A partir de una serie de cálculos y códigos es posible encontrar el valor de K que compensara el sistema. Finalmente, el resultado de K es , -. El valor encontrado se pone en el bloque de ganancia como se muestra en la figura 12, es importante que se ponga multiplicación de matrices, ya que como se muestra en el anexo 3 en el diagrama de bloques, esta ganancia se multiplicará con la salida del state-space. 13
Figura 12. Configuración de la ganancia en el sistema de pitch de una aeronave.
Los resultados se discuten en el numeral 4.3.3, haciendo la comparación entre los resultados obtenidos con Matlab y con Simulink. 4.3.3
ANALISIS EN MATLAB
Como se describió en el numeral 4.3.1 la función de transferencia que modela el sistema es ( ) ( ) Esta se evaluará bajo la condición de un sistema abierto y uno cerrado. Evaluación en un sistema abierto La figura 13 muestra el resultado obtenido a partir de Matlab y Simulink al sistema abierto planteado en lo mostrado en el anexo 3. De la figura 13 es posible concluir que en 10 segundos el sistema no es estable, y sigue aumentando, por lo que no cumple con los parámetros establecidos en el numeral 4.3.1. Para evaluar las características de estabilidad del sistema se encuentran los polos de la función de transferencia, siendo estos -0.3695 + 0.8857 i y -0.3605 – 0.8857 i. Este resultado permite saber que a partir de una señal de entrada escalonada, la respuesta del sistema seguirá aumentando ya que uno de los polos está en el eje imaginario.
14
Open-loop Step Response 0.8
0.7
pitch angle (rad)
0.6
0.5
0.4
0.3
0.2
0.1
0
0
1
2
3
4
5
6
7
8
9
10
Time (seconds)
Figura 13. Respuesta del sistema de abierto para el movimiento de cabeceo de una aeronave. Matlab (Izquierda) Simulink (Derecha)
Evaluación en un sistema cerrado Esta evaluación se realiza para estabilizar el sistema, a partir del comparador y un elemento de monitoreo. El modelamiento de este en Matlab y en Simulink variará, pero se pretende llegar a la misma respuesta. Para Matlab, se debe encontrar la función de transferencia en tiempo continuo para el sistema, con el comando: sys_cl = feedback(P_pitch,1) La función de transferencia es:
A partir del código del Anexo 3, se encuentra la respuesta del sistema. Comparando la figura 13 y la figura 14, se nota que a partir de un sistema cerrado es posible establecer el sistema. A partir de éste se encuentra que el error del sistema es prácticamente cero. El setting time es de 35.1 s con un error de menos del 2%, el steady state es de 0.2 rad y el rise time es de 1.79 s
15
Closed-loop Step Response 0.2 System: untitled1 Settling time (seconds): 35.1
0.18 0.16
pitch angle (rad)
0.14 0.12 0.1 0.08 0.06 0.04 0.02 0
0
10
20
30
40
50
60
70
80
90
100
Time (seconds)
Figura 14. Respuesta del sistema de cerrado para el movimiento de cabeceo de una aeronave.
De igual forma, se encuentran los polos y ceros de la función de transferencia, a partir de Matlab, siendo estos los resultados: poles = zeros = -0.3255 + 1.3816i -0.3255 - 1.3816i -0.0881
-0.1541
Para saber cómo afectan los polos y los ceros la respuesta del sistema cerrado, se transforma la señal de salida al tiempo de dominio, generando una función que dependa del tiempo. La siguiente ecuación, puede reescribirse así: ( )
( )
Sabiendo que R(s) es la señal escalonada con una magnitud de 0.2. Por tanto la ecuación queda: ( ) ( ) Para pasar del espacio de Laplace al de tiempo, es necesario aplicar fracciones parciales a la ecuación anterior, sabiendo esto se encuentran los coeficientes por medio de Matlab. ( )
16
A= 0.2 B= -0.0881 C= -0.1121 D= -0.08071 Entonces, ( ) Teniendo la función como se muestra en la ecuación anterior, se puede encontrar la transformada de Laplace inversa partir de Matlab con el código del anexo 3. ( )
(
) Ahora bien, para el sistema cerrado en Simulink, se describió que debería asociarse al sistema una ganancia además de un controlador, como se muestra en el diagrama de bloques del anexo 3, la señal obtenida del nuevo sistema se muestra en la figura 15. Si se compara la figura 14 con la figura 15, se encuentra que en el caso de Simulink, el sistema se estabiliza pero no en el valor deseado, por lo que será necesario utilizar un controlador que permita tener el valor que se quiere, por tanto se agregará otra ganancia al diagrama de bloques.
Figura 15. Respuesta del sistema retroalimentado para el movimiento de cabeceo de una aeronave.
17
4.3.4
DISEÑAR UN CONTROLADOR EN SIMULINK
El valor de la ganancia que se utiliza para que la respuesta del sistema sea la deseada, es de 7.0711. Esta se inserta después de la señal de entrada y antes del comparador. El resultado de este nuevo modelo se muestra en la figura 16.
Figura 16. Respuesta del sistema para el movimiento de cabeceo de una aeronave con controlador PID.
Si bien este modelo permite obtener la respuesta deseada, la compensación utilizada no está dentro del lazo de retroalimentación, por lo que el sistema ante una perturbación no responderá correctamente.. Para observar esto se añade una perturbación tipo step, con las siguientes características: Final value: 0.2 Step time: 3
18
Figura 17. (Arriba) Control de entrada del sistema. (Abajo) Señal de respuesta del sistema.
De la figura 17 se puede decir que a pesar del sistema tener un compensador, después de 3 segundos, éste deja de dar la respuesta deseada, debido a la presencia de una perturbación. Por otro lado, otra forma de controlar la respuesta del sistema es por medio de un controlador PID, en este caso se dejaran los valores que por defecto utiliza Simulink, y lo único que se encontrara es la velocidad de la respuesta que debería tener el controlador para obtener los parámetros deseados inicialmente. En este caso la velocidad de respuesta fue de 0.0894 s como se muestra en la figura 18. El diagrama de bloques para este caso se muestra en la ilustración 10 del anexo 3.
Figura 16. Respuesta del sistema con un controlador PID y una velocidad de respuesta estabilizante.
19
5. CONCLUSIONES A partir del desarrollo del laboratorio es posible concluir:
El uso de herramientas como Simulink y Matlab, facilita el diseño y análisis de sistemas de control, a partir de la amplia cantidad de herramientas de las que dispone cada uno de los softwares. El diseño de controladores para cualquier sistema es de gran importancia, ya que a partir de estos será que podrán alcanzarse ciertos parámetros de diseño establecidos preliminarmente. Es importante tener consistencia en el modelado de Simulink, ya que en sistemas complejos pueden llegar a presentarse confusiones con las salidas y/o entradas de cada bloque. Es necesario, conocer todas las herramientas que ofrece tanto Matlab como Simulink, para ser capaces de generar códigos y sistemas a partir de ellas.
20
REFERENCIAS [1] Mazzone, V. (2002). Controladores PID. Control Automatico. Recuperado Marzo 14, 2015, de http://www.eng.newcastle.edu.au/~jhb519/teaching/caut1/Apuntes/PID.pdf [2] MATLAB HELP BROWSER. [3] Amastegui, M. (2001). Apuntes de control PID. La Paz: Universidad Mayor de San Andres. [4] MathWorks, I. (2004). Simulink response optimization: For use with Simulink : Getting started. (Version 2. ed.). Natwick, MA: MathWorks. [5] Pratap, R. (2002). Getting started with MATLAB: A quick introduction for scientists and engineers. New York: Oxford University Press.
21
ANEXO 1 SISTEMA PARA CONTROL DE CRUCERO MATLAB Comandos en MATLAB para conocer la respuesta en el tiempo analizando el sistema como un lazo abierto. Además de conocer el diagrama de Bode y de polos-ceros. m=1000; b=50; u=500; A=-b/m; B=1/m; C=1; D=0; cruise_ss=ss(A,B,C,D); s=tf('s'); pcruise=1/(m*s+b) step(pcruise*u) pzmap(pcruise) axis([-1 1 -1 1]) bode(pcruise) SIMULINK
Ilustración 1. Sistema cerrado para el control de crucero.
22
Ilustración 2. Sistema con controlador PI para el control de crucero.
23
ANEXO 2 SISTEMA DE SUSPENSIÓN MATLAB Comandos en MATLAB desarrollados, para el análisis de la suspensión de un vehículo. Donde se establecieron dos ecuaciones de equilibrio dinámico debido a la masa del cuerpo del vehículo y a la de la suspensión para conocer sus respectivas funciones de transferencia. SISTEMA ABIERTO M2=320; >> k1=80000; >> k2=500000; >> b1=350; >> b2=15020; >> M1=2500; >> s=tf('s'); >> G1=((M1+M2)*s^2+b2*s+k2)/((M1*s^2+b1*s+k1)*(M2*s^2+(b1+b2)*s+(k1+k2))(b1*s+k1)*(b1*s+k1)); >> step(G1) SISTEMA ABIERTO CON PERTURBACIÓN G2=(-M1*b2*s^3-M1*k2*s^2)/((M1*s^2+b1*s+k1)*(M2*s^2+(b1+b2)*s+(k1+k2))(b1*s+k1)*(b1*s+k1)); >> step(0.1*G2)
SIMULINK
Ilustración 3. Diagrama de bloques para un caso de suspensión. 24
Ilustración 4. Diagrama de bloques para extraer código para Matlab.
CODIGO EXTRAIDO DE SIMULINK PARA MATLAB A=
1.0e+03 * 0
0 0.0010
0
0
0
0 0.0010
-0.0320 0.0320 -0.0001 0.0001 0.2500 -1.8125 0.0011 -0.0480 B= 0 0 0.0004 -0.0031 C= 25
1 -1
0
0
D= 0 num = 0
0 0.0035 0.0188 0.6250
den = 1.0e+04 * 0.0001 0.0048 0.1851 0.1721 5.0000
Ilustración 6. Diagrama de bloques del subsistema de suspensión.
26 Ilustración 5. Sistema de suspensión con controlador.
ANEXO 3 AIRCRAFT PITCH Para el entorno de trabajo. s = tf ('s'); P_pitch = (1.151*s+0.1774)/(s^3+0.739*s^2+0.921*s) A = [-0.313 56.7 0; -0.0139 -0.426 0; 0 56.7 0]; B = [0.232; 0.0203; 0]; C = [0 0 1]; D = [0]; pitch_ss = ss (A,B,C,D)
Respuesta del sistema en sistema abierto. s = tf('s'); P_pitch = (1.151*s+0.1774)/(s^3+0.739*s^2+0.921*s); t = [0:0.01:10]; step(0.2*P_pitch,t); axis([0 10 0 0.8]); ylabel('pitch angle (rad)'); title('Open-loop Step Response');
Respuesta del sistema a un sistema cerrado sys_cl = feedback(P_pitch,1) step(0.2*sys_cl); axis([0 100 0 0.215]); ylabel('pitch angle (rad)'); title('Closed-loop Step Response'); grid on poles = pole(sys_cl) zeros = zero(sys_cl) R = 0.2/s; Y = zpk(sys_cl*R) [r,p,k] = residue(0.2*[1.151 0.1774],[1 0.739 2.072 0.1774 0]) [num,den] = residue(r(1:2),p(1:2),k); tf(num,den)
Para la inversa de Laplace syms s; A=0.2/s ft=ilaplace(A) B=-0.0881/(s+0.08805) ft1=ilaplace(B) 27
simplify(ft1) C=-(0.1121*s+0.08071)/(s^2+0.6509*s+2.015) ft2=ilaplace(C)
Grafica de tiempo continuo t = [0:0.1:75]; y = 0.2 - 0.0881*exp(-0.08805*t) - exp(0.3255*t).*(0.1121*cos(1.3816*t)+0.0320*sin(1.3816*t)); plot(t,y) xlabel('time (sec)'); ylabel('pitch angle (rad)'); title('Closed-loop Step Response'); grid on
SIMULINK
Ilustración 7. Sistema de bloques para el ángulo de pitch sin retroalimentación.
Ilustración 8. Sistema de bloques para el ángulo de pitch con retroalimentación. 28
Ilustración 9. Sistema de bloques para el ángulo de pitch con controlador.
Ilustración 11. Sistema de bloques para el ángulo de pitch con perturbación.
Ilustración 10. Sistema de bloques para el angulo de pitch con una controlador PID. 29