Académique Documents
Professionnel Documents
Culture Documents
1
Tema 6. Control ptimo.
2
Concepto de sistema de control ptimo
Tcnicas desarrolladas en los 60 para el diseo ptimo de sistemas de control.
Indice de comportamiento de un sistema: Medida cuantitativa del comportamiento de
un sistema que se elige de forma que resalten las caractersticas importantes.
Sistema de control ptimo: Cuando sus parmetros se ajustan de forma que el ndice de
comportamiento alcance un valor mnimo. Por ejemplo: gasto mnimo de energa en un
sistema de correccin de rbita de un satlite artificial o de combustible en un avin
o minimizar la necesidad de potencia del motor de un coche (cruise-control).
Ejemplos de ndices de comportamiento que pueden mininizarse para conseguir
controladores ptimos:
T T T
ISE e (t )dt
2
IAE e(t ) dt ITAE t e(t ) dt
0 0 0
En todos los casos se trata de minimizar el ndice de comportamiento (minimizar el
error del sistema controlado).
x y=x1
u y Cx
J [ x Qx u Ru ]dt
T T
x Ax Bu
0
LQRconhorizonteinfinito
(rgimenpermanente) u= Kx x
K
Q y R son matrices simtricas reales (factores de peso del estado o de la entrada), que
hay que parametrizar en funcin de lo que se quiera potenciar ms. Son los principales
parmetros de diseo al inicio. Cmo conseguir una respuesta rpida con el
mnimo esfuerzo de control?
J representa la suma (con peso) de la energa del estado (x) y del control (u) . Esto se
traduce en necesitar motores u otros actuadores ms pequeos.
El diseo LQR garantiza los mrgenes de estabilidad
u Kx
J [ x T Qx u T Ru ]dt [ x T Qx x T K T RKx ]dt x T
( Q K T
RK ) xdt
0 0 0 6
u Kx
J xT Qx u T Ru dt xT Qx xT K T RKx dt
0 0
J xT (Q K T RK ) xdt
0
Hay que minimizar J: es decir: hacer dJ/dt=0 , resolver la ecuacin y obtener los
valores de la matriz de ganancias K que minimizan J (valores de K ptimos).
K=lqr(A,B,Q,R)[K,P,s]=lqr(A,B,C,D)
Para sistemas digitales:
K=dlqr(G,H,Q,R) s=polos en lazo cerrado en plano s
8
Obtencin del valor ptimo de la matriz de realimentacin de estado K
Supongamos que existe una matriz P constante, tal que:
d T
dt
x Px xT (Q K T RK ) x (1)
0 0 0
J xT Px xT ()Px() xT ( 0 )Px(o) xT ( 0 )Px(o)
0
Como todos los valores propios de (A-BK) tienen partes reales negativas, en el infinito x
tiende a 0; luego:
J xT (0) Px(0)
dt
De donde se tiene que cumplir que:
(Q K T RK ) ( A BK )T P P( A BK ) (3)
Operando: ( A BK )T P P( A BK ) Q K T RK 0
AT P K T BT P PA PBK Q K T RK 0
AT P PA Q K T RK K T BT P PBK 0
Si hacemos: K R 1 BT P (4)
Nos quedara:
T
AT P PA Q R 1 BT P R R 1 BT P R 1 BT P BT P PB R 1 BT P 0
T
AT P PA Q PT BR RR 1 T 1
T
BT P PT B R 1 BT P PB R 1 BT P 0
Ecuacin de Ricatti que hay que
A P PA Q PB R B P 0
T 1 T
resolver para obtener P
AT P PA Q PB R 1 B T P 0
0 0 0 1 1 0 0
P P P 0 1P 0
1 1 1 1 0 1 1
p122 1 0
p11 p12
P 2( p12 p22 ) p22 2
1 0
p12 p22 p p p p
11 12 12 22
11
Hay tres soluciones para P:
0 1 2 1 2 1
P ; P ; P
1 1 1 3 1 1
La nica que es hermtica es la tercera
2 1
Ahora podemos calcular K: K R 1 BT P 0 1 1 1
1 1
0 1 0 0 1
( A BK )
1 1 1 1 2
0 1
(A-BK) tiene como valores propios (polos): p1= -1; p2= -1
Podemos comprobar el clculo de K y de los valores propios, con Matlab:
A=[01;01];B=[0;1];C=[10]; eig(AB*K)
Q=[10;01];R=1;
[K,P]=lqr(A,B,Q,R) ans =
K= 1.0000
1.00001.0000 1.0000
P=
2.00001.0000
1.00001.0000
Tambien se podra usar la funcin de Matlab CARE (Continuous Algebraic Riccati Equation)
12
Ecuaciones de estado de sistemas controlados en lazo cerrado
Regulador (r=0)
Hay que recordar que para el regulador u= - Kx (aunque K se calcule por el mtodo LQR),
en su da calculamos, que las matrices del sistema en lazo cerrado son:
D
+
u x
+ x
Ac=A-B*K B
+ C y
Cc=C-D*K
Bc=[0;0] A u kx
Dc=[0 0]
-K x Ax Bu Ax B(Kx) (A BK)x
Controlador (Consigna = r) y Cx Du Cx DKx (C DK)x
D
u +
r + + x x
-
B
+ C y
-K
Ac=A-B*K u kx r
Cc=C-D*K
Bc=B x Ax Bu Ax B(Kx r ) (A BK)x Br
13
Dc=D y Cx Du Cx D(Kx r ) (C DK)x Dr
Procedimiento de diseo de reguladores LQR mediante Matlab
1. Se parte de las ecuaciones de estado del sistema en lazo abierto a controlar. El
sistema debe ser controlable.
2. Hay unas condiciones de diseo que se desean cumplir (Mp, ts, etc ..).
3. Se establecen tambin unas restricciones de las magnitudes de los estados
x (p. ej: desplazamiento mximo, ngulo mximo, etc ) y de la seal de
control u (mximo voltaje para actuar sobre un motor, etc
4. Se eligen Q y R (matrices diagonales positivas) en funcin de las restricciones
(3) y de las condiciones de diseo (2). (Para ello se puede usar la Regla de
Bryson y tantear despues la respuesta para varios valores de Q,R.
5. Mediante la funcin K= lqr(A,B,Q,R) de Matlab, se obtiene la matriz de
ganancias de control, tal que u= - Kx. (K es el valor ptimo que minimiza la
funcin de coste J(x,u,Q,R).
6. Se representan la respuesta de salida y, y los estados x, con la funcin:
[y,x,t]=lsim(A-B*K,C,D,u,t,X0) o bien con initial.
7. Se comprueba si se cumplen las condiciones de diseo (2). Si no es as, cambiar
los valores de Q y R (ir al punto 4).
14
Ejemplo 2: Disear un sistema de control continuo (obtener K) usando el mtodo LQR y Matlab
r x Y=x1
u
y Cx
+
x Ax Bu
x Ax Bu Ax BKx ( A BK ) x Br
x u Kx r
K 0 1 0
A ; B ; C 1 0
0 1 1
J [ x T Qx u T Ru ]dt
0
1 0
Le damos el mismo peso a x que a u en la funcin de coste a optimizar: Q ; R [1]
0 1
A=[01;01]; 1
Step Response
Elsistemaesdegranestabilidad.
B=[0;1];C=[10];D=[0]; 0.9
0.8
Sepuedenanalizarlosvalores
r=1;%escalon unitario 0.7
0.6 propios:
Q=[10;01];R=[1];
Amplitude
0.5
eig(AB*K)
K=lqr(A,B,Q,R) 0.4
0.3 1.0000+0.0000i
%>>K=11 0.2
1.0000 0.0000i
AA=AB*K 0.1
0
0 1 2 3 4 5 6 7 8 9 10
15
Vamos a probar respuestas con diferentes valores de Q,R
Controlador (r = escaln unitario)
plot(t,x(:,1),'g');%x1,yenverde 1.2
plot(t,x(:,2),'r');%x2enrojo u
y,x1
u=(K(1)*x(:,1)K(2)*x(:,2))+1*ones(size(t)); 1
plot(t,u,'b');%uenazul;grid on;hold off; 0.8
0.6
0.4
x2
0.2
0
0 1 2 3 4 5 6 7 8
16
Influencia de las matrices Q y R en los
estados, salida y seal de control
Supongamos que tenemos dos estados x1,x2, y que u es un escalar
q 0
Q 1 ; R [ R]
0 q2
J ( x Qx u Ru )dt [(q1 x1 q2 x2 ) Ru 2 ]dt
T T 2 2
0 0
plot(t,u,'b');%uennegro
hold off
2
q1=10 (x1 menor=y ms rpida)
1.5
1 R=1
q1=10 0
1 R=10 (u menor)
-1
-2
0.5
-3
0
-4
-5
-0.5
0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 18
Reglas para la eleccin de Q , R
1. Regla de Bryson (1975)
Una primera eleccin para las matrices Q y R (matrices diagonales) se puede obtener con:
1
Qii
Valor mx deseado (aceptable) de x i2
1
R jj
Valor mx deseado (aceptable) de u 2j
J LQR [ xT Qii x u T R jj u ]dt
0
Se usa esta regla para mantener los estados xi y las entradas de control uj debajo de unos
lmites, al objeto de evitar grandes seales de control, que seran inaceptables.
Q= CT C
R = B BT ;
Despus se siguen haciendo ensayos hasta encontrar la respuesta deseada.
=Angulomximo:4.5*pi/180radianes
%xmax=0.68metros
x=0.68; 4.5*pi/180; 1
Qii
Qii=[1/^20;01/x^2] Valor mx deseado (aceptable) de x i2
Q=C*Qii*C 1
R jj
%Fuerzamxima=3N; Valor mx deseado (aceptable) de u 2j
Rjj=1/(3^2)
R=B*Rjj*B 20
Una variante de la regla de Bryson:
Los valores propios de A (polos en lazo abierto del sistema no-controlado son:
Obtener un sistema de control LQR para que el tiempo de asentamiento deseado sea:
ts= 4 seg.
Haciendo Q=I3 (matriz unitaria diagonal), con condiciones iniciales: x(0)=[1 1 1] y
probando con R=0.01, 0,1 y 1, se obtienen los siguientes polos en lazo cerrado
(valores propios de (A+B*K):
AlaumentarQ11,elsistemaderegulacinesmsrpido(ts esmenor).
24
LamejorrespuestaseobtieneconQ11=10,R=0.1,aunque
laaccindecontroluesmsfuerte 25
Ejemplo 5:
Dado un circuito RLC, con ecuacin diferencial: x 2 x 100 x u
26
a)
x 2 x 100 x u
x1 x x2 x
x1 = x2 x 1
0 1 x1 0 1 0
x u; y= x
x 2 100 x1 2 x2 u x 2 100 2 2 1 0 1
b) Basndonos en la regla de Bryson, podemos empezar con los valores: 1/max2
como elementos de la diagonal en Q y R:
1 0 1
Q ; R
0 1 100 2
Despus obtendremos las respuestas dinmicas y ajustaremos mejor Q y R.
Incrementando R penalizamos u, e incrementando Q ponemos ms esfuerzo en
obtener las prestaciones de diseo para la salida y.
A=[01;1002];B=[0;1]; 0
C=[10;01];D=[0;0];
-1
sys=ss(A,B,C,D);
x0=[1;0]; -2
t=0:0.001:2;
-3
Q=[10;01];R=1/100;
[K,P,s]=lqr(sys,Q,R); -4
plot(t,x(:,1),'r'); 10
plot(t,x(:,2),'b');% 0
grid on -10
figure(2) -20
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 28
plot(t,u);%sealcontrol
Ejemplo 6. Control continuo LQR para pndulo invertido.
Ecuaciones de estado en lazo abierto:
A=[0100;20.601000;0001;0.4965000];
0 1 0 0 0
B=[0;1;0;0.5]; C=[1000;0010];D=[0;0];
X0=[0.100.10];%01radianes(6),0.1metro 20.601 0 0 0 1
F
t=0:0.01:10;
x 0 0 0 1 x 0
r=zeros(size(t));consigna=0
4.965 0 0 0 x 0.5
Q=[10000;01000;0010;0001]; x
R=1;%despuesR=0.1
[K,P,s]=lqr(A,B,Q,R)
1 0 0 0 0
Ac=AB*K;Bc=B;Cc=C;Dc=D; F
x 0 0 1 0 x 0
[y,x]=lsim(Ac,Bc,Cc,Dc,r,t,X0);plot(t,y)
x
0.45
10 1 0 0
0.4
Le damos mas
0 10 0 0
0.35 R=1 Q peso (10) al
0 0 1 0
0.3
0 0 0
esfuerzo sobre
1
0.25
que sobre x.
0.2
0.3 R=0.1
0.25
0.2
0.15
0.1
0.05
0 ts(x)=6
-0.05
0 1 2 3 4 5 6 7 8 9 10
ts(
30
Ejemplo7:DiseoLQRdelservosistema:
r +
y=x1
0 1 0 K1
+ x
u
y Cx
A 0 0 1
x Ax Bu
0 2 3
0
x2
K2
B 0 ; C 1 0 0
x3
K3
1
u k1 (r x1 ) (k 2 x2 k3 x3 ) k1r (k1 x1 k 2 x2 k3 x3 )
u Kx k1r
A=[010;001;023];
B=[0;0;1];C=[100];D=[0];
T
JJ 1[ x[TxQx T
Ru]]dt
02 0
' Qx u 'Ru
u dt Q=[10000;010;001];R=[0.01];
K=lqr(A,B,Q,R)
%>>K=
100 0 0
%10053.1211.6711
Q 0 1 0 ; R 0.01
0 0 1
Se desea respuesta rpida (peso de Q11 100) >>Q 22 , Q33 ,R 31
Veamos la respuesta ante r = escaln unitario:
Step Response
1.4
1.2
AA=AB*K
BB=B*K(1)
1
CC=C;
DD=D; 0.8
step(AA,BB,CC,DD); Amplitude
grid 0.6
0.4
0.2
0
0 0.5 1 1.5 2 2.5 3
Time (sec)
32
Obtencin de las constantes PID mediante un diseo LQR para un sistema de 2. orden
Se trata de utilizar el procedimiento LQR para ajustar las constantes de un controlador PID
continuo, que se va a emplear en controlar un proceso con funcin de transferencia en lazo
abierto de 2 orden, amortiguada: K0
s 2 2n n2
Vamos a obtener la representacin ss del sistema en lazo cerrado; para ello, definimos los
siguientes estados: de(t )
x1 e(t )dt ; x2 e(t ); x3
dt
Si suponemos que r(t)=0, entonces y(t)= - e(t)
Y ( s) K0 E (s)
2
U ( s ) s 2n n
2
U ( s)
33
s 2
2n n2 E ( s ) K 0U ( s )
Haciendo la transformada inversa de Laplace:
e 2n e n2 e K 0u (t )
Sustituyendo las variables de estado:
x3 2n x3 n2 x2 K 0u (t )
x1 0 1 0 x1 0 x1
x 0
2 0 1 x2 0 u; y 1 0 0 x2
x 3 0 n2 2n x3 K 0 x
3
0 1 0 0
A 0 0 1 ; B 0 ; C 1 0 0
0 2 2 K
n n 0
x1
de(t )
u (t ) Kx(t ) ( K i Kp K d ) x2 u (t ) K i e(t )dt K p e(t ) K d
x dt
3
Para obtener las constantes PID se obtiene K ptimo por el mtodo LQR, y ya las
34
tenemos (hay que cambiarles el signo).
Supongamos que tenemos la siguiente funcin de transferencia del proceso a controlar:
Step Response
K0 1 1.6
s 2 2n n2 s 2 0.4 s 1
1.4
1.2
Amplitude
0.8
0.6
0.4
x1
0 5 10 15 20 25 30 35
Time (sec)
de(t )
u (t ) Kx(t ) ( K i Kp K d ) x2 u (t ) K i e(t )dt K p e(t ) K d
x dt
3
K0=1;wn=1;psi=0.2;
A=[010;001;0(wn)^22*psi*wn];
B=[0;0;K0];C=[100];D=[0];
Q=[100;010;001];R=1;
K=lqr(A,B,Q,R)
K= KI=1
1.00001.45701.6184 Kp=1.457
Kd=1.6
35
Una vez que conocemos las constantes, vamos a simular la respuesta del sistema en lazo
cerrado, mediante Simulink:
1
1
s
Ki Integrator
1
1.4
s2 +0.4s+1
Step Kp Transfer Fcn Scope
1.6 du/dt
Kd Derivative
Larespuesta
enlazo
cerradocon
controlPID
es:
36
CONTROLLQRDIGITAL
J [ xkT Qxk ukT Ruk ] xk 1 Axk Buk
k 0 yk Cxk Duk
Jeslafuncindecoste(escalar)aminimizar. uk Kxk
Al igual que en los sistemas continuos, hay una nica solucin para la ganancia K
ptima (y tambin para la matriz hermtica P), que adems nos garantiza la
estabilidad del sistema digital en lazo cerrado (A-BK) tendr todos sus polos z
dentro del crculo unidad).
[K,P]=dlqr(A,B,Q,R)
37
ControlLQRdigitaldeunpnduloinvertido(conbarra)
M=0.5Kg;m=0.2Kg;
b=0.1N/m/s;(friccion delcarro)
I=0.006Kg.m2;(m.inercia)
g=9.8m/s2;l=0.3m;
Fuerza=u
Los criterios de diseo son:
ts< 5seg (tiempo de asentamiento para )
Tiempo de subida tr < 0.5 seg
Error en estado estacionario < 2%
0 1 0 0 0
x ( I ml 2 )b m gl 2
2 x I ml 2
x 0 0
I ( M m) Mml
2
I ( M m) Mml 2 I ( M m) Mml 2 x
0 0 ' 1 ml
2
0 mlb mgl ( M m)
0 I ( M m) Mml
I ( M m) Mml 2 I ( M m) Mml 2 0
x
1 0 0 0 x 0
y u
0 0 1 0 0
38
%ControlDigitalpendulo invertidoconLQRyconObservador
%
M=0.5;m=0.2;b=0.1;I=0.006;g=9.8;l=0.3;
p=I*(M+m)+M*m*l^2;%denominadorparalasmatricesAyB
A=[0100;
0(I+m*l^2)*b/p(m^2*g*l^2)/p0;
0001;
0(m*l*b)/pm*g*l*(M+m)/p0];
B=[0;(I+m*l^2)/p;0;m*l/p];
C=[1000;0010];
D=[0;0];
sys_ss=ss(A,B,C,D)
T=1/100;%Periododemuestreo
%digitalizacin
sys_d =c2d(sys_ss,T,'zoh')%digitalizacinconmuestretenedordeordencero
39
El modelo ss discreto ser:
Controlabilidad y observabilidad:
%Controlabilidad yobservabilidad
co =ctrb(sys_d);
ob =obsv(sys_d);
controlabilidad =rank(co)
controlabilidad =4
observabilidad =rank(ob)
observabilidad 4 40
Vamos a obtener K con el Controlador Lineal Cuadrtico LQR.
Por simplicidad, empezamos con:
R=1
42
Con: 10 5
R=1
angulo pendulo(radianes)
posicion carrito (m)
Se obtiene la respuesta: 0 0
-10 -5
0 1 2 3 4 5 6 7 8 9 10
0 4
-1 2
-2 0
-3 -2
-4 -4
0 1 2 3 4 5 6 7 8 9 10
46
%Observador
%
poles =eig(AB*K)%polosparaunprimertanteo:paralospolos
%deseadosdelobservador.
%poles =
%0.9157+0.0728i
%0.9157 0.0728i
%0.9535+0.0079i
%0.9535 0.0079i
%Basndonosenlospolosobtenidosantesubicaremoslospolosdel
%observadoren[0.20.210.220.23]
J=[0.20.210.220.23];
L=place(A',C',J)'
%L=
%2.43080.0104
%147.63241.2418
%0.01312.4305
%1.8079147.9057
47
%Usaremoslaconstantedelobservadorqueyacalculamosanteriormente
%condlqr.
%Ahoraobtendremoslarespuestaglobaldelsistemaconobservador
Ace =[(AB*K)(B*K);zeros(size(A))(AL*C)];
Bce =[B;zeros(size(B))];
Cce =[Cc zeros(size(Cc))];
Dce =[0;0];
sys_est_cl=ss(Ace,Bce,Cce,Dce,T);
t=0:0.01:5;
r=0*t;%consigna=0
x0=[0;0;5;0;0;0;0;0];%inicialmenteangulo =5rad;ahorahay8estados
[y,t,x]=lsim(sys_est_cl,r,t,x0);
[AX,H1,H2]=plotyy(t,y(:,1),t,y(:,2),'plot');
set(get(AX(1),'Ylabel'),'String','posicion carro(m)')
set(get(AX(2),'Ylabel'),'String','angulo pendulo(radianes)')
title('Respuestaescalon conControladorDigitalbasadoenobservador')
48
Respuesta escalon con Controlador Digital basado en observador
1 6
0 4
angulo pendulo(radianes)
posicion carro (m)
-1 2
-2 0
-3 -2
-4 -4
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Larespuestaescasiidntica,peroahoraconelobservadorno
necesitamosteneraccesoalas4variablesdeestado,sinosloalas
salidasx,
49