Optimización de Procesos - Departamento de Ingeniería Química
Transcripción
Optimización de Procesos - Departamento de Ingeniería Química
Optimización de Procesos Vicente Rico Ramírez Departamento de Ingeniería Química Instituto Tecnológico de Celaya Índice de Contenido 1 Introducción 1.1 La Ingeniería de Procesos 1.2 Modelación y Grados de Libertad 1.3 Representación Matemática Generalizada de un Problema de Optimización 1.4 Tipos de Problemas de Optimización 1.5 Región Factible 1.6 Convexidad 2. Técnicas de Optimización 2.1 Programación Lineal: Método Simplex 2.2 Programación No Lineal 2.2.1 Optimización sin restricciones 2.2.2 Optimización con Restricciones de Igualdad 2.2.3 Optimización con Restricciones de Desigualdad 2.3 La Programación Mixta-Entera en el Diseño de Procesos 2.4 Programación Mixta Entera Lineal: Método de “Branch and Bound” 2.5 Programación Mixta-Entera No Lineal: Método “Outer Approximation” 3. El Ambiente de Modelación GAMS y sus Resolvedores Índice de Contenido 4. Aplicaciones en Ingeniería Química 5. Introducción a la Optimización Bajo Incertidumbre 5.1 Tipos de Problemas de Programación Estocástica 5.2 El Método de Descomposición Estocástica 6. Introducción a la Optimización Multiobjetivo 6.1 Métodos de Solución 7. Control Óptimo y Optimización Dinámica 7.1 El Principio del Máximo 7.2 Programación Dinámica 7.3 Programación Dinámica Estocástica 3 Etapas en la Ingeniería de Procesos ”Process Systems Engineering” • Síntesis (o Diseño) • Simulación (o Análisis) • Optimización Síntesis (o Diseño ) de Procesos Materia Prima (condiciones iniciales) Productos Bajo Especificación Determinación de la Estructura del Proceso para realizar la transformación deseada Análisis (o Simulación ) de Procesos Materia Prima (condiciones iniciales) Productos Bajo Especificación Dadas las condiciones de entrada y la estructura del proceso, determinar las variables de salida Optimización de Procesos D, Pureza Alimentación Minimizar Costo N=? R=? P=? Definir una función objetivo y determinar los mejores valores de las variables de diseño Interacción entre Etapas de la Ingeniería de Procesos 9La optimización requiere de la solución de problemas de simulación en cada iteración 9La optimización es una herramienta imprescindible en el diseño de un proceso Simulación Diseño Optimización Introducción: Algunos Conceptos en la Optimización de Procesos Previo a la Optimización: Modelación Representación Matemática de la Fisicoquímica del proceso: z z z z z z Balances de Masa Balances de Energía Relaciones Termodinámicas Ecuaciones de Diseño Balances de Momentum Restricciones Particulares Sistema de Ecuaciones No Lineales Análisis de Grados de Libertad Para un sistema de M Ecuaciones y N Variables, Variables el número de grados de libertad, F, está dado por: F=N-M Tres casos: F = 0 El sistema tiene solución UNICA F > 1 El sistema puede OPTIMIZARSE F < 0 El sistema está sobre especificado: MODELO INCORRECTO Simulación u Optimización? Grados de Libertad F = Número de Variables – Número de Ecuaciones F=N-M Simulación ó Análisis F=0 El sistema debe ser consistente Optimización F>1 Función Objetivo: Maximizar utilidades, Minimizar costos, etc. Función Objetivo: Objetivo obtención de diseños óptimos Simulación u Optimización? Simulación Optimización x1 + x2 = 2 x1 + x2 = 2 x1 , x2 ≥ 0 x1 = 3 x2 x1 , x2 ≥ 0 F = 2 −1 = 1 F = 2−2 = 0 Solución única x1 = 1.5 x2 = 0.5 Soluciones posibles: x1 x2 0 2 1 1 1.5 0.5 2 0 M Solución óptima M min x1 − x2 Función objetivo Selección de Variables de Diseño M = 900 N = 1000 ¿ Como seleccionar 100 Variables de Diseño ? Matriz de Incidencia x1 f1 = ln( x1 ) − 2 = 0 f 2 = x2 − 3 x4 − 5 = 0 3 f 3 = ( x2 ) − x3 + x4 − 1 = 0 f1 f2 f3 x2 x3 x4 X X X X X X Trayectorias de Steward Variable de Diseño: Cualquiera de x2, x3 y x4 x1 f1 f2 f3 x2 x3 x4 X X X X X X Representación Matemática del Problema de Optimización • • Variables Discretas y Continuas Restricciones (Ecuaciones, Desigualdades) Lineales y No Lineales min f ( x, y ) s.t. h( x, y ) = 0 g ( x, y ) ≤ 0 x ∈ R n , y ∈ {0,1} El Modelo Matemático min f ( x, y ) s.t. h( x, y ) = 0 g ( x, y ) ≤ 0 x ∈ R n , y ∈ {0,1} Minimizar Costos Maximizar Utilidades Límites: 0< Comp <1 Temperatura, Presión, etc. Balances de Materia, Energía, Relaciones de Equilibrio, etc. Decisiones discretas: ¿ Equipo Existe ? z ¿ Restricción Lineal o No Lineal ? 2x +3 y=1 yx + 3 y = 1 z x 2 + ln ( y ) = 1 ¿ Variable Continua o Discreta ? y y=0 200 K < Temperatura < 500 K T = 253.75 K T = 493.68 K Equipo No Existe y=1 Equipo Existe Clasificación de Técnicas de Optimización Tipos de Variables Enteras Continuas Enteras+Continuas Tipos de Restricciones Tipos de Restricciones Programación Entera Programación Lineal Programación Programación Programación Mixta Entera Mixta Entera No Lineal Lineal No Lineal Tipos de Problemas de Optimización (Determinística, Estado Estable) * Programación Lineal (LP) * Programación Mixta Entera Lineal (MILP) * Programación No Lineal (NLP) * Programación Mixta Entera No lineal (MINLP) Región Factible y Convexidad min f ( x) s.t. h( x) = 0 g ( x) ≤ 0 x ∈ Rn NLP Función Convexa o No Convexa Función Convexa f(x) es convexa si para toda x1 y x2 ε R: f (αx1 + [1 − α ]x2 ) ≤ αf ( x1 ) + (1 − α ) f ( x2 ), ∀α ∈ (0,1) f(x) f(x) x1 x2 Convexa x1 x2 No Convexa Función Convexa? Función f ( x) = x 3 − 6 x 2 + 11x − 6 f ( x1 ) = f (1) = 0 Intervalo (1,3) f ( x2 ) = f (3) = 0 f (αx1 + [1 − α ]x2 ) ≤ αf ( x1 ) + (1 − α ) f ( x2 ) α = 0.25 α = 0.75 f (2.5) ≤ 0.25 f (1) + (0.75) f (3) − 0.375 ≤ 0 No Convexa f (1.5) ≤ 0.75 f (1) + (0.25) f (3) 0.375 ≤ 0 No se cumple Región Factible y Convexa Región Factible. Definición: { FR = x h(x ) = 0, g (x ) ≤ 0, x ∈ R n } Convexa o No Convexa? Convexa si para toda x1 y x2 ε FR: x = αx1 + (1 − α ) x2 ∈ FR, ∀α ∈ (0,1) x1 x1 x2 x2 Convexa No Convexa Técnicas de Optimización Técnicas de Optimización * Métodos Simplex y Puntos Interiores (LP) * “Branch and Bound” (Ramificación y Acotamiento) (MILP) * Estrategia del Conjunto Activo, SQP (Programación Cuadrática Sucesiva) (NLP) * “Outer Approximation” y Descomposición de Benders (MINLP) Programación Lineal Programación Lineal Forma General Maximize 300 x1 + 200 x2 sujeto a 5 x1 + 2 x2 ≤ 180 3x1 + 3 x2 ≤ 135 x1 ≤ 25 T min c x s.t. A x ≤ b x≥0 x ∈Rn 300 c= 200 x1 x= x2 5 2 A = 3 3 1 0 180 b = 135 25 Método Simplex Si la función objetivo disminuye en esta dirección g1=0 g2=0 Este sería el punto óptimo Región de búsqueda El óptimo se encuentra siempre en un punto “esquina” Método Simplex 1) Introducir variables “slack” para convertir desigualdades en igualdades. El número de grados de libertad no cambia. 2) Utilizar x=0 como punto inicial 3) Construir Matriz de Coeficientes 4) Efectuar pasos de eliminación Gaussiana hasta no obtener valores negativos en el renglón correspondiente a la función objetivo 5 x1 + 2 x2 ≤ 180 3x1 + 3 x2 ≤ 135 x1 ≤ 25 5 x1 + 2 x2 + s1 = 180 3x1 + 3 x2 + s2 = 135 x1 + s3 = 25 Método Simplex Matriz de Coeficientes x1 x2 s1 s2 s3 b 5 2 1 0 0 180 s1 3 3 0 1 0 135 s2 1 0 0 0 1 25 s3 -300 -200 0 0 0 0 f Punto inicial x1 = 0 x2=0 s1 = 180 s2=135 s3 = 25 Eliminación Gaussiana s3 x2 s1 s2 s3 b 0 2 1 0 -5 55 s1 0 3 0 1 -3 60 s2 1 0 0 0 1 25 x1 0 -200 0 0 300 7500 f Pivoteo en el Método Simplex El pivote en los pasos de eliminación Gaussiana se escoge de modo que: • Columna: el coeficiente de la función objetivo es el más negativo • Renglón: la menor proporción entre b y el coeficiente de la columna seleccionada Renglón Pivote ¿Qué ocurre si no se toma la menor proporción? s2 x2 s1 s2 s3 b 0 -3 1 -5/3 0 -45 s1 1 1 0 1/3 0 45 x1 0 -1 0 -1/3 1 -20 s3 0 300 0 100 0 1350 f Método Simplex Eliminación Gaussiana s3 s2 s1 s2 s3 b 0 0 1 -2/3 -3 15 s1 0 1 0 1/3 -1 20 x2 1 0 0 0 1 25 x1 0 0 0 200/3 100 11500 f Notas en el Método Simplex 1. En cada punto esquina, un número de variables igual al número de grados de libertad del problema valen cero 2. Las variables cuyo valor denominan no básicas es cero se 3. Cada punto de la trayectoria se dice que es una solución básica 4. El algoritmo concluye cuando ya no hay coeficientes negativos en el renglón de la función objetivo Método Simplex Maximize 300 x1 + 200 x2 sujeto a 5 x1 + 2 x2 ≤ 180 3x1 + 3 x2 ≤ 135 x1 ≤ 25 x2 (0,90) (0,45) (25,27.5) (25,20) El óptimo en el punto (25,20) (0,0) (25,0) x1 Programación No Lineal Condiciones de Optimalidad Optimización Sin Restricciones min f ( x ) x ∈ Rn Condición necesaria: necesaria x es un punto crítico de f(x) si se cumple que ∂f ∂x1 ∇f (x ) = M = 0 ∂f ∂xn Se obtiene un sistema de n Ecuaciones con n Variables x Condiciones de Optimalidad Optimización Sin Restricciones min f ( x ) x ∈ Rn ∂f ∂x1 ∇f (x ) = M = 0 ∂f ∂xn Condición suficiente: suficiente La Matriz Hessiana de la función objetivo es definida positiva f (x + ∆ x ) = f (x ) + ∇f (x ) ∆ x + 1 ∆ x H ∆ x 2 T ∂2 f ∂2 f ∂x1 ∂x2 ∂x12 H = 2 ∂ f ∂2 f 2 ∂ ∂ x x ∂x1 2 1 1 ∆ xT H ∆ x ≥ 0 2 T Hessiana para el caso de 2 variables Optimización Sin Restricciones 2 min ( x1 ) 2 − 6 x1 + (x2 ) − 2 x2 2 x1 − 6 ∇f ( x ) = =0 2 x2 − 2 2 0 H = 0 2 x1 = 3 x2 = 1 H es positiva definida Optimo Global Condiciones de Optimalidad Optimización Con m Restricciones de Igualdad min f ( x ) s.t. h( x) = 0 x ∈ Rn Función de Lagrange (función escalar): m L ( x, λ ) = f ( x ) + λ h ( x ) = f ( x ) + ∑ λ j h j ( x ) T j λ se denominan multiplicadores de Lagrange y constituyen m variables adicionales en el problema Condición necesaria:Obtener un punto crítico necesaria: (estacionario) para la función de Lagrange ∂L( x, λ ) = ∇ f ( x ) + ∑ λ j ∇h j ( x ) = 0 ∂x j ∂L( x, λ ) = h( x ) = 0 ∂λ Se obtiene un sistema de n+m Ecuaciones con n+m Variables x yλ Condición suficiente: La Matriz Hessiana de la función de Lagrange es definida positiva Optimización con Restricciones de Igualdad min ( x1 ) 2 − 6 x1 + (x2 )2 − 2 x2 s.t. x1 − x2 − 2 = 0 2 x1 − 6 1 ∇f ( x ) + ∑ λ j ∇h j ( x ) = + λ1 = 0 j − 1 2 x2 − 2 h( x ) = x1 − x2 − 2 = 0 2 x1 − 6 + λ1 = 0 2 x2 − 2 − λ1 = 0 x1 − x2 − 2 = 0 Condiciones de Optimalidad Optimización Con m Restricciones de Igualdad y r de Desigualdad min f ( x) s.t. h( x) = 0 g ( x) ≤ 0 x ∈ Rn Función de Lagrange Aumentada (función escalar): m r j =1 k =1 L ( x, λ , µ ) = f ( x ) + λ h ( x ) + µ g ( x ) = f ( x ) + ∑ λ j h j ( x ) + ∑ µ k g k ( x ) T T µ se denominan multiplicadores de KarushKuhn-Tucker y constituyen r variables adicionales en el problema un punto crítico Condición necesaria:Obtener necesaria: (estacionario) mediante el Teorema de KarushKuhn-Tucker ∂L( x, λ , µ ) = ∇f ( x ) + ∑ λ j ∇ h j ( x ) + ∑ µ k ∇g k ( x ) = 0 ∂x j k ∂L(x, λ , µ ) = h( x ) = 0 ∂λ µk (x )⋅ g k (x ) = 0 µk (x ) ≥ 0 g k (x ) ≤ 0 Se obtiene un sistema de n+m+r Ecuaciones con n+m+r Variables x, µ y λ Condición suficiente: La Matriz Hessiana de la función de Lagrange Aumentada es definida positiva Condición necesaria: ∂L( x, λ , µ ) = ∇f ( x ) + ∑ λ j ∇ h j ( x ) + ∑ µ k ∇g k ( x ) = 0 ∂x j k ∂L(x, λ , µ ) = h( x ) = 0 ∂λ µk (x )⋅ g k (x ) = 0 µk (x ) ≥ 0 g k (x ) ≤ 0 Optimización con Restricciones de Desigualdad min f ( x ) = 1 (x12 + x22 ) − 3 x1 − x2 2 s.t. g1 = − x1 + x2 ≤ 0 g 2 = x1 − 1 x2 − 2 ≤ 0 2 Note: x1 − 3 − 1 1 ∇f ( x ) + ∑ µ k ∇hk ( x) = + µ1 + µ 2 =0 k 1 − 1 2 x2 − 1 x1 − µ1 + µ 2 = 3 x2 + µ1 − 1 µ 2 = 1 2 µ1 (− x1 + x2 ) = 0 µ 2 x1 − 1 x2 − 2 = 0 2 ( ) Programación No Lineal Estrategia del Conjunto Activo (Active Set Strategy) Solución al Conjunto de Ecuaciones KKT ∇f ( x ) + ∑ λ j ∇h j ( x ) + ∑ µ k ∇ g k ( x ) = 0 j k h( x ) = 0 µ k (x ) ⋅ g k (x ) = 0 µk (x ) ≥ 0 g k (x ) ≤ 0 Desigualdades g k (x ) = 0 Activa g k (x ) < 0 Inactiva Programación No Lineal Estrategia del Conjunto Activo 1) Definir conjunto activo. Inicialmente: J1 = {k g k = 0} 2) Formular ecuaciones KKT J1 = ∅ ⇒ g k > 0 µk = 0 ∇f ( x ) + ∑ λ j ∇h j ( x ) + ∑ µ k ∇g k ( x ) = 0 k∈J1 j h( x ) = 0 g k ( x ) = 0 k ∈ J1 Programación No Lineal Estrategia del Conjunto Activo 3) Si para toda k g k ( x) ≤ 0 y µ k ≥ 0 OK OK. Se ha obtenido la solución Si cualquier g k ( x) > 0 y / o µ k < 0 a) Eliminar de J1 la restricción con el µi más negativo b) Añadir a J1 todas las restricciones violadas g k ( x) > 0 para hacerlas activas c) Regresar a 2) Programación No Lineal Estrategia del Conjunto Activo: Ejemplo min f ( x ) = 1 (x12 + x22 ) − 3 x1 − x2 2 s.t. g1 = − x1 + x2 ≤ 0 g 2 = x1 − 1 x2 − 2 ≤ 0 2 g 3 = − x2 ≤ 0 Condiciones de Karush-Kuhn-Tucker (Iteración 1): J1 = {k g k = 0} ∇f ( x ) + ∑ λ j ∇h j ( x ) + ∑ µ k ∇g k ( x ) = 0 j J1 = ∅ ⇒ x − 3 ∇f ( x ) + ∑ µ k ∇hk ( x) = 1 = 0 k x2 − 1 x1 = 3 x2 = 1 µ1 = 0 µ2 = 0 µ3 = 0 k∈J1 g k > 0 µk = 0 Verificando restricciones y µ´s: g1 = −2 < 0 g 2 = 1 / 2 > 0 !!! g 3 = −1 < 0 µ1 = 0 µ2 = 0 µ3 = 0 Activar g2 J 2 = {2} Programación No Lineal Programación Cuadrática Sucesiva (SQP) min f ( x ) s.t. h( x ) = 0 g ( x) ≤ 0 x ∈ Rn Condiciones de optimalidad (Karush-Khun-Tucker) Sistema de Ecuaciones No Lineales Iteración de Newton Programa cuádratico Programación Mixta-Entera Representación de Procesos en Términos de Variables Binarias x1 A I z1 x0 10 kmol/hr B x2 1 if reactor I is selected y1 = 0 if reactor I is not selected 1 if reactor II is selected y2 = 0 if reactor II is not selected II z2 min C = 7.5 y1 + 6.4 x1 + 5.5 y2 + 6.0 x2 sujeto a 0.8 x1 + 0.67 x2 = 10 x1 − 20 y1 ≤ 0 x2 − 20 y2 ≤ 0 x1 , x2 ≥ 0 y1 , y2 = 0,1 Relaciones Lógicas ¬p j 1) NOT 1− y j 7) Teorema de Morgan pi ∨ p j 2) OR (exclusivo) y + y = 1 i j 3) OR (inclusivo) pi ∨ p j yi + y j ≥ 1 pi ∧ p j 4) AND y 1, y 1 j ≥ i ≥ pi → p j ¬pi ∨ p j 5) If-Then 1 − yi + y j ≥ 1 yi ≤ y j 6) Iff-Then pi ↔ p j yi = y j ¬( A ∨ B ) ⇔ ¬A ∧ ¬B ¬( A ∧ B ) ⇔ ¬A ∨ ¬B 8) Distribución de AND ( A ∧ B ) ∨ C ⇔ ( A ∨ C ) ∧ (B ∨ C ) Representando Alternativas Convex Hull Big - M x11 + x12 = x1 x1 − 2 x2 ≤ M (1 − y1 ) x1 − 2 x2 ≥ − M (1 − y1 ) x1 − 1 ≤ M (1 − y1 ) y1 + y2 = 1 x1 − 5 x2 ≤ M (1 − y2 ) x1 − 5 x2 ≥ − M (1 − y2 ) x1 − 1 ≥ − M (1 − y2 ) x1 , x2 ≥ 0 x21 + x22 = x2 x11 ≤ My1 x12 ≤ My2 y1 y2 = ∨ = x1 2 x2 x1 5 x2 x1 ≤ 1 x1 ≥ 1 x , x ≥ 0 x , x ≥ 0 1 2 1 2 x21 ≤ My1 x22 ≤ My2 x11 − 2 x21 = 0 x12 − 5 x22 = 0 x11 ≤ y1 x12 ≥ y2 y1 + y2 = 1 x11 , x12 , x21 , x22 ≥ 0 Programación MixtaEntera Lineal Método de “Branch and Bound” (Ramificación y Acotamiento) “ Procedimiento: 1) Resolver el problema como si todas las variables fueran continuas (problema LP). Es decir, relajar las variables binarias. A este nivel se le conoce como “Root Node” (Nodo raíz) • El valor de la función objetivo en el nodo raíz es un límite inferior a su valor en la solución • Si la solución del nodo raíz es entera, tal solución es la solución del problema 2) Realizar una búsqueda de ramificación ordenada mediante la adición de restricciones enteras Método de “Branch and Bound” (Ramificación y Acotamiento) “ y3=0 0<y2<1 y2=0 0<y3<1 y1=0 0<y1<1 0<y2<1 0<y3<1 Relajado y3=1 y2=1 y1=1 Para m variables binarias, el número de posibles nodos es 2m+1- 1 3 Reglas en el Método de “Branch and Bound”: “ k i 1) 2) 3) La función objetivo en i es un límite inferior a la función objetivo en k. Si algún nodo resulta en una solución entera, el valor de la función objetivo en tal nodo es un límite superior de la solución Si i es infactible o ilimitado, entonces k también lo es Método de “Branch and Bound”: Ejemplo “ [1,1,0] min z = x + y1 + 3 y2 + 2 y3 s.t. − x + 3 y1 + 2 y2 + y3 ≤ 0 − 5 y1 − 8 y2 − 3 y3 ≤ −9 x ≥ 0, y1 , y2 , y3 ∈ {0,1} [1,0.5,0] y2=1 z =9 z = 6.5 y1=1 infactible [0,1,1] y2=0 y2=1 [0.2,1,0] z =8 z = 5.8 y1=0 m=3 2 m +1 − 1 = 15 y3=1 [0,0.075,1] z = 6.75 y =0 2 [0,1,0.333] z=6 infactible y3=0 infactible Programación MixtaEntera No Lineal Seleccionar un valor inicial para y Resolver el NLP resultante S(yk) ZU Algoritmo General Nueva y Resolver el Problema Maestro MILP ZL SI ZL<ZU ? NO Solución Programación MixtaEntera No Lineal Algoritmo “Outer Approximation” (DICOPT+++) “ Problema Maestro Z = min α ( ) ( )( ( )( ) T sujeto a α ≥ cT y + f x k + ∇f x k x − x k T g x k + ∇g x k x − x k + By ≤ 0 Ay ≤ a m y ∈ {0,1} x ∈ R n α ∈R T min c y + f ( x) g ( x) + B y ≤ 0 Ay ≤ a m y ∈ {0,1} x ∈ R n ( ) ) ∀k ∈ T ( ) f(x) k x k es la solución óptima de S y k ∀ T = k los posibles valores de y x Algoritmo “Outer Approximation” “ Optimización Semi-Infinita: Problema Relajado Z = min α ( ) ( )( ( )( ) T sujeto a α ≥ cT y + f x k + ∇f x k x − x k T g x k + ∇g x k x − x k + By ≤ 0 Ay ≤ a m y ∈ {0,1} x ∈ R n ( ) ) α ∈R k = 1K K ( ) Dada la solución de K subproblemas NLP x k definidos por y k tal que k = 1K K Programación MixtaEntera No Lineal “Outer Approximation”: Ejemplo 1 min z = y1 + 1.5 y2 + 0.5 y3 + x12 + x22 2 s.t. (x1 − 2 ) − x2 ≤ 0 x1 − 2 y1 ≥ 0 x1 − x2 − 4(1 − y2 ) ≤ 0 1) 2) 3) x1 − (1 − y1 ) ≥ 0 x2 − y 2 ≥ 0 x1 + x2 ≥ 3 y3 y1 + y2 + y3 ≥ 1 0 ≤ x1 ≤ 4 0 ≤ x2 ≤ 4 NLP y1 = 1 y2 = 1 y3 = 1 MILP y1 = 1 y2 = 0 y3 = 0 x1 = 2 x2 = 0 z L = 1 NLP y1 = 1 y2 = 0 y3 = 0 MILP y1 = 0 y2 = 1 y3 = 0 x1 = 1 x2 = 0 z L = 1.5 NLP y1 = 0 y 2 = 1 y3 = 0 MILP y1 = 0 y2 = 0 y1 , y2 ∈ {0,1} x1 = 2 x2 = 2 zU = 11 x1 = 2 x2 = 0 zU = 5 x1 = 1 x2 = 1 zU = 3.5 y3 = 1 x1 = 2 x2 = 1 z L = 4.5 Programación MixtaEntera No Lineal “Outer Approximation”: Ejemplo 2, Iteración 1 min z = −2.7 y + x 2 s.t. g1 = − ln (1 + x ) + y ≤ 0 g 2 = − ln ( x − 0.57 ) + y − 1.1 ≤ 0 0≤ x≤2 y ∈ {0,1} 1) Comenzar con y=1 y resolver NLP: z = 0.2525 x = 1.7183 µ1 = 9.347 µ 2 = 0 ( zU ) 2) Linealizar el problema MINLP en x= 1.7183 para obtener el problema maestro MILP: zOA = min α OA s.t. α OA ≥ −2.7 y + 3.4366 x − 2.9525 − 0.36787 x + y ≤ 0.36788 − 0.87085 x + y ≤ −0.2581 0≤ x y ∈ {0,1} z L < zU y=0 zOA = −1.939 ( zL ) Volver a paso 1 con nuevo valor y=0 El Entorno de Modelación GAMS y sus Resolvedores Formas de Atacar el Problema de Modelación z Corriente Modular Secuencial * Cada unidad de proceso (módulo) calcula su salida dadas las entradas ⇓ En cada unidad se resuelve un sistema de ecuaciones no lineales (subrutina que “convierte” valores de entradas en valores de salida) * Las variables de las corrientes de reciclo se suponen inicialmente y constituyen la guía para proceso iterativo Compresor Divisor de Corriente Corriente de Reciclo Intercambiador Separador Flash Alimentación Mezclador * Reactor Se requieren algoritmos de orden de precedencia y determinación de las corrientes de reciclo a ser supuestas. z Corriente de Orientación a las Ecuaciones * Cada unidad del sistema es representado por un sistema de ecuaciones (lenguaje declarativo: declarativo no restricciones en cuanto a especificación de variables) * Las ecuaciones son generalmente almacenadas en librerías * Para definir el problema, se colectan las ecuaciones que representan a cada unidad y a las conexiones entre ellas Sistema Resultante * El sistema resultante se resuelve simultáneamente (probablemente un problema de miles de ecuaciones) Simuladores y Optimizadores Comerciales 9 Corriente Modular Secuencial: Simuladores de Procesos ASPEN, ASPEN PRO/II, HySys ¾ 9 9 Modelado por configuración Corriente de Orientación a las Ecuaciones: Sistemas de Modelación gPROMS, SpeedUp, ABACO, ASCEND GAMS ¾ NLP: NLP CONOPT, MINOS, LACELOT, SRQP, LINGO ¾ MINLP: MINLP DICOPT ¾ MILP, LP: LP CPLEX, OSL, LINDO, SCICONIC, XA GAMS la Interfase Resolvedores en GAMS Tipos de Problemas Algoritmos de Solución GAMS: Ejemplo 1 W1 y0 = 0 Q=1000 lb/hr xF = 0.2 Etapa de Extracción Q=1000 lb/hr x1 W1 y1 Max Q(xF − x1 ) − λW1 Qx F = Qx1 + Wy1 Hx1 y1 = (H − 1)x1 + 1 λ = 0.05 H =1.2 GAMS: Ejemplo 2 xDA = 0.8 zA = 0.6 zB = 0.3 zC = 0.1 αAC = 2.3 αBC =1.3 F = 1000 Kmol/hr αCC =1.0 q =1.0 N ∑ j =1 N α α j zj −θ α j x Dj ∑α j =1 j j −θ N ∑x j =1 D j = 1− q = 1 + Rmin =1 Algunas Aplicaciones en Ingeniería Química Optimización de Columnas y Secuencias de Destilación Diseño Óptimo de Columnas D, Pureza ¿ Cómo separar una mezcla ABC ? A 1) B ABC Alimentación 2) BC AB C Minimizar Costo A ABC B N=? R=? P=? C Modelo MILP para Secuencias de Separación 9Supone separaciones del 100% (Sharp splits) splits 9Supone que las cargas térmicas y costos de inversión son funciones lineales de la alimentación 9Supone que las cargas de los cambiadores son del mismo orden de magnitud l∈C ∑x top k F l ξ ktop = l∈C ktop ∑x l∈C k F l x iF k l ∈ Ck ξ kbot = l ∈ C kbot ∑x F l l∈C kbot ∑x l∈C k F l Datos de Caso de Estudio Mezcla Cuaternaria ABCD F=1000 Kmol/hr: 15% A, 30% B, 35% C, 20% D Sistema Fijo Variable αk 3 Carga térmica Kk βk 3 6 (10 $/año) (10 $ hr / Kgmol año) (10 KJ / Kgmol) A/BCD 145 0.42 0.028 AB/CD 52 0.12 0.042 ABC/D 76 0.25 0.054 A/BC 125 0.78 0.024 AB/C 44 0.11 0.039 B/CD 38 0.14 0.040 BC/D 66 0.21 0.047 A/B 112 0.39 0.022 B/C 37 0.08 0.036 C/D 58 0.19 0.044 Costos de utilidades: Agua de enfriamiento: CW = 1.3 (103$ hr/ 106 KJ año) Vapor: CH = 34 (103$ hr/ 106 KJ año) Superestructura B/CD F4 y4 F8 A/BCD C/D y8 F5 BC/D y5 F1 y1 Superestructura con 4 Componentes F2 ABCD y9 AB/CD y2 FTOT B/C F9 F3 y3 A/BC F6 y6 ABC/D F7 y10 y7 F10 AB/C A/B Modelo Balance Global FTOT = 1000 = F1 + F2 + F3 Factores de separación ξ1A =0.15 ξ1BCD =0.85 ξ2 AB CD =0.45 A ξ6 =0.188 ξ7 AB =0.5625 C =0.55 ξ7 =0.437 ξ3ABC =0.8 ξ8C =0.636 ξ3D =0.2 ξ8D =0.364 ξ4B =0.353 ξ9B =0.462 ξ4CD =0.647 ξ9C =0.538 ξ5BC =0.765 ξ10A =0.333 ξ5D =0.235 ξ10B =0.667 ξ2 Mezclas Intermedias ξ6BC =0.812 BCD F4 + F5 − 0.85F1 = 0 ABC F6 + F7 − 0.8F3 = 0 AB F10 − 0.45 F2 − 0.563F7 = 0 BC F9 − 0.765F5 − 0.812 F6 = 0 CD F8 − 0.55 F2 − 0.647 F4 = 0 Flujos (Big-M) Fk − 1000 y k ≤ 0 Fk ≥ 0 Cargas Térmicas Qk = K k Fk k = 1,...,10 y k = 0,1 k = 1,...,10 Función Objetivo 10 10 k =1 k =1 min C = ∑ (α k y k + β k Fk ) + (34 + 1.3)∑ Qk Síntesis de Redes de Intercambio de Calor h1 500 ° K h2 ? 418 ° K c1 375 ° K 305 ° K c2 310 ° K 298 ° K Modelo MINLP (SYNHEAT) Estrategia de Optimización Simultánea Stage 1 H1-C1 H1 Stage 2 H1-C1 H1-C2 H1-C2 H2-C1 H2-C1 H2-C2 H2-C2 C1 H2 C2 MODELO Balance de calor total para cada corriente: (TIN i − TOUT (TOUT j − TIN i )F i j )F ∑ ∑q = k ∈ ST j ∈ CP ∑ ∑q = j ijk k ∈ ST i∈ HP ijk + qcu i , i ∈ HP + qhu j , j ∈ CP (t ik − t i , k + 1 )F i = jk − t j , k + 1 )F j = ∑q j ∈ CP ijk ∑q i∈ HP Asignación de las temperaturas de entrada a la superestructura: t j , NOK = TIN +1 j j ∈ CP Factibilidad de temperaturas: t ik ≥ t i , k +1 , k ∈ ST , i ∈ HP t jk ≥ t j , k +1 , k ∈ ST , j ∈ CP TOUT i ≤ t i , NOK +1 , i ∈ HP TOUT j ≥ t j ,1 , j ∈ CP i j ,1 i j i j qijk − Ωzijk ≤ 0, i ∈ HP, j ∈ CP, k ∈ ST , k ∈ ST , j ∈ CP t i ,1 = TIN i , i ∈ HP i , NOK +1 Restricciones lógicas: , k ∈ ST , i ∈ HP ijk (t − TOUT )F = qcu , i ∈ HP (TOUT − t )F = qhu , j ∈ CP j Balance de calor para cada etapa: (t Carga de servicios de enfriamiento y calentamiento: qcui − Ωzcui ≤ 0, i ∈ HP qhuj − Ωzhuj ≤ 0, j ∈ CP zijk , zcui , zhuj = 0,1 Cálculo de las diferencias de temperaturas: dtijk ≤ tik − t jk + Γ(1 − zijk ), k ∈ ST, i ∈ HP, j ∈ CP dtij,k +1 ≤ ti,k +1 − t j ,k +1 + Γ(1 − zijk ), k ∈ ST, i ∈ HP, j ∈ CP dtcui ≤ ti, NOK+1 − TOUTcu + Γ(1 − zcui ), i ∈ HP dthuj ≤ TOUThu − t j ,1 + Γ(1 − zhu j ), j ∈ CP Planeación de la Producción Demand d1 d2 T1 T2 H d3 d4 T3 T4 Thousands of barrels/day La Producción del Petróleo es un Problema Multiperiódico 3200 3100 3000 2900 2800 2700 2600 2500 Jan Mar Jul May Month Sep Nov Jan well head well bore storage Geological Properties: permeability thickness porosity etc. oil flow well bore reservoir oil flow La extracción produce una disminución de la presión del pozo con el tiempo q pw pup pflow pshut plow ts t ts t Modelos de Programación MixtaEntera El tiempo de operación H es dividido en NP periodos de tiempo. Dadas las demandas de producción del petróleo en cada periodo de tiempo y las constantes de caracterización de los pozos, determinar: • Los perfiles de producción y • Los tiempos operación de cada pozo en cada periodo de tiempo. Modelo MILP ∑∑γ Minimize i ∑q T ≥ d ij j ( ) q T + ∑∑δij yijT + ∑∑αij 1 − yij T ij ij j i j i j ∀j ∈ P i ¬Yij Wij1 Wij 2 Yij ∀i ∈W , j ∈ P p f = pin − D ∨ p f = pin + I ∨ p f = pup ij i ij ij ij ij ij ij in up in up + ≤ + > p I p p I p ij i ij i ij ij ∀i ∈W , j ∈ P Dij = qij {c1 [ln(T ) + c2 ]} ∀i ∈W , j ∈ P I ij = qis {c1 [ln(T ) + c2 ]}(1 − yij ) ( ) ∀i ∈W , j ∈ P qijmax {c1 [ln(T ) + c2 ]} = pijin − pilow ∀i ∈W , j ∈ P qij ≤ qijmax ( ) ∀i ∈W , j ∈ P qij ≤ qiup yij + qlow 1 − yij ∀i ∈W , j ∈ P qij ≥ qlow pijin = pijf−1 ∀i ∈W , j ∈P Calendarización de Procesos por Lotes Gráficas de Gant Producto A Mezclador Reactor 1 Reactor 2 Centrífuga ¾ ¾ 8 8 8 8 20 20 20 20 4 4 4 4 Determinar el Tamaño y número de unidades paralelas Determinar la Secuenciación de las unidades