Ene 172017
 
6. Descomposición Canónica
CALIFICA EL POST

La decomposición canónica de las ecuaciones de estado nos ayuda a establecer la relación que existe entre la representación por variables de estado y la representación por matriz de función de transferencia.

 

Para comenzar, debemos recordar lo visto en la clase pasada de representación equivalente (Click aca para ver la clase pasada):

 

 

Teníamos que la transformación de similitud me permite representar mi sistema original en otro sistema equivalente, donde este concepto consiste en tomar mi sistema dado por:

\dot{x}(t)=Ax(t)+Bu(t)

y(t)=Cx(t)+Du(t)

Defino una matriz de similitud P, donde:

\xi(t)=Px(t),det(P)\neq0

Multiplico por P a la izquierda del sistema

P\dot{x}(t)=PAx(t)+PBu(t), x(0)

y(t)=Cx(t)+Du(t)

Recordando que: x(t)=P^{-1}\xi(t)

\dot{\xi}(t)=PAP^{-1}\xi(t)+PBu(t)

y(t)=CP^{-1}\xi(t)+Du(t)

Mi sistema transformado vendria dado entonces por:

\dot{\xi}(t)=\bar{A}\xi(t)+\bar{B}u(t)

y(t)=\bar{C}\xi(t)+Du(t)

donde \bar{A}=PAP^{-1}, \bar{B}=PB, \bar{C}=CP^{-1}.

 

Si determinamos la matriz de Controlabilidad para mi sistema original (tal como lo vimos en la entrada de controlabilidad y observabilidad) y determinamos la misma matriz de controlabilidad para mi sistema equivalente, podremos ver que la matriz de transformación de similitud (P), aparece en la relación de las dos matrices:

\bar{C_o}=PC_o

Y lo mismo ocurre en la matriz de Observabilidad:

\bar{O_b}=O_bP^{-1}

Como la matriz de similitud P es inversible (Osea que tiene rango completo) implica en que NOOOO se altera la matriz de Controlabilidad y Observabilidad cuando se hace una transformación de similitud del sistema.

 

Ahora cuando el sistema no sea controlable significa que algunos estados no son alcanzables para la entrada. Osea que no puedo modificar todos los estados generando una determinada entrada, entonces lo que podria hacer en esos casos es utilizar una transformación de similitud para separar el problema en dos partes, una parte donde se consiga controlar el sistema y otra parte donde NO lo consigo controlar a partir de la entrada. Con esa representación mi sistema queda particionado como:

 

\begin{bmatrix}\dot{\xi}\\ \dot{\xi}\end{bmatrix}=\begin{bmatrix}\bar{A}_c & \bar{A}_{12}\\0& \bar{A}_{\bar{c}}\end{bmatrix}  \begin{bmatrix}\xi\\ \xi\end{bmatrix}+\begin{bmatrix}\bar{B}\\ 0\end{bmatrix}u

y=\begin{bmatrix}\bar{C}_c & \bar{C}_{\bar{c}}\end{bmatrix}  \begin{bmatrix}\xi\\ \xi\end{bmatrix}+Du

 

En los estados la parcela controlable es la primera fila y la parcela no controlable es la segunda fila. Siempre que tenga estados no controlables va a aparecer un cero en la matriz de entrada B (como puede verse en la segunda fila de los estados).

 

Para obtener esa representación por medio de la matriz de similitud, lo que hago es saber como determinar la matriz P. Para eso se toma la matriz de controlabilidad de dimension n, dada por:

rank(C_o)=rank(\begin{bmatrix}B &AB &... &A^{n-1}B\end{bmatrix})=n_1<n

Como sabemos que mi matriz no va a ser controlable, pues nuestro rank nos va a dar [/latex]n_1[/latex], quiere decir que esa matriz de controlabilidad solo tendra [/latex]n_1[/latex] columnas linealmente independientes. Entonces se usan [/latex]n_1[/latex] columnas linealmente independientes para formar la inversa de la matriz de similitud P:

P^{-1}=\begin{bmatrix}q_1&...&q_{n_1}&...&q_n\end{bmatrix}

Pero notemos que para formar la matriz de similitud P, es necesario que tenga n columnas (dimension del sistema), entonces lo que hago es adicionar columnas arbitrariamente y que sean linealmente independientes en relación a las [/latex]n_1[/latex] columnas primeras de forma que la matriz P tenga rango completo.

Ahora si apenas se considera el SubSistema Controlable:

\dot{\xi}(t)=\bar{A}_c\xi(t)+\bar{B}_cu(t)

y(t)=\bar{C}_c\xi(t)+Du(t)

Sabemos que la dimension de ese subsistema sera [/latex]n_1[/latex] que era dado por el rango de la matriz de controlabilidad. Entonces aqui aparece un resultado muy interesante, si yo calculo la función de transferencia de ese subsistema menor y la función de transferencia del sistema grande (donde esta la parcela no controlable) vamos a encontrar que van a dar exactamente la misma función de transferencia:

G(s)=C(sI-A)^{-1}B+D=\bar{C}_c(sI-\bar{A}_c)^{-1}\bar{B}_c+D

EJEMPLO:

\dot{x}(t)=\begin{bmatrix}  1 & 1 & 0\\  0 & 1 & 0\\  0 & 1 & 1  \end{bmatrix}x(t)+  \begin{bmatrix}  0&1\\  1&0\\  0&1  \end{bmatrix}u(t)

y(t)=\begin{bmatrix}  1 & 1 & 1  \end{bmatrix}x(k)

Determino la matriz de controlabilidad, sabemos que el rango de una matriz nunca sera mayor que el menor de sus dimensiones, en otras palabras sabemos que el rango va a ser menor igual a 2 (el rango minimo de la matriz B es 2) :

rank(C_o)=rank(\begin{bmatrix}B &AB\end{bmatrix})=2<3

rank(C_o)=rank\begin{bmatrix}  0 & 1 & 1 &1\\  1 & 0 & 1 &0\\  0 & 1 & 1 &1  \end{bmatrix}=2<3

Con ese resultado vemos que en ese sistema tengo 2 estados controlables y 1 estado que NO es controlable.

 

Ahora si usamos la idea de tomar dos columnas linealmente independientes de la matriz de controlabilidad mas otra columna cualquiera para formar una matriz de similitud, para hacer la transformación del sistema, voy a conseguir separarlo en una parte controlable y una parte no controlable.

 

De la matriz de controlabilidad voy a escoger las dos primeras las cuales sumadas me dan la tercera columna, asi mi matriz de similitud viene dada por [/latex]P^{-1}=\begin{bmatrix}B &q\end{bmatrix}[/latex]. Aqui la tercera columna es arbitraria, la unica conición que debe cumplir es que sea linealmente independiente con respecto a las otras dos columnas.

P^{-1}=\begin{bmatrix}  0 & 1 & 1 \\  1 & 0 & 0\\  0 & 1 & 0  \end{bmatrix}

Aplico transformación de similitud usando esa matriz y obtengo la siguiente decomposición canonica, \bar{A}=PAP^{-1}, \bar{B}=PB[latex], \bar{C}=CP^{-1}[/latex].

\bar{A}=\begin{bmatrix}  1 & 0 & 0 \\  1 & 1 & 0\\  0 & 0 & 1  \end{bmatrix}, \bar{B}=\begin{bmatrix}  1 & 0 \\  0 & 1 \\  0 & 0  \end{bmatrix}, \bar{C}=\begin{bmatrix}  1 & 2 & 1 \\  \end{bmatrix}

Asi el subsistema controlable viene dado por:

\dot{\xi}(t)=\begin{bmatrix}  1 & 0 \\  1 & 1  \end{bmatrix}\xi(t)+  \begin{bmatrix}  1&0\\  0&1  \end{bmatrix}u(t)

y(t)=\begin{bmatrix}  1 & 2  \end{bmatrix}\xi(t)

Ahora si calculo la función de transferencia de ese subsistema y la función de transferencia del sistema original, voy a obtener la misma función de transferencia para ambos.

G(s)=\bar{C}_c(sI-\bar{A}_c)^{-1}\bar{B}_c+D=\begin{bmatrix}\dfrac{s+1}{s^2-2s+1} &\dfrac{2}{s-1}\end{bmatrix}

En matlab puedo calcular esa descomposicion canonica:

>> ctrbf(A,B,C)

Con esto sacamos una primera conclusión. Y es que todo lo que no sea controlable no va a aparecer en la función de transferencia del sistema. Veamos que lo mismo se cumple para la observabilidad.

rank(O_b)=rank(\begin{bmatrix}C \\CA \\\vdots \\CA^{n-1}\end{bmatrix})=n_2<n

Como sabemos que mi matriz no va a ser controlable, pues nuestro rank nos va a dar [/latex]n_2[/latex]. Al igual que el caso anterior la matriz P se calcula con la matriz de observabilidad pero esta vez lo hago con filas linealmente independientes.

P^{-1}=\begin{bmatrix}p_1\\\vdots \\p_{n_2}\\\vdots \\p_n\end{bmatrix}

Nuestro subsistema observable viene dado entonces por:

\begin{bmatrix}\dot{\xi}\\ \dot{\xi}\end{bmatrix}=\begin{bmatrix}\bar{A}_o & 0 \\ \bar{A}_{21}& \bar{A}_{\bar{o}}\end{bmatrix}  \begin{bmatrix}\xi\\ \xi\end{bmatrix}+\begin{bmatrix}\bar{B}_o \\ 0\end{bmatrix}u

y=\begin{bmatrix}\bar{C}_o & \bar{C}_{\bar{o}}\end{bmatrix}  \begin{bmatrix}\xi\\ \xi\end{bmatrix}+Du

Donde también obtendremos que nuestra función de transferencia del subsistema observable será igual a la funcion de transferencia del sistema completo:

G(s)=C(sI-A)^{-1}B+D=\bar{C}_o(sI-\bar{A}_o)^{-1}\bar{B}_o+D

Sistemas No Controlables y No Observables

Para este caso particular, consigo realizar otra transformación de similitud conocida como descomposición de Kalman, donde el sistema es separado en cuatro bloques

\begin{bmatrix}\dot{\xi}_{CO}\\ \dot{\xi}_{C\bar{O}}\\ \dot{\xi}_{\bar{C}O}\\ \dot{\xi}_{\bar{C}\bar{O}}\end{bmatrix}=\begin{bmatrix}\bar{A}_{CO} & 0 &\bar{A}_{13}&0\\ \bar{A}_{21}& \bar{A}_{C\bar{O}}&\bar{A}_{23}&\bar{A}_{24}\\ 0 & 0 &\bar{A}_{\bar{C}O}&0\\ 0& 0&\bar{A}_{43}&\bar{A}_{\bar{C}\bar{O}}\end{bmatrix}  \begin{bmatrix}\xi_{CO}\\ \xi_{C\bar{O}}\\ \xi_{\bar{C}O}\\ \xi_{\bar{C}\bar{O}}\end{bmatrix}+\begin{bmatrix}\bar{B}_{CO} \\ \bar{B}_{\bar{C}O} \\ 0 \\ 0 \end{bmatrix}u

y=\begin{bmatrix}\bar{C}_{CO} &0& \bar{C}_{\bar{C}O}&0\end{bmatrix}  \begin{bmatrix}\xi_{CO}\\ \xi_{C\bar{O}}\\ \xi_{\bar{C}O}\\ \xi_{\bar{C}\bar{O}}\end{bmatrix}+Du

La unica parte controlable y observable son los primeros terminos de cada matriz (\bar{A}_{CO}, \bar{B}_{CO}, \bar{C}_{CO}). Aqui se cumple la misma propiedad, es decir que si se crea un subsitema apenas con la parte controlable y observable y se calcula la función de transferencia, será exactamente igual a la función de transferencia del sistema completo.

 

En matlab existe una función que encuentra ese subsistema

>> sys=ss(A,B,C,D); %Creo el sistema completo

>>[subsys,P] = minreal(sys); %Determina el subsistema y la matriz de transformación

 

EJEMPLO

\dot{x}(t)=\begin{bmatrix}  -1 & 0 & 0 & 0\\  0 & -2 & 0 & 0\\  0 & 0 & -3 & 0 \\  0 & 0 & 0 & -4  \end{bmatrix}x(t)+  \begin{bmatrix}  1\\  0\\  0\\  1\\  \end{bmatrix}u(t)

y(t)=\begin{bmatrix}  1&1 & 0&0  \end{bmatrix}x(k)

Código en Matlab, debes compartir para poderlo ver:

 

Condiciones en la forma de Jordan

Cuando tengo un sistema MIMO (Varias entradas y varias salidas), la forma de identificar si mi sistema es Controlable y Observable mirando las matrices A,B y C puede hacerse llevando el sistema a la Forma diagonal, ó como ya lo habíamos visto, en el caso de tener autovalores repetidos en la forma de Jordan.

Para eso supongamos que tenemos el siguiente sistema en la forma diagonal, donde tengo tres bloques de Jordan y mi matriz B y C tienen varias columnas:

\dot{x}(t)=Jx(t)+Bu(t)

y(t)=Cx(t)+Du(t)

Donde J=diag[J_1,J_2] con J_1=diag[J_{11},J_{12},J_{13}] y J_2=diag[J_{21},J_{22}]

 

Lo que implica que la b_{ij} fila de la matriz B está asociada a la ultima fila de la matriz J_{ij} y que la columna c_{ij} de la matriz C está asociada a la primeira coluna da matriz J_{ij}.

 

Viendo en un ejemplo numerico seria como sigue donde tenemos 2 entradas y 2 salidas:

\dot{x}(t)=\begin{bmatrix}  -1 & 1 & 0 & 0\\  0 & -1 & 0 & 0\\  0 & 0 & -2 & 1 \\  0 & 0 & 0 & -2  \end{bmatrix}x(t)+  \begin{bmatrix}  b_{11}&b_{12}\\  b_{21}&b_{22}\\  b_{31}&b_{32}\\  b_{41}&b_{42}\\  \end{bmatrix}u(t)

y(t)=\begin{bmatrix}  c_{11}&c_{12} & c_{13}&c_{14}\\  c_{21}&c_{22} & c_{23}&c_{24}  \end{bmatrix}x(k)

1. La ultima fila del bloque de Jordan es esta, por eso la fila que me interesa de la matriz B es esta.

2. La columna de la matriz C asociada a la primera columna del bloque de Jordan. La primera columna de Jordan es esta, entonces la columna en C que me interesa es esta para la primera partición.

3. La segunda partición del bloque de Jordan es la ultima fila de la matriz B y la primera Columna de la matriz C.

 

Son las únicas filas y columnas que me interesan cuando deseo hacer el análisis sea de sistema controlable o observable cuando dicho sistema se encuentra en la representación de la forma diagonal ó de Jordan

 

Si las dos filas escogidas en la matriz B son linealmente independientes significa que el sistema es Controlable y si las dos columnas escogidas en la matriz C son linealmente independientes, quiere decir que mi sistema es Observable.
Miremos el siguiente sistema y tratemos de identificar si el sistema es Controlable y Observable:

\dot{x}(t)=\begin{bmatrix}  \lambda_1 & 1 & 0 & 0 & 0 & 0 & 0\\  0 &\lambda_1 & 0 & 0 & 0 & 0 & 0\\  0 & 0 & \lambda_1 & 0 & 0 & 0 & 0\\  0 & 0 & 0 & \lambda_1 & 0 & 0 & 0\\  0 & 0 & 0 & 0 & \lambda_2 & 1 & 0\\  0 & 0 & 0 & 0 & 0 & \lambda_2 & 1\\  0 & 0 & 0 & 0 & 0 & 0 & \lambda_2  \end{bmatrix}x(t)+  \begin{bmatrix}  0 & 0 & 0\\  1 & 0 & 0\\  0 & 1 & 0\\  1 & 1 & 1\\  1 & 2 & 3\\  0 & 1 & 0\\  1 & 1 & 1  \end{bmatrix}u(t)

y(t)=\begin{bmatrix}  1 & 1 & 2 & 0 & 0 & 2 & 1\\  1 & 0 & 1 & 2 & 0 & 1 & 1\\  1 & 0 & 2 & 3 & 0 & 2 & 0  \end{bmatrix}x(k)

Tomando las primeras filas de la Matriz B de cada bloque de Jordan

C=\begin{bmatrix}  1 & 0 & 0\\  0 & 1 & 0\\  1 & 1 & 1\\  1 & 1 & 1\\  \end{bmatrix}

Como solo tengo 3 Filas linealmente independientes, por lo tanto no es rank completo y NO es CONTROLABLE.

Tomando las primeras columnas de la Matriz C de cada bloque de Jordan

O=\begin{bmatrix}  1 & 2 & 0 & 0\\  1 & 1 & 2 & 0\\  1 & 2 & 3 & 0  \end{bmatrix}

Como tengo una columna lleno de ceros sabemos que solo tendremos 3 columnas linealmente independientes, por lo tanto no es rank completo y NO es OBSERVABLE.

 

Sistemas Discretos

Si tenemos el siguiente sistema discreto

\dot{x}[k+1]=Ax[k]+Bu[k] y(t)=Cx[k]+Du[k]

Se dice que el par (A,B) es controlable si para cualquier condicion inicial x[0]=x_0 y cualquier estado final x_1 existe una secuencia de entrada de tamaño finito que lleva el estado desde x_0 para x_1, caso contrario el sistema no es Controlable.

 

Recordemos que el caso discreto es por instanes, osea que puedo tener una entrada en el instante cero, uno, dos, …. u[0],u[1],...u[m].

Entonces si el sistema es de orden 5, voy a necesitar de 5 instantes de tiempo para poder determinar si consigo llevar el estado inicial al estado final y saber si es controlable.

 

Aplicamos el mismo concepto visto en el caso continuo, determinando las matrices de Controlabilidad y Observabilidad.

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

(required)

(required)