Vous êtes sur la page 1sur 49

CONTROL OPTIMO

1
Tema 6. Control ptimo.

Concepto de sistema de control ptimo.


Regulador Cuadrtico Lineal (LQR). Ecuacin de Ricatti.
Obtencin del valor ptimo de la matriz de realimentacin de estado K.
Ecuaciones de estado de sistemas controlados en lazo cerrado.
Procedimiento de diseo de reguladores LQR mediante Matlab.
Influencia de las matrices Q y R en los estados, salida y seal de control.
Reglas para la eleccin de Q y R.
Obtencin de las constantes PID mediante un diseo LQR para un sistema de
2 orden.
Control LQR digital.
Control LQR digital de un pndulo invertido

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).

Expresin general de un ndice de comportamiento: Pueden hacerse


mltiples combinaciones
J f [e(t ), u (t ), y (t ), t ]dt ..
0
Puede llamarse tambin funcin objetivo o bien funcin de coste. 3
dx
Dado un sistema: Ax Bu
dt
y Cx
u K (x) en general
Se define la funcin de coste (o ndice de comportamiento genrico) como:
T
J f [x(t ), u(t ), t ]dt x1
0
Si hay una sola seal de control u (escalar) puede expresarse como: x2
u - ( k1x1 k 2 x 2 .. k n x n ) -(k1 k 2 ...k n ) .

En caso de varias entradas: u1= - K1x1; u2=- K2x2, . un=- Knxn .
x
Tambin se podran expresar como: u1= - K1(x1+x2) ; u2= - K2(x2+x3) .. n

En general se puede poner: u= - Kx donde K es una matriz (m x n) :


u1 k11 k12 . k1n k1
.

u2 k 21 k 22 k 2 n k 2
.. .. .. .. .. .. ..

.. .. .. .. .. .. ..
u k k mn k m
m m1 km2 4
Si hay una nica variable de estado, y no se tiene en cuenta la entrada u , se
podra elegir una funcin de coste que minimizase la energa del sistema:
T
1
J ( x1 (t )) 2 dt
20
Si hay dos variables de estado, podra ser:
T
1
J [( x1 (t )) 2 ( x1 (t )) 2 ]dt
20
Para n variables de estado:
x1

x2
x T x x1 x2 . . xn . x12 x22 ...... x22

.
x
T n
1
J [ xT x]dt
20 5
Regulador Cuadrtico Lineal (LQR)

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).

Incrementando R se penaliza la accin de control u (menor energa para controlar


los actuadores), por lo que la respuesta es ms lenta (ts aumenta).
Incrementando Q, se penaliza el estado (seales de estado ms pequeas), lo que
implica que la respuesta es ms rpida (ts disminuye).

Se busca un control ptimo:

Que el regulador acerque el estado al origen (o a la referencia r) lo ms rpido posible.


Manteniendo un nivel de actuacin moderado (mnima energa de control).
Sistema muy estable (robusto) con buenos mrgenes de ganancia y de fase.
7
Q pondera el error de estado del vector de estado del sistema x, y .
R pondera la accin de control (u)
Se puede demostrar que para obtener el valor de K ptimo que minimiza la funcin de
coste J, hay que resolver la ecuacin de Ricatti:
AT P PA PBR 1 BT P Q 0
d T
Donde P es una matriz hermtica que cumple: x T (Q K T RK ) x ( x Px)
dt
Una vez calculado P, resolviendo la ec. De Ricatti, el valor de K ptimo se obtiene con:
K R 1 B T P
Si x(0) son las condiciones iniciales de los estados, se puede demostrar que el
valor mnimo de J es:
J x (o) Px(o)
T

Matlab lo resuelve obteniendo K (y P) para sistemas continuos con la funcin lqr:

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)

Sustituyendo (1) en la definicin de J:



J [ x Qx u Ru ]dt [ x Qx x K RKx]dt xT (Q K T RK ) xdt
T T T T T

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)

Q y R son matrices hermticas (simtricas definidas positivas; QT=Q>0; RT=R>0 )


Para minimizar J, se debe resolver la siguiente ecuacin:
xT (Q K T RK ) x
dt

d T
x Px (2) P tambin es hermtica

Teniendo en cuenta que en lazo cerrado: x A-BK x
9
Derivando (2):

d T T
x (Q K RK ) x
T T
x Px x Px x P x xT ( A BK )T P P( A BK ) x
T

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

Una vez obtenida P, con la ecuacin (4) obtendremos K


(matriz de realimentacin ptima)
10
Ejemplo 1. Clculo manual de K
El procedimiento consiste en:
1. Seleccionar Q,R
2. Resolver la ecuacin de Ricatti y obtener P:
AT P PA Q PB R 1 B T P 0
3. Despus se calcula K: 1 T
KR B P
0 1 0
x x u; y 1 0 x
0 1 1

1 0
Q ; R 1; J ( xT Qx u T Ru )dt ( x12 x22 u 2 )dt
0 1 0 0


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

step(AA,B*r,C,D) Time (sec)

15
Vamos a probar respuestas con diferentes valores de Q,R
Controlador (r = escaln unitario)

%Version r=escalon unitario


hold on
A=[01;01];B=[0;1];C=[10];D=[0];
Q=[10;01];R=[1];[K]=lqr(A,B,Q,R);
AA=(AB*K);BB=B;CC=C;DD=D;sys=ss(AA,BB,CC,DD);
t=0:0.1:8;r=1*ones(size(t));%tambien:r=1+0*t%entradaescalon unitario
[y,t,x]=lsim(sys,r,t); 1.4

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

q1 influye en el peso de x1. Si q1 es grande, implica que x1 ser pequeo para


que J siga siendo mnimo.
q2 influye en el peso de x2
R influye en el comportamiento de u. Si R es grande, u ser pequea.
x1
u es escalar: u Kx k1 k 2 k1 x1 k 2 x2
Como J debe ser mnimo:
x2
Incrementando R se penaliza la accin de control u (menor energa de la seal
de control), por lo que la respuesta es ms lenta (ts aumenta).
Incrementando Q, se penaliza el estado (seales de estado ms pequeas), lo
que implica que la respuesta es ms rpida (ts disminuye). 17
hold on
A=[01;01];B=[0;1];C=[10];D=[0]; 1.5
Regulador (r=0). Influencia Q,R
Q=[10;01];R=[1];[K]=lqr(A,B,Q,R);
AA=(AB*K);BB=B;CC=C;DD=D
1
x1=y q1=1
sys=ss(AA,BB,CC,DD);t=0:0.1:15; 0.5 R=1
r=zeros(size(t));%entrada
%escalon unitario 0
x2
x0=[11];%estadoinicial
-0.5
[y,t,x]=lsim(sys,r,t,x0);
plot(t,x(:,1),'g');%x1saliday(verde) -1 u
plot(t,x(:,2),'r');%x2rojo
u= (K(1)*x(:,1)K(2)*x(:,2)); -1.5
0 1 2 3 4 5 6 7 8

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.

Aunque esta regla generalmente d buen resultado, es simplemente un punto de partida, ya


que suele ser necesario hacer varios ajustes posteriores iterativos (mtodo de ensayo-error)
para conseguir la mejor respuesta.
19
2. Obtencin de Q y R a partir de las matrices B y C:

a) Inicialmente se pueden elegir las matrices diagonales:

Q= CT C
R = B BT ;
Despus se siguen haciendo ensayos hasta encontrar la respuesta deseada.

b) Aplicacin de la Regla de Bryson:


Q=CT[Qii]C
R=B [Rjj] BT
Ejemplo3: Clculo de Q y de R para pndulo invertido

=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:

tsi es el tiempo de asentamiento deseado para xi


ximax es una restriccin de abs(xi)
uimax es una restriccin de abs(ui)
se elige segn compromiso entre respuesta de regulacin y esfuerzo de control.

Si ri disminuye, la entrada de control uimax es ms grande, (para que la funcin


de coste J permanezca mnima) y adems ts disminuye.

Si qi aumenta, el tiempo de asentamiento ts disminuye . 21


Ejemplo 4: Dado un sistema con:

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):

Es un sistema regulador (Objetivo: y=0) 22


Representando los estados (x1,x2,x3) y entrada de control u, con Q constante y R variable

Cuando R aumenta, la accin de control u es menos fuerte, y el sistema de


regulacin que intenta alcanzar el valor 0 se hace ms lento (ts aumenta).
23
Representando los estados (x1,x2,x3) y entrada de control u, con R constante y Q11 variable:

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

con entrada u, y con condiciones iniciales: x (0 ) 1 x (0 )= 0

a) Obtener su representacin en el espacio de estados, usando:



x1 x x2 x
b) Disear mediante Matlab un sistema de control de ganancia K, mediante el
mtodo LQR, seleccionando Q y R, de forma que el tiempo de asentamiento sea
ts< 1 seg, y que la seal de control sea inferior a 100 (abs(u)<100). Dibujar la
evolucin de los estados x1(t), x2(t) y de la seal de control u(t) usando la funcin
initial de Matlab.

c) Obtener la solucin P a la ecuacin de Ricatti, usando Matlab, y estimar la funcin


de coste J=xT(0)Px(0).

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.

Finalmente, despus de varios intentos nos quedamos con:


1 0 1
Q ; R
0 1 100
27
Estadosx1,x2
hold on; 1

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

Ac=AB*K; -5 Se obtienen los


Bc=[0;0]; siguientes valores
-6
Cc=CD*K; 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
de P y de J:
Dc=[0;0]; Controlu
70
sysc=ss(Ac,Bc,Cc,Dc); P=
[y,t,x]=initial(sysc,x0,t); 60
8.2476 0.0050
u=[K*x']'; 50
0.0050 0.0818
J=x0'*P*x0; 40
J=
grid on 30
8.2476
figure(1); 20

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.15 Polos en lazo cerrado


0.1
ts(x)<10 6.3683
0.05
ts( 3.2677 Polos dominantes
0
0.5387+0.4254i Cercanos al eje j
-0.05
0 1 2 3 4 5 6 7 8 9 10 0.5387 0.4254i 29
Ahora mantenemos el mismo Q y disminuimos R
0.35

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(

Polos en lazo cerrado


11.8012
Los polos dominantes se han
1.5881
desplazado hacia la izquierda
1.1423+0.5911i
(ahora el sistema en lazo cerrado
1.1423 0.5911i
es ms rpido y ms estable).

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

La respuesta de este sistema en lazo abierto es:

Amplitude
0.8

0.6

0.4

Vamos a obtener los valores de las constantes PID 0.2

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).

Con Matlab, K y P se pueden calcular con:

[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%

El modelo ss continuo linealizado es:

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:

x(k 1) 1 0.01 0.0001 0 x(k ) 0.0001



x(k 1) 0 0.9982 0.0267 0.0001 x(k ) 0.0182
(k ) 0.0002 u (k )
( k 1) 0 0 1. 0016 0.01

(k 1) 0 0.0045 0.3119 1.0016 (k ) 0.0454


x(k )

1 0 0 0 x(k ) 0
y (k ) u (k )
0 0 1 0 (k ) 0
(k )

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

El elemento (1,1) de Q es el peso de la posicin del carrito, y el elemento (3,3)


es el peso del ngulo del pndulo. R es el peso de u(k) (accin de control).

Ahora usaremos la funcin dlqr para obtener K y dibujaremos la respuesta.


41
%ControlLQR
A=sys_d.a;
B=sys_d.b;
C=sys_d.c;
D=sys_d.d;
Q=C'*C;R=1;
[K]=dlqr(A,B,Q,R)
Ac=[(AB*K)];
Bc =[B];
Cc =[C];
Dc =[D];
sys_cl=ss(Ac,Bc,Cc,Dc,T);
t=0:T:10;
r=0*t;%consigna=0paraangulo ydesplazamiento
x0=[0;0;5;0];%inicialmenteangulo =5rad
[y,t,x]=lsim(sys_cl,r,t,x0);
[AX,H1,H2]=plotyy(t,y(:,1),t,y(:,2),'plot');
set(get(AX(1),'Ylabel'),'String','posicion carrito (m)')
set(get(AX(2),'Ylabel'),'String','angulo pendulo(radianes)')

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

Empezamos con una desviacin de ngulo de 5 radianes, y se corrige totalmente con


un ts=8 seg. La respuesta no es satisfactoria. El sobredisparo est bien, pero hay que
reducir los tiempos de asentamiento (ts).

Ahora incrementaremos el elemento Q(1,1)=5000 y el Q(3,3)=100 para reducir los


tiempos de asentamiento y hacer que el pndulo se mueva con menor ngulo. Para ello
incrementamos el coste del esfuerzo.
43
%QueremosmejorarlarespuestacambiandoQ(1,1)=5000yQ(3,3)=100
A=sys_d.a;
B=sys_d.b;
C=sys_d.c;
D=sys_d.d;
Q=C'*C;
Q(1,1)=5000;Q(3,3)=100;R=1;
[K]=dlqr(A,B,Q,R)
Ac=[(AB*K)];
Bc =[B];
Cc =[C];
Dc =[D];
sys_cl =ss(Ac,Bc,Cc,Dc,T);
t=0:T:10;
r=0*t;
x0=[0;0;5;0];%inicialmenteangulo =5rad
[y,t,x]=lsim(sys_cl,r,t,x0);
[AX,H1,H2]=plotyy(t,y(:,1),t,y(:,2),'plot');
set(get(AX(1),'Ylabel'),'String','posicion carrito (m)')
set(get(AX(2),'Ylabel'),'String','angulo pendulo (radianes)')
44
Seobtiene:
1 6

0 4

angulo pendulo (radianes)


posicion carrito (m)

-1 2

-2 0

-3 -2

-4 -4
0 1 2 3 4 5 6 7 8 9 10

Secumplen todos losrequisitos dediseo.


Ahora eltiempo deasentamiento es ts=3seg.
45
Conobservador:

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

Vous aimerez peut-être aussi