2. Controlabilidad y Observabilidad

2. Controlabilidad y Observabilidad

2. Controlabilidad y Observabilidad
5 (100%) 1 vote

Controlabilidad de Estado

Se dice 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

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

 

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}

 

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 en 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 eso 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

 

El concepto de observabilidad, 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.

 

Ejemplo:

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 en MATLAB para el calculo de esas dos matrices:

 

Ejemplo 2 (Caso MIMO)

Dado el siguiente Sistema:

 

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 en MATLAB:

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

Menú de cierre