DISEÑO E IMPLEMENTACIÓN DEL CONTROL DIGITAL DE UN SISTEMA DE PÉNDULO INVERTIDO Y GRÚA PUENTE MEDIANTE ALGORITMOS DE UBICACIÓN DE POLOS Y ÓPTIMOS CUADRÁTICOS Arturo Rojas Moreno Leonardo Darío Gushiken Gibu Facultad de Ingeniería Eléctrica y Electrónica, Sección de Post-Grado Universidad Nacional de Ingeniería RESUMEN Este artículo desarrolla el diseño e implementación del control digital de un sistema de péndulo invertido y grúa puente mediante los algoritmos de ubicación de polos y optimización cuadrática lineal. ABSTRACT This article develops the design and implementation of the digital control of an inverted pendulum and a crane systems by mean of pole placement and linear quadratic optimization algorithms. I. INTRODUCCIÓN El control por ubicación de polos consiste en la ubicación de los polos en lazo cerrado deseados para el sistema. Este método está basado en los requerimientos de respuesta transitoria y/o respuesta en frecuencia. El control óptimo cuadrático consiste en la minimización de un índice de desempeño o función de costo cuadrático de tal forma que obtengamos del sistema una respuesta que se acerque lo más posible a la óptima. El presente artículo se enfocará en el diseño de un control por ubicación de polos y un control óptimo cuadrático, ambos en tiempo discreto, para un sistema de péndulo invertido y un sistema de grúa puente. El péndulo invertido es un sistema conformado por un péndulo montado sobre un carro impulsado por un motor. El objetivo a alcanzar es mantener el péndulo en posición vertical tanto como sea posible y tener control sobre la posición del carro. El sistema de grúa puente a controlar está conformado por un carro, que se desplaza a lo largo de un carril, con una varilla que cuelga de éste a modo de carga. El objetivo es mover el carro a una posición determinada sin que la varilla oscile demasiado . II. DESCRIPCIÓN DEL SISTEMA El sistema péndulo invertido/grúa puente consiste de un carro de metal con una varilla que hace la función de péndulo. El carro se desplaza en un carril y es impulsado por un servomotor DC de imán permanente a través de un sistema de poleas. Para accionar el servomotor existe un actuador PWM (Pulse Wide Modulation), cuya etapa de potencia consiste de 4 conmutadores electrónicos en configuración H. Para la medición de la posición del motor y de la varilla se usa un codificador óptico para cada uno. La información sensada se envía a un contador por medio de dos trenes de pulsos desfasados en 90 grados. El contador de pulsos transmite las señales digitales a una tarjeta de adquisición de datos Lab-PC+. Asimismo, la tarjeta Lab-PC+ envía la señal de control hacia el actuador. En la Fig.1 se observa un esquema general del sistema. Fig.1a Sistema péndulo invertido Fig.1b Sistema grúa puente Fig.1c Esquema general del sistema III. MODELAMIENTO MATEMÁTICO DEL SISTEMA DE PÉNDULO INVERTIDO A.Modelamiento del sistema péndulo invertido.-Para mayor comodidad se ha separado el sistema péndulo invertido en dos subsistemas: el subsistema conformado por el carro y la varilla, y el subsistema conformado por el motor y el sistema de poleas. Para modelar el sistema mecánico utilizamos la segunda ley de Newton para el movimiento lineal y rotacional. Fig.2 Subsistema carro-varilla Aplicando la segunda ley de Newton al subsistema carro-varilla representado en la Fig.2, obtenemos: De la figura tenemos: donde: (3) (4) El subsistema motor-polea se encuentra representado en la Fig.3. Fig.3 Subsistema motor - polea El modelo del sistema eléctrico se encuentra aplicando la ley de voltajes de Kirchhoff a la malla R - L de la Fig.3. Además, debido a que la inductancia de motores DC de magneto permanente es pequeña, podemos despreciar su efecto en el modelo. Así obtenemos: Ra ·ia + Vb = KA·u = Va (5) El voltaje contraelectromotriz está representado por: (6) Ahora en el sistema mecánico del motor aplicamos la segunda ley de Newton para el movimiento rotatorio: (7) El torque producido en el eje del motor está dado por la ecuación: (8) Para transformar el desplazamiento angular del motor en el desplazamiento horizontal del carro en función del radio de la polea y el factor de reducción del motor, tenemos: (9) Con las ecuaciones anteriores obtenemos: (10) Las ecuaciones obtenidas serán representadas en el espacio de estados mediante la siguiente asignación de variables: (11) (12) (13) (14) Escribiendo las ecuaciones en el espacio de estados, tenemos: (15) donde: (16) (17) (18) (19) (20) (21) Y puesto que en nuestro sistema tenemos como salida disponible el desplazamiento angular de la varilla y el desplazamiento del carro, tendremos como ecuación de salida la siguiente expresión: y = C·x (22) donde: (23) Para poder analizar la ecuación (15) por métodos de control lineal es necesario obtener un modelo lineal de ésta. Esta aproximación lineal se puede obtener mediante la expansión en series de Taylor despreciando los términos de orden superior. Así la ecuación (15) se convierte en: (24) donde: (25) (26) Para la discretización del modelo podemos usar las siguientes ecuaciones[1]: x(kT+T) = Gx(kT)+Hu(kT) (27) y(kT)=Cx(kT)+Du(kT) (28) donde: (29) (30) (31) o también con el comando c2d o c2dm de MATLAB[2]. IV. MODELAMIENTO MATEMÁTICO DEL SISTEMA DE GRÚA PUENTE El modelamiento para el sistema grúa puente es similar al caso del péndulo invertido. En este caso la varilla apunta hacia abajo. El subsistema motor-polea es el mismo que para el caso del péndulo invertido, por lo que podemos usar la fórmula ya deducida anteriormente. Aplicando la segunda ley de Newton, para el sistema lineal, tenemos: (32) Luego aplicamos la segunda ley de Newton para el movimiento rotatorio: (33) Representando el modelo en el espacio de estados: (34) donde M1, M2, J1, J2, Bx y Kx están dados por las ecuaciones: (16), (17), (18), (19), (20) y (21). y y = C·x (35) (36) Linealizando el modelo: (37) (38) (39) Fig.4 Subsistema carro-varilla El modelo en tiempo discreto se puede obtener mediante las ecuaciones (27), (28), (29), (30) y (31) o los comandos c2d o c2dm de MATLAB. V. DISEÑO DEL CONTROL POR UBICACIÓN DE POLOS La técnica de ubicación de polos se basa en la realimentación de todas las variables de estado en la determinación adecuada de una matriz de ganancia de realimentación, de tal forma que todos los polos del sistema en lazo cerrado queden ubicados en las localizaciones deseadas. En la mayoría de los casos es necesario estimar aquellas variables no medibles. Esta estimación se realizará mediante la técnica de observadores de estado. A.Diseño del controlador.- En primer lugar consideremos el caso de un sistema de control sin entrada de referencia y donde las condiciones iniciales son llevadas a cero, para luego tratar el caso de servosistemas o sistemas con entrada de referencia. Considerando el siguiente sistema: x(k+1) = Gx(k) + Hu(k) (40) La señal de control u(k) dada por: u(k) = -Kx(k) (41) donde: K = [ K1 K2 ··· Kn ] (42) es la matriz de ganacia de realimentación de estados. Los pasos para el diseño del controlador por ubicación de polos son[3]: 1. Comprobar la completa controlabilidad del sistema, dada por la condición: rango de M = orden del sistema (43) donde: M = [H GH ... Gn-1H] (44) 2. Definir cuales serán los polos deseados, los que deberán cumplir con los requerimientos basados en la respuesta transitoria y/o respuesta en frecuencia. Con los polos deseados hallamos los coeficientes de la ecuación característica deseada: ( z - u1 )( z – u2) ··· ( z – un ) = zn n + a 1z n-1 + a 2 zn-2 + ··· + a n (45) Donde u1, u2, ··· , un son los polos deseados y a 1, a 2, ··· , a n son los coeficientes de la ecuación característica deseada. 3. Dada la ecuación característica del sistema original: |zI - G| = zn n + a 1z n-1 + a 2 zn-2 + ··· + a n (46) Hallamos sus coeficientes dados por a1, a2, ··· , an . 4. Hallamos la matriz de transformación T , dada por: T = MW (47) En donde M es la matriz de controlabilidad y W está dada por: (48) 5. Por último obtenemos la matriz de ganancia de realimentación de estados K, dada por: K = [a n - a n ¦ a n-1 - a n-1 ¦ ··· ¦ a 2 - a2 ¦ a 1 - a1]T-1 (49) O mediante la fórmula de Ackermann: K = [ 0 0 ··· 0 1 ][ H¦GH¦ ··· ¦ Gn-1 H ]-1 f (G) (50) donde: f (G) = Gn + a 1Gn-1 + ··· + a n-1 G + a n I (51) B. Diseño del servosistema.- Ahora extenderemos el caso anterior para servosistemas. Generalmente es necesaria la inclusión de una acción integral en el servosistema para reducir los errores de estado estable. El esquema del servosistema con acción integral está representado en la Fig.5. Fig.5 Servosistema con accion integral Así definimos la variable v(k) como la integral del error: v(k) = v(k -1) + r(k) - y(k) (52) donde r(k) es la señal de referencia. Luego tenemos las ecuaciones[3]: (53) (54) donde: (55) (56) (57) Los mismos pasos anteriores usados para sistemas sin entrada de referencia pueden ser usados para el caso del servosistema pero utilizando las ecuaciones (53) y (54). C.Diseño del observador.- En la Fig.6 podemos ver que las señales de entrada al observador son las señales y(k) y u(k), en donde y(k) es el vector que contiene las salidas directamente medibles de la planta y u(k) es la señal de entrada de la planta. La salida del observador será la señal xe(k), la cual corresponde al vector de estado observado. Este vector xe(k) corresponde a la versión estimada del vector de estado x(k). Fig.6 Observador de Estados El modelo dinámico del observador de estados mostrado en la Fig.6 está dado por la siguiente ecuación: xe(k +1) = Gxe (k) + Hu(k) + Ke [y(k) - ye (k)] (58) donde Ke es la matriz de ganancia de realimentación del observador. El objetivo del diseño es hallar una matriz de ganancia adecuada de realimentación del observador Ke , de tal forma que los valores característicos de (GKeC) disminuyan el error del observador. Antes de empezar el diseño del observador es necesario comprobar la completa observabilidad del sistema. Para el diseño del observador usaremos la función place del MATLAB[2]. La función place está basada en algoritmos que no son tema de esta tesis por lo que sólo nos limitaremos a su uso directo sin detallar los procedimientos usados en ésta. D. Diseño del sistema de control del péndulo invertido.- Tenemos el siguiente sistema de control: x(k+1) = Gx(k) + Hu(k) y(k) = Cx(k) Para el diseño del servosistema de las ecuaciones (53) y (54) se hallan las matrices dadas por (55) y (56). La matriz de controlabilidad está dada por: M=[Hi Gi*Hi Gi2*Hi Gi3*Hi Gi4*Hi]; Y el rango de M es 5. El sistema es completamente controlable. Se eligieron los siguientes polos de lazo cerrado deseados: u1=0.9967 + 0.0058i u2=0.9967 - 0.0058i u3=u4=u5=0.98 Usando la fórmula de Ackermann dada por: Ki = [ 0 0 0 0 1 ] M-1 f (Gi) donde: f (Gi)=Gi5 + a 1GI4 + a 2GI3 + a 3GI2 + a 4GI + a 5 Ki =[-3.1340 -0.7103 -0.5770 -1.1688 0.0019] De aquí tenemos que: K =[-3.1340 -0.7103 -0.5770 -1.1688] KI = -0.0019 Los polos del observador que se eligieron están dados por: u1=0.7165 u2=0.7165 u3=0.9000 u4= 0 Para hallar la matriz de realimentación del observador usaremos la función place del MATLAB de la siguiente manera: jO=[ 0.7165 0.7165 0.9000 0]; C=[1 0 0 0 0 0 1 0]; Ke=place(G',C',jO)' De aquí obtenemos: E. Diseño del sistema de control de la grúa puente.-Aplicamos los mismos pasos que en el caso anterior: La matriz de controlabilidad está dada por: M=[Hi Gi*Hi Gi2*Hi Gi3*Hi Gi4*Hi]; Y el rango de M es 5. El sistema es completamente controlable. Se eligieron los siguientes polos de lazo cerrado deseados: u1 =0.9933 + 0.0115i u2 =0.9933 - 0.0115i u3 =u4 =u5 =0.9800 Usando la fórmula de Ackermann dada por: Ki = [ 0 0 0 0 1 ] M-1 f (Gi) donde: f (Gi)=Gi5 + a 1GI4 + a 2GI3 + a 3GI2 + a 4GI + a 5 Ki =[1.3481 0.0372 1.7630 0.2277 -0.0079] De aquí tenemos que: K =[1.3481 0.0372 1.7630 0.2277] KI =0.0079 Los polos del observador que se eligieron están dados por: uo1=0.1353 uo2=0.1353 uo3=0.9000 uo4=0 Para hallar la matriz de realimentación del observador usamos la función place del MATLAB y obtenemos: VI. DISEÑO DEL CONTROL ÓPTIMO CUADRÁTICO LINEAL A.Diseño del controlador.-El problema del control óptimo consiste en que dada una condición inicial x(o), se debe encontrar la secuencia adecuada de la señal de control óptima u(k) que transfiera el sistema a un estado final x(N) para el cual se minimice una función denominada función de costo o índice de desempeño, en este caso cuadrático, de tal forma que obtengamos del sistema una respuesta óptima. Cuando el proceso de control es finito (N finita), la matriz de ganancia de realimentación de estados K(k) es una matriz variante en el tiempo. Pero para el caso en el que el proceso continúa sin fin, es decir para N=8, la solución del control óptimo cuadrático pasa a ser una solución de estado estacionario. En este caso la matriz K(k) se convierte en una matriz constante K. El índice de desempeño cuadrático que utilizaremos es el siguiente: (59) DondeQ es una matriz hermítica definida positiva o semidefinida positiva y R es una matriz hermítica definida positiva. Las matrices Q y R son matrices de ponderación. La solución al problema de control óptimo cuadrático de estado estacionario estará dada por las ecuaciones siguientes[3]: P = Q + G*PG - G*PH[R + H*PH]-1H*PG (60) u(k) = -Kx(k) (61) K= [R + H*PH]-1H*PG (62) Donde la ecuación (60) se denomina ecuación de Riccati, la ecuación (61) es la ley de control y la ecuación (62) representa la matriz de ganancia de realimentación de estados. El valor mínimo del índice de desempeño se puede hallar mediante la expresión: Jmin = 1/2 x*(0)Px(0) (63) Una forma de resolver la ecuación (60) es usar la ecuación de Riccati en estado no estacionario[3], pero invirtiendo la dirección del tiempo, es decir: P(k + 1) = Q + G*P(k)G - G*P(k)H[R + H*P(k)H]-1H*P(k)G (64) Para resolver esta ecuación empezamos con P(0) = 0, y vamos calculando en forma iterativa hasta obtener un valor de P convergente. Luego de obtener la matriz P podemos calcular la matriz K, para luego obtener la ley de control. B. Diseño del observador.- En esta sección se darán las pautas para el diseño del observador de estados mediante la minimización de un índice de desempeño cuadrático. El diagrama de bloques del observador de estados que diseñaremos es el mismo que el la sección V y esta representado en la Fig.6. La ecuación del observador de estados está dada por: xe(k +1) = Gxe(k) + Hu(k) + Ke [y(k) - ye(k)] (65) donde xe(k) y ye(k) representan el vector de estados y el vector de salida estimados, respectivamente, y Ke es la matriz de ganancia de realimentación del observador. Para el diseño del observador utilizaremos las siguientes ecuaciones auxiliares[4]: a(k +1) = G Ta(k)+ C Tß(k ) (66) ß(k ) =-Ke T a(k) (67) El índice de desempeño será: (68) La ecuación de Riccati y la matriz Ke están dadas por: Pe = Qe +GPe G T-GPe C T[R e+CPe C T]-1CPeG T (69) Ke = [Re + CPe C T]-1CPe G T (70) Para resolver la ecuación (69) podemos usar el mismo criterio que usamos para el diseño del control en estado estacionario. Para ello utilizamos la siguiente ecuación recursiva: Pe(k + 1) = Qe + GPe(k)GT- GPe(k)CT[Re + CPe(k)CT]-1CPe(k)CT (71) C. Diseño del servosistema.- Para el diseño del sistema con entrada de referencia usaremos las ecuaciones (53), (54), (55), (56) y (57). D. Diseño del control del sistema del péndulo invertido Se eligieron las siguientes matrices R y Q : R=[100], Y las matrices Re y Qe : , Para el cálculo de la ecuación de Ricatti utilizaremos la ecuación (64) en forma recursiva y luego hallamos la matriz Ki con (62). Ki =[-7.7253 -1.7310 -2.9360 -2.6291 0.0097] De aquí tenemos que: K =[-7.7253 -1.7310 -2.9360 -2.6291] KI =-0.0097 Para el cálculo de la ecuación de Ricatti del observador usamos la ecuación (69) y obtenemos: E. Diseño del sistema de grúa puente Se eligieron las matrices: R=[1], Y las matrices Re y Qe : , Para el cálculo de la ecuación de Ricatti y la matriz K utilizaremos la ecuación (64) y (62): Ki=[8.2596 -4.3465 37.9206 10.3665 -0.2907] En donde K=[8.2596 -4.3465 37.9206 10.3665] KI = 0.2907 Para el cálculo de la ecuación de Ricatti del observador usamos la ecuación (69): VII. RESULTADOS Y CONCLUSIONES Las respuestas obtenidas se muestran en las Fig. 7, 8, 9 y 10. La señal de referencia para la posición del carro es un escalón de valor 1.5. Como se puede ver las respuestas son estables. En el caso del péndulo invertido se observa en la respuesta estacionaria un ciclo límite que podría reducirse usando sensores más precisos con un tamaño de paso menor. Ambos algoritmos de control lineal tienen una respuesta satisfactoria siempre que las desviaciones de las variables alrededor de cero sean pequeñas. El diseño del control se debe realizar de tal forma que las variables no se salgan de la zona lineal dada por el modelo. Se comprobó que los sistemas de control diseñados responden en forma adecuada para un ángulo máximo de la varilla de unos 20 grados aproximadamente. Los dos algoritmos de control, puesto que son lineales, no consideran el hecho que la señal de entrada pueda presentar el fenómeno de saturación. Debido a esto, para el caso del diseño por ubicación de polos, debemos escoger los polos o variar la frecuencia de muestreo de tal forma que la amplitud de la señal de entrada en lo posible no llegue a la saturación. Igualmente en el caso del control óptimo se debe variar la matriz que da peso a la señal de entrada en la función de costo. Un peso mayor ocasiona un menor gasto de energía en la señal de entrada. La elección de los pesos en la función de costo del control óptimo cuadrático se debe realizar considerando qué señal queremos que tenga una mejor respuesta. Un mayor peso en una de las variables ocasionará una mejor respuesta en ésta; pero disminuirá el desempeño de las demás. Entonces es necesario balancear de forma adecuada los pesos de tal forma que obtengamos un desempeño general del sistema que se acerque lo más posible al óptimo. Fig.7a Fig.7b Fig.7 Respuestas del control por ubicación de polos del sistema de péndulo invertido. a.Posición del carro. b.Ángulo de la varilla Fig.8a Fig.8b Fig.8 Respuestas del control por ubicación de polos del sistema de grúa puente. a.Posición del carro. b.Ángulo de la varilla. Fig.9a Fig.9b Fig.9 Respuestas del control óptimo cuadrático del sistema de péndulo invertido. a.Posición del carro. b.Ángulo de la varilla. Fig.10a Fig.10b Fig.10 Respuestas del control óptimo cuadrático del sistema de grúa puente. a.Posición del carro. b.Ángulo de la varilla. VIII. REFERENCIAS [1] Philips, Charles L., Digital Control System Analysis and Design, Prentice Hall Inc., second edition, New Jersey, 1990 [2] Matlab Reference Guide, The Math Works Inc., Massachussets, 1992 [3] Ogata, Katsuhiko, Sistemas de Control en Tiempo Discreto, Prentice Hall Hispanoamericana S.A., segunda edición, 1996 [4] Isermann, Rolf, Digital control Systems Volume 1, Springer-Verlag, second edition, Germany, 1989