Introducción
El desarrollo de técnicas para el diseño de sistemas de control multivariable es de práctica común para sistemas complejos. Un método particular de diseño, es aquel que implica el uso de realimentación para conseguir estabilidad de sistemas de control de lazo cerrado (Ogata, 2008). Con este método es a menudo de interés conocer si es posible o no lograr que las entradas controlen a las salidas independientemente, esto es, que una sola entrada influya en una sola salida (i.e., el tener un sistema desacoplado). Ya conseguido el desacoplamiento de un sistema multivariable MIMO (Multiple Input - Multiple Output), puede ser analizado mediante las técnicas clásicas para sistemas SISO (Single Input - Single Output) (Granizo, 1988).
La problemática de desacoplar un sistema MIMO mediante el proceso analítico algebraico (Granizo, 1988), es muy complicado y al mismo tiempo se alarga, a la vez que se aumente el número de entradas que es igual al número de salidas, y más por supuesto, si se aumenta también el orden del sistema (Montgomerie & Nicholson, 2015).
Una de las formas para determinar el "desacoplamiento" de un sistema multivariable, es la técnica matriz función de transferencia mediante el análisis algebraico (Chen, 1970), que para sistemas de dos entradas y dos salidas, son aplicaciones de fácil resolución; sin embargo, para sistemas de mayor número de entradas y salidas se recomienda el empleo de algoritmos computacionales, debido a que los elementos de las matrices son fracciones de polinomios, y por consiguiente, las operaciones matriciales normalmente son aplicadas a elementos numéricos (Frank, 1992). Este trabajo desarrolla e implementa un programa computacional en lenguaje Pascal que determina un compensador de lazo cerrado que permite que el sistema acoplado multivariable pueda convertirse en un sistema desacoplado.
Con lo indicado anteriormente, un sistema multivariable de orden n, con m entradas y m salidas, en el que se asume m ≤ n, se define la matriz cuadrada función de transferencia G (s), que relaciona el vector de entrada m dimensional u (s) y el vector de salida m dimensional y (s), de la siguiente forma:
donde para que el sistema multivariable sea desacoplado, la matriz función de transferencia G (s) debe ser diagonal y no singular (Montgomerie and Nicholson, 2015).
Del estudio del estado del arte en esta temática, no se ha encontrado algoritmos computacionales implementados en lenguajes de computación de alto nivel, que solucionen el desacoplamiento de sistemas multivariables.
El artículo tiene la siguiente estructura: en la sección II se trata brevemente la técnica de desacoplamiento mediante función de transferencia. En la sección III se expone la propuesta del algoritmo computacional de desacoplamiento de sistemas lineales invariantes en el tiempo (Linear Time-Invariant, LTI). En la sección IV se muestran los resultados que se obtienen al aplicar la propuesta del algoritmo computacional a sistemas MIMO. Finalmente, en la sección V se resumen las principales conclusiones de trabajo de investigación
Desacoplamiento de Sistemas Mimo por Matriz Función de Transferencia
El desacoplamiento de sistemas MIMO por este método, consiste en obtener una matriz compensadora Gc (s) de dimensión (n x n) serie a la función de transferencia de paso directo Gp (s), tal que la matriz del sistema de lazo cerrado sea diagonal (Montgomerie and Nicholson, 2015), como se puede observar en la Fig 1.
Donde u (s) es el vector de entrada n dimensional, y (s) es el vector de salida n dimensional, E (s) es el error entre el vector de entrada y el vector de salida, de orden n , M (s), es la nueva entrada de la planta Gp (s), Go (s) es la matriz función de transferencia de paso directo cuando se añade un compensador y Gp (s) es la matriz función de transferencia de paso directo de dimensión ( n x n ) de una planta.
El proceso para obtener el compensador Gc (s) se muestra a continuación, se debe tener en cuenta que cada elemento de la matriz Gp (s) es un polinomio en el dominio de s y que I es la matriz identidad (Montgomerie and Nicholson, 2015):
La matriz diagonal G d (s) es conocida por imposición de diseño en el desacoplamiento de sistemas MIMO mediante función de transferencia, es decir, cada término de la diagonal de G d (s) corresponde con las especificaciones de diseño para que el sistema cumpla con las características, tales como: estabilidad relativa, velocidad de respuesta, entre otras.
Propuesta del Algoritmo Computacional de Desacoplamiento
La propuesta del algoritmo computacional para el desacoplamiento de sistemas MIMO mediante función de transferencia, se resume en los siguientes aspectos: algoritmo computacional principal, diagrama de flujo resumido del algoritmo principal y las subrutinas utilizadas. En los siguientes literales se describe cada aspecto:
El algoritmo computacional principal
El algoritmo computacional principal propuesto para el desacoplamiento de sistemas MIMO mediante función de transferencia, se muestra a continuación:
Entrada del orden de la matriz Gp (s), que corresponde al número de entradas o salidas del sistema, que se define con ENT#091;nENT#093;.
Entrada del mayor grado de los elementos de la planta Gp (s), luego de determinar el mínimo común múltiplo de sus denominadores, que se define con ENT#091;mENT#093;.
Entrada del mayor grado del mínimo común múltiplo de los denominadores de Gp (s), que es el orden del sistema, y se define con ENT#091;tENT#093;.
Entrada del mayor grado entre los numeradores y denominadores de los términos de la matriz diagonal Gd (s), que se define con ENT#091;m1ENT#093;.
Entrada de la matriz GpL (s), de dimensión ( n x n x m ) que es la matriz Gp (s) sin el mínimo común múltiplo de sus denominadores. m son planos que corresponden al grado de los polinomios de la matriz GpL (s) en s .
Entrada del mínimo común denominador, δ (s), de orden t .
Entrada de la matriz diagonal G d (s), que tiene dimensión ( n x n x m1 ). m1 es similar a m .
Determinar la matriz Go (s), mediante:
donde:
Numerador i de Go (s) = n ii (s) ,i = 1, 2,...,n
Denominador i de Go (s) = d ii (s) - n ii (s) ,i = 1, 2,...,n
Determinar la matriz GpL-1 (s), mediante la subrutina: MatrizInversaPolinomial .
Determinar la matriz Gc (s), mediante el siguiente proceso:
10.1) Calcular:
nu j (s) = δ(s) n jj (s) , j = 1, 2, ... , n
10.2) Calcular denominador de Gc (s),
den j (s) = dpl(s) ENT#091;d jj (s) - n jj (s)ENT#093; , j = 1, 2, ... ,n.
Siendo: i = Fila de matriz.
j = Columna de matriz.
Donde dpl(s), es mínimo común denominador de la matriz GpL-1(s)
10.3) Calcular numerador de Gc (s),
num ij (s) = nu j (s) gl ij (s) , i = 1, 2, ... , n
, j = 1, 2, ... , n
Donde gl ij (s), son los elementos de la matriz GpL-1 (s), sin la relación: δ(s) / dpl(s)
Obtener los compensadores PID,
P k = num ij (s) / den j (s) , i = 1, 2, ... , n
, j = 1, 2, ... , n
, k = -1, 0, 1, 2.
Gc ijk = P k , i = 1, 2, ... , n
, j = 1, 2, ... , n
, k = -1, 0, 1, 2.
Imprimir el compensador serie Gc (s).
Fin.
Diagrama de flujo resumido del algoritmo principal
El diagrama de flujo resumido del algoritmo principal de la técnica desacoplamiento matriz función de transferencia, se muestra en la Fig 2.

Fig 2 Diagrama de flujo resumido del algoritmo principal de la técnica desacoplamiento matriz función de transferencia.
Las subrutinas utilizadas
Las subrutinas utilizadas en este método de desacoplamiento de sistemas MIMO, se describen a continuación:
1. Producto Polinomio Polinomio
La subrutina ProductoPolinomioPolinomio , multiplica dos polinomios en el dominio de s, los polinomios pueden tener diferente grado. Esta subrutina no utiliza subrutinas adicionales.
Secuencia de llamada
PRroductoPolinomioPolinomio(GradoPl,GradoP2, Polinomio1,Polinomio2,Prod).
Definición de símbolos
GradoP1 = Grado del Polinomio1.
GradoP2 = Grado del Polinomio2.
Polinomio1 = Coeficientes del Polinomio1, PolinomiolENT#091;0ENT#093; término constante.
Polinomio2 = Coeficientes del Polinomio2, Polinomio2ENT#091;0ENT#093; término constante.
Prod = Coeficientes del polinomio del producto de los dos Polinomios.
2. Reducir Grado
La subrutina ReducirGrado , elimina los coeficientes de mayor grado que son cero, de un polinomio en el dominio de s. En el cálculo computacional se considera un valor de cero, si no excede un valor de error, que en este caso se toma en el orden de 1x10-6. Esta subrutina no utiliza subrutinas adicionales.
Secuencia de llamada
ReducirGrado(IR, XY,IXY).
Definición de símbolos
IR = Grado del polinomio original XY.
XY = Coeficientes del polinomio original XY, XYENT#091;0ENT#093; es el término constante.
IXY = Grado del polinomio resultante, eliminado los coeficientes de mayor grado que son cero.
3. División Polinomios
La subrutina DivisionPolinomios , divi de dos polinomios en el dominio de s, los polinomios pueden tener diferente grado. Esta subrutina utiliza la subrutina ReducirGrado .
Secuencia de llamada
DivisionPolinomios(IX,X,IY,Y,IP,P).
Definición de Símbolos
IX = Grado del polinomio X.
X = Coeficientes del arreglo X.
IY = Grado del polinomio Y.
Y = Coeficientes del arreglo Y.
IP = Grado del polinomio P resultante de la división de los dos Polinomios.
P = Coeficientes del arreglo P resultante de la división de los dos Polinomios.
4. Matriz Inversa Polinomial
La subrutina MatrizInversaPolinomial , determina la in versión de una matriz polinomial en el dominio de s. La matriz inversa está compuesta por un polinomio denominador y una matriz tridimensional, donde cada uno de los planos de la matriz corresponde al res pectivo grado polinomial. Esta subrutina utiliza las subrutinas: ProductoMatricesPolinomiales , PRroductoMatrizPolinomio y PRroductoPolinomioPolinomio ; las dos primeras subrutinas se describen en los siguientes numerales y la última subrutina está descrita en el primer numeral.
Secuencia de llamada
MatrizInversaPolinomial(GpL,Denominador).
Definición de símbolos
GpL = Elementos de la Matriz GpL, GpLENT#091;i,j,0ENT#093; matriz constante.
Denominador = Coeficientes del Polinomio Denominador, DenominadorENT#091;0ENT#093; término constante.
5. Producto Matriz Polinomio
Esta subrutina PRoductoMatrizPolinomio realiza la multiplicación de una matriz polinomial con un polinomio, en el dominio de s, cuyo resultado es también una matriz polinomial. Esta subrutina no utiliza subrutinas adicionales.
Secuencia de llamada
ProductoMatrizPolinomio(Fila,Columna,GradoM, GradoP,Matriz,Polinomio, Produc).
Definición de símbolos
Fila = Número de filas de la Matriz.
Columna = Número de columnas de la Matriz.
GradoM = Mayor grado de los elementos de la Matriz original.
GradoP = Grado del polinomio.
Matriz = Elementos de la Matriz, MatrizENT#091;i,j,0ENT#093; matriz constante.
Polinomio = Coeficientes del Polinomio, PolinomioENT#091;0ENT#093; término constante.
Produc = Elementos del resultado del producto Matriz-Polinomio.
6. Producto Matrices Polinomiales
La subrutina PRoductoMatricesPolinomiales multiplica dos matrices polinomiales en el dominio de s, las matrices pueden tener diferente grado. Esta subrutina no utiliza subrutinas adicionales.
Secuencia de llamada
PRoductoMatricesPolinomio(FilaM1,ColumnaM2, FilaColumna,GradoM1,GradoM2, MatrizM1,MatrizM2,Producto).
Definición de símbolos
FilaM1 = Número de filas de la MatrizM1.
ColumnaM2 = Número de columnas de la MatrizM2.
FilaColumna = Número de columnas de la MatrizM1, igual al número de filas de MatrizM2.
GradoM1 = Mayor grado de los elementos polinomiales de la MatrizM1.
GradoM2 = Mayor grado de los elementos polinomiales de la MatrizM2.
MatrizM1 = Elementos de la Matriz1, MatrizM1ENT#091;i,j,0ENT#093; matriz constante.
MatrizM2 = Elementos de la Matriz2, MatrizM2ENT#091;i,j,0ENT#093; matriz constante.
Producto = Elementos del resultado del producto de matrices.
Resultados Al Aplicar El Algoritmo Computacional
El programa computacional propuesto es muy amigable y de fácil uso, porque está implementado en lenguaje Pascal en modo consola, con la ventaja que puede ser implementado en cualquier Sistema Operativo de Windows. El limitante de este programa consiste en que no se puede utilizar en el caso de matrices no invertibles de la planta.
La matriz polinomial de la planta Gp (s) debe estar expresada de la siguiente forma:
donde GpL es la matriz polinomial en el dominio de s del numerador de la planta Gp (s) y DELTA es el polinomio mínimo común múltiplo de los denominadores de los elementos de la planta Gp (s).
Para introducir los datos de la matriz GpL, debe tenerse en cuenta que esta matriz tiene tres dimensiones, donde la tercera dimensión representa las matrices o planos que corresponden al grado creciente de los polinomios en el dominio de s .
Se recomienda que los valores de las entradas de datos: grado de la matriz Gp (N), mayor grado de los elementos de la matriz Gp una vez encontrado el mínimo común múltiplo de los deno minadores (M), y mayor grado de los numeradores y denominadores de los elementos de la matriz diagonal G d (M1); no sobrepasen del valor de 10, debido a que el ingreso de la información es demasiado extenso y los resultados no se presentan de forma clara.
A continuación se presenta un ejemplo de aplicación que tiene el fin de comprobar que el algoritmo computacional cumple con el método matemático. Cabe destacar que el algoritmo computacional puede resolver ejercicios de grado mayor a dos, porque el programa computacional pue de aplicarse, no sólo a sistemas simples, sino también a sistemas complejos; cuyo desarrollo algebraico se tornaría largo y difícil, o inclusive impracticable.
Sea el sistema MIMO de la Fig. 3, que está conformado por un sistema de dos entradas y dos salidas, con una matriz compensadora serie cuyos elementos son: gc11, gc21, gc12 y gc22.
Se determina la matriz del compensador serie Gc (s) del sistema de la Figura 3, tal que la matriz de la función de transferencia de lazo cerrado G d (s), debe ser diagonal por diseño para que el sistema sea desacoplado, es decir, el sistema tenga cada salida dependiente únicamente de una entrada:
Por lo que al aplicar el método matemático descrito en (Montgomerie and Nicholson, 2015), se obtiene la matriz del compensador serie Gc (s) añadido a la planta Gp (s):
Los elementos de la matriz (6) del compensador serie Gc(s) corresponden a los compensadores indicados en la Figura 3, los cuales tienen las estrategias de control proporcional, integral y derivativo (PID): gc 11 (s)=2 + s -1 y gc 22 (s)=0.2 + 0.2s -1 es control proporcional e integral; gc 21 (s) = -2s - 3 - s -1 es control proporcional, integral y derivativo; y gc 12 (s) = 0 indica no hay compensador.
En el análisis realizado no se consideran perturbaciones externas, y además se producen cancelaciones en el numerador y el denominador de Gc (s) y Gp (s), entonces aunque se han conseguido los resultados deseados de ausencia de interacciones entre una entrada y varias salidas, se debe analizar cuando se producen perturbaciones en el sistema por fuerzas externas, porque el sistema podría hacerse "incontrolable" por dichas cancelaciones.
Por otro lado, al aplicar el algoritmo computacional propuesto en la sección III, se obtiene el compensador serie GC de la siguiente manera:
COMPENSADOR SERIE GC
Compensador PID (1,1)
Grado:-1 1.000
Grado: 0 2.000
Compensador PID (2,1)
Grado:-1 -1.000
Grado: 0 -3.000
Grado: 1 -2.000
Compensador PID (1,2)
Grado (0): 0 *No hay compensador
Compensador PID (2,2)
Grado:-1 0.200
Grado: 0 0.200
El resultado del programa computacional propuesto muestra la matriz del compensador serie GC por columnas, de la siguiente forma: gc11(s), gc21(s), gc12(s) y gc22(s); donde cada elemento es un polinomio en el dominio s que se le aproxima a un controlador PID, debido a que el objetivo de este método de desacoplamiento es tener un controlador que se implemente mediante un control Proporcional, Integral y Derivativo. Este resultado del compensador serie GC expresado en forma matricial, sería:
Al comparar las matrices (6) y (7), se puede comprobar que existe correspondencia entre el cálculo de la solución del método matemático y el resultado que se obtiene con el algoritmo propuesto. Se debe tener en cuenta que el programa computacional propuesto muestra los datos en punto flotante, con tres cifras decimales.
Por último, se debe tener en cuenta cuando un elemento de la matriz del compensador G C puede ser inadecuado, debido a que no se ajusta a un controlador PID, ya que el grado del numerador es mucho menor al grado del denominador, en dos o más; por lo que el programa computacional mostrará el mensaje "No hay aproximación". También, hay que tener en cuenta cuando un elemento de la matriz G C puede ser cero, lo que implica que no existe compensador, el mensaje que mostrará el programa es "No hay compensador". Además, el programa mostrará el mensaje "ERROR está mal dada la matriz diagonal G d ", cuando la matriz diagonal G d es singular y uno de sus elementos es igual a cero.
Conclusiones
Para darle significado físico al resultado del compensador serie GC, cada elemento de la matriz es aproximado a un controlador PID, y debido a que las ecuaciones descritas son muy simples para desacoplar un sistema, permiten una fácil resolución algebraica para un sistema de dos entradas y dos salidas; sin embargo, ya que el proceso analítico es algebraico, el mismo que se puede alargar y complicar, a la vez que se aumente el número de entradas, salidas y el orden del sistema; por lo que se hace necesario el contar con un algoritmo computacional como el propuesto. Esta técnica de desacoplamiento mediante un algoritmo computacional, solo sirve para sistemas lineales invariantes en el tiempo.
Cabe indicar que existen otros métodos de desacoplamiento de sistemas MIMO, tales como: realimentación de estado y realimentación de salida; los cuales serán presentados en próximos artículos.