You are on page 1of 8

GAMSPOWER Version 1.

0
Ray D. Zimmerman; PSERC, Cornell University, Ithaca, NY 14853 Jagadisan Viswanathan; Verilogic LLC, Pittsburgh, PA 15235 Alex Meeraus; GAMS Development Corporation, Washington, DC 20007 January 2008

Contents
1 Introduction 2 AC Power Flow
2.1 2.2 2.3 2.4 3.1 3.2 3.3 3.4 4.1 4.2 4.3 4.4 Admittance matrix of the network Equations for power injections . . . Specications . . . . . . . . . . . . Other aspects . . . . . . . . . . . . Power ow limits . . . . . . . . Cost functions . . . . . . . . . Optimization problem . . . . . Solving AC OPF incrementally Sets . . . . . . . . Data . . . . . . . . AC Power Flow . . AC Optimal Power . . . . . . . . . Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1 2
2 2 3 3 4 4 5 6 6 7 7 8

3 AC Optimal Power Flow

4 Implementation in GAMS

1 Introduction
GAMSPOWER is a collection of AC Power Flow (PF) and AC Optimal Power Flow (OPF)
problems formulated in the GAMS modeling language (http://www.gams.com/). The data for these problems are the same as the corresponding cases in MATPOWER (http://www.pserc. cornell.edu/matpower/). This document briey describes - the mathematical models used in the AC PF and OPF problems. It is based on the material in MATPOWER User Manual [1]. - some of the details of the implementation in the GAMS framework. After this work was completed, we learned that Antonio Conejo and his colleagues at the University of Castilla-La Mancha, Ciudad Real, Spain have been using GAMS to solve AC OPF problems for more than 15 years! Three of their recent works on optimization problems with AC Power Flow at the centre stagemodeled and solved in GAMS frameworkare cited in the References. 1

2 AC POWER FLOW

2 AC Power Flow
2.1 Admittance matrix of the network
The admittance matrix of the network Y is obtained by combining elements described below: - The shunt admittance of bus k is computed as

Yk,sh = (Gk,sh + jBk,sh )/baseMVA


where Gk,sh is the shunt conductance (in MW (demanded) at V = 1.0 p.u.) and Bk,sh is the shunt susceptance (in MVAr (injected) at V = 1.0 p.u.). - Let (f, t, c) denote a branch where f is the from bus, t is the to bus and c is the circuit identier. The branch could be a transmission line, transformer or phase shifter. The branch is considered as a standard -model transmission line, with series resistance R and reactance X and total line charging susceptance Bc in series with an ideal transformer and phase shifter, at the from end, with tap ratio and and phase shift angle shift . For simplicity, the branch parameters are written without the subscript f tc. Here, and shift are considered as known parameters. More generally, they can be considered as variables whose values have to be determined. The branch currents and the bus voltages at the from and to ends of the branch are related by: If,c Ef yff,c yf t,c Ef = Yftc = It,c Et ytf,c ytt,c Et where

Yftc =

1 c Ys + j B 2 2 1 Ys ejshift

1 Ys ej shift c Ys + j B 2

and Ys =

1 R + jX

Let B denote the set of branches and let N denote the number of buses. The elements of Y are obtained as folllows:

Ykk Yik

= Yk,sh +
(f,t,c)B :f =k

yff,c +
(f,t,c)B :t=k

ytt,c ytf,c

for all k = 1, 2, . . . , N

=
(f,t,c)B :f =i,t=k

yf t,c +
(f,t,c)B :f =k,t=i

i = k,

for all i, k = 1, 2, . . . , N

2.2 Equations for power injections


Let N denote the number of buses, let Yik = Gik + jBik denote ik -th element of Y and let Pi and Qi denote the active and reactive power injected at bus i. From
N

Ii

=
k=1

Yik Ek

follows that (Wood and Wollenberg [5], p. 100)

Pi + jQi

= = =

Ei Ii N

Ei
k=1 N

Yik Ek |Ei ||Ek |(Gik jBik )ej (i k )

k=1

3 AC OPTIMAL POWER FLOW

where i and k are the angles, |Ei | and |Ek |, the magnitudes, of the voltages at the buses i and k , respectively. Equating the real and imaginary parts of both the sides results in:
N

Pi Qi

=
k=1 N

|Ei ||Ek |[Gik cos(i k ) + Bik sin(i k )] |Ei ||Ek |[Gik sin(i k ) Bik cos(i k )]
k=1

(1) (2)

2.3 Specications
There are 4 variables (|E |, , P and Q) and two equations, (1) and (2), per bus. So, to solve the Power Flow problem, the values of two variables must be specied, in a consistent manner, for each bus. The simplest cases of Power Flow problems deal with following types of buses:

Reference bus : The magnitude of the bus voltage and the bus angle are xed. Obviously, there
can be only one reference bus for a given problem.

PV bus : Here, at least one generator is assigned to the bus. The active power power injected PQ bus : The active and reactive power injected are specied.

(= sum of active power outputs of generators assigned to the bus - demand) and magnitude of the bus voltage are specied.

So, simply stated, the Power Flow problem is to nd the solution of a system of nonlinear equations. In the GAMS framework, the Power Flow problem is formulated as a dummy optimization problem. The optimal solution is a (or, most likely, the unique) feasible solution satisfying the constraints (more on this below).

2.4 Other aspects


The following aspects also need to be considered when solving AC PF: - It may happen that all the generators assigned to a PV bus are oine. In that case, the specications must be changed so that it becomes a PQ bus. - Note that the value of reactive power injected for a PV bus is determined by the solution of AC PF. Sometimes, this may result in the reactive power output of the generator falling outside its bounds: that is, either it is less than Qmin or greater than Qmax . In that case, the PV specications are changed to PQ specications with Q xed at the violated bound. So, the problem is solved again with |E| allowed to vary to satisfy the bound on Q. - After solving AC PF, one must check whether the power ow limits (dened below) on all branches are observed. So, this is a `post-processing' step after the solution.

3 AC Optimal Power Flow


In AC PF, the active power output of generators assigned to PV buses is given. In AC OPF, the active and reactive power outputs of the generators and the magnitudes and angles of the bus voltages are all variables whose values will be determined as the solution of an (techno-economic) optimization problem. The constraints include - the power ow equations, (1) and (2). - the power ow limits dened below.

3 AC OPTIMAL POWER FLOW

The classication into PV or PQ buses does not apply anymore: but a reference bus is still needed to x one of the bus angles (most often, to zero). The MATPOWER User Manual [1] shows how the optimization framework also allows additional constraints to be taken into consideration. For example, consider the P-Q capability curve of a generator. This means the point (p, q ), where p and q are the active and reactive power outputs, respectively, must lie within a (bounded, convex) polyhedron dened by a set of linear inequalities. Other possibilities are to treat the phase shifter angle shift and the transformer tap ratio of some branches as variables.

3.1 Power ow limits


Let (f, t, c) denote a branch where f is the from bus, t is the to bus and c is the circuit identier. Let PF F (f, t, c) and QF F (f, t, c) denote the active and reactive power ows at the from end of the branch. Similarly, for PF T (f, t, c) and QF T (f, t, c) at the to end. Then

= |Ef |[|Ef |yff,r (f, t, c) + |Et |(yf t,r (f, t, c) cos(f t ) +yf t,i (f, t, c) sin(f t ))] QF F (f, t, c) = |Ef |[|Ef |yff,i (f, t, c) + |Et |(yf t,r (f, t, c) sin(f t ) yf t,i (f, t, c) cos(f t ))] PF T (f, t, c) = |Et |[|Et |ytt,r (f, t, c) + |Ef |(ytf,r (f, t, c) cos(t f ) +ytf,i (f, t, c) sin(t f ))] QF T (f, t, c) = |Et |[|Et |ytt,i (f, t, c) + |Ef |(ytf,r (f, t, c) sin(t f ) ytf,i (f, t, c) cos(t f ))]
where yff , yf t , ytf and ytt are the entries of the branch admittance matrix Yftc , dened in subsection 2.1. The power ow limits are the constraints:
2 2 PF F (f, t, c) + QF F (f, t, c) 2 2 PF T (f, t, c) + QF T (f, t, c)

PF F (f, t, c)

(rateA(f, t, c)/baseMVA)2 (rateA(f, t, c)/baseMVA)2

(3) (4)

where rateA(f, t, c) is the long-term rating of the branch.

3.2 Cost functions


In our case, the cost functions are either piecewise-linear or quadratic. For piecewise linear cost functions, the cost data is given in the form:

(x0 , y0 ), (x1 , y1 ), . . . , (xn , yn )


with

0 = x0 < x1 < . . . < xn

and

0 = y0 < y1 < . . . < yn

Assuming that the slopes

mi = (yi yi1 )/(xi xi1 )

for i = 1, 2, . . . ..n

are non-decreasing, i.e., 0 < m1 m2 . . . mn , it is shown in MATPOWER User Manual [1], the cost y for active power output p satises the inequalities:

y mi (p xi1 ) + yi1

for i = 1, 2, . . . ..n

3 AC OPTIMAL POWER FLOW Similarly, if

(u0 , v0 ), (u1 , v1 ), . . . , (un , vn )

dene the segments for the piecwise-linear cost for reactive power, then the cost z for reactive power output q satises the inequalities

z ni (q ui1 ) + vi1
where

for i = 1, 2, . . . ..n for i = 1, 2, . . . ..n

ni = (vi vi1 )/(ui ui1 )

For quadratic cost functions, the generation cost for active power p is computed as c0 + c1 p + c2 p2 . The cost for reactive power q is similarly computed as d0 + d1 q + d2 q 2 .

3.3 Optimization problem


Let G denote the set of generators and Gi denote the subset of G assigned to the bus i. If pj and qj denote, respectively, the active and reactive power outputs of j , then

Pi Qi

= =

(
j Gi

pj Pid )/baseMVA qj Qd i )/baseMVA

(5) (6)

(
j Gi

where Pid and Qd i are the active and reactive power demands at i with

pmin pj pmax j j
and

min max and qj qj qj

if j is online

(7)

pj = 0

and

qj = 0

if j is oine

(8)

If yj denotes the cost for active power output pj , then either

yj = c0 + c1 pj + c2 p2 j
or

(9)

yj mji (pj xj,i1 ) + yj,i1


Similarly, for the cost for reactive power zj , either

for i = 1, 2, . . . n

(10)

2 zj = d0 + d1 qj + d2 qj

(11)

or

zj nji (qj uj,i1 ) + vj,i1

for i = 1, 2, . . . n

(12)

The objective function (the total cost) can now be dened:

C=
j G

(yj + zj )

(13)

The optimization problem is to minimize C subject to all the constraints described earlier.

4 IMPLEMENTATION IN GAMS

3.4 Solving AC OPF incrementally


We illustrate the facilities that GAMS framework provides for implementing algorithms by solving AC OPF incrementally. Consider the power ow limits dened in (3) and (4). If Nbr is the number of branches, then there are 2Nbr such constraints in the problem. It seems reasonable to think that only a small fraction of these constraints will be active when the optimal solution is found. So, here is a simple scheme to solve AC OPF incrementally: 1. Solve AC OPF without the constraints (3) and (4).
a a 2. For the solution just found, identify the subsets of branches, Nff and Ntt , at which the constraints (3) and (4), respectively, are violated. a a are empty, then exit: the optimal solution has been found. 3. If both Nff and Ntt

4. Add the constraints identied in step 2 and solve AC OPF again, using the last solution as the starting point. 5. Go to step 2.

4 Implementation in GAMS
The GAMS input le for any problem is quite self-explanatory. The following brief descriptions of some details are simply meant to guide a new user.

4.1 Sets
In GAMS, the basic building blocks are sets. The model is created with parameters, variables and equations dened on sets. For the PF and OPF problems, the basic sets are the buses and generarors dened by their identiers. The relationship between objects is expressed through subsets of the product sets. For example, the association between generators and buses is expressed in statements like:

Set ab(gen, bus) Generator and its associated bus / 1.1, 2.2, 3.22, 4.27, 5.23, 6.13 /;
So, 3.22 means that generator (identied by the number) 3 is assigned to the bus (identied by the number) 22. Similarly, branches are dened through statements like:

Set branch(bus, bus, ckt) /

1.2.1, 2.4.1, 3.6.1,

1.4.1, 1.5.1, 2.3.1 2.5.1, 2.6.1, 3.5.1 4.5.1, 5.6.1 /;

So, 2.4.1 is the branch connecting (from) bus 2 and (to) bus 4 with the circuit identier 1. Other subsets are dened as needed: For example:

Set

pq(bus) pv(bus) ref(bus) iso(bus)

pq buses (bus_type == 1) pv buses (bus_type == 2) reference bus (bus_type == 3) isolated bus (bus_type == 4) ; = yes$(bus_type(bus) eq 1);

pq(bus)

4 IMPLEMENTATION IN GAMS

pv(bus) = yes$(bus_type(bus) eq 2); ref(bus) = yes$(bus_type(bus) eq 3); iso(bus) = yes$(bus_type(bus) eq 4);

4.2 Data
Data are entered as scalars, parameters and tables. Parameters are lists of values dened over sets. Tables are similar to matrices used in MATPOWER case les. Additional data may be created as needed using GAMS modeling language statements. Some parameters have been dened in `main.gms' simply to show additional possibilities. Some of them are redundant and can be easily removed. To illustrate, consider the parameter ratio dened by

ratio(fbus,tbus,ckt) = branch_data(fbus,tbus,ckt, 'ratio');


Looking at `main.gms' one nds that this parameter is used only once:

denom(fbus,tbus,ckt)$branch(fbus,tbus,ckt) = ratio(fbus,tbus,ckt)$(ratio(fbus,tbus,ckt) ne 0) + 1$(ratio(fbus,tbus,ckt) eq 0);


We can avoid the parameter ratio altogether by changing the above to:

denom(fbus,tbus,ckt)$branch(fbus,tbus,ckt) = branch_data(fbus,tbus,ckt, 'ratio') $(branch_data(fbus,tbus,ckt, 'ratio') ne 0) + 1$(branch_data(fbus,tbus,ckt, 'ratio') eq 0);


From the given data, additional parameters needed in the model are generated. See the declaration : Parameters ysh_r(bus), ysh_i(bus), etc. and the following statements in `main.gms' where the terms related to the admittance matrix of the network (subsection 2.1) are computed.

4.3 AC Power Flow


The GAMS formulation of the model described in subsection 2.2 is quite transparent: it begins (in `main.gms') with the declaration:

Positive variables E(bus) Magnitude of bus voltage (p.u.)

If some generators are oine, then one checks if any PV bus must be converted to a PQ bus. The specications for the buses are made as shown:

E.fx(ref) P.fx(pq) E.fx(pv) P.fx(pv)

= Vm(ref); theta.fx(ref) = 0; = -Pd(pq)/baseMVA; Q.fx(pq) = -Qd(pq)/baseMVA; = Vm(pv); = (sum(ab(gen,pv)$online(gen),Pg(gen))-Pd(pv))/baseMVA;

The AC PF is solved as a dummy nonlinear optimization problem with the statement:

Solve power_flow minimizing zdummy using nlp;


If a feasible solution to the AC PF model is found, then the power ows can be computed: see the le `pows.gms' .

REFERENCES

4.4 AC Optimal Power Flow


For AC OPF, additional variables are declared as shown in `main.gms' :

Variables Pgen(gen) Qgen(gen) total_cost Positive variables pcost(gen) qcost(gen) Active power generation cost Reactive power generation cost Active power output of the generator Reactive power output of the generator Total cost of generation

The declarations and denitions of cost functions correspond to the optimization model described in subsections 3.2 and 3.3. Bounds on the variables Pgen and Qgen are specied in:

Pgen.lo(gen) Pgen.up(gen) Qgen.lo(gen) Qgen.up(gen)

= = = =

Pmin(gen)$online(gen); Pmax(gen)$online(gen); Qmin(gen)$online(gen); Qmax(gen)$online(gen);

So, for generators that are oine, the above bounds are all zero. The AC OPF is solved as a nonlinear optimization problem with the objective function total_cost with the statement:

Solve opf minimizing total_cost using nlp;


The last part of `main.gms' implements the algorithm described in subsection 3.4 for solving AC OPF incrementally.

References
[1] MATPOWER 3.2 User's Manual: Available online at: (http://www.pserc.cornell.edu/ matpower/). [2] F. Milano, C. A. Canizares and A. J. Conejo: Sensitivity-Based Security-Constrained OPF Market Clearing Model, IEEE Trans. on Power systems, 20(4), 2051-2060, November 2005. [3] A. J. Conejo, F. Milano and R. Garcia-Bertrand: Congestion Management Ensuring Voltage Stability, IEEE Trans. on Power systems, 21(1), 357-364, February 2006. [4] R. Minguez, F. Milano, R. Zarate-Minano and A. J. Conejo: Optimal Network Placement of SVC Devices, IEEE Trans. on Power systems, 22(4), 1851-1860, November 2007. [5] A. J. Wood and B. F. Wollenberg: Power Generation, Operation and Control, second edition, Wiley, New York (1996).

You might also like