Manual de Scilab/Xcos/Control en el espacio de estados
Controlabilidad y Observabilidad
editarDado
Donde:
Observabilidad
editarCalculo 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
editarMatriz 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
editarEn 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
editarDado:
Lo polos deseados del sistema estarán en:
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
editarPara 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