Manual de Scilab/Xcos/Control en el espacio de estados

De testwiki
Ir a la navegación Ir a la búsqueda

Plantilla:Navegar

Controlabilidad y Observabilidad

Dado

x˙=Ax+Bu
y=Cx

Donde:

A=[270070071]
B=[3.810]
C=[271]


Observabilidad

Calculo de la matriz observabilidad

oe1=obsv_mat(a,c)
 oe1  =
 
    2.    7.      1.  
  - 4.  - 28.     1.  
    8.    175.    1.

Es de interes saber si el sistema es observable, por lo que puedo calcular el determinante de la matriz oe1 o calcular el rango.

det(oe1)
 ans  =
 
  - 798.  
-->rank(oe1)
 ans  =
 
    3.

El sistema del ejemplo es observable.

Controlabilidad

Matriz controlabilidad:

-->ce1=cont_mat(A,B)
 ce1  =
 
    3.8  - 0.6  - 47.8  
    1.   - 7.     49.   
    0.     7.   - 42.  
-->dce1=det(ce1) 
 dce1  =
 
  - 546. 
-->rank(ce1)
 ans  =
 
    3.

También como en el caso de la observabilidad cálculo el determinante y si es menor a cero o si el rango de la matriz es igual al rango de la matriz A el sistema es controlable.

Asignación de polos de un sistema

En scilab se utiliza el comando "ppol" que esta programado por P.H. Petkov. Se puede consultar la ayuda de Scilab para una referencia rápida de como se utiliza el comando tipeando "help ppol".

Ejemplo

Dado:

A=[0010];B=[1,520]

Lo polos deseados del sistema estarán en:

polos=[1.5+1.5i1.51.5i]
A=[0 0;1 0];B=[1,52;0];C=[0 1];
polos=[-1.5+%i*1.5; -1.5-%i*1.5];
-->k=ppol(A,B,polos)
 k  =
 
    1.9736842    2.9605263

Verificación de la asignación de polos

Para la verificación de la asignación de polos comprobamos los autovalores de lazo cerrado del sistema. Para esto utilizamos el comando "spec".

-->spec(A-B*k)
 ans  =
 
  - 1.5 + 1.5i  
  - 1.5 - 1.5i

Control Optimo

Referencias

Plantilla:Listaref

Plantilla:AutoCat