Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Observadores PDF
Observadores PDF
r u ẋ R x y
N B C
−
A
Plant
^
x
K Observer
Observadores– p. 1/37
Estimación de estados
¿Cómo construir un observador?. Una forma intuitiva podría ser reproducir el
modelo de la planta y ejecutarlo simultáneamente para obtener un estado
estimado x̂(t). estimate ^x(t).
u ẋ R x y
B C
A
x˙ R
^ ^
x
B
A
PSfrag replacements
Copia de la planta Plant copy
Observadores– p. 2/37
Estimación de estados
Una mejor estructura de observador incluye una ”corrección del error por
realimentación”. observer structure includes error feedbac
u ẋ R x y
B C
error y
L
^
y −
C
x˙ R
^ ^
x
B
Observadores– p. 3/37
Estimación de estados
Re-arreglando el diagrama en bloques anterior, se obtiene la estructura final del
observador.
u ẋ 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
Estimación de estados
De la ecuación del observador, y la ecuación de la planta,
ẋ = Ax + Bu
y = Cx
ε̇ = ẋ − x̂˙
= Ax + Bu − Ax̂ − Bu − LC(x − x̂)
= A(x − x̂) − LC(x − x̂)
Así, vemos que para que el error converja asintóticamente a cero, ε(t) → 0 (y así
x̂(t) → x(t)), se necesita que (A − LC) sea Hurwitz.
Observadores– p. 5/37
Diseño del observador
En resumen, para diseñar el observador usamos las matrices A, B y C de la
planta para formar la ecuación 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.
¿Cómo escoger L?. Podemos usar por dualidad, el mismo procedimiento seguido
para diseñar la ganancia de realimentación 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 realimentación de estados requiere la
medición 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 característico,
Observadores– p. 7/37
Ejemplo: Observador en el motor DC.
Aumentemos la planta con una acción 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 C¯a , para el par aumentado (Aa ; Ba ),
−1
0 2 −24 1 12 20,02 1 −12 123,98
Ca = 2 −4 7,96 ; C¯a = 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 característico deseado como
Observadores– p. 9/37
Ejemplo: Observador en el motor DC.
De ∆a (s) y ∆Ka (s) calculamos K̄a ,
y finalmente,
Observadores– p. 10/37
Ejemplo: Observador en el motor DC.
Un diagrama en bloques de la implementación 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 diseño requiere medir i(t). Para diseñar 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 están en s = −6 ± j2,
(un poco más rápidos 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 = K̄dual CC dual
0
(por casualidad, lo mismo que K̄dual ). 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
A−L*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 diseño de realimentación 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
A−L*C* u
Gain1
Note que el error para la acción integral debe obtenerse de el estado medido.
Observadores– p. 15/37
Ejemplo: Observador en el motor DC.
Se muestran resultados de simulación 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
Realimentación desde estados estimados
Resumiendo lo visto hasta ahora, hemos considerado
Una ganancia de realimentación K.
(A − LC) : Hurwitz A − LC
Observadores– p. 17/37
Realimentación desde estados estimados
Diseñando K tal que (A − BK) sea Hurwitz, con los autovalores deseados,
podemos garantizar que el sistema de lazo cerrado sea asintóticamente y
BIBO estable, y con una respuesta dinámica especificada.
Observadores– p. 18/37
Realimentación desde estados estimados
Al respecto se presentan 3 preguntas básicas,
Observadores– p. 19/37
Realimentación desde estados estimados
Para resolver estas preguntas, miremos las ecuaciones de estado del sistema
completo, poniendo juntos el observador y la planta, esto es,
ẋ = Ax + Bu Planta
x̂˙ = (A − LC)x̂ + LCx + Bu Observador
ẋ = Ax−BK x̂ + BN r Planta
x̂˙ = (A − LC)x̂ + LCx−BK x̂ + BN r Observador
Observadores– p. 20/37
Realimentación desde estados estimados
Hagamos un cambio de coordenadas para que las nuevas coordenadas sean el
estado de la planta x y el error de estimación ε = 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 transformación de
I −I I −I
equivalencia obtenemos las matrices en el nuevo sistema coordenado como,
(A − BK) BK BN
ĀKL = P AKL P −1 = , B̄KL = P BKL =
0 (A − LC) 0
C̄KL = CKL P −1 = C 0
Observadores– p. 21/37
Realimentación desde estados estimados
El sistema en las nuevas coordenadas se representa como,
ẋ (A − BK) BK x BN
= + r
ε̇ 0 (A − LC) ε 0
x
y = C 0
ε
Observadores– p. 22/37
Realimentación desde estados estimados
La propiedad de independencia entre el control y la estimación dele estado se
llama Principio de separación
Principio de separación: El diseño de la realimentación 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 realimentación y no
se afectan por el uso de un estimador de estados. Los autovalores del observador
no se afectan por la ley de realimentación.
La función de transferencia de lazo cerrado sólo tendrá los autovalores derivados
de (A − BK); ya que el error de estimación no es controlable,
Observadores– p. 23/37
Diseño en tiempo discrteto
Para las ecuaciones de tiempo discreto,
Observadores– p. 24/37
Diseño 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 diseñarse 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 especificación que teníamos para el diseño previo de tiempo continuo fue un
tiempo de establecimiento ts de cerca de 1s. La regla basada en el teorema de
Shannon debería darnos un periodo de muestreo de menos de T = 0,5s. En la
práctica, T debe ser del orden de 10 a 20 veces más répida 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,9975×0,1) 0,8185 = e(−2,0025×0,1)
El polinomio característico de tiempo discreto es
Observadores– p. 28/37
Ejemplo: Motor DC en tiempo discreto
δ ± jγ = e(−5±j)×0,1 = 0,6035 ± j0,0605
el cual arroja el polinomio característico discreto deseado
Observadores– p. 29/37
Ejemplo: Motor DC en tiempo discreto
En las coordenadas originales, obtenemos la ganancia de realimentación,
como puede verificarse con MATLAB, (Ad −Bd Kd ) tiene los autovalores discretos
deseados. De forma similar, podemos diseñar el observador de tiempo discreto,
basado en el modelo de tiempo discreto de la planta.
frag replacements
El diseño de realimentación 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 código 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); % definición del sistema e.e.
T=0.1; % periodo de muestreo
Gd=c2d(G,T,’zoh’) % discretización
% ganancia de realimentación 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))’
% compensación del error de régimen permanente
N=inv(Gd.c*inv(eye(2)-Gd.a+Gd.b*Kd)*Gd.b)
% Ejecuta el diagrama de simulink
sim(’motordc’)
% Dibujos (después de ejecutar la simulación)
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 Zero−Order 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.a−Ld*Gd.c
Note que las señales muestreadas se muestran en rojo (chequear la opción Sam-
ple Time Colors en el menú Format). Todos los bloques con señales muestreadas
incluyen un muestreador en su entrada.
Observadores– p. 32/37
Ejemplo: Motor DC en tiempo discreto
Las siguientes gráficas 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 diseño 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 integración de tiempo discreto del error de seguimiento tiene que
implementarse como,
z[k + 1] = z[k] + r − Cx[k]
La implementación de la acción integral en tiempo discreto en el diagrama debe
ser consistente, i.e. integración discreta del error de seguimiento.
tracking error.
di (t) do (t)
r ε(t) 1 − u(t) ẋ(t) R x(t) y(t)
z−1
kz ZOH B C
− −
A
Observadores– p. 35/37
Control Dead-Beat
Un diseño especial de tiempo discreto que no tiene correlación 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 característica 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 diseñar 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 también puede diseñarse dead-beat, con Ld para ubicar todos los polos del
observador en z = 0.
No obstante, el Dead-beat usualmente requiere acción de control grande y puede
provocar saturación de los actuadores.
Observadores– p. 37/37