Cómo Calcular la Matriz de Transición de Estados con Maxima (wxMaxima)

El control de sistemas lineales en variables de estado, es una rama del control relativamente ‘moderna’, que permite grandes posibilidades y facilidades al tratar con diversos sistemas, a continuación vamos a ver que dado que un sistema en variables de estado se puede definir como un sistema de ecuaciones diferenciales de primer orden acopladas, podemos encontrar una solución que nos permita conocer el comportamiento o valor de cada uno de los estados a través del tiempo.

Cuando se tiene una ecuación diferencial lineal de primer orden, de la forma:

\frac{dx}{dt}=\alpha x

Entonces la ecuación primitiva o solución a la ecuación diferencial anterior, viene dada como:

x(t)=e^{\alpha t}x(0)

Donde x(0) representa entonces la condición inicial de la variable x.

Entonces como se mencionaba anteriormente, dado que un sistema en variables de estado, lineal e invariante en el tiempo y autónomo, consta de un sistema de ecuaciones diferenciales lineales de primer orden y que puede ser representado de la siguiente manera:

\dot{X}=AX

Y al hacer la equivalencia entre el sistema lineal de una sola variable que se mencionó al inicio del artículo, se puede pensar que la solución temporal para la ecuación anterior puede ser de la forma:

X(t)=e^{At}X(0)*

Donde nuevamente, X(0) representa las condiciones iniciales, sin embargo al ser ahora un sistema matricial, entonces X(0) corresponderá a un vector que contendrá las condiciones iniciales de cada una de las variables de estado involucradas. El valor de e^{At} se conoce como “matriz exponencial”, también se le conoce como “Matriz de Transición de Estados” ya que nos permite conocer el comportamiento de las variables de estado en el tiempo (su transición).

Aunque existen diferentes métodos para calcular o encontrar la representación de dicha matriz para un sistema, vamos a abordar a continuación la cuestion de encontrar la matriz de transición de estados por medio de la transformada de LaPlace con Maxima (wxMaxima en este caso).

Método de LaPlace para la Matriz de Transición de Estados.

¿De donde surge este método?. Bueno, este método surge al aplicar la transformada de LaPlace a ambos lados de la ecuación:

\dot{X}=AX

Entonces aplicando la transformada a ambos lados de la igualdad se obtiene la expresión:

sX(s)-X(0)=AX(s)

Acomodando la ecuación y factorizando X(s) se obtiene:

(sI-A)X(s)=X(0)

Premultiplicando por (sI-A)^{-1} a ambos lados de la expresión anterior, se obtiene:

X(s)=(sI-A)^{-1}X(0)

Si se relaciona la expresión anterior con la ecuación de más arriba, marcada con un * , entonces se puede hacer la equivalencia de que:

e^{At}=\mathscr{L}{(sI-A)^{-1}}

Esa, finalmente es la expresión que debemos operar para obtener nuestra matriz de transición de estados o matriz exponencial con Maxima (wxMaxima).

¿Cómo Podemos Hallar la Matriz de Transición de Estados con Maxima?

Máxima nos simplifica enormemente el procedimiento analítico para hallar la matriz exponencial, por lo tanto, a modo de hacer completamente entendible el procedimiento, se desarrollará a continuación un ejemplo propuesto en la referencia [1]. El ejemplo indica que para la siguiente ecuación de estado, se halle la solución temporal (e^{At}X(0)), y cuyos valores son:

borrar

En primer debemos definir las variables necesarias para llevar a cabo las operaciones, entonces abrimos Maxima y declaramos la matriz A, la matriz identidad en este caso de 3×3 y el vector de las condiciones iniciales Xo, quedando de la siguiente forma.

Declaración de las matrices necesarias para calcular la matriz exponencial.

Declaración de las matrices necesarias para calcular la matriz exponencial.

Una vez tenemos estos valores ingresados en el espacio de trabajo, comenzamos a aplicar las ecuaciones necesarias para cumplir con nuestro objetivo, en este punto necesitamos calcular la expresión (sI-A)^{-1}, hay que recordar que ‘s‘ es el operador de la transformada de LaPlace y no necesita ser declarada previamente en Maxima, vamos a almacenar el resultado de dicha expresión una nueva matriz que llamaremos ‘M‘ evidentemente al ser una variable puede tener cualquier nombre que le quieras dar.

Como se pudo observar, la ecuación muestra además que la expresión está elevada a -1, lo que implica que se debe calcular la inversa de la matriz resultante, para esto, hacemos uso de la función invert() de Maxima y además para lograr que se nos muestre una expresión factorizada o simplificada, aplicamos la función ratsimp(), el resultado es el siguiente.

maxima transicion de estados 2

Cálculo de (sI-A)^{-1}

Recordemos nuevamente la expresión para hallar la matriz exponencial:

e^{At}=\mathscr{L}{(sI-A)^{-1}}

Lo que implica que solo falta calcular la transformada inversa de LaPlace, sin embargo Maxima no tiene alguna función sobrecargada para calcular la transformada inversa de una matriz simbólica, por lo que a primera vista uno pensaría que es necesario ir calculando uno a uno los elementos de la matriz (incluso hacerlo en Maxima puede resultar tedioso, más si el sistema es de gran magnitud), para evitar ese problema, vamos a usar la programación, finalmente fue para automatizar procesos que fue inventada, a continuación te muestro como.

No hay otro camino para calcular la transformada inversa de la matriz, que ir término a término haciendo la ilt(), pero vamos a automatizar esto con dos ciclos For del lenguaje de Maxima que se encarguen de recorrer los componentes de la matriz y calcular su transformada inversa. Lo primero que debemos hacer es crear una nueva matriz vacía (en este caso usamos una matriz de ceros, con la función zeromatrix()), ahora realizamos un ciclo For para recorrer las filas con el subindice i, y un For más interno para recorrer las columnas con el subindice j, luego hacemos uso de la función ratsimp() para que nuevamente las expresiones estén simplificadas y en su interior hacemos uso de la función ilt(<expresión>,s,t) la cual se encarga de calcular la transformada inversa de LaPlace y cada uno de los nuevos resultados se almacenarán en la posición [i,j] de la matriz H, y será esta matriz H la que ahora contendrá todos sus elementos en forma temporal, a continuación te mostramos como deben ser escritas dichas sentencias.

Cálculo de la transformada inversa de LaPlace de la matriz en Maxima.

Cálculo de la transformada inversa de LaPlace de la matriz en Maxima.

Si tiene una matriz con dimensiones mayores, solo debes cambiar donde aparecen los números 3, esto le dice al programa que las variables i y j van desde 1 hasta la dimensión de tu matriz.

Una vez aparece la cadena ‘done’ quiere decir que los cálculos han terminado, y podemos observar el contenido de la matriz H solamente escribiendo ‘H’ y presionado Enter o Shift+Enter, como te mostramos a continuación:

Matriz exponencial o Matriz de transición de estados con Maxima.

Matriz exponencial o Matriz de transición de estados con Maxima.

Dado que X(t)=e^{At}X(0) entonces la solución o la matriz de transición de estados para este sistema, viene dada entonces por:

Solución temporal del sistema, después de realizar los procedimientos indicados.

Solución temporal del sistema, después de realizar los procedimientos indicados.

Y esto podemos obtenerlo finalmente al hacer el producto matricial correspondiente con el vector de los valores iniciales que habíamos denominado Xo al inicio de la sesión de cálculos, entonces para obtener X(t) solo basta hacer lo que te mostramos en la siguiente figura. Cabe recordar que el producto matricial en Maxima, a diferencia de otros entornos no se realiza con el operador * (asterisco), sino con el operador . (punto), como se ve a continuación.

X(t) del sistema de estados con Maxima

X(t) del sistema de estados con Maxima.

Como puedes observar, el resultado es básicamente el mismo de la expresión anterior , y que por lo tanto corresponde a la solución esperada.

Espero que este artículo haya te haya servido, si tienes alguna duda o sugerencia (o saludo) puedes hablarnos en los comentarios, si crees además que esta información puede resultar útil para alguien más, ayúdanos a compartirla.

Autor: Julio César E. Marulanda

Referencia:

[1] “Análisis y control de sistemas en variables de estado”. Francisco Javier Ibargüen O. Fussion/Creativa. 2006

2 comentarios en “Cómo Calcular la Matriz de Transición de Estados con Maxima (wxMaxima)

  1. Pingback: Obtener las Ecuaciones de Estado Discretas con Maxima (wxMaxima) | El Blog de Programación para Ingenierías

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