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 ; ; son conocidos y que las señales y están disponibles para el observador.
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 del estado a partir de los valores de y se pueden resolver usando una copia del sistema anterior
\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 , para .
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 y actualizar el valor del observador:
\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\tau
Observadores 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 definen la velocidad de convergencia del observador, ya que y
Si es estable, entonces cuando .
Teorema
Sea el par (). Todos los valores propios de pueden ser arbitrariamente asignados a un vector apropiado si y solo si el par () es observable.
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+30
Solució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})=2
Como 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 a través de una transformación de similitud en la forma:
\begin{bmatrix} y(t)\\ \mathbf{\tilde{z}}(t) \end{bmatrix} =\mathbf{Px}(t)
De la representación en términos del vector se proyecta un observador de orden para obtener una estimación del estado . El estado original se estima a través de la relación:
\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 , donde la dinámica del error de estimación viene dada por la ecuación característica:
\mathbf{\Delta}_f(s)=s+10=0
Solución
Dimensión del Observador:
\mathbf{\dot{z}}(t)=\mathbf{Fz}(t)+\mathbf{Tb}u(t)+\mathbf{l}y(t)
Donde y . Dado que solo tenemos un solo autovalor, para poder cumplir que el par (F,l) sean controlables, l puede tomar cualquier valor randomico diferente de cero.
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.5
Diseñ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 es una señal de ruido blanco.
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 , se puede diseñar utilizando la técnica de la dualidad.
Es decir, se proyecta una realimentación de estado para el sistema:
\mathbf{\dot{e}}_a(t)=\left(\mathbf{A}'-\mathbf{C'L'}\right)\mathbf{e}_a
utilizando, 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á , es decir, .
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 tal que no sea singular. Para una matriz no singular, el observador de orden reducido viene dado por el sistema dinámico definido en (9).
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 , donde la dinámica del error de estimación viene dada por la ecuación característica:
\mathbf{\Delta}_f(s)=s+5=0
Eso 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.
Mi nombre es Sergio Andres Castaño Giraldo, y en este sitio web voy a compartir una de las cosas que mas me gusta en la vida y es sobre la Ingeniería de Control y Automatización. El sitio web estará en constante crecimiento, voy a ir publicando material sobre el asunto desde temas básicos hasta temas un poco más complejos. Suscríbete al sitio web, dale me gusta a la página en Facebook y únete al canal de youtube. Espero de corazón que la información que comparto en este sitio, te pueda ser de utilidad. Y nuevamente te doy las gracias y la bienvenida a control automático educación.