You are on page 1of 23

Fast Power Flow Methods

1.0 Introduction

What we have learned so far is the so-called


“full-Newton” power flow algorithm. The
full-Newton is perhaps the most robust
algorithm in the sense that it is most likely
to obtain a solution for “tough” problems.
For example, solving a large power flow
case from a “flat” start is usually considered
to be a “tough” problem, and as a result, it is
best to do that with a full Newton.

But many times, the problem is not so


“tough,” and in that case, the so-called fast
decoupled algorithm is also effective in
getting the solution, there is no loss of
accuracy, and it is much faster. A common
situation where fast-decoupled algorithm is
attractive is when you have solved the case,
and then you want to re-solve the case
(using a “hot” start) to analyze the effect of
some not-so-dramatic change.

1
There are still other situations where speed
is paramount, but accuracy is not. For
example, in on-line analysis of 50,000
contingencies, we may want to only filter
the contingencies that have potential to
result in problems, and then perform full
analysis on those set.

2.0 The fast decoupled power flow

We observed in the example of the previous


set of notes (Example 10.6) that the Jacobian
matrix
J J 
11 12
J
J

21
J 
22 (1)
has a special characteristic in that the
elements of the off-diagonal submatrices J12
and J21 are usually very small relative to the
elements of the diagonal submatrices J11 and
J22. (In fact, in the first iteration of a flat
start, when we assume all angles are 0, the
elements of the off-diagonal matrices are 0).
The reason for this can be seen in the
expressions for the Jacobian elements:
2
Q p ( x )
pq 
J 21
 q

  V p Vq G pq cos( p   q )  B pq sin( p   q )  (2)
Q p ( x ) 2
pp 
J 21  Pp ( x )  G pp V p
 p
(3)
 n
 
   V p Vk G pk cos( p   k )  B pk sin( p   k )   G pp V p
2

 k 1 
Pp ( x )
pq 
J 12 
 V p G pq cos( p   q )  B pq sin( p   q )  (4)
 Vq
Pp ( x ) Pp ( x )
pp 
J 12   G pp V p
 Vp Vp
1  n 
  
 V p Vk G pk cos( p   k )  B pk sin( p   k )   G pp V p
V p  k 1 

(5)
Notice that every term in all of the above
expressions are either (a) multiplied by a
“G” or (b) multiplied by a “sin”. The overall
terms are small because, for transmission:
 conductance G tends to be small and

 angular differences across circuits tend to

be small, resulting in small “sin” terms.


These observations are consistent with our
understanding that P is not very sensitive to
P ( x )
voltage magnitude (i.e., small  V and
p

P ( x )
), and Q is not very sensitive to angle
p

V p

Q ( x ) Q ( x )
(i.e., small  and  ). p p

q p

3
We can take advantage of these observations
in the following way. Instead of using the
exact Jacobin, let’s assume that all elements
of the off-diagonal submatrices are in fact 0
and remain 0 throughout the entire Newton-
Raphson algorithm. In other words, let’s just
use the following Jacobian:
J 0 
11
J
0 J 
 (6) T 22

Note what this does to our update equation:


 P 
 
J
( j)
x
( j)
      
 Q 
(7)
 

Substituting (6) into (7), we have:( j) ( j)

( j)     P 
J 0 
(8)
11
   
 T 22             
0 J    V   Q 
 

Performing the indicated matrix


multiplication, we obtain:
(9) J
11 ( j )

( j)
  P
( j)

J
(10)
22 ( j )
V
( j)
  Q
( j)

These equations are the same as eqs.


(10.51a) and (10.51b) in the text, except that
here, there are negatives signs out front of
the real and reactive mismatch vectors on
the right-hand-side.

4
The reason for the difference is that I have
defined the mismatch as “calculated-
specified” (e,g, P ( x )  P and Q ( x )  Q ) instead of
k k k k

“specified-calculated” (e.g., P  P ( x ) andk k

Q  Q ( x)
k k
). The text does the opposite (see eq.
(10.37) at top of page 345).

Equations (9) and (10) have the following


remarkable feature: real power equations
are decoupled from the voltage magnitudes,
and reactive power equations are decoupled
from the angles. The implication is that
either one of equations (9) and (10) may be
solved independent of the other one!

Our power flow algorithm remains exactly


as it was before, with the only exception
being in Step 4.
1. Specify:
 All admittance data (series Y, charging
capacitance, transformer taps, & shunts)

5
 Pd and Qd for all buses (whether PV, PQ,
or swing)
 Pg and |V| for all PV buses
 |V| for swing bus, with =0
2. Set the iteration counter j=0. Use one of
the following to guess the initial solution.
 Flat Start: Vk=1.0 0 for all buses.
 Hot Start: Use the solution to a
previously solved case for this network.
3. Compute the mismatch vector for x(j),
denoted as f(x). In what follows, we
denote elements of the mismatch vector as
Pk and Qk corresponding to the real and
reactive power mismatch, respectively, for
the kth bus (which would not be the kth
element of the mismatch vector for two
reasons: one reason pertains to the swing
bus and the other reason to the fact that for
type PQ buses, there are two equations per
bus and not one). This computation will
also result in all necessary calculated real
and reactive power injections. Perform the
following stopping criterion tests:
6
If |Pk|< P for all type PQ & PV buses
and
If ||Qk|< Q for all type PQ buses,
Then go to step 5
Else
Go to step 4.

4. Find an improved solution as follows:



Evaluate the Jacobian J at x(j). Denote
this Jacobian as J(j)

Solve for x(j) by applying LU
decomposition to:
This is only J
11 ( j )

( j)
  P
( j)

change in 22 ( j ) ( j) ( j)
J V   Q
algorithm!!

 Compute the updated solution vector as


x(j+1)= x(j)+ x(j).
 Return to step 3 with j=j+1.
5. Stop.
How to see that the fast-decoupled (FDC)
algorithm is faster than the full Newton?

7
 In full Newton, step 4 computes
 P 
( j) ( j)  
J x       
 Q 
 

The Jacobian has dimension (2N-1-NG).


 In the above algorithm, J11 has dimension
(N-1), and J22 has dimension (N-NG).
For example, if we have 20000 buses and
2000 generators, then the Jacobian in the full
Newton has dimension of 37,999, but the
FDC algorithm Jacobians will have
dimension of 19,999 and 18,000,
respectively.

It is known that the speed of LU


decomposition is a function, approximately
linear, of the number of elements. The
number of elements in the full Newton is
(37,999)2=1.44E9, whereas in the FDC
algorithm it is (19,999)2+(18,000)2=7.24E8.
Therefore the above version of the FDC
algorithm will be about twice as fast per
iteration as the full Newton.

8
However, because the Jacobian gives the
“direction” to move the solution in each
iteration, we do suffer a loss in accuracy per
iteration, and therefore we may need more
iterations to obtain the final solution.

Given these two opposing forces (less time


per iteration and more iterations), it is
usually the case that the FDC algorithm is
between 1.5 and 2 times faster than the full
Newton.

But what about accuracy? We have said that


the FDC algorithm will be less accurate per
iteration. Does that imply that it will provide
a less accurate solution once it stops
iterating?

The answer to this question depends on the


stopping criterion. Note that in the above
FDC algorithm, the stopping criterion is
given in Step 3, and it is exactly the same as
the stopping criterion used in the full

9
Newton algorithm. That is, both algorithms
are computing the mismatch as P ( x )  P and
k k

Q ( x)  Q
k k
, and P ( x ) and Q ( x ) are computed with
k k

the full real and reactive power flow


equations, respectively, in both algorithms.

It is very important to recognize that the


approximation in FDC algorithm is applied
to the Jacobian matrix but NOT the power
flow equations used to compute the elements
of the mismatch vector.

The conclusion that we can make here is that


A POWER FLOW SOLUTION
OBTAINED BY FDC ALGORITHM IS
JUST AS ACCURATE AS A POWER
FLOW SOLUTION OBTAINED BY A
FULL NEWTON.

3.0 FDC algorithm: enhancements

We may simplify the FDC algorithm still


further, making it still faster (but less

10
accurate) per iteration by working with the
expressions of the Jacobian elements for J11
and J22.

In what follows, we provide more in-depth


development to text pg. 353.
Consider the terms J . If we neglect G and 11
pq

under small angle approximation (so that


sin(θp-θq)≈0 and cos(θp-θq)≈1):
Pp ( x )
pq 
J 11 
 V p Vq G pq sin( p   q )  B pq cos( p   q ) 
 q
  V p Vq B pq
(11)
Now consider the terms J 11
pp
.
Pp ( x ) 2
pp 
J 11   Q p ( x )  B pp V p
 p
 n  (12)

    V p Vk G pk sin( p   k )  B pk cos( p   k )   B pp V p  2

 k 1 

Again, using small Gpk and small angle


approximation, the above is
P ( x )   n
  V V B   B V
2

(13)
p
J  11


pp p k pk pp p
  p k 1

We will now make use of an assumption that


the voltage profile is “flat,” i.e., |Vk|=|Vp|.
Then:

11
Pp ( x ) n 
   V p V p B pk   B pp V p
2
J 11pp 
 p  k 1 
n  2 
n
  (14)
  V p B pk   V p B pp  V p    B pk   B pp 
2 2

 k 1    k 1  

Now consider the summation in the curly


brackets.
n

 B  B  B  ...  B  B  B  ...  B (15)


k 1
pk p1 p2 p , p1 pp p , p 1 pn

Recall that from definition of Y-bus


elements:
 k≠p: Bpk=-bpk bpk=-Bpk
 k=p:
Bpp=bp1+bp2+…+bp,p-1+bp+bp,p+1+…+bpn
and using the relation from the first bullet:
=-Bp1-Bp2-…-Bp,p-1+bp-Bp,p+1-…-Bpn (16)
where bp is sum of all shunt susceptance
at bus p.

Substituting this last expression (16) for Bpp


into (15), we obtain:
n

B
k 1
pk  B p1  B p 2  ...  B p , p1


  B p1  B p 2  ...  B p , p1  b p  B p , p1  ...  B pn  (17)
 B p , p1  ...  B pn
 bp

Substituting (17) into (14), we obtain:

12
Pp ( x )
pp 
J 11
 p
 Vp
(27)
2
b p  B pp 

We could perform the subtraction in (27)


using (16) to see that the term is just the
negative of the sum of all non-shunt
branches connected to bus p.

However, bp is typically very small


compared to Bpp so that neglecting bp is quite
accurate, resulting in:
P ( x )
(28)
p 2
J 
11
 V B

pp p pp
p

Likewise, under assumptions of flat voltage


profile and small angle, we can show that:
Q p ( x )
pq 
J 22 
 V p G pq sin( p   q )  B pq cos( p   q ) 
 Vq
  V p B pq
(29)
Q p ( x ) Qp ( x)
pp 
J 22   B pp V p
 Vp
  V p B pp
Vp
(30)

Summarizing eqs. (11), (28), (29), and (30),


we have:

13
P p ( x )
pq 
J 11
 q (11)
  V p Vq B pq

P ( x )
(28)
p 2
J 
11
 V B

pp p pp
p

Q ( x )
(29)
p
J 
22
pq  V B p pq
V q

Q ( x )
(30)
p
J 
22
pp  V B p pp
V p

Noting that the Jacobian matrix has no


equations or variables for bus 1 (the swing
bus), and assuming we will have J11 and J22
terms for all buses in the network (not
exactly true, since we will not have reactive
power flow equations for type PV buses – so
this is equivalent to assuming no type PV
buses), we define the B’ matrix as:
 B22 B23 ... B2 n 
B B33 ... B3n 
B '   32
   ...  (31)
 
 Bn 2 Bn3 ... Bnn 

where this matrix may be obtained from the


Y-bus by simply stripping off the first row
and first column (assuming the swing bus is
#1) and taking the imaginary part of all
elements.

14
Using the B’-matrix of eq. (31), then, eqs.
(11), (28), (29), and (30) may be written
more compactly as:
J  V  BV 
11
(32)
J  V  B 
22
(33)
where
 V2 0  0 
 
 V3  
V    (34)
   
 
 0 0  Vn 

Recalling eqs. (9) and (10):


J(9)11 ( j )

( j)
  P
( j)

J
22 ( j )
V
( j)

(10)
  Q
( j)

and substituting (32-33) into (9-10), we


obtain:
 V  BV     P (35) ( j) ( j)

   V B  V
(36) ( j)
  Q
( j)

Multiplying both sides by -1 results in:


V  BV     P (37)( j) ( j)

  (38)
V B V
( j)
 Q
( j)

Equations (37) and (38) differ from eqs.


(10.57a) and (10.57b) in the text because the
mismatch vectors are defined differently
here.

15
Whereas I have defined the mismatch as
“calculated-specified” (e,g, P ( x )  P and k k

Q ( x)  Q
k k
) instead of “specified-calculated”
(e.g., P  P ( x ) and Q  Q ( x ) ). The text does the
k k k k

opposite (see eq. (10.37) at top of page 345).

There are two more changes which prove


useful in terms of capturing additional
computational efficiency (more speed).

The first change is an approximation: let the


second [V] in eq. (37) be the identity matrix.
The book indicates that the basis for this
change is that we are assuming a “flat”
voltage profile. This does not tell the whole
story. The basis for this change is that
voltages are “flat” and typically close to 1.0.
Making this change in eqs. (37) and (38)
results in
V  B   P
( j) ( j)
(39)
 
V B V
( j)

(40)
 Q
( j)

16
The second change is to pre-multiply both
equations by [V]-1. This change results in
B   V   P (41)
( j) 1 ( j)

B  V  ( j)
 V
(42)1
Q
( j)

Since [V] is diagonal, [V]-1 is


 1 
V 0  0 
 2 
  1

V  1
 V3

 (43)
 
    
 0 1 
0 
 Vn 

Multiplication of (43) by the mismatch


vectors is:
 1   P2 
V 0  0  V 
 2   P2   2 
  1   P
    P3   3 

 
V3 

V 
   3  (44)
      
 0 1   Pn   Pn 
0 
 Vn   Vn 

17
 1   Q2 
V 0  0  V 
 2   Q2   2 
  1   Q
    Q3   3 

 
V3 

 V 
    3  (45)
      
 0 1   Qn   Qn 
0 
 Vn   Vn 

Based on (44) and (45), eqs. (41) and (42)


become:
( j)
 P2 
V 
 2 
 P3  ~
B
( j)
  V3 
 
 P (46)
  
 Pn 
 Vn 
( j)
 Q2 
V 
 2 
 Q3 
B V
( j)
  V3 
~
 Q (47)
 
  
 Qn 
 Vn 

where the notation of the far right-hand-side


in (46) and (47) is from the text.

Three comments remain:

18
1. Effect of voltage controlled buses: We
previously assumed (page 15) that we
would have no type PV buses. Since this
assumption will almost never hold, we
must determine how to handle PV buses.
If a bus is PV, then we do not represent the
reactive power flow equation, and we do
not use the bus’s voltage as an unknown.
This change will have no effect on eq.
(46), but it will affect eq. (47). To account
for PV buses in eq. (47), we need to
 Remove the row and column
corresponding to this bus in B’.
 Remove the element corresponding to

this bus in .
~
Q

We will call the resulting matrix B’’.


2. Where’s the speed-up? We still retain the
speed up of the previous FDC algorithm,
which is due to the fact that the LU-
decomposition is faster per iteration as a
result of the decoupling (and
corresponding reduction in total matrix
elements). The method described here

19
provides additional speed-up from two
sources:
 The B’-matrix need not be reevaluated

in each iteration, and so we save the


time of evaluating Jacobian matrix
elements.
 Because the left-hand-side of eqs. (46)

and (47) are constants, we need perform


LU-decomposition only once. Given the
L and U factors, we need to only
perform forward and backward
substitution for each different right-
hand-side.
3. Algorithm: I indicated the power flow
algorithm is exactly the same as in the
full-Newton, but there is a minor
difference in that Step 3 (page 7) and Step
4 (page 8) can be alternated, as follows:
a.Step 3a: Compute mismatch of ~
P

using  and
( j  1)
V
. ( j 1 )

b. Step 4a: Solve eq. (46) for  . ( j)

c.Step 3b: Compute mismatch of ~


Q

using  and
( j)
V
. ( j 1 )

20
d. Step 4b: Solve eq. (47) for . V
( j)

e.Step 3c: Perform stopping criterion


tests:
If |Pk|< P for all type PQ & PV buses
and
If |Qk|< Q for all type PQ buses,
Then go to step 5
Else
 ( j  1)   ( j )   ( j )
( j  1) ( j) ( j)
V V  V

Return to step 3 with j=j+1.


The reason why this improves speed is
because the update on voltages are done
with using a “step-size” based on the most
recent update on angles.

4.0 DC Power Flow

Return to equation (46), repeated here for


convenience:

21
( j)
 P2 
V 
 2 
 P3  ~
B'
( j)
  V3 
 
 P (46)
  
 Pn 
 Vn 

Now assume all voltages are 1.0. Then eq.


(46) becomes:
( j)
 P2 
 1.0   P2 
( j)

 P   P 
 3
B   1.0       P
( j)

 
3
(48)
    
 Pn   Pn 
 1.0 

So, equation (48) becomes:


B
( j)
(49)
 P

This equation, when solved just once (j=1)


for Δθ(1), and with a “flat-start” solution,
implies that θ=0+Δθ(1)=Δθ(1), and, if we
assume that this solution is the correct one,
then in other words,
B   P  P ( 0)  P   P
(50)
where P(0) are the real power flow
equations for buses 2 to N evaluated at θ(0)=0
(i.e., the flat start), and P are the real power

22
flow injections into each bus 2 to N.
Therefore,
B  P
(51)
This gives all of the angles for the network
with a single solution to a set of linear
equations. Then, the real power flows can be
computed with
P  B (   )
kj kj k j
(52)
which is the power flowing across a circuit
connected between buses k and j under
conditions of (a) neglecting resistance, (b)
small angle approximation, and (c) all
voltage magnitudes are 1.0.

23

You might also like