Cómo Crear un Sistema en Espacio de Estados en Scilab.

Los sistemas en variables de estado, aunque no son tan nuevos como parecen, si se ha convertido en los últimos tiempos en una importante herramienta en los sistemas de control moderno, por su eficiencia y relativa facilidad a la hora de trabajar con ellos, por esta razón se hace necesario tener la capacidad de trabajar con estos en diferentes entornos que nos faciliten las tareas y tener un mayor ecosistema de software, es decir, que la falta de un determinado programa no puede impedir tu desempeño. Por esta razón vamos a mostrarte ahora como crear un sistema en espacio de estados (state-space system) en Scilab, y si estás familiarizado con el trabajo en Matlab, te vas a encontrar con una gran cantidad de aspectos en común, así que, ¿por qué no usarlo?.

Cuando tenemos un sistema en variables de estado, tenemos una representación de este tipo (incluso si es tiempo discreto la esencia es la misma)

\dot{X}=AX+BU

Y=CX+DU

Entonces, aunque evidentemente (como hemos visto en otros artículos) se puede trabajar con todas las variables de forma independiente, herramientas como Matlab o Scilab nos permiten generar un tipo de estructura, por así llamarlo, donde se ‘empaqueta’ este sistema en variables de estado, en Matlab podemos hace uso de la función ss() (por aquello de state-space) mientras que en Scilab podemos hacer uso de la función syslin() (por lo de sistema lineal)

¿Cómo creo mi espacio de estados en Scilab?

La importancia de saber crear y manipular un sistema en espacio de estados en estos programas es que ya hay una buena cantidad de funciones predefinidas en ellos que aceptan el tipo de estructuras que se forman al utilizar las funciones ss() o syslin(), tales como la respuesta al escalón o step() que es de gran importancia para notar varias características de dichos sistemas.

Vamos a mostrarte como crear un state-space system en Scilab por medio de un ejemplo, y a continuación te mostraremos cada uno de los parámetros que este posee y como pueden ser accedidos sus valores. Para este ejemplo, vamos a utilizar un ejemplo que hemos venido trabajando a lo largo de varios artículos, este sistema está definido de la siguiente forma:

Sistema continuo en variables de estado.

Sistema continuo en variables de estado.

La función syslin(), aunque puede tomar como parámetros de entrada una buena variedad de argumentos (incluso funciones de transferencia), vamos a centrarnos exclusivamente en lo referente a nuestra ecuación de estados. Entonces vamos a tener en cuenta los siguientes parámetros para syslin(), su prototipo es el siguiente:

syslin(‘dominio temporal’, A, B, C, D, Xo)

En primer lugar se recibe el dominio temporal, este se indica entre comillas simples y con las letras ‘c’ para sistemas en tiempo continuo o ‘d’ para sistemas en tiempo discreto. Las matrices A, B y C deben  ser incluidas obligatóriamente y son las que están definidas en nuestro sistema, mientras que por otro lado la matriz D y el vector de valores iniciales  Xo pueden ser o no incluidos ya que estos toman valores por defecto D=0 y Xo = [0 0 0] (dependiendo del orden del sistema).

Como primera medida vamos a introducir a nuestro espacio de trabajo en Scilab las matrices del sistema (A, B y C), dejaremos que el software asuma a D y Xo como lo hace por defecto, logramos esto de forma muy similar a como se haría en Matlab.

Introduciendo las matrices del sistema en Scilab

Introduciendo las matrices del sistema en Scilab.

Tenemos entonces ya nuestras 3 matrices principales, ahora vamos a crear una nueva variable (esta será de tipo estructura) a la que llamaremos ss por ‘espacio de estados‘ pero que evidentemente puede llevar cualquier otro nombre, pasaremos los parámetros a la función syslin() de la siguiente forma, al no haber D y Xo, este las asumirá como cero, y el dominio temporal en nuestro caso será continuo ‘c’.

Generación del espacio de estados en Scilab.

Generación del espacio de estados en Scilab.

De esta forma se nos indica que ahora ss es un sistema en espacio de estados, los campos de esta estructura son los siguientes, vamos a detallarlos con recuadros de diferentes colores para ir explicando uno a uno.

Campos del sistema en espacio de estados con Scilab.

Campos del sistema en espacio de estados con Scilab.

Recuadro gris: En este primer elemento de ss, se nos indica los parámetros que contiene la estructura, como puedes ver, en primer lugar contiene todo el espacio de estados completo, en las demás posiciones contiene a las matrices A, B, C y D, después aparece el vector de las condiciones iniciales Xo y luego la variable que nos indica en qué dominio temporal está definido este sistema ‘c’->continuo o ‘d’-> discreto.

Recuadro café, rojo y verde: Aquí vemos que en el segundo subíndice de la estructura ss hace referencia a la matriz A del sistema, luego el subíndice 3 referencia el contenido de la matriz B y el subíndice 4 da acceso a la matriz C del sistema.

Recuadro amarillo: En este punto podemos ver algo importante, y es que aunque no se había introducido ningún valor para la matriz D, este aparece en el subíndice 5 como una matriz nula.

Recuadro azul: En el subíndice 6, tenemos acceso al vector de valores iniciales del sistema Xo, que, como se había mencionado antes, al no haber indicado de forma explicita ningún valor, entonces todas las condiciones iniciales de las variables se tomarán por defecto como 0 (cero).

Recuadro violeta: Finalmente con el último subíndice (7) se tiene acceso a la variable que nos indica el dominio temporal en el que estamos trabajando recordemos que el primer parámetro que le enviamos a syslin() fue la ‘c’ que indica un sistema en tiempo continuo, y por lo tanto, en el elemento 7 del sistema se nos indica que el dominio es el tiempo continuo.

¿Cómo accedemos a los elementos del nuevo espacio de estados?

Hay varias formas de acceder a cada uno de los elementos del nuevo espacio de estados ss, cuando hemos trabajado anteriormente con Matlab, la forma más común con la que accedemos a los parámetros es con el operador punto (.) y la letra en minúscula de la matriz a la que queremos acceder, Scilab sigue este mismo tipo de acceso pero además implementa otras formas, eso lo vemos a continuación. En este caso vamos a acceder al con tenido de la matriz A del sistema ss, lo hacemos indicando entre paréntesis e indicando entre comillas el nombre de la matriz, también lo podemos hacer como en Matlab por el hecho de ser un tipo de ‘estructura’ entonces indicamos ss.A o ss.a como en la siguiente figura:

Cómo acceder a un parámetro del espacio de estados.

Cómo acceder a un parámetro del espacio de estados.

¿Por qué es útil es espacio de estados?

Resulta útil manejar nuestro sistema en forma de espacio de estados ya que hay diferentes funciones que reciben como parámetro este tipo de estructura, por ejemplo, vemos la respuesta al escalón del sistema del ejemplo:

respuesta al escalon sistema espacio de estados scilab

El resulta al graficar la respuesta al escalón almacenada en el vector Y, nos permite observar lo siguiente (para eso es útil tener el espacio de estados).

Respuesta al escalón del sistema del ejemplo desarrollado en Scilab.

Respuesta al escalón del sistema del ejemplo desarrollado en Scilab.

Aquí termina entonces este artículo sobre la creación de sistemas en espacio de estados haciendo uso del software libre Scilab donde incluso vimos rápidamente como podemos obtener también a partir de este la respuesta al escalón, aunque te recomendamos que veas nuestro artículo sobre como generar las respuesta al impulso y al escalón de un sistema en Scilab, esperamos que esta información te haya resultado útil, si crees que puede ser útil para otra persona, ayúdanos a compartirlo.

Saludos.

Autor: Julio César E. Marulanda.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s