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)
../../_images/898cbd7e632b4605986ea50fe4777800f72ae7b20d03a5f5a4c9eac6fda471e9.png
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)
../../_images/b63c1d9e0c6ce0b8b51c98834eb1305fa5d689bee60cb8fba7e785f6d2a8dc24.png

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)
../../_images/c3f61e934b0af0ce913f8ff5d0212f8b6df881acf77f41e57b2d8de68a8ec4dd.png
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)
../../_images/29fd48e7013f1732aafc523f2c72fc312b8be4e8a1ca198ad0f1077e4dacf80c.png

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      /