marco.gms : Mini Oil Refining Model
This model describes the scheduling problem of a small
owner operated refinery.
References:
- Kendrick, D, Meeraus, A, and Suh, J S, Oil Refinery Modeling with the GAMS language. Tech. rep., Center of Energy Studies, University of Texas, 1981.
- Aronofsky, J S, Dutton, J M, and Tayyabkhan, M T, Managerial Planning with Linear Programming. John Wiley and Sons, New York, 1978.
Small Model of Type: LP
$Title Mini Oil Refinery Model (MARCO,SEQ=32)
$Ontext
This model describes the scheduling problem of a small
owner operated refinery.
Kendrick, D, Meeraus, A, and Suh, J S, Oil Refinery Modeling with the
GAMS language. Tech. rep., Center of Energy Studies, University of
Texas, 1981.
Aronofsky, J S, Dutton, J M, and Tayyabkhan, M T, Managerial Planning
with Linear Programming. John Wiley and Sons, New York, 1978.
$Offtext
Sets c all commodities / crude crude oil (any)
butane purchased butane
mid-c mid continent crude
w-tex west texas crude
sr-gas straight-run gasoline
sr-naphtha straight-run naphtha
sr-dist straight-run distillate
sr-gas-oil straight-run gas oil
sr-res straight-run residuum
rf-gas reformed gasoline
fuel-gas
cc-gas cracked gasoline
cc-gas-oil cracked gas oil
hydro-res hydrotreated residuum
premium premium gasoline
regular regular gasoline
distillate
fuel-oil blended fuel oil /
cf(c) final product / premium, regular, distillate, fuel-oil, fuel-gas /
cr(c) crude oils / mid-c, w-tex /
ci(c) intermediates / butane, sr-gas, sr-naphtha, sr-dist, sr-gas-oil, sr-res, rf-gas
fuel-gas, cc-gas, cc-gas-oil, hydro-res /
cd(ci) domestic products / butane /
p processes / a-dist atmospheric distillation
n-reform naphtha reforming
cc-dist catalytic cracking of distillates
cc-gas-oil catalytic cracking of gas oil
hydro hydrotreating of residuum /
m productive units/ a-still atmospheric distillation
reformer
c-crack catalytic cracker
hydro hydrotreater /
$Stitle technology and cost data
Table a(cr,c,p) input output coefficients
a-dist n-reform cc-dist cc-gas-oil hydro
mid-c.crude -1.0
mid-c.sr-gas .236
mid-c.sr-naphtha .223 -1.0
mid-c.sr-dist .087 -1.0
mid-c.sr-gas-oil .111 -1.0
mid-c.sr-res .315
mid-c.rf-gas .807
mid-c.fuel-gas .029 .129 .30 .31
mid-c.cc-gas .59 .59
mid-c.cc-gas-oil .21 .22
w-tex.crude -1.0
w-tex.sr-gas .180
w-tex.sr-naphtha .196 -1.0
w-tex.sr-dist .073 -1.0
w-tex.sr-gas-oil .091 -1.0
w-tex.sr-res .443 -1.0
w-tex.rf-gas .836
w-tex.fuel-gas .017 .099 .36 .38
w-tex.cc-gas .58 .60
w-tex.cc-gas-oil .15 .15
w-tex.hydro-res .97
Table b(m,p) capacity utilization
a-dist n-reform cc-dist cc-gas-oil
a-still 1.0
reformer 1.0
c-crack 1.0 1.0
Parameters
k(m) initial capacity (1000 bpd) / a-still 100, reformer 20, c-crack 30 /
pd(cd) prices of domestic products ($ pb) / butane 6.75 /
pr(cr) prices of crude oils ($ pb) / mid-c 7.50, w-tex 6.50 /
pf(cf) prices of final products ($ pb) / premium 10.5, regular 9.1, distillate 7.7, fuel-gas 1.5, fuel-oil 6.65 /
ur(cr) upper bnd on crude oil (1000 bpd) / (mid-c,w-tex) 200 /
op(p) operating cost ($ pb) / a-dist .1, n-reform .15, cc-dist .8, cc-gas-oil .08, hydro .1 /
$Stitle blending data
Sets lim upper and lower limits / lower, upper /
bp(cf,ci) blending possibility /
(premium, regular).(butane, sr-gas, rf-gas, cc-gas, sr-naphtha)
distillate.( sr-dist, sr-naphtha, sr-gas-oil, cc-gas-oil)
fuel-oil.( sr-gas-oil, sr-res, cc-gas-oil, hydro-res )
fuel-gas.( fuel-gas ) /
q quality attributes / octane octane level
vapor-pr vapor pressure
density
sulfur sulfur content /
Table qs(lim,cf,q) product quality specifications
octane vapor-pr density sulfur
lower.premium 90
lower.regular 86
upper.premium 12.7
upper.regular 12.7
upper.distillate 306 0.5
upper.fuel-oil 352 3.5
Table at(ci,q) attributes for blending
octane vapor-pr
sr-gas 78.5 18.4
sr-naphtha 65.0 6.54
rf-gas 104.0 2.57
cc-gas 93.7 6.9
butane 91.8 199.2
Table atc(cr,ci,q) attributes for blending by crude
density sulfur
mid-c.sr-naphtha 272.0 .283
mid-c.sr-dist 292.0 .526
mid-c.sr-gas-oil 295.0 .980
mid-c.cc-gas-oil 294.4 .353
mid-c.sr-res 343.0 4.7
w-tex.sr-naphtha 272.0 1.48
w-tex.sr-dist 297.6 2.83
w-tex.sr-gas-oil 303.3 5.05
w-tex.sr-res 365.0 11.00
w-tex.cc-gas-oil 299.1 1.31
w-tex.hydro-res 365.0 6.00
Display atc; atc(cr,ci,q)$at(ci,q) = at(ci,q); Display atc;
$Stitle model specification
Variables z(cr,p) process level
x(cf) final sales
u(cr) purchase of crude oil
ui(cr,ci) purchases of intermediate materials
w(cr,ci,cf) blending process level
phi total income
phir revenue from final product sales
phip input material cost
phiw operating cost
Positive Variables z, x, u, ui, w;
Equations mb(cr,ci) material balances for intermediates
mbr(cr) material balances for crudes
cc(m) capacity constraint
lcp(cr) limits on crude oil purchases
bb(cf) blending balance
qlb(cf,q) quality constraints lower bounds
qub(cf,q) quality constraints upper bounds
aprof profit accounting
arev revenue accounting
amat material cost accounting
aoper operating cost accounting;
$Double
mbr(cr).. sum(p, a(cr,"crude",p)*z(cr,p)) + u(cr) =g= 0 ;
mb(cr,ci).. sum(p, a(cr,ci,p)*z(cr,p)) + ui(cr,ci)$cd(ci) =g= sum(cf$bp(cf,ci), w(cr,ci,cf));
cc(m).. sum(p, b(m,p)*sum(cr,z(cr,p))) =l= k(m) ;
lcp(cr).. u(cr) =l= ur(cr);
bb(cf) .. x(cf) =e= sum((cr,ci)$bp(cf,ci), w(cr,ci,cf)) ;
qlb(cf,q)$qs("lower",cf,q).. sum((cr,ci), atc(cr,ci,q)*w(cr,ci,cf)) =g= qs("lower",cf,q)*x(cf);
qub(cf,q)$qs("upper",cf,q).. sum((cr,ci), atc(cr,ci,q)*w(cr,ci,cf)) =l= qs("upper",cf,q)*x(cf);
arev .. phir =e= sum(cf, pf(cf)*x(cf)) ;
amat .. phip =e= sum(cr,pr(cr)*u(cr))+sum((cd,cr),pd(cd)*ui(cr,cd));
aoper.. phiw =e= sum(p,op(p)*sum(cr, z(cr,p))) ;
aprof.. phi =e= phir - phip - phiw ;
$Single
Model oil marco oil refinery model / all /
Solve oil using lp maximizing phi; Display z.l, w.l, x.l, u.l;
qs("upper","fuel-oil","sulfur") = 3.4;
Solve oil using lp maximizing phi; Display z.l, w.l, x.l, u.l;