14 1.4. Capítulo 1. Linealización Simulación de sistemas no lineales comparación con sus linealizaciones y Figura 1-1: Sistema de dos tanques interconectados. Consideremos el sistema de nivel de líquido de dos tanques interconectados de la Figura 1-1. Allí, vemos que la entrada del sistema es qi (t) y la salida es qo (t). Además, vemos que las alturas del líquido en cada tanque están representadas por h1 (t) y h2 (t). Para modelar este sistema, debemos partir del hecho que la variación del volumen que ocupa el líquido en cada tanque es igual al líquido que entra al tanque menos el líquido que sale, del mismo. Por lo que para el tanque 1, tenemos d S h1 (t) = qi (t) − q12 , (1-13) dt donde S representa el área transversal del tanque y q12 representa el flujo de líquido que pasa del tanque 1 al tanque 2. Por su parte, para el tanque 2, tenemos S d h2 (t) = q12 − qo (t). dt Aplicando la regla de Torricelli para los flujos de líquido, tendremos p q12 = µ12 Sn sgn[h1 (t) − h2 (t)] 2 g [h1 (t) − h2 (t)], (1-14) (1-15) donde la función sgn(x) = x/|x| representa el signo del argumento. Las constantes µ12 y Sn representan el porcentaje de paso del líquido por la tubería que conecta los dos tanques y el área transversal de dicha tubería, respectivamente. Note que la función signo está presente para indicar el sentido del flujo del líquido en la tubería entre los tanques. Sin embargo, podemos omitir dicha función si decimos 1.4 Simulación de sistemas no lineales y comparación con sus linealizaciones 15 que el modelo es válido solo para cuando la altura del líquido en el tanque 1 sea mayor que en el tanque 2 y, así, garantizarmeos el flujo en la tubería en dirección del tanque 1 al tanque 2 siempre. Para el caso del flujo de salida, tendremos p qo (t) = µ20 Sn 2 g h2 (t), (1-16) donde µ20 representa el porcentaje de paso del líquido por la tubería que conecta el tanque 2 con el exterior. Para obtener la representación de estado no lineal del sistema de dos tanques, vamos a definir las variables de estado x1 (t) = h1 (t) y x2 (t) = h2 (t), la entrada u(t) = qi (t) y la salida y(t) = qo (t). Remplazando las expresiones para los flujos en (1-15) y (1-16) en las expresiones de las variación del volúmen de líqudo en los tanques en (1-13) y (1-14), y despejando para ẋ1 (t) y ẋ2 (t), tenemos 1 µ12 Sn p u(t) − 2 g [x1 (t) − x2 (t)], ẋ1 (t) S = µ S Sp (1-17) , p µ S 12 n 20 n ẋ2 (t) 2 g [x1 (t) − x2 (t)] − 2 g x2 (t), S p S y(t) = µ20 Sn 2 g x2 (t). (1-18) Para simular el sistema de los dos tanques, bien vale la pena hallar los puntos de equilibrio del mismo para tener una idea de qué resultados esperar de la simulación. Tomando la ecuación de estado en (1-17), igualando a cero las derivadas y cambiando las variables por su valor de equilibrio, tenemos µ12 Sn p 1 2 g [x1e − x2e ], (1-19) 0 = ue − S S µ12 Sn p µ20 Sn p 0= 2 g [x1e − x2e ] − 2 g x 2e , , (1-20) S S µ12 Sn p note que el término 2 g [x1e − x2e ] aparece en ambas expresiones, por lo S que se puede despejar de ambas para obtener una expresión que relacione x2e con ue , así 1 µ20 Sn p ue = 2 g x 2e , (1-21) S S elevando al cuadrado ambos lados de la ecuación y despejando xee , llegamos a x 2e = u2e . 2 g µ220 Sn2 (1-22) Para encontrar x1e , podemos despejarla de (1-19) y reemplazar la expresión para 16 Capítulo 1. Linealización x2e que acabamos de encontrar, así u2e u2e u2e u2e 1 1 x 1e = + x 2e = + = + . (1-23) 2 g µ212 Sn2 2 g µ212 Sn2 2 g µ220 Sn2 2 g Sn2 µ212 µ220 En este punto, es necesario conocer los valores de las constantes del sistema, que se muestran en la Tabla 1-1. Así las cosas, si definimos ue = 5 × 10−5 m3 /s, podemos encontrar que x1e = 0,3455m y x2e = 0,1416m, que verificaremos por simulación. Tabla 1-1: Parametros del sistema de dos tanques. Parámetro Símbolo Valor Área de la sección transversal de los tanques S 0.0154 m2 Área de la sección transversal. de la tubería Sn 5 × 10−5 m2 Coeficiente de flujo µ11 0.5 Coeficiente de flujo µ20 0.6 Máxima velocidad del flujo qi max 1,5 × 10−4 m3 /s Máxima altura en los tanques hj max j ∈ [1, 2] 0.62 m El modelo de nuestro sistema en Simulink, se construye implementando las expresiones en (1-17) - (1-18), como se puede ver en la Figura 1-2. Vamos a Figura 1-2: Modelo no lineal para el sistema de 2 tanques. configurar una señal de entrada tipo escalón, que cambie su valor de 0 a ue en 500 segundos y vamos a definir el tiempo de simulación en 3000 segundos, 1.4 Simulación de sistemas no lineales y comparación con sus linealizaciones 17 obteniendo el comportamiento para x1 (t) y x2 (t) como se ve en la Figura 1-3. Allí, podemos evidenciar que la respuesta de cada tanque después del tiempo de simulación converge a los valores de equilibrio x1e = 0,3455m y x2e = 0,1416m, si extendiéramos el tiempo de simulación aún más, veríamos que converge completamente al valor calculado. Note que la respuesta de este sistema no lineal se parece mucho a la respuesta de un sistema de primer orden o de segundo orden sobre-amortiguado y, en general, el tipo de respuesta en el tiempo no es lo que nos va a diferenciar un sistema lineal de uno no lineal. Lo que realmente nos indica que un sistema es lineal es que en toda la región de operación mantenga la misma ganancia y los mismos polos. Ya ahondaremos en está aseveración. Para linealizar el modelo del sistema de los dos tanques, procedemos como se explicó en clase. Note que la forma general de una representación de estado lineal para un sistema de una entrada y una salida se puede escribir como ẋ(t) = A x(t) + B u(t), y(t) = C x(t) + D u(t), donde la matriz A representa la matriz dinámica del sistema, los vectores B y C representan los vectores de entrada y salida, respectivamente, y el escalar D representa la transferencia directa entre la entrada y la salida del sistema. Recordemos que, para la linealización de un sistema no lineal, la representación Figura 1-3: Comportamiento de x1 (t) y x2 (t) en el modelo no lineal para el sistema de 2 tanques. 18 Capítulo 1. Linealización de estados tiene variables incrementales, por lo que puede ser escrita como δ ẋ(t) = A δx(t) + B δu(t), δy(t) = C δx(t) + D δu(t), y podemos hallar ∂ ∂x1 f1 (·) ∂ f2 (·) ∂x A= 1 .. . ∂ fn (·) ∂x1 C= los elementos A, B, C y D como se muestra a continuación. ∂ ∂ ∂ f1 (·) · · · f1 (·) ∂u f1 (·) ∂x2 ∂xn ∂ ∂ ∂ f (·) f2 (·) · · · f2 (·) 2 ∂x2 ∂xn , B = ∂u . .. .. . . . . ∂ ∂ ∂ fn (·) fn (·) · · · fn (·) ∂u (xe ,ue ) ∂x2 ∂xn (xe ,ue ) ∂ ∂ ∂ g(·) g(·) · · · g(·) ∂x1 ∂x2 ∂xn , (xe ,ue ) D= ∂ g(·) ∂u . (xe ,ue ) Se sugiere dejar de forma genérica los valores xie y ue en A, B, C y D, con el fin de tener expresiones versátiles que permitan hacer modificaciones fácilmente. Para simular el modelo lineal en Simulink y poderlo comparar con el comportamiento del modelo no lineal, se definen en el workspace de Matlab las expresiones para A, B, C y D. Utilizamos el bloque State-space para definir nuestra representación de estados, donde debemos asignarles los valores correspondientes a A, B, C y D tal y como se definieron en el workspace. Note que queremos comparar los comportamientos de las variables de estado del sistema lineal con las del no lineal, por lo que no vamos a poder usar las expresiones de C y D que calculamos, porque esas están calculadas sobre la función no lineal que nos representa la salida del sistema, que en este caso está asociada con el flujo de salida y no nos muestra directamente ninguna variable de estado. Vamos a definir 1 0 0 C= yD= , 0 1 0 lo que nos representa que tendremos dos salidas, una igual a x1 (t) y la otra igual a x2 (t). Inicialmente, vamos a conectar la misma entrada del sistema no lineal al lineal (pese a que sabemos que las variables del sistema lineal son incrementales y no absolutas, como las del sistema no lineal). Debemos tener un diagrama como el que se muestra en la Figura 1-4. Los bloques que se encuentran en la misma 1.4 Simulación de sistemas no lineales y comparación con sus linealizaciones 19 Figura 1-4: Modelos lineal y no lineal para el sistema de 2 tanques, ambos con entrada absoluta - incorrecto. sección de los Scopes se denominan To Workspace y lo que hacen es enviar al workspace los datos de una o varias señales bajo el nombre de la variable que se le da al bloque, para poderlas graficar directamente sobre una figura de Matlab y manipularlas directamente de una forma más sencilla. El punto de equilibrio al rededor del cual vamos a simular el sistema lineal, va a ser el hallado previamente ue = 5 × 10−5 m3 /s, x1e = 0,3455m y x2e = 0,1416m. La respuesta del sistema de la Figura 1-4 se ve en la Figura 1-5. Note que pasa algo bastante extraño con la simulación, porque cuando comentamos (o borramos) el bloque del sistema lineal, el sistema no lineal tiene el mismo comportamiento como el mostrado en la Figura 1-3. Pero cuando se simulan en simultánea, el sistema no lineal cambia de comportamiento ostensiblemente. La razón del problema de simulación no es fácil de explicar, porque ocurre solo cuando los dos sistemas se simulan en simulatánea y estamos seguros de no estar sobre-escribiendo con el sistema lineal variables del sistema no lineal. Además, el problema ocurre únicamente cuando la entrada del sistema inicia en 0, y el cambio en el escalón se da en un tiempo diferente de cero. Podemos, para poder comparar las respuestas, simular de forma independiente cada sistema y graficar los comportamientos de las variables en la misma gráfica, para la misma entrada considerada inicialmente; o, podemos simular para un escalón que no empiece en 20 Capítulo 1. Linealización cero. Figura 1-5: Modelos lineal y no lineal para el sistema de 2 tanques, ambos con entrada absoluta (incorrecto) y problema en la simulación. La Figura 1-6 nos muestra la comparación del comportamiento entre el sistema lineal y el no lineal, simulados de forma independiente, para una entrada escalón que es inicialmente cero y luego de 500 segundos cambia a qie1 = 5×10−5 . Como se Figura 1-6: Respuesta de los modelos lineal y no lineal para el sistema de 2 tanques, ambos con entrada absoluta (incorrecto). puede ver, el comportamiento del sistema no lineal sigue siendo el mismo mostrado en la Figura 1-3, mientras que el modelo lineal se comporta para x1 (t) como un sistema de primer orden y para x2 (t) como un sistema de segundo orden sobreamortiguado. Pero claramente no tiene un comportamiento parecido al sistema no lineal, por lo menos en cuanto a la ganancia se refiere. Note que pareciera que las variables de estado lineales se estabilizaran casi en el doble de lo que se estabiliza el sistema no lineal. Esa última observación nos llevaría a pensar que el problema 1.4 Simulación de sistemas no lineales y comparación con sus linealizaciones 21 Figura 1-7: Respuesta de los modelos lineal y no lineal para el sistema de 2 tanques, ambos con entrada absoluta de 4,5 × 10−5 a 5 × 10−5 (incorrecto). es que cometimos un error y la ganancia por algún motivo nos quedó multiplicada por 2, aunque ese no es realmente el problema. Consideremos ahora la respuesta del sistema para una entrada escalón que inicie en 4,5 × 10−5 y a los 2000 segundos aumente a 5 × 10−5 , para un tiempo de simulación sea de 5000 segundos. Los resultados para esta entrada se muestran en la Figura 1-7. Note que para este caso, aunque entre 0 y 2000 segundos es evidente la diferencia de ganancia, luego de los 2000 segundos, los comportamientos de las señales del sistema lineal y no lineal parecieran tener una variación muy similar entre sí. Si le quitamos a todas las señales el valor que toma cada una a los 2000 segundos para que esté sea el nuevo punto de 0 m, podremos ver esto mucho más claro (veáse Figura 1-8). Efectivamente, aunque no son exactamente iguales, Figura 1-8: Respuesta de los modelos lineal y no lineal para el sistema de 2 tanques, ambos con entrada absoluta de 4,5 × 10−5 a 5 × 10−5 , restando a cada variable el valor de la misma en 2000 segundos (incorrecto). 22 Capítulo 1. Linealización vemos que la variación en las variables de los dos sistemas después de los 2000 segundos es muy similar entre sí. Justamente a esto es a lo que nos referimos con que el comportamiento del modelo lineal es comparable al del modelo no lineal en la vecindad del punto de operación (punto de equilibrio) para variables incrementales (no absolutas). Una última simulación nos aclarará esto mejor. Para la siguiente simulación, vamos a definir la señal de entrada como un escalón que inicia en el punto de equilibrio 5 × 10−5 y luego de 2000 segundos pasa a 5,173 × 10−5 , para un tiempo de simulación total de 5000 segundos. Vamos a configurar el estado inicial de las variables de estado del modelo no lineal, como el estado inicial de los integradores, el integrador de ẋ1 (t) lo configuramos con x1e = 0,3455m y el integrador de ẋ2 (t) con x2e = 0,1416m. Para que las señales del sistema lineal sean incrementales, tendremos que restarle ue = 5 × 10−5 , para que la entrada sea δu(t) = u(t) − ue . Las salidas del sistema no lineal también son incrementales, en nuestro caso δx1 (t) = x1 (t) − x1e y δx2 (t) = x2 (t) − x2e , y como queremos compararlas con variables absolutas, debemos sumarle a las salidas el valor del punto de equilibrio de cada una, como se ve en la Figura 1-9. La respuesta de los modelos lineal y no lineal para esta última configuración, la correcta, se muestra en la Figura 1-10. Allí notamos varias cosas importantes: i) si las variables del sistema no lineal se inicializan en los valores del punto de equilibrio y la señal de entrada se fija al valor del mismo punto de equilibrio, las variables no presentan variación (tienden a mantenerse en el punto de equilibrio), ii) el comportamiento del sistema linealizado a una ligera variación en la entrada respecto al punto de equilibrio de partida es muy parecido al del sistema no lineal, si también lo inicializamos en el mismo punto de equilibrio. Vale la pena mencionar que, dependiendo del sistema, la variación de la entrada a la cual la similitud entre el sistema lineal y el no lineal deja de ser suficiente puede ser mayor o menor; para el sistema de dos tanques es muy pequeña, porque es un sistema que presenta variaciones en la altura de los tanques para variaciones muy pequeñas de la entrada, en este caso, apenas una variación de 1.73×10−6 m3 /s en el flujo ya nos muestra variaciones en el comportamiento entre un modelo y otro; pero habrá sistemas que soporten una mayor variación en la vecindad de la entrada y mantendrán un comportamiento similar entre el modelo lineal y el no lineal. Puede probar haciendo variaciones más pequeñas del flujo de entrada y notar que la diferencia entre las variables del sistema lineal y del no lineal son mucho menos visibles, o hacer variaciones mayores para notar que la diferencia también se hace 1.4 Simulación de sistemas no lineales y comparación con sus linealizaciones 23 Figura 1-9: Modelos lineal y no lineal para el sistema de 2 tanques, lineal con entrada incremental - correcto. mayor conforme nos alejamos del punto de equilibrio respecto al cual se linealizó el modelo no lineal. Figura 1-10: Respuesta de los modelos lineal y no lineal para el sistema de 2 tanques, lineal con entrada incremental - correcto.