Tema IV: Simulación dinámica Modelización y simulación de procesos quı́micos Curso 2010–2011 Índice 1 Simulación dinámica. 2 Simuladores orientados a ecuaciones. 3 Métodos de resolución. Paso único. Multipaso. ODEs de orden n. DAEs. 4 Simulación dinámica con MATLAB. Tema IV: Simulación dinámica 2/33 Simulación dinámica “Estudia el comportamiento transitorio de un sistema” Simulación estática: Simulación dinámica: dVar =0 dt dVar 6= 0 dt Tema IV: Simulación dinámica 3/33 Simulación dinámica “Estudia el comportamiento transitorio de un sistema” Simula su evolución temporal con distintos fines: Operación: Diseño: Respuesta de procesos continuos ante perturbaciones. Sistema de control y controlabilidad. Ajuste de controladores. Maniobras y desviaciones anormales en el proceso, para estudios de seguridad y de emisiones. Procedimientos de puesta en marcha y parada. Procesos discontinuos. Análisis de operabilidad y riesgo. Validación de procedimientos de emergencia. Entrenamiento de operadores. Tema IV: Simulación dinámica 4/33 Índice 1 Simulación dinámica. 2 Simuladores orientados a ecuaciones. 3 Métodos de resolución. Paso único. Multipaso. ODEs de orden n. DAEs. 4 Simulación dinámica con MATLAB. Tema IV: Simulación dinámica 5/33 Simuladores orientados a ecuaciones Es la estrategia empleada para la simulación dinámica. Pasos para establecer la simulación: 1 Las ecuaciones y variables de todos los modelos de unidades se definen individualmente. 2 Las ecuaciones y variables conforman un sistema (grande) de ecuaciones no lineales. 3 Se añaden especificaciones hasta que el sistema tiene CERO grados de libertad. 4 El sistema de ecuaciones se resuelve de forma directa y simultánea. Tema IV: Simulación dinámica 6/33 Simuladores orientados a ecuaciones Orientados a ecuaciones VS. Secuencial modular Ventajas: Es más eficiente que la estrategia secuencial modular. No distingue entre simulación y diseño de especificación. Es utilizable en simulación dinámica, estacionaria y optimización. Inconvenientes (en la simulación estacionaria): Los algoritmos de resolución de NAEs no son tan robustos y fiables como los del caso secuencial modular. Necesita más recursos de computación. Es más fácil el diagnóstico de ciertos errores. Como sistemas de ecuaciones mal especificados. Debido al primer inconveniente esta estrategia no es actualmente competitiva frente a la resolución secuencial modular para simulación estacionaria. Tema IV: Simulación dinámica 7/33 Simuladores orientados a ecuaciones Algoritmo de simulación de sistemas continuos. Tema IV: Simulación dinámica 8/33 Simuladores orientados a ecuaciones Algoritmo de simulación de sistemas continuos. 1 Seleccionar variables: 3 Inicializar la integración: x: Variables de estado. Elección del paso: h u: Variables independientes (generalmente de entrada). Valores iniciales de x0 , u0 , v0 Valores iniciales de f v : Variables dependientes (resultado de ec. algebráicas). 2 Ordenar ecuaciones: v1 = g1 (x, u, t) v2 = g2 (x, u, v1 , t) .. . 4 Bucle de simulación: Calcular fr = f (xr , ur , vr , t) Incrementar el tiempo t = t + h Paso de integración xr +1 función de fr ,fr −1 ,. . . y actualización de ur +1 Obtener ordenadamente vi,r +1 Cada cierto tiempo imprimir o recolectar resultados Verificar condiciones de fin de simulación vi = gi (x, u, v1 , v2 , . . . , vi , t) x 0 = f (x, u, v , t) Tema IV: Simulación dinámica 9/33 Simuladores orientados a ecuaciones Algoritmo de simulación de sistemas continuos. INICIO Inicialización: f h x0 u0 v0 Bucle de simulación fr = f(xr , ur , vr , t ) t=t+h NO Memoria Cálculo de: xr +1 vi, r +1 SÍ ¿Fin? FIN h Tema IV: Simulación dinámica 10/33 Índice 1 Simulación dinámica. 2 Simuladores orientados a ecuaciones. 3 Métodos de resolución. Paso único. Multipaso. ODEs de orden n. DAEs. 4 Simulación dinámica con MATLAB. Tema IV: Simulación dinámica 11/33 Métodos de resolución Ecuaciones diferenciales ordinarias 0 x (t) = f (x(t), t) Z =⇒ t x(t) = x0 + f (x(τ ), τ ) dτ t0 Métodos de paso único Son métodos que emplean únicamente el valor calculado en el punto (paso) anterior. Se basan en aproximar la función f (x, t) mediante un desarrollo en serie de Taylor. f (x + h) = f (x) + h f 0 (x) + h2 00 h3 f (x) + f 000 (x) + . . . 3! |2! {z } O(h2 ) error de truncamiento Se comete un error por truncar el desarrollo en serie de Taylor al que se debe sumar el error de redondeo del ordenador. Tema IV: Simulación dinámica 12/33 Métodos de resolución Métodos de paso único Euler explı́cito. Sólo depende de valores anteriores de la función. Más rápido. No siempre es estable, puede oscilar o diverger para pasos pequeños. dx(t) = f (x(t), t) dt ⇒ x(t + h) = x(t) + h f (x(t), t) dx(t) x(t + h) = x(t) + h dt Euler implı́cito Necesita el valor de la función en el instante a calcular. Son más exactos. x(t + h) = x(t) + h f (x(t + h), t) Tema IV: Simulación dinámica 13/33 Métodos de resolución Métodos de paso único. Ejercicio 1: Enunciado Se dispone de un depósito que se vacı́a por gravedad y se quiere modelar y simular su comportamiento teniendo en cuenta los siguientes datos: Altura inicial de lı́quido en el depósito: 1 m 3 Caudal de entrada: 3 m /h 2 Área del depósito: 10 m 2 Área de salida de la tuberı́a: 0,001 m Fin Simular el comportamiento del tanque empleando el algoritmo de Euler Explı́cito. V Fout Tema IV: Simulación dinámica 14/33 Métodos de resolución Métodos de paso único. Ejercicio 1: Modelo matemático Balance de materia: dV = Fin − Fout dt Relación del volumen: V =A·h =⇒ dV dh =A dt dt dh 1 = (Fin − Fout ) dt A Caudal de salida: Fout = As p 2gh Tema IV: Simulación dinámica 15/33 Métodos de resolución Métodos de paso único. Ejercicio 1: Modelo MATLAB tanque.m Modelo matemático del sistema. eulerm.m Método de Euler explı́cito. main tanque.m Cuerpo principal del programa. Tema IV: Simulación dinámica 16/33 Métodos de resolución Métodos de paso único Runge Kutta Constituyen un conjunto de métodos diferentes, según sea el desarrollo de Taylor utilizado. Fue inicialmente desarrollado alrededor del año 1900 por los matemáticos C. Runge y M. W. Kutta. Por ejemplo, el algoritmo de orden 4, indica que el número de términos utilizados es 4: xi+1 = xi + 16 k1 + 31 k2 + 13 k3 + 16 k4 en donde: k1 = h f (ti , xi ) k2 = h f (ti + h/2, xi + k1 /2) k3 = h f (ti + h/2, xi + k2 /2) k4 = h f (ti + h/2, xi + k 3) Tema IV: Simulación dinámica 17/33 Métodos de resolución Métodos de paso único. Ejercicio 2: Enunciado Se dispone de dos depósitos conectados por el fondo. La salida de los dos tanques es por gravedad. Cada depósito tiene un caudal de entrada. Se quiere modelar y simular el comportamiento de este sistema teniendo en cuenta los siguientes datos: Altura inicial de lı́quido en el primer depósito: 0,8 m Altura inicial de lı́quido en el segundo depósito: 0,2 m 3 Caudal de entrada al primer depósito: 2,2 m /h 3 Caudal de entrada al segundo depósito: 1,6 m /h Los dos depósitos son idénticos, teniendo un área de 10 m2 y teniendo la tuberı́a que les conecta como la de salida del segundo depósito un área de salida de 0,001 m2 . Simular el comportamiento empleando el algoritmo de Runge Kutta de orden 4. Fin,1 Fin,2 V1 Tema IV: Simulación dinámica Fb V2 Fout 18/33 Métodos de resolución Métodos de paso único. Ejercicio 2: Modelo matemático Balances de materia: dh1 1 = (Fin,1 − Fb ) dt A dh2 1 Segundo depósito: = (Fin,2 + Fb − Fout ) dt A Primer depósito: Caudales: p 2gh2 p ( +As 2g(h1 − h2 ) si Intermedio: Fb = p −As 2g(h2 − h1 ) si Salida: Fout = As Tema IV: Simulación dinámica h1 ≥ h2 h1 < h2 19/33 Métodos de resolución Métodos de paso único. Ejercicio 2: Modelo matemático depositos.m Modelo matemático del sistema. rungekutta4.m Método de Runge-Kutta de orden 4. main depositos.m Cuerpo principal del programa. Tema IV: Simulación dinámica 20/33 Métodos de resolución Métodos multipaso k P i=0 αi yn−i = h k P βi fn−i i=0 Adams-Bashford. Método explı́cito de 2 pasos. xi+1 = xi + 21 h[3f (ti , xi ) − f (ti−1 , xi−1 )] Adams-Moulton. Método implı́cito de 3 pasos. xi+1 = xi + 1 24 h[9f (ti+1 , xi+1 ) + 19f (ti , xi )− − 5f (ti−1 , xi−1 ) − f (ti−2 , xi−2 )] Tema IV: Simulación dinámica 21/33 Métodos de resolución Métodos multipaso Método Predictor-Corrector ∗ Método explı́cito para computar xi+1 ∗ xi+1 = xi + 1 12 h[23f (ti , xi ) − 16f (ti−1 , xi−1 ) + 5f (ti−2 , xi−2 )] Método implı́cito para computar el valor final xi+1 xi+1 = xi + ∗ 1 12 h[f (ti+1 , xi+1 ) + 8f (ti , xi ) − f (ti−1 , xi−1 )] Nota: Evita tener que resolver una ecuación algebraica en el método implı́cito. Tema IV: Simulación dinámica 22/33 Métodos de resolución ODEs de orden n x (n (t) = f (x(t), x 0 (t), x 00 (t), . . . , x (n−1 (t), t) Un sistema de ODEs de orden n se puede transformar a un sistema de ODEs de primer orden. x1 (t) = x(t) x2 (t) = x 0 (t) x3 (t) = .. . x 00 (t) = (n−1 xn (t) x (t) =⇒ x10 (t) = x2 (t) x20 (t) = x3 (t) .. . 0 xn−1 (t) 0 xn (t) = xn (t) = f (x1 (t), x2 (t), . . . , xn (t), t) Para cualquier sistema de ecuaciones diferenciales (de primer orden) resultan válidos todos los métodos de integración anteriores. Tema IV: Simulación dinámica 23/33 Métodos de resolución Ecuaciones diferenciales algebraicas (DAEs) DAEs: Conjunto de ecuaciones diferenciales y algebraicas: ( x 0 = f (x, u, y, t) g(x, u, y , t) = 0 Método de resolución Forma secuencial: 1 Dado x(tn ) se resuelve g(x(tn ), u(tn )) = 0 y se obtiene y (tn ). 2 Empleando un método explı́cito de resolución de ODE a x 0 = f (x, u, t) se obtiene x(tn+1 ). Forma simultánea: Resolver x 0 = f (x, u, t) y g(x, u, t) = 0 de forma simultánea mediante métodos implı́citos (BDF). Por ejemplo: Método de Gear. Tema IV: Simulación dinámica 24/33 Métodos de resolución Ecuaciones diferenciales algebraicas (DAEs) ( x 0 = f (x, u, y, t) g(x, u, y, t) = 0 Stiffness Aparece cuando hay constantes de tiempo muy diferentes en un sistema. Hay fenómenos muy rápidos y fenómenos lentos mezclados. Se presenta en muchos modelos de procesos de la industria quı́mica. Se deben emplear métodos implı́citos (y de paso variable). Tema IV: Simulación dinámica 25/33 Métodos de resolución Ecuaciones diferenciales algebraicas (DAEs) BDF (Backward Differentiation Formulas) k P αi xn−i = h β0 fn i=0 DAEs de forma semi-explı́cita: ( xn0 = f (xn , yn , un , tn ) g(xn , yn , un , tn ) = 0 Sistema de ecuaciones algebraicas a resolver: k P xn+1 = h β0 f (xn+1 , yn+1 , un+1 , tn+1 ) + αi xn−i i=0 g(xn+1 , yn+1 , un+1 , tn+1 ) = 0 Para cada paso de integración hay que resolver este sistema de ecuaciones algebraicas. Por Newton (u otro método de resolución). Tema IV: Simulación dinámica 26/33 Índice 1 Simulación dinámica. 2 Simuladores orientados a ecuaciones. 3 Métodos de resolución. Paso único. Multipaso. ODEs de orden n. DAEs. 4 Simulación dinámica con MATLAB. Tema IV: Simulación dinámica 27/33 Simulación dinámica con MATLAB MATLAB ODE solvers Solver System Accuracy Algorithm Step ode45 Nonstiff M Dormand-Prince Single ode23 Nonstiff L Bogacki and Shampine Single ode113 Nonstiff L–H Adams, Bashforth & Moulton Multistep ode15s Stiff L–M Gear Multistep ode23s Stiff L Rosenbrock Single ode23t Mod. Stiff L Trapezoidal Single ode23tb Stiff L TR-BDF2 Multistep Tema IV: Simulación dinámica 28/33 Simulación dinámica con MATLAB MATLAB ODE solvers: Sintaxis [T,Y] = solver(odefun,tspan,y0) odefun: Función de MATLAB en la que se ha codificado el sistema de ODEs. tspan: Tiempo de integración (tspan = [t0 tf]). y0: Valores iniciales de la variable. T: Vector de tiempos. Y: Vector de soluciones. Tema IV: Simulación dinámica 29/33 Simulación dinámica con MATLAB Diferentes m-files main_modelo.m modelo.m Valores iniciales de variables de estado Valores de parámetros y variables de entrada Tiempo de simulación Método numérico Ecuaciones del modelo Gráfico de resultados Los valores de parámetros y de variables de entrada también pueden estar en el archivo principal, pero en ese caso hay que poner esas variables como globales (global). Tema IV: Simulación dinámica 30/33 Simulación dinámica con MATLAB m-file único main_modelo.m Los valores de parámetros y de variables de entrada también pueden estar en el archivo principal, pero en ese caso hay que poner esas variables como globales (global). Cambia la llamada a la función: m-file único: @modelo Diferentes m-files: ’modelo’ Valores iniciales de variables de estado Tiempo de simulación Método numérico Gráfico de resultados modelo.m Valores de parámetros y variables de entrada Ecuaciones del modelo Tema IV: Simulación dinámica 31/33 Simulación dinámica con MATLAB Ejercicio 3: Enunciado Se dispone de un tanque calentado mediante una camisa con un fluido calefactor. Se considera que el tanque mantiene el nivel constante. Datos: Caudal de entrada al depósito 10 l/h, caudal de entrada a la camisa 15 l/h, densidad del lı́quido del depósito 1 kg/l, densidad del lı́quido calefactor 1,1 kg/l, calor especı́fico del lı́quido del depósito 1,25 kcal/kg o C, calor especı́fico del lı́quido calefactor 1,3 kcal/kg o Ft,in Fj,in Ft,out Fj,out C, volumen del tanque 25 l, volumen de la camisa 10 l, coeficiente global de transmisión de calor (U) 5 kcal/h m2 , área de intercambio 31 m2 , temperatura de la corriente de entrada al tanque 50o C, temperatura del fluido entrante a la camisa 150o C. Tema IV: Simulación dinámica 32/33 Simulación dinámica con MATLAB Ejercicio 3: Modelo matemático Balances de materia: Balances de energı́a: dVt = Ft,in − Ft,out = 0 dt dVj A la camisa: = Fj,in − Fj,out = 0 dt Al depósito: 1 Q dTt = Ft (Tt,in − Tt ) + dt Vt ρt Cp,t dTj 1 Q A la camisa: = Fj (Tj,in − Tj ) − dt Vj ρj Cp,j Al depósito: Calor intercambiado: Q = UA(Tj − Tt ) Tema IV: Simulación dinámica 33/33