37
1 Estimación de Estados Observadores Fernando di Sciascio (2016)

Estimación de Estados Observadoresdea.unsj.edu.ar/control2/Clase09a-Observadores de estados.pdf · El problema de diseñar un observador es idéntico (vía modelo dual) al de diseñar

Embed Size (px)

Citation preview

1

Estimación de Estados

Observadores

Fernando di Sciascio (2016)

2

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.

3

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.

4

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.

5

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 Ly t Cx

A LC x t Bu t

t

Ly t (O)

6

Estimación de Estados

De la ecuación del observador: ˆ ˆ( ) ( ) ( ) ( ) ( )x t A LC x t Bu t Ly t

Y de las ecuaciones de estado de la planta: ( ) ( ) ( )

( ) ( )

x t Ax t Bu t

y t Cx t

Podemos obtener el error del estimador: ˆ( ) ( )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

t

A LC t

x

x

( ) ( ) ( )x t xA LC t

Si la matriz ( )A LC es Hurwitz ˆ( ) ( ) ( ) 0t x t x tx , por lo tanto

(̂ ) ( )x t x t . El error converge asintóticamente a cero.

7

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 (A-

BK) sea Hurwitz. Observar que la matriz transpuesta

( )T T T Tdual dual dualA LC A C L A B K

Elegimos dualK para que dual dual dualA B K sea Hurwitz, finalmente

Tdual

L K

8

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

y t Cx t

3 1 0, , 1 0

0 5 1A B C

Los valores propios (polos) del observador los queremos en

2( ) ( 10)( 10) 20 100dP s s s s s

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

9

Construimos el polinomio característico y lo igualamos al deseado.

1 21 1 2

2

3 1( ) ( 8) (5 15)

5

s lPc s sI A LC s l s l l

l s

2 21 1

1 2

2

( ) ( )

( 8)

12 ,

(5 15) 20

5

1 0

2

0

Pc s Pcd s

s l s l l

l

s

l

s

12

25L

Alternativamente podemos utilizar la fórmula de Ackermann

1 1

2

2 1

0 1 0 0( ) ( 20 100 )

1 3 1 1

3 1 3 1 100 0 1 0 020

0 5 0 5 0 100 3 1 1

12

25

CL A A A I

CA

Simulamos para 1 2

( ) 0( ), (0) 2, (0) 3u t regulador x x

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]=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);

11

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

12

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

1 2 0

3 1 1

1 2

( ) ( ) ( )

( ) ( )

x t x t u t

y t x t

es controlable y observable, ya que las matrices de controlabilidad 0 2

1 1[ ]B AB y observabilidad 1 2

7 4

C

CA, son no singulares.

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

sistema a lazo cerrado

1 2 0

0 0 1

1 2

( ) ( ) ( )

( ) ( )

x t x t u t

y t x t

13

La matriz de controlabilidad de sistema a lazo cerrado es 0 2

1 0cl, que es

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

embargo, la matriz de observabilidad ahora es 1 2

1 2cl, 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.

14

Realimentación de los

Estados Estimados

15

Realimentación de los estados estimados

Consideremos nuevamente la planta: ( ) ( ) ( )

( ) ( )

x t Ax t Bu t

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.

16

Realimentación de estados estimados

17

Es conveniente agregar un precompensador para reducir el error en

estado estacionario ante una entrada escalón.

18

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 Bu t

y t Cx t

u t Fr t Kx t

x t A LC x t Bu t Ly t

x t Ax t BKx t BFr t

x t LCx t A LC BK x t BFr t

( ) ( )( )

ˆˆ ( )( )

( )( ) 0

(̂ )

cl cl

cl

A B

C

x t A BK x t BFr t

LC A LC BK x t BFx t

x ty t C

x t

19

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

20

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

( ) ( )( )

( ) 0 ( ) 0

( )( ) 0

( )

cl cl

cl

A B

C

x t A BK BK x t BFr t

x t A LC x t

x ty t C

x t

Se llega al mismo modelo equivalente mediante la transformación lineal

( ) ( ) 0 ( ) ( )

ˆ ˆ ˆ( ) ( ) ( ) ( ) ( )

x t x t I x t x tP

x t x t x t I I x t x t

21

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

( )( ) 0

0 ( )

sI A BK BKPc s

sI A LC

( ) ( ) ( ) 0cP s sI A BK sI A LC

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.

22

Finalmente, notemos que en la última representación del sistema:

( ) ( )( )

( ) 0 ( ) 0

x t A BK BK x t BFr t

x t A LC x t

la matriz de controlabilidad no es de rango completa.

1 1

( )

0 0 0 0 0n n

BF A BK BK BF BF A BK BF

A LC

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

1( ) ( ) ( ) ( )

( ) ( )( ) ( )

x t A BK x t Br tG s C sI A BK B

y t Cx t

23

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)

2

1

4 8( )cl

s sG s

No aparecen los polos del observador

24

Función de Transferencia Observador-Controlador

Queremos calcular ahora la función de transferencia conjunta del observador-controlador ( )ocG 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

1( )( ) ( )

( )ocU s

G s K sI A LC BK LY s

25

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.

adj( )( )oc

K sI A LC BK LG s

sI A LC 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:

( )

ocGP s sI A BK LC

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

( ) ( ) ( )P s sI A BK sI A LCcl

26

Ejemplo de Observador-Controlador

( ) ( ) ( )

( ) ( )

x t Ax t Bu t

y t Cx t

0 1 0, , , 1 0

20.6 0 1A B C

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

1 21.8 2.4, 1.8 2.4j j

La matriz de ganancias de realimentación del estado K para este caso es:

29.6   3.6K

los polos del observador se eligen dobles en: 3 48 , 8

La matriz de ganancias del observador es 16

84.6L

27

El Sistema completo es:

28

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

2

adj( )( )( )

( )

16 1 16 778.2 3690.729.6 3.6

93.6 3.6 84.4 19.6 151.2

co

K sI A LC BK LU sG s

Y s sI A LC BK

s ss s s

29

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

30

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

% 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

31

La función de transferencia de la planta es:

Cadj( )( )( )

( )G

G

sI A BN sG s

D s sI A

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

( ) adj( )( )

( )co

co

Gco

G

N s K sI A LC BK LG s

D s sI A LC BK

Para la configuración 1 (el controlador en serie con la planta), la función

de transferencia del sistema a lazo cerrado es:

( ) ( )( ) ( )( )

1 ( ) ( ) ( ) ( ) ( ) ( )co

co co

G Gcocl

co G G G G

N s N sG s G sG s

G s G s D s D s N s N s

Para la configuración 2 (el controlador en la realimentación), la función de

transferencia del sistema a lazo cerrado es:

( ) ( )( )( )

1 ( ) ( ) ( ) ( ) ( ) ( )co

co co

G Gcl

co G G G G

D s N sG sG s

G s G s D s D s N s N s

32

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

( ) ( ) ( ) ( ) ( )co coG G G GP s D s D s N s N scl (*)

Anteriormente vimos que el polinomio característico a lazo cerrado era:

( ) ( )

( ) ( ) ( ) ( ) ( )

dco dob

dco dob

P s P s

P s sI A BK sI A LC P s P scl (**)

con:

1 2

11 1 0

( ) ( ) ( )( ) ( )

0

dco n

n c n c cn

P s sI A BK s s s

s s s

1 2 2

11 1 0

( ) ( ) ( )( ) ( )

0

dob n n n

n o n o on

P s sI A LC s s s

s s s

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.

33

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

( ) ( ) ( ) ( ) ( ) ( )co coG G G G dco dobD s D s N s N s P s P 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.

34

Ecuacion Diofantina-Aryabhatta-Bezout

( ) ( ) ( ) ( )( ) ( )co coG GG G dco dobD s ND s N s s P s P 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).

co coG G G G dco dobD ,N = diofantina D ,N ,conv(P ,P )

Para el ejemplo hallamos anteriormente que la función de transferencia del

controlador-observador es:

2

adj( ) 778.2 3690.7( )

19.6 151.2co

K sI A LC BK L sG s

sI A LC BK s s

Obtenemos el mismo resultado utilizando la function diofantina.p

35

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

2

778.2( 4.74)778.2 3690.7( )

( 9.8 7.43)( 9.8 7.43)19.6 151.2co

ssG s

s j s js s

36

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.

37

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.