Abstract
This chapter provides a solution for some transmission network operation and planning studies in GAMS. The transmission investment regarding building new lines and power flow controllers (phase shifter), sensitivity factors, and transmission switching have been discussed in this chapter. The GAMS code for solving each optimization problem is developed and discussed.
Access provided by CONRICYT-eBooks. Download chapter PDF
This chapter provides a solution for some transmission network operation and planning studies in GAMS. The transmission investment regarding building new lines and power flow controllers (phase shifter), sensitivity factors, and transmission switching have been discussed in this chapter. The GAMS code for solving each optimization problem is developed and discussed.
9.1 Transmission Network Planning
The question to be answered in transmission expansion planning (TEP) is when and which right of way should be selected to build a new line, perform reconductoring, build a new substation, or install power flow controllers. As a matter of fact, obtaining the public acceptance for building new transmission lines has become a challenging issue for the transmission asset owners. This also makes it difficult for transmission system operator to keep the technical and economic performance of transmission network high. The objective function is usually defined as the total operation and planning costs. Different models have been proposed for TEP purpose such as:
-
Probabilistic TEP considering load and wind power generation uncertainties [1]
-
MIP-based multi-stage TEP considering losses, generator costs, and the N − 1 security constraints [2]
-
Genetic algorithm-based TEP considering demand uncertainty [3]
-
Congestion reduction-based TEP [4]
-
Robust optimization-based TEP considering the uncertainties of renewable generation and load [5]
-
Branch and bound algorithm for TEP [6]
-
MIP-based TEP model considering different demand levels, N − 1 network security constraints as well as environmental constraints [7]
-
Multi-objective TEP considering total social costs, maximum regret (robustness criterion), and maximum adjustment cost (flexibility criterion) as three objective functions [8]
-
Monte-Carlo-based TEP considering random outages of generating units and transmission lines as well as inaccuracies in the long-term load forecasting [9]
-
An interior point method considering full AC power flow constraints [10]
-
Multi-objective TEP considering investment cost, reliability (both adequacy and security), and congestion costs [11]
-
Chance constrained TEP consideration of load and wind uncertainties [12].
9.1.1 TEP with New Lines Option
The transmission expansion planning is formulated in (9.1). It is assumed that the only planning option is building new lines.
The objective function in (9.1a) consists of operational costs (OPC) and investment costs (INVC). The operational costs are calculated in (9.1b) while the investment costs are calculated in (9.1c). (9.1d), and (9.1e) model, the power flow on branch connecting bus i to bus j. In (9.1d) and (9.1e) there is a parameter M. It is also called big M in the literature [13]. This parameter is selected as follows:
M = max ij B ij (δ i −δ j )
The power balance between the generated power, load shedding, demand, and line flows is ensured by (9.1f). The line flow limits are modeled in (9.1g) and the impacts of line investment decision α ij k are formulated. The generation operating limits are given in (9.1h). The initial status of each line is described in (9.1i).
The six-bus Garver transmission network [14] is shown in Fig. 9.1.
Transmission expansion planning data are given in Table 9.1. The existing and potential right of ways in addition to the reactances and flow limits are provided there. The investment costs (C ij ) are given in million $. The VOLL is assumed to be 1000 $/MW h. There are three generating units with different operating costs as shown in Fig. 9.1. Although the generator number 3 is the cheapest unit, however, it is not connected to the grid. The candidate right of ways are the existing ones (indicated by solid lines and the dashed ones as indicated in Fig. 9.1). The GAMS code for solving the DC power flow-based TEP is provided in GCode 9.1.
GCode 9.1 DC-OPF-based TEP
Sets bus /1*6/, slack ( bus ) /1/, Gen /g1 * g3 /, k /k1 * k4 /; Scalars Sbase /100/ , M /1000/; a l i a s (bus, node ); Table GenData(Gen, * ) Generating units c h a r a c t e r i s t i c s b pmin pmax g1 20 0 400 g2 30 0 400 g3 10 0 600; set GBconect(bus,Gen) connectivity index of each generating unit to each bus /1 . g1 3 . g2 6 . g3 / ; Table BusData(bus, * ) Demands of each bus in MW Pd 1 80 2 240 3 40 4 160 5 240; table branch (bus, node, * ) Network technical c h a r a c t e r i s t i c s X LIMIT Cost stat 1 . 2 0.4 100 40 1 1 . 4 0.6 80 60 1 1 . 5 0.2 100 20 1 2 . 3 0.2 100 20 1 2 . 4 0.4 100 40 1 2 . 6 0.3 100 30 0 3 . 5 0.2 100 20 1 4 . 6 0.3 100 30 0; Set conex (bus, node ) Bus connectivity matrix; conex (bus, node )$( branch (bus, node, ’x ’ ) )=yes; conex (bus, node ) $conex (node, bus )=yes; branch (bus, node, ’x ’ ) $branch (node, bus, ’x ’ )= branch (node, bus, ’x ’ ); branch (bus, node, ’ cost ’ ) $branch (node, bus, ’ cost ’ )= branch (node, bus, ’ cost ’ ); branch (bus, node, ’ stat ’ ) $branch (node, bus, ’ stat ’ )= branch (node, bus, ’ stat ’ ); branch (bus, node, ’ Limit ’ )$( branch (bus, node, ’ Limit ’ )=0) = branch (node, bus, ’ Limit ’ ); branch (bus, node, ’ bij ’ ) $conex (bus, node ) =1/branch (bus, node, ’x ’ ); M = smax (( bus, node ) $conex (bus, node ), branch (bus, node, ’ bij ’ ) * pi* 4 / 3 ); Variables OF, Pij (bus, node, k),Pg(Gen), delta ( bus ),LS( bus ); binary variable alpha (bus, node, k); alpha. l (bus, node, k) =1; alpha. fx (bus, node, k)$( conex (bus, node ) and ord (k)=1 and branch (node, bus, ’ stat ’ ) ) =1; Equations const1A, const1B, const1C, const1D, const1E, const2, const3; const1A (bus, node, k) $conex (node, bus ) .. Pij (bus, node, k) − branch (bus, node, ’ bij ’ ) * ( delta ( bus ) −delta ( node ) )=l= M *(1 − alpha (bus, node, k) ); const1B (bus, node, k) $conex (node, bus ) .. Pij (bus, node, k) − branch (bus, node, ’ bij ’ ) * ( delta ( bus ) −delta ( node ) )= g =− M *(1 − alpha (bus, node, k) ); const1C (bus, node, k) $conex (node, bus ) .. Pij (bus, node, k)=l= alpha (bus, node, k) * branch (bus, node, ’ Limit ’ )/Sbase; const1D (bus, node, k) $conex (node, bus ) .. Pij (bus, node, k)= g = −alpha (bus, node, k) * branch (bus, node, ’ Limit ’ )/Sbase; const1E (bus, node, k) $conex (node, bus ) .. alpha (bus, node, k)= e =alpha (node, bus, k); const2 ( bus ) .. LS( bus )+ sum(Gen$GBconect(bus,Gen),Pg(Gen) ) − BusData(bus, ’pd ’ )/Sbase = e =+ sum((k, node ) $conex (node, bus ), Pij (bus, node, k) ); const3 .. OF = g = 2 * 8 7 6 0 * ( sum(Gen, Pg(Gen) * GenData(Gen, ’b ’ ) * Sbase ) +1000* sbase * sum(bus, LS( bus ) ) ) +1e6 * sum(( bus, node, k) $conex (node, bus ), 0. 5 * branch (bus, node, ’ cost ’ ) * alpha (bus, node, k) $( ord (k)>1 or branch (node, bus, ’ stat ’ )=0)); Model loadflow /all/; option optcr =0; LS. up( bus )= BusData(bus, ’pd ’ )/Sbase; LS. lo ( bus ) =0; Pg. lo (Gen)= GenData(Gen, ’Pmin ’ )/Sbase; Pg. up(Gen)= GenData(Gen, ’Pmax ’ )/Sbase; delta. up( bus )= pi/3; delta. lo ( bus )=− pi/3; delta. fx ( slack ) =0; Pij. up(bus, node, k)$ (( conex (bus, node ) ) ) =1* branch (bus, node, ’ Limit ’ )/Sbase; Pij. lo (bus, node, k)$ (( conex (bus, node ) ) )=−1*branch (bus, node, ’ Limit ’ )/Sbase; Solve loadflow min OF us MIP;
9.1.1.1 Two Years Planning Period
The optimal TEP solution for 2 years planning period (T = 2 ∗ 8760 h) is shown in Fig. 9.2. The total operating cost is M$227.142, and the investment costs are M$110. The total costs would be M$337.140.
The optimal solutions dictate that the branch connecting bus 1 to bus 5 should be reinforced with one additional line. Bus 6 to bus 2 should be connected using three lines.
9.1.1.2 Ten Years Planning Period
The optimal TEP solution for 2 years planning period (T = 10 ∗ 8760 h) is shown in Fig. 9.3. The total operating cost is M$871.410 and the investment costs are M$162.853. The total costs would be M$1034.263. The optimal solutions dictates that the branch2–3 and branch1–5 should be reinforced with one additional line. Bus 6 to bus 2 should be connected using four lines. Bus 6 to bus 4 should be connected using two lines. It should be noted that the current model is simplistic. It needs to consider more realistic constraints. Some of them are listed as follows:
-
The model is a single period. The load duration curve (LDC) or a discrete LDC with some demand levels and their associated duration should be considered.
-
The contingencies should be taken into account. This will ensure the system operator to keep the light on even some network/generation assets fail. The failure of transmission lines or generating units might cause overloading of the remaining lines and operation of over-current relays and cause cascaded failures. It might even lead to black out.
-
The AC power flow constraints should be checked to make sure no voltage constraint or line limit is violated.
-
The voltage stability issue should also be checked.
-
The model is trying to minimize the total operating cost plus the investment costs. In deregulated environment, the transmission asset owner and the transmission system operator are two independent entities. This makes the problem more complicated since these two entities would have different objective functions. The asset owner is trying to maximize its benefit and make money by making investments. On the other hand, the system operator is trying to maximize the social welfare. The multi-objective techniques [8] or complementarity models [15] provide the suitable answer to this challenge.
-
The demand grows should be considered.
-
The formulated transmission planning model is a static model. This means that the decision is made in order to make the system capable of answering for the needs of next N years. The dynamic of investment or timing of investment and time value of money is neglected.
-
The uncertainties of the electricity market, renewable energies, demand, and regulatory frameworks should be considered to make the model robust against future scenarios.
-
The VOLL is assumed to be the same for all demands at different buses. However, the importance level of all demands is not the same. This can reduce the investment requirements for TEP.
9.1.2 TEP with New Lines and Power Flow Controller Option
This section investigates the impact of power flow controller as a planning option. The phase shifter is used as the power flow controller device. The role of the phase shifter is depicted in Fig. 9.4. The relation between the power flow, voltage angles difference across the branch ij , and the line susceptance is given in (9.2).
Although the voltage phase shift is a discrete variable in reality but it is modeled as a continuous variable for simplicity in (9.2).
The phase shifter impact is shown in (9.3d) and (9.3e). The investment decision regarding the phase shifter is reflected in (9.3f). The phase shifter can be installed on lines that initially exist or built lines as shown in (9.3h). The investment cost for each phase shifter is assumed to be γ ij = M$0.6. The optimal decisions regarding the location of phase shifter and new transmission lines 2 years plan (T = 2 ∗ 8760) are given in Fig. 9.5. The total operating cost is M$224.256 and the investment costs are M$110.6. The total costs would be M$334.856.
GCode 9.2 DC-OPF-based TEP considering phase shifter option
Sets bus / 1 * 6 / , slack ( bus ) /1/,Gen /g1 * g3 /,k /k1 * k4 /; a l i a s (bus, node ); Scalars Sbase /100/ , M /1000/, T; T=8760*2; Set conex (bus, node ); Table GenData(Gen, * ) Generating units c h a r a c t e r i s t i c s b pmin pmax g1 20 0 400 g2 30 0 400 g3 10 0 600; Set GBconect(bus,Gen) connectivity index of each generating unit to each bus /1 . g1 3 . g2 6 . g3 / ; Table BusData(bus, * ) Demands of each bus in MW Pd 1 80 2 240 3 40 4 160 5 240; table branch (bus, node, * ) Network technical c h a r a c t e r i s t i c s X LIMIT Cost stat ; conex (bus, node )$( branch (bus, node, ’x ’ ) )=yes; conex (bus, node ) $conex (node, bus )=yes; branch (bus, node, ’x ’ ) $branch (node, bus, ’x ’ )= branch (node, bus, ’x ’ ); branch (bus, node, ’ cost ’ ) $branch (node, bus, ’ cost ’ )= branch (node, bus, ’ cost ’ ); branch (bus, node, ’ stat ’ ) $branch (node, bus, ’ stat ’ )= branch (node, bus, ’ stat ’ ); branch (bus, node, ’ Limit ’ )$( branch (bus, node, ’ Limit ’ )=0) = branch (node, bus, ’ Limit ’ ); branch (bus, node, ’ bij ’ ) $conex (bus, node ) =1/branch (bus, node, ’x ’ ); M = smax (( bus, node ) $conex (bus, node ), branch (bus, node, ’ bij ’ ) * 3. 1 4 * 2 ); Variables OF, Pij (bus, node, k),Pg(Gen), delta ( bus ),LS( bus ), PSHij (bus, node, k); binary variable alpha (bus, node, k), I (bus, node, k); alpha. l (bus, node, k) =1; alpha. fx (bus, node, k)$( conex (bus, node ) and ord (k)=1 and branch (node, bus, ’ stat ’ ) ) =1; Equations const1A, const1B, const1C, const1D, const1E, const2, const3, const4, const5, const6, const7; const1A (bus, node, k) $conex (node, bus ) .. Pij (bus, node, k) −branch (bus, node, ’ bij ’ ) * ( delta ( bus ) −delta ( node )+ PSHij (bus, node, k) )=l= M *(1 − alpha (bus, node, k) ); const1B (bus, node, k) $conex (node, bus ) .. Pij (bus, node, k) −branch (bus, node, ’ bij ’ ) * ( delta ( bus ) −delta ( node )+ PSHij (bus, node, k) )= g =− M *(1 − alpha (bus, node, k) ); const1C (bus, node, k) $conex (node, bus ) .. Pij (bus, node, k)=l= alpha (bus, node, k) * branch (bus, node, ’ Limit ’ )/Sbase; const1D (bus, node, k) $conex (node, bus ) .. Pij (bus, node, k)= g = −alpha (bus, node, k) * branch (bus, node, ’ Limit ’ )/Sbase; const1E (bus, node, k) $conex (node, bus ) .. alpha (bus, node, k)= e =alpha (node, bus, k); const2 ( bus ) .. LS( bus )+ sum(Gen$GBconect(bus,Gen),Pg(Gen) ) − BusData(bus, ’pd ’ )/Sbase= e =+ sum((k, node ) $conex (node, bus ), Pij (bus, node, k) ); const3 ..OF = g = T * ( sum(Gen, Pg(Gen) * GenData(Gen, ’b ’ ) * Sbase ) +100000*sum(bus, LS( bus ) ) ) +1e6 * sum(( bus, node, k) $conex (node, bus ), 0. 5 * branch (bus, node, ’ cost ’ ) * alpha (bus, node, k)$( ord (k)>1 or branch (node, bus, ’ stat ’ )=0))+6e5 * 0. 5 * sum(( bus, node, k) $conex (node, bus ), I (bus, node, k) ); const4 (bus, node, k) $conex (node, bus ) .. PSHij (bus, node, k)+ PSHij (node, bus, k)= e=0; const5 (bus, node, k) $conex (node, bus ) .. PSHij (bus, node, k)=l=I (bus, node, k) * pi/8; const6 (bus, node, k) $conex (node, bus ) .. PSHij (bus, node, k)= g =−I (bus, node, k) * pi/8; const7 (bus, node, k) $conex (node, bus ) .. I (bus, node, k)=l=alpha (bus, node, k); Model loadflow /all/; LS. up( bus )= BusData(bus, ’pd ’ )/Sbase; LS. lo ( bus ) =0; Pg. lo (Gen)= GenData(Gen, ’Pmin ’ )/Sbase; Pg. up(Gen)= GenData(Gen, ’Pmax ’ )/Sbase; delta. up( bus )= pi/3; delta. lo ( bus )=− pi/3; delta. fx ( slack ) =0; Pij. up(bus, node, k)$ (( conex (bus, node ) ) ) =1* branch (bus, node, ’ Limit ’ )/Sbase; Pij. lo (bus, node, k)$ (( conex (bus, node ) ) )=−1*branch (bus, node, ’ Limit ’ )/Sbase; PSHij. up(bus, node, k)= pi/8; PSHij. lo (bus, node, k)=− pi/8; option optcr =0; Solve loadflow min OF us MIP;
The optimal decisions regarding the location of phase shifter and new transmission lines 10 years plan (T = 10 ∗ 8760) are given in Fig. 9.6. The total operating cost is M$805.920 and the investment costs are M$200.600. The total costs would be M$1006.520.
Nomenclature
Indices and Sets
- g :
-
Index of thermal generating units
- i, j :
-
Index of network buses
- Ω G :
-
Set of all thermal generating units
- Ω G i :
-
Set of all thermal generating units connected to bus i
- Ω ℓ i :
-
Set of all buses connected to bus i
- Ω B :
-
Set of network buses
Parameters
- M :
-
Big number
- T :
-
Duration of planning period (h)
- L i :
-
Electric power demand in bus i at time t
- b g :
-
Fuel cost coefficient of thermal unit g
- η ij 0 :
-
Initial status of branch connecting bus i to j
- C ij :
-
Investment cost for branch connecting bus i to j
- γ ij :
-
Investment cost of phase shifter in line ij
- P g max∕min :
-
Maximum/minimum limits of power generation of thermal unit g
- P ij max :
-
Maximum power flow limits of branch connecting bus i to j
- Ψ ij max :
-
Maximum phase shift in line connecting bus i to bus j
- x ij :
-
Reactance of branch connecting bus i to j
- B ij :
-
Susceptance of branch connecting bus i to j
- VOLL:
-
Value of loss of load ($/MW h)
Variables
- P ij k :
-
Active power flow of branch k connecting bus i to j (MW)
- P g :
-
Active power generated by thermal unit g (MW)
- α ij k :
-
Binary variable to model the investment decision regarding the line k at the right of way ij
- I ij k :
-
Binary variable to model the investment decision regarding the phase shifter in line k at the right of way ij
- λ i :
-
Locational marginal price in bus i ($/MW h)
- LS i :
-
Load shedding in bus i (MW)
- Ψ ij :
-
Phase shift in line connecting bus i to bus j
- OPC:
-
Total operating costs ($)
- OF:
-
Total costs ($)
- INVC:
-
Total investment costs ($)
- δ i :
-
Voltage angle of bus i (rad)
9.2 Sensitivity Factors in Transmission Networks
In this section two important factors are analyzed and calculated namely:
-
Generation Shift Factor (GSF)
-
Line Outage Distribution Factor (LODF)
9.2.1 Generation Shift Factors
The transmission network planner/operator is always interested to know what happens to the line flows if any outage happens in generation units. In other words, what is the influence of generation/demand change in bus i on the line ℓ (connecting bus n to bus m)? It is important since there is always a chance for contingencies to happen in generating units. This section will provide an answer to this question.
The DC power flow equations of the network shown in Fig. 9.7 is provided in (9.4).
By substituting the numerical values of x ij in (9.4) we will have:
(9.4) can be written as: \(\left (\begin{array}{c} P_{1} \\ P_{2} \\ P_{3} \end{array} \right ) = \left (\begin{array}{ccc} 15 & - 10& - 5\\ - 10 & 14 & - 4 \\ - 5 & - 4 & 9 \end{array} \right ) = \left (\begin{array}{c} \delta _{1}\\ \delta _{ 2}\\ \delta _{3} \end{array} \right )\) where P i = P i g − L i . Suppose \(B = \left (\begin{array}{ccc} 15 & - 10& - 5\\ - 10 & 14 & - 4 \\ - 5 & - 4 & 9 \end{array} \right )\) then we can have the relation between the bus angles and the net injections as a linear matrix form.
In normal DC power flow, the P vector is known and the decision maker’s goal is to find the δ vector. The problem is that matrix B is singular and does not have a matrix inverse.
The good news is that the bus angle at slack bus is known to be zero. If the slack bus is bus 1 then we can have the following matrix form:
Now the matrix can be inversed as follows
We can write down (9.8) as a general form
where B red is the B matrix after eliminating the row and column of slack bus. If the network has n buses then B red would be a square (n − 1) × (n − 1) matrix. For the rest of this chapter, whenever X appears in any equation it is representing X red.
Now we are about to investigate the impact of change in power injection in bus n on the line flow between bus i and bus j. The flow on line connecting bus i to bus j is calculated as follows:
Now we assume that any change in injected power at bus m will be compensated by the slack bus. In order to calculate the flow change in line i − j we need to use the following equation:
The value of x ij remains constant but the voltage angles would change if ΔP is happening at bus m (and −ΔP at slack bus). Referring to (9.9) we would have
The changes of voltage angles in bus i and j are calculated as follows:
The (9.17) states that the sensitivity of the flow in line ij of power change in bus m is obtained as follows:
Using the (9.18) is useful in calculating the line flows in post-contingency period.
If the post-contingency line flow at line ij after the failure of a generating unit at bus m (producing P m g MW) is to be calculated then the following equation can be used:
If the post-contingency line flow at line ij after the disconnection of load at bus m is to be calculated then the following equation can be used:
Now let’s calculate the Generation Shift Factors (a m ij) for the network shown in Fig. 9.7.
The GCode 9.3 described the GAMS code for calculating the generation shift factors.
GCode 9.3 Generation Shift Factor Calculation
Sets bus / 1 * 3 / , slack ( bus ) /1/,Gen /g1 * g3 /, nonslack ( bus ) / 2 * 3 / ; scalars Sbase /100/ ; a l i a s (bus, node, shin, knot ); a l i a s ( nonslack, nonslackj ); Table branch (bus, node, * ) Network technical c h a r a c t e r i s t i c s X LIMIT stat 1 . 2 0.1 100 1 1 . 3 0.2 80 1 2 . 3 0.25 100 1; set conex (bus, node ) Bus connectivity matrixl; conex (bus, node )$( branch (bus, node, ’x ’ ) )=yes; conex (bus, node ) $conex (node, bus )=yes; branch (bus, node, ’x ’ ) $branch (node, bus, ’x ’ )= branch (node, bus, ’x ’ ); branch (bus, node, ’ stat ’ ) $branch (node, bus, ’ stat ’ )= branch (node, bus, ’ stat ’ ); branch (bus, node, ’ Limit ’ )$( branch (bus, node, ’ Limit ’ )=0) = branch (node, bus, ’ Limit ’ ); branch (bus, node, ’ bij ’ ) $conex (bus, node ) =1/branch (bus, node, ’x ’ ); Parameter Bmatrix (bus, node ), Binv (bus, node ),Flow(bus, node ); Alias (bus, knot ); Bmatrix (bus, node )$( conex (node, bus ) )=− branch (bus, node, ’ bij ’ ); Bmatrix (bus, bus )= sum( knot$conex ( knot, bus ),−Bmatrix (bus, knot ) ); parameter Breduced ( nonslack, nonslackj ),GSHF(bus, node, knot ); Breduced ( nonslack, nonslackj )= Bmatrix ( nonslack, nonslackj ); parameter inva ( nonslack, nonslackj ) ’ inverse of a ’; execute_unload ’a. gdx ’, nonslack, Breduced; execute ’=invert. exe a. gdx nonslack Breduced b. gdx inva ’; execute_load ’b. gdx ’, inva; Binv ( nonslack, nonslackj )=inva ( nonslack, nonslackj ); GSHF(bus, node, knot ) $conex (bus, node )= branch (bus, node, ’ bij ’ ) * ( Binv (bus, knot ) −Binv (node, knot ) ); Display Bmatrix, Binv,GSHF;
The GCode 9.3 has no solve statement or variable. This is because no optimization is going to be done. First of all, the B matrix is calculated in GCode 9.3 as follows:
Parameter Bmatrix(bus,node);
Alias(bus,knot);
Bmatrix(bus,node)$conex(node,bus)=-branch(bus,node,’bij’);
Bmatrix(bus,bus)=sum(knot$conex(knot,bus),-Bmatrix(bus,knot));
This would calculate the Bmatrix as follows:
—- 68 PARAMETER Bmatrix
Now we need to eliminate the row and column containing the slack bus. In order to do this, another parameter called Breduced is defined but over the non-slack bus set. This set is defined over all buses except the slack buses.
Parameter Breduced(nonslack,nonslackj);
Breduced(nonslack,nonslackj)=Bmatrix(nonslack,nonslackj);
Parameter inva(nonslack,nonslackj) ’inverse of a’;
execute_unload ’a.gdx’, nonslack, Breduced;
execute ’=invert.exe a.gdx nonslack Breduced b.gdx inva’;
execute_load ’b.gdx’, inva;
This would calculate the inverse matrix of the reduced B matrix.
—- 68 PARAMETER Binv
Now all needed data for calculating the a m ij is available. The generation shift factors are calculated as follows:
Binv(nonslack,nonslackj)=inva(nonslack,nonslackj);
GSHF(bus,node,knot)$conex(bus,node)=branch(bus,node,’bij’)*(Binv (bus,knot)-Binv(node,knot));
Using the GCode 9.3, the generation shift factors are calculated as Table 9.2.
The generation shift factors (GSHF) have the following interesting features as follows:
-
The procedure for calculating the GSHF does not involve any optimization
-
The values of GSHF can be calculated in advance and be used in real-time applications.
-
The values of GSHF do not depend on the loading condition of the network. These coefficients only depend on the network topology. If the network topology is changed (due to transmission outage or switching), GSHF should be recalculated.
-
The technique we used for calculating the GSHF is assuming that the changes at any bus are quickly compensated by the slack bus. In case the changes are compensated by multiple generating units then the calculation procedure would be slightly different [16].
-
The GSHF are also useful for understanding how to reduce the line loading. For example, suppose we need to reduce the flow at line 3 − 1. As we can see that bus 3 has the largest GSHF equal to 0.636. It means that if we can reduce the generation at bus 3, then a negative value will be added to the initial flow of line 3 − 1. If the initial flow from bus 3 to bus 1 is positive, then it would reduce.
Now let’s check the values obtained in Table 9.2. For this purpose, the base power flow is solved and is shown in Fig. 9.8. The values of line flow, as well as the voltage angles, are specified in this figure. Suppose it is desired to increase the flow on the line connecting the bus 3 to bus 2. The power flow on this line is f 32 0 = 2. 7 MW. Using the Table 9.2 states that a 2 32 = −0. 182 and a 3 32 = 0. 364. Let’s investigate the impact of changes in power injections in different buses on transmission lines.
9.2.1.1 Demand Increase in L 2 by 10 MW
The demand in bus 2 is increased by 10 MW and the new line flows are depicted in Fig. 9.9. As it can be seen in this figure, the new line flow of line 3 − 2 is 4.5 MW. This is obtained using a GAMS code. Let’s calculate the new line flow using the Table 9.2. The new line flow is calculated as follows:
It should be noted that the flow values as well as the change in power injection at bus 2 are expressed in pu. ΔP 2 is representing the change in bus injection at bus 2 which is − 10 MW or 0.1 pu. It can be observed that the results confirm what is obtained by solving the DC power flow as shown in Fig. 9.9.
9.2.1.2 Generation Increase in P 3 g by 10 MW
The generation in bus 3 is increased by 10 MW and the new line flows are depicted in Fig. 9.10 which are obtained using a GAMS code. Let’s calculate the new line flow using the GSHF in Table 9.2. The new line flow is calculated as follows:
9.2.2 Line Outage Distribution Factors
The impact of line outages on power flow of other lines is investigated in this section. Consider the line connecting the bus n and m as shown in Fig. 9.11. In Fig. 9.11a, the intact network is shown. We need to find out the impact of the line outage of the branch connecting bus n to bus m on the rest of the network. Suppose the flow of this line is initially equal to f nm 0. The power from the rest of the network injected to bus n is equal to power absorption from bus m to the rest of network when no contingency has happened. We need to find a way to make these flows equal to zero. It is done using a very smart trick [17]. If we add two injections to the network: + ΔP n at bus n and another one equal to −ΔP n at bus m the flow on the line nm would change as shown in Fig. 9.11b. The question is what is the new flow on this line? The change of flow on line nm can be easily calculated using the following equation:
This means that
Now the post-contingency line flow is calculated as follows:
If the virtual injection to the grid ΔP n is carefully chosen then f nm post = ΔP n . This makes the flow from the rest of the network to bus n and m equal to zero (line outage).
Combining the (9.29) with (9.31) gives us:
Now the change in power flow in line ij is calculated as follows:
The GCode 9.4 is developed to calculate the Line outage distribution factors for the network shown in Fig. 9.7.
GCode 9.4 Line outage distribution factor calculation
Sets bus / 1 * 3 / , slack ( bus ) /1/, Gen /g1 * g3 /, nonslack ( bus ) / 2 * 3 / ; Scalars Sbase /100/ ; Alias (bus, node, shin, knot ); Alias ( nonslack, nonslackj ); Table branch (bus, node, * ) Network technical c h a r a c t e r i s t i c s X LIMIT stat 1 . 2 0.1 100 1 1 . 3 0.2 80 1 2 . 3 0.25 100 1; Set conex (bus, node ) Bus connectivity matrixl; conex (bus, node )$( branch (bus, node, ’x ’ ) )=yes; conex (bus, node ) $conex (node, bus )=yes; branch (bus, node, ’x ’ ) $branch (node, bus, ’x ’ )= branch (node, bus, ’x ’ ); branch (bus, node, ’ stat ’ ) $branch (node, bus, ’ stat ’ )= branch (node, bus, ’ stat ’ ); branch (bus, node, ’ Limit ’ )$( branch (bus, node, ’ Limit ’ )=0) = branch (node, bus, ’ Limit ’ ); branch (bus, node, ’ bij ’ ) $conex (bus, node ) =1/branch (bus, node, ’x ’ ); Parameter Bmatrix (bus, node ), Binv (bus, node ); Alias (bus, knot ); Bmatrix (bus, node )$( conex (node, bus ) )=− branch (bus, node, ’ bij ’ ); Bmatrix (bus, bus )= sum( knot$conex ( knot, bus ),−Bmatrix (bus, knot ) ); parameter Breduced ( nonslack, nonslackj ),GSHF(bus, node, knot ),X0(bus, node ); Breduced ( nonslack, nonslackj )= Bmatrix ( nonslack, nonslackj ); Parameter inva ( nonslack, nonslackj ) ’ inverse of a ’, Dfactor (bus, node, knot, shin ), contingency (bus, node, knot, shin ); execute_unload ’a. gdx ’, nonslack, Breduced; execute ’=invert. exe a. gdx nonslack Breduced b. gdx inva ’; execute_load ’b. gdx ’, inva; Binv ( nonslack, nonslackj )=inva ( nonslack, nonslackj ); GSHF(bus, node, knot ) $conex (bus, node )= branch (bus, node, ’ bij ’ ) * ( Binv (bus, knot ) −Binv (node, knot ) ); dfactor (bus, node, knot, shin )$( conex (bus, node ) and conex ( knot, shin ) and ( ord ( bus ) >ord ( node ) ) and ( ord ( knot ) >ord ( shin ) ) and ( ord ( bus ) <>ord ( knot ) or ord ( node ) <>ord ( shin ) ) )= branch (bus, node, ’ bij ’ ) * ( Binv (bus, knot ) −Binv (bus, shin ) −Binv (node, knot ) + Binv (node, shin ) )/(1−branch ( knot, shin, ’ bij ’ ) * ( Binv ( knot, knot ) + Binv ( shin, shin ) −2* Binv ( knot, shin ) ) ); Display Bmatrix, Binv,GSHF, dfactor;
Line outage distribution factors (LODF ij, nm ) are described in Table 9.3.
The branch data for IEEE RTS 24-bus network is provided in Table 9.4. The LODF and GSF coefficients are calculated for IEEE RTS 24-bus (Fig. 9.12) and are given in Tables 9.5 and 9.6, respectively.
9.3 Transmission Network Switching
The idea of optimal transmission switching (OTS) has been broadly investigated in the literature [18]. Opening a set of transmission lines would change the network topology and the line flow patterns. This can be used to relieve the line congestion in the system and reduce the operating costs. Some research works which used the transmission switching as a flexibility tool are listed as follows:
-
DC-OPF considering N − 1 contingencies [19]
-
Co-optimization of unit commitment and transmission switching with N − 1 reliability constraints [20]
-
Robust transmission switching considering N − k contingencies [21]
-
Optimal transmission switching considering short-circuit current limitation constraints [22]
-
Probabilistic security analysis of OTS [23]
-
Chance-constrained OTS with guaranteed wind power utilization [24]
-
Heuristics OTS based on DC-OPF and AC-OPF [25]
In this section, the OTS is solved using GAMS and then we will discuss how this model can be improved and extended. The transmission switching problem is formulated as a MIP model in (9.36).
where ζ ij is the on/off state of the branch connecting bus i to bus j, and N sw is the number of allowed switching actions in the network.
The operating and congestion cost vs number of switched lines in IEEE 118-bus network (Fig. 9.13) are depicted in Fig. 9.14. The GAMS code for solving the (9.36) is provided in GCode 9.5.
GCode 9.5 The OTS GAMS code for IEEE 118-bus network
Sets bus /1*118/, slack ( bus ) /13/, conex (bus, node ), GenNo /Gen1 * Gen54/, counter /c0 * c10 /; Scalars Sbase /100/; Alias (bus, totalbus, node ); Table GenDatanew(bus,GenNo, * ) b pmin pmax ; Table BusData(bus, * ) buss c h a r a c t e r i s t i c s Pd ; Table branch (bus, totalbus, * ) x Ilim ; branch (bus, totalbus, ’ bij ’ ) $branch ( totalbus, bus, ’x ’ ) =1/branch (bus, totalbus, ’x ’ ); conex (bus, node ) $branch (bus, node, ’x ’ )=yes; parameter branch (bus, totalbus, * ),M,NSW, report ( counter, * ); M = smax (( bus, node ) $conex (bus, node ), branch (bus, node, ’ bij ’ ) * 2 * pi/3); Positive variable Pg(GenNo); Variables Pij (bus, node ), delta ( bus ),ROF; BINARY VARIABLE SW (bus, node ); Equations const0, const1, const2, const3, const0A, const0B, const0C, const0D, const0E, const0F; const0 (bus, node ) $conex (bus, node ) .. Pij (bus, node )= e = branch (bus, node, ’ bij ’ ) * ( delta ( bus ) −delta ( node ) ); const1 ( bus ).. sum(GenNo$GenDatanew(bus,GenNo, ’Pmax ’ ),Pg(GenNo) ) − BusData(bus, ’Pd ’ )/ sbase= e =+ sum( node$conex (node, bus ), Pij (bus, node ) ); const2 .. ROF = g = sum((GenNo, bus )$GenDatanew(bus,GenNo, ’Pmax ’ ), GenDatanew(bus,GenNo, ’b ’ ) * Pg(GenNo) * Sbase ); const0A (bus, node ) $conex (bus, node ).. Pij (bus, node ) −branch (bus, node, ’ bij ’ ) * ( delta ( bus ) −delta ( node ) )=l= M *(1 − SW (bus, node ) ); const0B (bus, node ) $conex (bus, node ).. Pij (bus, node ) −branch (bus, node, ’ bij ’ ) * ( delta ( bus ) −delta ( node ) )= g =− M *(1 − SW (bus, node ) ); const0C (bus, node ) $conex (bus, node ).. Pij (bus, node )=l= SW (bus, node ) * branch (bus, node, ’ Ilim ’ ); const0D (bus, node ) $conex (bus, node ).. Pij (bus, node )= g =− SW (bus, node ) * branch (bus, node, ’ Ilim ’ ); const0E (bus, node ) $conex (bus, node )..SW (node, bus )= e = SW (bus, node ); const0F (bus, node ) $conex (bus, node ).. Pij (node, bus )= e =−Pij (bus, node ); const3 .. 0. 5 * sum(( bus, node ) $conex (bus, node ),1− SW (bus, node ) )=l= NSW; model BASE /const0, const1, const2 /; model Switching/const1, const2, const0A, const0B, const0C, const0D, const0E, const0F, const3 /; Option Optca=0; Option Optcr=0; BusData(bus, ’Pd ’ ) =1.1* BusData(bus, ’Pd ’ ); Pg. lo (GenNo)= sum(bus, GenDatanew(bus,GenNo, ’Pmin ’ ) )/Sbase; Pg. up(GenNo)= sum(bus, GenDatanew(bus,GenNo, ’Pmax ’ ) )/Sbase; delta. up( bus )= pi/3; delta. lo ( bus )=− pi/3; delta. l ( bus ) =0; delta. fx ( slack ) =0; Pij. up(bus, node ) $conex (bus, node )= 1 * branch (bus, node, ’ Ilim ’ ); Pij. lo (bus, node ) $conex (bus, node )=−1*branch (bus, node, ’ Ilim ’ ); Solve BASE minimizing ROF using lp; SW. l (bus, node ) =1; report ( ’ c0 ’, ’OF’ )= ROF. l; report ( ’ c0 ’, ’ NSW’ ) =0.5*sum(( bus, node ) $conex (bus, node ),1− SW. l (bus, node ) ); report ( ’ c0 ’, ’ Congestion ’ ) =0.5*sum(( bus, node ) $conex (bus, node ), (−const1.m ( bus )+const1.m ( node ) ) * Pij. l (bus, node ) ); loop ( counter $( ord ( counter )>1), NSW = ord ( counter ) −1; Solve switching minimizing ROF using mip; report ( counter, ’OF’ )= ROF. l; report ( counter, ’ NSW’ ) =0.5*sum(( bus, node ) $conex (bus, node ),1− SW. l (bus, node ) ); report ( counter, ’ Congestion ’ ) =0.5*sum(( bus, node ) $conex (bus, node ), (−const1.m ( bus )+const1.m ( node ) ) * Pij. l (bus, node ) ); );
Increasing the demand in a given area or bus (or equivalently losing the generation) might cause congestion and increasing the total operating costs. The OTS can be used to enhance the grid utilization and reduce the line congestions. A simple analysis is conducted as follows:
-
The demand at bus i is increased for 20 MW.
-
The DC OPF is solved without considering the transmission switching option (LP model).
-
The DC OPF along with transmission switching option is solved (MIP model).
The comparison of the total operating costs between the with/without transmission switching cases are shown in Fig. 9.15. The impact of connecting a new demand to different buses would cause different changes in total operating costs. In all cases, using the transmission switching flexibility can reduce the operating costs as shown in Fig. 9.15.
Using the transmission switching might change the LMP values at different buses. The LMP values (λ i ) in $/MW h at different buses in with/without transmission switching cases. As it is shown in Fig. 9.16, when no switching is allowed (N sw = 0) then the LMP values of switching and not switching cases are the same. By increasing the number of switchable lines, the LMP values get closer to each other. The generation and branch data of IEEE 118 bus are given in Tables 9.7 and 9.8, respectively.
The developed GAMS code for OTS can be improved to consider the following issues:
-
The model should be multi-period. The OTS should consider the variation pattern of demand and then determine the optimal switching actions.
-
The uncertainty of demand and renewable power generation should be taken into account.
-
The current formulation does not ensure the network connectivity. It only tries to satisfy the nodal demand-supply constraint. The resultant system (after switching) might contain some islands.
-
The computation burden of the model should be improved to make it applicable for large scale transmission networks.
-
The AC power flow constraints should be used for getting closer to reality.
-
The unit commitment constraints can be added to the formulation to consider the on/off states of the units as the decision variables.
-
Changing the transmission network topology might change the short circuit level on each bus. This should be taken into account for protection issues.
-
The current model only considers the intact condition of the network. The contingencies should also be considered.
-
The OTS flexibility can be combined with demand response and power flow controller devices.
-
The bus splitting can be regarded as a switching action.
References
G.A. Orfanos, P.S. Georgilakis, N.D. Hatziargyriou, Transmission expansion planning of systems with increasing wind power integration. IEEE Trans. Power Syst. 28(2), 1355–1362 (2013)
H. Zhang, V. Vittal, G.T. Heydt, J. Quintero, A mixed-integer linear programming approach for multi-stage security-constrained transmission expansion planning. IEEE Trans. Power Syst. 27(2), 1125–1133 (2012)
I. De J. Silva, M.J. Rider, R. Romero, C.A.F. Murari, Transmission network expansion planning considering uncertainty in demand. IEEE Trans. Power Syst. 21(4), 1565–1573 (2006)
J.D. Finney, H.A. Othman, W.L. Rutz, Evaluating transmission congestion constraints in system planning. IEEE Trans. Power Syst. 12(3), 1143–1150 (1997)
R.A. Jabr, Robust transmission network expansion planning with uncertain renewable generation and loads. IEEE Trans. Power Syst. 28(4), 4558–4567 (2013)
S. Haffner, A. Monticelli, A. Garcia, J. Mantovani, R. Romero, Branch and bound algorithm for transmission system expansion planning using a transportation model. IEE Proc. Gener. Transm. Distrib. 147(3), 149–156 (2000)
A.K. Kazerooni, J. Mutale, Transmission network planning under security and environmental constraints. IEEE Trans. Power Syst. 25(2), 1169–1178 (2010)
P. Maghouli, S.H. Hosseini, M. Oloomi Buygi, M. Shahidehpour, A scenario-based multi-objective model for multi-stage transmission expansion planning. IEEE Trans. Power Syst. 26(1), 470–478 (2011)
J.H. Roh, M. Shahidehpour, L. Wu, Market-based generation and transmission planning with uncertainties. IEEE Trans. Power Syst. 24(3), 1587–1598 (2009)
M.J. Rider, A.V. Garcia, R. Romero, Power system transmission network expansion planning using AC model. IET Gener. Transm. Distrib. 1(5), 731–742 (2007)
P. Maghouli, S.H. Hosseini, M.O. Buygi, M. Shahidehpour, A multi-objective framework for transmission expansion planning in deregulated environments. IEEE Trans. Power Syst. 24(2), 1051–1061 (2009)
H. Yu, C.Y. Chung, K.P. Wong, J.H. Zhang, A chance constrained transmission network expansion planning method with consideration of load and wind farm uncertainties. IEEE Trans. Power Syst. 24(3), 1568–1576 (2009)
M.R. Bussieck, A. Pruessner, Mixed-integer nonlinear programming. SIAG/OPT Newsl. Views News 14(1), 19–22 (2003)
R. Romero, A. Monticelli, A. Garcia, S. Haffner, Test systems and mathematical models for transmission network expansion planning. IEE Proc. Gener. Transm. Distrib. 149(1), 27–36 (2002)
L. Baringo, A.J. Conejo, Transmission and wind power investment. IEEE Trans. Power Syst. 27(2), 885–893 (2012)
A.J. Wood, B.F. Wollenberg, Power Generation Operation and Control, 2nd edn. (Wiley, New York, 1996)
A.J. Wood, B.F. Wollenberg, Power Generation, Operation, and Control (Wiley, New York, 2012)
E.B. Fisher, R.P. O’Neill, M.C. Ferris, Optimal transmission switching. IEEE Trans. Power Syst. 23(3), 1346–1355 (2008)
K.W. Hedman, R.P. O’Neill, E.B. Fisher, S.S. Oren, Optimal transmission switching with contingency analysis. IEEE Trans. Power Syst. 24(3), 1577–1586 (2009)
K.W. Hedman, M.C. Ferris, R.P. O’Neill, E.B. Fisher, S.S. Oren, Co-optimization of generation unit commitment and transmission switching with n-1 reliability. IEEE Trans. Power Syst. 25(2), 1052–1063 (2010)
T. Ding, C. Zhao, Robust optimal transmission switching with the consideration of corrective actions for n-k contingencies. IET Gener. Transm. Distrib. 10(13), 3288–3295 (2016)
Z. Yang, H. Zhong, Q. Xia, C. Kang, Optimal transmission switching with short-circuit current limitation constraints. IEEE Trans. Power Syst. 31(2), 1278–1288 (2016)
P. Henneaux, D.S. Kirschen, Probabilistic security analysis of optimal transmission switching. IEEE Trans. Power Syst. 31(1), 508–517 (2016)
F. Qiu, J. Wang, Chance-constrained transmission switching with guaranteed wind power utilization. IEEE Trans. Power Syst. 30(3), 1270–1278 (2015)
M. Soroush, J.D. Fuller, Accuracies of optimal transmission switching heuristics based on dcopf and acopf. IEEE Trans. Power Syst. 29(2), 924–932 (2014)
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this chapter
Cite this chapter
Soroudi, A. (2017). Topics in Transmission Operation and Planning. In: Power System Optimization Modeling in GAMS. Springer, Cham. https://doi.org/10.1007/978-3-319-62350-4_9
Download citation
DOI: https://doi.org/10.1007/978-3-319-62350-4_9
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-62349-8
Online ISBN: 978-3-319-62350-4
eBook Packages: EnergyEnergy (R0)