BE3024 - Sistemas de Control 1 (Biomédica)

2do ciclo, 2024

Lección 12: Introducción a observadores de estado

Un detalle que tenemos pendiente...

La retroalimentación de estado probó ser una técnica poderosa, inclusive superando la perspectiva clásica de control.

Sin embargo, dejamos a un lado un detalle...

La retroalimentación de estado probó ser una técnica poderosa, inclusive superando la perspectiva clásica de control.

Sin embargo, dejamos a un lado un detalle...

¿Cómo obtenemos el estado del sistema si sólo tenemos acceso a las salidas | mediciones?

¿Cómo obtenemos el estado del sistema si sólo tenemos acceso a las salidas | mediciones?

Mediante observadores de estado.

La retroalimentación de estado probó ser una técnica poderosa, inclusive superando la perspectiva clásica de control.

Sin embargo, dejamos a un lado un detalle...

\mathbf{B}
\boldsymbol{+}
\boldsymbol{\int}
\mathbf{C}
\mathbf{A}
\mathbf{u}
\mathbf{y}
\dot{\mathbf{x}}
\mathbf{x}

Observadores para sistemas LTI

\mathbf{B}
\boldsymbol{+}
\boldsymbol{\int}
\mathbf{C}
\mathbf{A}
\mathbf{u}
\mathbf{y}
\dot{\mathbf{x}}
\mathbf{x}
\mathbf{K}
\mathbf{x}
(-1)

controlador

state feedback

retroalimentación negativa

Observadores para sistemas LTI

\mathbf{B}
\boldsymbol{+}
\boldsymbol{\int}
\mathbf{C}
\mathbf{A}
\mathbf{u}
\mathbf{y}
\dot{\mathbf{x}}
\mathbf{x}
\mathbf{K}
\mathbf{x}
(-1)

controlador

state feedback

retroalimentación negativa

Observadores para sistemas LTI

¿Cómo? Muchas veces esto no es posible de forma directa.

\mathbf{B}
\boldsymbol{+}
\boldsymbol{\int}
\mathbf{C}
\mathbf{A}
\mathbf{u}
\mathbf{y}
\dot{\mathbf{x}}
\mathbf{x}
\mathbf{K}
\mathbf{x}
(-1)

controlador

state feedback

retroalimentación negativa

Observadores para sistemas LTI

???

observador de estado

\mathbf{B}
\boldsymbol{+}
\boldsymbol{\int}
\mathbf{C}
\mathbf{A}
\mathbf{u}
\mathbf{y}
\dot{\mathbf{x}}
\mathbf{x}
\mathbf{K}
\mathbf{x}
(-1)

controlador

state feedback

retroalimentación negativa

Observadores para sistemas LTI

???

observador de estado

\hat{\mathbf{x}} \approx \mathbf{x}

(valor) estimado del estado

\mathbf{B}
\boldsymbol{+}
\boldsymbol{\int}
\mathbf{C}
\mathbf{A}
\mathbf{u}
\mathbf{y}
\dot{\mathbf{x}}
\mathbf{x}
\mathbf{K}
\mathbf{x}
(-1)

controlador

state feedback

retroalimentación negativa

Observadores para sistemas LTI

???

observador de estado

\hat{\mathbf{x}} \approx \mathbf{x}

(valor) estimado del estado

\mathbf{B}
\boldsymbol{+}
\boldsymbol{\int}
\mathbf{C}
\mathbf{A}
\mathbf{u}
\mathbf{y}
\dot{\mathbf{x}}
\mathbf{x}
\mathbf{K}
\mathbf{x}
(-1)

controlador

state feedback

retroalimentación negativa

Observadores para sistemas LTI

\hat{\mathbf{x}} \approx \mathbf{x}

(valor) estimado del estado

\boldsymbol{???}

¿Qué es?

¿Cuándo funciona?

\mathbf{y}

Es un estimador

???

Sistema que genera estimados | estimaciones

\triangleq
\hat{\mathbf{x}} \approx \mathbf{x}

Según Luenberger:

\mathbf{y}
\hat{\mathbf{x}} \approx \mathbf{x}

Es un estimador

???

Sistema que genera estimados | estimaciones

\triangleq
\dot{\hat{\mathbf{x}}}=\mathbf{A}\hat{\mathbf{x}}+\mathbf{B}\mathbf{u}+\mathbf{L}\left(\mathbf{y}-\hat{\mathbf{y}}\right)
\dot{\hat{\mathbf{x}}}=\mathbf{A}\hat{\mathbf{x}}+\mathbf{B}\mathbf{u}+\mathbf{L}\left(\mathbf{y}-\hat{\mathbf{y}}\right)

Observadores de Luenberger

\dot{\hat{\mathbf{x}}}=\mathbf{A}\hat{\mathbf{x}}+\mathbf{B}\mathbf{u}+\mathbf{L}\left(\mathbf{y}-\hat{\mathbf{y}}\right)

Predicción

Emplea lo que se conoce del sistema.

Observadores de Luenberger

\dot{\hat{\mathbf{x}}}=\mathbf{A}\hat{\mathbf{x}}+\mathbf{B}\mathbf{u}+\mathbf{L}\left(\mathbf{y}-\hat{\mathbf{y}}\right)

Corrección

Emplea las mediciones para corregir la predicción.

Observadores de Luenberger

Predicción

Emplea lo que se conoce del sistema.

\dot{\hat{\mathbf{x}}}=\mathbf{A}\hat{\mathbf{x}}+\mathbf{B}\mathbf{u}+\mathbf{L}\left(\mathbf{y}-\hat{\mathbf{y}}\right)

matriz de ganancias \(\in\mathbb{R}^{n \times p}\)

mediciones

salida según el modelo LTI \(\hat{\mathbf{y}}=\mathbf{C}\hat{\mathbf{x}}\)

Observadores de Luenberger

Corrección

Emplea las mediciones para corregir la predicción.

Predicción

Emplea lo que se conoce del sistema.

Cuando podemos reconstruir al estado a partir de las mediciones.

¿Cuándo funciona el observador?

Cuando podemos reconstruir al estado a partir de las mediciones.

\(\Rightarrow\) Observabilidad

¿Cuándo funciona el observador?

Cuando podemos reconstruir al estado a partir de las mediciones.

\(\Rightarrow\) Observabilidad

Veremos que, en general:

Controlabilidad \(\sim\) Observabilidad

Controlador \(\sim\) Observador

Control \(\sim\) Observación

¿Cuándo funciona el observador?

Un sistema LTI es completamente observable sí y sólo si su matriz de observabilidad

Observabilidad

tiene rango

Omega = obsv(sys)
rank(Omega)

igual al orden (número de variables de estado = \(n\)) del sistema.

Ya que sabemos cómo estabilizar, codifiquemos el problema de observación como uno de estabilización.

Idea:

El problema de observación

Ya que sabemos cómo estabilizar, codifiquemos el problema de observación como uno de estabilización.

Idea:

El problema de observación

Error de estimación (a estabilizar).

\mathbf{e}=\hat{\mathbf{x}}-\mathbf{x}

Idea:

El problema de observación

\mathbf{e}=\hat{\mathbf{x}}-\mathbf{x}

Si el observador funciona, entonces \(\mathbf{e}\to\mathbf{0}\) cuando \(t\to\infty\).

Ya que sabemos cómo estabilizar, codifiquemos el problema de observación como uno de estabilización.

Error de estimación (a estabilizar).

El problema de observación

\dot{\mathbf{e}}=\dot{\hat{\mathbf{x}}}-\dot{\mathbf{x}}= \mathbf{A}\hat{\mathbf{x}}+\mathbf{B}\mathbf{u}+\mathbf{L}\left(\mathbf{y}-\hat{\mathbf{y}}\right)-\left(\mathbf{A}\mathbf{x}+\mathbf{B}\mathbf{u}\right) \\ =\mathbf{A}\hat{\mathbf{x}}-\mathbf{L}\left(\mathbf{C}\hat{\mathbf{x}}-\mathbf{C}\mathbf{x}\right)-\mathbf{A}\mathbf{x} \\ =\mathbf{A}\left(\hat{\mathbf{x}}-\mathbf{x}\right)-\mathbf{L}\mathbf{C}\left(\hat{\mathbf{x}}-\mathbf{x}\right) =\mathbf{A}\mathbf{e}-\mathbf{L}\mathbf{C}\mathbf{e}

El problema de observación

\dot{\mathbf{e}}=\dot{\hat{\mathbf{x}}}-\dot{\mathbf{x}}= \mathbf{A}\hat{\mathbf{x}}+\mathbf{B}\mathbf{u}+\mathbf{L}\left(\mathbf{y}-\hat{\mathbf{y}}\right)-\left(\mathbf{A}\mathbf{x}+\mathbf{B}\mathbf{u}\right) \\ =\mathbf{A}\hat{\mathbf{x}}-\mathbf{L}\left(\mathbf{C}\hat{\mathbf{x}}-\mathbf{C}\mathbf{x}\right)-\mathbf{A}\mathbf{x} \\ =\mathbf{A}\left(\hat{\mathbf{x}}-\mathbf{x}\right)-\mathbf{L}\mathbf{C}\left(\hat{\mathbf{x}}-\mathbf{x}\right) =\mathbf{A}\mathbf{e}-\mathbf{L}\mathbf{C}\mathbf{e}

entonces

\dot{\mathbf{e}}=\left(\mathbf{A}-\mathbf{L}\mathbf{C}\right)\mathbf{e}=\mathbf{A}_{c\ell}\mathbf{e}
\mathbf{A}_{c\ell}

El problema de observación

\dot{\mathbf{e}}=\dot{\hat{\mathbf{x}}}-\dot{\mathbf{x}}= \mathbf{A}\hat{\mathbf{x}}+\mathbf{B}\mathbf{u}+\mathbf{L}\left(\mathbf{y}-\hat{\mathbf{y}}\right)-\left(\mathbf{A}\mathbf{x}+\mathbf{B}\mathbf{u}\right) \\ =\mathbf{A}\hat{\mathbf{x}}-\mathbf{L}\left(\mathbf{C}\hat{\mathbf{x}}-\mathbf{C}\mathbf{x}\right)-\mathbf{A}\mathbf{x} \\ =\mathbf{A}\left(\hat{\mathbf{x}}-\mathbf{x}\right)-\mathbf{L}\mathbf{C}\left(\hat{\mathbf{x}}-\mathbf{x}\right) =\mathbf{A}\mathbf{e}-\mathbf{L}\mathbf{C}\mathbf{e}

entonces

\dot{\mathbf{e}}=\left(\mathbf{A}-\mathbf{L}\mathbf{C}\right)\mathbf{e}=\mathbf{A}_{c\ell}\mathbf{e}

En esencia, es el mismo problema que teníamos para el caso de control (!)

\mathbf{A}_{c\ell}

El diseño de observadores (para sistemas LTI) se reduce a seleccionar los valores de \(\mathbf{L}\) tal que todos los eigenvalores de \(\mathbf{A}_{c\ell}\) se encuentren en el lado izquierdo del plano complejo.

 1. Pole placement

 2. Filtro de Kalman en estado estacionario

Selección de la matriz de ganancias

L = place(sys.A', sys.C', p)'
\approx
L = lqr(sys.A', sys.C', sys.B*sys.B', eye(length(y)))'

Encuentre la matriz de ganancias del observador de Luenberger que permite observar el estado del siguiente sistema (linealización del modelo pancreático):

\begin{cases} \dot{\mathbf{x}}=\begin{bmatrix} -0.2956 & -0.007992 & 0 \\ 0.5 & 0 & 0 \\ 0 & 1 & 0 \end{bmatrix}\mathbf{x}+\begin{bmatrix} 0.25 \\ 0 \\ 0 \end{bmatrix}u \\ y=\begin{bmatrix} 0 & 0 & -0.1431 \end{bmatrix}\mathbf{x} \end{cases}

Ejemplo

Ejemplo

Encuentre la matriz de ganancias del observador de Luenberger que permite observar el estado del siguiente sistema (linealización del modelo pancreático):

\begin{cases} \dot{\mathbf{x}}=\begin{bmatrix} -0.2956 & -0.007992 & 0 \\ 0.5 & 0 & 0 \\ 0 & 1 & 0 \end{bmatrix}\mathbf{x}+\begin{bmatrix} 0.25 \\ 0 \\ 0 \end{bmatrix}u \\ y=\begin{bmatrix} 0 & 0 & -0.1431 \end{bmatrix}\mathbf{x} \end{cases}

Ya con la matriz de ganancias,

¿cómo implementamos el observador?

\mathbf{B}
\boldsymbol{+}
\boldsymbol{\int}
\mathbf{C}
\mathbf{A}
\mathbf{u}
\mathbf{y}
\dot{\mathbf{x}}
\mathbf{x}

Implementación del observador

\mathbf{B}
\boldsymbol{+}
\boldsymbol{\int}
\mathbf{C}
\mathbf{A}
\mathbf{u}
\mathbf{y}
\dot{\mathbf{x}}
\mathbf{x}
\hat{\mathbf{x}} \approx \mathbf{x}

Implementación del observador

\mathbf{B}
\boldsymbol{+}
\boldsymbol{\int}
\mathbf{C}
\mathbf{A}
\mathbf{u}
\mathbf{y}
\dot{\mathbf{x}}
\mathbf{x}
\mathbf{K}
(-1)
\hat{\mathbf{x}} \approx \mathbf{x}
-\mathbf{K}\hat{\mathbf{x}}

Implementación del observador

\mathbf{B}
\boldsymbol{+}
\boldsymbol{\int}
\mathbf{C}
\mathbf{A}
\mathbf{u}
\mathbf{y}
\dot{\mathbf{x}}
\mathbf{x}
\mathbf{K}
(-1)
\hat{\mathbf{x}} \approx \mathbf{x}
-\mathbf{K}\hat{\mathbf{x}}

software

Implementación del observador

\mathbf{B}
\boldsymbol{+}
\boldsymbol{\int}
\mathbf{C}
\mathbf{A}
\mathbf{u}
\mathbf{y}
\dot{\hat{\mathbf{x}}}
\hat{\mathbf{x}}
\hat{\mathbf{x}} \approx \mathbf{x}
\mathbf{L}
\boldsymbol{-}
\boldsymbol{+}
\hat{\mathbf{y}}

Implementación del observador

Implementación del observador

¿Cómo se vería el código de esto?

\hat{\mathbf{x}}_{k+1}=\hat{\mathbf{x}}_k+\left[\mathbf{A}\hat{\mathbf{x}}_k+\mathbf{B}\mathbf{u}_k+\mathbf{L}\left(\mathbf{y}_k-\mathbf{C}\hat{\mathbf{x}}_k\right)\right]\Delta t

Implementación del observador

¿Cómo se vería el código de esto?

\hat{\mathbf{x}}_{k+1}=\hat{\mathbf{x}}_k+\left[\mathbf{A}\hat{\mathbf{x}}_k+\mathbf{B}\mathbf{u}_k+\mathbf{L}\left(\mathbf{y}_k-\mathbf{C}\hat{\mathbf{x}}_k\right)\right]\Delta t

entrada del integrador

Implementación del observador

¿Cómo se vería el código de esto?

\hat{\mathbf{x}}_{k+1}=\hat{\mathbf{x}}_k+\left[\mathbf{A}\hat{\mathbf{x}}_k+\mathbf{B}\mathbf{u}_k+\mathbf{L}\left(\mathbf{y}_k-\mathbf{C}\hat{\mathbf{x}}_k\right)\right]\Delta t
\hat{\mathbf{x}}_{k+1}=\left(\mathbf{I}+\mathbf{A}\Delta t-\mathbf{L}\mathbf{C}\Delta t\right)\hat{\mathbf{x}}_k +\left(\mathbf{B}\Delta t\right)\mathbf{u}_k+\left(\mathbf{L}\Delta t\right)\mathbf{y}_k

entrada del integrador

Esta expresión vectorial se puede descomponer en ecuaciones de diferencias individuales.

¿Cuáles serían las ecuaciones de diferencias que implementan el observador de estado diseñado anteriormente?

Continuación del ejemplo

¿Cuáles serían las ecuaciones de diferencias que implementan el observador de estado diseñado anteriormente?

\hat{x}_1[k+1]= 0.9704\hat{x}_1[k] -0.0008\hat{x}_2[k] -1.1668\hat{x}_3[k] +0.0250u[k] -8.1517y[k] \\ \hat{x}_2[k+1]= 0.0500\hat{x}_1[k] +1.0000\hat{x}_2[k] -1.1441\hat{x}_3[k] -7.9932y[k] \\ \hat{x}_3[k+1]= 0.1000\hat{x}_2[k] +0.3996\hat{x}_3[k] -4.1949y[k]

Continuación del ejemplo

\hat{x}_1[0]=\hat{x}_2[0]=\hat{x}_3[0]=0

condiciones iniciales

1. Dualidad entre los problemas de control y observación:

Observamos que se emplearon las mismas herramientas para resolver ambos problemas.

Control:

Observación:

\mathbf{A}_{c\ell}=\mathbf{A}-\mathbf{B}\mathbf{K}
\mathbf{A}_{c\ell}=\mathbf{A}-\mathbf{L}\mathbf{C}
\to \mathbf{A}_{c\ell}^\top=\mathbf{A}^\top-\mathbf{C}^\top\mathbf{L}^\top
\sigma\left(\mathbf{A}_{c\ell}\right)=\sigma\left(\mathbf{A}_{c\ell}^\top\right)

Algunos detalles adicionales

1. Dualidad entre los problemas de control y observación:

Observamos que se emplearon las mismas herramientas para resolver ambos problemas.

Control:

Observación:

\mathbf{A}_{c\ell}=\mathbf{A}-\mathbf{B}\mathbf{K}
\mathbf{A}_{c\ell}=\mathbf{A}-\mathbf{L}\mathbf{C}
\to \mathbf{A}_{c\ell}^\top=\mathbf{A}^\top-\mathbf{C}^\top\mathbf{L}^\top
\sigma\left(\mathbf{A}_{c\ell}\right)=\sigma\left(\mathbf{A}_{c\ell}^\top\right)

duales equivalentes

sys1 = ss(A, B, C, []);
sys2 = ss(A', C', [], []);
obsv(sys1) == ctrb(sys2)'

Algunos detalles adicionales

2. Diseño independiente de controlador y observador:

El principio de separación nos garantiza (para sistemas LTI) que las matrices \(\mathbf{K}\) y \(\mathbf{L}\) no se afectan entre sí.

\begin{bmatrix} \dot{\mathbf{x}} \\ \dot{\mathbf{e}} \end{bmatrix}= \begin{bmatrix} \mathbf{A}-\mathbf{B}\mathbf{K} & \mathbf{0} \\ \mathbf{0} & \mathbf{A}-\mathbf{L}\mathbf{C} \end{bmatrix} \begin{bmatrix} \mathbf{x} \\ \mathbf{e} \end{bmatrix}

Dinámica completa (estabilización + observación).

Algunos detalles adicionales

2. Diseño independiente de controlador y observador:

El principio de separación nos garantiza (para sistemas LTI) que las matrices \(\mathbf{K}\) y \(\mathbf{L}\) no se afectan entre sí.

\begin{bmatrix} \dot{\mathbf{x}} \\ \dot{\mathbf{e}} \end{bmatrix}= \begin{bmatrix} \mathbf{A}-\mathbf{B}\mathbf{K} & \mathbf{0} \\ \mathbf{0} & \mathbf{A}-\mathbf{L}\mathbf{C} \end{bmatrix} \begin{bmatrix} \mathbf{x} \\ \mathbf{e} \end{bmatrix}

Dinámica completa (estabilización + observación).

Algunos detalles adicionales

3. Primero observación y luego estabilización:

No se recomienda hacer control hasta que se tenga un buen estimado del estado, por lo que el observador debe ser más agresivo que el control.

No hay problema con que el observador sea agresivo ya que es software, sólo debe evitarse emplear los primeros estimados porque pueden ser muy grandes (puede "apagarse" el control al inicio).

Algunos detalles adicionales

BE3024 - Lecture 12 (2024)

By Miguel Enrique Zea Arenales

BE3024 - Lecture 12 (2024)

  • 111