miércoles, 12 de diciembre de 2007

El Péndulo Invertido

El Péndulo Invertido







Los péndulos invertidos son una familia de artefactos que constituyen un banco de pruebas muy completo e interesante para la ingeniería de control No Lineal. El más estudiado de los miembros de esta familia es el denominado control invertido sobre el vehículo, al que corrientemente se denomina como carro.







Durante los años 60 la demostración consistía en un péndulo o varilla que gira libremente por uno de sus extremos mediante una articulación situada sobre un carro que se mueve sobre una grúa rectilínea horizontal bajo la acción de una fuerza F, que es la acción de control con la que se pretende actuar sobre la posición de la varilla. El funcionamiento de este sistema consiste en situar de forma manual el péndulo en la posición vertical invertida, soltarlo luego y que forma autónoma, realimentando su posición, el péndulo continuase en la posición invertida mediante la adecuada actuación sobre el carro.
El problema de control, así considerado, es local y su interés residía en que se trataba de estabilizar una posición inestable en bucle abierto lo que, como se sabe, constituye un problema de control muy notable. Este problema por su carácter local, puede resolverse con métodos lineales y así se ha hecho desde los años 60. Es importante destacar que en sistemas lineales, la estabilización en bucle cerrado de un punto inestable en bucle abierto, no ofrece particulares problemas; éstos aparecen cuando el sistema es no lineal. El inconveniente con esta versión del péndulo, a la hora de plantear globales, reside en que el recorrido del carro está acotado, por lo que si se alcanza uno de los extremos del soporte horizontal el sistema deja de funcionar.


Condiciones del problema y requerimientos de diseño
El carrito con un péndulo invertido, se muestra abajo, es "empujado" con una fuerza impulsiva, F. Determinemos las ecuaciones dinámicas de movimiento del sistema, y linealicemos cerca del ángulo del péndulo, theta = Pi (en otras palabras, asumamos que péndulo no se aparta más que unos pocos grados de la vertical, elegida en un ángulo de Pi). Encontremos un controlador para satisfacer todos los requerimientos de diseño dados arriba.
Para este ejemplo, asumamos que




Para las secciones de PID, root locus, y respuesta en frecuencia de este problema sólo estamos interesados en el control de la posición del péndulo; esto es porque las técnicas usadas en estos tutoriales solo pueden aplicarse a sistema una-entrada-una-salida (SISO). Por lo tanto, ninguno de los criterios de diseño lidian con la posición del carro. En estas secciones asumimos que el sistema comienza en el equilibrio, y experimenta una fuerza impulsiva de 1N. El péndulo debe volver a su posición vertical dentro de los 5 segundos, y nunca moverse más que 0.05 radianes fuera de la vertical.
Los requerimientos de diseño para este sistema son:




....Tiempo de establecimiento menor que 5 segundos.
....Ángulo del Péndulo nunca mayor que 0.05 radianes de la vertical.




Sin embargo, con el método de espacio de estado seremos más capaces de manejar un sistema multi-salida. Por lo tanto, para esta sección del ejemplo del Péndulo Invertido intentaremos controlar tanto el ángulo del péndulo cuanto la posición del carro. Para hacer más desafiante el diseño hemos de aplicar una entrada escalón al carrito. El carrito debe lograr estar en su posición deseada dentro de los 5 segundos y tener un tiempo de subida menor que 0.5 segundos. Además limitaremos el sobrepico del péndulo a 20 grados (0.35 radianes), y también deberá establecerse antes de los 5 segundos.



Los requerimientos de diseño para el ejemplo en espacio de estado del Péndulo Invertido son:
....Tiempo de establecimiento de x y theta menor que 5 segundos.
....Tiempo de Subida para x menor que 0.5 segundos.
....Sobrepico de theta menor que 20 grados (0.35 radianes).




Análisis de las fuerzas y sistema de ecuaciones
Abajo figuran los dos diagramas de cuerpo libre del sistema.



Sumando las fuerzas en el diagrama de cuerpo libre del carro en la dirección horizontal, se obtiene la siguiente ecuación del movimiento:




Note que también puede sumar las fuerzas en la dirección vertical, pero no se ganará ninguna información útil.
Sumando las fuerzas en el diagrama de cuerpo libre del péndulo en la dirección horizontal, puede obtener an ecuación para N:




Si sustituye esta ecuación en la primera ecuación, se obtiene la primera ecuación del movimiento de este sistema:para obtener la segunda ecuación de movimiento, sume las fuerzas perpendiculares al péndulo. Si resuelve el sistema a lo largo de este eje se ahorrará un montón de álgebra. Debería obtener la siguiente ecuación:
Para librarse de los términos P y N en la ecuación anterior, sume los momentos sobre el centroide del péndulo para obtener la siguiente ecuación:
Combinando estas dos últimas ecuaciones, se obtiene la segunda ecuación dinámica:
Como Matlab solo puede trabajar con funciones lineales, este conjunto de ecuaciones debería ser linealizado alrededor de theta = Pi. Asuma que theta = Pi + ø(ø representa un pequeño ángulo en la dirección vertical). Por lo tanto, cos(theta) = -1, sin(theta) = -ø, y (d(theta)/dt)^2 =0. Luego de la linealización las dos ecuaciones de movimiento serán :



(donde u representa la entrada)

1. Función de Transferencia
Para obtener analíticamente la función de transferencia de las ecuaciones del sistema linealizado , debemos tomar primero la transformada de Laplace de las ecuaciones del sistema. Las transformadas de Laplace son:



NOTE: Cuando se halla la función de transferencia se considera condiciones iniciales nulas.


Como como estamos mirando al ángulo Phi como la salida de interés, resuelva la primera ecuación para X(s), y entonces sustitúyala en la segunda ecuación:
Re-ordenando, la función de transferencia es:


donde,


De la función de transferencia de arriba puede verse que hay un polo y un cero en el origen. Estos puede ser cancelados y la función de transferencia será:
2. Espacio de Estado
Luego de un poco de álgebra, las linealizadas ecuaciones del sistema pueden también representarse en la forma espacio de estado:

La matriz C es de 2 por 4, porque la posición del carro y la posición del péndulo son parte de la salida. Para el problema de diseño en espacio de estado estaremos controlando un sistema de salida múltiple por lo que observaremos la posición del carro en el primer renglón de salida y la del péndulo en el segundo renglón.


Representación en Matlab y respuesta a lazo abierto
1. Función de Transferencia

La función de transferencia hallada a partir de las transformadas de Laplace puede ser establecidas con Matlab ingresando el numerador y el denominador como vectores. Cree un archivo-m y copie el siguiente texto para modelar la función de transferencia:

La salida debería ser:

num = 4.5455 0 den = 1.0000 0.1818 -31.1818 -4.4545

Para observar la respuesta del sistema de la velocidad a una fuerza impulsiva aplicada al carro agregue las siguientes líneas al final de su archivo-m:

t=0:0.01:5;

impulse(num,den,t)

axis([0 1 0 60])


Nota: Los comandos Matlab de la toolbox de control de sistema se destacan en rojo.
Debería obtenerse el siguiente gráfico de respuesta de la velocidad :





Como puede ver del gráfico, la respuesta es totalmente insatisfactoria. No es estable a lazo abierto. Puede cambiar los ejes para ver más de la respuesta si necesita convencerse que el sistema es inestable.
1. Espacio de Estado
Abajo, se muestra cómo se encara el problema usando Matlab para el modelo en espacio de estado. Si copia el siguiente texto a un archivo-m y lo ejecuta, Matlab le dará las matrices A, B, C, y D para el modelo en espacio de estado y un gráfico de la posición del carro y ángulo del péndulo como respuesta a un entrada escalón de 0.2 m aplicada al carro.

M = .5;
m = 0.2;
b = 0.1;
i = 0.006;
g = 9.8;l = 0.3;
p = i*(M+m)+M*m*l^2; %denominador para las matrices A y B
A = [0 1 0 0;
0 -(i+m*l^2)*b/p (m^2*g*l^2)/p 0;
0 0 0 1;
0 -(m*l*b)/p m*g*l*(M+m)/p 0]

B = [ 0;
(i+m*l^2)/p;
0;
m*l/p]

C = [1 0 0 0;
0 0 1 0]
D = [0;
0]
T=0:0.05:10;
U=0.2*ones(size(T));
[Y,X]=lsim(A,B,C,D,U,T);
plot(T,Y)
axis([0 2 0 100])
Luego de correr este archivo-m, debería verse la siguiente salida:
A = 0 1.0000 0 0
0 -0.1818 2.6727 0
0 0 0 1.0000
0 -0.4545 31.1818 0
B = 0
1.8182
0
4.5455

C = 1 0 0 0
0 0 1 0


D = 0
0






La línea azul representa la posición del carro y la línea verde representa el ángulo del péndulo. De esta figura y de la anterior es obvio que para mejorar la dinámica del sistema alguna especie de control tendrá que ser diseñada. En estos tutoriales se incluyen cuatro tipos de controladores : PID, lugar de raíces, respuesta en frecuencia, y espacio de estado. Abajo puede seleccionar el que quisiera usar.
Nota: Las soluciones mostradas en los ejemplos PID, root locus y respuesta en frecuencia podrían no arrojar un controlador adecuado para el problema del péndulo invertido. Como se estableció previamente, cuando pusimos este problema en el marco de una entrada y una salida, ignoramos la posición x del carro. El péndulo podrá ser estabilizado en una posición invertida si la posición x es constante o si el carrito se mueve a velocidad constante (sin aceleración). Donde fuera posible en estos ejemplos, se mostrará qué sucede con la posición del carro cuando se implemente el controlador en el sistema. Enfatizamos que el propósito de estos ejemplos es demonstrar técnicas de diseño y análisis con Matlab; no controlar realmente un péndulo invertido.

No hay comentarios: