dispatch.gms : Economic Load Dispatch Including Transmission Losses

Description

```The economic dispatch problem can be defined as determining the
least-cost power generation schedule from a set of on-line generating
units to meet the total power demand at a given point of time. The
generating unit cost and the network transmission losses are modeled
as quadratic function of the power generation.

In the present problem, both the cost-minimizing and loss-minimizing
solutions have been obtained.
```

Small Model of Type : NLP

Category : GAMS Model library

Main file : dispatch.gms

``````\$title Economic Load Dispatch Including Transmission Losses (DISPATCH,SEQ=166)

\$onText
The economic dispatch problem can be defined as determining the
least-cost power generation schedule from a set of on-line generating
units to meet the total power demand at a given point of time. The
generating unit cost and the network transmission losses are modeled
as quadratic function of the power generation.

In the present problem, both the cost-minimizing and loss-minimizing
solutions have been obtained.

Wood, A J, and Wollenberg, B F, Example Problem 4e. In Power Generation,
Operation and Control. John Wiley and Sons, 1984, pp. 85-88.

Keywords: nonlinear programming, engineering, power generation, economic dispatch
\$offText

Set
i           'generators'                / p1*p3 /
genchar     'generator characteristics' / a, b, c, upplim, lowlim /
cg(genchar) 'cost categories'           / a, b, c /;

Alias (i,j);

Table gendata(i,genchar) 'generator cost characteristics and limits'
a       b        c  upplim  lowlim
p1  213.1  11.669  0.00533     200      50
p2  200.0  10.333  0.00889     150    37.5
p3  240.0  10.833  0.00741     180      45;

Parameter pexp(cg) 'exponent for cost function' / a 0, b 1, c 2 /;

Table b(i,j) 'the b-matrix loss coefficients - squared components'
p1       p2        p3
p1    0.0676  0.00953  -0.00507
p2   0.00953  0.05210   0.00901
p3  -0.00507  0.00901   0.02940;

Parameter b0(i) 'linear loss coefficients' / p1  -0.0766
p2  -0.00342
p3   0.0189  /;

Scalar
b00    'loss equation constant'   / 0.040357 /
demand 'total power demand in MW' / 210      /;

Variable
p(i) 'power generation level in MW'
loss 'total transmission loss in MW'
cost 'total generation cost - the objective function';

Positive Variable p;

p.up(i) = gendata(i,"upplim");
p.lo(i) = gendata(i,"lowlim");

Equation
costfn  'total cost calculation'
lossfn  'total loss calculation'
demcons 'total generation must equal demand and loss';

costfn..  cost =e= sum((i,cg), gendata(i,cg)*power(p(i),pexp(cg)));

lossfn..  loss =e= b00 + sum(i, b0(i)*p(i))/100
+ sum((i,j), p(i)*b(i,j)*p(j))/100;

demcons.. sum(i, p(i)) =g= demand + loss;

Model edc / all /;

solve edc minimizing cost using nlp;

Set
s     'trade-off points'  / min-loss, s1*s4, min-cost /
st(s) 'in between points' / s1*s4 /;

Parameter trace 'trace report';

trace('cost','min-cost') = cost.l;
trace('loss','min-cost') = loss.l;

option limRow = 0, limCol = 0;

solve edc minimizing loss using nlp;

trace('cost','min-loss') = cost.l;
trace('loss','min-loss') = loss.l;

edc.solPrint = %solPrint.quiet%;

loop(st,
loss.fx = trace('loss','min-loss')
+ ord(st)/(card(st) + 1)*(trace('loss','min-cost')
-trace('loss','min-loss'));
solve edc minimizing cost using nlp;
trace('cost',st) = cost.l;
trace('loss',st) = loss.l;
);

display trace;
``````
GAMS Development Corp.
GAMS Software GmbH

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