Professional Documents
Culture Documents
PowerSystemNotes S7
PowerSystemNotes S7
PowerSystemNotes S7
edu/~grady/, 10/29/98
Section 7. Loadflow
The loadflow problem is one of the classic power system engineering problems. During the early
days of digital computers, many advances in techniques for solving large sets of equations were
brought about specifically to help solve the loadflow problem.
In most electrical circuit analyses, the network consists of known impedances, voltage sources,
and current sources. However, in the loadflow problem, active and reactive powers, rather than
shunt impedances, are specified at most network busses, because most loads behave, on average,
as constant power loads (active and reactive power), as long as their applied voltage remains
within reasonable ranges. Consider, for example, the air conditioning load of a building. A
certain amount of energy is required to maintain ∆T between inside and outside temperatures.
Even though the air conditioner cycles on-and-off, and the voltage may change slightly, the air
conditioning load appears, on the average, as a fixed power load, rather than as a fixed impedance
load.
Power system loads are closely monitored at substations, at large customers, and for total electric
utility companies. Loads tend to have predictable daily, weekly, and seasonal patterns. Annual
peak demands and energies for electric utilities are forecasted for generation and planning
purposes.
The purpose of the loadflow program is to compute bus voltages and line/transformer/cable
power flows once network topology, impedances, loads, and generators have been specified.
Ideally, the computed bus voltages for the study system should remain within acceptable ranges,
and line/transformer/cable power flows should be below their rated values, for a reasonable set of
outage contingencies.
From a loadflow perspective, there are four parameters at every bus - voltage magnitude V,
voltage angle δ , active power P, and reactive power Q. Two may be specified, and the other two
calculated. For most busses, P and Q are specified, and V and δ are calculated. Obviously, P and
Q cannot be specified at all busses because that would imply that system losses are known a
priori. Therefore, the loadflow problem must include one "swing bus" at which the P can assume
any value so that it "makes up" system losses. The swing bus is usually a centrally-located large
generator whose voltage magnitude and phase angle (usually δ = zero) are specified.
Although any two of the four parameters can be specified, the usual way in which power system
busses are classified is given in Table 7.1.
7-1
Grady, /www.ece.utexas.edu/~grady/, 10/29/98
PQ (Load Bus) P, Q V, δ
PV (Generator Bus) P, V Q, δ
Vδ (Swing Bus) V, δ P, Q
The loadflow program solves for the set of unknowns that produces power balance at all busses,
or as illustrated for bus i in Figure 7.1,
where
Picalc + jQicalc = Vi I i* .
In other words, the power specified at each bus must equal the power flowing into the system.
Note in Figure 7.1 that specified power is drawn as positive generation, to be consistent with
KCL equation YV=I.
Since there are two unknowns at every bus, the size of the loadflow problem is 2N, where N is the
number of busses. Obviously, to solve the problem, there must be two equations for every bus.
These come from KCL, which for any bus i have the form
*
N
Pispec + jQispec = Picalc + jQicalc = Vi I i* = Vi ∑ y i, jV j .
j =1
Separating into real and imaginary components yields two equations for bus i,
7-2
Grady, /www.ece.utexas.edu/~grady/, 10/29/98
( )
N
Pispec = ∑ Vi yi, j V j cos δ i − δ j − θ i, j ,
j =1
( )
N
Qispec = ∑ Vi yi, j V j sin δ i − δ j − θ i, j ,
j =1
where Vi = Vi ∠δ i , Vi = Vi ∠δ i , y i, j = y i, j ∠θ i, j .
The problem now is now to find the set of bus voltages that satisfies the above 2N equations.
Gauss-Seidel is an early formulation of the loadflow problem that requires little memory and it is
easily programmed. However, it is usually slower than other methods. It is based upon the idea
of expanding the complex form of the power balance equation as follows:
* *
N N
Pi spec
+ jQispec = Vi I i* = Vi ∑
j =1
yi, jV j = Vi yi, iVi + ∑ yi, jV j ,
j =1, j ≠ i
or
N
Pispec − jQispec = Vi* yi, iVi + Vi* ∑ y i , jV j ,
j =1, j ≠ i
so that
1 P spec − jQ spec N
Vi = i i
− ∑ y i , jV j .
y i,i Vi* j =1, j ≠ i
1. Initialize the bus voltages. For load busses, use V = 1 + j0. For generator busses
(including the swing bus), use V = Vspec + j 0 .
7-3
Grady, /www.ece.utexas.edu/~grady/, 10/29/98
For PV busses, update the voltage angle, while holding the voltage magnitude constant at
the specified value. Do not update the swing bus.
3. Check the mismatch P and Q at each bus. If all are within tolerance (typical tolerance is
0.00001 pu), a solution has been found. Otherwise, return to Step 2.
Convergence is usually faster if an acceleration factor is used. For example, assume that the
voltage at bus i at iteration m is Vim , and that the updating equation in Step 2 computes V jnew .
(
Vim+1 = Vim + α Vinew − Vim , )
where acceleration factor α is in the range of 1.2 to 1.6.
The Newton-Raphson method is a very powerful loadflow solution technique that incorporates
first-derivative information when computing voltage updates. Normally, only 3 to 5 iterations are
required to solve the loadflow problem, regardless of system size. Newton-Raphson is the most
commonly used loadflow solution technique.
An easy way to illustrate the Newton-Raphson technique is to solve a simple equation whose
answers are already known. For example, consider
(x − 1)(x − 99) = 0 ,
which when expanded becomes
x 2 − 100 x + 99 = 0 .
f ( x ) = x 2 − 100 x + 99 = 0 .
Of course, in this case, the two solutions are known a priori as x = 1, and x = 99.
The Newton-Raphson procedure is based on Taylor's expansion, truncated past the first
derivative, which gives
∂f ( x )
f ( x + ∆x ) ≈ f ( x) + (∆x ) .
∂x x
7-4
Grady, /www.ece.utexas.edu/~grady/, 10/29/98
The objective is to find ∆x so that f ( x + ∆x ) is the desired value (which in this example is zero).
Solving for ∆x yields
f ( x + ∆x ) − f ( x )
∆x = ,
∂f ( x )
∂x x
0 − f ( x ) − f ( x)
∆x = = .
∂f ( x ) ∂f ( x )
∂x x ∂x x
( m+1) ( m) (m ) f ( x ( m) )
x =x + ∆x = x − ,
∂f ( x )
∂x x ( m )
∂f ( x )
= 2 x − 100 .
∂x
∂f ( x )
Iteration - m x f(x)
∂x
0 2 -97 -96
1 0.9896 1.0193 -98.02
2 0.9999 0.0098 -98.00
Additional iterations can be performed if tighter solution tolerance is needed. Note that if a
starting point of x = 50 had been chosen, the partial derivative would have been zero, and the
method would have failed.
7-5
Grady, /www.ece.utexas.edu/~grady/, 10/29/98
∂f ( x )
Iteration - m x f(x)
∂x
0 80 -1501 60
1 105.02 626.2 110.04
2 99.33 32.45 98.66
3 99.00 0 98.00
Therefore, the starting point greatly affects the ability of a Newton-Raphson method to converge,
and the answer to which it converges. Fortunately, in the loadflow problem, most voltages are
near 1.0 pu in magnitude and 0.0 degrees, so that we are able to accurately estimate starting
values.
For the loadflow problem, the Newton-Raphson method is expanded in matrix form. For
example, consider a set of N nonlinear equations and N unknowns,
f1 (x1 , x 2 , L, x N ) = y1
f 2 (x1 , x 2 , L, x N ) = y2
.
M M M
f N (x1 , x 2 , L , x N ) = yN
The task is to find the set of unknown x1 , x2 , L, x N , given the known set y1 , y 2 ,L, y N , and
(0) (0) (0)
given a starting point x1 , x 2 , L , x N .
Applying Taylor's theorem as before, truncated after the first derivative, yields for Row i
( ) (
y i ≈ f i x1(0) + ∆x1 , x 2(0) + ∆x 2 ,L , x (N0) + ∆x N = f i x1(0) , x 2(0) ,L , x N )
(0)
+
∂f i ∂f ∂f
+ ∆x1 + ∆x 2 i + L + ∆x N i ,
∂x1 x(0) ∂x 2 x(0) ∂x N x ( 0 )
7-6
Grady, /www.ece.utexas.edu/~grady/, 10/29/98
∂ f1 ∂ f1 ∂f 1
y1 ∂x1 ∂x 2
L
∂x N (
(0) (0)
∆x1 f1 x1 , x 2 , L , x N
(0)
)
y ∂f 2
2 ≈ ∂x
∂f 2
∂x 2
L
∂f 2
∂x N 2 + 2 1
(
∆x f x (0) , x (0) , L , x (0)
2 N ) ,
M 1 M M
( )
M M M
∆x (0) (0) (0)
y N ∂f N ∂f N ∂f N N f N x1 , x 2 , L , x N
L
∂x1 ∂x 2 ∂x N
or
y − ( )
(0)
f1 x1(0) , x 2(0) ,L , x N ∆x1
1
y2 −
( (0) (0)
f 2 x1 , x 2 ,L , x N )(0)
∆x
≈ [J ] M ,
2
M
( )
yN − ∆x N
(0) (0) (0)
f N x1 , x 2 ,L, x N
[ ] [Y
X ( m +1) = X ( m) + ∆X ( m) = X ( m) + J ( m)
−1
spec − Y
( m)
],
where
y1 (
f x (m ) , x (m ) , L , x (m ) )
1 1
( ) .
2 N
y
( m) f 2 x1 , x 2 , L , x N
( m ) ( m ) (m )
Yspec = 2
,Y =
M M
)
yN 1
( m
(
f N x , x m) , L , x ( m)
) (
2 N
In the loadflow problem, the matrix update equation is symbolically written in mixed rectangular-
polar form as
7-7
Grady, /www.ece.utexas.edu/~grady/, 10/29/98
P m)
− P1(calc (δ )(m +1) − (δ )(m )
1 spec 1 (m +1) 1
P2 spec − P (m )
2calc (δ 2 ) − (δ 2 )(m )
M M
∂P ∂P (m +1) − (δ )(m )
P ( m)
( )
Nspec − P J1 = J2 =
N δ N
Ncalc ∂δ ∂V
−−− = − − −
∂Q ∂Q (m )
Q ( m) J 3 = J4 =
(m +1)
− Q 1calc ∂δ ∂V V − V
1spec
1
(m +1)
1
(m )
Q2 spec − Q ( m ) V2 − V2
2calc
M M
(m +1) (m )
Q ( m) V N − VN
Nspec − Q Ncalc
∆P J1 J 2 ∆δ
∆Q = J .
J 4 ∆ V
3
In highly inductive power systems, P is closely related to voltage angles, and Q is closely related
to voltage magnitudes. Therefore, in the above mixed rectangular-polar formulation, the terms in
J1 and J 4 tend to have larger magnitudes than those in J2 and J3 . This feature makes the Jacobian
matrix more diagonally dominant, which improves robustness when Gaussian eliminating or LU
decomposing J.
The above formulation of the Jacobian matrix is often modified to take advantage of symmetry in
the partial derivatives. This modification is
1 ∂P ∂P
∆P V ∂δ ∂V V ∆δ
∆Q = 1 ∂Q ∂Q
.
∆ V
V ∂δ ∂V
( )
N
Picalc = ∑ Vi yi, j V j cos δ i − δ j − θ i, j ,
j =1
7-8
Grady, /www.ece.utexas.edu/~grady/, 10/29/98
( )
N
Qicalc = ∑ Vi y i, j V j sin δ i − δ j − θ i, j ,
j =1
For J1 ,
∂Pi
( )
N
= − ∑ Vi yi, j V j sin δ i − δ j − θ i, j
∂δ i j =1, j ≠ i
∂Pi
∂δ k
(
= Vi y i, k Vk sin δ i − δ k − θ i, k , k ≠ i . )
For J 2 ,
∂Pi
( )
N
∂ Vi
= ∑ y i, j V j cos δ i − δ j − θ i, j + 2 Vi y i,i cos − θ i,i ( )
j =1, j ≠ i
∂Pi
∂ Vk
(
= Vi yi, k cos δ i − δ k − θ i, k , k ≠ i . )
For J 3 ,
∂Qi
( )
N
= ∑ Vi yi, j V j cos δ i − δ j − θ i, j
∂δ i j =1, j ≠ i
∂Qi
∂δ k
(
= − Vi y i, k Vk cos δ i − δ k − θ i, k , k ≠ i . )
For J 4 ,
∂Qi
( )
N
∂ Vi
= ∑ y i, j V j sin δ i − δ j − θ i, j + 2 Vi yi, i sin − θ i, i ( )
j =1, j ≠ i
∂Qi
∂ Vk
(
= Vi yi, k sin δ i − δ k − θ i, k , k ≠ i . )
Note the symmetry in the J terms. If V δ is used as an updating parameter rather than δ , then
the expressions for J1 are
7-9
Grady, /www.ece.utexas.edu/~grady/, 10/29/98
∂Pi
( )
N
= − ∑ yi, j V j sin δ i − δ j − θ i, j
Vi ∂δ i j =1, j ≠ i
∂Pi
Vk ∂δ k
( )
= Vi yi, k sin δ i − δ k − θ i, k , k ≠ i .
and for J 3 ,
∂Qi
( )
N
= ∑ y i, j V j cos δ i − δ j − θ i, j
Vi ∂δ i j =1, j ≠ i
∂Qi
Vi ∂δ k
(
= − y i, k Vk cos δ i − δ k − θ i, k , k ≠ i .)
The diagonal dominance of J1 and J 4 can be observed by the examining the partial derivatives as
follows: the differences between voltage angles at adjacent busses is usually small, so that the
( )
δ i − δ j terms are small. The angles found in the admittance matrix are usually large (i.e. near
90 o ) because most power systems are reactive. Therefore, the sine terms in the matrix update
equation tend to be near unity, while the cosine terms tend to be near zero. Decoupled loadflow
programs use only J1 and J 4 , treating the P and Q problems separately.
So that the benefits of optimal bus ordering can be fully exploited, non-decoupled loadflow
Jacobian matrices are usually formulated in the following alternating-row form, rather than that
described symbolically above:
∆P1 V1 ∆δ 1
∆Q
1 ∆ V1
∆P2 V2 ∆δ 2
∆Q2 = [J ] ∆ V2 .
M M
∆PN V N ∆δ N
∆Q ∆V
N N
1. Initialize the bus voltages. For load busses, use V = 1 + j0. For generator busses
(including the swing bus), use V = Vspec + j 0 .
7 - 10
Grady, /www.ece.utexas.edu/~grady/, 10/29/98
2. Form the Jacobian matrix, and update all bus voltage magnitudes and phase angles, except
for those at the swing bus, and except for the voltage magnitudes at PV busses.
3. Check the mismatch P and Q at each bus. If all are within tolerance (typical tolerance is
0.00001 pu), a solution has been found. Otherwise, return to Step 2.
Stott's algorithm takes advantage of the strong decoupling of P and Q that occurs in most high-
voltage power systems. His formulation is based upon the assumption that P is primarily related
to δ , and that Q is primarily related to V .
*
N
Picalc + jQicalc = Vi ∑ y i, jV j .
j =1
He then defines
N
( )(
Picalc + jQicalc = ∑ (Vi ∠θ i ) Vi ∠ − θ j Gi, j − jBi, j , )
j =1
( )
N
Picalc = ∑ Vi V j Gi, j cos δ i, j + Bi, j sin δ i , j
j =1
where δ i, j = δ i − δ j .
From the above equations, the necessary loadflow partial derivatives are
∂Pi
∂δ j
(
= Vi V j Gi, j sin δ i, j − Bi, j cos δ i, j ,)
j ≠i
7 - 11
Grady, /www.ece.utexas.edu/~grady/, 10/29/98
and
∂Pi
( )
N
= ∑ Vi V j − Gi, j sin δ i, j + Bi, j cos δ i, j ,
∂δ i j =1, j ≠i
∂Pi
∂δ i
2
(
)
= − Qi − Vi Gi,i sin δ i,i − Bi, j cos δ i,i = − Qi − Vi Bi, i .
2
Similarly, for Q,
∂Qi
( )
= Vi Gi, j sin δ i, j − Bi, j cos δ i, j =
1 ∂Pi
,
∂ Vj V j ∂δ j j ≠i
j ≠i
and
∂Qi
( )
N
∂ Vi
( )
= ∑ V j Gi, j sin δ i, j − Bi, j cos δ i, j + 2 Vi Gi,i sin δ i,i − Bi,i cos δ i,i .
j =1, j ≠i
∂Q i Q
= i − Vi Bi,i .
∂ Vi Vi
∆P H 0 ∆δ
∆Q = 0 1 ,
L ∆V
V
where
( )
H i, j = Li, j = Vi V j Gi, j sin δ i, j − Bi, j cos δ i, j , i ≠ j ,
2
H i,i = −Qi − Vi Bi,i ,
2
Li,i = Qi − Vi Bi,i .
7 - 12
Grady, /www.ece.utexas.edu/~grady/, 10/29/98
Now, since the angular differences are small, then cos δ i, j >> sin δ i, j . In reactive power
systems, Bi , j > G i , j , so that Bi, j cos δ i, j >> Gi, j sin δ i, j . Also, in most cases,
Bi,i >> Qi , so that Vi2 Bi,i >> Qi . Substituting these approximations into the above
expressions for H and L yields
H i , j = Li , j ≈ − V i V j B i , j ,
2
H i,i ≈ Li,i ≈ − Vi Bi,i .
VB 'V [∆δ ] ,
∆V1
V1 0 L 0 − B1,1 − B1,2 L − B1, N V1 0 L 0 V1
0 V L − B2, N 0 V 2
L 0 − B2,1 − B2, 2 L 0 ∆V2
[∆Q] = 2 =
M M O M M M O M M M O M V2
M
0 0 L V N − B N ,1 − B N ,2 L − B N , N 0 0 L V N ∆V N
V N
∆V .
VB ''V
V
1. Omit from B' those network elements which primarily affect MVAr flows (i.e. shunt
reactances, off-nominal transformer taps, etc.)
2. Omit from B'' the angle-shifting effects of phase-shifting transformers, which primarily
affect MW flows.
7 - 13
Grady, /www.ece.utexas.edu/~grady/, 10/29/98
∆P
[ ] [ ]
= B V [∆δ ] ≈ B [∆δ ] (first one-half iteration),
V
' '
and
∆Q
[ ] ∆ V
= B V [ ]
≈ B [∆V ] (second one-half iteration).
'
V V
At this point, B' and B'' remain constant throughout the solution. Therefore, B' and B'' should be
LU decomposed once, and re-used for each half iteration. The solutions steps are
∆P
2. Calculate .
V
3.
∆P
[ ]
Update δ using = B ' [∆δ ] .
V
∆Q
5. Calculate .
V
6.
∆Q
Update ∆ V using
V
[ ]
= B [∆V ]
''
Once the bus voltages throughout the system have been calculated, then the loadflow program
must calculate power flows through lines/transformers/cables. The standard pi-equivalent models
given in Section 3 are used for this purpose as follows:
7 - 14
Grady, /www.ece.utexas.edu/~grady/, 10/29/98
R jX
Vj/ δ j Vk/ δk
Ijk Ikj
Icapj Icapk
Q(pu) Q(pu)
2 2
,
so from side J, I jk =
V j ∠δ j − Vk ∠δ k
R + jX
Q
+ V j ∠ δ j + 90 0 ,
2
( )
The corresponding power flows for the two ends of the line are S jk = V jk I *jk , Skj = Vkj I kj
*
.
V j ∠δ j
so for side K, I kj = Vk ∠δ k − y ,
t∠ θ
I kj
and for side J, I jk = − .
t∠θ
The corresponding power flows for the two ends of the transformer are
S jk = V jk I *jk , Skj = Vkj I kj
*
.
7 - 15
Grady, /www.ece.utexas.edu/~grady/, 10/29/98
Area Interchange
Large-scale power systems usually consist of several, or perhaps many, individual electric utility
companies. In these cases, each area may have a desired net input or output power to satisfy sales
and purchase agreements.
The area interchange feature in a loadflow program sums the tie-line flows into each area for a net
area power input. If these nets are not the desired values, to within a few megawatts, then an
area-control generator within the area is adjusted by the error amount. The sum of all input
powers for all areas must, of course, be zero.
Convergence Criteria
Most loadflow data cases are developed using a 100 MVA base, so that a 1% load corresponds to
1 MW. A typical convergence criteria is that the highest individual bus P and Q mismatches are
within 0.001 - 0.01%, or 0.00001 - 0.0001 pu.
7 - 16