Sei sulla pagina 1di 101

Ingeniera de Procesos Martn Rivera Toledo 1/101

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

Potrebbero piacerti anche