PST Tutorial
PST Tutorial
2 / 63
10
Area 2
20
101
13
120 110
Gen 1
11
Gen 11
Gen 12
Gen 2
14
Load 4
12
Load 14
c H. Chow (RPI-ECSE)
J.
3 / 63
Ii
Rij
Bij
2
jXij
Ij V
j
Bij
2
= Yij + j
= Yij (Vi Vj ) + Vi j
Vi Yij Vj
2
2
c H. Chow (RPI-ECSE)
J.
4 / 63
Yij
Yij + j
Bij
2
#"
Vi
Vj
"
Ii
Ij
Y V = I
c H. Chow (RPI-ECSE)
J.
5 / 63
jXT
a"
:1
Ij
Vi
Vj
aYT
Vi
=
a Y T a2 Y T
Vj
Ii
Ij
Y V = I
where YT = 1/(jXT ).
c H. Chow (RPI-ECSE)
J.
6 / 63
Y12
V2
I1
V3
Y23
a :1
B23
2
B23
V4
Y45
V5
Y34
I5
c H. Chow (RPI-ECSE)
J.
7 / 63
V1
I1
Y11
aY12
0
0
0
Y22
Y23
0
0 V2 I 2
aY12
0
Y23
Y33 Y34
0
V3 = I 3 =
0
0
Y34 Y44 Y45 V4 I4
0
0
0
Y45 Y55
V5
I5
I1
0
I5
c H. Chow (RPI-ECSE)
J.
8 / 63
B23
2
9 / 63
Using the network equation Y V = I:
If the bus voltage V at each of the bus is known, then I can be
directly computed.
This is indeed the case in dynamic simulation when V is the
internal voltage of a generator. For non-source buses, the load is
converted into an admittance (for a constant-impedance load) and
folded into a diagonal entry of the overall admittance matrix.
More on this aspect later when we discuss dynamic simulation.
One cannot use Y V = I directly for loadflow (steady-state
dispatch) calculations, because loads are specified as
P + jQ = V I (note negative sign as load is positive (power
consumed) if P > 0 and Q > 0), resulting in
Pi + jQi
(Pi + jQi )
Y V = vec
= vec
= I
Vi
Vi
Note that the right-hand-side of the equation carries a negative sign,
because P and Q are power consumptions by the load, and I is current
injection leaving the bus.
c H. Chow (RPI-ECSE)
J.
10 / 63
Loadflow Formulation
Loadflow calculates the bus voltage and line current phasors in a power
network to satisfy a given set of generation, load, and voltage
conditions.
Each bus is defined by 4 quantities:
Bus voltage magnitude and angle: V = V ej and
Bus generation and/or load: P + jQ (or zero injection P = Q = 0)
3 main types of buses:
Bus type
V
P
Q
PV (generator)
specified computed specified computed
PQ (load bus)
computed computed specified
specified
Swing (slack) bus specified
= 0
computed computed
The phase of the swing bus is set to zero (or any fixed value), which is
known as the reference.
c H. Chow (RPI-ECSE)
J.
11 / 63
Note that:
1
The angle of the swing bus is set to zero so that the angles of all
the other buses are in reference to the swing bus.
c H. Chow (RPI-ECSE)
J.
12 / 63
x1
f1
b1
.
.
.
.
.
.
x=
. , f = . , b = .
xN
fN
bN
x1
.
x =
..
xN
c H. Chow (RPI-ECSE)
J.
13 / 63
where
..
=J =
.
.
. ,
x
JN 1 JN 2 JN N
Jij =
fi
xj
14 / 63
Thus
b = f (x(0) ) + J(x(0) )x
Jx = b f (x(0) ) = e(x(0) )
c H. Chow (RPI-ECSE)
J.
15 / 63
16 / 63
VN ej0
P Q bus
P V bus
Swing bus
2 unknowns: Vi , i
1 unknown: i
no unknowns
c H. Chow (RPI-ECSE)
J.
17 / 63
For each bus i, except for the swing bus, the power injection from the
node into the system is
Si = Pi + jQi = Vi Ii
we obtain
From Y V = I,
N
X
Yij Vj = Ii
j=1
N
X
Si = Vi
Yij Vj
j=1
Thus
N
N
X
X
Pi +jQi = Vi eji
|Yij |ejij Vj ejj = Vi
|Yij |Vj ej(i j ij )
j=1
c H. Chow (RPI-ECSE)
J.
j=1
18 / 63
that is,
Pi = Vi
N
X
i = 1, 2, ..., N 1
j=1
Q i = Vi
N
X
i = 1, 2, ..., N Ng
j=1
c H. Chow (RPI-ECSE)
J.
19 / 63
At iteration k + 1, compute
x(k+1) = x(k) + x
where x is solved from
J(x(k) )x = e(x(k) )
where there are 2N Ng 1 rows in both
P
P1 V1 N
j=1 |Yij |Vj cos(i j ij )
PN
P2 V2
j=1 |Yij |Vj cos(i j ij )
..
.
e(x) =
P
N
Q 1 V1
j=1 |Yij |Vj sin(i j ij )
..
.
c H. Chow (RPI-ECSE)
J.
20 / 63
where
J(x) =
P1
1
P2
1
P1
2
P2
2
Q1
1
Q1
2
P1
N1
P2
N1
P1
V1
P2
V1
Q1
N1
Q1
V1
..
.
..
.
P1
VNNg
P2
VNNg
Q1
VNNg
X
P1
|Y1j |Vj sin(1 j 1j )
= V1
1
j=1
P1
= V1 |Y12 |V2 sin(1 2 12 )
2
N
P1 X
|Y1j |Vj cos(1 j 1j ) V1 |Y11 | cos(11 )
=
V1
j=1
c H. Chow
J.
P1
= V1 |Y12 | sin(1 2 12 )
Power System Toolbox
August 25, 2014
(RPI-ECSEV
) 2
21 / 63
22 / 63
c H. Chow (RPI-ECSE)
J.
23 / 63
Dishonest NR Method
In the iterative solution of
"
# "
#
(k)
(k)
P
J (k)
=
= e(x(k) )
V (k)
Q(k)
where e(x) is the mismatch vector, instead of updating J at every
iteration, J is updated every two or three iterations. However, the
mismatch e(x) is updated at every iteration. Note that the LU
decomposition of J can be saved, and thus no refactorization is needed.
Fast Decoupled Loadflow (FDLF)
Consider the NR method
#
# "
#"
# "
"
P (k)
P (k)
(k)
(k)
(k)
P
V
=
=
J (k)
Q(k)
Q(k)
Q(k)
V (k)
V (k)
c H. Chow (RPI-ECSE)
J.
24 / 63
=
Q(k)
Q(k)
V (k)
0
V
Note that even though the search direction
P (k)
(k) = P (k) ,
Q(k)
V (k) = Q(k)
V
may not be as good as the fully coupled NR method, FDLP will still
converge to the right solution, because the mismatch is computed
correctly. FDLF will achieve a quadratic convergence rate, as long as
the off-diagonal blocks are sufficiently small. Also, FDLF works well
when R/X < 0.1.
c H. Chow (RPI-ECSE)
J.
25 / 63
Further simplification:
From the P/ and Q/V expressions, if we neglect line resistances
and assume |i j | small (sin(i j ) = 0 and cos(i j ) = 1), then
P
= diag(V ) B diag(V ),
Q
= diag(V ) B
V
BV = (diag(V ))1 Q
c H. Chow (RPI-ECSE)
J.
26 / 63
DC loadflow
In a DC loadflow, we assume that
1
|i j | is small
c H. Chow (RPI-ECSE)
J.
27 / 63
c H. Chow (RPI-ECSE)
J.
generation pu
load pu
PV, 3 is PQ
0.00
0.27
0.00
0.42
6.00
0.
0.
0.
0.
0.
0.
0.
0.
0.25
0.
3;
3;
2;
3;
1 ]
28 / 63
c H. Chow (RPI-ECSE)
J.
29 / 63
30 / 63
is
is
is
is
is
is
4.34711.
2.13662.
0.495287.
0.00246548.
0.000033704.
8.84984e-012.
LOAD-FLOW STUDY
REPORT OF POWER FLOW CALCULATIONS
13-Jul-94
SWING BUS
:
NUMBER OF ITERATIONS
:
SOLUTION TIME
:
TOTAL TIME
:
TOTAL REAL POWER LOSSES
:
TOTAL REACTIVE POWER LOSSES:
c H. Chow (RPI-ECSE)
J.
BUS 50
5
1.92 sec.
5.44 sec.
6.59692 pu.
45.2356 pu.
31 / 63
BUS
10.0000
11.0000
12.0000
30.0000
31.0000
32.0000
50.0000
123.0000
124.0000
VOLTS
0.9988
0.9940
1.0326
0.9800
0.9900
1.0066
1.0500
1.0000
1.0200
GENERATION
ANGLE
REAL REACTIVE
24.4449
0
0
23.7896
0
0
23.4777
0
0
33.6919 7.3500 2.8746
29.5526 6.9500 1.6171
27.6191 5.1400 1.9541
8.6500 -17.824 7.2011
79.0885 6.0000 0.9563
77.0888 7.7000 0.3405
c H. Chow (RPI-ECSE)
J.
LOAD
REAL
REACTIVE
0.0000 0.0000
0.0000 0.0000
0.0900 0.8800
0
0
0
0
0
0
0
0
7.5000 2.0000
9.4600 -0.4000
32 / 63
LINE
1.0000
1.0000
2.0000
2.0000
LINE FLOWS
FROM BUS TO BUS
REAL
REACTIVE
10.0000
30.0000 -7.3500 -1.5775
30.0000
10.0000 7.3500 2.8746
11.0000
10.0000 -2.7184 -0.8690
10.0000
11.0000 2.7217 0.8347
c H. Chow (RPI-ECSE)
J.
33 / 63
Dynamic Simulation
Area 1
10
20
Area 2
101
13
120 110
Gen 1
Gen 11
Gen 12
Gen 2
14
Load 4
1
2
3
4
5
11
12
Load 14
c H. Chow (RPI-ECSE)
J.
34 / 63
c H. Chow (RPI-ECSE)
J.
35 / 63
c H. Chow (RPI-ECSE)
J.
36 / 63
""
Eq
""
"$
I t Ra
id
"$
Xq )
jI t Xq
!"
""
jI t Xd'
It
ed
'
q -axis
""
eq
Et
EI
jid (Xd
eq '
iq
!"
(X d
ji d
d -axis
c H. Chow (RPI-ECSE)
J.
37 / 63
Vref (! 0)
"
Vc
Exciter
Voltage regulator
KA
VR
1 " sTA
Vf
1
K E'
" sTE
E fd
sK F
1 " sTF
c H. Chow (RPI-ECSE)
J.
38 / 63
Type ST 1A
c H. Chow (RPI-ECSE)
J.
39 / 63
FHP
Main Steam
pressure PT
FIP
!G
"
Control valve
1
sTCH
1
sTRH
IV
"
1
sTCO
FLP
position
c H. Chow (RPI-ECSE)
J.
Reheater
!Tm
Crossover
1 - fully open
0 - bypass
40 / 63
1
R
ref
"
c H. Chow (RPI-ECSE)
J.
FHPTRHs !Pm
1
1
TRHs
1
2Hs
41 / 63
=
(Pm Pe )
dt2
2H
is written as a system of 2 first-order DEs
d
1
E V sin
d
= ,
=
Pm
dt
dt
2H
Xeq
where = 2fo ( = 377 for a 60 Hz system and 314 for a 50 Hz
system). Units: is in radians and is in pu.
c H. Chow (RPI-ECSE)
J.
42 / 63
x, f Rn , u Rm
c H. Chow (RPI-ECSE)
J.
43 / 63
xk
} = error
true x
slope is x (tk )
xk
to
c H. Chow (RPI-ECSE)
J.
tk
tk
t
August 25, 2014
44 / 63
h2
hn (n)
hn+1 (n+1)
x
k + +
xk +
x
()
2
n!
(n + 1)! k
f
f
f
+
x +
u
t
x
u
and so on.
If one only takes the first n terms, then the (n + 1)st term becomes the
local truncation error .
c H. Chow (RPI-ECSE)
J.
45 / 63
h2
h2
h2 (x k+1 x k )
h
x
()
x
k
= (x k+1 x k )
2
2
2
h
2
To keep the error small, one needs a small stepsize h. For power system
dynamic simulation, we want to see about 100 points per second,
taking into account time constants and control actions. For Eulers
method a stepsize of h = 10 ms may not provide an accurate solution.
One can improve on the accuracy by modifying the Eulers method.
c H. Chow (RPI-ECSE)
J.
46 / 63
xk+1 = xk +
1
2
(x k
xk 1
1
1
xk
to
tk
c H. Chow (RPI-ECSE)
J.
tk
h
(x k + x
k+1 )
2
xk 1 )
47 / 63
= f (x(t)),
x(t0 ) = x0
48 / 63
49 / 63
c H. Chow (RPI-ECSE)
J.
50 / 63
Select system
configuration
Network solution
Corrector step
or increment
time
Dynamics
calculation
YV
I , with appropriate Y
Compute !, !! , etc
Integration
Yes
t switch
Note: for 3-phase short circuit at Bus k, YLk = , that is, set YLk to a
very large number, like 9999 pu.
c H. Chow (RPI-ECSE)
J.
51 / 63
Steps 2 and 3 are used repeatedly. Note that the dynamics code is
usable in both the predictor and corrector parts.
c H. Chow (RPI-ECSE)
J.
52 / 63
53 / 63
Generator data
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
Column
1. machine number
2. bus number
3. base mva
4. leakage reactance x l(pu)
5. resistance r a(pu)
6. d-axis sychronous reactance x d(pu)
7. d-axis transient reactance x d(pu)
8. d-axis subtransient reactance x" d(pu)
9. d-axis open-circuit time constant T do(sec)
10. d-axis open-circuit subtransient time
constant T" do(sec)
11. q-axis synchronous reactance x q(pu)
12. q-axis transient reactance x q(pu)
13. q-axis subtransient reactance x" q(pu)
14. q-axis open-circuit time constant T qo(sec)
15. q-axis open circuit subtransient time
constant T" qo(sec)
c H. Chow (RPI-ECSE)
J.
54 / 63
c H. Chow (RPI-ECSE)
J.
55 / 63
Column
1. exciter type - 3 for ST3
2. machine number
3. input filter time constant T R
4. voltage regulator gain K A
5. voltage regulator time constant T A
6. voltage regulator time constant T B
7. voltage regulator time constant T C
8. maximum voltage regulator output V Rmax
9. minimum voltage regulator output V Rmin
10. maximum internal signal V Imax
11. minimum internal signal V Imin
12. first stage regulator gain K J
13. potential circuit gain coefficient K p
14. potential circuit phase angle theta p
c H. Chow (RPI-ECSE)
J.
56 / 63
c H. Chow (RPI-ECSE)
J.
57 / 63
Disturbance Script
% row 1 col1 simulation start time (s) (cols 2 to 6 zeros)
%
col7 initial time step (s)
% row 2 col1 fault application time (s)
%
col2 bus number at which fault is applied
%
col3 bus number defining far end of faulted line
%
col4 zero sequence impedance in pu on system base
%
col5 negative sequence impedance in pu on system base
%
col6 type of fault - 0 three phase
%
- 1 line to ground
%
- 2 line-to-line to ground
%
- 3 line-to-line
%
- 4 loss of line with no fault
%
- 5 loss of load at bus
%
col7 time step for fault period (s)
% row 3 col1 near end fault clearing time (s) (cols 2 to 6 zeros)
%
col7 time step for second part of fault (s)
c H. Chow (RPI-ECSE)
J.
58 / 63
% row 4 col1 far end fault clearing time (s) (cols 2 to 6 zeros)
%
col7 time step for fault cleared simulation (s)
% row 5 col1 time to change step length (s)
%
col7 time step (s)
%
% row n col1 finishing time (s) (last row)
%
sw con = [...
0
0 0 0 0 0 0.01; % set initial time step
0.1
3 2 0 0 0 0.001; % apply 3-ph fault at bus 3 on line 3-2
0.167 0 0 0 0 0 0.001; % clear fault at bus 3
0.167 0 0 0 0 0 0.001; % clear remote end
0.50 0 0 0 0 0 0.01; % increase time step
1.0
0 0 0 0 0 0.01; % increase time step
5.0
0 0 0 0 0 0 ]; % end simulation
c H. Chow (RPI-ECSE)
J.
59 / 63
Simulation
c H. Chow (RPI-ECSE)
J.
60 / 63
machine angles
120
0.02
0.01
80
speed in pu
angle in degrees
100
60
40
20
0.01
0
20
2
0.02
2
5
4
1.5
5
4
1.5
2
internal generator number
1
0
c H. Chow (RPI-ECSE)
J.
time in seconds
1
0
time in seconds
61 / 63
machine angles
x 10
3
0.8
0.6
2
speed in pu
angle in degrees
2.5
1.5
1
0.5
0.4
0.2
0
0
0.5
2
0.2
2
5
4
1.5
5
4
1.5
2
internal generator number
1
0
c H. Chow (RPI-ECSE)
J.
time in seconds
1
0
time in seconds
62 / 63
Getting PST
c H. Chow (RPI-ECSE)
J.
63 / 63