1
Cód. 285744 – 285750. Informe – 03.
Control: Efectos De La Retroalimentación Y Control Proporcional Julián A. Alarcón Manrique, Daniel M. Vargas Corredor, Control. UNIVERSIDAD NACIONAL DE COLOMBIA.
informe se realiza el análisis — En el presente informe Resumen de sistemas, implementando la bien conocida retroalimentación retroalimentación y el control proporcional, extendiendo un poco más el análisis a los sistemas de velocidad y posición los cuales serán definidos dentro del informe, realizando las debidas simulaciones en Matlab® y comprobando de esta forma los resultados obtenidos mediante un Brick proporcionado por LEGO®
Palabr as Clave — Control, Hardware, LEGO, Matlab, Mindstorms, Motor DC, Software.
I. OBJETIVOS A. Objetivo Objeti vo General General
En esta práctica, se podrá analizar los efectos de la realimentación, y diseñar e implementar sistemas de control proporcional para los lazos de velocidad y posición de un motor LEGO. En la primera parte, se analizaran los efectos de la realimentación mediante simulación en Matlab/Simulink y luego se verificaran de forma experimental usando un motor LEGO. Se podrá observar y analizar los efectos que tiene la realimentación en la estabilidad, y en la respuesta dinámica y estática de un sistema.
requerimientos de diseño como: tiempo de estabilización y error permanente B. Obj etivos eti vos Espe E specí cíf i cos
Analizar los efectos de la realimentación en sistemas continuos usando Simulink. Observar y analizar los efectos de la realimentación en los lazos de velocidad y posición de un motor LEGO. LEGO. Diseñar e implementar sistemas de control proporcional usando requerimientos de tiempo de estabilización o error permanente para los lazos de velocidad y posición de un motor LEGO. II. I NTRODUCCIÓN
Los sistemas de control se pueden encontrar de muchos tipos, los más utilizados comúnmente son los sistemas retroalimentados, dado que al tener una medición constante de la salida mediante el lazo cerrado, se puede proporcionar un error que se ira corrigiendo cada vez más con respecto al tiempo, haciendo un sistema más estable y viable para la aplicación que se necesite implementar.
En la segunda parte del laboratorio, se realizará el diseño, simulación e implementación de sistemas de control proporcional para los lazos de velocidad y posición de un motor LEGO, cumpliendo con Figura 1. Sistema de lazo cerrado
18 de Mayo de 2013
2
Cód. 285744 – 285750. Informe – 03.
Figura 2. Simulación con y sin realimentación con simulink del sistema de velocidad
En la figura 1 se puede observar el sistema que se está describiendo, teniendo en cuenta que para este caso se va a considerar H(s) como 1 dado que facilitara el análisis y se pueden obtener resultados bastante buenos.
Con esto se obtiene la comparación en las respuestas de ambas señales esperando que la del control con realimentación sea mejor para la respuesta del sistema, esto se puede ver en la figura 3.
III. PROCEDIMIENTO DEL LABORATORIO El presente laboratorio se divide en dos partes fundamentales: Análisis de los efectos de la realimentación y control proporcional con LEGO, en cada una de las secciones se van a realizar las simulaciones correspondientes para cada uno de los sistemas y se verificará la teoría por medio de la práctica. A. An áli sis de los ef ectos de la Realimentaci ón
Figura 3. Respuesta con y sin realimentación
Primeramente se va a realizar la comparación de un sistema dado que se conecta en lazo abierto y otro con realimentación analizando de esta forma qué efectos puede tener está sobre el sistema, para ellos se va a utilizar la función de transferencia del motor LEGO encontrada anteriormente en el laboratorio pasado, por lo que a la salida se va a tener la función de velocidad del motor y controlada por la realimentación.
()
Como se puede observar la respuesta del sistema es mucho más rápida cuando el sistema tiene realimentación siendo la respuesta de arriba de la figura 3, pero para poder ver mejor el comportamiento de la misma, se va a graficar únicamente esta (figura 4).
Se debe tener en cuenta que la realimentación será implementada como en la figura 1 sabiendo que H(s) = 1; ahora se va a realizar esta simulación utilizando simulink de Matlab (figura 2) y obteniendo el resultado para la velocidad del motor.
Figura 4. Respuesta únicamente con realimentación
Ahora se puede ver mejor en la anterior figura que el tiempo de establecimiento del sistema con la realimentación está por debajo de 0.5 ms por lo que lo vuelve mucho más rápido ya que para lazo abierto el
18 de Mayo de 2013
3
Cód. 285744 – 285750. Informe – 03.
tiempo de establecimiento era de 0.244 s, disminuyéndolo en gran manera. Otra gran ventaja que se puede observar es que la salida tiene una asíntota en 1, es decir que el error será igual a cero ya que la entrada paso es de amplitud 1 teniendo una mejor respuesta a dicha entrada por lo que se puede decir que el sistema realimentado es más útil para aplicaciones de rápida respuesta.
Con esto se puede simular el lazo cerrado y abierto simultáneamente permitiendo observar los cambios por la realimentación del sistema, los resultados obtenidos pueden verse en la figura 6.
Dado que se tiene un tiempo de establecimiento menor cuando se realiza la realimentación del sistema, entonces el polo tendera a ir hacia la parte más negativa, aproximadamente calculándolo en:
Este polo es bastante alejado haciendo el sistema mucho más rápido ya que el polo anteriormente en lazo abierto era aproximadamente de -16 por lo que la diferencia con el control de lazo cerrado se puede ver una gran mejora en relación a la velocidad de respuesta y mejor estabilidad del sistema. Ahora bien se va a realizar el mismo procedimiento anterior pero esta vez agregando un integrador de tal forma que se obtendrá la función de posición del motor LEGO y se le aplicara la realimentación debida para ver sus efectos en el sistema (figura 5).
Figura 6. Respuesta del motor LEGO para la posición
Como se puede ver en la gráfica, al simular la posición del motor LEGO en lazo abierto el sistema se vuelve marginalmente estable pero en realidad es inestable ya que es creciente y no se estabiliza en ningún punto apreciable, por lo que el sistema no servirá para esta aplicación. Por otro lado se tiene el sistema realimentado que es la gráfica superior de la figura 6 donde si se presenta una estabilización en un valor de 1 con un tiempo de estabilización aproximadamente de 0.4 s, por lo cual se va a tener un polo en:
Con el lazo cerrado se tiene una respuesta bastante buena ya que su rapidez es considerable y tiene error de estado estable igual a cero, teniendo en cuenta que se modificó el sistema anterior con integrador. I mpl ementaci ón física del si stema de lazo cerr ado en el motor L EGO
Figura 5. Sistema en Simulink para la función de posición del motor LEGO.
18 de Mayo de 2013
Ahora bien, se va a realizar la implementación física de la función de lazo cerrado o realimentación de un sistema utilizando el motor LEGO de tal forma que es necesario escribir un código para que se pueda ejecutar el debido funcionamiento de dicho motor.
4
Cód. 285744 – 285750. Informe – 03.
Primeramente se va a ejecutar un programa en el Brick Teniendo esta respuesta del sistema se puede ver que de tal forma que la realimentación sea para la función de tiene la misma tendencia cuando se implementa en físico velocidad del motor, por lo tanto el código es el siguiente el lazo cerrado pero existen muchas oscilaciones debidas (figura 7). a las alteraciones como el torque del motor. Por otro lado se va a analizar el sistema con realimentación para la posición del motor la cual como se puede ver en la figura 6 se tiene que llegar a estabilizar después de una oscilación, por lo tanto se va a ejecutar un código diferente para que se vea reflejado el integrador en la velocidad del motor para obtener la posición (figura 9).
Figura 7. Código para la realimentación del motor controlando la velocidad.
Ejecutando este programa en el Brick se crea un archivo plano .txt de tal forma que las salidas del motor son registradas en dicho archivo, para posteriormente ingresarlas a Matlab para que se puedan comprobar con los resultados de la simulación teórica (figura 8).
Figura 9. Código para la realimentación del motor controlando la posición.
De esta forma también se genera el archivo llamado controlpos_orig.txt y este será comparado con la simulación teórica del control en lazo cerrado incluyendo el integrador en la función de transferencia para que se pueda ver la función de posición (figura 10).
Figura 8. Comparación de la respuesta física del motor con la calculada teóricamente. 18 de Mayo de 2013
5
Cód. 285744 – 285750. Informe – 03.
Figura 10. Comparación de la posición del motor Lego tanto, para la teoría como para la implementación.
Se puede ver que en la función del motor no se presentan tantas oscilaciones como teóricamente tendría que pasar, esto se debe a que la velocidad del motor no puede sobrepasar ciertos límites por lo que se realizó un filtro para que no se superara tal velocidad. Se puede ver que la implementación física del motor es muy similar a la teoría que se encontró, aunque se presentan ciertas diferencias como la cantidad tan grande de oscilaciones para la velocidad pero esto se debe a la gran variación de torque que puede sufrir el motor por factores externos, y por el otro lado en el sistema de posición se produce el efecto contrario, antes el sistema implementado en el Brick oscila menor cantidad de veces, por lo que tiene menor sobrepico pero si tiene el mismo tiempo de establecimiento como se puede ver en la figura 10.
B. Contr ol de veloci dad y posici ón del motor L EGO
En esta sección se va a realizar el diseño de un sistema de control proporcional utilizando la realimentación para de esta forma implementarla en el motor de lego tanto para velocidad como para posición teniendo en cuenta diferentes especificaciones de diseño.
Ahora bien como se solicita que el control proporcional haga que el sistema sea dos veces más rápido, se necesitaría un de 0.0305 que es la mitad del tao nominal que se tiene. Por otro lado como la función de lazo cerrado se modificó también se tiene que despejar el tao de la ecuación teniendo cuidado que se divide todo por el termino independiente de s, en el denominador de T(s).
Y esto se iguala, para el nuevo caso para poder despejar la ganancia proporcional del sistema de control obteniendo un sistema más rápido.
Ahora este k, se va a remplazar en la función de realimentación quedando de la siguiente manera:
()
Esta función será evaluada en Matlab para verificar su tiempo de establecimiento y su valor en estado estable esperando obviamente que se estabilice en 0.5 debido al 2 del denominador, por lo tanto la respuesta del sistema Se soli cit a di señ ar un sistema par a que l a veloci dad controlado quedaría de la siguiente forma (figura 11). del motor L EGO para que el sistema se estabili ce dos veces más rápido que el sistema origi nal .
Se sabe que la función de lazo cerrado para control proporcional es de la forma:
()
() ()
Por lo tanto, conociendo la función G(s) se puede encontrar la función de realimentación con la cual implementaremos los criterios solicitados, la ecuación quedaría de la siguiente manera:
() 18 de Mayo de 2013
6
Cód. 285744 – 285750. Informe – 03.
Figura 11. Respuesta del sistema dos veces más rápido con el control proporcional
Se puede ver en la figura 11 que el tiempo de establecimiento es de 0.119 segundos por lo que si es dos veces más rápido que el sistema nominal ya que su tiempo de establecimiento era de 0.244 s. De esta forma ahora si se puede pasar este controlador a un bloque de función en Matlab mediante simulink (figura 12), para comprobar más físicamente como es el comportamiento del sistema con diagrama de bloques; el código para el control proporcional se puede ver en la figura 13.
Figura 14. Grafica de entrada, salida y señal de control del sistema utilizando simulink.
Adicionalmente se puede ver que la señal de control es bastante pequeña (del orden de ), esto se debe a que como la ganancia es de la planta es de 884.7 se debe contrarrestar este efecto con un valor pequeño para tratar que se estabilice y el error de estado estable se aproxime a cero.
Figura 12. Simulación en la función de Matlab ( Simulink ) para comprobar que el sistema se estabiliza 2 veces más rápido.
Se soli cita di señ ar un sistema par a l a veloci dad del motor L EGO, tal que el sistema tenga un err or perman ente de 4%.
Esta vez se necesita que el error en estado estable de la respuesta sea de 4% es decir ± 0.04, por lo tanto se necesita que la respuesta en estado estable cumpla con dicho requerimiento por medio de la implementación del control proporcional el cual tiene la siguiente expresión para lazo cerrado.
Figura 13. Código para el controlador proporcional
Al realizar esta simulación en el osciloscopio de dos entradas se obtienen los siguientes resultados (figura 14), donde se puede ver que para la entrada escalón unitario se tiene en morado la respuesta del sistema que se estabiliza en 0.5 como se esperaba y con tiempo de establecimiento de 0.122 s.
()
Donde se puede deducir:
() ()() Y utilizando esta expresión se puede obtener la salida en estado estable por medio del límite y la entrada en frecuencia:
18 de Mayo de 2013
7
Cód. 285744 – 285750. Informe – 03.
Ahora teniendo la respuesta en estado estable se puede calcular el error sabiendo que es de 0.04
Figura 16. Código para el control de error de 4%.
Con este con código se obtiene un resultado (figura 17) mediante un osciloscopio de dos entradas donde en la primera se compara la entrada con la salida y en la De allí se puede despejar la ganancia del controlador segunda se tiene la señal de control. proporcional teniendo el siguiente valor:
Con este k, se va a obtener la función de lazo cerrado del sistema implementando el controlador proporcional, de tal forma que:
()
Evaluando esta función en Matlab se puede obtener el siguiente resultado mostrado en la figura 15.
Figura 17. Grafica de comparación de salidas para el controlador de error de 4%.
También se puede ver que el valor del error es de 0.04 y el tiempo de establecimiento concuerda con el simulado por consola y la señal de control es muy pequeña para contrarrestar la ganancia de la planta.
Figura 15. Respuesta del sistema con error de estado estable de 4% implementando control proporcional.
Como se puede observar la salida llega hasta 0.96 es decir que se cumple con el criterio de diseño puesto inicialmente y adicionalmente se tiene un tiempo de establecimiento de 10 ms. Ahora implementando el circuito de la figura 12 se va realizar la comprobación del sistema mediante la implementándolo físicamente, pero esta vez en el bloque de función el código será (figura 16):
18 de Mayo de 2013
Se solicita di señ ar un sistema para que la posición del motor L EGO par a que el sistema se estabil ice en 2 segundos.
Por ultimo diseño se necesita un sistema con un tiempo de establecimiento de 2 segundos por lo tanto ya se tiene el , pero esta vez se va a realizar el diseño para la posición del motor LEGO por lo que el sistema ya no será el mismo sino que es necesario agregar un integrador al diseño (figura 18) anterior para que se mire la posición en lugar de la velocidad.
8
Cód. 285744 – 285750. Informe – 03.
Figura 18. Circuito construido en Simulink para controlar la posición del motor LEGO mediante un bloque de función. Figura 19. Simulación del control de posición para estabilidad
Por lo que se agrega el integrador, la función de lazo en 2 segundos. cerrado se verá enormemente alterada haciendo del sistema uno de segundo orden ya que ahora se tiene un También se puede ver este resultado en la simulación polo adicional ubicado en cero pero que puede producir con Simulink introduciendo el código de la figura 20 en oscilaciones en la señal dependiendo de su el bloque del controlador, para obtener la respuesta que se amortiguamiento. puede ver en la figura 21, la cual concuerda con la simulación por consola ya que el tiempo de Ahora bien la función de lazo será la siguiente establecimiento es de aproximadamente 2 ya que al agregando el integrador y el controlador proporcional al redondear las cifras significativas se pierde un poco de sistema original. precisión en la medición.
()
El sistema completo tendrá sus polos en los siguientes puntos, despejando su denominador:
√
Figura 19. Código para establecer el sistema de posición en 2 s.
Con esto se puede encontrar el polo más lento que es el que afectara más al sistema por lo tanto ese polo se igualara a -2 y se despejará la ganancia del controlador.
√ Con esta constante se encontrara el valor de la función de transferencia, para luego simularlo en Matlab (figura 19):
()
Figura 21. Respuesta en el osciloscopio de Simulink para el sistema anterior.
Se puede ver que la señal de control esta vez es un poco menor debido a que se le agrego el integrador al sistema y con el controlador se puede cumplir con el criterio de diseño, aparte de esto también tiene un error de estado estable bastante bajo. 18 de Mayo de 2013
9
Cód. 285744 – 285750. Informe – 03.
I mplementación f ísica en el motor L EGO mediante grande que 4% en los valles de la señal o cuando baja ya que logra bajar hasta 0.9 aproximadamente.. el B ri ck.
Para la implementación física en esta sección se tiene que tener en cuenta que el motor no debe sobrepasar los picos de velocidad como lo son 100 y – 100 y teniendo en cuenta esto se modificará el código de la figura 7 donde se controla la velocidad pero esta vez se le pondrá el controlador proporcional para que el sistema tenga un error permanente de 4% (figura 22). Con esta modificación el Motor LEGO arroja los resultados que se guardarán en el archivo plano controlvel.txt donde estará la salida para una entrada paso de tal forma que se pueda calcular fácilmente la función de transferencia del motor. Figura 23. Implementación física del control de velocidad al motor LEGO
Por ultimo en la práctica se va a implementar el controlador para la posición del motor que tiene que estabilizarse a 2 segundos es decir que tiene que quedarse quieto el motor, y efectivamente cuando se le ingreso el código (figura 24) el motor funciono por un tiempo y luego se detuvo, midiendo el tiempo se comprobó que eran 2 segundos los que duraba en funcionamiento.
Figura 22. Simulación del control de posición para estabilidad en 2 segundos.
Con los datos tomados se obtienen los siguientes resultados que son analizados en Matlab mediante la importación del archivo generado (figura 23), donde se puede ver que el error de estado estable si se aproxima a 4% y que el tiempo de establecimiento es también de 10 ms, dado que tiene un sobrepico que llega únicamente hasta 1 no hay ningún problema ya que entre más cerca este a 1 menor error existirá, pero si existe un error más
18 de Mayo de 2013
Figura 24. Código para el controlador de posición del motor del LEGO.
10
Cód. 285744 – 285750. Informe – 03.
Por medio de este código se puede obtener otro archivo .txt que será ingresado en Matlab para su debida simulación (figura 25).
controlador de posición se comporta casi como una función exponencial y no existe dicho ruido que afecte el sistema. Para sistemas de ganancia muy alta se tienen que tener señales de control demasiado pequeñas para que contrarresten el efecto de dicha ganancia y con esto se pueda tener un error de estado estable aproximado a cero.
V. BIBLIOGRAFÍA
Figura 25. Salida del motor implementado físicamente para control de posición.
Se puede ver la respuesta teórica frente a la implementada y se denota que el comportamiento de ambas es muy similar entre ellas por lo que se puede decir que el controlador implementado está funcionando adecuadamente porque como se puede ver el tiempo de establecimiento es de 2 segundos y también que el error en estado estable es prácticamente cero ya que la salida está muy próxima a 1 es decir la amplitud de la señal paso que se le ingreso al principio.
IV. CONCLUSIONES
Se puede decir que un controlador proporcional solamente puede cumplir un criterio de diseño a la vez, ya que al intentar controlar el error en estado estacionario, no se puede tener un tiempo de establecimiento dado aunque en la práctica los tiempos fueron buenos para el controlador. Cuando se diseña un controlador para un motor LEGO hay que tener en cuenta que este, por su funcionamiento interno va a tener mucho ruido y por lo tanto su respuesta tendrá unos sobrepicos muy altos, más que todo para el controlador de velocidad ya que como se puede ver en las figuras, el
18 de Mayo de 2013
[1] LEGO MINDSTORMS, «LEGO Mindstorms NXT Hardware Developer Kit,» LEGO Group, 2006. [2] D. Benedettelli, Programming LEGO NXT Robots using NXC, vol. Vesion 2.2, J. Hansen, Ed., 2007, p. 51. [3] Doxygen, «NXC programmer's guide,» NXC, version 1.2.1 r5, [En línea]. Available: http://bricxcc.sourceforge.net/nbc/nxcdoc/nxcapi/modules. html. [Último acceso: 23 Marzo 2013]. [4] Lego Engineering, «HiTechic Sensors for LEGO Robotics,» Tufts, 22 Septiembre 2009. [En línea]. Available: http://legoengineering.com/index.php?option=com_content &view=article&id=108. [Último acceso: 26 Marzo 2013]. [5] R. C. Dorf y R. H. Bishop, Modern control systems, vol. XII, Pretince Hall, 2010, p. 1082.