CONTENIDOS MINIMOS PARA UN CURSO DE CONTROL NO LINEAL DE SISTEMAS CONTINUOS BASADO EN CALCULO NUMERICO-SIMBOLICO CON MATLAB Manuel F. Pérez Polo, José Ángel Berná Galiano, Javier Gil Chica Departamento de Física Ingeniería de Sistemas y Teoría de la Señal. Universidad de Alicante. Escuela Politécnica Superior. Apartado 99, E-03080. Alicante. E-mail: [email protected]; [email protected] ; [email protected] Manuel Pérez Molina Dpto. Ciencia de Materiales Óptica y Tecnología Electrónica, Universidad Miguel Hernández, Avda. Ferrocarril sn 03202 Elche E-mail: [email protected] Actualmente, la geometría diferencial ha demostrado ser una herramienta eficaz en el análisis y diseño de sistemas de control no lineales; de la misma forma que en el pasado lo fueron el álgebra lineal, la variable compleja y la transformada de Laplace para sistemas lineales. A pesar de que los conocimientos matemáticos básicos pueden ser fácilmente asimilados por alumnos a nivel de segundo ciclo, tales cursos no suelen ser habituales en los programas de control Es ahí donde pretendemos incidir en este trabajo, presentando una introducción a los sistemas de control no lineales desde el punto de vista computacional, utilizando la capacidad numérico-simbólica de Matlab [1]. El curso esta dirigido a estudiantes de ingeniería con un conocimiento básico de de las técnicas de control lineal basado en espacio de estados [4], [5], [6], [17], [18]. Las demostraciones rigurosas no son estrictamente necesarias para el curso y se pueden encontrar en [2], [5], [6], por tanto no es necesario considerarlas en un curso como este de introducción. Más bien sería deseable poner énfasis en los conceptos de forma intuitiva, cuando se comparan con la teoría de sistemas lineales. Por consiguiente, el curso podría basarse en los siguientes puntos. a) Tipo de sistema: monovariable (SISO) frente a multivariable (MIMO) y en la estructura de las ecuaciones del sistema a las que se les aplica el control no lineal (sistemas descritos por ecuaciones en forma afín). Aquí sería interesante poner muchos ejemplos de aplicación para motivar al alumno. b) Conceptos de controlabilidad y observabilidad a partir del concepto de álgebra y corchetes de Lie, comparando con los sistemas lineales. c) Concepto de distribución y de grado relativo para sistemas SISO, MIMO y su relación con los polos y ceros de la función transferencia clásica. Resumen La llegada de los nuevos planes de estudio va a suponer un cambio de contenidos de muchas materias en los nuevos niveles de grado, postgrado y master. Por otro lado, sería deseable que tales cambios no implicaran renunciar a nuevos contenidos que se han ido incorporando a la Ingeniería de Sistemas y Control en los últimos30 años. Desde este punto de vista, este trabajo pretende fijar las bases para un curso de introducción en sistemas no lineales de control basados en geometría diferencial para ser implementado en computador. Se exponen de forma simplificada los conceptos necesarios de control y geometría diferencial usando cálculo simbólico con Matlab y apoyándose en los conocimientos de control lineal que se supone conoce el alumno. El objetivo es dar un procedimiento sistemático para exponer los conceptos de álgebra de Lie, controlabilidad, observabilidad, grado relativo, linealización exacta a partir del teorema de Frobenius para sistemas SISO y liinealización exacta a partir de la matriz de desacoplamiento para sistemas MIMO. Se presentan las ideas básicas para utilizar las capacidades numéricas y simbólicas de Matlab La aplicación de la metodología propuesta se ilustra con dos ejemplos: control SISO de un transductor electromecánico de posición y control MIMO de un dispositivo micro electromecánico de almacenamiento masivo Palabras clave: Control no lineal, linealización exacta estado-entrada, entrada-salida, calculo numérico-simbólico, Matlab, ejemplos 1 INTRODUCCIÓN El control no lineal de sistemas continuos basado en geometría diferencial, aparece de forma sistemática a finales de los 70 [2], [3], [4], [5], [6]. Desde entonces han aparecido un gran número de trabajos de investigación, libros y aplicaciones en la industria de procesos. 1 d) El concepto de involución y el teorema de Frobenius respecto a la integrabilidad de distribuciones. e) La linealización exacta entrad-estado para sistemas SISO y la linealización de linealización exacta entrad-salida para sistemas MIMO. Aquí es importante incidir entre la diferencia de linealizar un sistema no lineal a través de la matriz jacobiana y el significado de la linealización exacta a través de una realimentación no lineal de estado junto con un cambio de coordenadas. f) Desarrollar a lo largo del curso y de forma progresiva un programa de computador con Matlab [1] para que el estudiante reconozca que el análisis y diseño de sistemas de control no lineales basados en geometría diferencial no es más difícil que un curso usual de control. linear de tipo SISO caracterizado por una entrada una salida y una única señal de control. La herramienta matemática que emplean los sistemas de control no lineales basados en geometría diferencial el concepto de álgebra de Lie [4], [5], [6]. Un caso particular de álgebra de Lie son los corchetes de Lie formados por todos los vectores campo diferenciables en Rn, o sea para cualesquiera dos vectores campo f, g ∈ Rn, que son funciones de las variables de estado x ∈ Rn se define: 2 CONCEPTOS BÁSICOS ⎡ ∂f1 ⎢ ∂x 1 ∂f ⎢ = ⎢ ... ∂x ⎢ ∂f ⎢ n ⎢⎣ ∂x1 ∑ ∂x f − ∂f ∂x g (3) donde ∂g/∂x and ∂f/∂x son matrices jacobianas definidas de la forma: A continuación se exponen los conceptos básicos siguiendo de forma aproximada los pasos anteriores. a) El tipo de sistemas no lineales que se consideran son os que vienen representados por ecuaciones de la forma: ⎫ x (t ) = f ( x (t )) + g i ( x (t ))ui (t ) ⎪ ⎬ i =1 ⎪ y j = h j ( x ((t )) ; 1 ≤ j ≤ p ⎭ ∂g [ f , g] = ⎡ ∂g1 ⎢ ∂x ∂xn ⎥ 1 ⎥ ∂g ⎢ = ⎢ ... ...... ... ⎥ ; ∂x ⎢ ⎥ ∂f n ∂g ⎥ ⎢ n ...... ∂xn ⎥⎦ ⎢⎣ ∂x1 ...... ∂f1 ⎤ ∂xn ⎥ ...... ... ⎥ ⎥ ...... (4) m Es fácil comprobar que los corchetes de Lie cumplen las condiciones para ser un álgebra de Lie [4], [5]. Por ejemplo si tenemos: (1) ⎡ x13 + e − x ⎤ ⎡ −1⎤ ⎢ ⎥ 3 ⎢ ⎥ f ( x) = ⎢ x2 ⎥ ; g ( x ) = ⎢ 0 ⎥ ⎢⎣sin x3 + 3⎥⎦ ⎢⎣ x1 ⎥⎦ 2 Un sistema representado de esta forma se dice que está en forma afín. Se supone que los vectores campo f, g1, g2,…..,gm son aplicaciones lisas diferenciables de Rn ien Rn. Estas aplicaciones se pueden representar en forma de funciones reales n-dimensionales de las variables de estado x1, x2,….,xn: ⎡ f1 ( x1 (t ), x2 (t ),..., xn (t )) ⎤ ⎢ f ( x (t ), x (t ),..., x (t )) ⎥ 2 1 2 n ⎥ f ( x (t )) = ⎢ ⎢ .................................... ⎥ ⎢ ⎥ ⎣ f n ( x1 (t ), x2 (t ),..., xn (t )) ⎦ ⎡ g i1 ( x1 (t ), x2 (t ),..., xn (t )) ⎤ ⎢ g ( x (t ), x (t ),..., x (t )) ⎥ i2 1 2 n ⎥ g i ( x (t )) = ⎢ ⎢ .................................... ⎥ ⎢ ⎥ ⎣ g in ( x1 (t ), x2 (t ),..., xn (t )) ⎦ (5) a partir de un programa de cálculo simbólico, es posible diseñar un procedimiento general para calcular el corchete de Lie, tal como se indica a continuación [1] syms x1 x2 x3 f = [x1^3+exp(-x2); x2^2; sin(x1)+3]; g = [-1; 0; x1]; n = 3; x = sym(zeros(1,n)); for i = 1:n x(i) = [‘x’ int2str(i)]; end LB = jacobian(g,x)*f – jacobian (f,x)*g; % Lie Breacket (2) No es difícil generalizar el programa anterior para calcular corchetes de ie de orden n. Es posible extender el concepto de corchete de Lie a varios vectores campo, para lo cual se introduce una notación más compacta: Las funciones h1, h2,….,hp, que caracterizan las salidas del sistema son funciones reales de las variables de estado xi, y pueden ser elegidas por el diseñador teniendo en cuenta las posibilidades de accesibilidad y medida. Cuando m= 1, p = 1 tenemos un sistema no 2 ∂g1 ⎤ ...... ⎥ ⎥ ∂xn ⎥⎦ ∂g n ad f = [ f , • ] ⇒ ad f g = [ f , g ]⎫ ⎪ ⎬ ⎪⎭ [ f , ......[ f , g ] ......] = ad f g n O = ⎡⎣C CA CA ...... CA ⎤⎦ ⇒ rank (O ) = n (6) en donde el símbolo adf significa operador adjunto. De esta forma es posible generar corchetes de Lie de forma escalonada. b) Para sistemas no lineales se puede definir un test de controlabilidad y observabilidad. Para ello, a partir de un sistema en forma afín (ecuación (1)) se forma un conjunto de vectores campo L que forma un álgebra de Lie, y que esta formada por todos los corchetes de Lie hasta de orden (n-1) entre los vectores campo f(x) y gi(x) con 1 ≤ i ≤ m, o sea: { n −1 n −1 L = g1 ,.., g m , ad f g1 ,.., ad f g m , .., ad f g1 ,.., ad f g m (7) Entonces el sistema (1) es controlable si y solo si se verifica: dim( L ) = n (8) } T (11) en donde [.]T indica matriz transpuesta. Un sistema no lineal como (1) no tiene matrices A, C, por lo que el criterio de observabilidad hay que introducirlo a través del álgebra de Lie. Para ello se introduce el concepto de derivada de Lie, el cual se puede considerara como la derivada direccional para un campo escalar λ(x), con x ∈ Rn a lo largo de la dirección de un vector campo n-dimensional f(x): ∂λ ( x ) f ( x) = L f λ ( x) (12) ∂x en donde Lfλ(x) es una notación abreviada para indicar que se está calculando un vector gradiente (1xn) de el escalar λ(x) a lo largo de la dirección del vector f(x), o sea la derivada direccional de λ(x) a lo largo de f(x). Ahora si se considera el vector campo de salida h(x) ∈ Rn h ( x ) = [ h ( x ), h ( x ), ...., h ( x ) ] T 1 m 2 y la correspondiente derivada de Lie calculada de la forma: Obsérvese que los conceptos de controlabilidad y observabilidad tienen el mismo significado en sistemas lineales y no lineales. La única diferencia es la forma algebraica de expresar estos conceptos en sistemas lineales y no lineales. Puesto que cada elemento de L es función de estado x, en general la dimensión de L varía para cada punto del espacio de estados. Para verificar la condición (8) es necesario diseñar un programa de computador que calcule la matriz L para cualquier tipo de sistema. El programa debe usar solo expresiones simbólicas, las cuales pueden pasarse a expresiones numéricas [1]. Puesto que una matriz simbólica en Matlab se maneja de forma similar a una numérica, no es difícil obtener cada columna de L usando un bucle for. Entonces la sentencia rank = size(null(L),2) determina la dimensión de L. Este es el primer paso en el análisis y diseño de una ley de control no lineal. Un ejercicio interesante es comprobar que las ecuaciones (7), (8) dan la conocida condición de controlabilidad para sistemas lineales, o sea: ⎡ L f h1 ( x ) ⎤ ⎢ ⎥ L f h( x ) = ......... ⎢ ⎥ ⎢⎣ L f hm ( x ) ⎥⎦ (13) A partir de (14) se puede construir el espacio de observación Θ definido de la forma: { n −1 } Θ = span h ( x ), L f h ( x ), L f h ( x ), ......, L f h ( x ) 2 (14) Nótese que este espacio esta generado por todas las derivadas de Lie hasta de orden (n-1). A partir de estas derivadas de la función h(x). se define la distribución dΘ como: d Θ = span { } ∂θ ∂x with θ ∈ Θ (15) entonces el sistema es observable si y solo si dim(dΘ) = n. Un ejercicio interesante es demostrar que esta condición es equivalente a la (11) para sistemas lineales. De esta forma se refuerzan las nociones de controlabilidad y observabilidad para sistemas no lineales al compararlas con los lineales. Como en el caso de la controlabilidad se construye un programa para calcular automáticamente el test de observabilidad c) Analicemos a continuación el concepto de grado relativo. Partiendo de sistemas lineales. Recordemos que para una función transferencia dada, la diferencia entre C = ⎡⎣ B AB A B ...... A B ⎤⎦ ; rank (C ) = n (9) Recordemos que para un sistema lineal invariante de la forma: x (t ) = Ax (t ) + Bu (t ) ⎫ (10) ⎬ yt ) = Cx (t ) + Du (t ) ⎭ en donde x(t) es (nx1) y A, B, C, D son matrices constantes. El sistema es observable si el rango de la matriz de observabilidad O es n o sea: 2 n −1 2 n −1 3 donde: polos y ceros coincide con el número de veces que habría que derivar la función de salida para obtener la entrada; o sea desde este punto de vista, estamos considerando el problema inverso, o sea de como obtener la entrada a partir de la señal de salida. Por consiguiente, para resolver este problema hay que añadir ceros en el origen a la función transferencia original antes de poder resolverlo. Para sistemas SISO es sencillo diferenciar la ecuación de salida para obtener la señal de entrada u(t).De esta forma el grado relativo es el número de veces que hay que derivar la señal de salida para obtener la entrada. [2], [3], [4], [5], [6] que es completamente análogo a añadir integradores en sistemas lineales. Siguiendo el mismo procedimiento, se puede definir la matriz de desacoplamiento D(x) para sistemas MIMO, a partir de la cual se define el grado relativo para cada salida del sistema. Detalles se pueden encontrar en [2], [4], [5], [6]. Obsérvese que desde el punto de vista del cálculo simbólico, solo es necesario considerar el vector campo h(x) para determinar el grado relativo en sistemas SISO y MIMO. d) Analicemos a continuación la linealización exacta estado-entrada para sistemas SISO. La linealización exacta significa que por medio de una realimentación no lineal del estado, y un cambio de coordenadas, el sistema no lineal se convierta en uno lineal, Entonces todos los métodos para controlar sistemas lineales se podrían aplicar a los no lineales., siempre que pudiera deshacerse el cambio de coordenadas. Para ello se introduce el concepto de distribución, distribución involutiva e integrabilidad completa de una distribución a partir del teorema de Frobenius. [4], [5], [6]. Con los conceptos anteriores es posible obtener las condiciones para que un sistema no lineal SISO sea linealizable exactamente. Obsérvese que si un sistema es linealizable exactamente es porque es controlable, o sea se verifica la condición (8). Y además es integrable. Si elsistema es linealizable, hay que obtener el cambio de coordenadas y la ley de realimentación no lineal de la siguiente forma: ⎡0 ⎢0 ⎢ A = ⎢. ⎢ ⎢0 ⎣⎢ 0 0 . 0 1 . . . . 0 0 . 0 0 . ⎡ z1 (t ) ⎤ ⎡0⎤ ⎢ z (t ) ⎥ ⎥ ⎢ ⎥ 0 0 ⎢ 2 ⎥ ⎥ ⎢ ⎥ . ⎥ ; B = ⎢ . ⎥ ; z (t ) = ⎢ . ⎥ ⎢ ⎥ ⎥ ⎢ ⎥ 1 ⎢ . ⎥ ⎥ ⎢.⎥ 0 ⎦⎥ ⎣⎢1 ⎦⎥ ⎣⎢ z n (t ) ⎦⎥ 0⎤ (18) La función φ(x) de las ecuaciones (16) debe verificar las condiciones: ∂φ ( x ) ∂x g ( x) = ∂φ ( x ) ∂x ∂φ ( x ) ad f g ( x ) = ... = ∂x n−2 ad f g ( x ) (19) El cálculo de φ(x) a partir de (19) es general difícil, sin embargo para muchos sitemas de ingeniería (mecánicos, electromecánicos, robots industriales, etc.) la función φ(x) puede elegirse como una variable de salida medible, y por tanto esta función debe ser un dato de entrada en el programa de computador. Por ejemplo si se elige: y = h( x ) = φ ( x ) = x1 2 las siguiente sentencias simbólicamente la matriz T(x) [1]: (20) determinan T = sym(zeros(n,1)); h1 = h; T(1,1) = h; for i = 2:n+1 dh = jacobian(h,x); Lfh = dh*f; if i <= n T(i,1) = subs(Lfh); end h1 = Lfh; end Nótese que en la última fila de T tenemos L f φ ( x ) y por tanto es posible obtener el valor n −1 ⎡ φ ( x) ⎤ ⎢ L φ ( x) ⎥ n f ⎥ ; u (t ) = − L f φ ( x) + ν (t ) z = T ( x) = ⎢ n −1 ⎢ ......... ⎥ Lg L f φ ( x ) Lg Lnf−1φ ( x ) ⎢ n −1 ⎥ ⎣ L f φ ( x) ⎦ (16) Con los cambios anteriores el sistema no lineal se transforma en uno lineal de la forma: z (t ) = Az (t ) + Bν (t ) 1 17) 4 de u(t) a partir de (16), a través del siguiente programa Ti = T(n,1); LgLfh = jacobian(Ti,x); LgLfhg = LgLfh*g; if LgLfhg == 0 disp('There is not feddback'); break end ax = hi/LgLfhg; bx = 1/LgLfhg; v1 = sym('v'); • u = bx + v1*ax; % Symbolic value of u(t) from Eq. (16) e). La linealización exacta para sistemas MIMO se realiza normalmente a partir de la linealización exacta entrad-salida, la cual aunque no es tan precisa como la linealización estado-entrada, es la más utilizada en las aplicaciones de ingeniería. Los pasos a realizar en el programa son los siguientes: • Introducir el vector de grados relativos r1 , r2 ,...., rm , siendo ri el grado relativo [ El procedimiento de diseño anterior se puede aplicar cuando la matriz de desacoplamiento es tiene inversa, lo cual se verifica cuando la suma de los grados relativos coincide con el número de variables de estado del sistema. ] 3 LINEALIZACIÓN EXACTA ESTADO-ENTRADA PARA UN TRANSDUCTOR DE POSICION de la salida i. A partir de dicho vector y las ecuaciones (1) se calcula la matriz de desacoplamiento D(x): En esta sección se estudia el modelo de un transductor electromecánico de posición considerado como sistema SISO, tal como se indica en la figura 1. Ejemplos de sistemas en condiciones de funcionamiento muy variadas se encuentran en [7], [8], [9], [10], [11], [12], [13], [14], [15], [16]. Aplicando las ecuaciones de Euler-Lagrange y utilizando como coordenadas generalizadas la posición x = q1 y la carga q = q2 las ecuaciones dinámicas del sistema, introduciendo las variables de desviación en torno al punto de equilibrio, son: ⎡ Lg Lrf−1 h1 ( x) ......... Lg Lrf −1h1 ( x) ⎤ ⎢ ⎥ D ( x ) = ⎢ ................. ......... ................... ⎥ ⎢ L Lr −1h ( x ) ......... L Lr −1h ( x) ⎥ g f m ⎣ g f m ⎦ 1 1 1 m m m 1 1 (21) Considerando el sistema (1) con m = p, la matriz D(x) será cuadrada y el sistema es linealizable exactamente entrada-salida si se verifica la condición: ∑ r = n ; rank ( D( x) = n Usando la técnica de colocación de polos es posible obtener la solución del problema de control. v = − Kz (t ) ⇒ z (t ) = ( A − BK ) z (t ) (27) m (22) i x1′ (t ) = x1 (t ) − x0 ; x2′ (t ) = x2 (t ) ; i =1 • x3′ (t ) = x3 (t ) − i0 Determinar la derivada hasta orden ri de la salida y1 y a partir de la ecuación de salida (1) y de la matriz (21) se obtiene y suponiendo que las señales de control verifican la siguiente condición: r −1 r −1 ⎡ y1r ⎤ ⎡ Lrf h1 ⎤ ⎡ Lg L f h1 ( x ) .. Lg L f h1 ( x ) ⎤ ⎡ u1 ⎤ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎢ ... ⎥ = ⎢ .... ⎥ + ⎢ ................. .. ................... ⎥ ⋅ ⎢ ... ⎥ ⎢⎣ ymr ⎥⎦ ⎢⎣ Lrf hm ⎥⎦ ⎢ Lg Lrf −1hm ( x ) .. Lg Lrf −1hm ( x ) ⎥ ⎣⎢um ⎦⎥ ⎣ ⎦ 1 1 1 1 m 1 m m m la ecuación (23) en v = b ( x ) + D ( x ).u ; v = ⎡⎣ y1 ........... ym ⎤⎦ r1 • rm la ⎡ ⎤ x′2 ⎢ ⎥ ⎢ − B x′ − K ( x ′ + x − b ) − ⎥ ⎢ M 2 M 1 0 ⎥ ⎢ ⎥ 2 ′ +i ) ( a x ⎢ cK ⎥ (30) 3 3 0 ⎢ M ( x1′ + x0 − b ) − M ( d + x′ + x ) 2 ⎥ 1 0 ⎢ ⎥ f0 ⎢ ⎥ − M ⎢ ⎥ ⎢ x′2 ( x3′ + i0 ) Rgs ( d + x0 + x1′ ) ⎥ ( x3′ + i ) 0 ⎥ ⎢ d + x′ + x − 2a 1 ⎣ ⎦ 0 T • rm (24) Si la matriz D(x) tiene inversa, la señal de control se obtiene directamente de la ecuación (24) de la forma: −1 (29) se obtiene las ecuaciones del sistema en la forma: f ( x ′) = b ( x ) = ⎡⎣ L f h1 ( x ).........L f hm ( x ) ⎤⎦ r1 F (t ) = f 0 1 (23) Transformar ecuación: v (t ) = v0 + v1 (t ) m 1 • (28) −1 u = − D ( x) ⋅ b( x) + D ( x) ⋅ v (25) Escoger unas nuevas variables de estado zi considerando las derivadas de las salidas hasta el orden ri-1. Así se obtiene el siguiente sistema lineal, que puede verificarse que es controlable: z (t ) = Az (t ) + Bv (26) 5 ⎡ ⎤ ⎢ ⎥ 0 ⎢ ⎥ g ( x′) = ⎢ 0 ⎥ ⎢ d + x0 + x1′ ⎥ ⎢ ⎥ ⎣ ⎦ 2a z3′ = − (31) ] rango g , ad f g = [ [ z ′(t ) = ( A − BK ) z ′(t ) ⎢ ⎥ ⎥ ⎢ ⎥ ⎢ 2 ⎣⎢ z3′ ⎦⎥ ⎢⎣ L f φ ( x′) ⎥⎦ z ′ = ⎢ z 2′ ⎥ = L f φ ( x′) (38) Para unas condiciones iniciales dadas pueden obtenerse las variables z’(t) y a partir de la transformación inversa: x′ = T −1 ( z ′) (39) Utilizando las ecuaciones (28) se obtienen sin dificultad las variables de estado del sistema original. Obsérvese que las condiciones de linealización exacta estado entrada, son necesarias y suficientes para que la transformación inversa (39) exista. Es más, dichas condiciones aseguran que la transformación directa e inversa son difeomorfismos en el espacio de estados del problema dado. Las condiciones anteriores ponen de manifiesto que al no tener problemas numéricos la simulación del sistema dado por las ecuaciones (30) y (31) será mucho más fácil obtener las variables de estado del sistema original a partir de la transformación inversa (39). Esto puede ser una gran ventaja en sistemas fuertemente no lineales, para los que el intervalo de simulación con los métodos numéricos usuales puede ser muy pequeño. Una vez calculadas las variables de estado x’(t), la señal de control viene dada por: (33) siendo φ(x’) una función escalar, que de acuerdo con el teorema de Frobenius [4] debe de cumplir las condiciones: ∂x ′ ∂φ ( x ′) ∂x ′ , ad f g = 0 (34) La aplicación de las condiciones anteriores muestran que la función φ(x’) no puede depender de x’1 y x’2. Por consiguiente la elección más simple para φ(x’) es hacerla coincidir con la variable de estado x’1. Aplicando la transformación (32) se obtiene: z 2′ = L f φ ( x ′) = ∂φ ( x ′) ∂x′ u ( x ′) = f ( x′) = [1 0 0 ] f ( x′) = x2′ (34) y para z’3 z3′ = L2 f φ ( x′) = ∂L f φ ( x′) ∂x′ 3 2 a ( x3′ + i0 ) ]] siendo adfg la notación usual para los corchetes de Lie Los cálculos realizados muestran que se verifican las condiciones anteriores y por tanto el sistema se puede linealizar exactamente estado- entrada. La transformación de coordenadas que hace al sistema lineal será de la forma: ⎡ z1′ ⎤ ⎡ φ ( x′) ⎤ , g ( x ′) = 0 ; ( x1′ + x0 − b ) z ′(t ) = Az ′(t ) + Bv(t ) ; w(t ) = − Kz ′(t ) rango g , ad f g , g , ad f g ∂φ ( x ′) M El sistema lineal definido por las ecuaciones (36) puede resolverse fijando los polos deseados de lazo cerrado: 2 [ M cK ⎡ z1′ ⎤ ⎡ 0 1 0 ⎤ ⎡ z1′ ⎤ ⎡ 0 ⎤ ⎢ z ′ ⎥ = ⎢ 0 0 1 ⎥ ⎢ z ′ ⎥ + ⎢ 0 ⎥ w(t ) (37) ⎢ 2⎥ ⎢ ⎥⎢ 2⎥ ⎢ ⎥ ′ ⎣⎢ z3 ⎦⎥ ⎣⎢ 0 0 0 ⎦⎥ ⎢⎣ z3′ ⎦⎥ ⎣⎢1 ⎦⎥ (32) rango ⎡⎣ g , ad f g , ad f g ⎤⎦ = 3 • M ( x1′ + x0 − b ) − f + 0 2 ′ M ( d + x0 + x1 ) M (36) Las variables z’ se determinan a través del sistema lineal y controlable definido por: A partir de las ecuaciones (35) y (36) se puede comprobar si el sistema cumple las condiciones de linealización exacta estado-entrada. Estas condiciones son: • K − − que es un sistema monovariable en forma afín: x ′(t ) = f ( x′(t )) + g ( x′(t ))v(t ) B f ( x′) = [ 0 1 0] f ( x′) (35) 6 1 Lg L f φ ( x ′ ) 2 {− L φ ( x′) + v} 3 f ; v = − Kz ′ (40) en donde z’ viene dado por la ecuaciones (37) para unos polos de lazo cerrado previamente especificados. Un ejemplo de simulación se da en la figura 2. Rg S = Sección transversal I(t) d N , Rs x K + Pieza móvil V(t) Estator M Bl , Beh B Pieza de latón no ferromagnética F(t) Figura 1. Transductor electromecánico de posicionamiento lineal. Masa pieza móvil M = 1.5 kg, coeficiente de fricción viscosa B = 0.02 N/m.s, constante elástica del muelle K = 1 N/m, coeficiente no lineal del muelle c = 10000 m-2, longitud del muelle sin deformar b = 0.005 m, longitud pieza latón d = 0.02 m, número de espiras N = 100000, sección transversal S = 0.002 m2, resistencia del generador Rg = 10 Ω, resistencia de la bobina Rs = 1200 Ω. Figura 2. Señales de control del sistema no lineal cuando se linealiza exactamente por métodos de geometría diferencial y del sistema linealizado en el punto de equilibrio a través de la matriz jacobiana. Como ejemplo del tipo de resultados que pueden esperarse utilizando los métodos de control no lineal basadas en la linealización exacta estado-entrad, en la figura 2 se muestran los tipos de señales de control que se han obtenido. Obsérvese el mayor esfuerzo de control del método usual de linealización frente al del control no lineal 7 A partir de las ecuaciones (43) y (44) se obtiene el modelo de espacios estados a partir de la definición de las variables de estado: ⎫ ⎡ ⎤ ⎡ ⎤ x2 (t ) ⎪ ⎥ ⎢ 0 ⎥ ⎡ 0 ⎤ ⎡ x (t ) ⎤ ⎢ ⎪ ⎢ ⎥ ⎢ 1 ⎥ ⎢ ⎥ ⎢ 1 ⎥ K K B ⎪ ⎢ 0 ⎥ x3(t ) + as x33(t ) + x4 (t ) ⎥⎥ ⎢ m ⎥ ⎢ ⎥ ⎢ ⎪ x t ( ) ⎢ m1 m1 m1 ⎢ 1 ⎥ ⎢ ⎥ ⎢ 2 ⎥ ⎪ ⎥+⎢ ⎥ u1(t ) + ⎢ 0 ⎥ u1(t )⎪ ⎢ ⎥=⎢ ⎥ ⎢ 0 ⎥ ⎢ ⎥ ⎢ x3 (t ) ⎥ ⎢ x t ( ) ⎪ 4 ⎥ ⎢ ⎥ ⎢ 1 ⎥ ⎢ ⎥ ⎢ ⎪ 1⎥ ⎥ ⎢− m ⎥ ⎢ x (t ) ⎥ ⎢ K K ⎬ 3 (t ) + B x (t ) ⎥ ⎢⎢ − 4 ⎢ e ⎥ ⎢ − − x t a x ( ) ⎥ ⎣ ⎦ ⎣ ⎦ s m ⎪ 3 3 4 m m ⎢ me ⎥ ⎣⎢ 1 ⎥ e e ⎦ ⎪ ⎣ ⎦ 4 LINEALIZACIÓN EXACTA ENTRADA-SALIDA MIMO PARA UN DISPOSITIVO MICRO ELECTROMECANICO (MEMS) DE ALMACENAMIENTO MASIVO En la figura 3 se muestran dos masas interconectadas con un muelle no lineal (muelle duro) y un amortiguamiento viscoso que se utiliza para modelar memorias micro electromecánicas de almacenamiento masivo [16]. Para ejemplos de sistemas MIMO véase [7], [8], [9], [10], [11], [12], [13], [14], [15]. Las fuerzas de control sobre las masas son F1(t) y F2(t) respectivamente, L es la longitud del muelle sin deformar, y la fuerza restauradora del muelle viene dada por Fs = K ⎡⎣ ( r2 − r1 − L ) + as ( r2 − r1 − L ) 3 ⎤⎦ ⎡ ⎡ ⎤⎤ ⎢ h1 ⎢ x(t )⎥ ⎥ ⎡ x (t ) ⎤ ⎣ ⎦⎥ ⎢ 1 ⎥ ⎡ ⎤ ⎡ ⎤ ⎢ =⎢ y ⎢ x(t )⎥ = h ⎢ x(t )⎥ = ⎢ ⎣ ⎦ ⎣ ⎦ ⎡ ⎤⎥ x (t )⎥⎥ ⎢ h2 ⎢ x(t )⎥ ⎥ ⎢⎣ 3 ⎦ ⎦⎦ ⎣ ⎣ (45) Para estudiar la linealización exacta entradasalida se deriva la ecuación de salida y[x(t)] para dar: ⎧ f [ x (t ) ] + ⎫ ∂y dx (t ) ∂h ( x ) ⎪ ⎪ y (t ) = = ⎨ g1 [ x (t ) ] u1 (t ) + ⎬ ∂x dt ∂x ⎪ ⎪ (46) ⎩ g 2 [ x ( t ) ] u 2 (t ) ⎭ (41) siendo K la constante elástica del muelle y as es una constante que define la mayor o menor “dureza” del muelle. Introduciendo las variables: p1 (t ) = r1 (t ) ; p2 (t ) = r2 (t ) − r1 (t ) − L ⎫ = L f h( x ) + Lg h ( x )u1 (t ) + Lg h( x )u2 (t ) 1 ⎡ 0 ⎤ ⎢1 m ⎥ ∂h1 ( x ) 1 ⎥=0 Lg h1 ( x ) = g1 ( x ) = [1 0 0 0 ] ⎢ ∂x ⎢ 0 ⎥ ⎢ ⎥ ⎣ −1 m1 ⎦ ⎪ ⎪ ⎬ p 1 (t ) = r1 (t ) ; p1 (t ) = r1 (t ) ; p2 (t ) = r2 (t ) − r1 (t ) ⎪ ⎪⎭ r2 (t ) = p1 (t ) + p2 (t ) p2 (t ) = r2 (t ) − p1 (t ) − L 1 (47) De forma análoga por cálculo directo se obtiene: (42) y utilizando las ecuaciones de Euler-Lagrange, se obtiene el modelo matemático del sistema B p 2 (t ) − Lg h1 ( x ) = [1 0 0 0] g 2 ( x) = 0 Lg h2 ( x ) = [ 0 0 1 0 ] g1 ( x ) = 0 2 ⎫ ⎡ p2 (t ) + as p23 (t ) ⎦⎤ − ⎪ ⎣ m1 m1 ⎪ F t F t ( ) ( ) ⎪ 2 1 2 − p1θ = ⎪ m1 m1 ⎪ ⎬ B K 3 p2 (t ) + p 2 (t ) + ⎡⎣ p2 (t ) + as p2 (t ) ⎤⎦ − ⎪ ⎪ me me ⎪ F1 (t ) F2 (t ) 2 ⎪ + [ p2 (t ) + L ] θ = − ⎪⎭ m1 me p1 (t ) − 2 De la ecuación (46) se deduce: K 1 (48) Puesto que todas ,las derivadas son cero es necesario derivar otra vez: y1 (t ) = L2f h( x ) + Lg L f h1 ( x )u1 (t ) + Lg h1 ( x )u 2 (t ) 1 Lg L f h1 ( x ) = 1 Lg 2 L f h1 ( x) = 2 (49) ∂L f h1 ( x ) ∂x ∂L f h1 ( x ) g1 ( x) = 1 m1 (49) g 2 ( x) = 0 ∂x Teniendo en cuenta que hay que realizar cálculos compl,etamente análogos para la otra salida y2(t), se obtiene la siguiente ecuación matricial: (43) siendo me = m1m2/(m1 + m2). Para simplificar los cálculos, las fuerzas de control se modifican de la forma: m u (t ) ⎫ F1 (t ) = u1 (t ) + 1 2 m1 − me ⎪ ⎪ (44) ⎬ m1u 2 (t ) ⎪ F2 (t ) = ⎪⎭ m1 − me 2 0 ⎤ ⎡ u1 (t ) ⎤ ⎡ y1 (t ) ⎤ ⎡ L f h1 ( x ) ⎤ ⎡ 1 m1 ⎢ y (t ) ⎥ = ⎢ L2 h ( x ) ⎥ + ⎢ −1 m 1 m ⎥ ⎢u (t ) ⎥ ⎣ 2 ⎦ ⎣ f 2 ⎦ ⎣ ⎦ e⎦ ⎣ 2 1 (50) 8 ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎭ en donde el valor de las derivadas de Lie se deduce de forma completamente similar a los casos anteriores. De las ecuaciones (50) se obtienen las señales de control buscadas: teorái de sistemas lineales se sabe que es siempre posible elegir K de froma que la matriz M definida de la forma M = ⎡⎣ B # AB # A B # A B ⎤⎦ 2 u1 (t ) = m1 y1 (t ) − ⎡⎣ Kx3 (t ) + as Kx3 (t ) + Bx4 (t ) ⎤⎦ ⎫ 3 ⎛ u 2 (t ) = me [ y1 (t ) + y2 (t ) ] + ⎜ 1 − ⎝ ⎞ ⎟⋅ m1 ⎠ ⋅ ⎡⎣ Kx3 (t ) + as Kx3 (t ) + Bx4 (t ) ⎤⎦ 3 (51) Por otr lado, introduciendo las variables auxiliares: z1 (t ) = y1 (t ) ; z 2 (t ) = y 1 (t ) ⎫ (52) ⎬ z3 (t ) = y 2 (t ) ; z 4 (t ) = y 2 (t ) ⎭ y1 (t ) = − K11 [ x1 (t ) − x1e ] − K12 x2 (t ) − ⎫ ⎪ ⎪ ⎬ (66) y 2 (t ) = − K 21 [ x1 (t ) − x1e ] − K 22 x2 (t ) − ⎪ ⎪⎭ K 23 [ x3 (t ) − x3 e ] − K 24 x4 (t ) K13 [ x3 (t ) − x3 e ] − K14 x4 (t ) se obtiene el siguiente sistema lineal que se puede comprobar que es controlable: ⎡ z1 (t ) ⎤ ⎡ 0 ⎢ z (t ) ⎥ ⎢ 0 ⎢ 2 ⎥=⎢ ⎢ z3 (t ) ⎥ ⎢ 0 ⎢ ⎥ ⎢ ⎣ z 4 (t ) ⎦ ⎣ 0 0 ⎤ ⎡ z1 (t ) ⎤ ⎡0 0 0 0 ⎥ ⎢ z 2 (t ) ⎥ ⎢ 1 ⎥+⎢ ⎥⎢ 0 0 1 ⎥ ⎢ z 3 (t ) ⎥ ⎢ 0 ⎥ ⎢ ⎥⎢ 0 0 0 ⎦ ⎣ z 4 (t ) ⎦ ⎣ 0 1 0 0⎤ 0 ⎥ ⎡ y1 (t ) ⎤ ⎥ 0 ⎥ ⎢⎣ y 2 (t ) ⎥⎦ ⎥ 1⎦ (53) cuyas ecuaciones de salida se toman como: ⎡ z1 (t ) ⎤ ⎢ ⎥ ⎡ y1 (t ) ⎤ ⎡1 0 0 0 ⎤ ⎢ z 2 (t ) ⎥ (54) ⎢ y ( t ) ⎥ = ⎢ 0 0 1 0 ⎥ ⎢ z (t ) ⎥ ⎦ 3 ⎣ 2 ⎦ ⎣ ⎢ ⎥ ⎣ z 4 (t ) ⎦ Puesto que las derivadas y1 (t ) , y2 (t ) son K12 K13 K 22 K 23 −2.7973 5 ⎡ K = 10 ⎢ ⎣ 9.4079 0.0071 −7.5813 0.0094 8.3380 −0.0063⎤ 0.0189 ⎥⎦ En la figura 4 se muestran los resultados obtenidos para las sweñales de control y aceleraciones que han adquirido las masas. Se observa que el comportamiento es bastante aceptable, teniendo en cuenta los valores tan pequeños de las masas. K14 ⎤ ⎢ z 2 (t ) ⎥ ⎢ Por consiguiente, de las ecuaciones (51) y (66) se ha determinado la ley de control. Obérvese que si rank(M) = 4 y la suma de las derivadas que aparecen en las señales de salida coinciden con el número de variables de estado, el método presentado da una forma sistemática de implementar el control a través de un programa de computador, que no es difícil de escribir con las funcionalidades numérico simbólicas de Matlab. Para investigar el comportamiento dinámico de las masas con la ley de control deducida anteriormente, se han asignado los siguientes autovalores a la matriz del sistema (56): [ −100 ± 300i −500 −600 ] , siendo la correspondiente matriz K: independientes es posible aplicar a (53)-(54) la técnica de colocación de polos de la forma: ⎡ z1 (t ) ⎤ ⎡ K11 ⎡ y1 (t ) ⎤ ⎢ y (t ) ⎥ = − ⎢ K ⎣ 2 ⎦ ⎣ 21 (57) tenga rango 4. Una vez que se han escogido los autovalores de dicha matriz, las constantes Kij se pueden calcular directamente a partir de la formula de Ackermann [13]. A partir de las consideraciones anteriores, las derivadas de las señales de salida se pueden escribir de la forma: ⎪ ⎪ ⎬ ⎪ ⎪ ⎭ me 3 ⎥ K 24 ⎦⎥ ⎢ z3 (t ) ⎥ ⎢ ⎥ ⎣ z 4 (t ) ⎦ (55) CONCLUSIONES Sustituyendo (55) en (53) se obtiene el sistema: ⎡ z1 (t ) ⎤ ⎡ 0 ⎢ z (t ) ⎥ ⎢ − K ⎢ 2 ⎥ = ⎢ 11 ⎢ z3 (t ) ⎥ ⎢ 0 ⎢ ⎥ ⎢ ⎣ z 4 (t ) ⎦ ⎣ − K 21 1 0 − K12 − K13 0 0 − K 22 − K 23 El control no lineal basado en métodos geométricos es superior en muchos casos al control convencional PID, dando lugar a menores esfuerzos de control y a transitorios menos oscilantes. Tiene la ventaja añadida de familiarizarse con la dinámica interna del sistema. El inconveniente radica en superar la barrera de las nuevas nociones asociadas a la geometría diferencial. En este trabajo se ha pretendido poner de manifiesto todas las características del control no lineal. ⎤ ⎡ z1 (t ) ⎤ − K14 ⎥ ⎢ z 2 (t ) ⎥ ⎥⎢ ⎥ 1 ⎥ ⎢ z 3 (t ) ⎥ ⎥⎢ ⎥ − K 24 ⎦ ⎣ z 4 (t ) ⎦ 0 (56) Los coeficientes Kij se pueden elegir para que la matriz de (56) sea de Hurwitz. A partir de la 9 Y θ(t) = Aθ.cos(ωθt) O x1(t) x2(t) – x1(t) X x2(t) = r2 .cos(ωθt) Figura 3. Modelo de masas acopladas para simular dispositivos electromecánicos de almacenamiento masivo.: m1 = 50.10-4 kg, m2 = 1.10-4 kg, K = 2156 N/m, as = 4.5.107 m-1, B = 0.5 kg/s, L = 10.10-6 m. Figura 4. Valores característicos de las señales de control y aceleraciones de las masas obtenidas a traves de una ley de control no lineal por linealización exacta entrada-salida. 10 Creemos que la exposición de los métodos anteriores, junto con el desarrollo gradual del software para aplicar estas técnicas, puede ser un aliciente para el profesor, a la hora de diseñar un curso de control no lineal y para el alumno que se sienta atraído por el control y/o la programación. A pesar de que solo se han esbozado brevemente las contenidos de un curso de control no lineal, es claro que las ventajas desde el punto de vista de la enseñanza parecen obvias. Como resumen, se pueden citar las siguientes conclusiones de carácter general, que podrían servir de guía a la hora de confeccionar un programa docente a nivel de postgrado, master o curso de doctorado • • • • • Reactor. Computers & Chemical Eng. Vol.. 26, Nº 6, 889-90. [8] Pérez M., Albertos P. (2004). Selfoscillating and chaotic behaviour of a PIcontrolled CSTR with control valve saturation. Journal of Process Control, Vol 14, 51-59. [9] Pérez Polo M.F., Berná Galiano J.A. Gil Chica J., Montava M.A. (2005). Fenómenos no Lineales en el Control de Reactores Continuos Tipo Tanque Agitados. XVI Jornadas de Automática. Alicante. [10] Pérez Polo M.F., Albertos P. Nonisothermal Stirred Tank Reactor with Irreversible Exothermic Reaction A → B. 2. Nonlinear Phenomena, pp 243-279 Topics in Dynamics of Chemical and Biological Processes. Lecture Notes in Control and Information Sciences LNCIS 361 Springer Verlag 2007. [11] Pérez Polo M.F., Berná Galiano J.A. Gil Chica J., Montava M.A. (2006). Control no lineal MIMO de un giroscopio en suspensión Cardan. XXVII Jornadas de Automática. Almería. [12] Pérez Polo., M:F.. Pérez Molina (2004). Regular self-oscillating and chaotic behaviour of a PID controlled gimbal suspensiom gyro. Chaos Solitons & Fractals, 21, 1057-1074. [13] Pérez Polo M.F., Pérez Molina M. (2007). Chaotic and steady state behaviour of a nonlinear controlled gyro subjected to harmonic disturbances. Chaos Solitons & Fractals 33, 623-641. [14] Pérez Polo M.F., Pérez Molina M. (2007). A generalized mathematical model to analyze the nonlinear behavior of a controlled gyroscope in gimbals. Nonlinear Dynamics 48, 129-152 . [15] Pérez Polo M.F. Albertos P.,Berná Galiano J.A. (2008). Tuning of a PID controlled gyro by using bifurcation theory. Systems & Control Letters 57, 10-17. [16] Pérez Polo M.F., Pérez Molina M., Gil Chica J. (2008). Chaotic dynamic and control for Micro-Electro-MechanicalSystems of massive storage with harmonic base excitation. Chaos Solitons & Fractals (En prensa). [17] Prodromos, D., Costas, K.,. (1991) Inversion and Zero Dynamics in Nonlinear Multivariable Control, AIChE Journa,l, pp.527-538. [18] Vidyasagar, M., (1993). Nonlinear Systems Analysis. Prentice Hall. El curso debería diseñarse de forma que la teoría expuesta se fuera implementando en computador de forma progresiva. Si se observa detenidamente, los métodos considerados son sencillos de aplicar, una vez que se ha superado la barrera de la nomenclatura. Repasar los conceptos básicos de sistemas lineales. El concepto de grado relativo puede ser muy útil como nexo de unión entre sistemas lineales y no lineales. Diferenciar entre linealización exacta estado-entrada para sistemas SISO y linealización exacta entrada-salida para sistemas MIMO y porqué se utilizan. Sería deseable que el alumno viera ejemplos de modelado y control de procesos muy distintos y como se manejan de la misma forma en el programa numérico-simbólico diseñado. REFERENCIAS [1] Cleve, M., Costa, P.J., (1997) Symbolic Math Toolbox. The MathWorks Inc. [2] Costas, K., Masoud, S. (1990) “Synthesis of Multivariable Nonlinear Controllers by Input/Ouput Linearization “, AIChE Journa,l, pp.249-264. [3] Daoutidis, P., Kumar, A., (1994) “Structural Analysis and Output Feedback Control of Nonlinear Multivariable Processes”. AIChE J. Vol. 40, No 4 [4] Isidori, A., (1994) Nonlinerar Control Systems. Springer Verlag, Berlín. [5] Marino, R., Tomei, P., (1995) Nonlinear Control Design. Prentice Hall. [6] Nijmeijer, H., Van der Schaft, A.J., (1990). Nonlinear Dynamical Control Systems. Springer Verlag, Berlin. [7] Pérez M., Font R., Montava (2002). Regular Self-oscillating and Chaotic Dynamics of a Continuous Stirred Tank 11