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

Dr. Ing.

Elmer Crdova Zapata -1-



CONTROL PTIMO








CONTROL PTIMO EN SISTEMAS CONTINUOS







Abril del 2014

Introduccin al Control ptimo 2014
Dr. Ing. Elmer Crdova Zapata Control Optimo en Sistemas Continuos Pg. 2 de 10
1. INTRODUCCION
El objetivo del trabajo prctico es aplicar como estrategia de control la tcnica de realimentacin de
estados aplicando la teora de control ptimo, esto es, calcular una matriz de realimentacin de estados
con el fin de minimizar una funcin de costo en lugar de fijar una dinmica para el sistema a lazo
cerrado. Adems se utilizar esta teora en la construccin de observadores para la reconstruccin del
vector de estados en sistemas ruidosos.
1.1 Control ptimo
En la primera parte de este documento se realizar el diseo de sistemas de control basados en costos
cuadrticos. Se considera el siguiente sistema continuo, lineal, estacionario, de orden n , con m
entradas:

| | | | | | | | , , , . . mx1 nxm nxn nx1 U B A X U B X A X + =



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

Introduccin al Control ptimo 2014


Dr. Ing. Elmer Crdova Zapata Control Optimo en Sistemas Continuos Pg. 4 de 10
2. CALCULO DEL CONTROL PTIMO
Para la resolucin de la ecuacin de Ricatti MATLAB posee una macro 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 macro se
denomina lqr , a continuacin se muestra la informacin de la misma brindada por MATLAB en su help:

LQR Linear-quadratic regulator design for state space systems.

[K,S,E] = LQR(SYS,Q,R,N) calculates the optimal gain matrix K
such that:

* For a continuous-time state-space model SYS, the state-feedback
law u = -Kx minimizes the cost function

J = Integral {x'Qx + u'Ru + 2*x'Nu} dt

subject to the system dynamics dx/dt = Ax + Bu

* For a discrete-time state-space model SYS, u[n] = -Kx[n] minimizes

J = Sum {x'Qx + u'Ru + 2*x'Nu}

subject to x[n+1] = Ax[n] + Bu[n].

The matrix N is set to zero when omitted. Also returned are the
the solution S of the associated algebraic Riccati equation and
the closed-loop eigenvalues E = EIG(A-B*K).

[K,S,E] = LQR(A,B,Q,R,N) is an equivalent syntax for continuous-time
models with dynamics dx/dt = Ax + Bu

Para el clculo de matrices de realimentacin de estados la sintaxis a utilizar es la siguiente:
[K,P,L]=lqr(A,B,Q,R)

y para el clculo de la matriz G del filtro de Kalmann:
[Ko,Po,Lo]=lqr(A ,C ,Qr,Rr)
G = Ko

Donde Qr y Rr deben calcularse como las matrices de covarianza de las seales de ruido W y V, para
ello se utiliza la macro cov de MATLAB. La misma se describe a continuacin:

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.
Introduccin al Control ptimo 2014
Dr. Ing. Elmer Crdova Zapata Control Optimo en Sistemas Continuos Pg. 5 de 10
3. DESARROLLO DEL TRABAJO PRCTICO
3.1 Realimentacin de estados ptima

Para observar los efectos del control ptimo se utilizar el modelo en variables de estados del motor de
CC ya conocido. El vector de estado est formado por la corriente de armadura I y la velocidad
angulare, las ecuaciones y las matrices del mismo son las siguientes:

t
e
. . . , Bt u Bu X A X
I
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

Вам также может понравиться