IEEE 14-Bus Verification#
Prepared by Hantao Cui. Last revised 23 May 2020.
Background#
Two line trip scenarios are used to verify ANDES simulation results with DSATools TSAT.
Dynamic data is created to utilize the available models, including GENROU, TGOV1, IEEEG1, EXST2, EXDC2, ESST3A, IEEEST and ST2CUT. Test case data can be found at the end of the notebook.
Simulation Parameters#
Integretion method: Trapezidal Rule (ANDES and TSAT).
Time step size: 1/120
sec. (Note: step size between 1/30
to 1/120
has little impact on the ANDES results. One can use tstep=1/30
to obtain almost the same results.)
Load conversion: static loads are converted to 100% constant impedances for both P and Q.
TSAT automatic parameter correction is disabled.
Initialization#
Power flow solutions are identical across all the two software.
GENROU initialization ($E_{FD}$, $E_{TERM}$, $P$, $Q$, $\delta$, $I_d$ and $I_q$) is identical to that from PSS/E for all cases (with and without generator saturation). Note that $I_d$ and $I_q$ are in machine base in PSS/E but in system base in ANDES.
GENROU initialization (including all the internal variables $E'd$, $E'q$, $\psi{kd}$, $\psi{kq}$, $\psi''_d$, and $\psi''_q$) is identical to that from OpenIPSL.
No controller limit violation occurs during initialization.
Conclusion#
IEEE 14-bus system simulation results from ANDES are identical to that from TSAT.
import andes
import numpy as np
from andes.utils.tsat import tsat_to_df, plot_comparison, run_cmp
andes.config_logger(stream_level=30)
# load scenario 1 data
omega_lt2 = tsat_to_df('omega_lt2s.xls')
v_lt2 = tsat_to_df('v_lt2s.xls')
# load scenario 2 data
omega_gt = tsat_to_df('omega_gt.xls')
v_gt = tsat_to_df('v_gt.xls')
Scenario 1#
Line 1-2 trips at 1 sec. and reconnects after 2.0 sec. The reconnection delay is set to 2 seconds to trigger a large disturbance to the system to verify nonlinear models.
Simulation Setup#
ss = run_cmp('ieee14.raw', dyr='ieee14.dyr', fault_line='Line_1',
t1=1.0, t2=3.0, tstep=1/120)
<Toggle Toggle_1>: Line.Line_1 status changed to 0.0 at t=1.0 sec.
<Toggle Toggle_2>: Line.Line_1 status changed to 1.0 at t=3.0 sec.
100%|████████████████████████████████| 100/100 [00:16<00:00, 6.15%/s]
Scenario 1 Plots#
fig, ax = plot_comparison(ss, ss.GENROU.omega,
omega_lt2, a=[0, 1],
ylabel="Rotor Speed [Hz]",
tsat_header=[r'$\omega$ TSAT 1', r'$\omega$ TSAT 2'],
scale=60, left=0, right=10)
fig, ax = plot_comparison(ss, ss.GENROU.v,
v_lt2, a=[0, 1],
ylabel="Terminal Voltage [pu]",
tsat_header=['V TSAT 1', 'V TSAT 2'],
left=0, right=10)
Scenario 2#
Line 7-8 trips at 1 sec. and reconnects after 0.1 sec. The line is an equivalent branch of the three-winding transformer. Tripping 7-8 will isolate Bus 8.
Simulation Setup#
ss2 = run_cmp('ieee14.raw', dyr='ieee14.dyr', fault_line='Line_20',
t1=1.0, t2=1.1, tstep=1/120)
<Toggle Toggle_1>: Line.Line_20 status changed to 0.0 at t=1.0 sec.
<Toggle Toggle_2>: Line.Line_20 status changed to 1.0 at t=1.1 sec.
100%|████████████████████████████████| 100/100 [00:12<00:00, 8.10%/s]
# line data
ss2.Line.cache.df.iloc[19]
idx Line_20
u 1
name Line_20
bus1 8
bus2 7
Sn 100
fn 60
Vn1 69
Vn2 138
r 0
x 0.17615
b 0
g 0
b1 0
g1 0
b2 0
g2 0
trans 1
tap 0.99677
phi 0
owner None
xcoord None
ycoord None
Name: 19, dtype: object
Scenario 2 Plots#
tsat_omega_headers = [ss.TDS.plt._fname[i + 1] for i in ss.GENROU.omega.a]
tsat_omega_headers = [i.replace('GENROU', 'TSAT') for i in tsat_omega_headers]
fig2, ax2 = plot_comparison(ss2, ss2.GENROU.omega,
omega_gt, a=[3, 4],
ylabel="Rotor Speed [Hz]",
tsat_header=tsat_omega_headers,
scale=60, left=0, right=10)
tsat_v_headers = [ss.TDS.plt._fname[i + 1 + ss.dae.n] for i in ss.GENROU.v.a]
tsat_v_headers = [i.replace('Bus', 'TSAT') for i in tsat_v_headers]
fig2, ax2 = plot_comparison(ss2, ss2.GENROU.v,
v_gt, a=[3, 4],
ylabel="Terminal Voltage [pu]",
tsat_header=tsat_v_headers,
left=0, right=10)
Appendix#
IEEE 14-Bus System Data
Power Flow Data (PSS/E RAW format)#
# !cat results won't save to PDF
data = !cat ieee14.raw
print('\n'.join(data))
0, 100.00, 32, 0, 1, 60.00 / PSS(R)E 32 RAW created by rawd32 SUN, MAY 17 2020 20:38
IEEE 14 BUS TEST CASE
DISTRIBUTED WITH ANDES (HTTPS://GITHUB.COM/CURENT/ANDES)
1,'BUS1 ', 69.0000,3, 1, 1, 1,1.03000, 0.0000
2,'BUS2 ', 69.0000,2, 1, 1, 1,1.01970, -1.6032
3,'BUS3 ', 69.0000,2, 1, 1, 1,1.00042, -3.4433
4,'BUS4 ', 69.0000,1, 1, 1, 1,0.99858, -4.2812
5,'BUS5 ', 69.0000,1, 1, 1, 1,1.00443, -3.6850
6,'BUS6 ', 138.0000,2, 2, 2, 2,0.99871, -6.3024
7,'BUS7 ', 138.0000,1, 2, 2, 2,1.00682, -4.8292
8,'BUS8 ', 69.0000,2, 2, 2, 2,1.01895, -1.3945
9,'BUS9 ', 138.0000,1, 2, 2, 2,1.00193, -7.3053
10,'BUS10 ', 138.0000,1, 2, 2, 2,0.99351, -7.4600
11,'BUS11 ', 138.0000,1, 2, 2, 2,0.99245, -7.0444
12,'BUS12 ', 138.0000,1, 2, 2, 2,0.98639, -7.3874
13,'BUS13 ', 138.0000,1, 2, 2, 2,0.98403, -7.6654
14,'BUS14 ', 138.0000,1, 2, 2, 2,0.99063, -9.5636
0 /End of Bus data, Begin Load data
2,'1 ',1, 1, 1, 21.700, 12.700, 0.000, 0.000, 0.000, 0.000, 1,1
3,'1 ',1, 1, 1, 50.000, 25.000, 0.000, 0.000, 0.000, 0.000, 1,1
4,'1 ',1, 1, 1, 47.800, 10.000, 0.000, 0.000, 0.000, 0.000, 1,1
5,'1 ',1, 1, 1, 7.600, 1.600, 0.000, 0.000, 0.000, 0.000, 1,1
6,'1 ',1, 2, 2, 15.000, 7.500, 0.000, 0.000, 0.000, 0.000, 2,1
9,'1 ',1, 2, 2, 29.500, 16.600, 0.000, 0.000, 0.000, 0.000, 2,1
10,'1 ',1, 2, 2, 9.000, 5.800, 0.000, 0.000, 0.000, 0.000, 2,1
11,'1 ',1, 2, 2, 3.500, 1.800, 0.000, 0.000, 0.000, 0.000, 2,1
12,'1 ',1, 2, 2, 6.100, 1.600, 0.000, 0.000, 0.000, 0.000, 2,1
13,'1 ',1, 2, 2, 13.500, 5.800, 0.000, 0.000, 0.000, 0.000, 2,1
14,'1 ',1, 2, 2, 20.000, 7.000, 0.000, 0.000, 0.000, 0.000, 2,1
0 /End of Load data, Begin Fixed shunt data
0 /End of Fixed shunt data, Begin Generator data
1,'1 ', 81.442, 1.962, 100.000, -50.000,1.03000, 0, 100.000, 0.00000E+0, 2.30000E-1, 0.00000E+0, 0.00000E+0,1.00000,1, 100.0, 200.000, 50.000, 1,1.0000
2,'1 ', 40.000, 15.000, 15.000, -40.000,1.03000, 0, 100.000, 0.00000E+0, 1.30000E-1, 0.00000E+0, 0.00000E+0,1.00000,1, 100.0, 50.000, 10.000, 1,1.0000
3,'1 ', 40.000, 15.000, 15.000, -10.000,1.01000, 0, 100.000, 0.00000E+0, 1.30000E-1, 0.00000E+0, 0.00000E+0,1.00000,1, 100.0, 50.000, 10.000, 1,1.0000
6,'1 ', 30.000, 10.000, 10.000, -6.000,1.03000, 0, 100.000, 0.00000E+0, 1.20000E-1, 0.00000E+0, 0.00000E+0,1.00000,1, 100.0, 50.000, 10.000, 1,1.0000
8,'1 ', 35.000, 10.000, 10.000, -6.000,1.03000, 0, 100.000, 0.00000E+0, 1.20000E-1, 0.00000E+0, 0.00000E+0,1.00000,1, 100.0, 50.000, 10.000, 1,1.0000
0 /End of Generator data, Begin Branch data
1, 2,'1 ', 1.93800E-2, 5.91700E-2, 0.05280, 100.00, 100.00, 0.00, 0.00000, 0.00000, 0.00000, 0.00000,1,1, 0.00, 1,1.0000
1, 5,'1 ', 5.40300E-2, 2.23040E-1, 0.04920, 100.00, 100.00, 0.00, 0.00000, 0.00000, 0.00000, 0.00000,1,1, 0.00, 1,1.0000
2, 3,'1 ', 4.69900E-2, 1.97970E-1, 0.04380, 100.00, 100.00, 0.00, 0.00000, 0.00000, 0.00000, 0.00000,1,1, 0.00, 1,1.0000
2, 4,'1 ', 5.81100E-2, 1.76320E-1, 0.03400, 100.00, 100.00, 0.00, 0.00000, 0.00000, 0.00000, 0.00000,1,1, 0.00, 1,1.0000
2, 5,'1 ', 5.69500E-2, 1.73880E-1, 0.03460, 100.00, 100.00, 0.00, 0.00000, 0.00000, 0.00000, 0.00000,1,1, 0.00, 1,1.0000
3, 4,'1 ', 6.70100E-2, 1.71030E-1, 0.01280, 100.00, 100.00, 0.00, 0.00000, 0.00000, 0.00000, 0.00000,1,1, 0.00, 1,1.0000
4, 5,'1 ', 1.33500E-2, 4.21100E-2, 0.00000, 100.00, 100.00, 0.00, 0.00000, 0.00000, 0.00000, 0.00000,1,1, 0.00, 1,1.0000
6, 11,'1 ', 9.49800E-2, 1.98900E-1, 0.00000, 100.00, 100.00, 0.00, 0.00000, 0.00000, 0.00000, 0.00000,1,1, 0.00, 1,1.0000
6, 12,'1 ', 1.22910E-1, 2.55810E-1, 0.00000, 100.00, 100.00, 0.00, 0.00000, 0.00000, 0.00000, 0.00000,1,1, 0.00, 1,1.0000
6, 13,'1 ', 6.61500E-2, 1.30270E-1, 0.00000, 100.00, 100.00, 0.00, 0.00000, 0.00000, 0.00000, 0.00000,1,1, 0.00, 1,1.0000
7, 9,'1 ',-0.00000E+0, 1.10010E-1, 0.00000, 100.00, 100.00, 0.00, 0.00000, 0.00000, 0.00000, 0.00000,1,1, 0.00, 1,1.0000
9, 10,'1 ', 3.18100E-2, 8.45000E-2, 0.00000, 100.00, 100.00, 0.00, 0.00000, 0.00000, 0.00000, 0.00000,1,1, 0.00, 1,1.0000
9, 14,'1 ', 1.27110E-1, 2.70380E-1, 0.00000, 100.00, 100.00, 0.00, 0.00000, 0.00000, 0.00000, 0.00000,1,1, 0.00, 1,1.0000
10, 11,'1 ', 8.20500E-2, 1.92070E-1, 0.00000, 100.00, 100.00, 0.00, 0.00000, 0.00000, 0.00000, 0.00000,1,1, 0.00, 1,1.0000
12, 13,'1 ', 2.20920E-1, 1.99880E-1, 0.00000, 100.00, 100.00, 0.00, 0.00000, 0.00000, 0.00000, 0.00000,1,1, 0.00, 1,1.0000
13, 14,'1 ', 1.70930E-1, 3.48020E-1, 0.00000, 100.00, 100.00, 0.00, 0.00000, 0.00000, 0.00000, 0.00000,1,1, 0.00, 1,1.0000
0 /End of Branch data, Begin Transformer data
4, 7, 0,'1 ',1,1,1, 0.00000E+0, 0.00000E+0,2,' ',1, 1,1.0000
0.00000E+0, 2.09120E-1, 100.00
0.99677, 0.000, 0.000, 20.00, 20.00, 0.00,-1, 0, 1.10000, 0.90000, 1.10000, 0.90000, 32, 0, 0.00000, 0.00000, 0.000
1.00000, 0.000
4, 9, 0,'1 ',1,1,1, 0.00000E+0, 0.00000E+0,2,' ',1, 1,1.0000
0.00000E+0, 5.56180E-1, 100.00
0.99677, 0.000, 0.000, 20.00, 20.00, 0.00,-1, 0, 1.10000, 0.90000, 1.10000, 0.90000, 32, 0, 0.00000, 0.00000, 0.000
1.00000, 0.000
6, 5, 0,'1 ',1,1,1, 0.00000E+0, 0.00000E+0,1,' ',1, 1,1.0000
0.00000E+0, 2.52020E-1, 100.00
0.99677, 0.000, 0.000, 50.00, 50.00, 0.00,-1, 0, 1.10000, 0.90000, 1.10000, 0.90000, 32, 0, 0.00000, 0.00000, 0.000
1.00000, 0.000
8, 7, 0,'1 ',1,1,1, 0.00000E+0, 0.00000E+0,1,' ',1, 1,1.0000
0.00000E+0, 1.76150E-1, 100.00
0.99677, 0.000, 0.000, 50.00, 50.00, 0.00,-1, 0, 1.10000, 0.90000, 1.10000, 0.90000, 32, 0, 0.00000, 0.00000, 0.000
1.00000, 0.000
0 /End of Transformer data, Begin Area interchange data
1, 2, 0.000, 999.990,'AREA1 '
2, 0, 0.000, 10.000,'AREA2 '
0 /End of Area interchange data, Begin Two-terminal dc line data
0 /End of Two-terminal dc line data, Begin VSC dc line data
0 /End of VSC dc line data, Begin Impedance correction table data
0 /End of Impedance correction table data, Begin Multi-terminal dc line data
0 /End of Multi-terminal dc line data, Begin Multi-section line data
0 /End of Multi-section line data, Begin Zone data
1,'ZONE1 '
2,'ZONE2 '
0 /End of Zone data, Begin Inter-area transfer data
0 /End of Inter-area transfer data, Begin Owner data
1,'OWNER1 '
2,'OWNER2 '
0 /End of Owner data, Begin FACTS device data
0 /End of FACTS device data, Begin Switched shunt data
9,1,0,1,1.02500,0.96000, 0, 100.0,' ', 19.00, 3, 5.00, 1, 4.00
14,1,0,1,1.02500,0.96000, 0, 100.0,' ', 15.00, 3, 5.00
0 /End of Switched shunt data, Begin GNE device data
0 /End of GNE device data
Q
Dynamic Data (PSS/E DYR format)#
data = !cat ieee14.dyr
print('\n'.join(data))
1 'GENROU' 1 6.5000 0.60000E-01 0.20000 0.50000E-01
4.0000 0.0000 1.8000 1.7500 0.60000
0.80000 0.23000 0.15000 0.90000E-01 0.38000 /
1 'ST2CUT' 1 1 0 0 0
0.0000 0.0000 0.0000 0.0000 30.000
30.000 0.23000 0.25000E-01 0.23000 0.25000E-01
0.0000 0.0000 0.60000E-01 -0.60000E-01 0.0000
0.0000 /
1 'ESST3A' 1 0.20000E-01 0.20000 -0.20000 8.0000
1.0000 5.0000 20.000 0.0000 99.000
-99.000 1.0000 3.6700 0.43500 5.4800
0.10000E-01 0.98000E-02 3.8600 3.3300 0.40000
99.000 0.0000 /
1 'TGOV1' 1 0.50000E-01 0.50000E-01 1.0500 0.30000
1.0000 2.1000 0.0000 /
2 'GENROU' 1 6.5000 0.60000E-01 0.20000 0.50000E-01
6.5000 0.0000 1.8000 1.7500 0.60000
0.80000 0.28000 0.15000 0.90000E-01 0.38000 /
2 'ST2CUT' 1 1 0 0 0
10.000 0.0000 0.0000 0.0000 3.0000
3.0000 0.15000 0.50000E-01 0.15000 0.50000E-01
0.15000 0.50000E-01 0.50000E-01 -0.50000E-01 0.0000
0.0000 /
2 'EXST1' 1 0.20000E-01 99.000 -99.000 0.0000
0.20000E-01 50.000 0.20000E-01 9999.0 -9999.0
0.0000 0.10000E-01 1.0000 /
2 'IEEEG1' 1 0 0 20.000 0.10000
0.0000 0.20000 1.0000 -1.0000 0.95000
0.0000 0.10000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.30000 0.0000
8.7200 0.70000 0.0000 /
3 'GENROU' 1 6.5000 0.60000E-01 0.20000 0.50000E-01
5.0000 0.0000 1.8000 1.7500 0.60000
0.80000 0.34000 0.15000 0.90000E-01 0.38000 /
3 'IEEEST' 1 3 0 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.75000 1.0000 4.2000
-2.0000 0.10000 -0.10000 0.0000 0.0000 /
3 'ESST3A' 1 0.20000E-01 0.20000 -0.20000 8.0000
1.0000 5.0000 20.000 0.0000 99.000
-99.000 1.0000 3.6700 0.43500 5.4800
0.10000E-01 0.98000E-02 3.8600 3.3300 0.40000
99.000 0.0000 /
3 'IEEEG1' 1 0 0 20.000 0.10000
0.0000 0.20000 1.0000 -1.0000 0.95000
0.0000 0.10000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.30000 0.0000
8.7200 0.70000 0.0000 /
6 'GENROU' 1 6.5000 0.60000E-01 0.20000 0.50000E-01
5.0000 0.0000 1.8000 1.7500 0.60000
0.80000 0.28000 0.15000 0.90000E-01 0.38000 /
6 'ESST3A' 1 0.20000E-01 0.20000 -0.20000 8.0000
1.0000 5.0000 20.000 0.0000 99.000
-99.000 1.0000 3.6700 0.43500 5.4800
0.10000E-01 0.98000E-02 3.8600 3.3300 0.40000
99.000 0.0000 /
6 'TGOV1' 1 0.50000E-01 0.50000E-01 1.0500 0.30000
1.0000 2.1000 0.0000 /
8 'GENROU' 1 6.5000 0.60000E-01 0.20000 0.50000E-01
5.0000 0.0000 1.8000 1.7500 0.60000
0.80000 0.34000 0.15000 0.90000E-01 0.38000 /
8 'ESST3A' 1 0.20000E-01 0.20000 -0.20000 8.0000
1.0000 5.0000 20.000 0.0000 99.000
-99.000 1.0000 3.6700 0.43500 5.4800
0.10000E-01 0.98000E-02 3.8600 3.3300 0.40000
99.000 0.0000 /
8 'TGOV1' 1 0.50000E-01 0.50000E-01 1.0500 0.30000
1.0000 2.1000 0.0000 /