Laboratorio 7 MT227 2011 1
Laboratorio 7 MT227 2011 1
Laboratorio 7 MT227 2011 1
(a)
El mismo puede verse representado en el diagrama siguiente
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 de (a) es:
S C Z A Z
T T
. . +
(b)
y el funcional costo a minimizar es:
,
`
.
|
]
]
]
T
o
t
o
t
T
dt S R S Z Q Z E
T
J
0
). (
1
lim
Donde Q
o
y R
o
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 Q
0
y R
0
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 L y F del observador completo a construir son entonces
C L A F K L .
0
Profesora del Curso MT227 R.M.G
1
UNIVERSIDAD NACIONAL DE INGENIERIA CONTROL MODERNO Y OPTIMO
FACULTAD DE INGENIERIA MECANICA P.A.2011_1
DAIA
CALCULO DEL CONTROL PTIMO
Para la resolucin de la ecuacin de Ricatti, MATLAB posee una funcin que calcula la
matriz P (solucin de la ecuacin), la matriz K (matriz de realimentacin) y la ubicacin
de los autovalores del sistema a lazo cerrado L resultantes de la realimentacin a travs
de la matriz K. Dicha funcin se denomina lqr, a continuacin se muestra la informacin
de la misma brindada por MATLAB en su help:
LQR Linear quadratic regulator design for continuous systems.
[K,S,E] = LQR(A,B,Q,R) calculates the optimal feedback gain
matrix K such that the feedback law u = -Kx minimizes the cost
function:
J = Integral {x'Qx + u'Ru} dt
subject to the constraint equation:
.
x = Ax + Bu
Also returned is S, the steady-state solution to the associated
algebraic Riccati equation and the closed loop eigenvalues E:
-1
0 = SA + A'S - SBR B'S + Q E = EIG(A-B*K)
.....
Para el clculo de matrices de realimentacin de estados la sintaxis a utilizar es la
siguiente:
[K,P,E]=lqr(A,B,Q,R)
y para el clculo de la matriz L del filtro de Kalman:
[Ko,Po,Eo]=lqr(A,C,Q
0
,R
0
)
L = Ko
donde Q
0
y R
0
deben calcularse como las matrices de covarianza de las seales de ruido
W y V, para ello se utiliza la funcin cov de MATLAB. La misma se describe a
continuacin:
Profesora del Curso MT227 R.M.G
COV Covariance matrix.
COV(X), if X is a vector, returns the variance. For
matrices,
where each row is an observation, and each column a
variable,
COV(X) is the covariance matrix......
2
UNIVERSIDAD NACIONAL DE INGENIERIA CONTROL MODERNO Y OPTIMO
FACULTAD DE INGENIERIA MECANICA P.A.2011_1
DAIA
Filtro de Kalman - Matlab
El estimador de estados de Kalman o conocido como filtro de Kalman se estima usando las
siguientes ecuaciones:
Modelo de la Planta:
Salida:
(2)
Con w y v modelados con ruido blanco.
Modelo del Estimador o Filtro:
Con entrada u (control) e
y
(medida con ruido). La covarianza del ruido
0 0
] [ , ] [ R vv E Q ww E
T T
si w
1xp
y v
1xp
.
determinar la ganancia de Kalman L atravez de la ecuacin de Riccati.
El filtro de Kalman es un estimador pitmo que tiene que ver con el ruido blanco
Gaussiano. Especificamente, este minimiza la covarianza asinttica del error de estimacin
(x - x
).
Use la funcin del Matlab kalman para disear el filtro de Kalman.
Profesora del Curso MT227 R.M.G
(1)
= 0
3
UNIVERSIDAD NACIONAL DE INGENIERIA CONTROL MODERNO Y OPTIMO
FACULTAD DE INGENIERIA MECANICA P.A.2011_1
DAIA
[kest,L,P] = kalman(sys_kf,Qn,Rn,Nn);
Retorna el modelo de espacio estado (kest) del estimador de Kalman dando el modelo
(sys_kf) y los datos de la covarianza del ruido, Qn, Rn, y Nn. El modelo de la planta estn
dados por las ecuaciones (1) y (2) donde w y v son modelados con ruido blanco. L es la
ganancia de Kalman y P la matriz de Covarianza. Si N
n
es 0, Ud. puede omitirla.
% Ejemplo del Filtro de Kalman
1000 10
1000
) (
2
+ +
s s
s G (Planta Nominal)
sys=ss(tf(1000,[1 10 1000]));
s1=ss(sys.a,[sys.b sys.b],sys.c,sys.d);
s1.inputname={'u' 'w'};
s1.outputname={'y'};
Du Cx y +
% La perturbacin y el ruido se modelan con seales
% Gaussianas de media cero y covarianza conocida
Qn=0.1;Rn=0.2;
%filtro de Kalman
[kest,L,P]=kalman(s1,Qn,Rn);
% sistema alterado por el ruido
alterado=ss(sys.a,[sys.b sys.b 0*sys.b],... v Gw Bu Ax x 0 + + +
. . . ,
t u
B u B X A X
I
X + +
]
]
]
]
]
]
]
]
]
]
]
]
50
0
0
50
2 25
25 65
t u
B B A
Se aplica sobre el sistema la estrategia de control desarrollada en el TP4 para mantener
constante la velocidad del motor. A continuacin se muestra el DB correspondiente a
dicha estrategia de control:
De acuerdo a lo desarrollado en el TP4, para 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
]
]
]
]
]
]
+
]
]
]
]
]
]
+
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
+
donde
]
]
]
]
]
]
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
Realizar
las siguientes tareas:
Ejecutar el archivo TP5ric.m , interpretar los resultados obtenidos, y extraer
conclusiones.
[ --- Insertar aqu las grficas y las conclusiones pedidas --- ]
Profesora del Curso MT227 R.M.G
8
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
UNIVERSIDAD NACIONAL DE INGENIERIA CONTROL MODERNO Y OPTIMO
FACULTAD DE INGENIERIA MECANICA P.A.2011_1
DAIA
Diseo del Observador
El objeto del filtro de Kalman 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 DB 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.
El archivo TP5kal.m 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.
Realizar las siguientes tareas:
1. Abrir el archivo TP5kal.m con el editor de MATLAB y deducir los
valores de las matrices W, V, A1, B1, C1, D1, Ref y U presentes en dicho script.
[ --- Insertar aqu las ecuaciones pedidas --- ]
2. Ejecutar el archivo TP5kal.m , interpretar los resultados obtenidos y
extraer conclusiones.
[ --- Insertar aqu las grficas y las conclusiones pedidas --- ]
DB de 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:
Profesora del Curso MT227 R.M.G
9
UNIVERSIDAD NACIONAL DE INGENIERIA CONTROL MODERNO Y OPTIMO
FACULTAD DE INGENIERIA MECANICA P.A.2011_1
DAIA
Anexo
Archivo TP5ric02.m
% CONTROL AVANZADO I - 2005
% Trabajo Prctico 5
%
% Control ptimo en sistema continuos
% Ecuacin de Ricatti
% Archivo TP5ric.m
% Construccin de las matrices del motor
disp('Construyendo matrices y sistemas ...')
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;
Profesora del Curso MT227 R.M.G
10
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
UNIVERSIDAD NACIONAL DE INGENIERIA CONTROL MODERNO Y OPTIMO
FACULTAD DE INGENIERIA MECANICA P.A.2011_1
DAIA
% Clculo de las matrices de realimentacin
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')
Profesora del Curso MT227 R.M.G
11
UNIVERSIDAD NACIONAL DE INGENIERIA CONTROL MODERNO Y OPTIMO
FACULTAD DE INGENIERIA MECANICA P.A.2011_1
DAIA
Archivo TP5kal02.m
% CONTROL AVANZADO I - 2005
% Trabajo Prctico 5
%
% Control ptimo en sistema continuos
% Filtro de Kalmann
% Archivo TP5kal.m
% Construccin de las matrices del motor
disp('Construyendo matrices y sistemas ...')
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
autoOBS=[ -500 -500 ];
aux=acker(a',cw',autoOBS);
g1=aux';
f1=a-g1*cw;
% Construccin de las seales de ruido blanco
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 ];
Profesora del Curso MT227 R.M.G
12
UNIVERSIDAD NACIONAL DE INGENIERIA CONTROL MODERNO Y OPTIMO
FACULTAD DE INGENIERIA MECANICA P.A.2011_1
DAIA
% 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),'-g')
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),'-g')
axis([0 0.3 0 60])
legend('w real','w estim',0)
xlabel('Tiempo')
ylabel('Velocidad')
title('Aplicacin de un filtro de Kalmann')
Bibliografa:
CONTROL AVANZADO I - TRABAJO PRACTICO 5:
CONTROL OPTIMO EN SISTEMAS CONTINUOS
Departamento de Electrnica de la Universidad del Rosario
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
-100
-80
-60
-40
-20
0
Corriente del motor
Q1
Q2
Q3
Q4
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
-20
0
20
40
60
80
100
Velocidad del motor
Q1
Q2
Q3
Q4
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
-20
-15
-10
-5
0
Tiempo
Variable Z - Integrador
Q1
Q2
Q3
Q4
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
-150
-100
-50
0
50
Tiempo
Tensin de armadura
Q1
Q2
Q3
Q4
Profesora del Curso MT227 R.M.G
13
UNIVERSIDAD NACIONAL DE INGENIERIA CONTROL MODERNO Y OPTIMO
FACULTAD DE INGENIERIA MECANICA P.A.2011_1
DAIA
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
-100
-80
-60
-40
-20
0
Corriente del motor
Q1
Q2
Q3
Q4
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
-20
0
20
40
60
80
100
Velocidad del motor
Q1
Q2
Q3
Q4
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
-20
-15
-10
-5
0
Tiempo
Variable Z - Integrador
Q1
Q2
Q3
Q4
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
-150
-100
-50
0
50
Tiempo
Tensin de armadura
Q1
Q2
Q3
Q4
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
Profesora del Curso MT227 R.M.G
14
UNIVERSIDAD NACIONAL DE INGENIERIA CONTROL MODERNO Y OPTIMO
FACULTAD DE INGENIERIA MECANICA P.A.2011_1
DAIA
Test 7
En esta tarea se desea estabilizar la velocidad del movimiento de un avin.
Alabeo es el movimiento de rotacin de un avin sobre su eje longitudinal (Figura a)
El deslizamiento de una aeronave es controlada principalmente con los alerones y la
descripcin en espacio estado puede ser representada como:
w u x x
]
]
]
+
]
]
]
+
]
]
]
1
0
1
0
0 0
1 0
[ ] v x y + 0 1
Donde el ngulo de alabeo es descrito por
, x=[
]
T
es el vector de estados,
w
es una perturbacin (viento),
v
es el ruido de
la medida y u es la posicin del alern.
Tambin se aplica a las seales w y v:
E[w(t)]=E[v(t)]=0, E[w(t)w( )]=
) ( t q
E[v(t)v( )]=
) ( t r
, con
0 q
y
0 > r
.
La medida y es el ngulo de alabeo.
Disee el Compensador LQG, para mantener
el ngulo de alabeo
y la velocidad angular
en cero.
a) Determine la ganancia L del filtro de
Kalman Bucy, indicando las condiciones
necesarias para el diseo.
b) Determine la siguiente funcin de transferencia del filtro de Kalman Bucy:
:
2
1
x y
x y
) (
) (
) (
) (
) (
) (
2
2
1
1
s Y
s X
s G
s Y
s X
s G
Sugerencia: Dinmica del Observador: [ ] x C y L x A x
+
,
`
.
|
+
]
]
]
0
2 4
1
) ( ) (
0 0
0
) (
d) Calcule la Funcin de transferencia K(s) del regulador LQG para
1 , 4 r q
e) Determine el MF y MG del sistema compensado.
Profesora del Curso MT227 R.M.G
15