Vous êtes sur la page 1sur 37

Estimacin de estados

La realimentacin de estados requiere medir los estados, pero normalmente, no


se tiene acceso a todos los estados. Entonces cmo implementar la
realimentacin de estados?. Si el sistema es observable, los estados se pueden
estimar mediante un observador .

r u x R x y
N B C

A
Plant

^
x
K Observer

Un observador es un sistema dinmico que estima los estados de la planta basa-


do en la medida de sus entradas y salidas.

Observadores p. 1/37
Estimacin de estados
Cmo construir un observador?. Una forma intuitiva podra ser reproducir el
modelo de la planta y ejecutarlo simultneamente para obtener un estado
estimado x(t). estimate ^x(t).
u x R x y
B C

A
x R
^ ^
x
B

A
PSfrag replacements
Copia de la planta Plant copy

El problema con este diseo simple es que si la planta y su copia en el ob-


servador tienen diferentes condiciones iniciales, los estimados generalmente no
convergirn a los valores reales.

Observadores p. 2/37
Estimacin de estados
Una mejor estructura de observador incluye una correccin del error por
realimentacin. observer structure includes error feedbac
u x R x y
B C

error y
L
^
y
C
x R
^ ^
x
B

Con un diseo apropiado de la matriz de ganancia L,se puede ajustar al obser-


vador para que entregue un estimado del estado que convergir asintticamente
al valor real del estado.

Observadores p. 3/37
Estimacin de estados
Re-arreglando el diagrama en bloques anterior, se obtiene la estructura final del
observador.
u x R x y
B C
Si el sistema es observable, se puede es-
coger la ganancia L para que asigne arbitrari- A
u
amente los autovalores de A LC.
De hecho, requerimos que el observador Observer
B
sea estable!. er
Del diagrama en bloques, las ecuaciones del ^
x x
R ^
L
observador son,
A LC


x(t) = Ax(t) + Bu(t) + L[y(t) Cx(t)]
= (A LC)x(t) + Bu(t) + Ly(t)
= (A LC)x(t) + Bu(t) + LCx(t)

Observadores p. 4/37
Estimacin de estados
De la ecuacin del observador, y la ecuacin de la planta,

x = Ax + Bu
y = Cx

Podemos obtener una ecuacin para el error de estimacin , = x x,

= x x
= Ax + Bu Ax Bu LC(x x)
= A(x x) LC(x x)

= (A LC) (t) = e(ALC)t (0)

As, vemos que para que el error converja asintticamente a cero, (t) 0 (y as
x(t) x(t)), se necesita que (A LC) sea Hurwitz.

Observadores p. 5/37
Diseo del observador
En resumen, para disear el observador usamos las matrices A, B y C de la
planta para formar la ecuacin de estado,


x(t) = (A LC)x(t) + Bu(t) + Ly(t)

donde L es tal que los autovalores de (A LC) tengan parte real negativa.
Cmo escoger L?. Podemos usar por dualidad, el mismo procedimiento seguido
para disear la ganancia de realimentacin de estados K tal que A BK fuera
Hurwitz. Note que formando la matriz transpuesta,

(A LC)T = A T C T LT
= Adual Bdual Kdual

el problema se reduce a escoger Kdual para hacer Adual Bdual Kdual Hurwitz, y
finalmente,
T
L = Kdual

Observadores p. 6/37
Ejemplo: Observador en el motor DC.
Volvamos al ejemplo del motor DC visto antes. Se desea seguimiento robusto de
una referencia y rechazo a disturbios.La realimentacin de estados requiere la
medicin de los dos estados: la corriente i(t) y la velocidad (t). Ahora queremos
medir solamente la velocidad del motor. Construiremos un observador para
estimar la corriente i(t).
Las ecuaciones de la planta eran,

      
d (t) 10 1 (t) 0
= + V (t)
dt i(t) 0,02 2 i(t) 2
 
  (t)
y(t) = 1 0
i(t)

Y su polinomio caracterstico,

(s) = s2 + 12s + 20,02

Observadores p. 7/37
Ejemplo: Observador en el motor DC.
Aumentemos la planta con una accin integral para lograr seguimiento robusto a
entradas tipo paso.

  10 1 0   0
A 0 B
Aa = = 0,02 2 0 ; Ba = = 2
C 0 0
1 0 0 0

Con polinomio caracterstico,

a (s) = s3 + 12s2 + 20,02s = s(s)

Que es simplemente el mismo original con un polo extra en s = 0, aadido por el


integrador.

Observadores p. 8/37
Ejemplo: Observador en el motor DC.
Calculamos Ca and Ca , para el par aumentado (Aa ; Ba ),
1
0 2 24 1 12 20,02 1 12 123,98
Ca = 2 4 7,96 ; Ca = 0 1 12 = 0 1 12
0 0 2 0 0 1 0 0 1

Como vimos, el par aumentado (Aa ; Ba ) ser siempre controlable siempre que el
par original (A; B) sea controlable y la planta no tenga ceros en s = 0.
Seleccionamos el polinomio caracterstico deseado como

Ka (s) = (s + 6)K (s) = s3 + 16s2 + 86s + 156

(Mantenemos el polinomio caracterstico deseado original K (s) = (s + 5 j)(s +


5 + j) = s2 + 10s + 26 y asignamos el polo extra para que sea ms rpido para no
alterar las caractersticas temporales deseadas de y(t)).

Observadores p. 9/37
Ejemplo: Observador en el motor DC.
De a (s) y Ka (s) calculamos Ka ,

Ka = [(16 12) (86 20,02) (156 0)] = [4 65,98 156]

y finalmente,

Ka = Ka Ca C 1 = [12,99 2]

[78]
| {z } | {z }
K kz

Donde los primeros dos elementos de Ka corresponden a la nueva ganancia de


estado K para el estado ((t), i(t)), mientras que el ltimo elemento es la
ganancia de realimentacin kz para el estado aumentado z(t).

Observadores p. 10/37
Ejemplo: Observador en el motor DC.
Un diagrama en bloques de la implementacin es,

Y un diagrama en bloques de Simulink, incluyendo disturbios,

d_i d_o

1
78
s 1
B* u C* u
s
r Integrator1 Gain2
Integrator Matrix
Matrix
Gain2 Scope
Gain1
A* u

Matrix
12.99
Gain
Demux
Gain
2

Gain1

Observadores p. 11/37
Ejemplo: Observador en el motor DC.
No obstante, este diseo requiere medir i(t). Para disear el observador primero
debemos chequear la observabilidad.
   
C 1 0
O= =
CA 10 1

que es de rango completo y de all es observable. Por dualidad, en el proceso para


calcular Kdual , el rol de C es jugado por Cdual = OT , y Cdual es el mismo de antes
 1  
1 1 1 12
Cdual = C = =
0 1 0 1

ya que C solo depende del polinomio caracterstico de A que es el mismo de A T .

Observadores p. 12/37
Ejemplo: Observador en el motor DC.
Digamos que los autovalores deseados para el observador estn en s = 6 j2,
(un poco ms rpidos que los elegidos para los de la planta en lazo cerrado, como
es usual), lo que arroja
Kdual = s2 + 12s + 40
As, de los coeficientes de Kdual y los de (s) tenemos

Kdual = [(12 12) (40 20,02)] = [0 19,98]

Retornando a las coordenadas originales obtenemos Kdual ,

1 ; = [0 19,98];
Kdual = Kdual CC dual

 
0
(por casualidad, lo mismo que Kdual ). Finalmente, L = Kdual
T
= . Se
19,98
puede verificar con MATLAB que L efectivamente ubica los autovalores de (A
LC) en las localidades deseadas.

Observadores p. 13/37
Ejemplo: Observador en el motor DC.
Simulando con Simulink, fijando algunas condiciones a la planta (y ninguna al
observador)
the observer)
1
estimation error in speed
States estimation error in current
0.8
B* u 1 C* u
s
0.6
r Matrix Integrator Matrix
Gain1 Gain2
0.4
A* u
0.2
Matrix
Gain
0

0.2
B* u

0.4
Estimated
states
1 0.6
L* u
s
0.8

AL*C* u 1
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
time [s]

Se puede ver que los errores de estimacin efectivamente convergen a cero en


cerca de 1s.

Observadores p. 14/37
Ejemplo: Observador en el motor DC.
El observador se puede combinar con el diseo de realimentacin de estados
previo, basta con reemplazar los estados medidos por los estados
estimados.need to replace the state measurements by the estimated states.

d_i d_o

1
78
s 1
B* u C* u
s
r Gain2

Scope

A* u

B* u

1
12.99 Demux L* u
s
Gain
2
AL*C* u
Gain1

Note que el error para la accin integral debe obtenerse de el estado medido.

Observadores p. 15/37
Ejemplo: Observador en el motor DC.
Se muestran resultados de simulacin con el observador de estados, se simulan
disturbios de entrada y salida actuando en tiempos diferentes. La salida converge
al valor de referencia deseado. rejection.
and disturbance
1.4

1.2

0.8
y(t)

0.6

0.4

0.2

0
0 1 2 3 4 5 6 7 8 9 10
time [s]

Observadores p. 16/37
Realimentacin desde estados estimados
Resumiendo lo visto hasta ahora, hemos considerado
Una ganancia de realimentacin K.

Un estimador de estados (observador) con ganancia L.


Para disear K utilizamos la frmula Plant

de Bass-Gura para lograr que r u(t) x(t) R x(t) y(t)


N B C

(A BK) : Hurwitz
A

Para disear L en el observador, us- Observer

amos la dualidad y la misma frmula B


de Bass-Gura para lograr que ^
x(t) R
K L

(A LC) : Hurwitz A LC

Observadores p. 17/37
Realimentacin desde estados estimados
Diseando K tal que (A BK) sea Hurwitz, con los autovalores deseados,
podemos garantizar que el sistema de lazo cerrado sea asintticamente y
BIBO estable, y con una respuesta dinmica especificada.

Diseando L para que (A LC) sea Hurwitz, garantizamos que el


observador sea asintticamente estable, y que el estimado del error x(t)
converja al estado real x(t) cuando t .

Pero K y el observador se disearon independientemente . . . funcionarn


de la misma manera cuando se pongan juntos en un esquema de
realimentacin desde los estados estimados?.

Observadores p. 18/37
Realimentacin desde estados estimados
Al respecto se presentan 3 preguntas bsicas,

Los autovalores de lazo cerrado se fijaron a aquellos de (A-BK) usando la


realimentacin de estado,
u = Kx
An tendremos los mismos autovalores si realimentamos desde los estados
estimados?
u = K x

La interconexin afecta los autovalores del observador?.


Cul es el efecto de la interconexin en la funcin de transferencia de lazo
cerrado?

Observadores p. 19/37
Realimentacin desde estados estimados
Para resolver estas preguntas, miremos las ecuaciones de estado del sistema
completo, poniendo juntos el observador y la planta, esto es,

x = Ax + Bu Planta
x = (A LC)x + LCx + Bu Observador

x = AxBK x + BN r Planta
x = (A LC)x + LCxBK x + BN r Observador

Agrupando estas ecuaciones en una forma ms compacta,


      
x A BK x BN
= + r
x LC (A LC BK) x BN
 
  x
y = C 0
x

Observadores p. 20/37
Realimentacin desde estados estimados
Hagamos un cambio de coordenadas para que las nuevas coordenadas sean el
estado de la planta x y el error de estimacin = x x.
      
x x I 0 x
= =
x x I I x
| {z }
P

 1  
I 0 I 0
Note que P 1 = = = P . Con esta transformacin de
I I I I
equivalencia obtenemos las matrices en el nuevo sistema coordenado como,
   
(A BK) BK BN
AKL = P AKL P 1 = , BKL = P BKL =
0 (A LC) 0
 
CKL = CKL P 1 = C 0

Observadores p. 21/37
Realimentacin desde estados estimados
El sistema en las nuevas coordenadas se representa como,
      
x (A BK) BK x BN
= + r
0 (A LC) 0
 
  x
y = C 0

Ya que AKL es triangular, sus autovalores son los de (A BK) y (A LC).


Controlador y observador no se afectan mutuamente en la interconexin.
r x(t) R x(t) y(t)
ation BN C
Note que el error de estimacin es no es
controlable , de aqu que los autovalores A BK
del observador no aparecern en la fun- (t) R (t)
cin de transferencia de lazo cerrado.
A LC

Observadores p. 22/37
Realimentacin desde estados estimados
La propiedad de independencia entre el control y la estimacin dele estado se
llama Principio de separacin
Principio de separacin: El diseo de la realimentacin de estado y del esti-
mador de estado se pueden realizar independientemente. Los autovalores del
sistema de lazo cerrado son los determinados por la ley de realimentacin y no
se afectan por el uso de un estimador de estados. Los autovalores del observador
no se afectan por la ley de realimentacin.
La funcin de transferencia de lazo cerrado slo tendr los autovalores derivados
de (A BK); ya que el error de estimacin no es controlable,

Gcl (s) = C(sI A + BK)1 BN

Los transitorios en el error de estimacin , no obstante, se vern en la salida ya


que el error de estimacin es observable.

Observadores p. 23/37
Diseo en tiempo discrteto
Para las ecuaciones de tiempo discreto,

x[k + 1] = Ax[k] + Bu[k]; y[k] = Cx[k];

el procedimiento de diseo para una ley de realimentacin u[k] = Kx[k] es el


mismo que para sistemas de tiempo continuo.
Lo mismo aplica para el diseo de un observador de estados de tiempo discreto,
x[k + 1] = (A LC)x[k] + Bu[k] + Ly[k]
Una diferencia es la localizacin de los autovalores deseados; para estabilidad
asinttica deben estar dentro del crculo unitario.
Una regla prctica para escoger los autovalores deseados de tiempo discreto es,
1. Escoger una ubicacin deseada de tiempo continuo, digamos p i = 2.
2. Trasladarla a tiempo discreto usando la relacin i = epi T .

Observadores p. 24/37
Diseo en tiempo discreto
Imaginario
j
0.25 0.2
0.3
0.15 n T
0.35
2

0.4 0.1

Lugar de las races con factor


de amortiguamiento constante 0.45 0.05

y frecuencias naturales n con-


stantes en el plano complejo dis- -1 0.5 0 1 0
1 Real

creto. En MATLAB esta grilla 0.9


puede obtenerse con el coman- 0.8
0.7

do zgrid 0.6
0.5
0.4
0.3
0.2
PSfrag replacements 0.1

-j

Observadores p. 25/37
Ejemplo: Motor DC en tiempo discreto
Retornemos al ejemplo del motor DC. Supondremos que el control se har con un
PC y por tanto el controlador debe disearse en tiempo discreto. Para ello,
discretizamos primero el modelo de tiempo continuo
      
d (t) 10 1 (t) 0
= + V (t)
dt i(t) 0,02 2 i(t) 2
 
  (t)
y(t) = 1 0
i(t)

El primer parmetro a determinar es el periodo de muestreo T . Del teorema de


muestreo de Shannon, la frecuencia de muestreo s = 2/T debe ser al menos
dos veces el ancho de banda del sistema de lazo cerrado (ya que se cambiar el
ancho de banda del sistema con la accin de control).

Observadores p. 26/37
Ejemplo: Motor DC en tiempo discreto
La especificacin que tenamos para el diseo previo de tiempo continuo fue un
tiempo de establecimiento ts de cerca de 1s. La regla basada en el teorema de
Shannon debera darnos un periodo de muestreo de menos de T = 0,5s. En la
prctica, T debe ser del orden de 10 a 20 veces ms rpida que el tiempo de
establecimiento de lazo cerrado. De aqu obtenemos,

T = 0,1s

Desde luego, la mxima velocidad de muestreo est limitada por la mxima


frecuencia de adquisicin del PC ms el tiempo requerido para los clculos y el
procesamiento de seales.
Calculamos las matrices de estado,
Z T
AT
Ad = e y Bd = eA Bd
0

Observadores p. 27/37
Ejemplo: Motor DC en tiempo discreto
Utilizando MATLAB, hacemos [Ad, Bd] = c2d(A, B, 0,1) y obtenemos,
   
0,3678 0,0563 0,0068
Ad = ; Bd =
0,0011 0,8186 0,1812

Como se puede verificar, los autovalores del sistema de lazo abierto de tiempo
discreto son,
0,3679 = e(9,99750,1) 0,8185 = e(2,00250,1)
El polinomio caracterstico de tiempo discreto es

(z) = (z e9:9975T )(z e2,0025T ) = z 2 1,1864z + 0,3011

Para el polinomio caracterstico deseado de tiempo discreto, primero obtenemos


el mapeo discreto p epT de los autovalores p1;2 = 5 j especificados para el
sistema de tiempo continuo.

Observadores p. 28/37
Ejemplo: Motor DC en tiempo discreto
j = e(5j)0,1 = 0,6035 j0,0605
el cual arroja el polinomio caracterstico discreto deseado

K (z) = z 2 1,2070z + 0,3678

De los coeficientes de K (z) y (z) obtenemos la ganancia de realimentacin de


estados discreta

Kd = [(1,2070 + 1,1864) (0,3678 0,3011)] = [0,0206 0,0667]

Las matrices de controlabilidad discretas Cd (a partir del par (Ad , Bd )) y Cd ,


   1
0,0068555 0,0127368 1 1,1864
Cd = ;y Cd =
0,1812645 0,1483875 0 1

Observadores p. 29/37
Ejemplo: Motor DC en tiempo discreto
En las coordenadas originales, obtenemos la ganancia de realimentacin,

Kd = Kd Cd Cd1 = [8,3011164 0,4270676]

como puede verificarse con MATLAB, (Ad Bd Kd ) tiene los autovalores discretos
deseados. De forma similar, podemos disear el observador de tiempo discreto,
basado en el modelo de tiempo discreto de la planta.
frag replacements
El diseo de realimentacin de la salida se implementa finalmente a partir del sis-
tema de tiempo continuo, mediante un retenedor de orden cero y un muestreador.

r u[k] u(t) y(t) y[k]


N ZOH
-

x[k] Observador de
Kd
tiempo discreto

Observadores p. 30/37
Ejemplo: Motor DC en tiempo discreto
El siguiente cdigo de MATLAB calcula las ganancias y ejecuta las simulaciones
% matrices de tiempo continuo
A=[-10 1;-0.02 -2];B=[0;2];C=[1 0];D=0;
G=ss(A,B,C,D); % definicion del sistema e.e.
T=0.1; % periodo de muestreo
Gd=c2d(G,T,zoh) % discretizacion
% ganancia de realimentacion de tiempo discreto
Kd=place(Gd.a,Gd.b,exp([-5-i,-5+i]*T))
% ganancia del observador de tiempo discreto
Ld=place(Gd.a,Gd.c,exp([-6-i,-6+i]*T))
% compensacion del error de regimen permanente
N=inv(Gd.c*inv(eye(2)-Gd.a+Gd.b*Kd)*Gd.b)
% Ejecuta el diagrama de simulink
sim(motordc)
% Dibujos (despues de ejecutar la simulacion)
subplot(211),plot(y(:,1),y(:,2));grid
subplot(212),stairs(u(:,1),u(:,2));grid

Observadores p. 31/37
Ejemplo: Motor DC en tiempo discreto
El siguiente es el esquema en Simulink,
N K*u 1 K*u
s
Step Gain ZeroOrder G.c Integrator G.d y(t)
Hold
K*u

G.a

u[k]
K*u

Gd.b
1
K*u K*u
z
Kd Unit Delay Ld

K*u

Gd.aLd*Gd.c

Note que las seales muestreadas se muestran en rojo (chequear la opcin Sam-
ple Time Colors en el men Format). Todos los bloques con seales muestreadas
incluyen un muestreador en su entrada.

Observadores p. 32/37
Ejemplo: Motor DC en tiempo discreto
Las siguientes grficas muestran la respuesta del sistema controlado de tiempo
discreto: la salida de tiempo continuo y(t) y el control de tiempo discreto u[k]
1

0.9

0.8

0.7

0.6

0.5

0.4
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

14.5

14

13.5

13

12.5

12

11.5

11

10.5

10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

Observadores p. 33/37
Peculiaridades en tiempo discreto
Hay dos diferencias especiales en el procedimiento de diseo de tiempo discreto:

La ganancia N para compensacin del error de rgimen permanente es,


como en tiempo continuo, la inversa de la ganancia DC de rgimen
permanente de la funcin de transferencia de lazo cerrado. Note sin
embargo, que en tiempo discreto,

1 1
N= =
C(zI Ad + Bd Kd )1 Bd |z=1 C(I Ad + Bd Kd )1 Bd

Si implementamos seguimiento robusto aadiendo una accin integral en el


diseo de realimentacin de estados, note que el aumento de la planta es
diferente en tiempo discreto,
 
Ad 0
Aa =
C 1

Observadores p. 34/37
Peculiaridades en tiempo discreto
Ya que la integracin de tiempo discreto del error de seguimiento tiene que
implementarse como,
z[k + 1] = z[k] + r Cx[k]
La implementacin de la accin integral en tiempo discreto en el diagrama debe
ser consistente, i.e. integracin discreta del error de seguimiento.
tracking error.
di (t) do (t)
r (t) 1 u(t) x(t) R x(t) y(t)
z1
kz ZOH B C

A

Aparte de esas dos diferencias, y la ubicacin para los autovalores, el diseo de


tiempo discreto se obtiene realizando los mimos clculos que para el diseo por
realimentacin de estados de tiempo continuo.

Observadores p. 35/37
Control Dead-Beat
Un diseo especial de tiempo discreto que no tiene correlacin en tiempo con-
tinuo es el control dead-beat. Una respuesta dead-beat es una respuesta que se
establece en su valor final en un tiempo finito. Esta caracterstica tiene lugar en
un sistema de tiempo discreto que tiene todos sus polos en z = 0, por ejemplo,
e.g.,
Step Response
1.5

(7z 1)(5z 1)
Amplitude
G(z) = ;
24z 3
0.5

0
0 1 2 3 4 5 6 7 8 9 10
Time (sec)

el cual se establece en tres periodos


sampling de muestreo
periods (la dinmica
(the dynamics es justamente
is just a delay un
retardo de tres periodos de muestreo).

Observadores p. 36/37
Control Dead-Beat
Para disear un controlador dead-beat, solo tenemos que encontrar un K d para
colocar todos los polos de lazo cerrado en z = 0. El observador de tiempo dis-
creto tambin puede disearse dead-beat, con Ld para ubicar todos los polos del
observador en z = 0.
No obstante, el Dead-beat usualmente requiere accin de control grande y puede
provocar saturacin de los actuadores.

Observadores p. 37/37

Vous aimerez peut-être aussi