EE 369 POWER SYSTEM ANALYSIS Lecture 11 Power Flow Tom Overbye and Ross Baldick.

Download Report

Transcript EE 369 POWER SYSTEM ANALYSIS Lecture 11 Power Flow Tom Overbye and Ross Baldick.

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/29.
• 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/5.
• Midterm 2, Thursday, November 12, covering
up to and including material in HW9.
2
Wind Blade Failure
Photo source: Peoria Journal Star
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.
(Vestas and Siemens turbines
3
have also failed.)
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 ).
n

1  S*2
Equation to solve: V2 
 *   Y2 kVk   h2 (V ).
Y22  V2 k 1,k  2

Update:
V2( 1)
 1  j 0.5

1

 ( 5  j15)(1.00) 

( )
5  j14.70  (V2 ) *

Guess V2(0)  1.00 (this is known as a flat start)
v
0
1
2
V2( v )
1.000  j 0.000
0.9671  j 0.0568
0.9624  j 0.0553
v
3
4
V2( v )
0.9622  j 0.0556
0.9622  j 0.0556
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 previous 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.
We also need an angle reference bus.
To solve these problems we define one bus
as the “slack” bus. This bus has a fixed
voltage magnitude and angle, and a varying
real/reactive power injection. In the
previous 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:
Vi( v 1)
n

1  S*i

 ( v )*   YikVk( v ) 

Yii  V
k

1,
k

i
 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 ) )
V4( v 1)  h4 (V1 ,V2( v 1) ,V3( v 1) ,V4( v ) ,Vn( v ) )
( v 1)
Vn

( v 1)
( v 1)
( v 1)
(v)
hn (V1 ,V2
,V3
,V4
,Vn )
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.
– Slack at which the voltage magnitude and angle
are fixed; iteration solves for unknown P and Q
injections at the slack bus
– 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)
( v )*
(v) 
Hence Qi   Im Vi  YikV  is an
k


k 1
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:
Si( v )  Pi  jQi( v )
14
Inclusion of PV Buses, cont'd
Tentatively solve for Vi( v 1)
Vi( v 1)
( v )*
n


1 Si

 ( v )*   YikVk( v ) 

Yii  V
k

1,
k

i
 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
Bus 1
(slack bus)
z = 0.02 + j 0.06
V1 = 1.0
Bus 2
j0.05
V2 = 1.05
P2 = 0 MW
16
Two Bus PV Example, cont'd
Q2( )
 ( v )* n
(v) 
  Im V2  Y2 kV  ,
k


k 1
  Im[Y21V1( )V2( )*  Y22V2( )V2( )* ]
V2( 1)
Guess
v
( )*
( )*
n



1 S2
1 S2
( )
( ) 

 ( )*   Y2 kVk  
 ( )*  Y21V1 
Y22  V2
k 1,k  2

 Y22  V2
(0)
V2
S2( v )
 1.050
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 resolve 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
4
5
2.5554
2.5981
2.6118
2.6045
2.6157
2.6176
2.6179
2.6180
2.6180
2.675
2.596
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.
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

2

1 d f (v) 
  2 ( x )  x ( v )
2  dx

higher order terms.


2

25
Newton-Raphson Method, cont’d
2. Approximate f by neglecting all terms
except the first two
df ( v )  ( v )

f ( x  x )  f ( x ) 
( x ) x
 dx

3. Set linear approximation equal to zero
( )
( )
(v)
and solve for x ( v )
1
df ( v ) 

x
 
(x )
f ( x(v) )
 dx

4. Solve for a new estimate of solution:
(v)
x ( v 1)  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:
x ( v )
x ( v )
1
df ( v ) 

 
(x )
f ( x(v) )
 dx

1  (v) 2

 
(( x )  2)
(
v
)
 2 x 
x ( v 1)  x ( v )  x ( v )
x
( v 1)
 x
(v)
1  (v) 2


(( x )  2).
(
v
)
 2 x 
27
Newton-Raphson Example, cont’d
1  (v) 2

x
 x 
(( x )  2)
(
v
)
 2 x 
Matlab code: x=x0; x = x-(1/(2*x))*(x^2-2).
( v 1)
(v)
Guess x (0)  1. Iteratiting, we get:

0
1
x
1
1.5
f (x )
1
0.25
x
0.5
0.08333
2
1.41667
6.953  103
2.454  103
3
1.41422
6.024  106
(v)
(v)
(v)
28
Sequential Linear Approximations
Function is f(x) = x2 - 2.
Solutions to f(x) = 0 are points where
f(x) intersects x axis.
At each
iteration the
N-R method
uses a linear
approximation
to determine
the next value
for x
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 ndimension vector, and f (x) is an n-dimensional
vector function:
 x1 
x 
x   2
 
x 
 n
 f1 (x) 
 f ( x) 
f ( x)   2 


 f ( x) 
 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 ( x  x)
f1
f1
 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 )
 x1
x2
 f1 ( x )  
 f ( x )   f 2 ( x ) f 2 ( x )
2

   x1
x2
f (x + Δx ) 

 
 f (x) 
 n   f
f n
n
(x)
 (x)
x2
 x1
 higher order terms
f1
(x) 

xn
  x1 
f 2
( x )   x2 


xn


  x 
 n
f n
(x) 
xn

34
Jacobian Matrix
The n by n matrix of partial derivatives is known
as the Jacobian matrix, J (x)
 f1 (x) f1 (x)
 x
x2
1

 f 2 (x) f 2 (x)
x2
J (x)   x1


 f
n ( x) f n ( x)

x2
 x1
f1

( x) 
xn

f 2
( x) 
xn 



f n
( x) 
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 
2
2
f1 ( x )  2 x1  x2  8
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
J (x ) = 
 2 x1  x2
2 x2 
x1  2 x2 
 x1 
 4 x1
Then 
 

  x2 
 2 x1  x2
1
2 x2   f1 ( x ) 
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
Initial guess x
(0)
1
 
1
1
x (1)
1  4 2   5
 2.1
  
  



1  3 1  3
1.3
1
x
(2)
 2.1 8.40 2.60   2.51
1.8284 
  
 




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 )  

0.0900


If  = 0.2 then done. Otherwise continue iterating. 39
(2)