Saltar al contenido
Control Automático Educación

Gramianos de Controlabilidad y Observabilidad

Hola controleros y controleras bienvenidos nuevamente a nuestro curso Gratuito de Sistemas Dinámicos Lineales (LTI) donde en la clase del día de hoy aprenderemos como usar los Gramianos de Controlabilidad y Observabilidad usando la ecuación de Lyapunov.

Gramianos de Controlabilidad y Observabilidad

Primero será importante entender para que sirven los Gramianos.

\mathbf{\dot{x}}(t)=\mathbf{Ax}(t)+\mathbf{Bu}(t)\\ \mathbf{y}(t)=\mathbf{Cx}(t)+\mathbf{Du}(t)

Si bien podemos encontrar la observabilidad y controlabilidad del sistema montando las marices que vimos en la entrada anterior (click aqui), los gramianos además de darnos la información de controlabilidad y observabilidad nos permiten conocer la facilidad de controlar o de observar el sistema, por ejemplo los autovalores de W_c describen como la entrada u(t) influye sobre los estados. Los autovalores de W_o describe como el estado inicial x_0(t) influye en la salida y(t) cuando la entrada es nula u(t)=0

Gramiano de Controlabilidad

Controlabilidad: Un proceso es completamente controlable si mediante alguna acción control finita u(t) se puede llevar el vector de estado desde un estado inicial cualquiera x(t_0)=x_0, a un estado final arbitrario x(t_f)=x_f en un tiempo finito T=t_f - t_0 también arbitrario.

La matriz W_c es llamada como Gramiano de Controlabilidad y viene dado por una matriz cuadrada n\times n:

\mathbf{W_c}(t)=\int^{\infty}_0e^{\mathbf{A}\tau}\mathbf{BB}^Te^{\mathbf{A}^T\tau}d\tau,\ \in \Re^{n\times n}

Si el sistema es controlable y si también es estable (autovalores de A con parte real negativa), el gramiano se calcula sin necesidad de resolver la integral, basta con verificar si la siguiente Ecuación de Lyapunov tendrá solución, donde simplemente tendremos un sistema de ecuaciones lineales (puede suceder que si el sistema es inestable, la ecuación mostrada a continuación no tenga solución)

\mathbf{AW_c+W_cA^T}=-\mathbf{BB^T}

Esto nos indica que la ecuación nos va a decir si el sistema es controlable y estable.

El gramiano de controlabilidad es siempre una matriz semidefinida positiva W_c\geq0 (la parte real de los autovalores son positivas o cero).

Si el par (A, B) es controlable, entonces W_c es una matriz definida positiva W_c>0 (la parte real de los autovalores son positivas). Luego W_c es invertible y el rango es n.

En MATLAB puede Resolverse de dos formas:

Demostración

La ley de control que lleva el estado de un instante inicial a un instante final viene dado por:

\mathbf{x}(t)=e^{\mathbf{A}t}\mathbf{x}(0)+\int_{0}^{t}e^{\mathbf{A}(t-\tau)}\mathbf{Bu}(\tau)d\tau

el cual depende de una condición inicial \mathbf{x}(0) y de una determinada entrada \mathbf{u}(\tau).

A partir de esa condición inicial cualquiera se desea llegar a un estado final \mathbf{x}(t_1) donde deseo determinar cual es la entrada que consigue ese cambio., Para eso basta reescribir la ecuación anterior como:

\mathbf{x}(t_1)=e^{\mathbf{A}t_1}\mathbf{x}_0+\int_{0}^{t_1}e^{\mathbf{A}(t_1-\tau)}\mathbf{Bu}(\tau)d\tau

Partiendo de la siguiente señal de entrada:

\mathbf{u}(t)=-\mathbf{B}^Te^{\mathbf{A}^T(t_1-t)}\mathbf{W}_c^{-1}(t_1) \left[ e^{\mathbf{A}t_1}\mathbf{x}_0-\mathbf{x}_1 \right]

Sustituyendo esa entrada en la ecuación

\mathbf{x}(t_1)=e^{\mathbf{A}t_1}\mathbf{x}_0-\int_{0}^{t_1}e^{\mathbf{A}(t_1-\tau)}\mathbf{B} \mathbf{B}^Te^{\mathbf{A}^T(t_1-\tau)}\mathbf{W}_c^{-1}(t_1) \left[ e^{\mathbf{A}t_1}\mathbf{x}_0-\mathbf{x}_1 \right]d\tau \mathbf{x}(t_1)=e^{\mathbf{A}t_1}\mathbf{x}_0-\left(\int_{0}^{t_1}e^{\mathbf{A}(t_1-\tau)}\mathbf{B} \mathbf{B}^Te^{\mathbf{A}^T(t_1-\tau)}d\tau\right)\mathbf{W}_c^{-1}(t_1) \left[ e^{\mathbf{A}t_1}\mathbf{x}_0-\mathbf{x}_1 \right]

t_1 es el valor del tiempo en el instante final que yo deseo. Cuanto menor sea ese tiempo, la energia de control comenzará a tender a infinito, porque quiere decir que deseo mover el estado en un tiempo muy pequeño.

Si vemos, la ecuación dentro de los parentesis corresponden al gramiano de controlabilidad evaluado hasta el tiempo t_1 con un desplazamiento de tiempo (\tau), quiere decir que el gramiano podemos expresarlo como:

\mathbf{W_c}(t)=\int^{t_1}_0e^{\mathbf{A}(t_1-\tau)}\mathbf{BB}^Te^{\mathbf{A}^T(t_1-\tau)}d\tau

Sustituyendo en la ecuación de los estados tenemos que:

\mathbf{x}(t_1)=e^{\mathbf{A}t_1}\mathbf{x}_0-\mathbf{W}_c(t_1)\mathbf{W}_c^{-1}(t_1) \left[ e^{\mathbf{A}t_1}\mathbf{x}_0-\mathbf{x}_1 \right] \mathbf{x}(t_1)=e^{\mathbf{A}t_1}\mathbf{x}_0- e^{\mathbf{A}t_1}\mathbf{x}_0+\mathbf{x}_1=\mathbf{x}_1

Controlabilidad via Gramiano

Partiendo del sistema:

\mathbf{\dot{x}}(t)=\mathbf{Ax}(t)+\mathbf{Bu}(t)\\ \mathbf{y}(t)=\mathbf{Cx}(t)+\mathbf{Du}(t)

El par (A,B) es controlable si y solo si la matriz de controlabilidad \mathbf{C}_o o el gramiano de controlabilidad \mathbf{W}_c son de rango n.

rango(\mathbf{C}_o)=rango(\mathbf{W}_c)=n

Gramiano de Controlabilidad Discreto

Considerando el siguiente sistema LTI en tiempo discreto:

\mathbf{{x}}(k+1)=\mathbf{Ax}(k)+\mathbf{Bu}(k)\\ \mathbf{y}(k)=\mathbf{Cx}(k)+\mathbf{Du}(k)

Para determinar la controlabilidad a través de la matriz de controlabilidad, sería exactamente la misma matriz:

C_o=\begin{bmatrix} B & AB & A^2B & \cdots & A^{n-1}B \end{bmatrix}

Sin embargo para determinar la controlabilidad a través del Gramiano, hay un pequeño cambio, recordando que la integral en tiempo discreto se transforma en un sumatorio, tenemos que el Gramiano Discreto es representado como:

\mathbf{W}_{dc}=\sum_{m=0}^{\infty}\mathbf{A}^m\mathbf{BB}^T(\mathbf{A}^T)^m

Donde nuevamente para obtener la solución vamos a necesitar que el sistema sea estable, para poder emplear la ecuación de Lyapunov en Tiempo Discreto dado por:

\mathbf{A}\mathbf{W}_{dc}\mathbf{A}^T-\mathbf{W}_{dc}+\mathbf{BB}^T=0

En MATLAB

Gramiano de Observabilidad

La idea de observabilidad se relaciona con la posibilidad de conocer el valor del estado de un sistema, a partir del conocimiento de la evolución de la entrada y de la salida que genera.

Gramiano de Observabilidad

La controlabilidad estudia la relación entrada-estado, la observabilidad la relación estado-salida. Esencialmente un sistema es observable si cada variable de estado del sistema afecta alguna de las salidas

Observabilidad: Un proceso es observable si para cualquier estado inicial x(0)=x_0 (desconocido), existe un tiempo finito t_f tal que el conocimiento de
la entrada u(t) y la salida y(t) sobre el intervalo [0  t_f] es suficiente para determinar en forma única el estado inicial x_0. En caso contrario el sistema es no observable.

La matriz \mathbf{W}_o es llamada como Gramiano de Observabilidad y viene dado por:

\mathbf{W}_o(t)=\int^{\infty}_0e^{\mathbf{A}^T\tau}\mathbf{C}^T\mathbf{C}e^{\mathbf{A}^T\tau}d\tau

Si el sistema es observable y si también es estable (autovalores de A con parte real negativa) el gramiano se calcula sin necesidad de resolver la integral, basta con verificar si la siguiente ecuación de Lyapunov tendrá solución, donde simplemente tendremos un sistema de ecuaciones lineales (puede suceder que si el sistema es inestable, la ecuación mostrada a continuación no tenga solución)

\mathbf{A}^T\mathbf{W}_o+\mathbf{W}_o\mathbf{A}=-\mathbf{C}^T\mathbf{C}

El gramiano de observabilidad es siempre una matriz semidefinida positiva W_o\geq0 (la parte real de los autovalores son positivas o cero).

Si el par (A, C) es observable, entonces W_o es una matriz definida positiva W_o>0 (la parte real de los autovalores son positivas). Luego W_o es invertible y el rango es n.

En MATLAB puede Resolverse de dos formas:

Gramiano de Observabilidad Discreto

Considerando el siguiente sistema LTI en tiempo discreto:

\mathbf{{x}}(k+1)=\mathbf{Ax}(k)+\mathbf{Bu}(k)\\\mathbf{y}(k)=\mathbf{Cx}(k)+\mathbf{Du}(k)

Para determinar la observabilidad a través de la matriz de observabilidad, sería exactamente la misma matriz:

O=\begin{bmatrix} C&CA&CA^2&\cdots&CA^{n-1} \end{bmatrix}^T

Sin embargo para determinar la observabildiad a través del Gramiano, hay un pequeño cambio, recordando que la integral en tiempo discreto se transforma en un sumatório, tenemos que el Gramiano Discreto es representado como:

\mathbf{W}_{do}=\sum_{m=0}^{\infty}(\mathbf{A}^T)^m\mathbf{C}^T\mathbf{C}\mathbf{A}^m

Donde nuevamente para obtener la solución vamos a necesitar que el sistema sea estable, para poder emplear la ecuación de Lyapunov en Tiempo Discreto dado por:

\mathbf{A}^T\mathbf{W}_{do}\mathbf{A}-\mathbf{W}_{do}+\mathbf{C}^T\mathbf{C}=0

En MATLAB

Ejemplo Gramianos caso Continuo

Dado el siguiente sistema:

\mathbf{\dot{x}}(t)=\begin{bmatrix} 0 & 1 & 0\\ 0 & 0 & 1\\ -6 & -11 & -6 \end{bmatrix}\mathbf{x}(t)+ \begin{bmatrix} 1\\ 0\\ 0 \end{bmatrix}\mathbf{u}(t) \mathbf{y}(t)=\begin{bmatrix} 20 & 9 & 1 \end{bmatrix}\mathbf{x}(t)

Vamos a determinar el graminiano. Para eso sabemos que las matrices del sistema son:

A=\begin{bmatrix} 0 & 1 & 0\\ 0 & 0 & 1\\ -6 & -11 & -20 \end{bmatrix}\\B=\begin{bmatrix} 1\\ 0\\ 0 \end{bmatrix}\\C=\begin{bmatrix} 20 & 9 & 1 \end{bmatrix}

Antes, debemos garantizar que el sistema sea estable

det(\lambda\mathbf{I}-\mathbf{A})=0

Resolviendo, se determina que el sistema es estable, pues todos los autovalores del sistema son negativos:

\lambda_1=-1,\ \lambda_2=-2,\ \lambda_3=-3

Gramiano de Controlabilidad

Calculamos el Gramiano de Controlabilidad:

\mathbf{W_c}(t)=\int^{\infty}_0e^{\mathbf{A}\tau}\mathbf{BB}^Te^{\mathbf{A}^T\tau}d\tau,\ \in \Re^{n\times n}\mathbf{AW_c+W_cA^T}=-\mathbf{BB^T}

donde:

-\mathbf{BB^T}=\begin{bmatrix} -1 & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & 0 \end{bmatrix}

Sabiendo que en la resolución de la ecuación de Lyapunov el Gramiano debe ser simetrico:

\mathbf{W_c}=\begin{bmatrix} a & d & e\\ d & b & f\\ e & f & c \end{bmatrix}

Sustituyendo en la ecuación de Lyapunov

\begin{bmatrix} 0 & 1 & 0\\ 0 & 0 & 1\\ -6 & -11 & -6 \end{bmatrix}\begin{bmatrix} a & d & e\\ d & b & f\\ e & f & c \end{bmatrix}+ \begin{bmatrix} a & d & e\\ d & b & f\\ e & f & c \end{bmatrix} \begin{bmatrix} 0 & 0 & -6\\ 1 & 0 & -11\\ 0 & 1 & -6 \end{bmatrix}= \begin{bmatrix} -1 & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & 0 \end{bmatrix}

Resolviendo

\begin{bmatrix} d & b & f\\ e & f & c\\ -6a-11d-6e & -6d-11b-6f & -6e-11f-6c \end{bmatrix}+ \begin{bmatrix} d & e & -6a-11d-6e\\ b & f & -6d-11b-6f\\ f & c & -6e-11f-6c \end{bmatrix}= \begin{bmatrix} -1 & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & 0 \end{bmatrix}

Por fin llegamos a:

\begin{bmatrix} 2d & b+e & -6a-11d-6e+f\\ e+b & 2f & -6d-11b-6f+c\\ -6a-11d-6e+f & -6d-11b-6f+c & -12e-22f-12c \end{bmatrix}= \begin{bmatrix} -1 & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & 0 \end{bmatrix}

Donde solucionando el sistema de ecuaciones, Igualando cada termino de ambas matrices, conseguimos llegar al Gramiano Controlable:

\mathbf{W_c}=\begin{bmatrix} a & d & e\\ d & b & f\\ e & f & c \end{bmatrix} =\begin{bmatrix} 1.2167 & -0.5 & -0.3\\ -0.5 & 0.3 & 0\\ -0.3 & 0 & 0.3 \end{bmatrix}

El sistema es controlable si la matriz \mathbf{W_c} es definida positiva, lo que implica que posee rango completo

det(\lambda\mathbf{I}-\mathbf{W_c})=0\lambda_1=0.0167,\ \lambda_2=0.3,\ \lambda_3=1.5rango(\mathbf{W}_c)=3

SISTEMA CONTROLABLE!!!

En la parte inferior de este POST, encontrarás como solucionar este mismo ejemplo utilizando el software de MATLAB.

Gramiano de Observabilidad

Calculamos el Gramiano de Observabilidad:

\mathbf{W}_o(t)=\int^{\infty}_0e^{\mathbf{A}^T\tau}\mathbf{C}^T\mathbf{C}e^{\mathbf{A}^T\tau}d\tau\\\mathbf{A}^T\mathbf{W}_o+\mathbf{W}_o\mathbf{A}=-\mathbf{C}^T\mathbf{C}

donde:

-\mathbf{C}^T\mathbf{C}=\begin{bmatrix} -400 & -180 & -20\\ -180 & -81 & -9\\ -20 & -9 & -1 \end{bmatrix}

Sabiendo que en la resolución de la ecuación de Lyapunov el Gramiano debe ser simetrico:

\mathbf{W_o}=\begin{bmatrix} a & d & e\\ d & b & f\\ e & f & c \end{bmatrix}

Sustituyendo en la ecuación de Lyapunov

\begin{bmatrix} 0 & 0 & -6\\ 1 & 0 & -11\\ 0 & 1 & -6 \end{bmatrix} \begin{bmatrix} a & d & e\\ d & b & f\\ e & f & c \end{bmatrix}+ \begin{bmatrix} a & d & e\\ d & b & f\\ e & f & c \end{bmatrix} \begin{bmatrix} 0 & 1 & 0\\ 0 & 0 & 1\\ -6 & -11 & -6 \end{bmatrix} = \begin{bmatrix} -400 & -180 & -20\\ -180 & -81 & -9\\ -20 & -9 & -1 \end{bmatrix}

Donde solucionando el sistema de ecuaciones, Igualando cada termino de ambas matrices, conseguimos llegar al Gramiano Observable:

\mathbf{W_o}=\begin{bmatrix} a & d & e\\ d & b & f\\ e & f & c \end{bmatrix} =\begin{bmatrix} 319.26 &202.60 & 33.33\\ 202.60 &131.70 & 22.10\\ 33.33 &22.10 & 3.76 \end{bmatrix}

El sistema es controlable si la matriz \mathbf{W_o} es definida positiva, lo que implica que posee rango completo

det(\lambda\mathbf{I}-\mathbf{W_o})=0\\\lambda_1=22.84,\ \lambda_2=311.45,\ \lambda_3=975.18rango(\mathbf{W}_o)=3

SISTEMA OBSERVABLE

Ejemplo Gramiano Discreto

Dado el siguiente sistema:

\mathbf{x}(k+1)=\begin{bmatrix} 0 & 1 & 0\\ 0 & 0 & 1\\ -0.6 & -0.7 & -0.5 \end{bmatrix}\mathbf{x}(k)+ \begin{bmatrix} 1\\ 0\\ 0 \end{bmatrix}\mathbf{u}(k)\mathbf{y}(k)=\begin{bmatrix} 1 & 0 & 0 \end{bmatrix}\mathbf{x}(k)

Antes, debemos garantizar que el sistema sea estable

det(\lambda\mathbf{I}-\mathbf{A})=0

Resolviendo, se determina que el sistema es estable, pues todos los autovalores del sistema están dentro del circulo unitario:

\lambda_1=-0.7081,\ \lambda_2=0.1040 + 0.9146i,\ \lambda_3=0.1040 – 0.9146i

Controlabilidad Discreta

Calculamos el Gramiano de Controlabilidad:

\mathbf{W}_{dc}=\sum_{m=0}^{\infty}\mathbf{A}^m\mathbf{BB}^T(\mathbf{A}^T)^m \mathbf{A}\mathbf{W}_{dc}\mathbf{A}^T-\mathbf{W}_{dc}+\mathbf{BB}^T=0

Realizando el mismo procedimiento visto en el ejemplo Anterior, vamos a llegar al siguiente Gramiano:

\mathbf{W}_{dc}=\begin{bmatrix} 1.9286 & -0.0714 & -0.5714\\ -0.0714 & 0.9286 & -0.0714\\ -0.5714 & -0.0714 & 0.9286 \end{bmatrix}

El sistema es controlable si la matriz \mathbf{W_c} es definida positiva, lo que implica que posee rango completo

det(\lambda\mathbf{I}-\mathbf{W}_{dc})=0\lambda_1=0.6384,\ \lambda_2=0.9585,\ \lambda_3=2.1889rango(\mathbf{W}_{dc})=3

SISTEMA DISCRETO CONTROLABLE

Observabilidad Discreta

Calculamos el Gramiano de Observabilidad:

\mathbf{W}_{do}=\sum_{m=0}^{\infty}(\mathbf{A}^T)^m\mathbf{C}^T\mathbf{C}\mathbf{A}^m \mathbf{A}^T\mathbf{W}_{do}\mathbf{A}-\mathbf{W}_{do}+\mathbf{C}^T\mathbf{C}=0

Realizando el mismo procedimiento visto en el ejemplo Anterior, vamos a llegar al siguiente Gramiano:

\mathbf{W}_{do}=\begin{bmatrix} 1.9286 &1.0119 &0.1190\\ 1.0119 & 3.0258 & 1.0913\\ 0.1190 & 1.0913 & 2.5794\\ \end{bmatrix}

El sistema es observable si la matriz \mathbf{W_o} es definida positiva, lo que implica que posee rango completo

det(\lambda\mathbf{I}-\mathbf{W}_{do})=0\\\lambda_1=1.128,\ \lambda_2=2.154,\ \lambda_3=4.251rango(\mathbf{W}_{do})=3

SISTEMA OBSERVABLE DISCRETO

Ejemplos en Matlab

A continuación te dejo los códigos en MATLAB vistos en los videos referentes a los ejemplos de este post. Sabes que para poder ver los videos basta compartir este post con tus colegas y amigos, asi ayudas a que el conocimiento se difunda.

Caso Continuo

Caso Discreto

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.