Cómo Obtener la Función de Transferencia a Partir de las Ecuaciones de Estado con Maxima (wxMaxima).

A lo largo del tiempo que hemos estado compartiendo con todos ustedes artículos sobre este potente y útil software, hemos ido cada vez más por un camino más específico, porque la información que hay en internet es muy genérica, así que vamos a tratar de continuar con esta temática, así si se requiere de información más general será más fácil encontrarla en una breve búsqueda en google, por el contrario no resulta de la misma forma si se realiza una búsqueda con el tema que hoy tratamos en este artículo. ¿Me puede ayudar Maxima con las funciones de transferencia y las variables de estado?, la respuesta es SÍ y de sobra. ¿Cómo? a continuación te lo explicamos.

Para hacer esta entrada más corta vamos a partir del supuesto de que ya tienes ciertos conceptos claros sobre los sistemas en variables de estados, etc.

Sabemos que un sistema en variables de estado puede ser expresado como: (recordemos que este es un análisis en el tiempo):

\dot{X}=AX+BU

Y=CX+DU

Ahora para encontrar una expresión que nos represente lo mismo en función de transferencia, cómo sabemos la función de transferencia viene dada por:

G(S)=\frac{Y(S)}{U(S)}

Entonces partimos aplicando transformada de LaPlace a nuestra ecuación de estados, y realizando el despeje necesario para llegar a la expresión de G(S) mostrada anteriormente.

SX(S)=AX(S)+BU(S)

Y(S)=CX(S)

Despejando a X(S):

X(S)[SI-A]=BU(S)

X(S)=[SI-A]^{-1}BU(S)

Remplazamos ahora la expresión de X(S) en Y(S):

Y(S)=C([SI-A]^{-1}BU(S))

Pasamos U(S) a dividir, para obtener la expresión final de Y(S)/U(S):

G(S)=\frac{Y(S)}{U(S)}=C([SI-A]^{-1}*B)

Donde I es la matriz identidad, para mantener correctamente las dimensiones de las operaciones matriciales. Ahora tenemos la expresión para G(S), entonces ahora dejemos que Maxima realice su parte.

Pasos para calcular la función de transferencia.

Vamos a realizar estos pasos, aplicando los procedimientos sobre un ejemplo, entonces las matrices que vamos a utilizar son las siguientes:

ecuaciones de estado

Entonces el primer paso es introducir estas matrices en Maxima, lo hacemos como se muestra en la figura 1.

Fig 1. Así introducimos las matrices en Maxima (wxMaxima)

Fig 1. Así introducimos las matrices en Maxima (wxMaxima)

 Cómo ya vimos de la expresión de la función de transferencia, necesitamos crear una matriz identidad, y esto lo hacemos de la siguiente forma (aunque hay distintas maneras de hacerlo).

Fig 2. Como declarar una matriz identidad en Maxima.

Fig 2. Como declarar una matriz identidad en Maxima.

Como vemos, el único argumentos que recibe la función ident() es un valor entero que indica la dimensión de la matriz, para nuestro ejemplo, solo la necesitamos una de 2×2. Crearemos ahora una matriz M para almacenar temporalmente el resultado de la resta de sI-A, posteriormente calculamos la inversa de dicha operación y la almacenamos en la variable invM, esto lo mostramos en la figura 3. (todas las variables usadas pueden tener cualquier nombre), también hay que aclarar que hacemos uso de la función factor() para que Maxima nos entregue la expresión calculada de forma compacta.

Fig 3. Usamos factor() para obtener una forma más compacta de la matriz inversa.

Fig 3. Usamos factor() para obtener una forma más compacta de la matriz inversa.

Recordemos la expresión de la función de transferencia:

G(S)=C*[(SI-A)^{-1}]*B

Y la expresión que está entre corchetes [] ya la hemos calculado con Maxima y se encuentra almacenada en la variable invM, entonces ahora todo se reduce a una multiplicación de 3 matrices, recordemos de entradas anteriores, que para realizar la multiplicación de matrices en Maxima se utiliza el operador . (punto), entonces ¡calculemos la función de transferencia!, el resultado de dicha multiplicación lo almacenaremos en la variable G (a modo de generar mayor compresión).

Fig 4. función de transferencia total calculada en Maxima.

Fig 4. función de transferencia total calculada en Maxima.

Cómo puedes observar, hemos utilizado nuevamente la función factor() para que Maxima nos entregue la expresión de la función de transferencia lo más compacta posible para una mayor compresión, sin embargo el no utilizar la función factor() no alterará el resultado obtenido para la función de transferencia.

A continuación compartimos un video que muestra y explica todo el proceso anterior y que puede ser útil para aclarar ciertos conceptos, esperamos tus sugerencias en los comentarios.

Cómo pueden observar resulta bastante útil saber como manejar Maxima para realizar este tipo de cálculos y permitirnos concentrarnos en aspectos más relevantes del control de los sistemas que nos encontramos analizando.

Si este artículo ha sido útil para ti, ayúdanos a compartirlo para que la información llegue a más personas. Saludos.

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