CONTROLABILIDAD Y OBSERVABILIDAD
4.8 (95.45%) 44 votes

En esta entrada vas a entender todo sobre la controlabilidad y observabilidad de un sistema en espacio de estados. Aquí podrás encontrar ejercicios resueltos sobre la controlabilidad y observabilidad y también podrás entender sobre la estabilidad de sistemas. Es importante que si no has visto el contenido del curso de esta página sobre sistemas en variables de estado, te recomiendo dar un vistazo a todos los temas DANDO CLICK AQUI.

En la parte inferior de este post, encontrarás códigos de controlabilidad y observabilidad en matlab, verás problemas y ejercicios resueltos de controlabilidad y observabilidad y entenderás si un sistemas es controlable y observable.

👇👇Puedes mirar el video en YouTube 👇👇 y si todavía no te has suscrito al Canal, NO sabes la información Valiosa que te estás perdiendo, suscribete, en la barra derecha está el botón de suscripción. 👉👉👉

Vamos a abordar la controlabilidad y observabilidad por separado, para eso comencemos con la controlabilidad espacio de estados. Veremos que la controlabilidad de un sistema puede darse de dos formas: Controlabilidad de Estado y Controlabilidad de Salida.

Controlabilidad de Estado

Para encontrar la controlabilidad de un sistema se debe cumplir que un sistema de control es de “estado completamente controlable”, si es posible transferir el sistema desde un estado inicial arbitrario a cualquier otro estado deseado en un intervalo de tiempo finito.

Controlabilidad

En la controlabilidad espacio de estados, Si se tiene un sistema dado por:

x(k+1)=Ax(k)+Bu(k)

 

y(k)=Cx(k)+Du(k)

 

La variación del estado solo depende de las matrices A y B, asi que expandiendo el estado hasta n, tenemos que:

 

x(1)=Ax(0)+Bu(0)

 

x(2)=Ax(1)+Bu(1)=A^2x(0)+ABu(0)+Bu(1)

 

\vdots

 

x(n)=A^{n}x(0)+A^{n-1}B u(0)+A^{n-2}B u(1)+...+AB u(n-2)+B u(n-1)

 

La expresión anterior se puede escribir en la forma:

 

x(n)=A^{n}x(0)+\begin{bmatrix}  B & AB & A^2B & \cdots & A^{n-1}B  \end{bmatrix}\begin{bmatrix}  u(n-1)\\  u(n-2)\\  \vdots\\  u(1)\\  u(0)  \end{bmatrix}

 

Si conocemos el estado final x(n) y el estado inicial x(0) la ecuación se puede reescribir como:

 

x(n)-A^{n}x(0)=\begin{bmatrix}  B & AB & A^2B & \cdots & A^{n-1}B  \end{bmatrix}\begin{bmatrix}  u(n-1)\\  u(n-2)\\  \vdots\\  u(1)\\  u(0)  \end{bmatrix}

 

El vector de estados x(k) tiene una dimensión de n, de esta forma implica que se deben generar n ecuaciones simultaneas, y para ello la matriz \begin{bmatrix}  B & AB & A^2B & \cdots & A^{n-1}B  \end{bmatrix} debe ser igual a n, osea debe tener rango completo.

 

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

Al final de este post verás ejemplos de controlabilidad para que el concepto te quede más claro.

Rango de una Matriz

 

Determinemos el rango de la siguiente matriz:

  A=\begin{bmatrix}  4 & 1 & -1\\  3 & 2 & 0\\  1 & 1 & 0  \end{bmatrix}

 

Rango de una Matriz en MATLAB:

>>A=[4 1 -1;3 2 0;1 1 0]

>> rank(A)

ans =

3

Calculo Manual, se debe llevar la matriz a la forma triangular inferior:

 

A=\begin{bmatrix}  4 & 1 & -1\\  3 & 2 & 0\\  1 & 1 & 0  \end{bmatrix}  \rightarrow A=\begin{bmatrix}  1 & 1 & 0\\  3 & 2 & 0\\  4 & 1 & -1  \end{bmatrix}  \overset{\begin{matrix}  F_2-3F_1\\  F_3-4F_1  \end{matrix}}{\rightarrow }  A=\begin{bmatrix}  1 & 1 & 0\\  0 & -1 & 0\\  0 & -3 & -1  \end{bmatrix}

 

  \overset{\begin{matrix}  -F_2\\  F_3+3F_2  \end{matrix}}{\rightarrow }  A=\begin{bmatrix}  1 & 1 & 0\\  0 & 1 & 0\\  0 & 0 & -1  \end{bmatrix}  \overset{-F_3}{\rightarrow }  A=\begin{bmatrix}  1 & 1 & 0\\  0 & 1 & 0\\  0 & 0 & 1  \end{bmatrix}

 

Si se consigue llegar a una matriz triangular inferior, o por lo menos se consigue que ninguna columna sea nula, es decir que ninguna columna tenga todos sus elementos en Cero, puede decirse que todas las columnas de la matriz son linealmente independientes, por lo tanto el rango de la matriz es igual al numero de columnas linealmente independientes, en este caso las tres columnas de la matriz A, son linealmente independientes por lo tanto:

 

rank[A] = 3

 

Controlabilidad de la salida

 

Se dice que un sistema de control es de “Salida completamente controlable”, si es posible transferir la salida del sistema desde un valor inicial arbitrario a cualquier otro valor deseado en un intervalo de tiempo finito.

 

Para encontrar la controlabilidad de la salida tomamos la salida y la expandimos hasta m, miremos que aqui usaremos el valor del estado x(k) para poder involucrar la entrada u(k) con la salida y(k), recordemos que x(1)=Ax(0)+Bu(0).

 

y(1)=Cx(1)=CAx(0)+CBu(0)

 

y(2)=CAx(1)+CBu(1)=CA^2x(0)+CABu(0)+CBu(1)

 

\vdots

 

y(m)=CA^{m}x(0)+CA^{m-1}B u(0)+CA^{m-2}B u(1)+...+CABu(m-2)+CBu(m-1)

 

Podemos relacionar asi la salida del sistema

 

Cx(m)-CA^{m}x(0)=\begin{bmatrix}  CB & CAB & CA^2B & \cdots & CA^{m-1}B  \end{bmatrix}\begin{bmatrix}  u(m-1)\\  u(m-2)\\  \vdots\\  u(1)\\  u(0)  \end{bmatrix}

 

El vector de salida y(k) tiene una dimensión de m, de esta forma implica que se deben generar m ecuaciones simultaneas, y para ello la matriz \begin{bmatrix}  CB & CAB & CA^2B & \cdots & CA^{m-1}B  \end{bmatrix} debe ser igual a m, osea debe tener rango completo.

 

\emph{Rank}\begin{bmatrix}  CB & CAB & CA^2B & \cdots & CA^{m-1}B  \end{bmatrix}=m

 

Así mismo, se puede demostrar que si el sistema tiene la matriz de paso D, puede representarse de la forma

 

\emph{Rank}\begin{bmatrix}  D & CB & CAB & CA^2B & \cdots & CA^{m-1}B  \end{bmatrix}=m

 

Observabilidad y Detectabilidad

 

El concepto de observabilidad de un sistema se relaciona con la posibilidad de obtener el estado de un sistema a partir de la medición o el conocimiento de las entradas y de las salidas del mismo.

Observabilidad

Partiendo de la representación de estados discretos

 

x(k+1)=Ax(k)+Bu(k)

 

y(k)=Cx(k)+Du(k)

 

Se dice que el sistema es complemente observable si cualquier estado inicial puede determinarse a partir de la observación de y(n) en n períodos de muestreo como máximo.

 

Para eso se asume que u(k)=0

 

x(k+1)=Ax(k)

 

y(k)=Cx(k)

 

Si variamos k desde cero hasta n:

 

y(0)=Cx(0)

 

y(1)=Cx(1)=CAx(0)

 

y(2)=CAx(1)=CA^2x(0)

 

\vdots

 

y(n-1)=Cx(n-1)=CA^{n-1}x(0)

 

De forma matricial las ecuaciones anteriores son representadas por:

 

\begin{bmatrix}  y(0)\\  y(1)\\  y(2)\\  \vdots\\  y(n-1)  \end{bmatrix}=  \begin{bmatrix}  C\\  CA\\  CA^2\\  \vdots\\  CA^{n-1}  \end{bmatrix}x(0)

 

El vector de salida tiene n elementos por lo tanto, se deben generar n ecuaciones simultáneas, esta condición solo es posible si:

 

\emph{rank}\begin{bmatrix}  C\\  CA\\  CA^2\\  \vdots\\  CA^{n-1}  \end{bmatrix}=n

 

Una condición suficiente y necesaria para la observabilidad completa del estado es que no se presente cancelación de ceros y polos en la función de
transferencia de pulso.

A continuación vamos a ver ejemplos de observabilidad haciendo los calculos a mano y haciendo observabilidad en matlab.

 

Controlabilidad y Observabilidad Ejemplos:

Determinar si el siguiente sistema es completamente controlable y completamente observable.

 

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

 

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

 

Solucion:

Para ver la solucion de los ejemplos solo basta con que compartas el contenido de este post con cualquiera de los siguientes 3 botones. Asi ayudaras que esta pagina continue brindando contenido gratuito.

La matriz de controlabilidad viene dada por:

 

C_o=\begin{bmatrix}  B & AB & A^2B  \end{bmatrix}

 

AB=\begin{bmatrix}  0 & 1 & 0\\  0 & 0 & 1\\  -0.6 & -0.7 & -0.5  \end{bmatrix}  \begin{bmatrix}  1\\  0\\  0  \end{bmatrix}=  \begin{bmatrix}  0\\  0\\  -0.6  \end{bmatrix}

 

A^2B=\begin{bmatrix}  0 & 0 & 1\\  -0.6 & -0.7 & -0.5\\  0.3 & -0.25 & -0.45  \end{bmatrix}  \begin{bmatrix}  1\\  0\\  0  \end{bmatrix}=  \begin{bmatrix}  0\\  -0.6\\  0.3  \end{bmatrix}

 

C_o=\begin{bmatrix}  1 & 0 & 0\\  0 & 0 & -0.6\\  0 & -0.6 & 0.3  \end{bmatrix}

 

Intercambio fila 2 por la fila 3 para que quede una matriz triangular inferior

 

C_o=\begin{bmatrix}  1 & 0 & 0\\  0 & -0.6 & 0.3\\  0 & 0 & -0.6  \end{bmatrix}

 

\emph{rank}[C_o]=3

 

Tiene rango completo por lo tanto el sistema es Completamente Controlable.

La matriz de observabilidad viene dada por:

 

O_b=\begin{bmatrix}  C \\ CA \\ CA^2  \end{bmatrix}

 

CA=\begin{bmatrix}  1&0&0  \end{bmatrix}\begin{bmatrix}  0 & 1 & 0\\  0 & 0 & 1\\  -0.6 & -0.7 & -0.5  \end{bmatrix}=  \begin{bmatrix}  0&1&0  \end{bmatrix}

 

CA^2=  \begin{bmatrix}  1&0&0  \end{bmatrix}\begin{bmatrix}  0 & 0 & 1\\  -0.6 & -0.7 & -0.5\\  0.3 & -0.25 & -0.45  \end{bmatrix}=  \begin{bmatrix}  0&0&1  \end{bmatrix}

 

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

 

\emph{rank}[O_b]=3

 

Por lo tanto el sistema es completamente Observable

 

A continuación se presenta un código de Controlabilidad y Observabilidad en MATLAB para el calculo de esas dos matrices:

 

Ejemplo 2 (Caso MIMO)

Dado el siguiente Sistema Multivariable MIMO:

 

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

 

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

 

Recordemos que la Matriz de Controlabilidad viene dada por:
C_o=\begin{bmatrix}  B & AB & A^2B & \cdots & A^{n-1}B  \end{bmatrix}

Y que n es la dimensión, en este ejemplo n=3 (Dimension de la matriz A). Vemos que la matriz de controlabilidad debe ir hasta (n-1) osea hasta elevar la matriz A a (3-1=2).

Mirando las dimensiones de la matriz de controlabilidad tenemos que:

 

C_o=[\underset{3\times 2}{\underbrace{B}}\ \underset{3\times 2}{\underbrace{AB}}\ \underset{3\times 2}{\underbrace{A^2B}}]

 

Vemos que la matriz de controlabilidad tendra una dimensión de $3\times 6$, Lo que haria muy tedioso el calculo. Por definicion, sabemos que el rango de una matriz nunca sera mayor que el menor de sus dimensiones, en itras palabras sabemos que el rango va a ser menor igual a 3.

 

\emph{rank}\begin{bmatrix}  B & AB & A^2B  \end{bmatrix}\leq 3

 

Para simplificar el calculo de controlabilidad, basta con inicialmente determinar el rango de la Matriz B.

 

\emph{rank}\begin{bmatrix}  B  \end{bmatrix}=2

 

Ahora restamos la dimension del sistema con el rango de la matriz B:

 

n-\emph{rank}(B)=3-2=1

 

Osea que para este sistema basta con calcular hasta la matriz de A elevado a la 1, es decir, basta con calcular la controlabilidad hasta:

 

C_o=\begin{bmatrix}  B & AB  \end{bmatrix}

 

Veamos que calculandolo de las dos formas da el mismo resultado (Realizado en MATLAB):

>> A=[0,1,0;0,0,1;-1,-2,-3]

A =

0 1 0

0 0 1

-1 -2 -3

>> B=[0,0;0,1;1,0]

B =

0 0
0 1
1 0

>> Co1=[B,A*B,A^2*B]

Co1 =

0 0 0 1 1 0
0 1 1 0 -3 -2
1 0 -3 -2 7 5

 

>> rank(Co1)

ans =

3
>> Co2=[B,A*B]

Co2 =

0 0 0 1
0 1 1 0
1 0 -3 -2

>> rank(Co2)

ans =

3

 

Como el rango es igual a la dimensión, el sistema es controlable. Vemos que de esta forma podemos simplificar mucho el calculo porque solo tendriamos una matriz de controlabilidad de 3×4 en lugar de una de 3×6.

 

El mismo concepto lo aplicamos para la matriz de observabilidad, solo que en este caso debemos determinar el rango de la matriz C.
\emph{rank}\begin{bmatrix}  C  \end{bmatrix}=2

 

Ahora restamos la dimension del sistema con el rango de la matriz C:

 

n-\emph{rank}(C)=3-2=1

 

Osea que para este sistema basta con calcular hasta la matriz de A elevado a la 1, es decir, basta con calcular la observabilidad hasta:

 

O_b=\begin{bmatrix}  C\\  CA\\  \end{bmatrix}

 

Veamos que calculandolo de las dos formas da el mismo resultado (Realizado en MATLAB):

 

>> C=[0,1,0;1,0,1]

C =

0 1 0
1 0 1

>> Ob1=[C;C*A;C*A^2]

Ob1 =

0 1 0
1 0 1
0 0 1
-1 -1 -3
-1 -2 -3
3 5 8

 

>>rank(Ob1)
ans =

3

>> Ob2=[C;C*A]

Ob2 =

0 1 0
1 0 1
0 0 1
-1 -1 -3

>>rank(Ob2)
ans =

3

Como el rango es igual a la dimensión, el sistema es observable. De la misma forma vemos que solo basta calcular hasta A^1 en este ejemplo para determinar la observabilidad del sistema MIMO.

Codigo de Controlabilidad y Observabilidad en MATLAB del sistema MIMO (Multivariable):

Si te gusto la información no olvides en compartir en redes sociales, también te puedes sucribir a mi canal de youtube o darle me gusta a mi pagina en Facebook.

Comparte en Redes Sociales

 

Si te sirvió de algo la información de la pagina, podrías invitarme a un café y ayudarme a seguir manteniendo en pie el sitio WEB. Solo cuesta $2USD y me ayudarías enormemente a seguir con mi trabajo. Muchas Gracias por tu visita.




Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

CONTROLABILIDAD Y OBSERVABILIDAD
Cerrar menú