Control Óptimo Cuadrático de Sistemas en Tiempo Discreto M.Sc. Ricardo Rodríguez B
M.Sc. Ricardo Rodríguez B
-1-
1.1 Introducción El objetivo del Control Optimo es el de determinar una ley de control óptima u que minimice la función de costo J . En la mayoría de los casos, sin embargo, la búsqueda de la función de costo involucra procedimientos de error y corrección; esto significa que no siempre podremos estar seguros acerca de la forma exacta que debería poseer la función de costo. Para sistemas de control discretos, la función de costo generalmente posee la siguiente forma: N
(1)
J = ∑ L( x(k ), r (k ), u (k )) k =0
Donde:
k
= tiempo discreto;
N
= horizonte de tiempo discreto final;
x(k )
= vector de estado;
r (k )
= vector de referencia;
u (k )
= vector de control óptimo (denominada también fuerza o señal de control).
Para aplicaciones prácticas, el vector de control u debe estar siempre acotado. 1.2 Control Óptimo Cuadrático No Estacionario El problema del control óptimo cuadrático discreto no estacionario consiste en encontrar una adecuada ley de control óptima que sea capaz de trasladar la dinámica del proceso desde un estado inicial x(0) hacia un estado final deseado x(N ) . La fuerza de control optima u (k ) se determina a partir de la minimización de una función de costo cuadrática discreta. Función de costo discreta:
J=
[
1 T 1 N −1 x ( N ) S x( N ) + ∑ x T (k ) Q x(k ) + u T (k ) R u (k ) 2 2 k =0
M.Sc. Ricardo Rodríguez B
-2-
]
(2)
Ley de control óptima: (3)
u (k ) = − K (k ) x(k ) Matriz de realimentación de estados
Una condición necesaria para aplicar el control por realimentación de estados es que el proceso sea completamente controlable; además, sea completamente observable (todos los estados deben estar disponibles o medibles). Si existieran estados que no pudieran medirse directamente, será necesario estimarlos por medio de un estimador u observador de estados. Ecuación de estado discreta del proceso:
x ( k + 1) = Gx ( k ) + Hu ( k );
x ( 0) = c
(3)
Controlabilidad:
[
M = H GH L G n −1 H rango ( M ) = n
]
(4)
Ecuación de Riccati:
P (k ) = Q + G T P (k + 1)G − G T P(k + 1) H [ R + H T P (k + 1) H ] −1 H T P (k + 1)G
(5)
La matriz P (k ) de la ecuación (6) puede determinarse recursivamente partiendo de la siguiente condición terminal para k = N :
P( N ) = S Hasta llegar a la condición inicial P (0) para k = 0 .
M.Sc. Ricardo Rodríguez B
-3-
(6)
Ley de control óptima: (7)
u (k ) = − K (k ) x(k ) Matriz de ganancia del controlador:
K (k ) = R −1 H T (G T ) −1 [P(k ) − Q ]
(8)
Función de costo mínima:
J min =
1 T x ( 0) P ( 0) x ( 0 ) 2
(9)
Ejemplo 1 Considere un sistema de control definido por:
x(k + 1) = 0.3679 x(k ) + 0.6321u (k ) Determinar la ley de control optimal para minimizar el índice de performance
J=
[
9 1 [x(10)]2 + 1 ∑ x 2 (k ) + u 2 (k ) 2 2 k =0
]
En este ejemplo S = 1 y Q = 1 . También, determine el mínimo valor para el índice de performance J . Solución en Código Matlab
G=0.3679;H=0.6321;S=1;Q=1;R=1; N=11; P(N)=S; x0=1; x(1)=1; Pnext=S; % Ecuación (5) for i = N:-1:1, P = Q + G'*Pnext*G - G'*Pnext*H*inv(R + H'*Pnext*H)*H'*Pnext*G; p(i) = P;
M.Sc. Ricardo Rodríguez B
-4-
Pnext = P; end % Ecuación (8) for i = N:-1:1 K = inv(R)*H'*inv(G')*(p(i)-Q); k(i) = K; end % Ecuación (3) y (7) for i = 1:N-1, xnext = (G - H*k(i))*x(i); x(i+1) = xnext; end % Ecuación (7) for i = 1:N, u(i) = - k(i)*x(i); end % Imprime P, K, x, y u P=[p(1) p(2) p(3) p(4) p(5) p(6) p(7) p(8) p(9) p(10) p(11)]; M0= p'; M1= k'; M2= x'; M3= u'; M=[M0 M1 M2 M3]; disp(M) %
p
k
x
u
% 1.1037
0.1781
1.0000 -0.1781
% 1.1037
0.1781
0.2553 -0.0455
% 1.1037
0.1781
0.0652 -0.0116
% 1.1037
0.1781
0.0166 -0.0030
% 1.1037
0.1781
0.0042 -0.0008
% 1.1037
0.1781
0.0011 -0.0002
% 1.1037
0.1781
0.0003
0.0000
% 1.1036
0.1781
0.0001
0.0000
% 1.1032
0.1773
0.0000
0.0000
% 1.0967
0.1662
0.0000
0.0000
% 1.0000
0
0.0000
0
tk = 0:10; subplot(211), plot(tk,p,'o'), ylabel('\bf P(k)'), title('\bf Respuesta de P(k)') axis([0 10 0 1.2]); subplot(212), plot(tk,k,'+'), xlabel('\bf t_k'), ylabel('\bf K(k)'), title('\bf Respuesta de K(k)') axis([0 10 0 0.3]);
M.Sc. Ricardo Rodríguez B
-5-
Ejemplo 2 Considere un sistema de control definido por:
1 1 1 1 x(k + 1) = x(k ) + u (k ), x(0) = 0 0 1 0 Determinar la secuencia de control optimal u (k ) para minimizar el índice de performance
J=
1 1 7 x' (8) Sx(8) + ∑ [x' (k )Qx(k ) + u ' (k ) Ru (k )] 2 2 k =0
En este ejemplo:
1 0 1 0 Q= , R = 1, S = 0 1 0 1 Solución De la ecuación (5), la ecuación de Riccati es:
P (k ) = Q + G T P(k + 1)G − G T P (k + 1) H [ R + H T P (k + 1) H ] −1 H T P(k + 1)G 1 0 1 1 p11 (k + 1) = + 0 1 1 0 p 21 (k + 1) 1 1 p11 (k + 1) − 1 0 p 21 (k + 1) p (k + 1) * [1 0] 11 p 21 (k + 1)
(c 4.4)
p12 (k + 1) 1 1 p 22 (k + 1) 1 0
p12 (k + 1) 1 p11 (k + 1) (1) + [1 0] p 22 (k + 1) 0 p 21 (k + 1)
p12 (k + 1) 1 p 22 (k + 1) 0
−1
p12 (k + 1) 1 1 p 22 (k + 1) 1 0
La condición terminal para P(k ) está dada por la ecuación (6) y rescribe:
1 0 P ( N ) = P (8) = S = 0 1 Ahora calculamos P (k ) hacia atrás desde P (7) hasta P (0) , usando la ecuación de Riccati M.Sc. Ricardo Rodríguez B
-6-
1 0 1 1 1 0 1 1 P (7 ) = + 0 1 1 0 0 1 1 0 −1
1 1 1 0 1 1 0 1 1 0 1 1 − (1) + [1 0] [1 0] 1 0 0 1 0 0 1 0 0 1 1 0 5 1 2.5 0.5 = 2 2 = 1 3 0.5 1.5 2 2 1 0 1 1 2.5 0.5 1 1 P ( 6) = + 0 1 1 0 0.5 1.5 1 0 −1
1 1 2.5 0.5 1 2.5 0.5 1 2.5 0.5 1 1 − (1) + [1 0] [1 0] 1 0 0.5 1.5 0 0.5 1.5 0 0.5 1.5 1 0 24 6 7 = 3.4286 0.8571 =7 6 12 0.8571 1.7143 7 7 y así sucesivamente hasta calcular P (0) . Ahora, determinemos la matriz de ganancia del controlador, usando la ecuación (8):
K (k ) = [ R + H T P (k + 1) H ] −1 H T P (k + 1)G −1
p (k + 1) p12 (k + 1) 1 p11 (k + 1) = (1) + [1 0] 11 [1 0] p 21 (k + 1) p 22 (k + 1) 0 p 21 (k + 1) p (k + 1) + p12 (k + 1) p11 (k + 1) = 11 1 + p11 (k + 1) 1 + p11 (k + 1)
p12 (k + 1) 1 1 p 22 (k + 1) 1 0
Donde:
p (8) + p12 (8) K (7) = 11 1 + p11 (8)
p11 (8) = [0.5000 0.5000] 1 + p11 (8)
p (7) + p12 (7) K (6) = 11 1 + p11 (7)
p11 (7) = [0.8571 0.7143] 1 + p11 (7)
y así sucesivamente hasta calcular K (0) .
M.Sc. Ricardo Rodríguez B
-7-
Ahora, reemplazando la ley de control u (k ) y considerando la matriz de ganancia
K (k ) = [K 1 (k ) K 2 (k )] se obtiene:
x (k + 1) = Gx ( k ) + Hu ( k ) = [G − HK ( k )] x[k ] 1 1 1 x (k ) = − [K 1 ( k ) K 2 ( k )] 1 1 0 0 x 2 (k ) 1 1 K 1 ( k ) K 2 (k ) x1 ( k ) = − 0 x 2 ( k ) 1 0 0 1 − K 1 ( k ) 1 − K 2 ( k ) x1 ( k ) = x (k ) 1 0 2
1 0
Pudiendo obtenerse x(k ) , donde k = 0,1,2,...,7 y siendo el estado inicial x (0) = Veamos:
1 − 1 1 − 0.7913 1 0 0.2087 1 0 k = 0 ⇒ x(1) = = 0 = 1 0 0 0 1 1 1 − 0.9999 1 − 0.7913 0 0.0001 0.2087 0 0.2087 k = 1 ⇒ x(2) = = 1 = 1 1 0 0 1 0.0000 y así sucesivamente hasta obtener x(8) . Finalmente, se obtiene la secuencia del control óptimo u (k ) .
u (k ) = − K (k ) x(k ) 1 k = 0 ⇒ u (0) = − K (0) x(0) = −[1 0.7913] = −1.0000 0 0 k = 1 ⇒ u (1) = − K (1) x (1) = −[0.9999 0.7913] = −0.7913 1 En forma similar se obtiene u (2), u (3),...u (8) .
M.Sc. Ricardo Rodríguez B
-8-
Programa en Matlab G = [1 1;1 0]; H = [1;0]; Q = [1 0;0 1]; R = 1; S = [1 0;0 1]; x0 = [1;0]; N = 9; p11(N) =1; p12(N) = 0; p22(N) = 1; x1(1) = 1; x2(1) = 0; Pnext = S; for i = N-1:-1:1 P = Q + G'*Pnext*inv(eye(2)+H*inv(R)*H'*Pnext)*G; p11(i) = P(1,1); p12(i) = P(1,2); p22(i) = P(2,2); Pnext = P; end for i = N:-1:1 K = inv(R)*H'*inv(G')*([p11(i) p12(i);p12(i) p22(i)]-Q); k1(i) = K(1); k2(i) = K(2); end for i =1:N-1 xnext = (G-H*[k1(i) k2(i)])*[x1(i);x2(i)]; x1(i+1) = xnext(1); x2(i+1) = xnext(2); end for i = 1:N u(i) = -[k1(i) k2(i)]*[x1(i);x2(i)]; end % ******* Imprimiendo P, K, x, and u *********** P = [p11;p12;p12;p22]; K = [k1;k2]'; x = [x1;x2]; %k
9
8
7
6
5
4
3
2
1
% p11 3.7913 3.7911 3.7905 3.7877 3.7740 3.7097 3.4286 2.5000 1.0000 % p12 1.0000 0.9999 0.9997 0.9986 0.9932 0.9677 0.8571 0.5000 0 % p21 1.0000 0.9999 0.9997 0.9986 0.9932 0.9677 0.8571 0.5000 0 % p22 1.7913 1.7913 1.7911 1.7905 1.7877 1.7742 1.7143 1.5000 1.0000
M.Sc. Ricardo Rodríguez B
-9-
% k
K11
K12
% 9 1.0000
0.7913
% 8 0.9999
0.7913
% 7 0.9997
0.7911
% 6 0.9986
0.7905
% 5 0.9932
0.7877
% 4 0.9677
0.7742
% 3 0.8571
0.7143
% 2 0.5000
0.5000
% 1
0
%k 1
0 2
3
4
5
6
7
8
9
% x1 1.0 0.0000 0.2087 0.0001 0.0437 0.0003 0.0099 0.0015 0.0057 % x2 0
1.0000 0.0000 0.2087 0.0001 0.0437 0.0003 0.0099 0.0015
% u -1.0 -0.7913 -0.2087 -0.1651 -0.0435 -0.0342 -0.0087 -0.0057 0
1.3 Control Óptimo Cuadrático Estacionario Cuando la dinámica del sistema de control evoluciona hasta un tiempo N infinito, la solución del control óptimo cuadrático pasa a ser una solución de estado estacionario. En este caso, la ganancia K (k ) se convierte en una matriz constante K . Para N infinito, el término x T ( N ) S x( N ) de la ecuación (2) desaparece debido a que x(∞) = 0 . Función de costo:
J=
[
1 ∞ T ∑ x (k ) Q x (k ) + u T (k ) R u (k ) 2 k =0
]
(10)
Ecuación de Riccati en estado estacionario:
P = Q + G T PG − G T PH [ R + H T PH ] −1 H T PG
M.Sc. Ricardo Rodríguez B
-10-
(11)
Matriz de ganancia del controlador:
K = [ R + H T PH ] −1 H T PG
(12)
u (k ) = − K x(k )
(13)
Ley de control óptima:
Función de costo mínima:
J min =
1 T x ( 0) P ( 0) x ( 0 ) 2
(14)
El diagrama de bloques del sistema del control óptimo de estado estacionario se representa en la Figura 4.1, en donde se asume que todos los estados se encuentran disponibles. u (k )
z −1
H
x(k )
G −K
Figura 1. Sistema de control óptimo en lazo cerrado Para operación satisfactoria del sistema de lazo cerrado mostrada en dicha figura, todas las raíces de su ecuación característica:
det[ zI − G + HK ] = 0 Deben posicionarse dentro del círculo unitario.
M.Sc. Ricardo Rodríguez B
-11-
(15)
1.4 El Regulador Óptimo Proporcional El regulador óptimo es un sistema de control realimentado, en donde la salida controlada sigue a una señal de referencia r (k ) = u (k ) constante, donde u (k ) es la función escalón. Restringiremos nuestro tratamiento a sistemas univariables. La estructura de este regulador es aplicable a procesos que poseen un comportamiento integral. En la Figura 2 muestra el esquema de un regulador para la variable de estado x 2 , empleando una ley de control de realimentación de estados de la forma u = − Kx .
r (k )
u (k ) K2
x( k + 1) = Gx( k ) + Hu ( k )
C
y (k ) = x2 (k )
K1 K3
Kn
Figura 2. Esquema del regular optimo proporcional Para una salida arbitraria por ejemplo x 2
u (k ) = − K 1 x1 (k ) − K 3 x3 (k ) − ... − K n x n (k ) + K 2 r (k )
(16)
= − Kx(k ) + K 2 r (k ) Reemplazando u ( k ) en la ecuación de estado del proceso:
x(k + 1) = Gx(k ) + Hu (k ) = Gx(k ) + H [− Kx(k ) + K 2 r (k )]
(17)
x(k + 1) = [G − HK ]x(k ) + HK 2 r (k )
(18)
Empleando la transformada z a la ecuación anterior, la función de transferencia pulso resulta: M.Sc. Ricardo Rodríguez B
-12-
zX ( z ) = [G − HK ]X ( z ) + HK 2 R( z ) →
X ( z )[zI − G + HK ] = HK 2 R ( z )
(19)
Luego.
X ( z ) = [zI − G + HK ] HK 2 R ( z ) −1
(20)
Y ( z ) = CX ( z )
(21)
La salida viene dada por:
De estas dos últimas dos ecuaciones obtenemos la función de transferencia pulso:
Y ( z ) = C [zI − G + HK ] HK 2 R( z ) −1
Donde R ( z ) =
(22)
z , aplicando el teorema del valor final obtenemos: z −1
lim(1 − z −1 ) y ( z ) = lim(1 − z −1 )C [zI − G + HK ] HK 2 −1
z →1
z →1
z −1 = C [zI − G + HK ] HK 2 z −1
(23)
La condición para que y = R es que C [zI − G + HK ] HK 2 = 1 , que no siempre se −1
cumple. Por lo tanto, es necesario afectar a la señal de referencia R por una ganancia g de modo que:
gC [zI − G + HK ] Hk 2 = 1 −1
(24)
1.5 Selección de las Matrices de Ponderación De la función de costo dada en la ecuación (10):
J=
1 ∞ T [ x (k )Qx(k ) + u T (k ) Ru (k )] ∑ 2 k =0
Observamos que:
M.Sc. Ricardo Rodríguez B
-13-
(25)
R : Matriz hermitiana, pondera la señal de control u (k ) .
Q : Matriz hermitiana, pondera el vector de estado x(k ) . Por conveniencia, las matrices R y Q deben tomar la forma diagonal, así:
r1 0 L 0 0 r 0 2 R= ; M L O M 0 0 L rp
q1 0 Q= M 0
0 0 q2 L O M 0 L qn 0
L
Donde: •
Los elementos r1 , r2 ,..., rp deben ser todos positivos para que R sea una matriz simétrica definida positiva (d.p.).
•
Los elementos q1 , q 2 ,..., q p deben ser positivos y algunos de ellos nulos para que
Q sea una matriz simétrica semidefinida positiva (s.d.p.). Cada elemento qi ó ri dará un peso correspondiente a cada variable de estado xi o a cada señal de control u i , respectivamente. El criterio para escoger los pesos está en relación con la importancia que le demos a cada variable o señal en cuestión. Regla práctica: Para el caso del observador de estados, las matrices de ponderación Re y Qe deben ser elegidas de tal forma que la respuesta del observador sea dos o tres veces más rápida en comparación con la respuesta del proceso. Generalmente para que esto ocurra, los elementos de Re deben ser bastantes menores que los elementos de Qe . Ejemplo 3 Sea la función de transferencia entre la velocidad y la tensión de entrada al motor de corriente continua es:
θ& ( s ) V (s)
M.Sc. Ricardo Rodríguez B
=
K ( Js + b)( Ls + R ) + K 2
-14-
(26)
R
L i V
+ -
Tm
Ve
+
B
-
J
Figura 3. Sistema motor DC Aplicando la ley de mallas de Kirchhoff:
V = Ri + L
di + Ve dt
(27)
El voltaje contraelectromotriz es: •
Ve = K e θ
(28)
Reemplazando (28) en (27).
V = Ri + L
• di + Ke θ dt
(29)
Aplicando la segunda ley de Newton para el sistema rotatorio obtenemos:
J
d 2θ dθ +B = Tm 2 dt dt
(30)
El torque producido en el eje del motor viene dado por la ecuación:
Tm = K m i
M.Sc. Ricardo Rodríguez B
-15-
(31)
Reemplazando (31) en (30).
J
d 2θ dθ +B = K mi 2 dt dt
(32)
En la que podemos observar que no posee comportamiento integral. Eligiendo: las variables de estado:
x1 = θ& ; x2 = I ; salida : y = x1
(33)
y reemplazando dichas variables de estado en las ecuaciones en (29) y (32), y haciendo
K m = K e = K , se obtienen: Jx&1 + bx1 = Kx 2
(34)
V = Rx 2 + Lx& 2 + Kx1 Ordenando adecuadamente las dos últimas ecuaciones se obtienen:
b K x1 + x 2 J J K R 1 x& 2 = − x1 − x 2 + V L L L
x&1 = −
(35)
La ecuación de estado en forma matricial:
b x&1 − J x = K & 2 − L
K 0 J x1 + 1 V R − x 2 L L
(36)
La ecuación de salida del proceso queda representada de la siguiente forma:
x y = [1 0] 1 + DV ; x2
M.Sc. Ricardo Rodríguez B
-16-
D = [0]
(37)
Código Matlab %% Parámetros J = 0.01; b = 0.1; K = 0.01; R = 1; L = 0.5; %% Matrices de Estado A = [-b/J K/J -K/L -R/L]; B = [0;1/L];C = [1 0]; D = [0]; Hc=ss(A,B,C,D); %% Verificando la Controlabilidad y Observabilidad M = [B A*B]; N = [C' A'*C']; rank(M); % 2 --> c.c rank(N); % 2 --> c.o %% Discretizando T = 0.05; Hd = c2d(Hc,T,'zoh'); %% Matrices de Ponderación Q = [100 0 0 1]; R = [0.1]; %% Ganancia Optima K [G,H,Cd,Dd]=ssdata(Hd); [K,P,E] = dlqr(G,H,Q,R); k1 = K(1); %% Respuesta sin corrección de r(k) x = [0;0]; N = 60; for k=1:N rx=1; Vx(k) = -K*x + k1*rx; x = G*x + H*Vx(k); yx(k) = x(1); end %% Respuesta Corregida g = 1/(C*inv(eye(2)-G+H*K)*H*k1); x = [0;0]; N = 60; for k=1:N r=1*g;
M.Sc. Ricardo Rodríguez B
-17-
V(k) = -K*x + k1*r; x = G*x + H*V(k); y(k) = x(1); end %% Graficos tk=0:N-1; subplot(311) stairs(tk*T,yx,'m','LineWidth',2) axis([0 2 0 0.15]) ylabel('\bf y(k) rad/seg') subplot(312) stairs(tk*T,y,'r','LineWidth',2) axis([0 2 0 1.2]) ylabel('\bf \omega rad/seg') subplot(313) stairs(tk*T,V,'k','LineWidth',2) axis([0 2 0 40]) xlabel('\bf t_k') ylabel('\bf V(k) Voltios')
Figura 4. Respuesta debido a una entrada escalón y señal de control.
M.Sc. Ricardo Rodríguez B
-18-
1.6 Diseño del Observador Óptimo Cuadrático Cuando tan sólo se pueden medir en forma directa algunas de las variables del vector de estado, entonces es necesario estimar dicho vector de estado x(k ) , que nos permita hallar un vector de estado estimado xˆ (k ) . El diseño del estimador u observador de estados discreto se muestra en la Figura 5. x(k )
u (k )
H
z −1
C
y (k )
G
− Ke H
z −1
xˆ (k )
C
G
Figura 5. Diagrama de bloques del observador de estados. Donde:
Ke
: Matriz de ganancia de realimentación del observador con dimensión n x m.
C
: Matriz de salida de dimensión mxn .
xˆ (k )
: Vector de estado estimado de dimensión n .
yˆ (k )
: Vector de salida estimado de dimensión m .
Ecuación de error del observador:
e(k + 1) = [G − K e C ] e(k );
e(k ) = x(k ) − xˆ (k )
(38)
Ecuación característica:
det[ zI − G + K e C ] = 0
M.Sc. Ricardo Rodríguez B
-19-
(39)
-
Las raíces de la ecuación característica deben posicionarse dentro del círculo unitario para operación satisfactoria del observador.
-
K e debe ser escogida apropiadamente para que el error tienda a cero.
-
El proceso debe ser completamente observable, condición que se consigue aplicando el criterio de observabilidad.
Ecuaciones adicionales del Observador Ecuación de estado:
α ( k + 1) = G T α ( k ) + C T β ( k )
(40)
β (k ) = − K eT α (k )
(41)
Ley de control:
Función de costo:
J=
[
1 ∞ α T (k ) Q α (k ) + β T (k ) R β (k ) ∑ 2 k =0
]
(42)
Ecuación de Riccati:
Pe = Qe + GPe G T − GPe C T [ Re + CPe C T ]−1 CPe G T
(43)
Matriz de ganancia K e :
K e = [ Re + CPe C T ]−1 CPe G T
(44)
La determinación de Pe se consigue siguiendo el mismo procedimiento que para P en la ecuación (11), para lo cual se debe usar la siguiente ecuación recursiva:
Pe (k + 1) = Qe + GPe (k )G T − GPe (k )C T [ Re + CPe (k )C T ]−1 CPe (k )G T M.Sc. Ricardo Rodríguez B
-20-
(45)
Ejemplo 4 Diseñar un observador optimo para el proceso del motor DC del Ejemplo 3, asumiendo que se requieren observar los estados x1 , x 2 , y x3 . Código Matlab %% Parámetros J = 0.01; b = 0.1; K = 0.01; R = 1; L = 0.5; %% Matrices de estado A = [-b/J K/J 0 -K/L -R/L 0 1 0 0]; B = [0;1/L;0]; C = [0 0 1]; D = [0]; T = 0.05; [G,H,C,D] = c2dm(A,B,C,D,T,'zoh'); %% Condición inicial Pe =zeros(3,3); Qe = [1 0 0 010 0 0 1]; Re = [1]; %% Calculo de Pe for k=1:40 Pe = Qe + G*Pe*G' - G*Pe*C'*inv(Re + C*Pe*C')*C*Pe*G'; pe11(k) = Pe(1,1); pe21(k) = Pe(2,1); pe31(k) = Pe(3,1); end %% Ploteos t = 0:39; plot(t,pe11,'-.k','LineWidth',2); hold
M.Sc. Ricardo Rodríguez B
-21-
plot(t,pe21,'--m','LineWidth',2); plot(t,pe31,'LineWidth',2); xlabel('\bf Muestras'); ylabel('\bf Elementos de Pe') grid % Ganancia del Observador Ke = inv(Re + C*Pe*C')*C*Pe*G';
Figura 6. Elementos de la ecuación de Riccati. 1.7 El Regulador Óptimo Proporcional Integral Para procesos que no poseen propiedades integradoras, la inclusión de acción integral en el sistema de control permite obtener un error estacionario nulo. La figura 7 ilustra un regulador óptimo para sistemas univariables. r (k )
v(k )
u (k )
z −1
G
K
Figura 7. El regulador proporcional integral.
M.Sc. Ricardo Rodríguez B
-22-
y (k )
x(k ) z −1
H
KI
C
Ecuaciones de estado y de salida del proceso:
x ( k + 1) = Gx (k ) + Hu ( k ); y ( k ) = Cx ( k )
(46)
Ley de control:
u (k ) = − K x(k ) + K I v(k )
(47)
Matriz de ganancia del controlador:
K = [ K1
K2 L Kn ]
(48)
Ecuación para el integrador:
v (k ) = v ( k − 1) + r ( k ) − y ( k ) ⇒ v ( k + 1) = v ( k ) + r ( k + 1) − y ( k + 1) = v ( k ) + r ( k + 1) − C[Gx ( k ) + Hu ( k )] = (1 − CHK I )v ( k ) + ( −CG + CHK ) x ( k ) + r ( k + 1)
(49)
Empleando las ecuaciones las ecuaciones (46) y (47) obtenemos:
x ( k + 1) = Gx ( k ) + H [ − Kx ( k ) + K I v ( k )
(50)
= (G − HK ) x ( k ) + HK I v ( k ) y de las ecuaciones (49), (50) y (46) deducimos:
HK I x ( k ) 0 x (k + 1) G − HK v ( k + 1) = − CG + CHK 1 − CHK v ( k ) + 1 r ( k + 1) I x(k ) y ( k ) = [C 0] v(k )
M.Sc. Ricardo Rodríguez B
-23-
(51)
En el estado de equilibrio (para k → ∞ ), los valores de x(k ) , u (k ) y v (k ) toman valores estacionarios x(∞) , u (∞) y v(∞) . Entonces, la ecuación de estado de (51) se convierte en:
HK I x (∞ ) 0 x (∞ ) G − HK v (∞ ) = − CG + CHK 1 − CHK v (∞ ) + r I
(52)
x ( k ) − x (∞ ) = xe ( k )
(53)
Si definimos:
v ( k ) − v (∞ ) = ve ( k ) Restando la ecuación (52) de la ecuación de estado de (51) y usando las relaciones de (53) se obtiene:
HK I xe ( k ) xe ( k + 1) G − HK v ( k + 1) = − CG + CHK 1 − CHK v ( k ) I e e x (k ) 0 xe ( k ) K G [− K K I ] e = + − CG I ve ( k ) − CH ve (k )
(54)
Que finalmente se rescribe como:
~ξ (k ) + H ~ω (k ) ξ (k + 1) = G donde :
(55)
xe ( k ) ; ve ( k )
ω (k ) = − K~ξ (k ) ; ξ (k ) = ~ (k ) = H ; H − CH
K~ (k ) = [K
0 G ~ G (k ) = − CG I
− KI ] ~
La ecuación de Riccati y la ecuación de ganancia del controlador K para el regulador son:
[
~+G ~T P ~ −G ~T P ~=Q ~G ~H ~R ~+H ~T P ~H ~ P ~ ~+H ~T P ~H ~ −1 H ~T P ~G K~ = R
[
M.Sc. Ricardo Rodríguez B
]
-24-
]
−1
~ ~T P ~G H (56)
Ejemplo 5 Diseñar un regulador proporcional integral óptimo estacionario que sea capaz de estabilizar la velocidad angular del eje del motor DC a 1rad/seg, con las siguientes especificaciones: -
Tiempo de estabilización menor que 2 segundos
-
error en estado estacionario menor al 1%
-
Sobre impulso de salida menor al 5%
Código Matlab %% Parámetros del sistema J = 0.01; b = 0.1; K = 0.01; R = 1; L = 0.5; %% Matrices de estado A = [-b/J K/J -K/L -R/L]; B = [0;1/L]; C = [1 0]; D = [0]; %% Verificando la Controlabilidad y Observabilidad M = [B A*B]; N = [C' A'*C']; rank(M); % 2 -> CC rank(N); % 2 -> CO %% Convirtiendo a discreto T = 0.05; [G,H,C,D] = c2dm(A,B,C,D,T,'zoh'); Gtilde = [G zeros(2,1) -C*G eye(1,1)]; Htilde = [H -C*H]; %% Matrices de ponderacion Q = [1 0 0 0 0.1 0
M.Sc. Ricardo Rodríguez B
-25-
0 0 2]; R = [0.01]; %% Ganancia óptima Ktil [Ktil,Ptil,E] = dlqr(Gtilde,Htilde,Q,R); K = [Ktil(1) Ktil(2)]; KI = -Ktil(3); %% Respuesta al escalón unitario x = [0;0]; yi=0; v=0; N = 60; r=1; for k=1:N v = v + r - yi; V(k) = -K*x + KI*v; x = G*x + H*V(k); y(k) = x(1); yi = y(k); end %% Ploteo tk=0:59; subplot(211) stairs(tk*T,y,'k','LineWidth',2) ylabel('\bf y(t_k) (rad/s)') grid; title('\bf Respuesta al escalón unitario') subplot(212) stairs(tk*T,V,'m','LineWidth',2) ylabel('\bf V(t_k) (voltios)') xlabel('\bf t_k') title('\bf Respuesta de la señal de control') grid %% Calculo recursivo de la matriz Ptilde y cálculo de Ktilde T = 15; Ptilde = zeros(3,3); for i=1:T Ptilde = Q + Gtilde'*Ptilde*Gtilde - Gtilde'*Ptilde*Htilde*... inv(R+Htilde'*Ptilde*Htilde)*Htilde'*Ptilde*Gtilde; end Ktilde = inv(R + Htilde'*Ptilde*Htilde)*Htilde'*Ptilde*Gtilde;
M.Sc. Ricardo Rodríguez B
-26-
La respuesta debido a una entrada escalón unitario se muestra en la Figura 8, así mismo la señal de control, que para fines de implementación del sistema tendría que usar un saturador para el control del sistema.
Figura 8. El regulador proporcional integral.
[email protected]
M.Sc. Ricardo Rodríguez B
-27-