process.gms : Alkylation Process Optimization

Description

```Optimization of a alkylation process.
```

Small Model of Type : NLP

Category : GAMS Model library

Main file : process.gms

``````\$title Alkylation Process Optimization (PROCESS,SEQ=20)

\$onText
Optimization of a alkylation process.

Bracken, J, and McCormick, G P, Chapter 4. In Selected Applications
of Nonlinear Programming. John Wiley and Sons, New York, 1968.

Keywords: nonlinear programming, alkylation process, chemical engineering
\$offText

Positive Variable
olefin   'olefin feed                   (bpd)'
isor     'isobutane recycle             (bpd)'
acid     'acid addition rate (1000lb per day)'
alkylate 'alkylate yield                (bpd)'
isom     'isobutane makeup              (bpd)'
strength 'acid strength          (weight pct)'
octane   'motor octane number'
ratio    'isobutane makeup to olefin ratio'
dilute   'acid dilution factor'
f4       'f-4 performance number';

Variable
profit
rangey
rangem
ranged
rangef;

Equation
yield    'alkylate yield definition'
rngyield 'ranged alkylate yield definition'
makeup   'isobutane makeup definition'
sdef     'acid strength definition'
motor    'motor octane number'
rngmotor 'ranged motor octane number'
drat     'isobutane to olefin ratio'
ddil     'dilution definition'
rngddil  'ranged dilution definition'
df4      'f-4 definition'
rngdf4   'ranged f-4 definition'
dprofit  'profit definition';

yield..    alkylate =e= olefin*(1.12+.13167*ratio-.00667*sqr(ratio));

makeup..   alkylate =e= olefin + isom -.22*alkylate;

sdef..     acid   =e= alkylate*dilute*strength/(98-strength)/1000;

motor..    octane =e= 86.35 + 1.098*ratio - .038*sqr(ratio) - .325*(89-strength);

drat..     ratio  =e= (isor+isom)/olefin;

ddil..     dilute =e= 35.82 - .222*f4;

df4..      f4     =e= -133 + 3*octane;

dprofit..  profit =e= .063*alkylate*octane - 5.04*olefin - .035*isor - 10*acid - 3.36*isom;

rngyield.. rangey*alkylate =e= olefin*(1.12+.13167*ratio-.00667*sqr(ratio));

rngmotor.. rangem*octane =e= 86.35 + 1.098*ratio - .038*sqr(ratio) - .325*(89-strength);

rngddil..  ranged*dilute =e= 35.82 - .222*f4;

rngdf4..   rangef*f4 =e= -133 + 3*octane;

Model
process 'process model with equalities'
/ yield, makeup, sdef, motor, drat, ddil, df4, dprofit /
rproc   'ranged process  model'
/ rngyield, makeup, sdef, rngmotor, drat, rngddil, rngdf4, dprofit /;

rangey.lo = .9; rangey.up = 1.1; rangey.l = 1;
rangem.lo = .9; rangem.up = 1.1; rangem.l = 1;
ranged.lo = .9; ranged.up = 1.1; ranged.l = 1;
rangef.lo = .9; rangef.up = 1.1; rangef.l = 1;

strength.lo = 85;    strength.up = 93;  octane.lo   = 90;   octane.up = 95;
ratio.lo    = 3;     ratio.up    = 12;  dilute.lo   = 1.2;  dilute.up = 4;
f4.lo       = 145;   f4.up       = 162; olefin.lo   = 10;   olefin.up = 2000;
isor.up     = 16000; acid.up     = 120; alkylate.up = 5000; isom.up   = 2000;

olefin.l = 1745; isor.l     = 12000; acid.l   = 110;  alkylate.l = 3048;
isom.l   = 1974; strength.l = 89.2;  octane.l = 92.8; ratio.l    = 8;
dilute.l = 3.6;  f4.l       = 145;   profit.l = 872;

solve process maximizing profit using nlp;

solve rproc   maximizing profit using nlp;
``````
GAMS Development Corp.
GAMS Software GmbH

General Information and Sales
U.S. (+1) 202 342-0180
Europe: (+49) 221 949-9170