Estimación de Estados Observadores Fernando di Sciascio (2016) 1
Estimación de Estados La realimentación de los estados requiere poder medirlos pero normalmente no tenemos acceso directo a todos los estados. Entonces, mo implementamos la realimentación de estados? Si el sistema es observable los estados podrán ser estimados mediante un observador. Un observador es un sistema dinámi que estima los estados de la planta a partir de las mediciones de las entradas y las salidas. 2
Estimación de Estados: Observador a lazo abierto Cómo nstruir un observador? La figura muestra un camino intuitivo. Copiar el modelo de la planta y dejar rrer los sistemas simultáneamente para obtener una estimación de los estados xt ˆ( ). El problema n este diseño a lazo abierto es que la planta y su pia en el observador tienen ndiciones iniciales distintas, la estimación normalmente no nverge a los valores verdaderos. 3
Estimación de Estados: Observador de realimentación Esta estructura a lazo cerrado es mucho mejor. Se realimenta el error de salida para rregir. Eligiendo apropiadamente la matriz de ganancia L, se puede ajustar el observador para que los estados estimados nverjan asintóticamente a los estados verdaderos. 4
Estimación de Estados: Estructura final del observador Reordenando el diagrama en bloques anterior, se obtiene la estructura final del observador. Si el sistema es observable, se puede elegir la ganancia L para ubicar los autovalores de ( A LC ) arbitrariamente. Obviamente se busca que el observador sea estable! Del diagrama en bloques se obtienen las ecuaciones del observador xˆ ( t) Axˆ ( t) Bu( t) L[ y( t) Cxˆ ( t)] ( A LC) xˆ ( t) Bu( t) Ly( t) (O) 5
Estimación de Estados De la ecuación del observador: ˆ Y de las ecuaciones de estado de la planta: Podemos obtener el error del estimador: x() t x( t) ( A LC) xˆ( t) Bu( t) Ly( t ) x( t) Ax( t) Bu( t) y( t) Cx( t) x x( t) xˆ ( t ) x( t) xˆ ( t) Ax( t) Bu( t) Axˆ ( t) Bu( t) Ly [ ( t) Cxˆ ( t)] Ax [ ( t) xˆ( t)] LC[ x( t) xˆ( t)] ( A LC)[ x( t) xˆ ( t)] ( A LC) x( t) x() t ( A LC) x( t ) Si la matriz ( A LC ) es Hurwitz x ( t) x( t) xˆ ( t) 0, por lo tanto xˆ( t) x( t ). El error nverge asintóticamente a cero. 6
Diseño del Observador: Para diseñar el observador se utilizan las matrices A, B y C de la planta y se forma la ecuación del estimador xˆ( t) ( A LC) xˆ( t) Bu( t) Ly( t ) Para que el observador sea estable el vector lumna L se debe elegir para que los autovalores de ( A LC ) tengan la parte real negativa. Cómo se elige L? Podemos aprovechar la dualidad y utilizar el mismo procedimiento que vimos para el diseño de la ganancia de realimentación de estados K para que la matriz (A- BK) sea Hurwitz. Observar que la matriz transpuesta ( A LC) T A T C T L T Adual Bdual K dual Elegimos K dual para que Adual Bdual K dual sea Hurwitz, finalmente T L K dual 7
El problema de diseñar un observador es idénti (vía modelo dual) al de diseñar la realimentación K de estados. Vimos que el problema de hallar K era sencillo si el modelo estaba en la forma canónica ntrolable. Ahora por ser el problema dual el problema de hallar L es sencillo si el modelo está en la forma canónica observable. Ejemplo de Diseño de un Observador x( t) Ax( t) Bu( t) y( t) Cx( t) 3 1 0 A, B, C 1 0 0 5 1 Los valores propios (polos) del observador los queremos en P ( s) ( s 10)( s 10) s 20s 100 d Los polos reales dobles y rápidos, al ser reales la respuesta es amortiguada. 2 8
Construimos el polinomio característi y lo igualamos al deseado. s 3 l1 1 2 Pc( s) si A LC s ( l1 8) s (5l 1 l2 15) l s 5 2 Pc( s) Pcd( s) 2 2 ( 1 8) 1 2 s s l s (5l l 15) 20s l 12, l 1 2 25 100 L 12 25 Alternativamente podemos utilizar la fórmula de Ackermann 1 1 C 0 1 0 0 2 L ( A) ( A 20A 100 I ) CA 1 3 1 1 2 1 3 1 3 1 100 0 1 0 0 20 0 5 0 5 0 100 3 1 1 Simulamos para u( t) 0( regulador), x (0) 2, x (0) 3 1 2 9 12 25
clear, clc, close all A=[-3 1;0-5]; B=[0 1]'; C=[1 0];D=0; lambdas_obs=[-10-10]; %Autovalores deseados del observador L=acker(A',C',lambdas_obs)'; planta=ss(a,b,c,d); x0=[2-3]; % x0 son los valores iniciales de los estados t=[0:0.01:1.5];u= zeros(length(t),1); [y,t,x]=lsim(planta,u,t,x0); % Se simula la planta para u(t)=0 y x0 observer=ss(a-l*c,[b L],eye(length(A)),0); [ye,t,xe]=lsim(observer,[u x(:,1)],t,zeros(1,length(a))); plot(t,x(:,1),'--k',t,x(:,2),'--b',t,xe(:,1),'k',t,xe(:,2),'b','linewidth',2) legend('x1(t)','x2(t)','xe1(t)','xe2(t)'), grid on Observaciones: 1) [y,t,x]=lsim(planta,u,t,x0) simula la planta para u(t) = 0 y ndiciones iniciales de los estados x 0 = x(0). Se puede reemplazar por el mando initial (This MATLAB function calculates the unforced response of a state-space (ss) model sys with an initial ndition on the states specified by the vector x0). [y,t,x] = initial(planta,x0,t) 2) observer=ss(a-l*c,[b L],eye(length(A)),0) crea el modelo en estados del observador, puede reemplazarse por el mando estim. observer = estim(planta,l,[1],[1]); % Igual a ss(a-l*c,[b L],eye(length(A)),0); 10
clear, clc, close all A=[-3 1;0-5]; B=[0 1]'; C=[1 0];D=0; lambdas_obs=[-10-10]; %Autovalores deseados del observador L=acker(A',C',lambdas_obs)'; planta=ss(a,b,c,d); x0=[2-3]; % x0 son los valores iniciales de los estados t=[0:0.01:1.5];u= zeros(length(t),1); [y,t,x] = initial(planta,x0,t); observer = estim(planta,l,[1],[1]); % Igual a ss(a-l*c,[b L],eye(length(A)),0); [ye,t,xe]=lsim(observer,[u x(:,1)],t,zeros(1,length(a))); plot(t,x(:,1),'--k',t,x(:,2),'--b',t,xe(:,1),'k',t,xe(:,2),'b','linewidth',2) legend('x1(t)','x2(t)','xe1(t)','xe2(t)'), grid on 11
Aunque la ntrolabilidad es invariante n respecto a la realimentación de estados, la observabilidad no lo es, mo se veremos en el siguiente ejemplo. Ejemplo: El sistema 1 2 0 x( t) x( t) u( t) y t 3 1 1 ( ) 1 2 x( t) es ntrolable y observable, ya que las matrices de ntrolabilidad [ ] 0 2 B AB y observabilidad 1 1 C CA 1 2 7 4, son no singulares. El ntrol por realimentación de estados u( t) r( t) [3 1] x( t ) lleva al sistema a lazo cerrado 1 2 0 x( t) x( t) u( t) y t 0 0 1 ( ) 1 2 x( t) 12
La matriz de ntrolabilidad de sistema a lazo cerrado es cl 0 2 1 0, que es no singular y mprueba que el sistema realimentado es ntrolable. Sin embargo, la matriz de observabilidad ahora es 1 2 cl 1 2 por lo que el sistema n esta realimentación no es observable., que es singular, La observabilidad de un sistema no es invariante n respecto a realimentación de estados. 13
Realimentación de los Estados Estimados 14
Realimentación de los estados estimados Consideremos nuevamente la planta: x( t) Ax( t) Bu( t) y( t) Cx( t) Si (A,B) es ntrolable, la realimentación de estados u=r-kx asignará los autovalores de (A-BK) en cualquier posición deseada. Si las variables de estado no están disponibles para la realimentación pero (A,C) es observable, podemos nstruir un observador n autovalores arbitrarios. xˆ( t) ( A LC) xˆ( t) Bu( t) Ly( t ) u( t) r( t) Kxˆ ( t ) La nexión ntrolador-observador, es efectivamente un ntrolador dinámi que realimenta la salida. 15
Realimentación de estados estimados 16
Es nveniente agregar un prempensador para reducir el error en estado estacionario ante una entrada escalón. 17
Las ecuaciones que describen el sistema mpleto (juntando las del sistema y las del observador y n ˆ x( t) Ax( t) Bu( t) y( t) Cx( t) u( t) Fr( t) Kxˆ ( t) xˆ( t) ( A LC ) xˆ( t) Bu( t) Ly( t) u( t) r( t) Kx( t ) son: x( t) Ax( t) BKxˆ ( t) BFr( t) xˆ( t) LCx( t) ( A LC BK ) xˆ( t) BFr( t) xt () A BK x() t BF rt () xt ˆ () LC A LC BK xˆ () t BF A cl B cl y( t) C 0 C cl xt () xt ˆ( ) 18
clear, clc, close all; A=[-3 1;0-5]; B=[0 15]'; C=[1 0]; lambdas_nt=[-2+2*i -2-2*i];%Autovalores deseados en -2+-j2 para el ntrolador lambdas_obs=[-10-10]; %Autovalores dobles en -10 para el observador K=acker(A,B,lambdas_nt); L=acker(A',C',lambdas_obs)'; Alc=[A -B*K; L*C A-L*C-B*K]; F=8/15; Bcl=[B*F; B*F]; Ccl=[C zeros(1,2)]; Dcl=0; planta_lc=ss(alc,bcl,ccl,dcl); %Modelo de la planta a lazo cerrado t=[0:0.01:3]; [y,t,x]=lsim(planta_lc,ones(1,length(t)),t,[0-3 0 0]); x=[x(:,1) X(:,2)]; xe=[x(:,3) X(:,4)]; % F es la prempensación para que la respuesta al escalón este escalada se calcula de la % siguiente manera: se hace F=1 y se rre la simulación, luego se calcula el F necesario n el mando dcgain(planta_lc): F=1/dcgain(planta_lc) plot(t,x(:,1),'--k',t,x(:,2),'--b',t,xe(:,1),'k',t,xe(:,2),'b','linewidth',2) legend('x1(t)','x2(t)','xe1(t)','xe2(t)'), grid on figure; plot(t,y,'b','linewidth',2), legend('salida y(t)'), grid on; axis([0 3 -.25 1.25]) 19
Las ecuaciones anteriores se pueden reescribir en función del error de estimación x( t) x( t) xˆ( t) xˆ( t) x( t) x( t ) x( t) ( A BK) x( t) BKx( t) BFr( t) x( t) ( A LC ) x( t) y( t) Cx( t) xˆ( t) x( t) x( t) x( t) A BK BK x( t) BF x( t) 0 A LC x( t) 0 rt () A cl B cl y( t) C 0 C cl xt () xt () Se llega al mismo modelo equivalente mediante la transformación lineal x( t) x( t) I 0 x( t) x( t) P x( t) x( t) xˆ ( t) I I xˆ ( t) xˆ ( t ) 20
Se observa que la matriz del sistema es triangular (por bloques). El polinomio característi es: si ( A BK ) BK Pc( s) 0 0 si ( A LC ) Pc ( s ) si ( A BK ) si ( A LC ) 0 Los autovalores del sistema mpleto son la unión de los autovalores de A-BK y A-LC. Esto implica que el estimador no afecta la realimentación de estados original; tampo son afectados los autovalores del observador por la realimentación de estados. Propiedad de separación de ntrol y observación: Los diseños del ntrol por realimentación de estados y el observador pueden realizarse en forma independiente. 21
Finalmente, notemos que en la última representación del sistema: x( t) A BK BK x( t) BF rt () x( t) 0 A LC x( t) 0 la matriz de ntrolabilidad no es de rango mpleta. BF A BK BK BF BF ( A BK) BF 0 0 A LC 0 0 0 n 1 n 1 Esto se debe a que los estados xt () son no ntrolables ya que x( t) ( A LC) x( t ), no depende de rt (). Los autovalores asociados a estos estados no aparecerán en la función transferencia del sistema mpleto (rerdar que la función de transferencia solo representa la parte ntrolable y observable del sistema). x( t) ( A BK) x( t) Br( t) y( t) Cx( t) 1 G( s) C( si A BK) B 22
Como el último modelo (desaplado) es equivalente al primero este resultado es general. Nunca aparecen los polos de estimador en la Función de Transferencia a lazo cerrado. % Ejemplo A=[-3 1;0-5]; B=[0 1]'; C=[1 0];D=0;n= length(a); %Con la fórmula de Ackerman se calculan los autovalores %deseados del sistema a lazo cerrado en -2+-j2 K=acker(A,B,[-2-2*1i -2+2*1i]); %Con la fórmula de Ackerman se calculan los autovalores %deseados del observador dobles en -10 L=acker(A',C',[-10-10])'; syms s Acl=[A-B*K B*K; zeros(2,2) A-L*C]; Bcl=[B;zeros(2,1)]; Ccl=[C zeros(1,2)]; Dcl=0; Gcl_sym=Ccl*inv(s*eye(length(Acl))-Acl)*Bcl; Gcl_sym=llect(Gcl_sym,s);clc disp(['gcl(s) =' ]); pretty(gcl_sym) G s cl( ) s 2 1 4s 8 No aparecen los polos del observador 23
Función de Transferencia Observador-Controlador Queremos calcular ahora la función de transferencia njunta del observador-ntrolador Goc() s teniendo en cuenta que u( t) Kxˆ ( t ) xˆ( t) ( A LC BK) xˆ( t) Ly( t) 1 X ˆ( s) ( si A LC BK) LY( s) ˆ 1 U( s) KX( s) K( si A LC BK) LY( s ) Us () 1 Goc( s) K( si A LC BK) L Ys () 24
La matriz del ntrolador-observador A LC BK puede o no ser estable, aunque A BK y A LC se esjan estables. De hecho, en algunos casos la matriz A LC BK puede ser pobremente estable o incluso inestable. G oc () s K adj( si A LC BK) L si A LC BK Esto se debe a que ahora los autovalores del observador y el ntrolador no están desaplados. El polinomio característi del observador-ntrolador es: P () s si A BK LC G oc Y el polinomio característi del sistema mpleto a lazo cerrado vimos que es: ( ) ( ) ( ) P s si A BK si A LC cl 25
Ejemplo de Observador-Controlador x( t) Ax( t) Bu( t) y( t) Cx( t) 0 1 0, A, B, C 1 0 20.6 0 1 los polos en lazo cerrado deseados para este sistema se eligen en: 1 1.8 j2.4, 2 1.8 j 2.4 La matriz de ganancias de realimentación del estado K para este caso es: K 29.6 3.6 los polos del observador se eligen dobles en: 8, 8 3 4 La matriz de ganancias del observador es L 16 84.6 26
El Sistema mpleto es: 27
La función de transferencia del ntrolador-observador es: G () s Us () K adj( si A LC BK) L Y() s si A LC BK 29.6 3.6 s 16 1 16 778.2s 3690.7 93.6 s 3.6 84.4 2 s 19.6s 151.2 28
Por ser R(s)=0 la función de transferencia del observador ntrolador puede estar el lazo de realimentación. Para R(s) = 0 la respuesta es la misma para ambas nfiguraciones para R(s) 0 la respuesta no es la misma. La script siguiente grafica la respuesta al escalón para ambas nfiguraciones (prempensadas para que la respuesta sea unitaria). 29
G=tf([1],[1 0-20.6 ]); G=tf([778.2 3690.7],[1 19.6 151.2]); F1=576/3691; F2=576/151.2; Gcl1=F1*feedback(G*G,1); Gcl2=F2*feedback(G,G); step(gcl1,gcl2) % Se ha prempensado n F1 y F2 para tener respuesta unitaria al escalón % 778.2 s + 3691 % Gcl1(s) = ------------------------------------------ % s^4 + 19.6 s^3 + 130.6 s^2 + 374.4 s + 576 % s^2 + 19.6 s + 151.2 % Gcl2(s) = ------------------------------------------ % s^4 + 19.6 s^3 + 130.6 s^2 + 374.4 s + 576 30
La función de transferencia de la planta es: Gs () N G () s 31 Cadj( si A) B D () s si A La función de transferencia del ntrolador-observador es: G () s G N () s K adj( si A LC BK) L G D () s si A LC BK G Para la nfiguración 1 (el ntrolador en serie n la planta), la función de transferencia del sistema a lazo cerrado es: G cl () s G ( s) G( s) N ( s) N ( s) 1 G ( s) G( s) D ( s) D ( s) N ( s) N ( s ) G G G G Para la nfiguración 2 (el ntrolador en la realimentación), la función de transferencia del sistema a lazo cerrado es: G cl () s Gs () G G D ( s) N ( s) 1 G ( s) G( s) D ( s) D ( s) N ( s) N ( s ) G G G G G G
En ambos casos el polinomio característi a lazo cerrado es el mismo: Pcl ( s) DG ( s) DG ( s) NG ( s) NG( s) (*) Anteriormente vimos que el polinomio característi a lazo cerrado era: Pcl ( s) si ( A BK) si ( A LC ) Pd( s) Pdob( s) n: P ( s) P ( s) d dob P ( s) si ( A BK) ( s )( s ) ( s ) d 1 2 n (**) n c n 1 c c n 1 1 0 s s s 0 P ( s) si ( A LC ) ( s )( s ) ( s ) dob n 1 n 2 2n n o n 1 o o n 1 1 0 s s s 0 Donde 1, 2,, n, son los autovalores (polos) deseados para el sistema a lazo cerrado (autovalores del ntrolador) y n+1, n+2,, 2n, son los autovalores deseados del observador de orden mpleto. 32
Ambos polinomios característis (*) y (**) deben ser iguales. D ( s) D ( s) N ( s) N ( s) P ( s) P ( s) G G G G d dob Al menzar el diseño nocemos la planta (NG(s) y DG(s)) y las especificaciones de diseño (Pd(s) y Pdob(s) a partir de los autovalores deseados a lazo cerrado y del observador) y nuestro objetivo es enntrar el ntrolador, o lo que es equivalente los polinomios NG(s) y DG(s) (indirectamente vía la teoría de variables de estado). La identidad anterior es una ecuación polinómica cuyas incógnitas son los polinomios NG(s) y DG(s). Esta ecuación polinómica es muy nocida n distintos nombres en la literatura de ntrol, se la denomina ecuación diofantina, de Aryabhatta, o de Bezout. 33
Ecuacion Diofantina-Aryabhatta-Bezout D ( s) D ( s ) N ( s) N ( s) P ( s) P ( s) G G G G d dob La function de Matlab diofantina.p (disponible en el sitio de Dropbox de la materia) devuelve los polinomios N G y D G si se le ingresa los polinomios N G, D G y nv(p d,p dob ), (rerdar que la nvolución de dos polinomios realiza el producto). D,N = diofantina D,N,nv(P,P ) G G G G d dob Para el ejemplo hallamos anteriormente que la función de transferencia del ntrolador-observador es: G () s K adj( si A LC BK) L 778.2s 3690.7 si A LC BK 2 s s 19.6 151.2 Obtenemos el mismo resultado utilizando la function diofantina.p 34
clear;clc % Datos y especificaciones A=[0 1;20.6 0]; B=[0 ; 1]; C=[1 0];D=0; %Planta en variables de estado [Ng,Dg]=ss2tf(A,B,C,D); %Numerador y denominador de la ft de la planta lambdas_nt=[-1.8+2.4*1i -1.8-2.4*1i];% Polos deseados a lazo cerrado lambdas_obs=[-8-8]; %Polos del observador % Calculamos los polinomios deseados Pd=poly(lambdas_nt); Pdob=poly(lambdas_obs); % Resolvemos la diofantina y obtenemos el numerado y denominador de la % función de transferencia del ntrolador-observador [Dg,Ng]=diofantina(Dg,Ng,nv(Pd,Pdob)), G=tf(Ng,Dg) % Da la misma función de transferencia hallada anteriormente % 778.2 s + 3691 % G = -------------------- % s^2 + 19.6 s + 151.2 G () s 778.2s 3690.7 2 s 19.6s 151.2 778.2( s 4.74) ( s 9.8 j7.43)( s 9.8 j7.43) 35
Comentarios 1. Al diseñar un sistema regulador, obsérvese que si los polos dominantes del ntrolador se locan lejos a la izquierda del eje j, los elementos de la matriz de ganancia de realimentación del estado K se harán grandes. Grandes valores de la ganancia K harán que la salida del actuador sea también grande, de manera que puede dar lugar a saturación de los actuadores. 2. También, al locar los polos del observador suficientemente lejos a la izquierda del eje j, el ntrolador-observador se hace inestable, aunque el sistema en lazo cerrado es estable. Un ntrolador observador inestable no es aceptable. 3. Si el ntrolador observador se hace inestable, se mueven los polos del observador a la derecha en el semiplano izquierdo del plano s hasta que se estabilice. También, la localización de los polos en lazo cerrado deseados puede tener que modificarse. 36
4. Obsérvese que si los polos del observador se locan lejos a la izquierda del eje j, el ancho de banda del observador aumentará y originará problemas de ruido. El requisito general es que el ancho de banda debería ser suficientemente bajo para que el ruido del sensor que mide y(t) y se realimenta al observador no se nvierta en un problema. En resumen, los polos del observador deben ser bastante más rápidos que los de la planta a lazo cerrado, pero no tanto mo para que generen problema de inestabilidad y ruido. Como regla general, los polos del observador deben ser de dos a cin veces más rápidos que los polos del ntrolador para asegurarse de que el error de observación (error de estimación) nverge a cero rápidamente. 37