Вы находитесь на странице: 1из 10

Ing.

Daniel Carbonel

EE616M

CONTROL PTIMO PARA EL PENDULO INVERTIDO


El sistema de pndulo invertido mostrado, la gobiernan las ecuaciones mostradas.

m .. .. (M + m) x + m l = F .. .. x +l = g X

mg

Donde: M m x g l F masa del carro (2000 gr) masa de la esfera (500gr) Posicin horizontal de la varilla gravedad (10m/sg2) longitud de la varilla (1 mt) fuerza a controlar para mantener la varilla vertical. x2 = y2 = x

Si definimos las variables de estado: x = 1 y1 = y las variables de salida como: El trabajo se divide en dos partes: 1)

x3 = x

x4 = x

Diseo de un sistema de control ptimo, tal que haga mnimo el ndice


T de comportamiento cuadrtico: J = (x Q x + u T R u ) dt 0

2)

Importancia de la eleccin de un ponderamiento adecuado para Q y R, mostrando en una simulacin la variacin de las respuestas en funcin de ellas.

Ing. Daniel Carbonel

EE616M

Solucin:

- Primer Paso:
Hallemos las ecuaciones de estado que gobiernan este sistema. Reemplazando los valores dados de M, m y l Entonces tenemos: .. .. 2.5 x + 0.5 = F ...(1) x + = 10
.. ..

...(2)

Reemplazando (2) en (1) obtenemos: 2 25 + F = 0 2 x + 5 F = 0


.. ..

... (3) ... (4)

La ecuacin de estados: . 0 1 0 0 x1 0 x.1 x 2 25 / 2 0 0 0 x 2 1 / 2 + F . = 0 0 1 x3 0 x3 0 . 5 / 2 0 0 0 x 4 1 / 2 x4 y la ecuacin de salida: x1 y1 1 0 0 0 x 2 = y 2 0 0 1 0 x3 x4

- Segundo paso:
Debemos disear un sistema de control ptimo, tal que haga mnimo el ndice de comportamiento cuadrtico. J = ( xT Qx + uT Ru )dt
0

Para disear este sistema de control cuadrtico, necesitamos hallar el valor de K, por lo cual usaremos Matlab, para obtener dicho vector. Para usar Matlab, necesitamos las matrices Q y R, que le asignaremos valores adecuados, estos valores son: 2

Ing. Daniel Carbonel

EE616M

Primer Caso Q=I, R=1.


A=[0 1 0 0; 25/2 0 0 0; 0 0 0 1; -5/2 0 0 0]; B=[0; -1/2; 0; 1/2]; Q=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1]; R=1; [K,P,E] = LQR(A,B,Q,R) donde se obtiene:
K = [-65.8202 -19.1914 -1 -3.0272] P= 618.4727 183.6550 19.1914 52.0145 183.6550 54.8753 6.0820 16.4925 19.1914 6.0820 3.0272 4.0820 52.0145 16.4925 4.0820 10.4380

E=

-3.7968 -3.3045 -0.4904 + 0.3975i -0.4904 - 0.3975i

Este vector E son los eigenvalores de (A-BK), donde se ve que realmente el sistema es estable. Analicemos la respuesta temporal, de las variables de estado, para ello consideremos la siguiente condicin inicial x(0)=[0 0 1 0], y usando Matlab. A=[0 1 0 0; 25/2 0 0 0;0 0 0 1; -5/2 0 0 0]; B=[0; -1/2; 0; 1/2]; K =[-65.8202 -19.1914 -1 -3.0272]; t=0:0.01:10; AA=A-B*K; sys=ss(AA,eye(4),eye(4),eye(4)); x=initial(sys,[0 0 1 0],t); x1=[1 0 0 0]*x'; x2=[0 1 0 0]*x'; x3=[0 0 1 0]*x'; x4=[0 0 0 1]*x'; subplot(4,1,1); plot(t,x1); grid; title('Respuesta a condicin inicial') ylabel('x1') subplot(4,1,2);plot(t,x2);grid; ylabel('x2') subplot(4,1,3);plot(t,x3);grid; ylabel('x3') subplot(4,1,4);plot(t,x4);grid; ylabel('x4') xlabel('t segundos')

Ing. Daniel Carbonel

EE616M

Segundo Caso Q11=100, R=1.


A=[0 1 0 0; 25/2 0 0 0;0 0 0 1; -5/2 0 0 0]; B=[0;-1/2;0;1/2]; Q=[100 0 0 0; 0 1 0 0; 0 0 1 0; 0 0 0 1]; R=1; [K,P,E] = LQR(A,B,Q,R) donde obtenemos:
K =[-67.3904 -19.4360 -1 -3.0787] P= 651.2569 188.3784 19.4360 53.5975 E= -3.6189 + 0.6475i -3.6189 - 0.6475i -0.4704 + 0.3856i -0.4704 - 0.3856i 188.3784 56.1362 6.2390 17.2642 19.4360 6.2390 3.0787 4.2390 53.5975 17.2642 4.2390 11.1069

Ing. Daniel Carbonel

EE616M

Este vector E son los eigenvalores de (A-BK), donde se ve que realmente el sistema es estable. Analicemos la respuesta temporal, de las variables de estado, para ello consideremos la siguiente condicin inicial x(0)=[0 0 1 0], y usando Matlab. A=[0 1 0 0; 25/2 0 0 0;0 0 0 1; -5/2 0 0 0]; B=[0;-1/2;0;1/2]; K =[-67.3904 -19.4360 -1 -3.0787]; t=0:0.01:10; AA=A-B*K; sys=ss(AA,eye(4),eye(4),eye(4)); x=initial(sys,[0 0 1 0],t); x1=[1 0 0 0]*x'; x2=[0 1 0 0]*x'; x3=[0 0 1 0]*x'; x4=[0 0 0 1]*x'; subplot(2,2,1);plot(t,x1);grid; title('Respuesta a condicin inicial para Q11=100 y R=1') ylabel('x1') subplot(2,2,2);plot(t,x2);grid; ylabel('x2') subplot(2,2,3);plot(t,x3);grid; ylabel('x3') subplot(2,2,4);plot(t,x4);grid; ylabel('x4') xlabel('t segundos')

Ing. Daniel Carbonel

EE616M

Tercer Caso Q11=100, R=0.01.


A=[0 1 0 0; 25/2 0 0 0; 0 0 0 1; -5/2 0 0 0]; B=[0;-1/2;0;1/2]; Q=[100 0 0 0; 0 1 0 0; 0 0 1 0; 0 0 0 1]; R=0.01; [K,P,E] = LQR(A,B,Q,R)
de donde obtenemos: K =[ -193.4239 -51.4573 -10 -20.9009] P= 52.4299 12.7393 5.1457 8.8708 E= -6.8117 + 3.0614i -6.8117 - 3.0614i -0.8274 + 0.4603i -0.8274 - 0.4603i 12.7393 4.4528 1.8842 3.4237 5.1457 1.8842 2.0901 1.6842 8.8708 3.4237 1.6842 3.0056

Este vector E son los eigenvalores de (A-BK), donde se ve que realmente el sistema es estable. Analicemos la respuesta temporal, de las variables de estado, para ello consideremos la siguiente condicin inicial x(0)=[0,0,1,0], y usando Matlab. A=[0 1 0 0; 25/2 0 0 0; 0 0 0 1; -5/2 0 0 0]; B=[0;-1/2;0;1/2]; K =[ -193.4239 -51.4573 -10 -20.9009]; t=0:0.01:10; AA=A-B*K; sys=ss(AA,eye(4),eye(4),eye(4)); x=initial(sys,[0 0 1 0],t); x1=[1 0 0 0]*x'; x2=[0 1 0 0]*x'; x3=[0 0 1 0]*x'; x4=[0 0 0 1]*x'; subplot(2,2,1);plot(t,x1);grid; title('Respuesta a condicion inicial para Q11=100 y R=0.01') ylabel('x1') subplot(2,2,2);plot(t,x2);grid; ylabel('x2') subplot(2,2,3);plot(t,x3);grid; ylabel('x3') subplot(2,2,4);plot(t,x4);grid; ylabel('x4') xlabel('t segundos')

Ing. Daniel Carbonel

EE616M

Cuarto Caso Q11=100, Q33=100, R=0.01.


A=[0 1 0 0; 25/2 0 0 0; 0 0 0 1; -5/2 0 0 0]; B=[0;-1/2;0;1/2]; Q=[100 0 0 0; 0 1 0 0; 0 0 100 0; 0 0 0 1]; R=0.01; [K,P,E] = LQR(A,B,Q,R) de donde obtenemos:
K =[-421.0160 -128.0798 -100 -89.5562] P= 262.7280 81.5222 128.0798 73.1019 E= -7.1752 + 4.3526i -7.1752 - 4.3526i -2.4557 + 1.0339i -2.4557 - 1.0339i 81.5222 27.0104 41.6016 24.4489 128.0798 41.6016 89.5562 39.6016 73.1019 24.4489 39.6016 22.6577

Ing. Daniel Carbonel

EE616M

Este vector E son los eigenvalores de (A-BK), donde se ve que realmente el sistema es estable. Analicemos la respuesta temporal, de las variables de estado, para ello consideremos la siguiente condicin inicial x(0)=[0 0 1 0], y usando Matlab. A=[0 1 0 0; 25/2 0 0 0; 0 0 0 1; -5/2 0 0 0]; B=[0;-1/2;0;1/2]; K=[-421.0160 -128.0798 -100 -89.5562]; t=0:0.01:10; AA=A-B*K; sys=ss(AA,eye(4),eye(4),eye(4)); x=initial(sys,[0 0 1 0],t); x1=[1 0 0 0]*x'; x2=[0 1 0 0]*x'; x3=[0 0 1 0]*x'; x4=[0 0 0 1]*x'; subplot(2,2,1);plot(t,x1);grid; title('Respuesta a condicion inicial para Q11=100, Q33=100 y R=0.01') ylabel('x1') subplot(2,2,2);plot(t,x2);grid; ylabel('x2') subplot(2,2,3);plot(t,x3);grid; ylabel('x3') subplot(2,2,4);plot(t,x4);grid; ylabel('x4') xlabel('t segundos')

Ing. Daniel Carbonel

EE616M

OBSERVACIONES: 1. Se puede ver en el caso 2 (Q11=100, R=1), que el tiempo de subida y el tiempo de establecimiento son largos, y que al poner Q11 un valor grande como lo es 100, no hay mucha diferencia con el primer caso, debido a que solo se puso un valor alto en Q11 con respecto a Q22, Q33, Q44, pero no se le puso un valor considerablemente alto con respecto a R. Dando un valor alto a Q11, se est indicando que la variable de estado x1 (el valor angular) es la ms importante para el sistema. En el tercer caso (Q11=100, R=0.01), s se puso un valor alto con respecto a R, pero solo se le puso ese valor alto a la variable x1, sin tener la misma consideracin con la otra variable de estado x3 (posicin del carro) respecto de la matriz de ponderacin Q (Q33), que representa a la segunda variable de salida y2.

2.

3. En este tercer caso tambin se puede notar que tanto el tempo de establecimiento, como el de subida se han reducido considerablemente con respecto a los casos 1 y 2. Pero un inconveniente es el hecho que el sobrepico se haya incrementado en factores de 5 a 10 veces. 4. En el cuarto caso (Q11=100, Q33=100, R=0.01), ocurre que los tiempos de establecimiento y de subida, tienen valores muy pequeos debido al alto valor que tienen Q11 y Q33, con respecto a las otros elementos de la matriz de ponderacin Q. Entre el tercer y el cuarto caso, se puede ver un crecimiento brusco de los sobrepicos, en un factor aproximado de 10 veces con respecto al tercer caso, por ejemplo la variable x1 llega a tomar un valor tan alto como 0.3 rad. (que es aproximadamente 170) y si aumentase mas ese valor de x1 con un mayor sobrepico, se estara perdiendo esa linealidad asumida al principio que hizo que sen()= (con respecto al modelo del pndulo), por lo que el modelo perdera validez.

5.

Ing. Daniel Carbonel

EE616M

CONCLUSIONES: 1. Para obtener una respuesta ms rpida de las variables x1 y x3, entonces Q11 y Q33 deben ser lo suficientemente grandes comparados con Q22 y Q44 y R. Es decir, la ponderacin debe poner en evidencia la importancia de una u otra variable de estados, respecto de otras. No solo basta con aumentar Q11 (como se ve en los casos 1, 2 y 3) se tiene que hacer que Q11 y Q33 sean ms grandes con respecto a las otras componentes de la matriz Q, estas componentes reflejan la importancia que representan a las variables de estado x1 y x3, quienes a su vez son tambin las salidas del sistema Para elegir los valor adecuados de Q y R, se deben tener en cuenta las observaciones anteriores, ya que si queremos tener una respuesta rpida del sistema, evidentemente estaremos haciendo crecer el sobrepico y ste aumento del sobrepico tiene que ser un valor tolerable por el sistema, ello para el correcto funcionamiento del mismo. Notar tambin que todas las elecciones anteriores son ptimas, que minimizan J, pero la eleccin correcta de las matrices de ponderacin, depende de las caractersticas temporales que deseamos del sistema (tiempo de establecimiento y del sobrepico mximo). Evidentemente, el decir deseamos es decir lo que nuestro sistema es capaz de responder para un buen funcionamiento. Finalmente, podra concluirse que un valor adecuado de la matrices de ponderacin Q y R, tal vez serian Q11= Q33=50 y R = 0.01.

2.

3.

4.

5.

EL PROFESOR

10