El péndulo Invertido.docx

16
Modelación de un Péndulo Invertido 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, asumimos que: M masa del carro 0.5 kg m masa del péndulo 0.2 kg b fricción del carro 0.1 N/m/seg l longitud al centro de masa del péndulo 0.3 m I inercia del péndulo 0.006 kg*m^2 F fuerza aplicada al carro x coordenadas de posición del carro

description

Modelación de un péndulo invertido

Transcript of El péndulo Invertido.docx

Page 1: El péndulo Invertido.docx

Modelación de un Péndulo Invertido

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, asumimos que:

M masa del carro 0.5 kg

m masa del péndulo 0.2 kg

b fricción del carro 0.1 N/m/seg

l longitud al centro de masa del péndulo 0.3 m

I inercia del péndulo 0.006 kg*m^2

F fuerza aplicada al carro

x coordenadas de posición del carro

theta ángulo del péndulo respecto de la vertical

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.

Page 2: El péndulo Invertido.docx

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:

Page 3: El péndulo Invertido.docx

Si sustituye esta ecuación en la primera ecuación, se obtiene la primera ecuación del movimiento de este sistema:

(1)

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:

(2)

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 TransferenciaPara 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.

Page 4: El péndulo Invertido.docx

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á:

Page 5: El péndulo Invertido.docx

2. Espacio de EstadoLuego 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 TransferenciaLa 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:

M = .5;m = 0.2;b = 0.1;i = 0.006;g = 9.8;l = 0.3;

q = (M+m)*(i+m*l^2)-(m*l)^2; %simplifica entrada

num = [m*l/q 0]den = [1 b*(i+m*l^2)/q -(M+m)*m*g*l/q -b*m*g*l/q]

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;

Page 6: El péndulo Invertido.docx

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 EstadoAbajo, 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;

Page 7: El péndulo Invertido.docx

(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

Page 8: El péndulo Invertido.docx

Solución al Problema del Péndulo Invertido Usando Control PID

La función de transferencia de la planta para este problema se da abajo:

donde,

El criterio de diseño (con el péndulo recibiendo un 1N fuerza impulsiva del carrito) es:

Tiempo de establecimiento menor que 5 segundos. El péndulo no debiera apartarse más que 0.05 radianes de la vertical.

para ver cómo se preparó originalmente este problema, consulte la página modelado del péndulo invertido .

Representación a lazo abierto

Lo primero que hay que hacer cuando se usa control PID en Matlab es hallar la función de transferencia del sistema y verificar para ver si tiene sentido. La función de transferencia calculada de las transformadas de Laplace para la salida Phi (el ángulo del péndulo) puede ponerse en 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:

M = .5;m = 0.2;b = 0.1;i = 0.006;g = 9.8;l = 0.3;q = (M+m)*(i+m*l^2)-(m*l)^2; %simplifica entradanum = [m*l/q 0]den = [1 b*(i+m*l^2)/q -(M+m)*m*g*l/q -b*m*g*l/q]

La salida sería: num = 4.5455 0 den = 1.0000 0.1818 -31.1818 -4.4545

Page 9: El péndulo Invertido.docx

Función de transferencia a Lazo Cerrado

El control de este problema es un poco diferente que los problemas típicos de control que haya usado. Como estamos tratando de controlar la posición del péndulo, el cual debe volver a la vertical luego de una perturbación inicial, la señal de referencia que estamos persiguiendo debería ser cero. La fuerza aplicada al carro puede agregarse como una perturbación impulsiva. El esquema para este problema debería verse como el siguiente.

Le será más fácil determinar la función de transferencia apropiada para pasarla al Matlab si reordenamos primero el esquema como sigue:

Ahora, podemos hallar la función de transferencia a lazo cerrado .

Agregado del controlador PID

Esta función de transferencia a lazo cerrado puede modelarse en Matlab copiando el siguiente código al final de su archivo-m (dependiendo de si está usando la función de transferencia a partir de las transformadas de Laplace directa o a partir de la representación en espacio de estado):

kd = 1;k = 1;ki = 1;numPID = [kd k ki];denPID = [1 0];numc = conv(num,denPID)denc = polyadd(conv(denPID,den),conv(numPID,num))

Nota: Los comandos Matlab no estándares usados en este ejemplo se destacan en verde.

Page 10: El péndulo Invertido.docx

La función polyadd no se halla en la toolbox de Matlab. Tendrá que copiarla a un archivo-m nuevo para usarla. En esta función de transferencia se considera que será necesario control derivativo y control integral junto con control proporcional. Esto no tiene que ser necesariamente el caso. Si prefiere empezar con Control PI, no tiene más que remover el término kd de numPID. Si prefiere empezar con Control PD, no tiene más que remover el término ki de numPID y cambiar denPID de modo que sea [1]. Asumiendo que no ha cambiado el control PID, debería obtenerse los siguientes numerador y denominador a lazo cerrado en la ventana de comandos del Matlab:

numc = 4.5455 0 0 denc = 1.0000 4.7273 -26.6363 0.0910 0

Ya podemos comenzar con control real de este sistema. Primero veamos que la respuesta al impulso se vea con los números que ya teníamos. Ingrese el siguiente código al final de su archivo-m:

t=0:0.01:5;impulse(numc,denc,t)axis([0 1.5 0 40])

Debería obtenerse el gráfico siguiente de la respuesta velocidad a la perturbación impulsiva:

Esta respuesta aún no es estable. Comencemos incrementando el control proporcional del sistema. Suba la variable k para ver qué efecto tiene en la respuesta. Si hace k=100, y pone los ejes conaxis([0, 2.5, -0.2, 0.2]), debería obtener el gráfico siguiente de la respuesta velocidad:

Page 11: El péndulo Invertido.docx

El tiempo de establecimiento es aceptable y cerca de 2 segundos. Como el error de estado estacionario ya ha sido reducido a cero, no se necesita más control integral. Puede remover la ganancia constante integral para ver por sí mismo que es necesario un pequeño control integral. El sobrepico es demasiado alto, de modo que se debe arreglar. Para aliviar este problema, incremente la variable kd. Con kd=20, debería obtenerse un resultado satisfactorio . Ahora debe ver el gráfico siguiente de la respuesta velocidad:

Como puede ver, el sobrepico se redujo de modo que el péndulo no se mueve más que 0.05 radianes de la vertical. Se han satisfecho todos los criterios de diseño, así que ya no se necesita más iteraciones.

Page 12: El péndulo Invertido.docx

Qué sucede con la posición del carro?

Al principio de página, se dio el diagrama en bloque para este problema. El diagrama no estaba totalmente completo. El bloque que representa la posición fue ignorado porque era una variable que no iba a ser controlada. Sería sin embargo interesante, para ver qué está sucediendo con la posición del carro cuando se coloca el controlador para el ángulo del péndulo . Para verlo necesitamos considerar el diagrama en bloques real del sistema:

Reacomodando un poco más, se obtiene el siguiente diagrama en bloque:

El lazo de realimentación representa el controlador que hemos diseñado para el ángulo del péndulo. La función de transferencia de la posición del carro a la fuerza impulsiva, con el controlador PID realimentado que se ha diseñado, se da como sigue:

Recordemos que si el par polo/cero en el origen que fue cancelado se vuelve a agregar, den1=den2. De modo que la función de transferencia de X a F puede simplificarse a:

Ahora que tenemos la función de transferencia del sistema completo, echemos un vistazo a la respuesta. Primero necesitamos la función de transferencia para la posición del carro. Para obtenerla necesitamos volver a las ecuaciones del sistema en transformada Laplace y encontrar la función de transferencia de X(s) a U(s). Esta función de transferencia se muestra abajo:

Page 13: El péndulo Invertido.docx

donde,

Para ayuda acerca de la transformada de Laplace refiérase por favor a modelado del péndulo invertido .

El par polo/cero en el origen que habíamos cancelado en la función de transferencia de Phi, se ha vuelto a introducir. Así que ahora den1 = den2, lo que reduce la dificultad del cálculo. Ahora, cree un nuevo archivo-m y ejecútelo en la ventana de comandos:

M = .5;m = 0.2;b = 0.1;i = 0.006;g = 9.8;l = 0.3;q = (M+m)*(i+m*l^2)-(m*l)^2; %simplifica entradanum1 = [m*l/q 0 0];den1 = [1 b*(i+m*l^2)/q -(M+m)*m*g*l/q -b*m*g*l/q 0];num2 = [(i+m*l^2)/q 0 -m*g*l/q];den2 = den1kd = 20;k = 100;ki = 1;numPID = [kd k ki];denPID = [1 0];numc = conv(num2,denPID);denc = polyadd(conv(denPID,den2),conv(numPID,num1));t=0:0.01:5;impulse(numc,denc,t)