Sunteți pe pagina 1din 8

21/5/2014 CTM Ejemplo: Pndulo Invertido : Modelacin

http://www.ib.cnea.gov.ar/~instyctl/Tutorial_Matlab_esp/invpen.html 1/8
Ejemplo: Modelacin de un Pndulo Invertido
Condiciones del problema y requerimientos de diseo
Anlisis de las fuerzas y sistema de ecuaciones
Representacin en Matlab y respuesta a lazo abierto
Condiciones del problema y requerimientos de diseo
El carrito con un pndulo invertido, se muestra abajo, es "empujado" con una fuerza impulsiva, F. Determinemos
las ecuaciones dinmicas de movimiento del sistema, y linealicemos cerca del ngulo del pndulo, theta = Pi (en
otras palabras, asumamos que pndulo no se aparta ms que unos pocos grados de la vertical, elegida en un
ngulo de Pi). Encontremos un controlador para satisfacer todos los requerimientos de diseo dados arriba.
Para este ejemplo, asumamos que
M masa del carro 0.5 kg
m masa del pndulo 0.5 kg
b friccin del carro 0.1 N/m/seg
l longitud al centro de masa del pndulo 0.3 m
I inercia del pndulo 0.006 kg*m^2
F fuerza aplicada al carro
x coordenadas de posicin del carro
21/5/2014 CTM Ejemplo: Pndulo Invertido : Modelacin
http://www.ib.cnea.gov.ar/~instyctl/Tutorial_Matlab_esp/invpen.html 2/8
theta ngulo del pndulo respecto de la vertical
Para las secciones de PID, root locus, y respuesta en frecuencia de este problema slo estamos interesados en
el control de la posicin del pndulo. esto es porque las tcnicas usadas en estos tutoriales solo pueden aplicarse
a sistema una-entrada-una-salida (SISO). Por lo tanto, ninguno de los criterios de diseo lidian con la posicin
del carro. En estas secciones asumimos que el sistema comienza en el equilibrio, y experimenta una fuerza
impulsiva de 1N. El pndulo debe volver a su posicin vertical dentro de los 5 segundos, y nunca moverse ms
que 0.05 radianes fuera de la vertical.
Los requerimientos de diseo para este sistema son:
Tiempo de establecimiento menor que 5 segundos.
ngulo del Pndulo nunca mayor que 0.05 radianes de la vertical.
Sin embargo, con el mtodo de espacio de estado seremos ms capaces de manejar un sistema multi-salida. Por
lo tanto, para esta seccin del ejemplo del Pndulo Invertido intentaremos controlar tanto el ngulo del pndulo
cuanto la posicin del carro. Para hacer ms desafiante el diseo hemos de aplicar una entrada escaln al
carrito. El carrito debe lograr estar en su posicin deseada dentro de los 5 segundos y tener un tiempo de subida
menor que 0.5 segundos. Adems limitaremos el sobrepico del pndulo a 20 grados (0.35 radianes), y tambin
deber establecerse antes de los 5 segundos.
Los requerimientos de diseo para el ejemplo en espacio de estado del Pndulo 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).
Anlisis 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 direccin horizontal, se obtiene la siguiente
ecuacin del movimiento:
21/5/2014 CTM Ejemplo: Pndulo Invertido : Modelacin
http://www.ib.cnea.gov.ar/~instyctl/Tutorial_Matlab_esp/invpen.html 3/8
Note que tambin puede sumar las fuerzas en la direccin vertical, pero no se ganar ninguna informacin til.
Sumando las fuerzas en el diagrama de cuerpo libre del pndulo en la direccin horizontal, puede obtener an
ecuacin para N:
Si sustituye esta ecuacin en la primera ecuacin, se obtiene la primera ecuacin del movimiento de este sistema:
(1)
para obtener la segunda ecuacin de movimiento, sume las fuerzas perpendiculares al pndulo. Si resuelve el
sistema a lo largo de este eje se ahorrar un montn de lgebra. Debera obtener la siguiente ecuacin:
Para librarse de los trminos P y N en la ecuacin anterior, sume los momentos sobre el centroide del pndulo
para obtener la siguiente ecuacin:
Combinando estas dos ltimas ecuaciones, se obtiene la segunda ecuacin dinmica:
(2)
Como Matlab solo puede trabajar con funciones lineales, este conjunto de ecuaciones debera ser linealizado
alrededor de theta = Pi. Asuma que theta = Pi + ( representa un pequeo ngulo en la direccin vertical). Por
lo tanto, cos(theta) = -1, sin(theta) = -, y (d(theta)/dt)^2 =0. Luego de la linealizacin las dos ecuaciones de
movimiento sern :
(donde u representa la entrada)
1. Funcin de Transferencia
Para obtener analticamente la funcin 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:
21/5/2014 CTM Ejemplo: Pndulo Invertido : Modelacin
http://www.ib.cnea.gov.ar/~instyctl/Tutorial_Matlab_esp/invpen.html 4/8
NOTE: Cuando se halla la funcin de transferencia se considera condiciones iniciales nulas.
Como como estamos mirando al ngulo Phi como la salida de inters, resuelva la primera ecuacin para X(s),
y entonces sustityala en la segunda ecuacin:
Re-ordenando, la funcin de transferencia es:
donde,
De la funcin de transferencia de arriba puede verse que hay un polo y un cero en el origen. Estos puede ser
cancelados y la funcin de transferencia ser:
2. Espacio de Estado
Luego de un poco de lgebra, las linealizadas ecuaciones del sistema pueden tambin representarse en la forma
espacio de estado:
21/5/2014 CTM Ejemplo: Pndulo Invertido : Modelacin
http://www.ib.cnea.gov.ar/~instyctl/Tutorial_Matlab_esp/invpen.html 5/8
La matriz C es de 2 por 4, porque la posicin del carro y la posicin del pndulo son parte de la salida. Para el
problema de diseo en espacio de estado estaremos controlando un sistema de salida mltiple por lo que
observaremos la posicin del carro en el primer rengln de salida y la del pndulo en el segundo rengln.
Representacin en Matlab y respuesta a lazo abierto
1. Funcin de Transferencia
La funcin 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 funcin 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 debera 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 lneas al final de su archivo-m:
t=0:0.01:5;
impulse(num,den,t)
21/5/2014 CTM Ejemplo: Pndulo Invertido : Modelacin
http://www.ib.cnea.gov.ar/~instyctl/Tutorial_Matlab_esp/invpen.html 6/8
axis([0 1 0 60])
Nota: Los comandos Matlab de la toolbox de control de sistema se destacan en rojo.
Debera obtenerse el siguiente grfico de respuesta de la velocidad :
Como puede ver del grfico, la respuesta es totalmente insatisfactoria. No es estable a lazo abierto. Puede
cambiar los ejes para ver ms de la respuesta si necesita convencerse que el sistema es inestable.
1. Espacio de Estado
Abajo, se muestra cmo 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 grfico de la posicin del carro y ngulo del pndulo como respuesta a un entrada escaln 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;
21/5/2014 CTM Ejemplo: Pndulo Invertido : Modelacin
http://www.ib.cnea.gov.ar/~instyctl/Tutorial_Matlab_esp/invpen.html 7/8
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, debera 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 lnea azul representa la posicin del carro y la lnea verde representa el ngulo del pndulo. De esta figura y
de la anterior es obvio que para mejorar la dinmica del sistema alguna especie de control tendr que ser
21/5/2014 CTM Ejemplo: Pndulo Invertido : Modelacin
http://www.ib.cnea.gov.ar/~instyctl/Tutorial_Matlab_esp/invpen.html 8/8
diseada. En estos tutoriales se incluyen cuatro tipos de controladores : PID, lugar de races, 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 podran no
arrojar un controlador adecuado para el problema del pndulo invertido. Como se estableci previamente,
cuando pusimos este problema en el marco de una entrada y una salida, ignoramos la posicin x del carro. El
pndulo podr ser estabilizado en una posicin invertida si la posicin x es constante o si el carrito se mueve a
velocidad constante (sin aceleracin). Donde fuera posible en estos ejemplos, se mostrar qu sucede con la
posicin del carro cuando se implemente el controlador en el sistema. Enfatizamos que el propsito de estos
ejemplos es demonstrar tcnicas de diseo y anlisis con Matlab; no controlar realmente un pndulo invertido.
User Feedback
We would like to hear about suggestions you have for improvement, difficulties you had with the tutorials, errors
that you found, or any other comments that you have. This feedback is anonymous.
Submit Feedback Reset
Ejemplos de Modelacin
Control de Marcha | Velocidad del Motor | Posicin de un Motor | Suspensin de un Colectivo | Pndulo
Invertido | Control de Inclinacin | Barra y Bola
Pndulo Invertido : Ejemplos
Modelacin | PID | Lugar de Races | Respuesta en Frecuencia | Espacio de Estado | Control Digital
Tutoriales
Matlab Bsico | Modelacin | PID | Lugar de Races | Respuesta en Frecuencia | Espacio de Estado |
Control Digital | Ejemplos

8/11/97 CJC

S-ar putea să vă placă și