$TITLE Power Generation via Fuel Oil
$ontext
This file contains the basic data and definition of the
example optimization problem found in
Chen, X, et al. (1996) "Comparison of GAMS, AMPL, and MINOS for
Optimization" Chem. Eng. Edu. (Summer): 220-227.
with a linearized fuel consumption relationship to power
to make into an LP problem.
$offtext
$stitle set definition
sets
G Power Generators /gen1*gen2/
F Fuels /oil,gas/
K Constants in Fuel Consumption Equations/0,1/;
*Define and Input the Problem Data. "1" scaled by 1.2 to fit quadratic better
TABLE A(G,F,K) Coefficients in the fuel consumption equations
0 1
gen1.oil 1.4609 .18223
gen1.gas 1.5742 .19572
gen2.oil 0.8008 .24372
gen2.gas 0.7266 .27072;
PARAMETER PMAX(G) Maximum power outputs of generators
/gen1 30.0, gen2 25.0/;
PARAMETER PMIN(G) Minimum power outputs of generators
/gen1 18.0, gen2 14.0/;
SCALAR GASSUP Maximum supply of Blast Furnace Gas in units per h
/10.0/
PREQ Total power output required in MW
/50.0/;
* Design optimization variables
VARIABLES P(G) Total power output of generators in MW
X(G,F) Power outputs of generators from specific fuels
Z(F) Total amounts of fuel purchased
OILPUR Total amount of fuel oil purchased;
POSITIVE VARIABLES P, X, Z;
* Define Objective function and constraints
EQUATIONS TPOWER Required power must be generated
PWR(G) Power generated by individual generators
OILUSE Amount of oil purchased to be minimized
FUELUSE(F) Fuel usage must not exceed purchase;
TPOWER.. SUM(G,P(G))=G=PREQ;
PWR(G).. P(G)=E=SUM(F,X(G,F));
FUELUSE(F).. Z(F)=G=SUM(G,a(G,F,"0") + a(G,F,"1")*X(G,F));
OILUSE.. OILPUR=E=Z("OIL");
* Impose bounds and initialize optimization variables
* Upper and lower bounds on P from the operating ranges
P.UP(G) = PMAX(G);
P.LO(G) = PMIN(G);
* Upper bound on BFG consumption from GASSUP
Z.UP("gas") = GASSUP;
* Specify initial values for power outputs
P.L(G)=.5*(PMAX(G)+PMIN(G));
* Define model and solve
MODEL FUELOIL/all/;
SOLVE FUELOIL USING LP MINIMIZING OILPUR;
display x.l, P.L, Z.L, OILPUR.L;