Commit 843b0733 authored by James Nutaro (1qn)'s avatar James Nutaro (1qn)
Browse files

Added source code and model data

parent ffb8b168
This diff is collapsed.
This diff is collapsed.
08/19/93 UW ARCHIVE 100.0 1962 W IEEE 14 Bus Test Case
BUS DATA FOLLOWS 14 ITEMS
1 Bus 1 HV 1 1 3 1.060 0.0 0.0 0.0 232.4 -16.9 0.0 1.060 0.0 0.0 0.0 0.0 0
2 Bus 2 HV 1 1 2 1.045 -4.98 21.7 12.7 40.0 42.4 0.0 1.045 50.0 -40.0 0.0 0.0 0
3 Bus 3 HV 1 1 2 1.010 -12.72 94.2 19.0 0.0 23.4 0.0 1.010 40.0 0.0 0.0 0.0 0
4 Bus 4 HV 1 1 0 1.019 -10.33 47.8 -3.9 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
5 Bus 5 HV 1 1 0 1.020 -8.78 7.6 1.6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
6 Bus 6 LV 1 1 2 1.070 -14.22 11.2 7.5 0.0 12.2 0.0 1.070 24.0 -6.0 0.0 0.0 0
7 Bus 7 ZV 1 1 0 1.062 -13.37 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
8 Bus 8 TV 1 1 2 1.090 -13.36 0.0 0.0 0.0 17.4 0.0 1.090 24.0 -6.0 0.0 0.0 0
9 Bus 9 LV 1 1 0 1.056 -14.94 29.5 16.6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.19 0
10 Bus 10 LV 1 1 0 1.051 -15.10 9.0 5.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
11 Bus 11 LV 1 1 0 1.057 -14.79 3.5 1.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
12 Bus 12 LV 1 1 0 1.055 -15.07 6.1 1.6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
13 Bus 13 LV 1 1 0 1.050 -15.16 13.5 5.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
14 Bus 14 LV 1 1 0 1.036 -16.04 14.9 5.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
-999
BRANCH DATA FOLLOWS 20 ITEMS
1 2 1 1 1 0 0.01938 0.05917 0.0528 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
1 5 1 1 1 0 0.05403 0.22304 0.0492 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2 3 1 1 1 0 0.04699 0.19797 0.0438 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2 4 1 1 1 0 0.05811 0.17632 0.0340 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2 5 1 1 1 0 0.05695 0.17388 0.0346 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
3 4 1 1 1 0 0.06701 0.17103 0.0128 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
4 5 1 1 1 0 0.01335 0.04211 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
4 7 1 1 1 0 0.0 0.20912 0.0 0 0 0 0 0 0.978 0.0 0.0 0.0 0.0 0.0 0.0
4 9 1 1 1 0 0.0 0.55618 0.0 0 0 0 0 0 0.969 0.0 0.0 0.0 0.0 0.0 0.0
5 6 1 1 1 0 0.0 0.25202 0.0 0 0 0 0 0 0.932 0.0 0.0 0.0 0.0 0.0 0.0
6 11 1 1 1 0 0.09498 0.19890 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
6 12 1 1 1 0 0.12291 0.25581 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
6 13 1 1 1 0 0.06615 0.13027 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
7 8 1 1 1 0 0.0 0.17615 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
7 9 1 1 1 0 0.0 0.11001 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
9 10 1 1 1 0 0.03181 0.08450 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
9 14 1 1 1 0 0.12711 0.27038 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
10 11 1 1 1 0 0.08205 0.19207 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
12 13 1 1 1 0 0.22092 0.19988 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
13 14 1 1 1 0 0.17093 0.34802 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
-999
LOSS ZONES FOLLOWS 1 ITEMS
1 IEEE 14 BUS
-99
INTERCHANGE DATA FOLLOWS 1 ITEMS
1 2 Bus 2 HV 0.0 999.99 IEEE14 IEEE 14 Bus Test Case
-9
TIE LINES FOLLOWS 0 ITEMS
-999
END OF DATA
This diff is collapsed.
This diff is collapsed.
08/25/93 UW ARCHIVE 100.0 1961 W IEEE 57 Bus Test Case
BUS DATA FOLLOWS 57 ITEMS
1 Kanawha V1 1 1 3 1.040 0.0 55.0 17.0 128.9 -16.1 0.0 1.040 0.0 0.0 0.0 0.0 0
2 Turner V1 1 1 2 1.010 -1.18 3.0 88.0 0.0 -0.8 0.0 1.010 50.0 -17.0 0.0 0.0 0
3 Logan V1 1 1 2 0.985 -5.97 41.0 21.0 40.0 -1.0 0.0 0.985 60.0 -10.0 0.0 0.0 0
4 Sprigg V1 1 1 0 0.981 -7.32 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
5 Bus 5 V1 1 1 0 0.976 -8.52 13.0 4.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
6 Beaver Ck V1 1 1 2 0.980 -8.65 75.0 2.0 0.0 0.8 0.0 0.980 25.0 -8.0 0.0 0.0 0
7 Bus 7 V1 1 1 0 0.984 -7.58 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
8 Clinch Rv V1 1 1 2 1.005 -4.45 150.0 22.0 450.0 62.1 0.0 1.005 200.0 -140.0 0.0 0.0 0
9 Saltville V1 1 1 2 0.980 -9.56 121.0 26.0 0.0 2.2 0.0 0.980 9.0 -3.0 0.0 0.0 0
10 Bus 10 V1 1 1 0 0.986 -11.43 5.0 2.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
11 Tazewell V1 1 1 0 0.974 -10.17 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
12 Glen Lyn V1 1 1 2 1.015 -10.46 377.0 24.0 310.0 128.5 0.0 1.015 155.0 -150.0 0.0 0.0 0
13 Bus 13 V1 1 1 0 0.979 -9.79 18.0 2.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
14 Bus 14 V1 1 1 0 0.970 -9.33 10.5 5.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
15 Bus 15 V1 1 1 0 0.988 -7.18 22.0 5.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
16 Bus 16 V1 1 1 0 1.013 -8.85 43.0 3.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
17 Bus 17 V1 1 1 0 1.017 -5.39 42.0 8.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
18 Sprigg V2 1 1 0 1.001 -11.71 27.2 9.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.10 0
19 Bus 19 V2 1 1 0 0.970 -13.20 3.3 0.6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
20 Bus 20 V2 1 1 0 0.964 -13.41 2.3 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
21 Bus 21 V3 1 1 0 1.008 -12.89 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
22 Bus 22 V3 1 1 0 1.010 -12.84 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
23 Bus 23 V3 1 1 0 1.008 -12.91 6.3 2.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
24 Bus 24 V3 1 1 0 0.999 -13.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
25 Bus 25 V4 1 1 0 0.982 -18.13 6.3 3.2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.059 0
26 Bus 26 V5 1 1 0 0.959 -12.95 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
27 Bus 27 V5 1 1 0 0.982 -11.48 9.3 0.5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
28 Bus 28 V5 1 1 0 0.997 -10.45 4.6 2.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
29 Bus 29 V5 1 1 0 1.010 -9.75 17.0 2.6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
30 Bus 30 V4 1 1 0 0.962 -18.68 3.6 1.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
31 Bus 31 V4 1 1 0 0.936 -19.34 5.8 2.9 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
32 Bus 32 V4 1 1 0 0.949 -18.46 1.6 0.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
33 Bus 33 V4 1 1 0 0.947 -18.50 3.8 1.9 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
34 Bus 34 V3 1 1 0 0.959 -14.10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
35 Bus 35 V3 1 1 0 0.966 -13.86 6.0 3.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
36 Bus 36 V3 1 1 0 0.976 -13.59 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
37 Bus 37 V3 1 1 0 0.985 -13.41 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
38 Bus 38 V3 1 1 0 1.013 -12.71 14.0 7.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
39 Bus 39 V3 1 1 0 0.983 -13.46 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
40 Bus 40 V3 1 1 0 0.973 -13.62 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
41 Tazewell V6 1 1 0 0.996 -14.05 6.3 3.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
42 Bus 42 V6 1 1 0 0.966 -15.50 7.1 4.4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
43 Tazewell V7 1 1 0 1.010 -11.33 2.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
44 Bus 44 V3 1 1 0 1.017 -11.86 12.0 1.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
45 Bus 45 V3 1 1 0 1.036 -9.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
46 Bus 46 V3 1 1 0 1.050 -11.89 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
47 Bus 47 V3 1 1 0 1.033 -12.49 29.7 11.6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
48 Bus 48 V3 1 1 0 1.027 -12.59 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
49 Bus 49 V3 1 1 0 1.036 -12.92 18.0 8.5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
50 Bus 50 V3 1 1 0 1.023 -13.39 21.0 10.5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
51 Bus 51 V3 1 1 0 1.052 -12.52 18.0 5.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
52 Bus 52 V5 1 1 0 0.980 -11.47 4.9 2.2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
53 Bus 53 V5 1 1 0 0.971 -12.23 20.0 10.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.063 0
54 Bus 54 V5 1 1 0 0.996 -11.69 4.1 1.4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
55 Saltville V5 1 1 0 1.031 -10.78 6.8 3.4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
56 Bus 56 V6 1 1 0 0.968 -16.04 7.6 2.2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
57 Bus 57 V6 1 1 0 0.965 -16.56 6.7 2.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0
-999
BRANCH DATA FOLLOWS 80 ITEMS
1 2 1 1 1 0 0.0083 0.0280 0.1290 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2 3 1 1 1 0 0.0298 0.0850 0.0818 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
3 4 1 1 1 0 0.0112 0.0366 0.0380 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
4 5 1 1 1 0 0.0625 0.1320 0.0258 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
4 6 1 1 1 0 0.0430 0.1480 0.0348 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
6 7 1 1 1 0 0.0200 0.1020 0.0276 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
6 8 1 1 1 0 0.0339 0.1730 0.0470 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
8 9 1 1 1 0 0.0099 0.0505 0.0548 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
9 10 1 1 1 0 0.0369 0.1679 0.0440 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
9 11 1 1 1 0 0.0258 0.0848 0.0218 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
9 12 1 1 1 0 0.0648 0.2950 0.0772 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
9 13 1 1 1 0 0.0481 0.1580 0.0406 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
13 14 1 1 1 0 0.0132 0.0434 0.0110 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
13 15 1 1 1 0 0.0269 0.0869 0.0230 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
1 15 1 1 1 0 0.0178 0.0910 0.0988 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
1 16 1 1 1 0 0.0454 0.2060 0.0546 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
1 17 1 1 1 0 0.0238 0.1080 0.0286 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
3 15 1 1 1 0 0.0162 0.0530 0.0544 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
4 18 1 1 1 0 0.0 0.5550 0.0 0 0 0 0 0 0.970 0.0 0.0 0.0 0.0 0.0 0.0
4 18 1 1 1 0 0.0 0.4300 0.0 0 0 0 0 0 0.978 0.0 0.0 0.0 0.0 0.0 0.0
5 6 1 1 1 0 0.0302 0.0641 0.0124 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
7 8 1 1 1 0 0.0139 0.0712 0.0194 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
10 12 1 1 1 0 0.0277 0.1262 0.0328 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
11 13 1 1 1 0 0.0223 0.0732 0.0188 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
12 13 1 1 1 0 0.0178 0.0580 0.0604 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
12 16 1 1 1 0 0.0180 0.0813 0.0216 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
12 17 1 1 1 0 0.0397 0.1790 0.0476 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
14 15 1 1 1 0 0.0171 0.0547 0.0148 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
18 19 1 1 1 0 0.4610 0.6850 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
19 20 1 1 1 0 0.2830 0.4340 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
21 20 1 1 1 0 0.0 0.7767 0.0 0 0 0 0 0 1.043 0.0 0.0 0.0 0.0 0.0 0.0
21 22 1 1 1 0 0.0736 0.1170 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
22 23 1 1 1 0 0.0099 0.0152 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
23 24 1 1 1 0 0.1660 0.2560 0.0084 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
24 25 1 1 1 0 0.0 1.1820 0.0 0 0 0 0 0 1.000 0.0 0.0 0.0 0.0 0.0 0.0
24 25 1 1 1 0 0.0 1.2300 0.0 0 0 0 0 0 1.000 0.0 0.0 0.0 0.0 0.0 0.0
24 26 1 1 1 0 0.0 0.0473 0.0 0 0 0 0 0 1.043 0.0 0.0 0.0 0.0 0.0 0.0
26 27 1 1 1 0 0.1650 0.2540 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
27 28 1 1 1 0 0.0618 0.0954 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
28 29 1 1 1 0 0.0418 0.0587 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
7 29 1 1 1 0 0.0 0.0648 0.0 0 0 0 0 0 0.967 0.0 0.0 0.0 0.0 0.0 0.0
25 30 1 1 1 0 0.1350 0.2020 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
30 31 1 1 1 0 0.3260 0.4970 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
31 32 1 1 1 0 0.5070 0.7550 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
32 33 1 1 1 0 0.0392 0.0360 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
34 32 1 1 1 0 0.0 0.9530 0.0 0 0 0 0 0 0.975 0.0 0.0 0.0 0.0 0.0 0.0
34 35 1 1 1 0 0.0520 0.0780 0.0032 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
35 36 1 1 1 0 0.0430 0.0537 0.0016 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
36 37 1 1 1 0 0.0290 0.0366 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
37 38 1 1 1 0 0.0651 0.1009 0.0020 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
37 39 1 1 1 0 0.0239 0.0379 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
36 40 1 1 1 0 0.0300 0.0466 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
22 38 1 1 1 0 0.0192 0.0295 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
11 41 1 1 1 0 0.0 0.7490 0.0 0 0 0 0 0 0.955 0.0 0.0 0.0 0.0 0.0 0.0
41 42 1 1 1 0 0.2070 0.3520 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
41 43 1 1 1 0 0.0 0.4120 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
38 44 1 1 1 0 0.0289 0.0585 0.0020 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
15 45 1 1 1 0 0.0 0.1042 0.0 0 0 0 0 0 0.955 0.0 0.0 0.0 0.0 0.0 0.0
14 46 1 1 1 0 0.0 0.0735 0.0 0 0 0 0 0 0.900 0.0 0.0 0.0 0.0 0.0 0.0
46 47 1 1 1 0 0.0230 0.0680 0.0032 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
47 48 1 1 1 0 0.0182 0.0233 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
48 49 1 1 1 0 0.0834 0.1290 0.0048 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
49 50 1 1 1 0 0.0801 0.1280 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
50 51 1 1 1 0 0.1386 0.2200 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
10 51 1 1 1 0 0.0 0.0712 0.0 0 0 0 0 0 0.930 0.0 0.0 0.0 0.0 0.0 0.0
13 49 1 1 1 0 0.0 0.1910 0.0 0 0 0 0 0 0.895 0.0 0.0 0.0 0.0 0.0 0.0
29 52 1 1 1 0 0.1442 0.1870 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
52 53 1 1 1 0 0.0762 0.0984 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
53 54 1 1 1 0 0.1878 0.2320 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
54 55 1 1 1 0 0.1732 0.2265 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
11 43 1 1 1 0 0.0 0.1530 0.0 0 0 0 0 0 0.958 0.0 0.0 0.0 0.0 0.0 0.0
44 45 1 1 1 0 0.0624 0.1242 0.0040 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
40 56 1 1 1 0 0.0 1.1950 0.0 0 0 0 0 0 0.958 0.0 0.0 0.0 0.0 0.0 0.0
56 41 1 1 1 0 0.5530 0.5490 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
56 42 1 1 1 0 0.2125 0.3540 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
39 57 1 1 1 0 0.0 1.3550 0.0 0 0 0 0 0 0.980 0.0 0.0 0.0 0.0 0.0 0.0
57 56 1 1 1 0 0.1740 0.2600 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
38 49 1 1 1 0 0.1150 0.1770 0.0030 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
38 48 1 1 1 0 0.0312 0.0482 0.0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
9 55 1 1 1 0 0.0 0.1205 0.0 0 0 0 0 0 0.940 0.0 0.0 0.0 0.0 0.0 0.0
-999
LOSS ZONES FOLLOWS 1 ITEMS
1 IEEE 57 BUS
-99
INTERCHANGE DATA FOLLOWS 1 ITEMS
-9
1 8 Clinch Rv V1 0.0 999.99 IEEE57 IEEE 57 Bus Test Case
TIE LINES FOLLOWS 0 ITEMS
-999
END OF DATA
16/11/09 THYME TEST CASE 1.0 2009 W ORNL Test Case
BUS DATA FOLLOWS 2 ITEMS
1 Generator 1 1 2 1.011 0.5100 0.0 0.0 1.0101 0.1101 1.0 1.0 10.0 10.0 0.0 0.0 0
2 Load 1 1 2 1.000 0.0000 1.0 0.1 0.0000 0.0000 1.0 1.0 10.0 10.0 0.0 0.0 0
-999
BRANCH DATA FOLLOWS 1 ITEMS
2 1 1 1 1 0 0.01 0.01 0.0 0 0 0 0 0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
-999
LOSS ZONES FOLLOWS 1 ITEMS
1 ORNL Test Case
-999
INTERCHANGE DATA FOLLOWS 0 ITEMS
-999
TIE LINES FOLLOWS 0 ITEMS
-999
END OF DATA
#include "ElectricalData.h"
#include <iostream>
#include <cassert>
using namespace std;
/**
* This constructor sets the default parameters for the models
* of the generators. The default data is designed to ensure
* a stable system. The values are based on typical values
* described in "Computer-Aided Power System Analysis" by
* Natarajan.
*/
ElectricalData::genr_t::genr_t():
Tspd1(10.0),
Tspd2(1.0),
M(5.0),
R(1.0/0.05),
Te(100.0),
Vref(1.0),
D(1.0),
w0(0.0),
Ef0(0.0),
T0(0.0),
Pm0(0.0),
C0(0.0),
genr_mw(0.0),
genr_mvar(0.0),
agc(R)
{
}
void ElectricalData::configureGenerator(genr_t& genr_data, double mvar_base, double kv_base)
{
/**
* Inertia estimates are calculated from data in Table 5.1 of
* "Computer-Aided Power System Analysis" by Ramasamy Natarajan,
* published by Marcel Dekker, Inc., c. 2002.
*/
if (genr_data.genr_mw * mvar_base > 600.0) // Big nuke plant
{
genr_data.M = 3.5*genr_data.genr_mw;
genr_data.D = genr_data.M/3.5;
}
else if (genr_data.genr_mw * mvar_base > 300.0) // Big fossil plant
{
genr_data.M = 4.0*genr_data.genr_mw;
genr_data.D = genr_data.M/4.0;
}
else if (genr_data.genr_mw * mvar_base > 150.0) // Smaller steam plant
{
genr_data.M = 6.0*genr_data.genr_mw;
genr_data.D = genr_data.M/6.0;
}
// If the plant is too small then it does not have automatic controls
else
{
genr_data.M = 2.0;
genr_data.D = 1.0;
}
// Try to get close to an appropriate set of initial conditions
genr_data.Ef0 = 1.0;
genr_data.w0 = 1.0;
genr_data.C0 = genr_data.Pm0 = genr_data.genr_mw;
}
Complex ElectricalData::getAdmittance(int node)
{
// Passive loads. Admittance is calculated from the
// assumed power draw.
bus_data_t b = nodes[node];
Complex S(b.load_mw,b.load_mvar);
Complex V = polar(b.v,b.theta);
Complex Ii = conj(S)/conj(V);
Complex Y = Ii/V + b.B;
return Y;
}
void ElectricalData::segmentLines(int segments)
{
bus_data_t node;
node.v = 0.0;
node.theta = 0.0;
node.load_mw = 0.0;
node.load_mvar = 0.0;
node.B = Complex(0.0,0.0);
vector<line_t> initLines(lines);
lines.clear();
for (auto line: initLines)
{
line.y = line.y*double(segments);
line.B = line.B/double(segments);
int end = line.to;
lines.push_back(line);
for (int j = 1; j < segments; j++)
{
lines.back().to = node.ID = nodes.size();
ElectricalData::line_t seg;
seg.from = node.ID;
seg.y = line.y;
seg.B = line.B;
seg.tside = -1;
if (j == segments - 1)
seg.to = end;
lines.push_back(seg);
nodes.push_back(node);
}
}
}
#ifndef _electrical_data_h_
#define _electrical_data_h_
#include <map>
#include <vector>
#include <complex>
typedef std::complex<double> Complex;
/**
* This inteface class is used to access electrical data for the model.
* The electrical model consists of buses, or nodes, labeled
* from 0 to N-1, where N is the number of nodes. All units
* are assumed to be compatible with the "p.u." system.
*/
class ElectricalData
{
public:
/**
* Structure that describes a transmission line.
*/
struct line_t
{
/// Default constructor
line_t():
number(0),from(0),to(0),y(),B(),tside(-1){}
/**
* Create a line from not "from" to "to" with admittance y.
*/
line_t(int number, int from, int to, Complex y):
number(number),from(from),to(to),y(y),B(),tside(-1){}
/// Unique line number
int number;
/// Nodes connected by the line
int from, to;
/// Admittance of the line
Complex y;
/// Line charging
Complex B;
/// Transformer side. This should be to or from or -1 if there is no transformer
int tside;
};
/**
* Structure that characterizes a synchronous machine.
*/
struct genr_t
{
/// The constructor sets some a reasonable (maybe) parameter values and
/// initial condition
genr_t();
/// Speed governor time constants
double Tspd1, Tspd2;
/// Inertia constant
double M;
/// inverse of Droop
double R;
/// Time constant for the exicitation contoller
double Te;
/// Voltage magnitude reference
double Vref;
/// Resistance to off-nominal operating speeds
double D;
/// Initial angular velocity (p.u.)
double w0;
/// Initial exiciter field voltage (p.u.)
double Ef0;
/// Initial power angle (radians)
double T0;
/// Initial mechanical power output (p.u.)
double Pm0;
/// Initial governor signal
double C0;
/// Power for plant sizing information
double genr_mw, genr_mvar;
/// AGC control gain
double agc;
};
struct bus_data_t
{
int ID; // bus identifier
double v; // bus voltage (pu)
double theta; // bus angle (radians)
double load_mw; // real load
double load_mvar; // imaginary load
Complex B; // Shunt admittance to ground
genr_t genr; // Generator attached to this bus
};
/// Constructor
ElectricalData(double Freq):Freq(Freq){}
/// Destructor
virtual ~ElectricalData(){}
public:
/// Get bus information
bus_data_t getBusInfo(int index) const { return nodes[index]; }
/// Get the total number of nodes in the model
virtual int getNodeCount() { return nodes.size(); }
/// Get the list of electrical lines
virtual const std::vector<line_t>& getLines() { return lines; }
/**
* Get the Norton equivalent admittance at a load node.
* If there is no load, then this should return zero.
*/
virtual Complex getAdmittance(int node);
/**
* Break lines into segments
*/
void segmentLines(int segments);
protected:
const double Freq;
std::vector<bus_data_t> nodes;
std::vector<line_t> lines;
/**
* Guess at a generator's parameters and then add it
* to the network. Parameters can be overwritten afterwards
* if desired.
*/
void configureGenerator(genr_t& genr, double mvar_base, double kv_base = 13.8);
};
/**
* Exception to report problems with the input file.
*/
class DataFileFormatException:
public std::exception
{
public:
DataFileFormatException(std::string err_msg):
std::exception(),err_msg(err_msg)
{
}
const char* what() const throw() { return err_msg.c_str(); }
~DataFileFormatException() throw() {}
private:
const std::string err_msg;
};
#endif
#include "IEEE_CDF_Data.h"
#include <fstream>
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
#define DEGS_TO_RADS (3.14/180.0)
const int IEEE_CDF_Data::LINE_LEN = 1000;
void IEEE_CDF_Data::read_field(int start, int end)
{
bzero(buffer,LINE_LEN);
// CDF columns start at 1; our columns start at zero
start--;
end--;
for (int i = start; i <= end; i++)
{
buffer[i-start] = line[i];
}
}
IEEE_CDF_Data::IEEE_CDF_Data(const char* data_file, double Freq):
ElectricalData(Freq)
{
line = new char[LINE_LEN];
buffer = new char[LINE_LEN];
ifstream fin(data_file);
if (fin.bad() && !fin)
{
throw DataFileFormatException("Could not open file");
}
// Get the base power level
fin.getline(line,LINE_LEN);
read_field(32,37);
double Sbase = atof(buffer);
cout << "Sbase = " << Sbase << endl;
// Toss the next line
fin.getline(line,LINE_LEN);
// Read the bus information
int flag;
do
{
fin.getline(line,LINE_LEN);
read_field(1,4);
flag = atoi(buffer);
bus_data_t bus_data;
if (flag != -999)
{
// Make sure indices are contiguous
bus_data.ID = flag;
// Get the rest of the bus data
read_field(28,33); bus_data.v = atof(buffer);
read_field(34,40); bus_data.theta = atof(buffer);
bus_data.theta *= DEGS_TO_RADS;
read_field(41,49); bus_data.load_mw = atof(buffer)/Sbase;
read_field(50,59); bus_data.load_mvar = atof(buffer)/Sbase;
read_field(60,67); bus_data.genr.genr_mw = atof(buffer)/Sbase;
read_field(68,75); bus_data.genr.genr_mvar = atof(buffer)/Sbase;
read_field(107,114); double real_B = atof(buffer);
read_field(115,122); double imag_B = atof(buffer);
bus_data.B = Complex(real_B,imag_B);
// Get the base voltage
read_field(77,83); double Vbase = atof(buffer);
if (Vbase <= 0.0) Vbase = 115.0;
// Add the load and generator
if (bus_data.genr.genr_mw != 0.0 || bus_data.genr.genr_mvar != 0.0)
{
bus_data.genr.T0 = bus_data.theta;
configureGenerator(bus_data.genr,Sbase,Vbase);
}
nodes.push_back(bus_data);
}
}
while (flag != -999);
// Strip the next line
fin.getline(buffer,LINE_LEN);
// Get the transmission data
int line_count = 0;
do
{
fin.getline(line,LINE_LEN);
read_field(1,4);
flag = atoi(buffer);
line_t line_data;
if (flag != -999)
{
line_data.number = line_count;
// Get the starting and ending bus IDs
line_data.from = flag;
// Make sure they are part of the continuous set
read_field(6,9); line_data.to = atoi(buffer); // End line
// Line parameters
read_field(41,50); line_data.B = Complex(0,atof(buffer));
read_field(20,29); double real_line_y = atof(buffer); // Real line impedence
read_field(30,40); double imag_line_y = atof(buffer); // Complex line impendence
line_data.y = Complex(real_line_y,imag_line_y);
// Transformer?
read_field(77,82);
double turns = atof(buffer);
if (turns != 0)
{
read_field(74,74);
if (atoi(buffer) != 2)
line_data.tside = line_data.from;
else
line_data.tside = line_data.to;
}
line_data.y = 1.0/line_data.y;
lines.push_back(line_data);
line_count++;
}
}
while (flag != -999);
cout << "Got " << line_count << " transmission lines" << endl;
// Done
delete [] line;
delete [] buffer;
}
IEEE_CDF_Data::~IEEE_CDF_Data()
{
}
#ifndef _ieee_cdf_data_h_
#define _ieee_cdf_data_h_
#include <map>
#include <exception>
#include "ElectricalData.h"
/**
* Loads a test case from an IEEE CDF file format.
*/
class IEEE_CDF_Data:
public ElectricalData
{
public:
/// Constructor
IEEE_CDF_Data(const char* data_file, double Freq);
/// Destructor
~IEEE_CDF_Data();
private:
// Load columns from start to end inclusive from line
// into buffer. First column is at 1.
static const int LINE_LEN;