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

Documentos relacionados