Академический Документы
Профессиональный Документы
Культура Документы
En el diseo de estos sistemas de control interesa la eleccin de un vector de control U tal que el
mismo minimice un funcional costo dado por:
}
+ =
0
). . '. . '. ( dt U R U X Q X J
Donde Q y R son matrices cuadradas, simtricas, definidas positivas de orden nxn y mxm
respectivamente. Puede demostrarse que para una funcin J, la ley de control buscada est dada por
la realimentacin de estados siguiente:
X K U . =
Donde K se calcula a travs de
P B R K '. .
1
=
y P es una matriz simtrica, definida positiva, que satisface la ecuacin algebraica de Riccati:
0 '. . . . . '.
1
= + +
Q P B R B P A P P A
Aplicando esta ley de control al sistema original se obtiene la ecuacin diferencial que describe la
dinmica a lazo cerrado
X K B A X K B X A U B X A X ). . ( ) . .( . . . = + = + =
Introduccin al Control ptimo 2014
Dr. Ing. Elmer Crdova Zapata Control Optimo en Sistemas Continuos Pg. 3 de 10
1.2 Filtro de Kalmann - Bucy
Sea el siguiente sistema continuo, donde W y V son seales de ruido que afectan al vector de estados y
a la salida respectivamente
1
1
] [ .
] [ . .
px
nx
V V X C Y
W W U B X A X
+ =
+ + =
El mismo puede verse representado en el siguiente diagrama
Utilizando el principio de dualidad y la teora de control ptimo podemos disear un observador,
denominado Filtro de Kalmann-Bucy, que minimiza el efecto del ruido en las variables de estado
estimadas.
El sistema dual del anterior es:
S C Z A Z . . ' + ' =
y el funcional costo a minimizar es:
}
+ =
0
). . '. . '. ( dt S R S Z Q Z J
r r
donde Qr y Rr son matrices simtricas definidas positivas que sirven de pesos para el ruido en los
estados (W) y en la salida (V) respectivamente. Puede demostrarse que dichas matrices Qr y Rr
corresponden a las matrices de covarianza de las seales de ruido W y V.
La realimentacin obtenida a travs de Ricatti para este sistema dual es:
Z K S .
0
=
Las matrices G y F del observador completo a construir son entonces
C G A F K G .
0
=
'
=
W V
Y
B
A
C
U X
X
=
(
(
=
(
(
=
(
(
=
50
0
0
50
2 25
25 65
Bt Bu A
Se aplica sobre el sistema la estrategia de control desarrollada para mantener constante la velocidad
del motor. A continuacin se muestra el diagrama de bloques correspondiente a dicha estrategia de
control:
Podemos realizar el clculo de la constante ki y de la matriz K , se debe ampliar el sistema incluyendo la
variable Z en el vector de estados. Las ecuaciones de estado para el sistema del motor ampliado son las
siguientes (no se tiene en cuenta la perturbacin de torque):
e u
Z
I
Z
I
.
1
0
0
.
0
0
50
.
0 1 0
0 2 25
0 25 65
(
(
(
(
+
(
(
(
(
+
(
(
(
(
(
(
(
(
=
(
(
(
(
e e
y la ley de control aplicada es
K
ki
1/s
Z
1/s
X
Sum3
Sum2
Sum1
Step W
Step T
K
K
K
Cw
K
Bu
K
Bt
K
A
Introduccin al Control ptimo 2014
Dr. Ing. Elmer Crdova Zapata Control Optimo en Sistemas Continuos Pg. 6 de 10
| | | |
| | 2 1
. 2 1 . . .
k k K
Z
I
ki k k
Z
X
ki K Z ki X K u
=
(
(
(
(
=
(
(
= + =
donde
e
En Matlab se calcularon K y ki fijando los polos del sistema a lazo cerrado utilizando la frmula de
Ackermann, en este TP se calcularn dichas matrices para optimizar un determinado funcional
utilizando la ecuacin de Ricatti.
usando comandos MATLAB podemos crear las matrices del sistema a lazo cerrado y calcula cuatro
realimentaciones de estado para cuatro funcionales J diferentes en base a los siguientes valores de Q
y R:
a) 1 ,
1 0 0
0 1 0
0 0 100
=
(
(
(
(
= R Q
b) 1 ,
1 0 0
0 100 0
0 0 1
=
(
(
(
(
= R Q
c) 1 ,
100 0 0
0 1 0
0 0 1
=
(
(
(
(
= R Q
d) 100 ,
1 0 0
0 1 0
0 0 1
=
(
(
(
(
= R Q
3.2 Observador ptimo
El objeto del filtro de Kalmann es el de reconstruir el vector de estados del sistema cuando el mismo se
ve afectado por seales ruidosas. Para observar el funcionamiento de este tipo especial de observador
se utilizar el sistema del motor de CC pero con el agregado de ruido en las variables de estado y en la
salida.
Al pie de esta pgina se muestra el diagrama de bloques correspondiente al motor de CC, con una
realimentacin de estados implementada a travs de un observador y con seales de ruido sumadas
en las variables de estado y la salida.
Introduccin al Control ptimo 2014
Dr. Ing. Elmer Crdova Zapata Control Optimo en Sistemas Continuos Pg. 7 de 10
4. Apndice
Archivo 1
% Construccin de las matrices del motor
a=[ -65 -25 ; 25 -2 ];
bu=[ 50 ; 0 ];
cw=[ 0 1 ];
% Construccin de matrices del sistema
aamp=[a zeros(2,1) ; -cw 0 ];
buamp=[ bu ; 0 ];
be=[0 ; 0 ; 1];
% Construccin de matrices de los funcionales
q1=[100 0 0 ; 0 1 0 ; 0 0 1 ];
q2=[1 0 0 ; 0 100 0 ; 0 0 1 ];
q3=[1 0 0 ; 0 1 0 ; 0 0 100 ];
q4=[1 0 0 ; 0 1 0 ; 0 0 1 ];
r1=1;
r4=100;
% Clculo de las matrices de realimentacin
ruido_y ruido_w
ruido_I
1/s
Z
1/s
Xo
1/s
X
Sum6
Sum5
Sum4
Sum3
Sum2
Step W
Step T
Mux
Mux
K
Ki
K
K
K
G
K
F
K
Cw
K
Bu-o
K
Bu
K
Bt
K
A
Introduccin al Control ptimo 2014
Dr. Ing. Elmer Crdova Zapata Control Optimo en Sistemas Continuos Pg. 8 de 10
KI1=lqr(aamp,buamp,q1,r1);
KI2=lqr(aamp,buamp,q2,r1);
KI3=lqr(aamp,buamp,q3,r1);
KI4=lqr(aamp,buamp,q4,r4);
% Construccin de los sistemas a lazo cerrado
sisLC1=ss(aamp-buamp*KI1,be,[0 1 0],0);
sisLC2=ss(aamp-buamp*KI2,be,[0 1 0],0);
sisLC3=ss(aamp-buamp*KI3,be,[0 1 0],0);
sisLC4=ss(aamp-buamp*KI4,be,[0 1 0],0);
% Construccin de la matriz de entradas y el vector tiempo
Ref=zeros(1001,1);
t=0:0.0005:0.5;
% Construccin de la condicin inicial
Xamp0=[0;100;0];
% Simulaciones
disp('Ejecutando simulaciones ...')
[w1,tx,X1]=lsim(sisLC1,Ref,t,Xamp0);
[w2,tx,X2]=lsim(sisLC2,Ref,t,Xamp0);
[w3,tx,X3]=lsim(sisLC3,Ref,t,Xamp0);
[w4,tx,X4]=lsim(sisLC4,Ref,t,Xamp0);
% Clculo de U
U1=-X1*KI1';
U2=-X2*KI2';
U3=-X3*KI3';
U4=-X4*KI4';
% Grficas de I
Fig1=figure;
set(Fig1,'Name','Motor CC con realimentacin de estados ptima')
subplot(2,2,1);plot(t,X1(:,1),'-r',t,X2(:,1),'-g',t,X3(:,1),'-b',t,X4(:,1),'-k')
axis([0 0.45 -100 10])
legend('Q1','Q2','Q3','Q4',4)
title('Corriente del motor')
% Grficas de w
subplot(2,2,2);plot(t,X1(:,2),'-r',t,X2(:,2),'-g',t,X3(:,2),'-b',t,X4(:,2),'-k')
axis([0 0.45 -20 100])
legend('Q1','Q2','Q3','Q4',1)
title('Velocidad del motor')
% Grficas de Z
subplot(2,2,3);plot(t,X1(:,3),'-r',t,X2(:,3),'-g',t,X3(:,3),'-b',t,X4(:,3),'-k')
axis([0 0.45 -20 0])
legend('Q1','Q2','Q3','Q4',4)
xlabel('Tiempo')
title('Variable Z - Integrador')
% Grficas de U
subplot(2,2,4);plot(t,U1,'-r',t,U2,'-g',t,U3,'-b',t,U4,'-k')
axis([0 0.45 -150 70])
legend('Q1','Q2','Q3','Q4',4)
xlabel('Tiempo')
title('Tensin de armadura')
Introduccin al Control ptimo 2014
Dr. Ing. Elmer Crdova Zapata Control Optimo en Sistemas Continuos Pg. 9 de 10
0 0.1 0.2 0.3 0.4
-100
-50
0
Corriente del motor
Q1
Q2
Q3
Q4
0 0.1 0.2 0.3 0.4
0
50
100
Velocidad del motor
Q1
Q2
Q3
Q4
0 0.1 0.2 0.3 0.4
-20
-15
-10
-5
0
Tiempo
Variable Z - Integrador
Q1
Q2
Q3
Q4
0 0.1 0.2 0.3 0.4
-150
-100
-50
0
50
Tiempo
Tensin de armadura
Q1
Q2
Q3
Q4
Archivo 2
El presente archivo contiene un script con comandos MATLAB que crea las matrices del sistema a
lazo cerrado y calcula dos observadores uno clsico y un filtro de Kalmann. Luego simula el sistema
a lazo cerrado utilizando ambos observadores.
% Control ptimo en sistema continuos
% Filtro de Kalmann
% Construccin de las matrices del motor
a=[ -65 -25 ; 25 -2 ];
bu=[ 50 ; 0 ];
cw=[ 0 1 ];
% Construccin de matrices del sistema ampliado
% y clculo de realimentacin
aamp=[ a zeros(2,1) ; -cw 0 ];
bamp=[ bu ; 0 ];
Ki=acker(aamp,bamp,[-150 -150 -150]);
K=Ki(1,1:2);
ki=-Ki(1,3);
% Clculo del observador completo tradicional
Introduccin al Control ptimo 2014
Dr. Ing. Elmer Crdova Zapata Control Optimo en Sistemas Continuos Pg. 10 de 10
autoOBS=[ -500 -500 ];
aux=acker(a',cw',autoOBS);
g1=aux';
f1=a-g1*cw;
% Construccin de las seales de ruido
Ww=100*rand(1501,1)-50*ones(1501,1);
Wi=25*rand(1501,1)-12.5*ones(1501,1);
W=[Ww Wi];
V=20*rand(1501,1)-10*ones(1501,1);
% Clculo del observador ptimo - Filtro de Kalmann
Qr=cov(W);
Rr=cov(V);
aux=lqr(a',cw',Qr,Rr);
g2=aux';
f2=a-g2*cw;
% Construccin de matrices para simulacin
A1=[a bu*ki -bu*K ; -cw 0 0 0 ; g1*cw bu*ki f1-bu*K ];
B1=[1 0 0 0 ; 0 1 0 0 ; 0 0 1 -1 ; zeros(2,3) g1 ];
C1=[cw 0 0 0 ];
D1=[0 0 0 1 ];
A2=[a bu*ki -bu*K ; -cw 0 0 0 ; g2*cw bu*ki f2-bu*K ];
B2=[1 0 0 0 ; 0 1 0 0 ; 0 0 1 -1 ; zeros(2,3) g2 ];
C2=[cw 0 0 0 ];
D2=[0 0 0 1 ];
% Construccin de los sistemas a lazo cerrado
sisLC1=ss(A1,B1,C1,D1);
sisLC2=ss(A2,B2,C2,D2);
% Construccin de la matriz de entradas y el vector tiempo
Ref=50*ones(1501,1);
t=0:0.0002:0.3;
U=[ W Ref V ];
% Simulaciones
disp('Ejecutando simulaciones ...')
[y1,tx,X1]=lsim(sisLC1,U,t);
[y2,tx,X2]=lsim(sisLC2,U,t);
% Grficas de w con observador general
Fig2=figure;
set(Fig2,'Name','Motor CC con filtro de Kalmann')
subplot(1,2,1);plot(t,X1(:,2),'-r',t,X1(:,5),'-k')
axis([0 0.3 0 60])
legend('w real','w estim',0)
xlabel('Tiempo')
ylabel('Velocidad')
title('Aplicacin de un observador general')
% Grficas de w con filtro de Kalmann
subplot(1,2,2);plot(t,X2(:,2),'-r',t,X2(:,5),'-k')
axis([0 0.3 0 60])
legend('w real','w estim',0)
xlabel('Tiempo')
ylabel('Velocidad')
title('Aplicacin de un filtro de Kalmann')
Introduccin al Control ptimo 2014
Dr. Ing. Elmer Crdova Zapata Control Optimo en Sistemas Continuos Pg. 11 de 10
0 0.1 0.2 0.3
0
10
20
30
40
50
60
Tiempo
V
e
l
o
c
i
d
a
d
Aplicacin de un observador general
w real
w estim
0 0.1 0.2 0.3
0
10
20
30
40
50
60
Tiempo
V
e
l
o
c
i
d
a
d
Aplicacin de un filtro de Kalmann
w real
w estim