TIT Anibal 2007 Cap 5

Estimación de Estados Observadores Fernando di Sciascio (2016) 1 Estimación de Estados La realimentación de los estad

Views 64 Downloads 0 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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, como 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ámico 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 construir un observador? La figura muestra un camino intuitivo. Copiar el modelo de la planta y dejar “correr” los sistemas simultáneamente para obtener una estimación de los estados xˆ(t ).

El problema con este diseño a lazo abierto es que la planta y su “copia” en el observador tienen condiciones iniciales distintas, la estimación normalmente no converge 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 corregir. Eligiendo apropiadamente la matriz de ganancia L, se puede ajustar el observador para que los estados estimados converjan 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) 5

(O)

Estimación de Estados De la ecuación del observador:

xˆ(t) (A LC )xˆ(t) Bu(t) Ly(t) x(t ) Ax(t ) Bu(t )

Y de las ecuaciones de estado de la planta: Podemos obtener el error del estimador: x

y(t ) Cx(t )

x(t) xˆ(t)

x(t) x(t ) xˆ(t ) Ax(t ) Bu(t ) Axˆ(t ) Bu(t ) L[y(t ) Cxˆ(t )] A[x(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 converge 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 columna 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 (ABK) sea Hurwitz. Observar que la matriz transpuesta

(A LC )T AT C T LT Adual Bdual Kdual Elegimos Kdual para que Adual BdualKdual sea Hurwitz, finalmente

L

T Kdual 7

 El problema de diseñar un observador es idéntico (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 controlable. 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 )

A

y(t ) Cx(t )

3

1

0

5

, B

0 1

, C

1 0

Los valores propios (polos) del observador los queremos en  Pd (s)

(s

10)(s

10)

s2

20s

100 

Los polos reales dobles y rápidos, al ser reales la respuesta es amortiguada. 8

Construimos el polinomio característico y lo igualamos al deseado. Pc(s )

sI

A

Pc(s )

Pcd (s )

s2

(l1

l1

12 , l2

s

LC

8)s

l1

3

1

l2

(5l1

l2

s

5

s2

15)

s2

20s

(l1

100

25

8)s

(5l1



L

l2

15)

12 25

Alternativamente podemos utilizar la fórmula de Ackermann L

(A)

1

C CA

0

(A

1

3

1

0

5

2

20

2

20A

1 0

100I )

1

3 1

0 1

3

1

100

0

1 0

0

5

0

100

3 1

Simulamos para u(t) 0(regulador), x1(0) 2, x2(0) 9

1

3

0

12

1

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 condiciones iniciales de los estados x0 = x(0). Se puede reemplazar por el comando initial (This MATLAB function calculates the unforced response of a state-space (ss) model sys with an initial condition 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 comando 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 controlabilidad es invariante con respecto a la realimentación de estados, la observabilidad no lo es, como se veremos en el siguiente ejemplo. Ejemplo: El sistema

x(t) y(t)

1 2 3 1

x(t)

0 1

u(t)

1 2 x(t )

es controlable y observable, ya que las matrices de controlabilidad [B AB ]

0 2 1 1

y observabilidad

C

1 2

CA

7 4

, son no singulares.

El control por realimentación de estados u(t) r(t) [3 1]x(t) lleva al sistema a lazo cerrado

x(t ) y(t )

1 2 0 0

x(t)

1 2 x (t ) 12

0 1

u(t )

La matriz de controlabilidad de sistema a lazo cerrado es

0 2 cl

1 0

, que es

no singular y comprueba que el sistema realimentado es controlable. Sin 1 2

embargo, la matriz de observabilidad ahora es

cl

1 2

, que es singular,

por lo que el sistema con esta realimentación no es observable.

La observabilidad de un sistema no es invariante con respecto a realimentación de estados. 

13



Realimentación de los Estados Estimados

14

Realimentación de los estados estimados x(t ) Ax(t ) Bu(t ) Consideremos nuevamente la planta:

y(t ) Cx(t )

 Si (A,B) es controlable, 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 construir un observador con autovalores arbitrarios.

xˆ(t ) (A LC )xˆ(t ) Bu(t) Ly(t)

u(t) r(t) Kxˆ(t)  La conexión controlador-observador, es efectivamente un controlador dinámico que realimenta la salida. 15

Realimentación de estados estimados

16

Es conveniente agregar un precompensador para reducir el error en estado estacionario ante una entrada escalón.

17

Las ecuaciones que describen el sistema completo (juntando las del sistema y las del observador y con u(t) r(t) Kxˆ(t) son: x (t )

Ax (t )

y(t )

Cx (t )

u(t )

Fr (t )

xˆ(t )

(A

x (t )

Ax (t )

xˆ(t )

LCx (t )

Bu(t ) Kxˆ(t )

LC )xˆ(t )

Bu(t )

BKxˆ(t ) (A

Ly(t )

BFr (t ) BK )xˆ(t )

LC

x (t )

A

xˆ(t )

LC

BFr (t )

BK A

LC

BK

Acl

y(t )

C 0 Ccl

x (t )

BF

xˆ(t )

BF Bcl

x (t ) xˆ(t ) 18

r (t )

clear, clc, close all; A=[-3 1;0 -5]; B=[0 15]'; C=[1 0]; lambdas_cont=[-2+2*i -2-2*i];%Autovalores deseados en -2+-j2 para el controlador lambdas_obs=[-10 -10]; %Autovalores dobles en -10 para el observador K=acker(A,B,lambdas_cont); 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 precompensación para que la respuesta al escalón este escalada se calcula de la % siguiente manera: se hace F=1 y se corre la simulación, luego se calcula el F necesario con el comando 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 )

x (t )

(A

LC )x (t )

y(t )

Cx (t )

xˆ(t )

x (t )

x (t )

A

x (t )

BKx (t )

x (t ) BK

BK A

0

LC

x (t )

BF

x (t )

0

Acl

y(t )

C 0 Ccl

BFr (t )

r (t )

Bcl

x (t ) x (t )

Se llega al mismo modelo equivalente mediante la transformación lineal x (t ) x (t )

x(t ) x (t ) xˆ(t )

I I 20

0 x (t ) I xˆ(t )

x (t ) P xˆ(t )

Se observa que la matriz del sistema es triangular (por bloques). El polinomio característico es:

Pc(s )

Pc (s)

sI

sI

(A

BK )

BK

0

sI

(A

LC )

(A

BK ) sI

(A

LC )

0

0

Los autovalores del sistema completo 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; tampoco son afectados los autovalores del observador por la realimentación de estados. Propiedad de separación de control y observación: Los diseños del control 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

x (t )

BK A

0

la matriz de controlabilidad

BF

A

0

x (t )

BF

LC x (t )

0

r (t )

no es de rango completa.

BK 0

BK

BK A

LC

BF

BF

0

0n

(A 1

BK )BF 0n

1

Esto se debe a que los estados x(t) son no controlables ya que x(t) (A LC )x(t), no depende de r(t). Los autovalores asociados a estos estados no aparecerán en la función transferencia del sistema completo (recordar que la función de transferencia solo representa la parte controlable y observable del sistema).

x(t ) (A BK )x(t ) Br(t )

G(s) C (sI

y(t ) Cx(t ) 22

A BK ) 1B

Como el último modelo (desacoplado) 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=collect(Gcl_sym,s);clc disp(['Gcl(s) =' ]); pretty(Gcl_sym)

Gcl(s)

s2

1 4s 8

No aparecen los polos del observador

23

Función de Transferencia Observador-Controlador Queremos calcular ahora la función de transferencia conjunta del Kxˆ(t) observador-controlador Goc(s) teniendo en cuenta que u(t) xˆ(t )

(A

LC

Xˆ(s )

(sI

A

U (s )

KXˆ(s )

BK )xˆ(t ) LC

BK )

K (sI

Goc (s )

Ly(t ) 1

A

U (s ) Y (s )

LY (s )

LC

BK )

K (sI

24

A

1

LY (s )

LC

1

BK ) L

La matriz del controlador-observador A LC BK puede o no ser estable, aunque A BK y A LC se escojan estables. De hecho, en algunos casos la matriz A LC BK puede ser pobremente estable o incluso inestable.

K adj(sI

Goc (s )

sI

A A

LC LC

BK ) L BK

Esto se debe a que ahora los autovalores del observador y el controlador no están desacoplados. El polinomio característico del observador-controlador es:

PG (s ) oc

sI

A

BK

LC

Y el polinomio característico del sistema completo a lazo cerrado vimos que es:

Pcl (s )

sI

(A

BK ) sI 25

(A

LC )

Ejemplo de Observador-Controlador x (t )

Ax (t )

y(t )

Cx (t )

Bu(t )

0

A

,

1

20.6 0

, B

0 1

, C

1 0

los polos en lazo cerrado deseados para este sistema se eligen en: 1

j 2.4,

1.8

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: La matriz de ganancias del observador es L

26

3

16 84.6

8,

4

8

El Sistema completo es:

27

La función de transferencia del controlador-observador es:

Gco (s )

U (s ) Y (s )

K adj(sI

29.6 3.6

sI s

A A

LC LC

BK

1

16

16 93.6

BK ) L

s

3.6 84.4

28

778.2s s2

19.6s

3690.7 151.2

Por ser R(s)=0 la función de transferencia del observador controlador puede estar el lazo de realimentación.

Para R(s) = 0 la respuesta es la misma para ambas configuraciones para R(s) ≠ 0 la respuesta no es la misma. La script siguiente grafica la respuesta al escalón para ambas configuraciones (precompensadas para que la respuesta sea unitaria). 29

G=tf([1],[1 0 -20.6 ]); Gco=tf([778.2 3690.7],[1 19.6 151.2]); F1=576/3691; F2=576/151.2; Gcl1=F1*feedback(Gco*G,1); Gcl2=F2*feedback(G,Gco); step(Gcl1,Gcl2) % Se ha precompensado con F1 y F2 para tener respuesta unitaria al escalón % % Gcl1(s) = % % % Gcl2(s) = %

778.2 s + 3691 -----------------------------------------s^4 + 19.6 s^3 + 130.6 s^2 + 374.4 s + 576 s^2 + 19.6 s + 151.2 -----------------------------------------s^4 + 19.6 s^3 + 130.6 s^2 + 374.4 s + 576

30

La función de transferencia de la planta es: G (s )

C adj(sI

NG (s ) DG (s )

A) B

sI

A

La función de transferencia del controlador-observador es: NG (s )

Gco (s )

co

K adj(sI

DG (s ) co

sI

A A

LC LC

BK ) L BK

Para la configuración 1 (el controlador en serie con la planta), la función de transferencia del sistema a lazo cerrado es: Gcl (s )

Gco (s )G (s ) 1 Gco (s )G (s )

NG (s )NG (s ) co

DG (s )DG (s ) co

NG (s )NG (s ) co

Para la configuración 2 (el controlador en la realimentación), la función de transferencia del sistema a lazo cerrado es: Gcl (s )

1

G (s ) Gco (s )G (s )

DG (s )NG (s ) co

DG (s )DG (s ) co

31

NG (s )NG (s ) co

En ambos casos el polinomio característico a lazo cerrado es el mismo:

Pcl (s )

DG (s )DG (s )

NG (s )NG (s )

co

(*)

co

Anteriormente vimos que el polinomio característico a lazo cerrado era: Pcl (s )

sI

(A

BK )

sI

(A

Pdco (s )

LC )

Pdco (s )Pdob (s )

(**)

Pdob (s )

con: Pdco (s )

sI

(A

sn Pdob (s )

sI sn

BK )

(s

1 )(s

c n 1 n 1s

(A

LC )

c 1s

(s

o n 1 s n 1

c 0

n 1 )(s o 1s

o 0

(s

2)

n)

0 n 2)

(s

2n )

0

Donde 1, 2,…, n, son los autovalores (polos) deseados para el sistema a lazo cerrado (autovalores del controlador) y  n+1, n+2,…, 2n, son los autovalores deseados del observador de orden completo. 32

Ambos polinomios característicos (*) y (**) deben ser iguales.

DG (s )DG (s ) co

NG (s )NG (s ) co

Pdco (s )Pdob (s )

Al comenzar el diseño conocemos la planta (NG(s) y DG(s)) y las especificaciones de diseño (Pdco(s) y Pdob(s) a partir de los autovalores deseados a lazo cerrado y del observador) y nuestro objetivo es encontrar el controlador, o lo que es equivalente los polinomios NGco(s) y DGco(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 NGco(s) y DGco(s). Esta ecuación polinómica es muy conocida con distintos nombres en la literatura de control, se la denomina ecuación diofantina, de Aryabhatta, o de Bezout.

33

Ecuacion Diofantina-Aryabhatta-Bezout DG (s )DG (s )

NG (s )NG (s)

co

co

Pdco (s)Pdob (s)

La function de Matlab diofantina.p (disponible en el sitio de Dropbox de la materia) devuelve los polinomios NGco y DGco si se le ingresa los polinomios NG, DG y conv(Pdco,Pdob), (recordar que la convolución de dos polinomios realiza el producto).

DG ,NG co

co

= diofantina DG,NG,conv(Pdco,Pdob)

Para el ejemplo hallamos anteriormente que la función de transferencia del controlador-observador es:

Gco (s )

K adj(sI sI

A A

LC LC

BK ) L BK

778.2s s2

19.6s

3690.7 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_cont=[-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 Pdco=poly(lambdas_cont); Pdob=poly(lambdas_obs); % Resolvemos la diofantina y obtenemos el numerado y denominador de la % función de transferencia del controlador-observador [Dgco,Ngco]=diofantina(Dg,Ng,conv(Pdco,Pdob)), Gco=tf(Ngco,Dgco) % Da la misma función de transferencia hallada anteriormente % %

778.2 s + 3691 Gco =

%

-------------------s^2 + 19.6 s + 151.2

Gco (s )

778.2s s2

19.6s

778.2(s

3690.7 151.2

(s 35

9.8

j 7.43)(s

4.74) 9.8

j 7.43)

Comentarios 1. Al diseñar un sistema regulador, obsérvese que si los polos dominantes del controlador se colocan 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 colocar los polos del observador suficientemente lejos a la izquierda del eje j, el controlador-observador se hace inestable, aunque el sistema en lazo cerrado es estable. Un controlador observador inestable no es aceptable. 3. Si el controlador 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 colocan 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 convierta 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 como para que generen problema de inestabilidad y ruido. Como regla general, los polos del observador deben ser de dos a cinco veces más rápidos que los polos del controlador para asegurarse de que el error de observación (error de estimación) converge a cero rápidamente. 37