Вы находитесь на странице: 1из 39

EE 369

POWER SYSTEM ANALYSIS

Lecture 11
Power Flow
Tom Overbye and Ross Baldick

1
Announcements
• Start reading Chapter 6 for lectures 11 and 12.
• Homework 8 is 3.1, 3.3, 3.4, 3.7, 3.8, 3.9, 3.10,
3.12, 3.13, 3.14, 3.16, 3.18; due 10/27.
• Homework 9 is 3.20, 3.23, 3.25, 3.27, 3.28,
3.29, 3.35, 3.38, 3.39, 3.41, 3.44, 3.47; due
11/3.
• Midterm 2, Thursday, November 10, covering
up to and including material in HW9.

2
Wind Blade Failure
Several years ago, a 140 foot,
6.5 ton blade broke off from a
Suzlon Energy wind turbine.
The wind turbine is located
in Illinois. Suzlon Energy is
one of the world’s largest
wind turbine manufacturers;
its shares fell 39% following
the accident. No one was hurt
and wind turbines failures
are extremely rare events.
Photo source: Peoria Journal Star
(Vestas and Siemens turbines
have also failed.) 3
Thermal Plants Can Fail As Well: Another Illinois
Failure, Fall 2007

4
Springfield, Illinois City Water, Light
and Power Explosion, Fall 2007

5
Gauss Two Bus Power Flow Example
•A 100 MW, 50 MVAr load is connected to a
generator through a line with z = 0.02 + j0.06
p.u. and line charging of 5 MVAr on each end
(100 MVA base).
•Also, there is a 25 MVAr capacitor at bus 2.
•If the generator voltage is 1.0 p.u., what is V2?

j0.05 j0.05

SLoad = 1.0 + j0.5 p.u. 6


Gauss Two Bus Example, cont’d
The unknown is the complex load voltage, V2 .
To determine V2 we need to know the Ybus ,
which is a 2  2 matrix. The capacitors have
susceptances specified by the reactive power
at the rated voltage.
1 1
Line series admittance =   5  j15.
Z 0.02  j 0.06
5  j14.95 5  j15 
Hence Ybus    .
 5  j15 5  j14.70
( Note: B11  15  0.05; B22   15 0.05  0.25). 7
Gauss Two Bus Example, cont’d
Note that V1 =1.00 is specified, so we do not update V1.
We only consider one entry of h(V ), namely h2 (V ).
1  S*2 n 
Equation to solve: V2   *   Y2 kVk   h2 (V ).
Y22  V2 k 1,k  2 
1  1  j 0.5 
Update: V2( 1)   ( )
 ( 5  j15)(1.00) 
5  j14.70  (V2 ) * 
Guess V2(0)  1.00 (this is known as a flat start)
v V2( v ) v V2( v )
0 1.000  j 0.000 3 0.9622  j 0.0556
1 0.9671  j 0.0568 4 0.9622  j 0.0556
2 0.9624  j 0.0553 8
Gauss Two Bus Example, cont’d
Fixed point: Vˆ2  0.9622  j 0.0556  0.9638  3.3
Once the voltages are known all other values can
be determined, including the generator powers and
the line flows.
S1*  V1* (Y11V1  Y12Vˆ2 )  1.023  j 0.239  P1  jQ1 ,
In actual units P1  102.3 MW, Q1  23.9 MVAr
2
The capacitor is supplying V2 25  23.2 MVAr

9
Slack Bus
In this example we specified S2 and V1 and then
solved for S1 and V2.
We can not arbitrarily specify S at all buses
because total generation must equal total load +
total losses: “real and reactive power balance.”
In addition, we also need an angle reference bus.
To solve these problems we define one bus as
the “slack” bus to deal with both issues:
Slack bus has a fixed voltage magnitude and angle,
and a varying real/reactive power injection to satisfy
overall real and reactive power balance.
In the example, this was bus 1. 10
Gauss for Systems with Many Buses
With multiple bus systems we could calculate
new values of the voltages Vi as follows:

1  S*i n 
Vi( v 1)   ( v )*   YikVk( v ) 
Yii  V   
 i k 1, k i 
 hi (V1( v ) ,V2( v ) ,...,Vn( v ) )
But after we've determined Vi( v 1) , it is a better estimate
of the voltage at bus i than Vi( v ) , so it makes sense to use
this new value. Using the latest values is known as the
11
Gauss-Seidel iteration.
Gauss-Seidel Iteration
Immediately use the new voltage estimates:
V2( v 1)  h2 (V1 ,V2( v ) ,V3( v ) ,,Vn( v ) ) (bus 1 is slack),
V3( v 1)  h3 (V1 ,V2( v 1) ,V3( v ) ,,Vn( v ) )
( v 1) ( v 1) ( v 1)
V4  h4 (V1 ,V2 ,V3 ,V4 ,Vn )
(v) (v)

( v 1) ( v 1) ( v 1) ( v 1)


Vn  hn (V1 ,V2 ,V3 ,V4 ,Vn )
(v)

Gauss-Seidel usually works better than the Gauss, and


is actually easier to implement.
Gauss-Seidel is used in practice instead of Gauss.
12
Three Types of Power Flow Buses
There are three main types of buses:
– Load (PQ), at which P and Q are fixed; goal is to
solve for unknown voltage magnitude and angle at
the bus (some generators can be PQ buses too).
– Slack at which the voltage magnitude and angle are
fixed; iteration solves for unknown P and Q
injections at the slack bus, with fixed |V| and angle.
– Generator (PV) at which P and |V| are fixed;
iteration solves for unknown voltage angle and Q
injection at bus:
special coding is needed to include PV buses in the
Gauss-Seidel iteration. 13
Inclusion of PV Buses in G-S
To solve for Vi at a PV bus we must first make a
guess of Qi using the power flow equation:
n
Si*  Vi*  YikVk  Pi  jQi
k 1

 n
(v) 
Hence Qi   Im Vi  YikV  is an
(v) ( v )*

 k 1
k

estimate of the reactive power injection.
For the Gauss iteration we use the known value
of real power and the estimate of the reactive power:
(v)
Si  Pi  (v)
jQi 14
Inclusion of PV Buses, cont'd
Tentatively solve for Vi( v 1)

1 Si ( v )* n 
Vi( v 1)   ( v )*   YikVk( v ) 
Yii  V   
 i k 1, k i 
In update, set Vi( 1)  Vi( v 1) .
But since Vi is specified, replace Vi( v 1) by Vi .

That is, set Vi ( 1)  Vi

15
Two Bus PV Example
Consider the same two bus system from the previous
example, except the load is replaced by a generator
j0.05 z = 0.02 + j 0.06 j0.05

Bus 1 Bus 2
V1 = 1.0 V2 = 1.05
(slack bus)
P2 = 0 MW

16
Two Bus PV Example, cont'd
 ( v )* n (v) 
Q2( )   Im V2  Y2 kV  ,
 k 1
k

  Im[Y21V1( )V2( )*  Y22V2( )V2( )* ]
 ( )*  ( )*
1 S2 n 
1 S2 ( ) 
V2( 1)  ( )
 ( )*   Y2 kVk    ( )*  Y21V1 
Y22  V2 k 1,k  2  Y22  V2 
Guess V2(0)  1.050
v S2( v ) V2( v 1) V2( v 1)
0 0  j 0.457 1.045  0.83 1.050  0.83
1 0  j 0.535 1.049  0.93 1.050  0.93
2 0  j 0.545 1.050  0.96 1.050  0.96 17
Generator Reactive Power Limits
The reactive power output of generators
varies to maintain the terminal voltage; on a
real generator this is done by the exciter.
To maintain higher voltages requires more
reactive power.
Generators have reactive power limits,
which are dependent upon the generator's
MW output.
These limits must be considered during the
power flow solution. 18
Generator Reactive Limits, cont'd
During power flow once a solution is
obtained, need to check if the generator
reactive power output is within its limits
If the reactive power is outside of the limits,
then fix Q at the max or min value, and re-
solve treating the generator as a PQ bus
– this is know as "type-switching"
– also need to check if a PQ generator can again
regulate
Rule of thumb: to raise system voltage we
need to supply more VArs. 19
Accelerated G-S Convergence

Previously in the Gauss-Seidel method we were


calculating each value x as
x ( v 1)  h ( x ( v ) )
To accelerate convergence we can rewrite this as
x ( v 1)  x ( v )  h ( x ( v ) )  x ( v )
Now introduce "acceleration parameter" 
x ( v 1)  x ( v )   ( h ( x ( v ) )  x ( v ) )
With  = 1 this is identical to standard Gauss-Seidel.
Larger values of  may result in faster convergence.
20
Accelerated Convergence, cont’d
Consider the previous example: x  x  1  0
x ( v 1)  x ( v )   (1  x ( v )  x ( v ) )
Matlab code: alpha=1.2;x=x0;x=x+alpha*(1+sqrt(x)-x).
Comparison of results with different values of 
  1   1.2   1.5   2
0 1 1 1 1
1 2 2.20 2.5 3
2 2.4142 2.5399 2.6217 2.464
3 2.5554 2.6045 2.6179 2.675
4 2.5981 2.6157 2.6180 2.596
5 2.6118 2.6176 2.6180 2.626 21
Gauss-Seidel Advantages
Each iteration is relatively fast (computational
order is proportional to number of branches +
number of buses in the system).
Relatively easy to program.

22
Gauss-Seidel Disadvantages
Tends to converge relatively slowly, although
this can be improved with acceleration.
Has tendency to fail to find solutions,
particularly on large systems.
Tends to diverge on cases with negative
branch reactances (common with
compensated lines).
Need to program using complex numbers.
Gauss and Gauss-Seidel mostly replaced by
Newton-Raphson. 23
Newton-Raphson Algorithm
The second major power flow solution
method is the Newton-Raphson algorithm
Key idea behind Newton-Raphson is to use
sequential linearization
General form of problem: Find an x such that
f ( x)  0

24
Newton-Raphson Method (scalar)
1. Represent f by a Taylor series about the
current guess x ( ) . Write x for the deviation
from x ( ) :

f (x (v)
 x (v)
)  f (x (v)
)  df ( v )  ( v )
( x ) x 
 dx 
1 d f (v) 

 
2 2
  2 ( x )  x ( v ) 
2  dx 
higher order terms.
25
Newton-Raphson Method, cont’d
2. Approximate f by neglecting all terms
except the first two
( ) ( )
f ( x  x )  f ( x )   df ( v )  ( v )
( x ) x
(v)
 dx 
3. Set linear approximation equal to zero
and solve for x ( v )
1
x  
(v)  df ( v ) 
(x ) f ( x(v) )
 dx 
4. Solve for a new estimate of solution:
( v 1)
x  x (v)
 x (v) 26
Newton-Raphson Example
Use Newton-Raphson to solve f ( x )  0,
where: f ( x )= x 2  2.
The iterative update is:
1
x (v)
   df ( v ) 
(x ) (v)
f (x )
 dx 

x ( v )    1  (v) 2
(( x )  2)
 2 x 
( v )

x ( v 1)  x ( v )  x ( v )

x ( v 1)
 x (v)
  1  (v) 2
(( x )  2).
 2 x 
( v )
27
Newton-Raphson Example, cont’d
x ( v 1)
 x   1  (v) 2
(v)
(( x )  2)
 2 x 
( v )

Matlab code: x=x0; x = x-(1/(2*x))*(x^2-2).


Guess x (0)  1. Iteratiting, we get:
 x(v) (v)
f (x ) x(v)

0 1 1 0.5
1 1.5 0.25 0.08333
2 1.41667 6.953  103 2.454  103
3 1.41422 6.024  106
28
Sequential Linear Approximations

At each
iteration the
N-R method
uses a linear
approximation
to determine
Function is f(x) = x2 - 2. the next value
Solutions to f(x) = 0 are points where for x
f(x) intersects x axis.
29
Newton-Raphson Comments
• When close to the solution the error
decreases quite quickly -- method has what is
known as “quadratic” convergence:
– number of correct significant figures roughly
doubles at each iteration.
• f(x(v)) is known as the “mismatch,” which we
would like to drive to zero.
• Stopping criteria is when f(x(v))  < 

30
Newton-Raphson Comments
• Results are dependent upon the initial guess.
What if we had guessed x(0) = 0, or x(0) = -1?
• A solution’s region of attraction (ROA) is the
set of initial guesses that converge to the
particular solution.
• The ROA is often hard to determine.

31
Multi-Variable Newton-Raphson
Next we generalize to the case where x is an n-
dimension vector, and f (x) is an n-dimensional
vector function:
 x1   f1 (x) 
x   f ( x) 
x   2 f ( x)   2 
   
x   f ( x) 
 n  n 
Again we seek a solution of f (x)  0.

32
Multi-Variable Case, cont’d
The Taylor series expansion is written for each fi (x)
f1 f1
f1 ( x  x)  f1 ( x)  ( x)x1  ( x)x2 
x1 x2
f1
( x)xn  higher order terms
xn

f n f n
f n ( x  x)  f n ( x)  ( x)x1  ( x) x2 
x1 x2
f n
( x)xn  higher order terms
xn 33
Multi-Variable Case, cont’d
This can be written more compactly in matrix form
 f1 ( x ) f1 ( x ) f1
(x) 
 x1 x2 xn 
 f1 ( x )     x1 
 f ( x )   f 2 ( x ) f 2 ( x ) f 2
( x )   x2 
f (x + Δx )   2
   x1 x2 xn  
    
 f (x)    x 
 n   f f n f n  n
n
 (x) (x) (x) 
 x1 x2 xn 
 higher order terms
34
Jacobian Matrix
The n by n matrix of partial derivatives is known
as the Jacobian matrix, J (x)
 f1 (x) f1 (x) f1 
( x) 
 x x2 xn
 1

 f 2 (x) f 2 (x) f 2
( x) 
J (x)   x1 x2 xn 
 
 
 f 
n ( x) f n ( x) f n
 ( x) 
 x1 x2 xn 
35
Multi-Variable N-R Procedure
Derivation of N-R method is similar to the scalar case
f ( x  x )  f (x )  J ( x ) x  higher order terms
f ( x  x )  f (x )  J ( x ) x
To seek solution to f ( x  x )  0, set linear
approximation equal to zero: 0  f ( x )  J ( x) x.
x   J ( x ) 1 f ( x )
x ( v 1)  x ( v )  x ( v )
x ( v 1)  x ( v )  J (x ( v ) ) 1 f (x ( v ) )
Iterate until f (x ( v ) )   36
Multi-Variable Example
 x1 
Solve for x =   such that f ( x )  0 where
 x2 
f1 ( x )  2 x1  x2  8
2 2

f 2 ( x )  x12  x22  x1 x2 4
First symbolically determine the Jacobian
 f1 ( x ) f1 ( x ) 
 x1 x2 
J (x ) =  
 f 2 ( x ) f 2 ( x ) 
 x1 x2 
37
Multi-variable Example, cont’d
 4 x1 2 x2 
J (x ) = 
 2 x1  x2 x1  2 x2 
1
 x1   4 x1 2 x2   f1 ( x ) 
Then    
 x2   2 x1  x2 x1  2 x2   f 2 ( x ) 
Matlab code: x1=x10; x2=x20;
f1=2*x1^2+x2^2-8;
f2=x1^2-x2^2+x1*x2-4;
J = [4*x1 2*x2; 2*x1+x2 x1-2*x2];
[x1;x2] = [x1;x2]-inv(J)*[f1;f2].
38
Multi-variable Example, cont’d
1
Initial guess x (0)
 
1
1
1  4 2   5  2.1
x (1)         
1  3 1  3 1.3
1
 2.1 8.40 2.60   2.51 1.8284 
x (2)
        
1.3 5.50 0.50 1.45 1.2122 
At each iteration we check f (x ( ) ) to see if it is
0.1556
below our specified tolerance  : f ( x )  
(2)

 0.0900 
If  = 0.2 then done. Otherwise continue iterating. 39

Вам также может понравиться