Obtener las Ecuaciones de Estado Discretas con Maxima (wxMaxima)

Hemos trabajado anteriormente con temas que hacen referencia a sistemas en variables de estado continuos, sin embargo hay que tener en cuenta que en la actualidad gran parte de los sistemas de control son implementados y gestionados de forma digital, es por esta razón que es importante saber como construir las expresiones en el dominio discreto, es por esto que a continuación, vamos a mostrar como podemos pasar de sistemas en variables de estado en tiempo continuo a su representación en tiempo discreto, en esta ocasión haciendo uso del potencial de la herramienta Maxima (wxMaxima).

Si se tiene un sistema en variables de estado continuo, estamos hablando entonces de una expresión equivalente a la siguiente:

\dot{X(t)}=AX(t)+BU(t)

Y(t)=CX(t)+DU(t)

Y lo que se quiere ahora obtener es la representación equivalente en tiempo discreto, la cuál viene dada por:

X(k+1)=GX(k)+HU(k)

Y(k)=CX(k)+DU(k)

Donde las matrices G y H en otras palabras, aparecen como el resultado de la discretización por lo cuál serían equivalentes a A y B en el tiempo discreto, y como podemos ver, la salida continua siendo la misma, es decir las matrices C y D no sufren ningún tipo de cambio en el proceso.

Después de realizar todo un análisis matemático respecto a la transformación del sistema (cosa que preferimos referir a un libro especializado), se tiene que las expresiones para hallar G y H son las siguientes (por el método exacto).

 G=e^{AT}

H=(e^{AT}-I)A^{-1}B

Donde T es el periodo de muestro a usar, para elegir un valor apropiado de T se toma como criterio que este valor resulte ser menor o igual a la décima parte de la mayor magnitud de los polos presentes en el sistema, incluyendo a los de lazo cerrado, esto se muestra en la siguiente ecuación donde P es la mayor magnitud de los polos.

T\leq\frac{2\pi}{10P}

¿Pero Cómo Puedo Hacer Esto con Maxima?

Lograr discretizar el sistema que está dado en tiempo continuo es fácil y con un software como Maxima, lo es mucho más. Como siempre hacemos en este blog tratamos de explicar todo abordando los temas a través de ejemplos, este caso no será la excepción y lo que vamos a hacer ahora es realizar la discretización del siguiente sistema continuo en variables de estado:

 matrices espacio de estadosEntonces nos podemos dar cuenta fácilmente que las matrices A y B son:

matrices espacio de estados 2

Para obtener entonces el sistema en tiempo discreto, vamos, en primer lugar, a ingresar las matrices necesarias A, B y la identidad, entonces lo hacemos de la siguiente forma, una vez ejecutado Maxima.

Ingresando las matrices del sistema en tiempo continuo.

Ingresando las matrices del sistema en tiempo continuo.

Una vez tenemos todas las matrices ingresadas al espacio de trabajo de Maxima procedemos a calcular la matriz G que como ya habíamos visto viene dada por la ecuación:

G=e^{AT}

Recordemos entonces que ahora necesitamos elegir además un valor para el periodo de muestreo, para este ejemplo, siguiendo el criterio propuesto, se encuentra que:

T\leq0.2094

Por lo que podemos tomar un valor para T como:   T=0.01.

En un tutorial te habíamos mostrado como con la transformada de LaPlace y Maxima se podía calcular la matriz exponencial, y en este otro tutorial te mostramos cual era la función para calcular dicha matriz exponencial y como se usaba, a continuación, vamos a hacer uso de la función matrixexp(), obtenemos entonces el valor para G a continuación:

Matriz G del sistema discreto con Maxima.

Matriz G del sistema discreto con Maxima.

En este punto es posible que la salida en tu programa no haya sido tan parecida a lo que hemos puesto arriba, te recomendamos entonces leer esto para que mejores las expresiones que retorna Maxima.

Con lo anterior, ya hemos encontrado entonces el valor para la matriz G del sistema discretizado, a continuación vamos a calcular la matriz H, que es el equivalente a la matriz B del sistema continuo, recordemos que la expresión con la que podemos encontrar a H es la siguiente:

 H=(e^{AT}-I)A^{-1}B

Por lo tanto vamos a calcular primero la matriz inversa de A, almacenaremos esta nueva matriz en una variable que llamaremos invA para tener presente lo que representa.

Matriz inversa de A con Maxima.

Matriz inversa de A con Maxima.

Una vez tenemos la inversa de A, ahora solo basta implementar la expresión de la ecuación anterior, recordemos que en Maxima el producto matricial se expresa mediante el operador . (punto) y no con el operador asterisco (*) como en otros entornos. Finalmente la expresión para H da  como resultado lo siguiente.

Obteniendo la matriz H del sistema discreto con Maxima.

Obteniendo la matriz H del sistema discreto con Maxima.

Por lo tanto, el sistema totalmente en su forma discreta quedaría como se muestra a continuación, como se puede ver, la salida permanece igual ya que la matriz/vector C no se ve afectado en la discretización:

Sistema discreto en variables de estado hallado con Maxima (wxMaxima) cas.

Sistema discreto en variables de estado hallado con Maxima (wxMaxima) cas.

Hasta aquí este artículo sobre la discretización de sistemas en variables de estado continuas con Maxima, esperamos que este tutorial haya sido de utilidad, si crees que este material puede ser de ayuda para otra persona, ayúdanos a compartirlo.

Saludos.

Autor: Julio 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