Documente Academic
Documente Profesional
Documente Cultură
k =0
{x T Qx k + u T Ru k + T +1[Ax k + Bu k x k +1 ] + [Ax k + Bu k x k +1 ] k k k
+ x T Sx N N
k +1
(10-1)
donde los ML se escriben as para mantener la dimensin escalar del argumento de J. Minimizar (10-1) es equivalente que minimizar (7-2) sujeto a (7-1). Para minimizar Ja(x,u), se busca diferenciar a Ja(x,u) respecto de cada componente dadas como x, u y e igualar a 0 las expresiones. Suele ser conveniente trabajar con los conjugados de cada componente, pero aqu se trabajar con las componentes originales ya que slo se har tratamiento simblico. Por lo tanto, se pretende hallar las siguientes igualdades
J a (x , u ) J (x , u ) J (x , u ) J (x , u ) = 0, a = 0, a = 0, a = 0, x k x N u k k
(10-2)
con k de 1 a N para xk y k, y de 1 a N-1 para u. Para facilitar el procedimiento, se explicitar al funcional de costo Ja(x,u) de la Ec. (10-1)
J a (x , u ) =
N -1
k =0
(10-3)
J. A. Pucheta (www.labimac.blogspot.com)
51
Ahora, se visualiza claramente dnde estn las funciones de las variables correspondientes para ejecutar el procedimiento de (10-3). Considerar las igualdades de derivacin matricial
xT X y xT X y xT X x = Xy ; = X T x ; = 2X x , x y x
donde la tercera propiedad slo es vlida si X es simtrica. expresadas en la Ec. (5-20). Se obtiene,
J a (x, u ) = 2Qx k + A T k +1 + A T k +1 k k = 2 Qx k + A T k k x k
}
(10-4)
de donde se deduce
J a (x , u ) = 0 Qx k + A T k +1 k = 0, k = 1,2,...., N - 1. x k J a (x , u ) = 2Sx N N N = 2{Sx N N } x N
de donde se obtiene
J a (x , u ) = 0 Sx N N = 0. x N
(10-5)
por lo tanto
J a (x , u ) = 0 Ru k + BT k +1 = 0, k = 1,2,...., N - 1. u k
(10-6)
J a (x , u ) = Ax k + Bu k 1 x k + Ax k + Bu k 1 x k = 2{Ax k + Bu k 1 x k } k
por ltimo
J a (x , u ) = 0 Ax k 1 + Bu k 1 x k = 0, k = 1,2,..., N. k
(10-7)
Ntese que la Ec. (10-7) es la ecuacin de estados del sistema (7-1). Para verificar que el extremo encontrado sea un mnimo, puede hacerse la derivada segunda de (10-3) respecto a sus variables y se ver que es positiva en los casos de xk, xN, y uk, pero en k el mtodo no decide. Para hallar la expresin del controlador, hay que operar entre las ecuaciones (10-4), (10-5), (10-6) y (10-7) para independizarse de . Entonces, despejando de (10-4),
k = Qx k + A T k +1 , k = 1,2,...., N - 1.
(10-8) (10-9)
52
(10-10)
Sustituyendo la expresin de uk de (10-10) en la ecuacin de estado del sistema (7-1), se tiene para A y B invariantes
x k +1 = Ax k BR 1BT k +1 , x (0 ) = x 0 .
(10-11)
Para resolver el problema de optimizacin, deben resolverse simultneamente las expresiones de la Ec. (10-8) y la Ec. (10-11). Las condiciones de borde sern N y x(0). De la Ec. (10-9), se define
k = Pk x k , k = 0,1,...N - 1
(10-12)
donde la matriz Pk es simtrica y real, y PN=S. Sustituyendo (10-12) en las expresiones (10-8) y (10-11), se tiene
Pk x k = Qx k + A T Pk +1x k +1 , k = 1,2,...., N - 1.
(10-13)
x k +1 = Ax k BR 1B T Pk +1x k +1 , x (0 ) = x 0 .
(10-14)
Las expresiones (10-13) y (10-14) se denominan transformaciones de Riccati, por no contener a . De la Ec. (10-14) se tiene que
(I + BR
B T Pk +1 x k +1 = Ax k , x (0 ) = x 0 .
(10-15)
Se demuestra que el parntesis tiene inversa si P es al menos semidefinida positiva. Por lo tanto
x k +1 = I + BR 1 B T Pk +1
Ax k , x (0 ) = x 0 .
(10-16)
A x k , k = 1,2,...., N - 1.
(10-17)
A x k , k = 1,2,...., N - 1.
(10-18)
A,
k = 1,2,...., N - 1.
(10-19)
que es la Ecuacin de Riccati. Sabiendo que PN=S, se resuelve PN-1 y as sucesivamente hasta P0. Despejando k+1 de a Ec. (10-8) se tiene que
k +1 = A T
J. A. Pucheta (www.labimac.blogspot.com)
( )
( k Qx k ),
k = 1,2,...., N - 1.
53
(10-20)
( )
( k Qx k ),
k = 1,2,...., N - 1.
(10-21)
( )
(Pk Q )x k
= K k x k , k = 1,2,...., N - 1.
(10-22)
( )
(Pk Q )
k = 1,2,...., N - 1.
(10-23)
Evaluando el funcional de costo de la Ec. (7-2) con la uk de la (10-22) se encontrar el Jmin. Para simplificar el procedimiento, multiplicando ambos miembros de (10-13) por xkT, se tiene
x T Pk x k = x T Qx k + x T A T Pk +1x k +1 , k = 1,2,...., N - 1. k k k
(10-24)
(10-25)
y despejando el trmino en
xkTQxk
se tiene
x T Qx k = x T Pk x k x T+1 I + BR 1B T Pk +1 Pk +1 x k +1 , k = 1,2,...., N - 1. k k k
(10-26)
En la Ec. (10-10) se reemplaza k+1 partiendo de la Ec. (10-12) que est valuada en k,
u k = R 1B T Pk +1 x k +1 , k = 1,2,...., N - 1.
(10-27)
As,
ukTRuk
resulta
u T Ru k = R 1B T Pk +1 x k +1 R R 1B T Pk +1 x k +1 , k = 1,2,...., N - 1. k
) (
T
(10-28)
Sumando las expresiones de la Ec. (10-26) con la Ec. (10-28) se tiene que
x T Qx k + u T Ru k = x T Pk x k x T+1 I + BR 1B T Pk +1 Pk +1 x k +1 + k k k k
1
(R
B T Pk +1 x k +1 R R 1B T Pk +1 x k +1 ,
) (
T
(10-29)
k = 1,2,...., N - 1.
y operando se llega a
x T Qx k + u T Ru k = x T Pk x k x T+1Pk +1 x k +1 , k k k k k = 1,2,...., N - 1.
(10-30)
[(
) (
(10-32)
10.2. Ejemplo de aplicacin En el Ejemplo de aplicacin visto, se pretende implementar un control con 5 y 10 etapas con el tiempo de muestreo de 0,01 seg. En el programa para de la Tabla 10-1 est codificado el algoritmo modelo que puede usarse como referencia. Ntese que el nmero de etapas puede reducirse, y el ngulo inicial puede ser mayor que 0,8 radianes, con el consiguiente aumento de la magnitud de la accin de control.
clc;clear all; m=.1;Fricc=0.1; long=0.6;g=9.8;M=.5; TamanioFuente=12; %Condiciones iniciales alfa(1)=.1; color='pr';colorc='.-r'; alfa(1)=.5; color='pg';colorc='.-g'; alfa(1)=.8; color='pb';colorc='.-b'; %Versin linealizada en el equilibrio inestable. Sontag Pp 104. % estado=[p(i); p_p(i); alfa(i); omega(i)] Mat_Ac=[0 1 0 0;0 -Fricc/M -m*g/M 0; 0 0 0 1; 0 Fricc/(long*m) g*(m+M)/(long*M) 0]; Mat_Bc=[0; 1/M; 0; -1/(long*M)]; I=eye(4); kmax=1000;%Etapas de evolucin T=5; sys_c=ss(Mat_Ac,Mat_Bc,[0 0 1 0],[0]);Ts=T/kmax; sys_d=c2d(sys_c,Ts,'zoh'); Mat_A=sys_d.a; Mat_B=sys_d.b; Mat_M=[Mat_B Mat_A*Mat_B Mat_A^2*Mat_B Mat_A^3*Mat_B ];%Matriz Controlabilidad rango=rank(Mat_M); t=0; x0=[0;0;alfa(1);0];x=x0; p(1)=x(1); p_p(1)=x(2); alfa(1)=x(3); omega(1)=x(4); Q=1e0*eye(4);R=1e-3; K=zeros(kmax,4);S=diag([1e1 1e1 1e6 1e2]); P=S; %condicin inicial de P for hi=kmax-1:-1:1 P= Q + Mat_A'*P*inv(eye(4)+Mat_B*inv(R)*Mat_B'*P)*Mat_A; K(hi,:)=inv(R)*Mat_B'*inv(Mat_A')*(P-Q); end Jmin=x0'*P*x0;J=0; for ki=1:kmax-1 t=[t ki]; u(ki)=-K(ki,:)*x; J=[J J(ki)+x'*Q*x+u(ki)'*R*u(ki)]; x=Mat_A*x+Mat_B*u(ki); p(ki+1)=x(1); p_p(ki+1)=x(2); alfa(ki+1)=x(3); omega(ki+1)=x(4); end J(kmax)=J(kmax)+x'*S*x; u(kmax)=-K(kmax,:)*x;td=t*Ts; h=Ts/20; figure(1);hold on; subplot(3,2,1);plot(t*Ts,alfa,color);grid on;title('ngulo','FontSize',TamanioFuente);hold on; subplot(3,2,2);plot(t*Ts,omega,color);grid on; title('Velocidad ngulo','FontSize',TamanioFuente);hold on; subplot(3,2,3); plot(t*Ts,p,color);grid on;title('Posicin carro','FontSize',TamanioFuente);hold on;
J. A. Pucheta (www.labimac.blogspot.com)
55
Control ptimo y procesos estocsticos subplot(3,2,4);plot(t*Ts,p_p,color);grid on;title('Velocidad carro','FontSize',TamanioFuente);hold on; subplot(3,1,3);plot(t*Ts,u,color);grid on;title('Accin de control','FontSize',TamanioFuente);xlabel('Tiempo en Seg.','FontSize',TamanioFuente);hold on; figure(2);hold on; subplot(2,2,1);plot(alfa,omega,color);grid on;xlabel('ngulo','FontSize',TamanioFuente);ylabel('Velocidad angular','FontSize',TamanioFuente);hold on;title('Plano de fase','FontSize',TamanioFuente); subplot(2,2,2);plot(p,p_p,color);grid on;xlabel('Posicin carro','FontSize',TamanioFuente);ylabel('Velocidad carro','FontSize',TamanioFuente);hold on;title('Plano de fase','FontSize',TamanioFuente); subplot(2,2,3);semilogy(t,J,color);title('Modelo lineal','FontSize',TamanioFuente);xlabel('Tiempo en Seg.','FontSize',TamanioFuente);ylabel('Acumulacin de costo','FontSize',TamanioFuente);hold on; semilogy(t,Jmin*ones(size(J)),color); %Verificacin de la solucin con el modelo no lineal en tiempo continuo. x=[0;0;alfa(1);0]; x=x0; p=x(1); p_p=x(2); alfa=x(3); omega=x(4); tita_pp(1)=0; u=[];i=1;Jn=0; for ki=1:kmax u1(ki)=-K(ki,:)*x; for kii=1:20 u(i)=u1(ki); p_pp=(1/(M+m))*(u(i)-m*long*tita_pp*cos(alfa(i))+m*long*omega(i)^2*sin(alfa(i))Fricc*p_p(i)); tita_pp=(1/long)*(g*sin(alfa(i))-p_pp*cos(alfa(i))); p_p(i+1)=p_p(i)+h*p_pp; p(i+1)=p(i)+h*p_p(i); omega(i+1)=omega(i)+h*tita_pp; alfa(i+1)=alfa(i)+h*omega(i); x=[p(i); p_p(i); alfa(i); omega(i)]; i=i+1; end Jn=[Jn Jn(ki)+(x'*Q*x+u(ki)'*R*u(ki))]; end Jn(ki+1)= Jn(ki)+x'*S*x; u(i)=-K(ki,:)*x;t=0:h:T; colorc='.k'; figure(1);hold on; subplot(3,2,1);plot(t,alfa,colorc);grid on;title('ngulo','FontSize',TamanioFuente);hold on; subplot(3,2,2);plot(t,omega,colorc);grid on; title('Velocidad ngulo','FontSize',TamanioFuente);hold on; subplot(3,2,3); plot(t,p,colorc);grid on;title('Posicin carro','FontSize',TamanioFuente);hold on; subplot(3,2,4);plot(t,p_p,colorc);grid on;title('Velocidad carro','FontSize',TamanioFuente);hold on; subplot(3,1,3);plot(t,u,colorc);grid on;title('Accin de control','FontSize',TamanioFuente);xlabel('Tiempo en Seg.','FontSize',TamanioFuente);hold on; figure(2);hold on; subplot(2,2,1);plot(alfa,omega,colorc);grid on;xlabel('ngulo','FontSize',TamanioFuente);ylabel('Velocidad angular','FontSize',TamanioFuente);hold on; subplot(2,2,2);plot(p,p_p,colorc);grid on;xlabel('Posicin carro','FontSize',TamanioFuente);ylabel('Velocidad carro','FontSize',TamanioFuente);hold on; subplot(2,2,4);semilogy([td T],Jn,colorc); title('Modelo no lineal','FontSize',TamanioFuente);xlabel('Tiempo en Seg.','FontSize',TamanioFuente);ylabel('Acumulacin de costo','FontSize',TamanioFuente);hold on;
Tabla 10-1. Cdigo de programa para el algoritmo del controlador ptimo en estado transitorio.
J. A. Pucheta (www.labimac.blogspot.com)
56
ngulo
1 0.5 0 -0.5 -1 0 1 2 3 4 5 -5 -10 5 0
Velocidad ngulo
Posicin carro
2 1.5 1 0.5 0 0 1 2 3 4 5 0 -5 10 5
Velocidad carro
Accin de control
200 100 0 -100
0.5
1.5
2.5
3.5
4.5
Tiempo en Seg.
Plano de fase
Velocidad angular
Velocidad carro
6 4 2 0 -2 0 0.5 1 1.5 2
ngulo
10
4
Posicin carro
10
4
Modelo no lineal
Acumulacin de costo
10
10
10
10
10
-2
200
400
600
800
1000
10
-2
Tiempo en Seg.
Tiempo en Seg.
Fig. 3. Plano de fase del pndulo invertido y evolucin de la acumulacin de costo para el modelo lineal y el no lineal usando el controlador ptimo en estado transitorio.
J. A. Pucheta (www.labimac.blogspot.com)
57