process.gms : Alkylation Process Optimization

Description

Optimization of a alkylation process.

Reference

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

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.

$Offtext

 Positive
 Variables  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

 Variables  profit, rangey, rangem, ranged, rangef

 Equations  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 ;

 Models 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;