Académique Documents
Professionnel Documents
Culture Documents
r u x R x y
N B C
A
Plant
^
x
K Observer
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
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
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
= x x
= Ax + Bu Ax Bu LC(x x)
= A(x x) LC(x x)
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,
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
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
Observadores p. 9/37
Ejemplo: Observador en el motor DC.
De a (s) y Ka (s) calculamos Ka ,
y finalmente,
Ka = Ka Ca C 1 = [12,99 2]
[78]
| {z } | {z }
K kz
Observadores p. 10/37
Ejemplo: Observador en el motor DC.
Un diagrama en bloques de la implementacin es,
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
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
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]
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.
(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.
Observadores p. 18/37
Realimentacin desde estados estimados
Al respecto se presentan 3 preguntas bsicas,
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
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
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,
Observadores p. 23/37
Diseo en tiempo discrteto
Para las ecuaciones de tiempo discreto,
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
-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)
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
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
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
Observadores p. 29/37
Ejemplo: Motor DC en tiempo discreto
En las coordenadas originales, obtenemos la ganancia de realimentacin,
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.
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:
1 1
N= =
C(zI Ad + Bd Kd )1 Bd |z=1 C(I Ad + Bd Kd )1 Bd
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
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)
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