DESARROLLO Y CONTROL DE UN PÉNDULO DE FURUTA A. Valera, M. Vallés, M. Cardo Dpto. Ingeniería de Sistemas y Automática Universidad Politécnica de Valencia Camino de Vera 14, 46022 Valencia (Spain) E-mail: [email protected], [email protected], [email protected] Resumen Este trabajo presenta el desarrollo y control de un péndulo de Furuta. Éste se trata de un sistema subactuado de dos grados de libertad rotacionales. El primer elemento (brazo) tiene un giro alrededor de un eje perpendicular a la base, mientras que el segundo elemento (péndulo) se encuentra colocado en un extremo del brazo y su eje de giro es colineal al eje axial del brazo, realizando un giro en un plano perpendicular al brazo. La ventaja del sistema desarrollado es doble, ya que por una parte el péndulo se trata de un sistema inestable, y en ocasiones es necesario disponer de este tipo de sistemas para poder trabajar con cuestiones avanzadas de control. La segunda ventaja que tiene es que, por el material escogido, el coste de desarrollo es muy económico, siendo muy conveniente porque permitiría replicarlo en el caso en el que fuera necesario (para un laboratorio docente de robótica, por ejemplo) Palabras Clave: péndulo invertido, aplicaciones digitales por computador, control por computador, robótica. 1 INTRODUCCIÓN A la hora de establecer el control por computador de procesos físicos se tienen que implementar unos algoritmos de control que permitan que el sistema pueda alcanzar una serie de especificaciones de funcionamiento estáticas y dinámicas. Para ello debemos tener en cuenta además las perturbaciones inherentes a los sistemas reales como incertidumbres en los parámetros o en la dinámica del modelo, ruidos etc. La existencia de las perturbaciones no sólo puede complicar de forma considerable el control del sistema, sino que además pueden incluso modificar también la dinámica del sistema, como cuando se tienen desgastes mecánicos o fallos de los actuadores. La existencia de fallos en los actuadores representa un problema muy interesante para la teoría de control puesto que hace imposible tener un control directo en los grados de libertad no actuados, de modo que el control de estos se debe realizar (siempre que sea posible) de forma indirecta por medio de los restantes grados de libertad actuados. De este modo podemos definir como sistema subactuado como aquel sistema que carece de al menos un actuador en uno de sus grados de libertad, es decir, un sistema subactuado será aquel que posee un número de grados de libertad mayor que de actuadores [4]. La definición de sistema subactuado incluye no sólo el fallo en los actuadores, sino también la ausencia de los mismos provocada por consideraciones de diseño del sistema físico, falta de espacio, exceso de peso, por cuestiones de presupuesto etc. Dentro de los sistemas subactuados, un ejemplo comúnmente utilizado y ampliamente estudiado es el sistema del péndulo invertido basado en un carro móvil [2], [5]. Los péndulos se utilizaron inicialmente como banco de pruebas para la aplicación de conceptos de control lineal y no lineal como estabilización de sistemas inestables [2], [3], control con estructura variable [8], control de energía [1], control por realimentación del estado [6], etc. Sin embargo, los péndulos invertidos presentan el inconveniente de que la carrera del carro se encuentra acotada, lo que puede limitar las maniobras de control. Para salvar esta limitación se generó una modificación a dicho sistema el cual se suple la carrera lineal del carro por una trayectoria circular cerrada, creando así al denominado sistema Péndulo de Furuta. El sistema Péndulo de Furuta fue creado por el Dr. K. Furuta del Instituto de Tecnología de Tokio, el cual es un sistema subactuado de dos grados de libertad ambos rotacionales llamados brazo y péndulo. El movimiento del brazo (primer grado de libertad) se realiza en un plano horizontal girando alrededor de un eje perpendicular al plano, mientras que el péndulo se encuentra colocado en un extremo del brazo y su eje de giro es colineal al eje axial del brazo y su movimiento se realiza en un plano perpendicular al de este último. m Lo interesante desde el punto de vista del control del Péndulo de Furuta está provocado por la configuración que tiene puesto que no se puede realizar una linealización exacta de su modelo por retroalimentación de estados, lo cual limita la variedad de algoritmos de control que pueden serle aplicados. En este trabajo se va a mostrar el desarrollo de un péndulo de Furuta. Debido a los materiales escogidos se ha conseguido que su precio sea muy económico, lo que facilita replicarlo en el caso que se necesite equipar un laboratorio docente con esta clase de sistemas. Además del desarrollo, el artículo muestra también el modelado del sistema, así como la implementación de estrategias de control basado en la realimentación del estado, utilizando para ello la herramienta de Real-Time Windows Target, una extensión del paquete de Matlab. 2 MODELADO DE UN PÉNDULO DE FURUTA Tal como se ha comentado, el péndulo de Furuta consta de los dos elementos que se muestran en la figura siguiente: brazo y péndulo. péndulo brazo Figura 1: Modelo esquemático del péndulo El modelo simplificado del sistema se muestra en la figura 2. En él se puede apreciar la posición del brazo (θ) y la posición del péndulo (α), siendo r y l las longitudes de los elementos, m la masa del péndulo y J la inercia del actuador. Las ecuaciones de la energía cinética y potencial del péndulo vienen dadas por las expresiones siguientes: U pen = mgl cos (α ) ( ) K pen = 0.5 θr + α l cos (α ) + (α l sin (α ) ) 2 K = 0.5 Jθ base 2 2 α l J r θ Figura 2: Modelo simplificado del péndulo Utilizando la formulación del Lagrangiano podemos obtener las ecuaciones diferenciales del sistema: ( mr 2 + J )θ + mrαl cos (α ) − mrα 2 l sin (α ) = τ + ml 2α − mgl sin (α ) = 0 mrl cos (α )θ − mrl sin (α )αθ La representación del sistema lineal en el espacio de estados viene dada por la ecuación de estado siguiente: 0 0 θ 0 0 α − mrg = 0 θ J α J + mr 2 0 g Jl 1 0 0 θ 0 1 0 α 1 0 0 + τ θ J α −r 0 0 Jl (1) Si tenemos en cuenta que el par de control se genera por un motor de corriente continua controlado por tensión: K 1 V = IR + K eθ ⇒ I = V − e θ R R donde R y Ke se corresponden con las constantes eléctricas del actuador. Considerando que el par es proporcional a la intensidad: K K2 τ = K e I ⇒ τ = e V − e θ R R Sustituyendo la expresión de τ: 0 0 θ 0 0 α −mrg = 0 θ J α + J mr 2 0 g Jl 1 0 − K e2 JR rK e2 JRl 0 0 1 θ 0 α K e 0 + V θ JR α − K e r 0 JRl (2) 3 DISEÑO EXPERIMENTAL DE UN PÉNDULO DE FURUTA Uno de los problemas más habituales que nos encontramos a la hora de trabajar con los procesos experimentales es el precio que estos suelen tener. El alto precio que tienen suele dificultar la posibilidad de replicarlo para poder trabajar de una forma cómoda tanto en los laboratorios docentes como de investigación. Por ello, una de las primeras premisas que se consideraron en el diseño y desarrollo del péndulo de Furuta fue tratar que el coste de implementación de éste fuera el más económico posible. Para ello se ha escogido como actuador un motor de corriente continua existente previamente en los laboratorios del Dpto. de Ingeniería de Sistemas y Automática de la Universidad Politécnica de Valencia. Para la estructura mecánica del sistema se ha escogido el aluminio, tanto por su peso como por su bajo precio. La figura 3 muestra una vista general del péndulo desarrollado. medio de un tren de engranajes. Así, midiendo la tensión que proporciona el potenciómetro podemos saber directamente la posición del primer elemento. Para conectar el actuador eléctrico con la base del brazo del péndulo se ha mecanizado con un bloque de NYLON (SUPER-POLIAMIDA-PA 6) una unión cilíndrica que se acopla perfectamente en el tubo hueco del brazo. La unión queda fijada atornillándose tanto a la base del brazo como al eje del actuador, tal como se muestra en la figura siguiente. Se ha escogido este material porque es un material robusto, tiene un buen coeficiente de roce y es sencillo de mecanizar. Figura 4: Unión actuador-brazo El extremo del primer segmento del brazo está soldado con el segundo elemento, formando entre ellos un ángulo de 90º. De esta forma, el eje de giro del conjunto que forma brazo es colineal al eje vertical Z, lo que provoca que el movimiento del brazo sea circular en el plano horizontal XY. Este segundo segmento del brazo es, al igual que el primero, un tubo de aluminio hueco. Sobre él descansa el segundo elemento: el péndulo. El péndulo está constituido por dos barras macizas de aluminio que forman un ángulo de 90º. Una barra se inserta en el interior del segundo segmento del brazo, y para que pueda girar libremente se han añadido dos rodamientos. El eje de giro del péndulo es colineal al eje axial del brazo, por lo que el movimiento del péndulo describe una trayectoria circular contenida en el plano perpendicular al eje axial del brazo. Figura 3: Vista general del péndulo desarrollado En la figura 3 se pueden observar los dos elementos: el brazo y el péndulo del péndulo de Furuta propuesto. El primer elemento del brazo es un tubo hueco de aluminio cuya base está conectada con el actuador eléctrico. El actuador utilizado es el Rotary Servo Plant SRV-02 de la empresa canadiense Quanser Consulting©. El servo SRV-02 consiste en un servomotor de corriente continua, de forma que la salida del motor se conecta a un potenciómetro por Para poder medir el ángulo del giro del péndulo respecto al brazo añadido un potenciómetro en el extremo de la primera barra del péndulo. Si bien se podría haber utilizado cualquier potenciómetro, se ha escogido uno de la serie P2200 de novotechnik© por tratarse de un potenciómetro con un par extremadamente bajo, gran linealidad, repetitividad y durabilidad, una velocidad de trabajo muy alta y un movimiento mecánico de 360º continuos. La unión entre la barra del péndulo y el eje del potenciómetro se realiza mediante un tornillo simple. Debido a los diferentes diámetros de los elementos, la unión entre el 2º segmento del brazo y el potenciómetro se ha mecanizado con un bloque de metacrilato una segunda unión cilíndrica. En un extremo de la unión se introduce a presión y se atornilla el potenciómetro, mientras que el otro extremo se introduce dentro del 2º elemento del brazo. La elección de este material viene motivada por la elevada resistencia mecánica, rigidez, dureza y un bajo coeficiente de fricción. La figura 5 muestra con mayor detalle el potenciómetro, la barra del péndulo y el elemento de que nos permite la unión entre el potenciómetro y la barra del brazo. esta solución se dificulta la síntesis de la ley de control. De este modo, la forma más habitual para establecer el control del péndulo es mediante la utilización de controladores complementarios. El primero se emplea para asegurar la atracción del estado de sistema hacia una región cercana al origen, mientras que y el segundo controlador se encarga de regular la posición del péndulo sobre el punto de equilibrio inestable. Para llevar a cabo los dos controladores se han desarrollado distintos reguladores y estrategias de control. Así por ejemplo, para el primer controlador se suelen basar en las propiedades energéticas utilizando una función candidata de Lyapunov que asegura la atracción del estado del sistema a la región cercana al origen gracias a las propiedades pasivas del péndulo de Furuta. El segundo controlador puede ser un controlador lineal (basado en un control lineal óptimo, por ejemplo) que logra la estabilidad y permanencia del péndulo en su punto de equilibrio inestable. En este trabajo se ha utilizado un controlador basado en la realimentación del estado para establecer el control alrededor el punto de equilibrio inestable, utilizándose la herramienta de Real-Time Windows Target de Matlab para realizar la implementación del control. Figura 5: Unión péndulo-potenciómetro 4 El esquema general de control por realimentación del estado utilizado se muestra en la figura siguiente: CONTROL DEL PÉNDULO DE FURUTA La finalidad del control de procesos es que la respuesta del sistema a controlar cumpla con una serie de especificaciones de funcionamiento dinámicas y estáticas a pesar de las incertidumbres y perturbaciones asociadas a su funcionamiento. Habitualmente las estrategias de control se aplican a sistemas físicos con el mismo número de actuadores y de grados de libertad. Sin embargo estas técnicas no se pueden aplicar directamente sobre sistemas subactuados. En este trabajo se ha abordado el control de un sistema subactuado: el péndulo de Furuta, de manera que se trata que controlar la posición del extremo del péndulo en su punto de equilibrio inestable. Para abordar el control de este sistema se debe tener en cuenta que las ecuaciones que describen la dinámica del péndulo completo son esencialmente de naturaleza no lineal. Por ello se podría plantear una linealización exacta del péndulo por medio de la realimentación de los estado, pero al no ser posible Figura 6: Control por realimentación del estado donde G, H y C se corresponden con las matrices que forman las ecuaciones de estado y salida discretas: x(k + 1) = Gx(k ) + Hu (k ) (3) y ( k ) = Cx( k ) La acción de control para resolver el problema de la regulación del sistema viene dada por la ecuación siguiente: (4) u (k ) = − Kx(k ) donde K = [ k1 k2 " kn ] es la ganancias de realimentación del estado. matriz de Para calcular la matriz K se pueden utilizar diversas técnicas, como por ejemplo el control lineal cuadrático, el cual calcula la matriz de realimentación óptima tal que el sistema en bucle cerrado minimiza un índice de desempeño cuadrático J: J = ∫ ( x′Qx + rV 2 )dt adquisición de datos PCL-812PG. Una vez se calcula la acción de control u(k) se debe suministrar al actuador eléctrico del péndulo. Para hacerlo se utiliza el bloque de salida analógica que accede a la tarjeta de convertidores D/A PCL-726. du/dt (5) -K- Derivati ve1 k4 al fa Otra técnica para el diseño del controlador por realimentación del estado que se puede utilizar es el diseño por asignación de polos. Este diseño se debe calcular la matriz de ganancias K de forma que la matriz del estado en bucle cerrado que viene dada por la ecuación siguiente: 6.36 -K- Constant -K- vol2rad Analog Input du/dt m Saturation k3 Anal og Output Adv antech PC L-726 [200h] -K- Adv antec h PC L-812PG [300h] vol2rad theta -K- x(k + 1) = ( G − HK ) x(k ) k1 (7) podemos utilizar los comandos de Matlab place o acker, a los que se les debe proporcionar las matrices de la representación interna del sistema (3), así como los polos en bucle cerrado que se desean para la dinámica de control. Una vez obtenida la matriz K del controlador se debe implementar un algoritmo con la ecuación de la acción de control (4). Para ello se puede utilizar cualquier lenguaje de alto nivel (como C) trabajando en entornos de tiempo real. Básicamente, a cada iteración del bucle de control el algoritmo de control debe: • obtener el estado del sistema • calcular la acción de control u(k) • proporcionar u(k) al péndulo Para realizar este trabajo se ha escogido el entorno de la Real-Time Workshop (RTWin), de Matlab. Dicho entorno permite utilizar todos los bloques gráficos de Simulink, lo que facilita mucho el desarrollo de los controladores. Además, también se pueden utilizar unos bloques especiales que serán los encargados de acceder a las tarjetas de adquisición de datos para obtener las señales del sistema y de suministrar las acciones de control al proceso a controlar. En [7] se puede encontrar una explicación más detallada de la utilización de RTWin para el control de robots en tiempo real. La figura 7 muestra el esquema de control del péndulo implementado. Para obtener la posición del brazo (θ) y del péndulo (α) se utiliza un bloque de entrada analógica que accede a la tarjeta de Figura 7: Esquema RTWin del control del péndulo Tal como se puede observar en (2), el vector de estado del péndulo está formado por las posiciones y velocidades de los elementos del péndulo de Furuta. Como el hardware del péndulo no incluye tacosdinamos que proporcionen las velocidades, éstas se tienen que obtener a partir de los 2 bloques que calculan las derivadas de las posiciones. Una vez se tienen las 4 señales la acción de control se calcula mediante la realimentación de dichas señales, multiplicándolas por los elementos ki de la matriz de realimentación K. Cabe destacar que se necesita pasar de las señales de tensión a señales en ángulos (radianes). Para ello se utilizan las constantes vol2rad. Por último se necesita restar a la tensión que suministra el ángulo del péndulo α el valor 6.36. Esto es debido a que dicha tensión se corresponde a un ángulo de 0 rad. del péndulo. Una vez se ha desarrollado el esquema de control sólo hay que compilarlo para obtener un esquema ejecutable en el entorno de Windows. Las figuras siguientes muestran las posiciones del péndulo y del brazo, así como las acciones de control. 0.1 0.05 Angulo pendulo (rad) sea asintóticamente estable, por lo que para todo x(0) ≠ 0 es posible hacer que x(t) tienda a cero en un periodo de tiempo aceptable. Para resolver la expresión: zI − ( G − HK ) = α control ( z ) Analog Output -K- Derivative Analog Input acontrol k2 0 -0.05 -0.1 -0.15 0 5 10 15 20 25 30 Tiempo (seg) 35 40 Figura 8: Posición del péndulo (rad) 45 50 0.3 La figura 13 muestra las acciones de control, y se puede observar como efectivamente en los instantes donde se ha perturbado al sistema las acciones de control son más grandes (más de 5 voltios) para tratar de devolver al péndulo en la posición de equilibrio. 0.2 0.1 Angulo brazo (rad) 0 -0.1 -0.2 -0.3 0.25 -0.4 0.2 -0.5 -0.7 0 5 10 15 20 25 30 Tiempo (seg) 35 40 45 50 Figura 9: Posición del brazo (rad) Angulo pendulo (rad) 0.15 -0.6 0.1 0.05 0 -0.05 -0.1 3 -0.15 Accion de control (v) 2 0 2 4 6 8 10 12 Tiempo (seg) 14 16 18 20 Figura 11: Posición del péndulo ante perturbaciones (rad) 1 0 0.8 -1 0.6 -2 0 5 10 15 20 25 30 Tiempo (seg) 35 40 45 50 Figura 10: Acción de control (v) Angulo brazo (rad) -3 0.4 0.2 0 -0.2 Para analizar el comportamiento del sistema ante perturbaciones se ha realizado una nueva ejecución en la cual se sacó al sistema de su equilibrio (aplicando una fuerza en el extremo del péndulo) en 3 instantes (en t = 2seg., t = 8seg., y t = 14.5seg.). Tal como se puede observar en las figuras siguientes, el sistema es capaz de mantener el equilibrio a pesar que las perturbaciones sacaron al péndulo en .25 radianes. Para ello el brazo se tiene que mover hasta los 0.7 radianes (aproximadamente) para que el péndulo recupere el equilibrio. -0.4 -0.6 0 2 4 6 8 10 12 Tiempo (seg) 14 16 18 20 Figura 12: Posición del brazo ante perturbaciones (rad) 6 4 Accion de control (v) El periodo de muestreo utilizado para establecer el control es de 5mS. Tal como se puede observar, la posición del péndulo se mantiene durante el tiempo de ejecución (1 minuto) en el origen con una oscilación de ángulo muy pequeña (alrededor de 0.09 radianes). La posición del brazo tiene una oscilación alrededor del origen mayor (0.5 radianes), pero dicha oscilación se debe a que éste es el elemento actuado que se debe de encargar de mantener vertical al péndulo. Por último, se puede apreciar como la acción de control que se debe suministrar al actuador no es muy grande, puesto que está acotada alrededor de ±2 voltios. 2 0 -2 -4 -6 0 2 4 6 8 10 12 Tiempo (seg) 14 16 Figura 13: Acciones de control (v) 18 20 5 CONCLUSIONES El trabajo ha mostrado el modelado, diseño, la construcción y el control de un prototipo de sistema subactuado: el péndulo de Furuta. Para ello primero se han obtenido las ecuaciones diferenciales del sistema, obteniendo un modelado en el espacio de estados. A continuación se ha mostrado el prototipo desarrollado. Debido a los materiales utilizados, este prototipo tiene como principal característica su bajo coste, lo cual lo hace muy interesante si se pretende replicarlo para poder equipar un laboratorio docente. Por último, se ha abordado el control del sistema. Para ello primero hay que implementar un algoritmo de control que suministre la suficiente energía al sistema como para llevar al péndulo a una zona cercana al origen. Una vez en esta zona se debe conmutar de controlador, para regular al sistema para que no salga del punto de equilibrio inestable. El artículo ha mostrado como no sólo el regulador es capaz de controlar al sistema, sino que además es lo suficientemente robusto como para eliminar el efecto de perturbaciones que lo saquen de su punto de equilibrio. La plataforma desarrollada es un prototipo muy interesante porque permite trabajar con cuestiones muy diversas de control, como controladores lineales y no lineales, conmutación entre controladores etc. Agradecimientos Los autores desean expresar su agradecimiento a la Consellería de Innovación y Competitividad de la Generalitat Valenciana, por la financiación parcial de este trabajo bajo el proyecto de I+D: CTIDIB/2002/22. Referencias [1] Astrom, K.J., Furuta K. (2000) “Swinging up a Pendulum by Energy Control”, Automatica, vol 36, pag. 287-295 [2] Mori, S., Nishihara, H, Furuta, K. (1976) “Control of Unstable Mechanical Systems: Control of Pendulum”, Int. J. of Control, vol 23, n5, pag. 673-692 [3] Schaefer, J.F., Cannon R.H. (1967) “On the Control of Unstable Mechanical Systems”, Proc. of 3rd Int. Federation on Automatic Control (IFAC), vol 1 (6C.1-6C.13) [4] Spong M.W. (1994) “The control of underactued mechanical systems” Int. conf. Mechatron. [5] Spong M. W. (1994) “Swing control of the acrobot” Procedings IEEE international conference Robotics and automation, pag. 23562361 (Vol 1) [6] Torres H.I. (2002) “Control de Sistemas No Linealizables en Forma Exacta”, documento interno, Centro de Investigación y de Estudios Avanzados del IPN, México. [7] Valera, A., Vallés, M., Tornero, J. (2001) “RealTime Robot Control implementation with Matlab/Simulink”, Telematics Application in Automation and Robotics, Ed. Pergamon, ISBN 0 08 043856 3. [8] Yamakita, M, Furuta, K. (1992) “VVS Adaptive Control based on Nonlinar Model for TITech pendulum”, IEEE 1488-1493.