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 describen como la entrada influye sobre los estados. Los autovalores de describe como el estado inicial influye en la salida cuando la entrada es nula
Gramiano de Controlabilidad
Controlabilidad: Un proceso es completamente controlable si mediante alguna acción control finita se puede llevar el vector de estado desde un estado inicial cualquiera , a un estado final arbitrario en un tiempo finito también arbitrario.
La matriz es llamada como Gramiano de Controlabilidad y viene dado por una matriz cuadrada :
\mathbf{W_c}=\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 (la parte real de los autovalores son positivas o cero).
Si el par (A, B) es controlable, entonces es una matriz definida positiva (la parte real de los autovalores son positivas). Luego es invertible y el rango es n.
En MATLAB puede Resolverse de dos formas:
%Usando la Ecuación de Lyapunov Wc=lyap(A,B*B') %Usando la función del Gramiano Wc=gram(ss(A,B,C,D),'c')
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 y de una determinada entrada .
A partir de esa condición inicial cualquiera se desea llegar a un estado final 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]
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 con un desplazamiento de tiempo , quiere decir que el gramiano podemos expresarlo como:
\mathbf{W_c}=\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 o el gramiano de controlabilidad 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
%Usando la Ecuación de Lyapunov Discreta Wc=dlyap(A,B*B') %Usando la función del Gramiano sistema discreto Wc=gram(ss(A,B,C,D,Ts),'c')
Control por Realimentación de Estados
Función de Transferencia y Variables de Estado
Descomposición Canónica
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.
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 (desconocido), existe un tiempo finito tal que el conocimiento de
la entrada y la salida sobre el intervalo es suficiente para determinar en forma única el estado inicial . En caso contrario el sistema es no observable.
La matriz es llamada como Gramiano de Observabilidad y viene dado por:
\mathbf{W}_o=\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 (la parte real de los autovalores son positivas o cero).
Si el par (A, C) es observable, entonces es una matriz definida positiva (la parte real de los autovalores son positivas). Luego es invertible y el rango es n.
En MATLAB puede Resolverse de dos formas:
%Usando la Ecuación de Lyapunov Wc=lyap(A',C'*C) %Usando la función del Gramiano Wc=gram(ss(A,B,C,D),'o')
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
%Usando la Ecuación de Lyapunov Discreta Wc=dlyap(A',C'*C) %Usando la función del Gramiano sistema discreto Wc=gram(ss(A,B,C,D,Ts),'o')
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}=\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 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.5
rango(\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=\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 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.18
rango(\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 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.1889
rango(\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 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.251
rango(\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
%% Ejemplo de Gramiano de Controlabilidad y Observabilidad % Sergio Andres Castaño Giraldo % Rio de Janeiro - 2019 % https://controlautomaticoeducacion.com/ %_________________________________________________________ clc clear all close all %Sistema A=[0 1 0;0 0 1;-6 -11 -6]; B=[1;0;0]; C=[20 9 1]; D=0; sys=ss(A,B,C,D); %% Controlabilidad %Solución de la Ecuación de Lyapunov BB=B*B'; Wc1=lyap(A,BB) %Solución a través de la funcion Gramiano Wc2=gram(sys,'c') % El sistema es controlable si la matriz Wc es definida positiva % (autovalores positivos) disp('Autovalores de Wc:') eig(Wc1) % También podemos verificar que el sistema es controlable analizando el % rango de la matriz donde debe ser rango completo rank(Wc)=3 disp('Rango de la Matriz Wc') rank(Wc1) %% Observabilidad %Solución de la Ecuación de Lyapunov CC=C'*C; Wo1=lyap(A,CC) %Solución a través de la funcion Gramiano Wo2=gram(sys,'o') % El sistema es observable si la matriz Wo es definida positiva % (autovalores positivos) disp('Autovalores de Wo:') eig(Wo1) % También podemos verificar que el sistema es observable analizando el % rango de la matriz donde debe ser rango completo rank(Wo)=3 disp('Rango de la Matriz Wo') rank(Wo1)
Caso Discreto
%% Ejemplo de Gramiano de Controlabilidad y Observabilidad DISCRETO % Sergio Andres Castaño Giraldo % Rio de Janeiro - 2019 % https://controlautomaticoeducacion.com/ %_________________________________________________________ clc clear all close all %Sistema Discreto A=[0 1 0;0 0 1;-0.6 -0.7 -0.5]; B=[1;0;0]; C=[1 0 0]; D=0; Ts= 1; %Periodo de Muestreo sys=ss(A,B,C,D,Ts); %% Controlabilidad %Solución de la Ecuación de Lyapunov Discreta BB=B*B'; Wc1=dlyap(A,BB) %Solución a través de la funcion Gramiano Wc2=gram(sys,'c') % El sistema es controlable si la matriz Wc es definida positiva % (autovalores positivos) disp('Autovalores de Wc:') eig(Wc1) % También podemos verificar que el sistema es controlable analizando el % rango de la matriz donde debe ser rango completo rank(Wc)=3 disp('Rango de la Matriz Wc') rank(Wc1) %% Observabilidad %Solución de la Ecuación de Lyapunov Discreta CC=C'*C; Wo1=dlyap(A',CC) %Solución a través de la funcion Gramiano Wo2=gram(sys,'o') % El sistema es observable si la matriz Wo es definida positiva % (autovalores positivos) disp('Autovalores de Wo:') eig(Wo1) % También podemos verificar que el sistema es observable analizando el % rango de la matriz donde debe ser rango completo rank(Wo)=3 disp('Rango de la Matriz Wo') rank(Wo1)
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.