Edc2 : Economic Dispatch Calculation of a Total Power of 1,980 MW Using 15 Power Generating Units

Reference

  • Neculai Andrei, Nonlinear Optimization Applications Using the GAMS Technology,Springer Optimization and Its Applications, Model Edc2 (6.7) in chapter Applications in Electrical Engineering , 2013

Category : GAMS NOA library


Mainfile : edc2.gms

$Ontext
Economic load dispatch for 15 generator systems with transmission losses
modeled using B-matrix formulation (Kron).
EDC of a total power of 1980 MW using 15 power generating units.
$Offtext

Set i generating units /1*15/;
Set bou lower and upper /low, upp/;
Set coef coefficients in fuel cost of thermal generating unit /a,b,c/;

alias(i,j);

* The output of the minimum and maximum operation of the
* generating units in MW.
Table bound(i,bou)
      low    upp
*      MW     MW
1     100    655
2     100    455
3      20    130
4      20    130
5     150    470
6     135    460
7     135    465
8     100    300
9      25    165
10     25    460
11     20     80
12     20     80
13     25     85
14     15     55
15     15     55

* The cost coefficients of generator units.
Table data(i,coef)
       a          b           c
*      $/MW2      $/MW        $
1     0.000299   10.100    671.130
2     0.000183   10.200    574.010
3     0.001126    8.814    374.110
4     0.001126    8.800    374.000
5     0.000205   10.400    461.000
6     0.000301   10.100    630.000
7     0.000364    9.800    548.000
8     0.000338   11.200    227.000
9     0.000807   11.200    173.000
10    0.001203   10.700    175.200
11    0.003586   10.200    186.000
12    0.005513    9.900    230.000
13    0.000371   13.100    225.000
14    0.001929   12.100    309.000
15    0.004447   12.400    323.100

* The loss coefficients
Table Losscoef(i,j)
    1   2    3   4   5   6   7    8    9    10   11   12   13   14    15
1   1.4 1.2  0.7 0.1 0.3 0.1 0.1  0.1  0.3  0.5  0.3  0.2  0.4  0.3   0.1
2   1.2 1.5  1.3 0.0 0.5 0.2 0.0  0.1  0.2  0.4  0.4  0.0  0.4  1.0   0.2
3   0.7 1.3  7.6 0.1 1.3 0.9 0.1  0.0  0.8  1.2  1.7  0.0  2.6 11.1   2.8
4   0.1 0.0  0.1 3.4 0.7 0.4 1.1  5.0  2.9  3.2  1.1  0.0  0.1  0.1   2.6
5   0.3 0.5  1.3 0.7 9.0 1.4 0.3  1.2  1.0  1.3  0.7  0.2  0.2  2.4   0.3
6   0.1 0.2  0.9 0.4 1.4 1.6 0.0  0.6  0.5  0.8  1.1  0.1  0.2  1.7   0.3
7   0.1 0.0  0.1 1.1 0.3 0.0 1.5  1.7  1.5  0.9  0.5  0.7  0.0  0.2   0.8
8   0.1 0.1  0.0 5.0 1.2 0.6 1.7 16.8  8.2  7.9  2.3  3.6  0.1  0.5   7.8
9   0.3 0.2  0.8 2.9 1.0 0.5 1.5  8.2 12.9 11.6  2.1  2.5  0.7  1.2   7.2
10  0.5 0.4  1.2 3.2 1.3 0.8 0.9  7.9 11.6 20.0  2.7  3.4  0.9  1.1   8.8
11  0.3 0.4  1.7 1.1 0.7 1.1 0.5  2.3  2.1  2.7 14.0  0.1  0.4  3.8  16.8
12  0.2 0.0  0.0 0.0 0.2 0.1 0.7  3.6  2.5  3.4  0.1  5.4  0.1  0.4   2.8
13  0.4 0.4  2.6 0.1 0.2 0.2 0.0  0.1  0.7  0.9  0.4  0.1 10.3 10.1   2.8
14  0.3 1.0 11.1 0.1 2.4 1.7 0.2  0.5  1.2  1.1  3.8  0.4 10.1 57.8   9.4
15  0.1 0.2  2.8 2.6 0.3 0.3 0.8  7.8  7.2  8.8 16.8  2.8  2.8  9.4 128.3 ;

Scalar Load /1980/;

Variables P(i) optimal generation level of i
          obj  minimum cost;

Equations  cost  total generation cost
           bal   demand-supply balance ;

* Objective function:
cost.. obj =e= sum(i,data(i,'a')*POWER(p(i),2) +
                     data(i,'b')*P(i) +
                     data(i,'c'));

* Constraints:
bal.. sum(i,P(i))-sum((i,j),P(i)*Losscoef(i,j)*P(J)/10000) =e= Load;

* Bounds on variables:
P.lo(i) = bound(i,'low');
p.up(i) = bound(i,'upp');

p.l(i) = (bound(i,'low') + bound(i,'upp'))/2;

Model edc2 /all/;

$iftheni x%mode%==xbook
$onecho >bench.opt
  solvers conopt knitro minos snopt
$offecho
edc2.optfile=1;
option nlp=bench;
$endif

Solve edc2 minimizing obj using nlp;
* End edc2