Hola controleros y controleras, el día de hoy vamos a estudiar los estimadores o observadores de estados, que nos permitirá reconstruir las variables de estado de un sistema cuando no es posible tener una medición de dicha variable.
Antes de comenzar, te invito a que veas nuestro curso gratuito de Sistemas en Espacio de Estados.
Y que te suscribas al canal para que sigas aprendiendo más sobre la teoría de control y programación.
¿Qué son los observadores o estimadores de estado?
La técnica de control por realimentación de estados se asume que todos los estados del sistema que deseamos controlar están disponible para realizar propiamente la realimentación.
No obstante, en situaciones prácticas, la suposición de que todos los estados de un sistema son conocidos en líneas generalmente no es verdadera (falta de sensores o un alto costo en la medición de la variable).
En esta entrada del sitio web y el canal, nos enfocaremos a estudiar unos dispositivos llamados como observadores (o estimadores) de estados en el que de la medicación de un subconjunto de estados se puede reconstruir con el valor de los estados del sistema.
Primero, estudiaremos los observadores de orden completo (donde el orden del observador es igual al orden del sistema dinámico), y posteriormente, vamos a introducir el observador de orden reducido (donde el orden del observador es menor que el orden del sistema) para sistemas lineales.
Observadores de Estados en Lazo Abierto (Asintóticos)
Considerando el siguiente sistema dinámico:
\mathbf{\dot{x}}(t)=\mathbf{Ax}(t)+\mathbf{b}u(t)\mathbf{y}(t)=\mathbf{cx}(t)donde se supone que las matrices
Lo ideal es estimar el estado lo más rápido posible porque la idea es usar en la ley de control los estados del observador y no los estados de la planta.
El problema de obtener una estimación
\mathbf{\dot{\hat{x}}}(t)=\mathbf{A\hat{x}}(t)+\mathbf{b}u(t)El sistema dinámico anterior se puede construir de forma analógica o digital para obtener una estimación de los estados.
El diagrama de bloques del observador de estados en lazo abierto se muestra a continuación:
Si la condición inicial del observador de estado de lazo abierto es la misma que la del sistema entonces
Cuando se desconoce la condición inicial del sistema, podemos estimar la condición inicial siempre y cuando el sistema sea observable:
\left.\begin{matrix}
\mathbf{u}(t),\mathbf{y}(t)\\
t\in[0,t_1]
\end{matrix}\right\}\Rightarrow \mathbf{x}(0)A partir de la condición inicial, podemos determinar el valor de estado en el instante
\hat{\mathbf{x}}(t_2)=\mathbf{x}(t_2)Recordando que la ecuación de estados completo viene dado por la ecuación:
x(t)=e^{\mathbf{A}t}x(0)+\int_{0}^{t}e^{-\mathbf{A}(t-\tau)}Bu(\tau)d\tauObservadores de Estados en Lazo Cerrado
Hay varios problemas asociados con el observador de lazo abierto:
- La condición inicial debe estimarse siempre que usemos el observador;
- El error de estimación
depende de la precisión de los parámetros de la planta; y - Para sistemas inestables en lazo abierto, el valor del error de estimación tenderá hasta el infinito incluso para pequeñas diferencias en la estimación de la condición inicial;
- El observador de lazo abierto utiliza solo información de la señal de control a pesar de que la información de la señal de salida estar disponible.
Para evitar los problemas anteriores, se activa un término de corrección en el observador basado en el error de estimación de la señal de salida, como se ilustra en el siguiente figura:
Término de corrección:
\mathbf{l}(y(t)-\hat{y}(t)) = \mathbf{l}(y(t)-\mathbf{c\hat{x}}(t))La dinámica del observador:
\mathbf{\dot{\hat{x}}}(t)=\mathbf{A\hat{x}}(t)+\mathbf{b}u(t)+\mathbf{l}(y(t)-\mathbf{c\hat{x}}(t))=(\mathbf{A-lc})\mathbf{\hat{x}}(t)+\mathbf{b}u(t)+\mathbf{l}y(t)El error de estimación:
\mathbf{e}(t)=\mathbf{x}(t)-\hat{\mathbf{x}}(t)Dinámica del error de estimación:
\mathbf{\dot{e}}(t)=\mathbf{Ax}(t)+\mathbf{b}u(t)-\left(\mathbf{A\hat{x}}(t)+\mathbf{b}u(t)+\mathbf{lcx}(t)-\mathbf{lc\hat{x}}(t)\right)\mathbf{\dot{e}}(t)=\left(\mathbf{A}-\mathbf{lc}\right)\mathbf{x}(t)-\left(\mathbf{A}-\mathbf{lc}\right)\mathbf{\hat{x}}(t)\mathbf{\dot{e}}(t)=\left(\mathbf{A}-\mathbf{lc}\right)\mathbf{e}(t)Los autovalores de
Si
Teorema
Sea el par (
El teorema anterior se puede demostrar utilizando la noción de dualidad.
La dualidad consiste en:
\begin{matrix}
\mathbf{\dot{x}}(t)=\mathbf{Ax}(t)+\mathbf{b}u(t) & \Rightarrow & \mathbf{\dot{\zeta }}(t)=\mathbf{A'\zeta}(t)+\mathbf{c'}u(t)\\
\mathbf{y}(t)=\mathbf{cx}(t) & \Rightarrow & \mathbf{y}(t)=\mathbf{b'\zeta}(t)
\end{matrix}Los autovalores en los dos sistemas son los mismos.
Procedimiento para calcular el Observador de Estados
1. Diseñar una realimentación de estado para el sistema aplicando la dualidad
\mathbf{\dot{e}}_a(t)=\left(\mathbf{A}'-\mathbf{c'k}\right)\mathbf{e}_a(t)2. la ganancia del observador viene dado por (que es muy parecido a una realimentación de estados):
\mathbf{l} = \mathbf{k'}Solucionando por la FCO
Sin embargo también se puede encontrar el observador usando la forma canónica observable.
g(s)=\dfrac{y(s)}{u(s)}=\dfrac{\beta_1s^3+\beta_2s^2+\beta_3s+\beta_4}{s^4+\alpha_1s^3+\alpha_2s^2+\alpha_3s+\alpha_4}\begin{bmatrix}
\dot{x_1}(t)\\
\dot{x_2}(t)\\
\dot{x_3}(t)\\
\dot{x_4}(t)
\end{bmatrix}=\begin{bmatrix}
-\alpha_1 & 1& 0 & 0\\
-\alpha_2 &0&1&0\\
-\alpha_3&0&0&1\\
-\alpha_4&0&0&0
\end{bmatrix}\begin{bmatrix}
x_1(t)\\
x_2(t)\\
x_3(t)\\
x_4(t)
\end{bmatrix}+\begin{bmatrix}\beta_1\\ \beta_2\\ \beta_3\\ \beta_4 \end{bmatrix}u(t)y(s)=\begin{bmatrix}1&0&0&0 \end{bmatrix}x(t)La cual es el sistema DUAL de la forma canónica controlable.
En el observador tengo que calcular
\begin{bmatrix}
-\alpha_1 & 1& 0 & 0\\
-\alpha_2 &0&1&0\\
-\alpha_3&0&0&1\\
-\alpha_4&0&0&0
\end{bmatrix}-\begin{bmatrix}
l_1\\ l_2\\l_3\\l_4
\end{bmatrix}\begin{bmatrix}
1 & 0& 0 &0
\end{bmatrix}\begin{bmatrix}
-\alpha_1 & 1& 0 & 0\\
-\alpha_2 &0&1&0\\
-\alpha_3&0&0&1\\
-\alpha_4&0&0&0
\end{bmatrix}-\begin{bmatrix}
l_1 & 0& 0 & 0\\
l_2 &0&0&0\\
l_3&0&0&0\\
l_4&0&0&0
\end{bmatrix}\begin{bmatrix}
-\alpha_1-l_1 & 1& 0 & 0\\
-\alpha_2-l_2 &0&1&0\\
-\alpha_3-l_3&0&0&1\\
-\alpha_4-l_4&0&0&0
\end{bmatrix}Lo que implica es que estoy alterando la ecuación caracteristica del observador
Ejemplo 1
Considerando el siguiente sistema dinámico:
\dot{\vec{x}}=\begin{bmatrix}
1 & 0\\
0 & -1
\end{bmatrix}\vec{x}\begin{bmatrix}
1\\
1
\end{bmatrix}\vec{u}y=\begin{bmatrix}
1 & 1
\end{bmatrix}\vec{x}Diseñe un observador de estado para el sistema anterior, donde la dinámica del error de estimación viene dada por la ecuación:
\mathbf{\Delta}_f(s)=s^2+11s+30Solución
Construyo el sistema dual
\dot{\vec{\zeta}}=\begin{bmatrix}
1 & 0\\
0 & -1
\end{bmatrix}\vec{\zeta}\begin{bmatrix}
1\\
1
\end{bmatrix}\vec{u}
y=\begin{bmatrix}
1 & 1
\end{bmatrix}\vec{\zeta}Verificamos si el sistema dual es controlable:
\mathbb{C}=\begin{bmatrix}
\vec{b} & \mathbf{A}\vec{b}\end{bmatrix}\mathbb{C}=\begin{bmatrix}
1& 1 \\
1 & -1
\end{bmatrix}\rho(\mathbb{C})=2Como el rango es dos y la dimensión es 2, entonces el sistema tiene rango completo por lo tanto es controlable.
Proyecto una realimentación de estados para el sistema dual.
La ecuación característica del sistema es:
Resolvemos una realimentación de estados para el sistema dual:
\underline{\begin{matrix}
\lambda^2& +11\lambda &+30 \\
-(\lambda^2& +0\lambda &-1)
\end{matrix}}\\
\begin{matrix}
\ \ \ 0\lambda^2& +11\lambda& +29
\end{matrix}El vector de ganancias AUXILIAR es:
\bar{k}=\begin{bmatrix}
11& 31
\end{bmatrix}Calculo la matriz de similitud del sistema empleando la ecuación:
\mathbf{Q}=\mathbf{P}^{-1}=\mathbb{C}\begin{bmatrix}
1& \alpha_1\\
0 & 1\end{bmatrix}Por lo tanto la matriz de similitud es:
\mathbf{P}=\begin{bmatrix}
0.5& 0.5 \\
0.5 & -0.5
\end{bmatrix}Con la matriz de similitud y el vector de ganancias auxiliar consigo determinar cual es el vector de ganancias del sistema:
k=\bar{k}\mathbf{P}k=\begin{bmatrix}
21& -10
\end{bmatrix}Por lo tanto la ganancia del observador es:
\mathbf{l} = \mathbf{k'}
\mathbf{l}=\begin{bmatrix}
21 \\
-10
\end{bmatrix}Puedes descargar la resolución de este ejemplo hecho en MATLAB, SIMULINK y PYTHON (notebook de Jupyter) dando click en el siguiente botón:
Observadores de Estados de Orden Reducido
El observador de orden completo estima el vector de estado completo, aunque parte de la información de estado esté disponible en la señal de salida.
La siguiente es una forma de proyectar un observador de orden
\begin{bmatrix}
y(t)\\
\mathbf{\tilde{z}}(t)
\end{bmatrix} =\mathbf{Px}(t)De la representación en términos del vector
\mathbf{\hat{x}}(t)=\mathbf{P}^{-1}\begin{bmatrix}
y(t)\\
\mathbf{z}(t)
\end{bmatrix} Algoritmo de diseño
- Elija una matriz estable
que no tenga valores propios comunes a la matriz . - Elija un vector
tal que el par sea controlable. - Obtenga la solución
de la ecuación:
\mathbf{TA -FT = lc}- La estimación
del estado se obtiene usando las siguientes ecuaciones:
\mathbf{\hat{x}}(t)=\begin{bmatrix}
\mathbf{c}\\
\mathbf{T}
\end{bmatrix}^{-1}\begin{bmatrix}
y(t)\\
\mathbf{z}(t)
\end{bmatrix}\mathbf{\dot{z}}(t)=\mathbf{Fz}(t)+\mathbf{Tb}u(t)+\mathbf{l}y(t)Ejemplo 2
Considerando el siguiente sistema dinámico:
\dot{\vec{x}}=\begin{bmatrix}
-2 & -1\\
1 & 0
\end{bmatrix}\vec{x}\begin{bmatrix}
1\\
0
\end{bmatrix}\vec{u}y=\begin{bmatrix}
0 & 1
\end{bmatrix}\vec{x}Diseñe un observador de estado de orden reducida para estimar el estado
\mathbf{\Delta}_f(s)=s+10=0Solución
Dimensión del Observador:
\mathbf{\dot{z}}(t)=\mathbf{Fz}(t)+\mathbf{Tb}u(t)+\mathbf{l}y(t)Donde
Obtenemos la solución de la ecuación:
\mathbf{TA -FT = lc}Donde:
\mathbf{T} \in R^{(n-1)\times n}=\mathbf{T} \in R^{1\times 2} Sustituyendo:
\begin{bmatrix}
t_1 & t_2
\end{bmatrix}\begin{bmatrix}
-2 & -1\\
1 & 0
\end{bmatrix}+10\begin{bmatrix}
t_1 & t_2
\end{bmatrix}=\begin{bmatrix}
0 & 1
\end{bmatrix}\begin{bmatrix}
-2t_1+t_2 & -t_1
\end{bmatrix}+10\begin{bmatrix}
t_1 & t_2
\end{bmatrix}=\begin{bmatrix}
0 & 1
\end{bmatrix}Se obtienen dos ecuaciones:
Solucionando las ecuaciones:
Reemplazando en la ecuación del observador mínimo o de orden reducido tenemos que:
\mathbf{\dot{z}}(t)=\mathbf{Fz}(t)+\mathbf{Tb}u(t)+\mathbf{l}y(t)\mathbf{\dot{z}}(t)=-10z(t)-0.012u(t)+y(t)\mathbf{\hat{x}}(t)=\begin{bmatrix}
\mathbf{c}\\
\mathbf{T}
\end{bmatrix}^{-1}\begin{bmatrix}
y(t)\\
\mathbf{z}(t)
\end{bmatrix}\mathbf{\hat{x}}(t)=\begin{bmatrix}
0&1\\
-0.012&0.098
\end{bmatrix}^{-1}\begin{bmatrix}
y(t)\\
\mathbf{z}(t)
\end{bmatrix}Puedes descargar la resolución de este ejemplo hecho en MATLAB y SIMULINK dando click en el siguiente botón:
Diseño de la dinámica del observador
Para los sistemas observables, el diseñador define libremente la dinámica del observador.
En otras palabras, teóricamente, la dinámica del observador se puede realizar tan rápido como se desee utilizando ganancias elevadas.
Sin embargo, no se recomienda el uso de ganancias elevadas en presencia de ruido de medicación, ya que el ruido se amplificaría.
Por tanto, existe un compromiso entre la respuesta dinámica del observador y su desempeño en relación con la presencia de ruido de medicación.
Ejemplo 3
Considerando el siguiente sistema dinámico:
\dot{\vec{x}}=\begin{bmatrix}
1 & 0\\
0 & -1
\end{bmatrix}\vec{x}\begin{bmatrix}
1\\
1
\end{bmatrix}\vec{u}y=\begin{bmatrix}
1 & 1
\end{bmatrix}\vec{x}Suponga que la ecuación característica deseada viene dada por el siguiente polinomio:
\mathbf{\tilde{\Delta}}_f(s)=s^2+1.5s+0.5Diseñe un observador de orden completo para el polinomio anterior.
Compare la respuesta del observador en el Ejemplo 1 con la determinada anteriormente asumiendo que:
y(t)=x_1(t)+x_2(t)+\nabla(t)
donde
Caso MIMO
Cuando tenemos un proceso multivaraible:
\mathbf{\dot{x}}(t)=\mathbf{Ax}(t)+\mathbf{Bu}\mathbf{y}(t)=\mathbf{Cx+Du}donde
El observador de orden completo:
\mathbf{\dot{\hat{x}}}(t)=(\mathbf{A-LC})\mathbf{\hat{x}}+\mathbf{Bu}+\mathbf{Ly}donde
Es decir, se proyecta una realimentación de estado
\mathbf{\dot{e}}_a(t)=\left(\mathbf{A}'-\mathbf{C'L'}\right)\mathbf{e}_autilizando, por ejemplo, la técnica de la ecuación de Lyapunov.
El observador de orden reducido MIMO también se puede diseñar de manera similar al caso SISO.
Considerando el sistema definido en (6), el orden del observador será
El siguiente es un algoritmo de diseño para el siguiente observador de orden reducido para el caso MIMO:
\mathbf{\dot{z}}=\mathbf{Fz}+\mathbf{TBu}+\mathbf{Ly}\mathbf{\hat{x}}=\begin{bmatrix}
\mathbf{C}\\
\mathbf{T}
\end{bmatrix}^{-1}\begin{bmatrix}
\mathbf{y}\\
\mathbf{z}
\end{bmatrix}Algoritmo MR1
- Seleccione una matriz
que no tenga valores propios en común con la matriz . - Elija un vector
tal que el par sea controlable. - Obtenga la solución
de la ecuación:
- Si la matriz
\mathbf{P}=\begin{bmatrix}
\mathbf{C}\\
\mathbf{T}
\end{bmatrix}es singular, vuelva al paso 2 y elija una nueva matriz
Ejemplo 4
Considerando el siguiente sistema dinámico:
\dot{\vec{x}}=\begin{bmatrix}
1 & 0 & 0\\
0 & -1 & 0\\
0 & 0 & -2
\end{bmatrix}\vec{x}\begin{bmatrix}
1\\
1\\
1
\end{bmatrix}\vec{u}y=\begin{bmatrix}
0 & 1 &0\\
1 & 0 &0
\end{bmatrix}\vec{x}Diseñe un observador de estado de orden reducida para estimar el estado
\mathbf{\Delta}_f(s)=s+5=0Eso es todo por la entrada del dia de hoy, espero les haya gustado y hayan aprendido algo nuevo. Si te ha servido el contenido de esta entrada, de los videos y los códigos de implementación y deseas apoyar mi trabajo invitandome a un café super barato, puedes hacerlo en el siguiente link:
👉 Invitar a Sergio a un Café ☕️
Que esten muy bien, nos vemos en la siguiente entrada.
Citar este Artículo
¡Hola! Soy Sergio Andrés Castaño Giraldo. Bienvenidos a Control Automático Educación, un espacio dedicado a una de mis grandes pasiones: la Ingeniería de Control y la Automatización.
Mi objetivo aquí es tender un puente entre la teoría académica y la práctica profesional. Como profesor e investigador, he tenido la oportunidad de trabajar en proyectos complejos —desde sistemas de compresión en plataformas offshore hasta modelos de control avanzado— y todo ese aprendizaje lo vuelco en este sitio.
Aquí encontrarás material que crece constantemente: desde fundamentos de instrumentación hasta estrategias de control avanzado y programación profesional. Mi meta es que la información que comparto te sea de utilidad real en tu carrera o formación.
Te invito a que te suscribas, te unas a nuestro canal de YouTube y formemos una comunidad de aprendizaje continuo. ¡Gracias por estar aquí!
