Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ingeniera de Procesos
Martn Rivera Toledo
FUNDAMENTOS DE OPTIMIZACIN
Contenido
1. Introduccin
2. Fundamentos
3. Ejemplos
4. Problemas
1. Introduccin
La optimizacin es una de las herramientas mayormente utilizadas para la toma de decisiones,
se pueden resolver una amplia variedad de problemas en diseo, construccin, operacin y
anlisis de plantas qumicas (tambin como en otros procesos industriales) a travs de sta.
Figura 1. Jerarqua de los niveles de optimizacin
Intereses a nivel industrial:
1. Ventas limitadas por la produccin
2. Ventas limitadas por el mercado
3. Volumen de produccin
4. Consumo de materia prima y/o energa
5. Especificacin de la cantidad y calidad de
los productos
6. Perdidas de materia a travs de las
corrientes de desecho
7. Costos de mano de obra y/o produccin
Ingeniera de Procesos Martn Rivera Toledo 2/101
Ejemplos de aplicacin
1. Determinar la mejor ubicacin para una planta de proceso
2. Determinar la mejor ruta de distribucin de petrleo crudo y productos de una refinera
3. Dimensionamiento de una tubera y su distribucin (Layout)
4. Diseo de una planta de procesos y sus equipos
5. Programa de mantenimiento y reemplazo de los equipos
6. Operacin de los equipos (reactores, columnas, absorbedores, etc.)
7. Evaluacin de datos de planta para la construccin de un modelo del proceso
8. Minimizacin del inventario
9. Planeacin y programacin de produccin
Ingeniera de Procesos Martn Rivera Toledo 3/101
2. Fundamentos
2.1 Procedimiento
Para resolver un problema de optimizacin se sugiere aplicar los siguientes pasos
1. Realizar una representacin esquemtica del problema
2. Definir la serie de variables que permitan describir el proceso
3. Formular la funcin objetivo
4. Formular la serie de restricciones
5. Desarrollar o seleccionar algn algoritmo de clculo [template GAMS]
6. Evaluar los resultados obtenidos
2.2 Conceptos fundamentales
a. Continuidad de funciones
Una funcin de una variable x es continua en un punto x
0
si se cumple:
i.
) (
0
x f
existe
ii.
) ( lim
0
x f
x x
existe
iii.
) ( ) ( lim
0
0
x f x f
x x
=
si
) (x f
es continua en cualquier punto de la regin R, entonces se dice que ) (x f es continua a
travs de R.
Ingeniera de Procesos Martn Rivera Toledo 4/101
Caso1, la funcin no es continua Caso 2, la funcin es continua, pero las derivadas
no lo son
Figura 2. Ejemplos de funciones que presentan discontinuidad en la funcin y/o su derivada
Las funciones siguientes son continuas?
(a)
x
x f
1
) ( =
(b)
) ln( ) ( x x f =
, en cada caso especifique el intervalo de x para el cual la funcin
y su primera derivada son continuas.
Ingeniera de Procesos Martn Rivera Toledo 5/101
b. Funciones unimodales y multimodales
Funcin unimodal
*), ( ) ( ) (
*), ( ) ( ) (
3 4
2 1
x f x f x f
x f x f x f
< <
< <
*
*
3 4
2 1
x x x
x x x
> >
< <
Funcin multimodal
Figura 3. Funciones unimodales y multimodales
Ingeniera de Procesos Martn Rivera Toledo 6/101
c. Convexidad y concavidad
Funcin convexa Funcin cncava
Primera derivada de la funcin
convexa
Primera derivada de la funcin
cncava
Segunda derivada de la funcin
convexa
Segunda derivada de la funcin
cncava
Figura 4. Funciones convexa y cncava
Ingeniera de Procesos Martn Rivera Toledo 7/101
Para un sistema de varias variables, la matriz de segundas derivadas parciales (Hessiana)
deber ser
i. definida positiva
0 ), 0 ( = > x Hx x
T
para una funcin convexa
ii. definida negativa
0 ), 0 ( = < x Hx x
T
para una funcin cncava
Funcin convexa
Funcin no convexa
Funcin no convexa multimodal
Funcin discontinua
Condiciones necesarias y
suficientes que caracterizan
el mnimo sin restricciones:
Funcin no diferenciable convexa
Ingeniera de Procesos Martn Rivera Toledo 8/101
Ejercicio.
Para cada una de las funciones siguientes defina su concavidad o convexidad
1. (a)
2
3 ) ( x x f =
, (b)
x x f 2 ) ( =
, (c)
2
3 ) ( x x f =
, (d)
2
5 ) ( x x f =
, (e)
3 2
2 ) ( x x x f =
2. (a)
2
2 2 1
2
1
2 3 2 ) ( x x x x x f + =
, (b) 4 2 ) (
2 2 1
2
1
+ + + = x x x x x f
d. Regin convexa
Una regin convexa (conjunto de puntos) juega un papel importante en la optimizacin de una
funcin con restricciones, un conjunto de puntos convexo existe si para dos puntos cualquiera en
una regin,
a
x y
b
x , todos los puntos
b a
x x x ) 1 ( u u + =
, donde
1 0 s s u
, en la lnea asociada a
a
x y
b
x
estn en el interior del conjunto.
Si una regin est completamente acotada por funciones cncavas para el caso en el cual todas
las 0 ) ( > x gi , entonces las funciones forman una regin convexa cerrada.
Para el caso en el cual todas las restricciones de desigualdad expresadas en la forma 0 ) ( s x gi son
todas funciones convexas, las funciones forman una regin convexa.
Ingeniera de Procesos Martn Rivera Toledo 9/101
Figura 5. Regin convexa y no convexa
Ejemplo.
El siguiente conjunto de funciones define una regin
cerrada, la cual es convexa
1
2
2
1 1
> + = x x g
&
2
2 1 2
s = x x g
Figura 6. Regin convexa compuesta por dos funciones cncavas
Ingeniera de Procesos Martn Rivera Toledo 10/101
e. Condiciones necesarias y suficientes para garantizar la existencia de un mnimo local
El problema general de optimizacin se puede escribir como
) ,..., , ( min
2 1 n
x x x f
sujeta a las restricciones de
igualdad
m j x x x h
n j
,..., 2 , 1 0 ) ,..., , (
2 1
= =
desigualdad
p k x x x g
n k
,..., 2 , 1 0 ) ,..., , (
2 1
= s
As que las condiciones necesarias y suficientes para garantizar un mnimo local son
Caso a.
Sin restricciones
1. Que
) ,..., , (
2 1 n
x x x f
sea doblemente diferenciable en
T
n
x x x x *) *,..., *, ( *
2 1
=
2. Que exista el
0 ) ,..., , (
* *
2
*
1
= V
n
x x x f
en
T
n
x x x x *) *,..., *, ( *
2 1
=
3.Que
) ,..., , (
* *
2
*
1 n
x x x H
sea definida (o semidefinida) positiva en
T
n
x x x x *) *,..., *, ( *
2 1
=
donde
i
i
x
f
f
c
c
= V ] [
&
j i
ij
x x
f
H
c c
c
=
2
] [
Ingeniera de Procesos Martn Rivera Toledo 11/101
Curvatura
Positiva o negativa
(H definida positiva o negativa)
Cero
(H singular)
Positiva o negativa
(H definida positiva o negativa)
Condiciones que caracterizan el mnimo sin
restricciones:
a. Condiciones necesarias
Hessiana semidefinida positiva
b. Condiciones Suficientes
Hessiana definida positiva
Ingeniera de Procesos Martn Rivera Toledo 12/101
Ejercicio
Calcule los puntos crticos de la funcin siguiente
2
2
1
4
1 2 1
2
2
2
1 2 1 2 1
2 2 2 4 5 . 4 4 ) , ( x x x x x x x x x x x f + + + + =
Solucin
Punto
Crtico
*) *, (
2 1
x x
*) *, (
2 1
x x f
Valores propios de
*) *, (
2 1
x x H
Clasificacin
Ingeniera de Procesos Martn Rivera Toledo 13/101
Caso b.
Con restricciones (Condiciones de Karush-Kuhn-Tucker)
si se define la funcin de Lagrange como
k
p
k
i k j
m
j
i j i k j i
v x g u x h x f v u x L
= =
+ + =
1 1
) ( ) ( ) ( ) , , (
Las condiciones necesarias
1.
) ( ), ( ), ( x g x h x f
k j sean doblemente diferenciables en
T
n
x x x x *) *,..., *, ( *
2 1
=
2.
0 ) ( ) ( ) ( ) , , (
* * * *
= V + V + V = V v x g u x h x f v u x L
i i i k j i
3.Los multiplicadores de Kuhn-Tucker deben ser positivos ,
0 >
i
v
, deben de aplicar en
una sola direccin (Los de Lagrange pueden ser positivos o negativos)
4. Que las restricciones se satisfagan en
T
n
x x x x *) *,..., *, ( *
2 1
=
p k x x x g
n k
,..., 2 , 1 0 ) ,..., , (
* *
2
*
1
= s
m j x x x h
n j
,..., 2 , 1 0 ) ,..., , (
* *
2
*
1
= =
de factibilidad
Ingeniera de Procesos Martn Rivera Toledo 14/101
5. condiciones complementarias
p k x x x g v
n k k
,..., 2 , 1 0 ) ,..., , (
* *
2
*
1
= =
6. La matriz Hessiana de
) , , (
k j i
v u x L
es semidefinida positiva para valores de Z tales que
cumplen con las condiciones siguientes
0 ) ,..., , (
* *
2
*
1
= V
n k
T
x x x g Z
&
0 ) ,..., , (
* *
2
*
1
= V
n j
T
x x x h Z
para todas las restricciones activas,
| | 0 Z ) ,..., , , ,..., , , ,..., , ( L
* *
2
*
1
* *
2
*
1
* *
2
*
1
2
> V
k j n
T
v v v u u u x x x Z
y las condiciones de suficiencia estn dadas por
7. Adems de las condiciones necesarias (1) a la (5) se tiene una modificacin de la sexta
8. La matriz Hessiana de
) , , (
k j i
v u x L
es definida positiva para valores de Z tales que cumplen
con las condiciones siguientes
0 ) ,..., , (
* *
2
*
1
= V
n k
T
x x x g Z
&
0 ) ,..., , (
* *
2
*
1
= V
n j
T
x x x h Z
para las restricciones activas
0 ) ,..., , (
* *
2
*
1
> V
n k
T
x x x g Z
para las restricciones inactivas
| | 0 Z ) ,..., , , ,..., , , ,..., , ( L
* *
2
*
1
* *
2
*
1
* *
2
*
1
2
> V
k j n
T
v v v u u u x x x Z
Ingeniera de Procesos Martn Rivera Toledo 15/101
Figura 7. Interpretacin de las condiciones de KKT
para el problema d optimizacin:
Figura 8. Interpretacin de las condiciones de KKT
para el problema de optimizacin:
Ingeniera de Procesos Martn Rivera Toledo 16/101
2.1 Tcnicas de optimizacin para sistemas sin restricciones
Al calcular el gradiente de f(x) alrededor del punto x
k
, se tiene que el lado
derecho tiende a cero, como sigue
Algoritmo bsico de Newton
Ingeniera de Procesos Martn Rivera Toledo 17/101
a. Mtodo del paso descendente
b. Mtodo de Newton
Rapidez de convergencia
Cuadrtica (Newton) Lineal (Paso descendente) Superlineal (Deseable)
Ingeniera de Procesos Martn Rivera Toledo 18/101
c. Mtodos Quasi-Newton
Ingeniera de Procesos Martn Rivera Toledo 19/101
Notas:
1. Ambas formulas fueron derivadas bajo suposiciones similares y tienen
simetra
2. Ambas convergen en forma sper lineal y terminan en n pasos en forma
cuadrtica
3. En general BFGS es ms estable y tiene un mejor desempeo que DFP
4. Para n 100 , estos son los mejores mtodos sino se tienen las expresiones
de las segundas derivadas parciales
Fuentes para software:
Harwell (HSL)
IMSL
NAG Cdigos de optimizacin sin restricciones
Netlib (www.netlib.org)
MINPACK
TOMS ALGORITHMS
Mathwoks (rutina fminunc de MATLAB)
Ingeniera de Procesos Martn Rivera Toledo 20/101
2.2 Tcnicas de optimizacin para sistemas con restricciones
El problema de la optimizacin con restricciones puede resolverse mediante los
mtodos siguientes:
1. Mtodos duales: Resuelven el problema dual en lugar del problema primal.
2. Mtodos de penalizacin: Transforman el problema restringido en uno nuevo en el
que las restricciones se incorporan a la funcin objetivo por medio de una seleccin
adecuada de parmetros de penalizacin. Estos algoritmos transforman el problema
restringido en una sucesin de problemas sin restricciones.
3. Mtodos de linealizacin parcial: Extienden los algoritmos de direccin descendente
al caso de restricciones. Ahora se fuerza a que las direcciones sean admisibles.
4. Mtodo de los multiplicadores o del lagrangiano aumentado: Son mtodos de
penalizacin cuadrtica que usan el lagrangiano aumentado como funcin objetivo.
5. Mtodos de programacin secuencial cuadrtica: Resuelven una secuencia de
problemas de programacin cuadrtica que aproximan el problema original. Cuanto
mayor sea el nmero de iteraciones, mayor ser la aproximacin obtenida.
Ingeniera de Procesos Martn Rivera Toledo 21/101
Mtodos de penalizacin. (Mtodo del punto exterior)
Los mtodos de penalizacin transforman el problema restringido original en una
secuencia de problemas sin restringir mediante funciones de penalizacin. La idea de
convertirlos en problemas no restringidos es muy atractiva, debido a que stos se
resuelven muy fcil y eficientemente. Puesto que todos los mtodos tratan las
igualdades de la misma forma, stos se clasifican por la forma de tratar las
desigualdades. Hay dos tipos de mtodos:
1. Mtodos del punto exterior. La secuencia de soluciones de los problemas sin
restricciones contiene slo puntos no factibles (exteriores a la regin factible).
2. Mtodos del punto interior o mtodos de barrera. La secuencia de soluciones de los
problemas sin restricciones contiene slo puntos factibles (interiores a la regin
factible). Un caso particular interesante es el mtodo del punto interior que se
describir posteriormente.
Mtodo del punto exterior
En el mtodo del punto exterior la penalizacin impuesta al punto x aumenta cuando
ste se desva de la regin factible. De nuevo, al actualizar los parmetros de
penalizacin, la sucesin correspondiente de puntos mnimos de los problemas
penalizados converge a la solucin ptima del problema inicial. En este caso los
puntos de la sucesin estn fuera de la regin factible.
Ingeniera de Procesos Martn Rivera Toledo 22/101
Considrese el problema:
Ingeniera de Procesos Martn Rivera Toledo 23/101
Algoritmo
0. Estimado inicial x
0
, definir r
1
>0, k=1, la tolerancia y n>0
1. Resolver el subproblema de optimizacin
cuya solucin es x
k
2. Aplicar el criterio de paro, si el error es menor que la toleracia, se termina el
proceso de clculo, de lo contrario ir al paso 3
3. incrementar r
k+1
= n r
k
, el contador k=k+1 e ir al paso 1
Ejemplo
Aplique el mtodo del punto exterior para
Minimizar Z = (x
1
- 6)
2
+ (x
2
17/2)
2
Sujeto a la restriccin de igualdad x
1
2
- x
2
= 0:
Con los parmetros siguientes: x0=(0,0), r1 = 0.001, n=10 y |=1 & 2
Ingeniera de Procesos Martn Rivera Toledo 24/101
3. El enfoque de programacin matemtica como herramienta
Procedimiento y fundamentos
a. Postular una superestructura de alternativas de esquemas de proceso
b. Formular el modelo de optimizacin para la superestructura
c. Resolver el modelo de optimizacin para determinar el esquema ptimo
Ingeniera de Procesos Martn Rivera Toledo 25/101
Ingeniera de Procesos Martn Rivera Toledo 26/101
Ingeniera de Procesos Martn Rivera Toledo 27/101
Superestructuras
Se basan en el conocimiento sobre los procesos, heursticas y objetivos termodinmicos
d. Sistemas homogneos
Se pueden desarrollar representaciones sistemticas para
i. Redes de intercambiadores de calor
ii. Secuencias de separacin
iii. Plantas de servicios auxiliares
e. Sistemas heterogneos
Son esquemas generales, cuyas alternativas, deben ser
especificadas por el diseador
Se propone un proceso con
i. Recirculaciones
Ingeniera de Procesos Martn Rivera Toledo 28/101
ii. Dos alternativas de reactores
iii. Posibilidad del uso de una membrana de separacin para la purga
iv. Dos posibles alimentaciones de materia prima
Ingeniera de Procesos Martn Rivera Toledo 29/101
4. Ejemplos
Ejemplo 1.
Se desea calcular el trabajo mnimo del sistema de compresin de metano desde 15 Psia y
70F hasta 1000 Psia para un sistema de tres etapas, indique los valores de las presiones
intermedias P2 y P3.
Datos:
= 1.32 R= 10.731 Psia ft3/ lbmol R
Solucin
Para obtener el trabajo mnimo se deber de minimizar la funcin objetivo siguiente
( )
|
|
.
|
\
|
+
|
|
.
|
\
|
+
|
|
.
|
\
|
=
3
1
1
3
4
1
2
3
1
1
2
P
P
P
P
P
P
M
RT
Wt
Ingeniera de Procesos Martn Rivera Toledo 30/101
Ejemplo 2.
Una compaa desea producir el qumico C a partir de los procesos II o III (son
excluyentes), ambos utilizan al qumico B como materia prima. B se puede comprar a producir
por medio del proceso I. Para las especificaciones indicadas en la tabla siguiente, formule el
problema de programacin lineal mixto entero para decidir
a. Qu proceso se construye (II o III)?
b. Cmo se obtiene el qumico B?
c. Qu cantidad deber producirse del qumico C?
El objetivo es maximizar las ganancias
Considere que la demanda mxima de C es de 15 ton/hr con un precio de venta de $1800 / ton
Proceso Costo fijo
[$/h]
Costo de procesado
[$/ton materia prima]
Conversin
I 1000 250 90% A B
II 1500 400 82% B C
III 2000 550 95% B C
El precio de compra para la materia prima es de [$/TON]: 500 (A) Y 950 (B)
La capacidad mxima de alimentacin del qumico A es de 16 ton/h
Ingeniera de Procesos Martn Rivera Toledo 31/101
Ejemplo 3
La reaccin qumica consecutiva en fase lquida siguiente
k
1
k
2
C B A
se lleva a cabo en un reactor por lotes de 500 dm
3
. La concentracin inicial de A es de 1.6
mol/dm
3
. El producto deseado es B y la separacin del producto no deseado C es muy difcil y
costosa. Dado que la reaccin se efecta a una temperatura relativamente alta, la reaccin se
puede extinguir fcilmente.
Informacin adicional:
Costo del reactivo A puro: $10 / mol A
Precio de venta de B puro: $50 / mol B
Costo de separar A de B: $50 / mol de A
Costo de separar C de B: $30 [exp(0.5Cc)-1]
k1=0.4 h
-1
k2 =0.01h
-1
a 100C
Suponiendo que todas las reacciones son irreversibles, escriba y resuelva el modelo para el
tiempo de reaccin que maximice la ganancia
Ingeniera de Procesos Martn Rivera Toledo 32/101
Solucin
Modelo
| | 1) - 30(e + V 50C + V 10C 50 max
C
0.5C
A A0
= V C G
B
sujeta a las restricciones
=
=
1 2
1 2
0
1 2
0 1
0
2 1
2 1
1
1
k k
e k e k
C C
e e
k k
C k
C
e C C
t k t k
A C
t k t k
A
B
t k
A A
tiempo optimo de operacin 11.1953 horas
ganancia: 27,762.15 $/carga
primera derivada: 0.000364 $/(carga-h)
segunda derivada: 143.136857 $/(carga-h^2)
Ingeniera de Procesos Martn Rivera Toledo 33/101
Ingeniera de Procesos Martn Rivera Toledo 34/101
5. Sntesis de secuencias de separacin
Suposiciones
a. Se tienen columnas simples
b. Las unidades operan a presin constante
c. Son de alta recuperacin (~100%)
El problema puede ser analizado en trminos del flujo total, por ejemplo, para una alimentacin
de cuatro componentes, su representacin estar dada de la forma siguiente
a. Para una columna inicial
b. Para una columna intermedia
Ingeniera de Procesos Martn Rivera Toledo 35/101
La representacin de la superestructura para este caso es la siguiente, considerando que F
i
es el flujo de entrada a la columna i
Los
balances de
masa en los
nodos:
Inicial
F
1
+ F
2
+ F
3
= F
T
Intermedio
F
4
+ F
5
= 0.8 F
1
Intermedio
F
8
= 0.5 F
4
+ 0.4 F
2
Para los balances de energa, las cargas trmicas se
considerarn como lineales en funcin de los flujos, es
decir para un condensador Q
C
= AH
C
F & rehervidor,
generalmente Q
R
= AH
R
F,
El costo de la columna se evala como C = oy + | F
Ingeniera de Procesos Martn Rivera Toledo 36/101
6. Sntesis de redes de intercambio de calor
La metodologa se basa en la combinacin de los mtodos heursticos con la programacin
matemtica para determinar:
a. El costo o consumo mnimo de servicios (vapor de calentamiento, agua de enfriamiento) a
travs de la formulacin del problema de transbordo (programacin lineal)
b. La combinacin entre corrientes calientes y fras para un conjunto de servicios
especificados a travs de la formulacin del problema de transbordo (programacin lineal
mixta entera)
c. La configuracin de la red para un conjunto de servicios especificados y la combinacin de
las corrientes (programacin no lineal)
Tcnicas
1. Sntesis secuencial. Simplicidad para resolver un conjunto de subproblemas
a. costo mnimo de servicios
b. Costo mnimo de servicios con restricciones en las combinaciones de las corrientes
c. Prediccin de combinaciones para minimizar el nmero de unidades
2. Modelos simultneos de MINLP. Incrementa la posibilidad de encontrar soluciones mejores,
sin embargo se incrementan los requerimientos de clculo
Sntesis secuencial
Ingeniera de Procesos Martn Rivera Toledo 37/101
Modelo condensado del transbordo (Papoulias & Grossmann -1983-)
= =
+ =
to enfriamien
de servicios No.
1
nto calentamie
de servicios No.
1
min
n
w
n n
m
s
m m
Q C Q C Z
sujeta a las restricciones
intervalos ,..., 2 , 1
k intervalo
el en frias
corrientes No.
1
k intervalo el
en calientes
corrientes No.
1
k intervalo el
en to enfriamien
de servicios No.
1
k intervalo el
en nto calentamie
de servicios No.
1
1
K k
Q Q Q Q R R
j
C
jk
i
H
ik
n
w
n
m
s
m k k
=
= +
= = = =
y las restricciones inherentes
0 & , 0
intervalos 1 ,..., 2 , 1 , 0 , 0 , 0
0
= =
= > > >
k
k
w
n
s
m
R R
K k R Q Q
Ingeniera de Procesos Martn Rivera Toledo 38/101
Modelo expandido del transbordo (Papoulias & Grossmann -1983-)
= =
+ =
k intervalo el
en to enfriamien
de Servicios No.
1
k intervalo el
en nto calentamie
de Servicios No.
1
min
n
w
n n
m
s
m m
Q C Q C Z
Ingeniera de Procesos Martn Rivera Toledo 39/101
sujeta a las restricciones de balance de energa para:
a. Las corrientes calientes
k intervalo el en calientes corrientes 1,2,...No. i =
b. Los servicios de calentamiento
k ervalo el en nto calentamie de servicios m int # ,..., 2 , 1 =
c. Las corrientes fras
k el en frias corrientes intervalo # ,..., 2 , 1 j =
k intervalo el
en to enfriamien
de Servicios No.
1
k intervalo
el en fras
Corrientes No.
1
1
H
ik
n
ink
j
ijk ik ik
Q Q Q R R = + +
= =
0
k intervalo
el en fras
Corrientes No.
1
1
= +
=
S
m
j
mjk mk mk
Q Q R R
k intervalo el
en nto calentamie
de Servicios No.
1
k intervalo
el en Calientes
Corrientes No.
1
C
jk
m
mjk
i
ijk
Q Q Q = +
= =
Ingeniera de Procesos Martn Rivera Toledo 40/101
d. Los servicios de enfriamiento
0
k intervalo
el en Calientes
Corrientes No.
1
=
= i
w
n ink
Q Q
k el en to enfriamien de servicios intervalo # ,..., 2 , 1 n =
todo esto para k = 1,2,...K intervalos y las restricciones inherentes
0 & , 0
0 , , , , , ,
0
= =
>
ik i
mjk ink ijk mk ik
w
n
s
m
R R
Q Q Q R R Q Q
Prediccin de combinaciones para el nmero mnimo de unidades
Para la formulacin del modelo para la minimizacin del
nmero de unidades es necesario definir el conjunto de
variables binarias como sigue
=
q regin la en j corriente la con calor a intercambi no i corriente la si 0
q regin la en j corriente la con calor a intercambi i corriente la si 1
q
ij
Y
as que el problema a resolver es
Ingeniera de Procesos Martn Rivera Toledo 41/101
= =
=
calientes
corrientes No
i
frias
corrientes No
j
q
ij
Y Z
.
1
.
1
min
sujeta a las restricciones de balance de energa en cada uno de los intervalos, como en el caso
del modelo del transbordo expandido, pero adems se tendrn que incluir las restricciones
lgicas siguientes
) , min( con
q region la
en j & i
int .
1
C
j
H
i
para
n combinacio
ervalode No
k
q
ij ij ijk
Q Q Uij Y U Q = s
=
Ingeniera de Procesos Martn Rivera Toledo 42/101
6. Ejemplos
Ejemplo 4.
Bosqueje la superestructura para la separacin de cuatro componentes A, B, C & D y formule el
problema de MILP para minimizar el costo total para
a. La mejor secuencia
b. La segunda mejor secuencia
c. La peor secuencia
Considere que la alimentacin es de 1000 kgmol / h con una fraccin de 0.15 de A, 0.30 de B,
0.35 de C & 0.20 de D y los datos econmicos y de carga trmica se encuentran en la tabla
siguiente
COSTO
FIJO
COSTO
VARIABLE
COEFICIENTE DE
CARGA TERMICA
k Separador o
k
[10
3
$/ao]
|
k
[10
3
$ h / kgmol
ao]
k
k
[10
6
kJ / kgmol ]
1 A/BCD 145 0.42 0.028
2 AB/CD 52 0.12 0.042
3 ABC/D 76 0.25 0.054
6 A/BC 125 0.78 0.024
Ingeniera de Procesos Martn Rivera Toledo 43/101
7 AB/C 44 0.11 0.039
4 B/CD 38 0.14 0.040
5 BC/D 66 0.21 0.047
10 A/B 112 0.39 0.022
9 B/C 37 0.08 0.036
8 C/D 58 0.19 0.044
Costos de servicios: Agua de enfriamiento
ao
h
kJ
10
1300 $
C
6
C
= Vapor de calentamiento
ao
h
kJ
10
4000 3 $
C
6
H
=
As que el costo especfico total de servicios es C
HC
= C
C
+ C
H
Solucin
1. Superestructura
Ingeniera de Procesos Martn Rivera Toledo 44/101
2. Definicin de variables y formulacin de la funcin objetivo
V F T
C C C + = min
en donde C
T
: Costo total [=] $/ao
C
F
: Costo fijo [=] $/ao
Ingeniera de Procesos Martn Rivera Toledo 45/101
C
V
: Costo Variable = Costo Procesado + Costo Energtico
Los cuales se pueden expresar como
=
=
10
1 i
i i F
y C o
[ = ] $ / ao
=
=
10
1 i
i i p
F C |
=
=
10
1 i
T HC E
Q C C
=
=
10
1 i
i T
Q Q
i i i
F K Q =
3. Formulacin de las restricciones
La funcin objetivo est sujeta a las restricciones de balance de energa, masa y de exclusin
siguientes
Balances de masa
Balances de energa
Exclusin
Ingeniera de Procesos Martn Rivera Toledo 46/101
1 5 4
0.85F F F = +
3 7 6
0.8F F F = +
7 2 10
0.563F 0.45F F + =
6 5 9
0.812F 0.765F F + =
4 2 8
0.647F 0.55F F + =
1000 F F F
3 2 1
= + +
1 1
0.028F Q =
2 2
0.042F Q =
3 3
0.054F Q =
4 4
0.040F Q =
5 5
0.047F Q =
6 6
0.024F Q =
7 7
0.039F Q =
8 8
0.044F Q =
9 9
0.036F Q =
10 10
0.022F Q =
10 9 8 7 6 5 4 3 2 1 T
Q Q Q Q Q Q Q Q Q Q Q + + + + + + + + + =
1 1
000 1 F y s
2 2
000 1 F y s
3 3
000 1 F y s
4 4
000 1 F y s
5 5
000 1 F y s
6 6
000 1 F y s
7 7
000 1 F y s
8 8
000 1 F y s
9 9
000 1 F y s
10 10
000 1 F y s
Ingeniera de Procesos Martn Rivera Toledo 47/101
a)mejor solucin
b) segunda mejor solucin
c) tercera mejor solucin
d) la peor solucin
Ingeniera de Procesos Martn Rivera Toledo 48/101
Ejemplo 5
Se desea calcular el costo mnimo para el consumo de servicios considerando un acercamiento
mnimo de 20 C para el conjunto de corrientes calientes y fras siguiente
Corrientes FCp
[MW/C]
T
ENT
[C]
T
SAL
[C]
H1 1.0 400 120
H2 2.0 340 120
C1 1.5 160 400
C2 1.3 100 250
Los costos especficos para el vapor de calentamiento y
el agua de enfriamiento son de $80/kw-ao y $20/kw-
ao, respectivamente
Reporte
a. La temperatura(s) del punto
de pliegue
b. El consumo de servicios
c. El costo total
Solucin
El resultado del clculo del balance de energa para
cada uno de los intervalos es el siguiente
Intervalo
k
AT
[C]
Q
H1
[MW]
Q
H2
[MW]
Q
C1
[MW]
Q
C2
[MW]
AQ
[MW]
1 20 0 0 30 0 -30
2 60 60 0 90 0 -30
3 70 70 140 105 0 105
4 90 90 180 135 117 18
5 60 60 120 0 78 102
Ingeniera de Procesos Martn Rivera Toledo 49/101
La representacin en una cascada de calor se muestra a continuacin
Ingeniera de Procesos Martn Rivera Toledo 50/101
El modelo de programacin matemtica dado por el problema de transbordo es
Max Z = 80 000 Qs + 20 000 Qw [=] $/ao
Sujeta a los balances de energa en los intervalos
1: R
1
+ Qs = 30 [=] MW
2: R
2
R
1
= 60 90 [=] MW
3: R
3
R
2
= 70 + 140 105 [=] MW
4: R
4
R
3
= 90 + 180 135 117 [=] MW
5: Qw R4 = 60 + 120 78 [=] MW
y se debe considerar que
Qs, Qw, R
1
, R
2
, R
3
& R
4
> 0
Lo solucin se resume a que el costo de servicios es de $ 9.3 millones /ao con un
consumo de servicios de calentamiento de 60 MW y de enfriamiento de 225 MW y el punto de
pliegue se encuentra en 340C - 320C
Ingeniera de Procesos Martn Rivera Toledo 51/101
Ejemplo 6
a. Trace la superestructura del ejemplo 5 para la formulacin del problema de transbordo expandido para
las combinaciones de las corrientes indicadas en la tabla,
b. Resuelva el problema de transbordo expandido para la minimizacin del costo de servicios
La superestructura es la siguiente
El problema de transbordo correspondiente
es
Min z = 80000 Qs + 20000 Qw
Sujeta a las restricciones de balance de
energa en los intervalos
1: bes1: Rs1 + Qs11 = Qs
bec11 : Qs11 = 30 MW
2: bes2 : Rs2 Rs1 + Qs12 = 0
beh12 : R12 + Q112 = 60 MW
bec12: Q12 + Q112 = 90 MW
punto de pliegue: R12 = 0 & Rs2 = 0
3: beh13 : R13 R12 + Q113 = 70 MW
beh23: R23 + Q213 = 140 MW
bec13: Q113 + Q213 = 105 MW
4: beh14 : R14 R13 + Q114 + Q124 = 90 MW
beh24 : R24 R23 +Q214 + Q224 = 180 MW
bec14 : Q114 + Q214 = 135 MW
bec24 : Q124 + Q224 = 117 MW
5: beh15 : -R14 + Q125 + Q1w5 = 60 MW
beh25: -R24 + Q225 + Q2w5 = 120 MW
bec25: Q125 + Q225 = 78 MW
bew5 : Q1w5 + Q2w5 = Qw
considerando que
Rik, Rsk, Qijk, Qsjk, Qiwk 0
Ingeniera de Procesos Martn Rivera Toledo 52/101
La red de intercambio de calor resultante para el modelo de transbordo expandido con la
minimizacin del consumo de servicios auxiliares es la siguiente
Figura de la red para la minimizacin del costo de servicios
auxiliares
Arreglo de la serie de cambiadores de calor para la red con el
costo mnimo de servicios auxiliares
Ingeniera de Procesos Martn Rivera Toledo 53/101
Ejemplo 7
Para el ejemplo 3, escriba y resuelva el modelo MILP para minimizar el nmero de unidades
Solucin
El problema a resolver es Min Z = Y
s1
a
+ Y
11
a
+ Y
11
b
+ Y
12
b
+ Y
1w
b
+ Y
21
b
+ Y
22
b
+ Y
2w
b
Sujeta a las restricciones de balance de energa en los intervalos, como en el ejemplo 2, y a las
lgicas siguientes
Arriba del punto de pliegue:
Qs
11
+ Qs
12
s U
s1
Y
s1
a
con Us
1
= min (Qs, Q
1
C
) = min (60,120)MW, Us1 = 60 MW
Q
112
s U
11
Y
11
a
con U
11
= min (Q
1
H
, Q
1
C
) = min (60,120)MW, U
11
= 60 MW
Abajo del punto de pliegue
Q
113
+ Q
114
s U
11
Y
11
b
con U
11
= min (Q
1
H
, Q
1
C
) = min (220,240)MW, U
11
= 220 MW
Q
124
+ Q
125
s U12 Y
12
b
con U
12
= min (Q
1
H
, Q
2
C
) = min (220,195)MW, U
12
= 195 MW
Q
1w5
s U
1w
Y
1w
b
con U
1w
= min (Q
1
H
, Q
w
) = min (220,225)MW, U
1w
= 220 MW
Q
213
+ Q
214
s U
21
Y
21
b
con U
21
= min (Q
2
H
, Q
1
C
) = min (440,240)MW, U
21
= 240 MW
Q
224
+ Q
225
s U
22
Y
22
b
con U
22
= min (Q
2
H
, Q
2
C
) = min (440,195)MW, U
22
= 195 MW
Ingeniera de Procesos Martn Rivera Toledo 54/101
Q
2w5
s U
2w
Y
2w
b
con U
2w
= min (Q
2
H
, Q
w
) = min (440,225)MW, U
2w
= 225 MW
La red de intercambio de calor resultante para el modelo de transbordo expandido con la
minimizacin del nmero de unidades es la siguiente
Figura de la red para la minimizacin del nmero de unidades
Arreglo de la serie de cambiadores de calor para la red
con el nmero mnimo de unidades
Ingeniera de Procesos Martn Rivera Toledo 55/101
Solucin obtenida con diferentes algoritmos
XPRESS CPLEX MINOS XA CPLEX
z: 9300000 9300000 9300000 9300000 z: 6
Qs11: 30 30 30 30 Qs11: 30
Rs1: 30 30 30 30 Rs1: 30
Qs12: 30 30 30 30 Qs12: 30
Q112: 60 60 60 60 Q112: 60
Rs2: 0 0 0 0 Rs2: 0
R12: 0 0 0 0 R12: 0
Q113: 70 70 0 7 Q113: 0
Q213: 35 35 105 98 Q213: 105
R13: 0 0 70 63 R13: 70
R23: 105 105 35 42 R23: 35
Q114: 90 0 0 135 Q114: 0
Q124: 0 0 37 0 Q124: 117
Q224: 117 117 80 117 Q224: 0
R14: 0 90 123 18 R14: 43
R24: 123 33 0 105 R24: 80
Q125: 60 0 0 78 Q125: 78
Q225: 18 78 78 0 Q225: 0
Q1w5: 0 150 183 0 Q1w5: 25
Q2w5: 225 75 42 225 Q2w5: 200
Ys1a: 1
Y11a: 1
Y11b: 0
Y12b: 1
Y1wb: 1
Y21b: 1
Y22b: 0
Ingeniera de Procesos Martn Rivera Toledo 56/101
Y2wb: 1
5. Problemas
I. Para el conjunto de ecuaciones siguiente calcule el ptimo
1. max f(x) = x
3
9/2 x
2
+ 6x +20
2. min f(x) =3x
1
+2x
2
-3x
1
x
2
-4x
1
2
-5x
2
2
3. min f(x) =2x
1
2
+3x
2
2
sujeta a
x
1
+2x
2
=5
4. max f(x)= 6x
1
+2x
2
sujeta a
2x
1
+x
2
s8
4x
1
+x
2
s10 con x1,x2>0
5. min f(x)=x1^2+x2^2+x3^2
sujeta a las restricciones siguientes
g1(x)=2x1+x2<=5
g2(x)=X1+X3<=2
g3(X)=x1+2x2+x3<=10
h1(x)=2x1-2x2+x3=-2
h2(x)=10x1+8x2-14x3=26
h3(x)=-4x1+5x2-6x3=6
x1>=1 x2>=2 x3>=0
con un estimado inicial de
x0=[1 1 1]
II. [Redes de intercambio de calor] Reporte:
a. El costo mnimo de la red, b. La(s) temperatura(s) del(os) punto(s) de pliegue, c. Las curvas
compuestas caliente y fra, d. El rea de transferencia y e. La red de intercambio
caso1.
AT
MIN
=10
K
FCp
[kW/K]
T
entrada
[K]
T
salida
[K]
Servicio Costo
[$/kW-ao]
H1 10 450 270 S
HP
[500 K] 80
C1 5 360 480 S
LP
[420 K] 20
Ingeniera de Procesos Martn Rivera Toledo 57/101
C2 5 300 400 C
W
[300 K] 60
C3 4 300 400 R
efrig
[260 K] 100
Caso 2.
AT
MIN
=10K
FCp
[kW/K]
T
entrada
[K]
T
salida
[K]
Servicio Costo
[$X10
-6
/kJ]
Mximo Disponible
[kW]
H1 20 700 420 Fuel 5
H2 40 600 310 S
HP
[500K] 3 1000
H3 70 460 310 S
LP
[420K] 1.8 500
H4 94 360 310 C
W
[300 K] 7
C1 50 350 650
C2 180 300 400
Coeficiente global de transferencia de calor
U
serviciocalentamiento
= 0.3505 kW/m
2
K U
servicioenfriamiento
= 0.2629 kW/m
2
K
U
proceso-proceso
= 0.2629 kW/m
2
K
Costo de los cambiadores de calor: ) $, ( 3 . 1456
2 6 . 0
m A Cp =
Tiempo de operacin: 8500 hr/ao Rapidez de retorno = 0.1
Ingeniera de Procesos Martn Rivera Toledo 58/101
IIII. [Secuencias de separacin] Calcule la secuencia de separacin con el costo mnimo, la
segunda mejor, la tercera mejor y la peor
Separador
nico
Costo
[$/ao]
A/B 26,100
B/C 94,900
C/D 59,300
A/BC 39,500
AB/C 119,800
B/CD 112,600
BC/D 76,800
A/BCD 47,100
AB/CD 140,500
ABC/D 94,500
la alimentacin al sistema de separacion es la siguiente:
propano:100, iso-butano: 300, n-butano:500, iso-pentano: 400, todos estos valores estn
expresados en lbmol/h
Ingeniera de Procesos Martn Rivera Toledo 59/101
Optimizacin dinmica de procesos
Ing. Martn Rivera Toledo
Contenido
1. Introduccin
2. Ejemplos
3. Referencias
1. Introduccin
Ingeniera de Procesos Martn Rivera Toledo 60/101
2. Problemas
Problema 1
Considere el problema de control dado por el modelo siguiente. Suponga que la temperatura es funcin de la
funcin del tiempo.
0 ) 0 ( , ) ( ) (
1 ) 0 ( , ) (
. .
) 0 . 1 (
2 2 2
2
1 1
2
1
2
1 1
1
2
= = =
= = =
=
t C C T k C T k
dt
dC
t C C T k
dt
dC
a sujeto
t MaxC
f
donde
|
.
|
\
|
=
|
.
|
\
|
=
T
k
T
k
5000
exp 62000 ,
2500
exp 4000
2 1 y
K t T 398 ) ( 298 s s
Cul ser la trayectoria de calentamiento para lograr obtener la mxima concentracin de C2 al tiempo final
de operacin?
Nota: no es necesario incluir las ecuaciones del balance de energa.
Ingeniera de Procesos Martn Rivera Toledo 61/101
Condiciones de optimalidad para el problema de control son:
Hamiltoniano
| |
=
2 2
2
1 1
2
1 1
2 1
C k C k
C k
H
=
2 2 2
2
1 1 1 2 2 2 2
2
1 2 1
2
1 1 1
) ( C k C k C k C k C k = +
Donde las variables adjuntas
2 1
, estn dadas por
1 1 1 2
1
1
) ( 2 C k
C
H
dt
d
=
c
c
=
&
2 2
2
2
k
C
H
dt
d
=
c
c
=
Y sus condiciones finales son
0
) 0 . 1 (
) 0 . 1 (
1
2
1
=
c
c
=
C
C
y
0 ) 0 . 1 (
1
=
As como
1
) 0 . 1 (
) 0 . 1 (
2
2
2
=
c
c
=
C
C
y
1 ) 0 . 1 (
2
=
Y el gradiente
T
H
c
c
es
0 ) (
2
2 2
1
2
1 1 2
=
c
c
c
c
=
c
c
T
k
C
T
k
C
T
H
con
T
e k
2500
1
4000
=
y
T
e k
5000
2
62000
=
Ingeniera de Procesos Martn Rivera Toledo 62/101
entonces
0
5000 * 62000 500 * 4000
) (
5000
2
2 2
2500
2
2
1 1 2
=
2
=
c
c
T T
e
T
C e
T
C
T
H
Tabla de resultados del problema de optimizacin de un reactor por lotes
Caso Nt Cb
max
Iteraciones: No. Eval. de
la funcin
objetivo
Funcin
objetivo
Valor mx.
de las
restricciones
Tamao
de
paso:
Magnitud
deriv.
direccional
a 69 0.7275 320 65805 -0.727507 1.177e-010 1 -1.82e-006
b 19 0.7860 90 5005 -0.785990 2.707e-011 1 -1.48e-006
c 19 0.7795 81 4510 -0.779482 1.704e-012 1 -2.57e-007
d 19 0.7766 5 330 -0.776645 1.801e-012 1 -2.55e-007
(a)
(b)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
0.5
1
time
C
o
n
c
e
n
t
r
a
t
i
o
n
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
250
300
350
400
time
T
e
m
p
e
r
a
t
u
r
e
[
K
]
C
a
C
b
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
0.5
1
time
C
o
n
c
e
n
t
r
a
t
i
o
n
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
320
340
360
380
400
time
T
e
m
p
e
r
a
t
u
r
e
[
K
]
C
a
C
b
Ingeniera de Procesos Martn Rivera Toledo 63/101
(c)
(d)
Figura 1. Trayectoria dinmica de las concentraciones de las especies A (), B () y la temperatura ( )
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
0.5
1
time
C
o
n
c
e
n
t
r
a
t
i
o
n
C
a
C
b
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
320
340
360
380
400
time
T
e
m
p
e
r
a
t
u
r
e
[
K
]
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
0.5
1
time
C
o
n
c
e
n
t
r
a
t
i
o
n
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
250
300
350
400
time
T
e
m
p
e
r
a
t
u
r
e
[
K
]
C
a
C
b
Ingeniera de Procesos Martn Rivera Toledo 64/101
Problema 2
Terrazas, S & Flores, A. enviado para publicacin en AIChE Journal (2007)
Ingeniera de Procesos Martn Rivera Toledo 65/101
Ingeniera de Procesos Martn Rivera Toledo 66/101
Ingeniera de Procesos Martn Rivera Toledo 67/101
Ingeniera de Procesos Martn Rivera Toledo 68/101
Ingeniera de Procesos Martn Rivera Toledo 69/101
(a)
(b)
Ingeniera de Procesos Martn Rivera Toledo 70/101
Ingeniera de Procesos Martn Rivera Toledo 71/101
Problema 3.
Proceso de produccin de placas de acrlico
Horno de conveccin
Ingeniera de Procesos Martn Rivera Toledo 72/101
Volumen de control para el balance de energa
Modelo de optmizacin dinmica
( )
t
t
0
2
min d T T
d
Ta
Sujeta a las restricciones de balance de energa
Y las condiciones iniciales y de frontera
Modelo resuelto al aplicar el enfoque simultneo con
discretizacin temporal con el mtodo de colocacin
ortogonal sobre elementos finitos y mtodo de lneas
para la posicin. El problema NLP se resolvi con
CONOPT (GAMS)
Ingeniera de Procesos Martn Rivera Toledo 73/101
Perfil ptimo de calentamiento para la placa de acrlico
temperatura del aire, temperature optima, temperatura poltica simple
0 0.5 1 1.5
20
30
40
50
60
70
80
t [ dimensionless ]
T
[
C
]
Ingeniera de Procesos Martn Rivera Toledo 74/101
3. Referencias
Ingeniera de Procesos Martn Rivera Toledo 75/101
6. Cdigos (GAMS) para la resolucin de los ejemplos.
Solucin del ejemplo1
Modelo
| | 1) - 30(e + V 50C + V 10C 50 max
C
0.5C
A A0
= V C G
B
sujeta a las restricciones
=
=
1 2
1 2
0
1 2
0 1
0
2 1
2 1
1
1
k k
e k e k
C C
e e
k k
C k
C
e C C
t k t k
A C
t k t k
A
B
t k
A A
el cdigo en GAMS para resolver esto es
* inicio del archivo abcprofit.gms
* modelo para la maximizacion de la ganancia
* para un sistema de reaccion consecutiva
* A -> B -> C en un reactor por lotes
$ TITLE abcprofit
$ OFFSYMXREF
$ OFFSYMLIST
OPTION LIMROW=0;
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 76/101
OPTION LIMCOL=0;
* declaracion de las variables del problema
positive variables Ca, Cb, Cc, t, ra, rb, rc;
* declaracion de la varibale de la funcion objetivo
free variable G;
* declaracion del conjunto de ecuaciones del modelo
equations obj, EcCa, EcCb, EcCc;
* declaracion de las expresiones de las ecuaciones
* expresion de la funcion objetivo G [=] $ / lote
obj.. G =e= 500*50*Cb - (500*10*1.6 + 500*50*Ca + 30*(exp(0.5*Cc)-1));
* expresiones para las concentraciones
EcCa.. Ca =e= 1.6*exp(-0.4*t);
EcCb.. Cb =e= 0.4*1.6*(exp(-0.4*t)-exp(-0.01*t))/(0.01-0.4);
EcCc.. Cc =e= 1.6*(1-(0.01*exp(-0.4*t)-0.4*exp(-0.01*t))/(0.01-0.4));
* asignacion del nombre al problema
model abcprofit /all/;
* declaracion de solucion del problema
solve abcprofit using NLP maximizing G;
*fin de la codificacion del archivo abcprofit gms
Con solucin
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 77/101
LOWER LEVEL UPPER
VAR Ca . 0.018 +INF
VAR Cb . 1.449 +INF
VAR Cc . 0.133 +INF
VAR t . 11.202 +INF [ = ] horas
VAR G -INF 27758.374 +INF [ = ] $/carga
a. Ejemplo de codificacin para la solucion del problema 8.26 del libro de Himmelblau (2001)
*****************************************************************************
$ TITLE problema 8 26
$ OFFSYMXREF
$ OFFSYMLIST
OPTION LIMROW=0;
OPTION LIMCOL=0;
* ejemplo para resolver el problema 8 26 del libro
* declaracion de las variables del problema
positive variables x1, x2, x3 ;
* declaracion de la varibale de la funcion objetivo
free variable f;
* delcaracion del conjunto de ecuaciones del modelo
equations obj, g1, g2, g3, h1, h2, h3;
* declaracion de las expresiones de las ecuaciones
obj.. f =e= x1**2 + x2 **2 + x3 **2;
g1.. -2*x1 - x2 =g= -5;
g2 .. -x1 - x3 =g= -2;
g3.. -x1 - 2*x2 - x3 =g= -10;
h1.. 2*x1 - 2*x2 + x3 =e= -2;
h2.. 10*x1 + 8*x2 - 14*x3 =e= 26;
h3.. -4*x1 + 5*x2 - 6*x3 =e= 6;
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 78/101
* declaracion de los limites de las variables
x1.l = 1.;
x2.l = 2.;
x3.l = 0.;
* asignacion del nombre al problema
model p826 /all/;
* declaracion de solucion del problema
solve p826 using NLP minimizing f;
* fin de la codificacion del archivo p826 gms
LOWER LEVEL UPPER MARGINAL
---- VAR x1 . 1.000 +INF .
---- VAR x2 . 2.000 +INF .
---- VAR x3 . . +INF .
---- VAR f -INF 5.000 +INF .
Solucin ejemplo 2 por medio de Gams
Actividades
1. Representacin esquemtica
2. Definicin de variables
3. Formulacin de la funcin objetivo
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 79/101
4. Formulacin de la serie de restricciones
5. Desarrollo o seleccin y aplicacin del algoritmo de clculo
6. Evaluacin de resultados
Qu proceso se construye (II o III)? El II
Cmo se obtiene el qumico B? Se produce a travs del proceso I
Qu cantidad deber producirse del qumico C? 10 ton/h
% inicio del archivo ehlp8_26.m
% codigo para calular el minimo de una funcion
% con restricciones correspondiente al problema
% 8.26 del libro de Edgar, Himmelblau & Lasdon
% min f(x)=x1^2+x2^2+x3^2
% sujeta a las restricciones siguientes
% g1(x)=2x1+x2<=5
% g2(x)=X1+X3<=2
% g3(X)=x1+2x2+x3<=10
% h1(x)=2x1-2x2+x3=-2
% h2(x)=10x1+8x2-14x3=26
% h3(x)=-4x1+5x2-6x3=6
% x1>=1 x2>=2 x3>=0
% con un estimado inicial de
% x0=[1 1 1]
clc; clear all; format compact;
x0=[1 1 1]; % estimado inicial
A=[2 1 0; 1 0 1; 1 2 1]; % coeficientes de las eciuaciones de
% restricciones de desigualdad
B=[5;2;10]; % termino independiente
Aeq=[2 -2 1; 10 8 -14; -4 5 -6]; % coeficientes de las restricciones de igualdad
Beq=[-2; 26; 6]; % termino independiente
Lb=[1 2 0];
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 80/101
x0=[-1 -1 -1 ]; % estimado inicial
options=optimset('LargeScale','off','Display','iter');
[x,fmin,flag,output,lambda,dfdxi,d2fdxi2]=fmincon('p8_26',x0,A,B,Aeq,Beq,Lb,[],[],options)
x1=x(1); x2=x(2); x3=x(3);
lambda_mu=eig(d2fdxi2);
fprintf('x1 = %10.4f\n',x1)
fprintf('x2 = %10.4f\n',x2)
fprintf('x3 = %10.4f\n',x3)
fprintf('fmin = %10.4f\n',fmin)
fprintf('Valores propios de la Hessiana = %f\n',lambda_mu)
% fin del archivo ehlp8_26.m
% inicio del archivo p8_26.m
function f=p8_26(x)
x1=x(1); x2=x(2); x3=x(3);
f = x1^2 + x2^2 + x3^2;
% fin del archivo p8_26.m
max Directional First-order
Iter F-count f(x) constraint Step-size derivative optimality Procedure
1 9 5 3.553e-015 1 -0.0006 23.2
2 14 5 3.553e-015 1 4.21e-015 23.2 Hessian
modified
Active Constraints: 1 2 3
x = 1.0000 2.0000 0.0000
fmin = 5.0000
flag = 1
output = iterations: 2 funcCount: 14 stepsize: 1
algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'
firstorderopt: 1.7764e-015 cgiterations: [ ]
lambda = lower: [3x1 double] upper: [3x1 double]
eqlin: [3x1 double] eqnonlin: [0x1 double]
ineqlin: [3x1 double] ineqnonlin: [0x1 double]
dfdxi =
2.0000
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 81/101
4.0000
0
d2fdxi2 =
1.3324 0.3330 0.3330
0.3330 1.3336 0.3336
0.3330 0.3336 1.3336
x1 = 1.0000
x2 = 2.0000
x3 = 0.0000
fmin = 5.0000
Valores propios de la Hessiana = 1.000000
Valores propios de la Hessiana = 1.000000
Valores propios de la Hessiana = 1.999586
Template GAMS [ regresar ]
* inicio del archivo template.gms
* archivo base para resolver problemas de optimizacion
* definicion del titulo del problema
$ TITLE nombre del problema
$ OFFSYMXREF
$ OFFSYMLIST
* se recomienda no quitar las lineas siguientes
OPTION LIMROW=0; OPTION LIMCOL=0;
* solver
option nlp = conopt;
option mip = cplex;
option rminlp = conopt2;
option minlp = dicopt;
*------------------------------------------------------
* declaracion del conjunto de variables del problema
* en estas lineas se declaran las variables positivas
*------------------------------------------------------
* free variable
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 82/101
* positive variable
* negative variable
* binary variable
*------------------------------------------------------
* declaracion del nombre de las funciones
*------------------------------------------------------
* equations
*------------------------------------------------------
* declaracion de las expresiones de las ecuaciones
*------------------------------------------------------
* ejemplo se tiene f = 2 x2 + x1
* nombre.. f =e= 2*x2 + x1;
*------------------------------------------------------
* asignacion del nombre al problema
*------------------------------------------------------
*model nombre_problema /all/;
*------------------------------------------------------
* declaracion de solucion del problema
*------------------------------------------------------
* solve nombre_problema using mip o lp o nlp minimizing o maximaxing variable;
*fin del archivo template.gms
Cdigo en Gams para la solucin del problema de optimizacin de un reactor por lotes
* inicio del archivo optimbatch.gms
* archivo base para resolver problemas de optimizacion
* definicion del titulo del problema
*=============================================
$ TITLE optimizacion de un reactor batch
*=============================================
$ OFFSYMXREF
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 83/101
$ OFFSYMLIST
$ontext Optimizacion de un reactor por lotes
Se lleva a cabo una reaccion en serie A -> B -> C en fase liquida en un
reactor por lotes de 500 dm3. La concentracion inicial de A es de 1.6 mol/dm3.
El producto deseado es B y la separacion del producto no deseado C es muy
dificil y costosa. Dado que la reaccion se efectua a una temperatura
relativamente alta, la reaccion se puede extinguir facilmente.
Informacion adicional:
Costo del reactivo A puro: $10 / mol A
Precio de venta de B puro: $50 / mol B
Costo de separar A de B: $50 / mol de A
Costo de separar C de B: $30 [exp(0.5Cc)-1]
k1 = 0.4 h^-1
k2 = 0.01 h^-1 a 100 C
$offtext
* se recomienda no quitar las lineas siguientes
OPTION LIMROW=0; OPTION LIMCOL=0;
* solver
option lp = minos;
option nlp = conopt;
option mip = cplex;
option rminlp = conopt2;
option minlp = dicopt;
$set Np 700
*=============================================
Set Np Numero de subintervalos / 0*%Np% /;
Alias (Np,i);
*=============================================
* parametros del sistema
Scalar Cmp costo quimico A /10/
Pvb precio de venta quimico B /50/
Csab costo de separacion del quimico A de B /50/
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 84/101
k1 coeficiente cinetico 1 h-1 /0.4/
k2 coeficiente cinetico 2 h-1 /0.01/
V volumen del reactor dm3/500/
Ca0 mol por dm3 /1.6/
Cb0 mol por dm3 /0/
Cc0 mol por dm3 /0/;
*------------------------------------------------------
* declaracion del conjunto de variables del problema
* en estas lineas se declaran las variables positivas
*------------------------------------------------------
free variable G ganancia usd por lote;
*=============================================
positive variable Ca(Np) mol A por dm3
Cb(Np) mol B por dm3
Cc(Np) mol C por dm3
t(Np) horas
dt horas
tf horas;
*=============================================
* negative variable
* binary variable
*------------------------------------------------------
* declaracion del nombre de las funciones
*------------------------------------------------------
equations obj, bma(Np), bmb(Np), bmc(Np), dt_time, timevec;
* ejemplo se tiene f = 2 x2 + x1
* nombre.. f =e= 2*x2 + x1;
*=============================================
* declaracion de las expresiones de las ecuaciones
*=============================================
obj.. G =e= Pvb*Cb['%Np%']*V - ( Cmp*Ca0*V + Csab*Ca['%Np%']*V +
30*( exp(Cc['%Np%']) - 1) );
bma(Np(i+1)).. Ca[i+1] =e= Ca[i]- k1*Ca[i]*dt;
bmb(Np(i+1)).. Cb[i+1] =e= Cb[i]+ (k1*Ca[i]-k2*Cb[i])*dt;
bmc(Np(i+1)).. Cc[i+1] =e= Cc[i]+ k2*Cb[i]*dt;
dt_time.. (%Np%-1)*dt =e= tf;
timevec(Np(i+1)).. t[i+1] =e= t[i] + dt;
*=============================================
* especificacion de las condiciones iniciales
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 85/101
*=============================================
Ca.fx['0']=Ca0;
Cb.fx['0']=Cb0;
Cc.fx['0']=Cc0;
*------------------------------------------------------
* asignacion del nombre al problema
*------------------------------------------------------
model reactorabc /all/;
*------------------------------------------------------
* declaracion de solucion del problema
*------------------------------------------------------
solve reactorabc using nlp maximaxing G;
*=============================================
* escritura de la serie de resultados
*=============================================
* definicion del nombre del archivo
file res /reactor.dat/;
put res;
* escritura de la serie de valores por medio del uso de un ciclo
loop (i, put @1 t.l(i) :< 7:4
@10 Ca.l(i) :<12:8
@22 Cb.l(i) :<12:8
@34 Cc.l(i) :<12:8/
);
putclose res;
* fin del archivo optimbatch.gms
Cdigo para determinar las secuencias de separacion
* inicio del archivo secuencia_separacion.gms
* archivo base para resolver problemas de optimizacion
* definicion del titulo del problema
$ TITLE secuencia de separacion
$ OFFSYMXREF
$ OFFSYMLIST
* se recomienda no quitar las lineas siguientes
OPTION LIMROW=0; OPTION LIMCOL=0;
* solver
option nlp = conopt;
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 86/101
option mip = cplex;
option rminlp = conopt2;
option minlp = dicopt;
*------------------------------------------------------
* declaracion del conjunto de variables del problema
* en estas lineas se declaran las variables positivas
*------------------------------------------------------
scalar U kgmol por hora/1000/
Ft kgmol por hora/1000/;
*
free variable Ct usd por anio;
positive variable F1,F2,F3,F4,F5,F6,F7,F8,F9,F10 kgmol por hora
Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10, Qt kJ por kgmol por hora;
* negative variable
binary variable Y1,Y2,Y3,Y4,Y5,Y6,Y7,Y8,Y9,Y10;
*------------------------------------------------------
* declaracion del nombre de las funciones
*------------------------------------------------------
equations OBJ,
BM1,BM2,BM3,BM4,BM5,BM6,
BE1,BE2,BE3,BE4,BE5,BE6,BE7,BE8,BE9,BE10,BE11,
DJ1,DJ2,DJ3,DJ4,DJ5,DJ6,DJ7,DJ8,DJ9,DJ10,
RL1,RL2,RL3,
*RL4,RL5,
RL6,RL7,RL8,RL9,RL10,RL11,RL12,
RL13 nueva restriccion para eliminar la mejor secuencia
RL14 nueva restriccion para eliminar la segunda mejor secuencia
RL15 nueva restriccion para eliminar la tercera mejor secuencia
RL11A;
*------------------------------------------------------
* declaracion de las expresiones de las ecuaciones
*------------------------------------------------------
* ejemplo se tiene f = 2 x2 + x1
* nombre.. f =e= 2*x2 + x1;
OBJ.. Ct =E= 145*Y1+52*Y2+76*Y3+38*Y4+66*Y5+125*Y6+44*Y7+58*Y8+37*Y9+112*Y10 +
0.42*F1+0.12*F2+0.25*F3+0.14*F4+0.21*F5+0.78*F6+0.11*F7+0.19*F8+0.08*F9+0.39*F10 +
35.3*Qt;
BM1.. F4 + F5 =E= 0.85*F1;
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 87/101
BM2.. F6 + F7 =E= 0.8*F3;
BM3.. F10 =E= 0.45*F2 + 0.563*F7;
BM4.. F9 =E= 0.765*F5 + 0.812*F6;
BM5.. F8 =E= 0.55*F2 + 0.647*F4;
BM6.. F1 +F2 +F3 =E= Ft;
* balances de energia
BE1.. Q1 =E= 0.028*F1;
BE2.. Q2 =E= 0.042*F2;
BE3.. Q3 =E= 0.054*F3;
BE4.. Q4 =E= 0.040*F4;
BE5.. Q5 =E= 0.047*F5;
BE6.. Q6 =E= 0.024*F6;
BE7.. Q7 =E= 0.039*F7;
BE8.. Q8 =E= 0.044*F8;
BE9.. Q9 =E= 0.036*F9;
BE10.. Q10 =E= 0.022*F10;
BE11.. Qt =E= Q1+Q2+Q3+Q4+Q5+Q6+Q7+Q8+Q9+Q10;
* disjuncion M grande
DJ1.. F1 =L= U*Y1;
DJ2.. F2 =L= U*Y2;
DJ3.. F3 =L= U*Y3;
DJ4.. F4 =L= U*Y4;
DJ5.. F5 =L= U*Y5;
DJ6.. F6 =L= U*Y6;
DJ7.. F7 =L= U*Y7;
DJ8.. F8 =L= U*Y8;
DJ9.. F9 =L= U*Y9;
DJ10.. F10 =L= U*Y10;
* restricciones logicas
RL1.. Y1 + Y2 + Y3 =E=1;
RL2.. Y4 + Y5 =E= Y1;
RL3.. Y6 + Y7 =E= Y3;
*RL4.. Y2 =G= Y3;
*RL5.. Y2 =G= Y10;
RL6.. Y2 + Y4 =E= Y8;
RL7.. Y5 + Y6 =E= Y9;
RL8.. Y2 + Y7 =E= Y10;
RL9.. Y4 + Y5 + Y6 + Y7 =L= 1;
RL10.. Y4 + Y9 =L= 1;
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 88/101
RL11.. Y9 + Y10 =L= 1;
RL11A.. Y8 + Y9 + Y10 =L= 2;
RL12.. Y1+Y2+Y3+Y4+Y5+Y6+Y7+Y8+Y9+Y10 =E= 3;
* RESTRICCION PARA ELIMINAR LA MEJOR SOLUCION
RL13.. Y2 + Y8 +Y10 =L= 2;
* RESTRICCION PARA ELIMINAR LA segunda MEJOR SOLUCION
RL14.. Y1 + Y4 +Y8 =L= 2;
* RESTRICCION PARA ELIMINAR LA tercera MEJOR SOLUCION
RL15.. Y1 + Y5 +Y9 =L= 2;
*------------------------------------------------------
* asignacion del nombre al problema
*------------------------------------------------------
model mejor /OBJ,
BM1,BM2,BM3,BM4,BM5,BM6,
BE1,BE2,BE3,BE4,BE5,BE6,BE7,BE8,BE9,BE10,BE11,
DJ1,DJ2,DJ3,DJ4,DJ5,DJ6,DJ7,DJ8,DJ9,DJ10,
RL1,RL2,RL3,
*RL4,RL5,
RL6,RL7,RL8,RL9,RL10,RL11,RL12,RL11A/;
* Ct: 3308.330 Y2= Y8= Y10=1
model peor /OBJ,
BM1,BM2,BM3,BM4,BM5,BM6,
BE1,BE2,BE3,BE4,BE5,BE6,BE7,BE8,BE9,BE10,BE11,
DJ1,DJ2,DJ3,DJ4,DJ5,DJ6,DJ7,DJ8,DJ9,DJ10,
RL1,RL2,RL3,
*RL4,RL5,
RL6,RL7,RL8,RL9,RL10,RL11,RL12,RL11A/;
* Ct: 4123.493 Y1= Y5= Y9=1
model segunda_mejor /OBJ,
BM1,BM2,BM3,BM4,BM5,BM6,
BE1,BE2,BE3,BE4,BE5,BE6,BE7,BE8,BE9,BE10,BE11,
DJ1,DJ2,DJ3,DJ4,DJ5,DJ6,DJ7,DJ8,DJ9,DJ10,
RL1,RL2,RL3,
*RL4,RL5,
RL6,RL7,RL8,RL9,RL10,RL11,RL12,RL13,RL11A/;
* Ct: 3927.273 Y1= Y4= Y8=1
model tercera_mejor /OBJ,
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 89/101
BM1,BM2,BM3,BM4,BM5,BM6,
BE1,BE2,BE3,BE4,BE5,BE6,BE7,BE8,BE9,BE10,BE11,
DJ1,DJ2,DJ3,DJ4,DJ5,DJ6,DJ7,DJ8,DJ9,DJ10,
RL1,RL2,RL3,
*RL4,RL5,
RL6,RL7,RL8,RL9,RL10,RL11,RL12,RL13,RL14,RL11A/;
* Ct: 4123.493 Y1= Y5= Y9=1
model cuarta_mejor /all/;
* Ct: 4123.493 Y1= Y5= Y9=1
*------------------------------------------------------
* declaracion de solucion del problema
*------------------------------------------------------
solve mejor using mip minimizing Ct;
solve peor using mip maximizing Ct;
solve segunda_mejor using mip minimizing Ct;
solve tercera_mejor using mip minimizing Ct;
solve cuarta_mejor using mip minimizing Ct;
*fin del archivo secuencia_separacion.gms
Cdigo en GAMS para las redes de intercambo de calor
* inicio del archivo serv_min.gms
* calculo del consumo minimo de servicios aplicando
* el metodo de transbordo expandido
$ TITLE calculo de la red de intercambio de calor para costo minimo de servicios
$ OFFSYMXREF
$ OFFSYMLIST
OPTION LIMROW=0;
OPTION LIMCOL=0;
*
*option lp = snopt;
option lp = xpress;
option nlp = conopt;
option mip = cplex;
option rminlp = conopt2;
option minlp = dicopt;
* declaracion del conjunto de variables del problema
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 90/101
positive variables Qs, Qw MW,
Qs11, Qs12, Rs1, Rs2 MW,
Q112, Q113, Q114, Q124, Q125, R12, R13, R14 MW,
Q213, Q214, Q224, Q225, R23, R24 MW,
Q1w5, Q2w5 MW;
binary variables Ys1a,Y11a,Y11b,Y12b,Y1wb,Y21b,Y22b,Y2wb;
* declaracion de la variables de la funcion objetivo z[=] $/ao
free variable z usd por anio;
* declaracion de las ecuaciones del modelo
equations obj1, obj2,
* para el intervalo 1
s1, c11,
* para el intervalo 2
s2, h12, c12,
* para el intervalo 3
h13, h23, c13,
* para el intervalo 4
h14, h24, c14, c24,
* para el intervalo 5
h15, h25, c25,w5,
* para las restricciones logicas
RL1,RL2,RL3,RL4,RL5,RL6,RL7,RL8;
* expresiones del modelo
obj1.. z =e= 80000 * Qs + 20000 * Qw;
obj2.. z =e= Ys1a + Y11a + Y11b + Y12b + Y1wb + Y21b + Y22b + Y2wb;
* balance de energia para el intervalo 1
s1.. Qs =e= Qs11 + Rs1;
c11.. Qs11 =e= 30;
* balance de energia para el intervalo 2
s2.. Rs1 =e= Qs12 + Rs2;
h12.. 60 =e= Q112 + R12;
c12.. Qs12 + Q112 =e= 90;
* punto de pliegue
*R12.l = 0;
*Rs2.l = 0;
* balance de energia para el intervalo 3
h13.. 70 + R12 =e= Q113 + R13;
h23.. 140 =e= Q213 + R23;
c13.. Q113 + Q213 =e= 105;
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 91/101
* balance de energia para el intervalo 4
h14.. R13 + 90 =e= Q114 + Q124 + R14;
h24.. R23 + 180 =e= Q214 + Q224 + R24;
c14.. Q114 + Q214 =e= 135;
c24.. Q124 + Q224 =e= 117;
* balance de energia para el intervalo 5
h15.. 60 + R14 =e= Q125 + Q1w5;
h25.. 120 + R24 =e= Q225 + Q2w5 ;
c25.. Q125 + Q225 =e= 78;
w5.. Q1w5 + Q2w5 =e= Qw;
RL1.. Qs11 + Qs12 =L= 60*Ys1a;
RL2.. Q112 =L= 60*Y11a;
RL3.. Q113 + Q114 =L= 220*Y11b;
RL4.. Q124 + Q125 =L= 195*Y12b;
RL5.. Q1w5 =L= 220*Y1wb;
RL6.. Q213 + Q214 =L= 240*Y21b;
RL7.. Q224 + Q225 =L= 195*Y22b;
RL8.. Q2w5 =L= 225*Y2wb;
* para resolver la red con el consumo minimo de servicios
model servmin /obj1,
s1, c11,
s2, h12, c12,
h13, h23, c13,
h14, h24, c14, c24,
h15, h25, c25, w5/;
* para resolver la red con el numero minimo de unidades
model unitmin/obj2,
s1, c11,
s2, h12, c12,
h13, h23, c13,
h14, h24, c14, c24,
h15, h25, c25, w5,
RL1,RL2,RL3,RL4,RL5,RL6,RL7,RL8/;
* declaracion de solucion del problema
solve servmin using lp minimizing z;
display z.l,Qs.l,Qw.l,
Qs11.l,Rs1.l,
Qs12.l,Q112.l,Rs2.l,R12.l,
Q113.l,Q213.l,R13.l,R23.l,
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 92/101
Q114.l,Q124.l,Q214.l,Q224.l,R14.l,R24.l,
Q125.l,Q225.l,
Q1w5.l,Q2w5.l;
* impresion de resultados al archivo min_utility.out
file soln1 /min_utility.out/;
put soln1;
put "z: "; put z.l; put /;
put "Qs11: "; put Qs11.l; put /;
put "Rs1: "; put Rs1.l; put /;
put "Qs12: "; put Qs12.l; put /;
put "Q112: "; put Q112.l; put /;
put "Rs2: "; put Rs2.l; put /;
put "R12: "; put R12.l; put /;
put "Q113: "; put Q113.l; put /;
put "Q213: "; put Q213.l; put /;
put "R13: "; put R13.l; put /;
put "R23: "; put R23.l; put /;
put "Q114: "; put Q114.l; put /;
put "Q124: "; put Q124.l; put /;
put "Q224: "; put Q224.l; put /;
put "R14: "; put R14.l; put /;
put "R24: "; put R24.l; put /;
put "Q125: "; put Q125.l; put /;
put "Q225: "; put Q225.l; put /;
put "Q1w5: "; put Q1w5.l; put /;
put "Q2w5: "; put Q2w5.l; put /;
*
solve unitmin using mip minimizing z;
display z.l,Qs.l,Qw.l,
Qs11.l,Rs1.l,
Qs12.l,Q112.l,Rs2.l,R12.l,
Q113.l,Q213.l,R13.l,R23.l,
Q114.l,Q124.l,Q214.l,Q224.l,R14.l,R24.l,
Q125.l,Q225.l,
Q1w5.l,Q2w5.l,
Ys1a.l,Y11a.l,Y11b.l,Y12b.l,Y1wb.l,Y21b.l,Y22b.l,Y2wb.l;
* impresion de resultados al archivo units_min.out
file soln2 /units_min.out/;
put soln2;
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 93/101
put "z: "; put z.l; put /;
put "Qs11: "; put Qs11.l; put /;
put "Rs1: "; put Rs1.l; put /;
put "Qs12: "; put Qs12.l; put /;
put "Q112: "; put Q112.l; put /;
put "Rs2: "; put Rs2.l; put /;
put "R12: "; put R12.l; put /;
put "Q113: "; put Q113.l; put /;
put "Q213: "; put Q213.l; put /;
put "R13: "; put R13.l; put /;
put "R23: "; put R23.l; put /;
put "Q114: "; put Q114.l; put /;
put "Q124: "; put Q124.l; put /;
put "Q224: "; put Q224.l; put /;
put "R14: "; put R14.l; put /;
put "R24: "; put R24.l; put /;
put "Q125: "; put Q125.l; put /;
put "Q225: "; put Q225.l; put /;
put "Q1w5: "; put Q1w5.l; put /;
put "Q2w5: "; put Q2w5.l; put /;
put "Ys1a: "; put Ys1a.l; put /;
put "Y11a: "; put Y11a.l; put /;
put "Y11b: "; put Y11b.l; put /;
put "Y12b: "; put Y12b.l; put /;
put "Y1wb: "; put Y1wb.l; put /;
put "Y21b: "; put Y21b.l; put /;
put "Y22b: "; put Y22b.l; put /;
put "Y2wb: "; put Y2wb.l; put /;
*fin del archivo serv_min.gms
4. Cdigos
GAMS
% inicio del archivo batch_dyn.m
%----------------------
function batch_dyn
%----------------------
% determinacion de la trayectoria optima de calentamiento para
% maximizar la concentracion de la especie B para la operacion
% por lotes del reactor donde se lleva a cabo la reaccion
% consecutiva A -> B -> C
%
clc; clear all; format compact;
global nt Ca0 Cb0 T0
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 94/101
nt = 20; % numero de puntos de discretizacion
tf0 = 3600; % tiempo estimado de operacion
Ca0 = 1; Cb0=0; T0 = 298.15; % valores limite inferior
Caf = 0; Cbf=1; Tf = 398.15; % valores limite superior
dCa = (Caf-Ca0)/(nt-1); % estimado de pendientes
dCb = (Cbf-Cb0)/(nt-1);
dT = (Tf-T0)/(nt-1);
Ca_var(1)=Ca0; Cb_var(1)=Cb0; T_var(1)=Tf; % valores iniciales
% calculo de estimados iniciales para la busqueda de la solucion
optima
for i=1:nt-1
Ca_var(i+1)= Ca_var(i)+ dCa; % para especie A
Cb_var(i+1)= Cb_var(i)+ dCb; % para la especie B
T_var(i+1) = T_var(i) + dT; % para la temperatura
end
var0 = [Ca_var Cb_var T_var tf0]; % vector de estimados iniciales
options=optimset('Display','iter','HessUpdate','bfgs','MaxFunEvals',1e7
,'MaxIter',1e7);
% uso de la rutina fmincon para calcular la trayectoria optima de
% calentamiento en el reactor por lotes
A=[];B=[];Aeq=[];Beq=[];LB(1:2*nt)=0;LB(2*nt+1:3*nt)=T0;LB(3*nt+1)
=0;UB(1:2*nt)=1;UB(2*nt+1:3*nt)=Tf;
[var,neg_Cbmax,flag]=fmincon(@batchT,var0,A,B,Aeq,Beq,LB,UB,@nlc
on,options)
% reasignacion de valores solucion
Ca(1:nt)=var(1:nt); Cb(1:nt)=var(nt+1:2*nt); T(1:nt)=var(2*nt+1:3*nt);
tf=var(3*nt+1);
dt = tf/(nt-1);
t(1)=0;
for i=1:nt-1
t(i+1)= t(i) + dt;
end
% impresion de resultados
fprintf('El tiempo de operacion es de %6.2f horas\n\n',tf)
fprintf(' t Ca Cb T \n')
fprintf('[hrs] [mol/dm3] [mol/dm3] [K]\n')
for i=1:nt
fprintf('%6.2f %7.5f %7.5f %10.2f\n',t(i),Ca(i),Cb(i),T(i))
end
%
[tt,TT]=stairs(t,T);
% trazo de resultados
figure(1),plot(t,Ca,t,Cb),xlabel('t [seg]'),ylabel('C [mol/dm^{3}]')
legend('C_{A}','C_{B}')
figure(2),plot(tt,TT),xlabel('t [seg]'),ylabel('T [K]')
figure(3),[AX,H1,H2] =plotyy(t,Cb,t,T-273.15),xlabel('t [hrs]'),ylabel('T
[K]')
set(get(AX(1),'Ylabel'),'String','C [mol/dm^{3}]')
set(get(AX(2),'Ylabel'),'String','T [K]')
set(H2,'LineStyle','--')
grid
%-----------------------------
function neg_Cb = batchT(var)
%-----------------------------
% rutina para declarar la expresion de la funcion objetivo
global nt Ca0 Cb0 T0
% reasignacion de variables
Ca(1:nt)=var(1:nt);
Cb(1:nt)=var(nt+1:2*nt);
T(1:nt)=var(2*nt+1:3*nt);
tf=var(3*nt+1);
Ca(1)=Ca0; Cb(1)=Cb0; T(1)=T0;
dt = tf/(nt-1);
neg_Cb = -Cb(nt); % funcion objetivo
%-----------------------------
function [g h]= nlcon(var)
%-----------------------------
% rutina para declarar las restricciones
% del balance de especies a lo largo del tiempo
global nt Ca0 Cb0 T0
% reasignacion de varaibles
Ca(1:nt)=var(1:nt);
Cb(1:nt)=var(nt+1:2*nt);
T(1:nt)=var(2*nt+1:3*nt);
Ca(1)=Ca0; Cb(1)=Cb0; T(1)=T0;
tf=var(3*nt+1);
dt = tf/(nt-1);
% expresiones del balance de especies
for i=1:nt-1
k1(i) = 4000*exp(-5000/(1.9872*T(i)));
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 95/101
k2(i) = 6.2e5*exp(-10000/(1.9872*T(i)));
dCadt(i) = -k1(i)*Ca(i)^2;
dCbdt(i) = k1(i)*Ca(i)^2 - k2(i)*Cb(i);
fa(i)= -Ca(i+1) + Ca(i) + dt*dCadt(i);
fb(i)= -Cb(i+1) + Cb(i) + dt*dCbdt(i);
end
% restricciones de igualdad h
h = [fa fb]; g = [];
% fin del archivo batch_dyn.m
This solution was obtained using AMPL:
# start of run file
reset;
model dynopt1.mod ;
data dynopt1.dat ;
option solver ipopt ;
printf "\nTotal number of variables: %i.\n", _nvars;
printf "Total number of constraints: %i.\n\n", _ncons;
solve ;
include postprocessing.inc;
# end of run file
=========================================
#
# converting from collocation points and finite elements to time
#
set ncpv := 1..NCP-1 ;
param ncp1{ncpv} ;
set tevar := 1..NFE*NCP ;
param timevar{tevar} ;
param tscale ;
param indexvar ;
param nelement ;
let tscale := 1 ;
let indexvar := 0 ;
let nelement := 0 ;
param TIME := time ;
for {ii in FE}
{
let nelement := nelement + 1 ;
for {jj in CP}
{
let indexvar := indexvar + 1 ;
let timevar[indexvar] := if ii = 1 then
TIME*H[ii]*RSS[jj]
else
sum{iii in 1..ii-1} TIME*H[iii] +
TIME*H[ii]*RSS[jj] ;
let timevar[indexvar] := timevar[indexvar]*tscale;
}
}
#
#---------------------WRITTING OUTPUT DATA FILES-------------------------
#
#
# Concentration C1
#
printf " " > c1_out.dat ;
printf "\n0.00000000000 " >> c1_out.dat ;
printf "%.7E ", C1init >> c1_out.dat ;
param c1_aux{tevar};
let indexvar := 0;
for {ii in FE}{
for {jj in CP}{
let indexvar := indexvar + 1;
let c1_aux[indexvar] := C1[ii,jj] ;
}
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 96/101
}
for { qq in tevar }{
printf "\n%.7E ", timevar[qq] >> c1_out.dat ;
printf "%.7E ",c1_aux[qq] >> c1_out.dat ;
}
close c1_out.dat ;
#
# Concentration C2
#
printf " " > c2_out.dat ;
printf "\n0.00000000000 " >> c2_out.dat ;
printf "%.7E ", C2init >> c2_out.dat;
param c2_aux{tevar};
let indexvar := 0;
for {ii in FE}{
for {jj in CP}{
let indexvar := indexvar + 1;
let c2_aux[indexvar] := C2[ii,jj] ;
}
}
for { qq in tevar }{
printf "\n%.7E ", timevar[qq] >> c2_out.dat ;
printf "%.7E ", c2_aux[qq] >> c2_out.dat ;
}
close c2_out.dat ;
#
# Manipulated variable T
#
printf " " > T_out.dat ;
printf "\n0.00000000000 " >> T_out.dat ;
printf "%.7E ", Tinit >> T_out.dat;
param T_aux{tevar};
let indexvar := 0;
for {ii in FE}{
for {jj in CP}{
let indexvar := indexvar + 1;
let T_aux[indexvar] := T[ii,jj] ;
}
}
for { qq in tevar }{
printf "\n%.7E ", timevar[qq] >> T_out.dat ;
printf "%.7E ", T_aux[qq] >> T_out.dat ;
}
close T_out.dat ;
# end of postprocessing
=========================================
#
# Simultaneous dynamic optimization formulation for the problem
# of the batch reactor where the reaction:
# A --> B --> C
# takes place. The manipulated variable considered is the
# temperature
#
# Problem definition:
#
# Max C2(tf)
# s.t.
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 97/101
# dC1/dt = -k1*C1^2
# dC2/dt = k1*C1^2 - k2*C2
#
# C1(0) = 1
# C2(0) = 0
#
# 298.15 <= T <= 398.15
#
# where,
# k1 = 4000exp(-2500/T)
# k2 = 62000exo(-5000/T)
#
# Written by
# Rodrigo Lopez-Negrete de la Fuente
# Departamento de Ingenieria y Ciencias Quimicas
# Universidad Iberoamericana
# October 2006
#
#
# Start of model file: dynopt1.mod
#
# Number of finite elements and colocation points
param NFE >= 1 integer ;
param NCP >= 1 integer ;
# Transition time
param time > 0 ;
# Declare sets
set FE := 1..NFE ; # Set of finite elements
set CP := 1..NCP ; # Set of collocation points
# Colocation matrix & data
param H{FE} ;
param A{FE,CP} ;
param RSS{CP} ;
param C1init >= 0 ;
param C2init >= 0 ;
param Tinit >= 298.15, <= 398.15 ;
param C1des >= 0 ;
param C2des >= 0 ;
param Tdes >= 298.15, <= 398.15 ;
# Variables
var T{FE,CP} >= 298.15, <= 398.15 ;
var C1{FE,CP} >= 0, <= 10 ;
var C2{FE,CP} >= 0, <= 10 ;
var C10{FE} >= 0, <= 10 ;
var C20{FE} >= 0, <= 10 ;
var C1dot{FE,CP} ;
var C2dot{FE,CP} ;
var k1{FE,CP} ;
var k2{FE,CP} ;
maximize objf: C2[NFE,NCP] ;
subject to
# SDO formulation
FECOLc1{i in FE, j in CP}:
C1[i,j] = C10[i] + time*H[i]*sum{qq in CP} A[qq,j]*C1dot[i,qq] ;
FECOLc2{i in FE, j in CP}:
C2[i,j] = C20[i] + time*H[i]*sum{qq in CP} A[qq,j]*C2dot[i,qq] ;
CONc1{i in FE diff{1}}:
C10[i] = C10[i-1] + time*H[i-1]*sum{qq in CP} A[qq,NCP]*C1dot[i-
1,qq] ;
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 98/101
CONc2{i in FE diff{1}}:
C20[i] = C20[i-1] + time*H[i-1]*sum{qq in CP} A[qq,NCP]*C2dot[i-
1,qq] ;
defC1dot{i in FE, j in CP}:
C1dot[i,j] = -k1[i,j]*C1[i,j]^2 ;
defC2dot{i in FE, j in CP}:
C2dot[i,j] = k1[i,j]*C1[i,j]^2 - k2[i,j]*C2[i,j] ;
# Initial values
IVc1:
C10[1] = C1init ;
IVc2:
C20[1] = C2init ;
# auxiliary definitions
defk1{i in FE, j in CP}:
k1[i,j] = 4000*exp(-2500/T[i,j]) ;
defk2{i in FE,j in CP}:
k2[i,j] = 62000*exp(-5000/T[i,j]) ;
#
# end of model file: dynopt1.mod
#
=========================================
# # Simultaneous dynamic optimization formulation for the problem
# of the batch reactor where the reaction:
# A --> B --> C
# takes place. The manipulated variable considered is the
# temperature
#
# Problem definition:
#
# Max C2(tf)
# s.t.
# dC1/dt = -k1*C1^2
# dC2/dt = k1*C1^2 - k2*C2
#
# C1(0) = 1
# C2(0) = 0
#
# 298.15 <= T <= 398.15
#
# where,
# k1 = 4000exp(-2500/T)
# k2 = 62000exo(-5000/T)
#
# Written by
# Rodrigo Lopez-Negrete de la Fuente
# Departamento de Ingenieria y Ciencias Quimicas
# Universidad Iberoamericana
# October 2006
#
#
# Start of data file: dynopt1.dat
#
param A: 1 2 3 :=
1 0.19681547722366 0.39442431473909 0.37640306270047
2 -0.06553542585020 0.29207341166523 0.51248582618842
3 0.02377097434822 -0.04154875212600 0.11111111111111;
param RSS: 1 2 3:=
1 0.1550625 0.6449948 1;
let NFE := 10 ;
let NCP := 3 ;
let time := 1 ;
let {i in FE} H[i] := 1/NFE ;
let C1init := 1 ;
let C1des := 0 ;
let C2init := 0 ;
let C2des := 1 ;
# first case
let Tinit := 298.15 ;
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 99/101
let Tdes := 398.15 ;
# second case
#let Tinit := 398.15 ;
#let Tdes := 298.15 ;
# Initialization scheme
for {i in FE, j in CP} {
let C1[i,j] := (C1des - C1init)/(NFE*NCP) +
C1init ;
let C2[i,j] := (C2des - C2init)/(NFE*NCP) +
C2init ;
let T[i,j] := (Tdes - Tinit)/(NFE*NCP) + Tinit
;
let k1[i,j] := 4000*exp(-2500/T[i,j]) ;
let k2[i,j] := 62000*exp(-5000/T[i,j]) ;
}
#
# End of data file: dynopt1.dat
#
GAMS
* inicio del archivo optimbatch2.gms
* archivo base para resolver problemas de optimizacion
* definicion del titulo del problema
*====================================================
$ TITLE optimizacion de un reactor batch
*====================================================
$ OFFSYMXREF
$ OFFSYMLIST
$ontext
Optimizacion de un reactor por lotes
Se lleva a cabo una reaccion en serie A -> B -> C en fase liquida en un
reactor por lotes
Se desea maximizar la concentracion de la especie B
considerando la variacion de temperatura 298.15 K <= T <= 398.15 K
$offtext
* se recomienda no quitar las lineas siguientes
OPTION LIMROW=0; OPTION LIMCOL=0;
* solver
option lp = minos;
option nlp = conopt;
option mip = cplex;
option rminlp = conopt2;
option minlp = dicopt;
$set Np 40
*====================================================
Set Np Numero de subintervalos / 0*%Np% /;
Alias (Np,i);
*====================================================
* parametros del sistema
Scalar A10 factor prexponencial /4000/
A20 factor prexponencial /62000/
Ea1 energia de activacion /2500/
Ea2 energia de activacion /5000/
Tlb limite inferior de temperatura K /298.15/
Tub limite superior de temperatura K /398.15/
Ca0 mol por dm3 /1.0/
Cb0 mol por dm3 /0.0/
tf horas/1.0/;
*------------------------------------------------------
* declaracion del conjunto de variables del problema
* en estas lineas se declaran las variables positivas
*------------------------------------------------------
free variable Cbopt concentracion de la especie B mol por dm3;
*=====================================================
==
positive variable Ca(Np) mol A por dm3
Cb(Np) mol B por dm3
Temp(Np) temperatura K
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 100/101
t(Np) horas
dt horas ;
* tf horas;
*------------------------------------------------------
* declaracion del nombre de las funciones
*------------------------------------------------------
equations obj, bma(Np), bmb(Np), dt_time, timevec, dtemp(Np),
dtempr(Np);
*=====================================================
=============
* declaracion de las expresiones de las ecuaciones
*=====================================================
=============
obj.. Cbopt =e= Cb['%Np%'];
bma(Np(i+1)).. Ca[i+1] =e= Ca[i]- A10*exp(-Ea1/Temp[i])*Ca[i]**2*dt;
bmb(Np(i+1)).. Cb[i+1] =e= Cb[i]+ (A10*exp(-Ea1/Temp[i])*Ca[i]**2 -
A20*exp(-Ea2/Temp[i])*Cb[i] )*dt;
dt_time.. (%Np%-1)*dt =e= tf;
timevec(Np(i+1)).. t[i+1] =e= t[i] + dt;
dtemp(i-1).. Temp[i]-Temp[i-1] =L= 5;
dtempr(i-1).. Temp[i-1]-Temp[i] =L= 5;
*=====================================================
=============
* especificacion de las condiciones iniciales
*=====================================================
=============
*tf.up=8;
Ca.fx['0']=Ca0;
Cb.fx['0']=Cb0;
loop (i,
Temp.lo[i]=Tlb;
Temp.up[i]=Tub;
);
*------------------------------------------------------
* asignacion del nombre al problema
*------------------------------------------------------
model reactorabc /all/;
*------------------------------------------------------
* declaracion de solucion del problema
*------------------------------------------------------
solve reactorabc using nlp maximaxing Cbopt;
*=====================================================
=============
* escritura del reporte de resultados
*=====================================================
=============
parameter prep Concentration report;
prep(i,'Time') = t.l(i);
prep(i,'Ca') = Ca.l(i);
prep(i,'Cb') = Cb.l(i);
prep(i,'Temp') = Temp.l(i);
display prep;
*=====================================================
=============
* escritura de la serie de resultados
*=====================================================
=============
* definicion del nombre del archivo
file res /reactor.dat/;
put res;
* escritura de la serie de valores por medio del uso de un ciclo
loop (i, put @1 t.l(i) :< 7:4
@10 Ca.l(i) :<12:8
@22 Cb.l(i) :<12:8
@34 Temp.l(i) :<12:3/
);
putclose res;
* fin del archivo optimbatch2.gms
Departamento de Ingeniera y Ciencias Qumicas. Dr. Martn Rivera Toledo. Abril 2010. 101/101
7. Bibliografa
1. Seider, W. D. , Seader, J.D. & Lewin, D.R. (1998), Process Design Principles. John Wiley
&Sons Inc.
2. Biegler, L.T., Grossmann, I.E. & Westerberg, A.W. (1997), Systematic Methods of Chemical
Process Design. Prentice Hall International Series in the Physical and Chemical Engineering
Series
3. Edgar, T.F., Himmelblau, D.M & Lasdon, L.S (2001), Optimization of Chemical Processes 2nd
Edition. McGraw-Hill International Editions Chemical Enginering Series.
4. Ahmad, S. & Polley, G.T. (1990). Debottlenecking of Heat Exchanger Networks
Heat Recovery Systems & CHP Vol. 10 No. 4 pp 369-385
5. Duran, M. A. & Grossmann, I. E. (1986), Simultaneous Optimization and Heat Integration
of Chemical Processes. AIChE Journal, Vol. 32 pp 123
6. P. Venkataraman (2001) Applied Optimization with MATLAB Programming, John Wiley
7.Grossmann I. E., Caballero J. A. and Yeomans, H. (2000) Latin American Applied Research
30:263-284
8. Papoulias&Grossmann (1983)
A structural optimization approach to process synthesis II. Heat recovery networks. Computer
and Chemical Engineering. 7 pp 707
9. Floudas, C.A., Ciric, A.R. & Grossmann, E.I. (1986) Automatic Synthesis of optimum heat
exchanger network configurations, AIChEJ., 32, 276