ltbams 1.0.6__py3-none-any.whl → 1.0.7__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ams/_version.py +3 -3
- ams/cases/5bus/pjm5bus_demo.xlsx +0 -0
- ams/cases/5bus/pjm5bus_ev.xlsx +0 -0
- ams/cases/5bus/pjm5bus_jumper.xlsx +0 -0
- ams/cases/ieee14/ieee14_uced.xlsx +0 -0
- ams/cases/ieee39/ieee39_uced.xlsx +0 -0
- ams/cases/ieee39/ieee39_uced_esd1.xlsx +0 -0
- ams/cases/ieee39/ieee39_uced_pvd1.xlsx +0 -0
- ams/cases/ieee39/ieee39_uced_vis.xlsx +0 -0
- ams/core/matprocessor.py +7 -16
- ams/core/service.py +4 -3
- ams/interface.py +17 -4
- ams/models/__init__.py +1 -1
- ams/models/group.py +2 -2
- ams/models/line.py +2 -2
- ams/models/renewable/regc.py +1 -5
- ams/models/reserve.py +2 -2
- ams/models/static/gen.py +2 -2
- ams/models/static/pq.py +2 -2
- ams/models/timeslot.py +1 -1
- ams/routines/dcopf.py +1 -1
- ams/routines/dopf.py +10 -10
- ams/routines/ed.py +3 -4
- ams/routines/pflow.py +9 -10
- ams/routines/rted.py +20 -29
- ams/routines/uc.py +1 -1
- ams/system.py +11 -18
- docs/source/api.rst +2 -0
- docs/source/release-notes.rst +12 -0
- {ltbams-1.0.6.dist-info → ltbams-1.0.7.dist-info}/METADATA +1 -1
- {ltbams-1.0.6.dist-info → ltbams-1.0.7.dist-info}/RECORD +41 -44
- tests/test_1st_system.py +31 -0
- tests/test_andes_mats.py +1 -1
- tests/test_case.py +27 -19
- tests/test_rtn_ed.py +4 -4
- tests/test_rtn_rted.py +4 -4
- tests/test_rtn_uc.py +4 -4
- tests/test_service.py +2 -2
- ams/cases/5bus/pjm5bus_uced.json +0 -1062
- ams/cases/5bus/pjm5bus_uced.xlsx +0 -0
- ams/cases/5bus/pjm5bus_uced_esd1.xlsx +0 -0
- ams/cases/5bus/pjm5bus_uced_ev.xlsx +0 -0
- {ltbams-1.0.6.dist-info → ltbams-1.0.7.dist-info}/WHEEL +0 -0
- {ltbams-1.0.6.dist-info → ltbams-1.0.7.dist-info}/entry_points.txt +0 -0
- {ltbams-1.0.6.dist-info → ltbams-1.0.7.dist-info}/top_level.txt +0 -0
@@ -1,29 +1,26 @@
|
|
1
1
|
ams/__init__.py,sha256=dKIwng8xES4NQHn6ZHy8RCKeXphN9z2wyfmbvniIEg0,351
|
2
2
|
ams/__main__.py,sha256=EB4GfGiKgvnQ_psNr0QwPoziYvjmGvQ2yVsBwQtfrLw,170
|
3
|
-
ams/_version.py,sha256=
|
3
|
+
ams/_version.py,sha256=OAPUdjEgjrXQonMYZMpBIDd9aovta238shZS3_AbAQ8,497
|
4
4
|
ams/cli.py,sha256=EyNFXn565gFCppTxpyTZviBdPgUuKtgAPZ4WE6xewRk,6164
|
5
|
-
ams/interface.py,sha256=
|
5
|
+
ams/interface.py,sha256=_aF2VrO_hmVrW56H_q4CYWJps63nWUswCd3AWUbPbE8,44880
|
6
6
|
ams/main.py,sha256=wzKLe_BeQAUyFh-U1cxQIOwr-rAJM8ppB3EEi6_v2tw,23607
|
7
7
|
ams/report.py,sha256=gUscOYpPjuPuruzIXAADaifIZv2BSjmP1oKCuHdD3Vw,11004
|
8
8
|
ams/shared.py,sha256=yaO4RUD0T-zCcZeML20vORcaf_dXiwMAvjTriXz1xtg,4159
|
9
|
-
ams/system.py,sha256=
|
10
|
-
ams/cases/5bus/pjm5bus_demo.xlsx,sha256=
|
11
|
-
ams/cases/5bus/
|
12
|
-
ams/cases/5bus/
|
13
|
-
ams/cases/5bus/pjm5bus_uced.xlsx,sha256=Fl-k3aXQjyfz8VWFmjH7T4NFfqp3uzBQSZqu1bU_LQg,28196
|
14
|
-
ams/cases/5bus/pjm5bus_uced_esd1.xlsx,sha256=I5_GsOBn2wTNSnv7hS1GTJfMqRjYyWCO37WA7GnX0V4,28063
|
15
|
-
ams/cases/5bus/pjm5bus_uced_ev.xlsx,sha256=onDf3fMOjVSBGhVOSZtv0FJ3cqMAEUCwxu4sqmr2AQg,29702
|
9
|
+
ams/system.py,sha256=AW2_rMH0wjTuxhha87hQuyUCAllzWTfEsVBaTIiSAOg,25956
|
10
|
+
ams/cases/5bus/pjm5bus_demo.xlsx,sha256=OWIUprkg8_aQ_bTCaEFMl7Bhfa1R20zxAHXRQtXBix0,32607
|
11
|
+
ams/cases/5bus/pjm5bus_ev.xlsx,sha256=vR8dJv5jIxib1pgcMonhzvraoqZVJWhBSJdVXDL0qsI,19498
|
12
|
+
ams/cases/5bus/pjm5bus_jumper.xlsx,sha256=47QAol1RGz_aGvhV2emq9XCy_Db9Zca15_OMVAdFVR0,19332
|
16
13
|
ams/cases/ieee123/ieee123.xlsx,sha256=yWsEFN1BvcoBYX9hWdrenPC_qKQfXtZ4xhpwoIc2OSE,39223
|
17
14
|
ams/cases/ieee123/ieee123_regcv1.xlsx,sha256=dIygkiNGzo_RE0moMPFu-9Bt0uPDuAL9zYWAs6e8VSk,41678
|
18
15
|
ams/cases/ieee14/ieee14.json,sha256=bBy3i2jKqFNmnc_rmNOYvGm-SAW2T6wwvEQ-Hkj5Hkw,21400
|
19
16
|
ams/cases/ieee14/ieee14.raw,sha256=3occlj5Qw42YBVLxONVDIKLTQqHMizHrAfD7Xwzmyec,7935
|
20
17
|
ams/cases/ieee14/ieee14_conn.xlsx,sha256=GaaiIsrnS1aX0SRWL2EeCJgRMW9FW1qNoyo4pMZQsw8,19291
|
21
|
-
ams/cases/ieee14/ieee14_uced.xlsx,sha256=
|
18
|
+
ams/cases/ieee14/ieee14_uced.xlsx,sha256=Y2fUDF-pVOeB2m_raysXbkAEj11UgsXXss6NFF51JuE,33025
|
22
19
|
ams/cases/ieee39/ieee39.xlsx,sha256=Riz43xQSXi1L-Y9rJbQjuw8oXTnw4W6bGhm--45d-3Q,29465
|
23
|
-
ams/cases/ieee39/ieee39_uced.xlsx,sha256=
|
24
|
-
ams/cases/ieee39/ieee39_uced_esd1.xlsx,sha256=
|
25
|
-
ams/cases/ieee39/ieee39_uced_pvd1.xlsx,sha256=
|
26
|
-
ams/cases/ieee39/ieee39_uced_vis.xlsx,sha256=
|
20
|
+
ams/cases/ieee39/ieee39_uced.xlsx,sha256=1m-_8haVAIAcbZX0_aYgvI98XL8FAp871heeP6GNF1U,41696
|
21
|
+
ams/cases/ieee39/ieee39_uced_esd1.xlsx,sha256=Gftp12pPEFeDjM_wNcOmKDacUsNP6AAlklzXynyvx9o,40810
|
22
|
+
ams/cases/ieee39/ieee39_uced_pvd1.xlsx,sha256=b5GWo-daAaXy5Lc_qpwldDTtE1z554oCUMk-SsOrYx8,40750
|
23
|
+
ams/cases/ieee39/ieee39_uced_vis.xlsx,sha256=dS-Nz02spNlOpqvzHgVmZl3iDpn548g21X2qRSVTe_8,44924
|
27
24
|
ams/cases/matpower/benchmark.json,sha256=dAWT8wZZEZpMPj_tIsssubcYIlsE6vTHfXQQKQtKjNo,1205789
|
28
25
|
ams/cases/matpower/case118.m,sha256=vC5vIrS553ZXKIXuS1Dk9Ksu4MVXfpEm6G2QbxTEtfc,33696
|
29
26
|
ams/cases/matpower/case14.m,sha256=L_xOG3NK5sXpLb5otONgEO1pWku8xNBlx0xPvDn888E,4597
|
@@ -38,10 +35,10 @@ ams/cases/wecc/wecc.m,sha256=8Wqal6H5r1wNxLLQBCXo2V3v3JZY5IJDEkyrEGCrCWE,30498
|
|
38
35
|
ams/cases/wecc/wecc_uced.xlsx,sha256=R3tZgxEqz_ctKcjA1wwFecxn-QZXutvf7NzgnCg_078,94767
|
39
36
|
ams/core/__init__.py,sha256=OUJFLACc9Ggjvzi6DZfmfxrzciRcGtpLTsBfdbOUxGg,80
|
40
37
|
ams/core/documenter.py,sha256=FNkpiP65iO809B4Bgmp5C1QeJTQHi-sS9vTP7Wd9D8Q,23131
|
41
|
-
ams/core/matprocessor.py,sha256=
|
38
|
+
ams/core/matprocessor.py,sha256=3eEij-ul8Rx25ZwNbv66YEOKyUXB-fYO-ZQs5BpqmIU,26610
|
42
39
|
ams/core/model.py,sha256=vXLActAi9tLXRCNd5RrEMVWvF0Wt4mwltiRY5CjgrP4,10928
|
43
40
|
ams/core/param.py,sha256=LPH48xUHyqWqODD6IsiamUtkJDDSgGCEMAo6vroFoHE,11130
|
44
|
-
ams/core/service.py,sha256=
|
41
|
+
ams/core/service.py,sha256=Q4aeaYFWycIEH7I8DSO8Itah2CJxc3oAW46dtKCQEyA,28041
|
45
42
|
ams/core/symprocessor.py,sha256=HegjU_UnvWEny9kitI1su9J0WeFDjQnM4gNoeUGJ7qU,8428
|
46
43
|
ams/core/var.py,sha256=f48pzir4miBsB5sh6PwUsFe0LdNNEM-d3VufcjbUU0w,1591
|
47
44
|
ams/extension/__init__.py,sha256=5IFTNirDL0uDaUsg05_oociVT9VCy2rhPx1ad4LGveM,65
|
@@ -52,26 +49,26 @@ ams/io/matpower.py,sha256=Oj3FW-eqcl3H5mnB0U5XG1mtCK0SaxVOkgRXaC6MIKA,14523
|
|
52
49
|
ams/io/psse.py,sha256=w5VKNE6enX0lfKwPI857PRtdpwN39R6IFRIcdbPSpOg,151
|
53
50
|
ams/io/pypower.py,sha256=E6_kSNfv1Yyv9oYfFebeNeKaQPlHyRZQpE8F6Y67g8Q,2583
|
54
51
|
ams/io/xlsx.py,sha256=7ATW1seyxsGn7d5p5IuSRFHcoCHVVjMu3E7mP1Mc74U,2460
|
55
|
-
ams/models/__init__.py,sha256=
|
52
|
+
ams/models/__init__.py,sha256=EGkViLkVX_We9FAGuEkgfleMNmPw_vGp2Nq1OQimL7U,691
|
56
53
|
ams/models/area.py,sha256=AKYU6aJQKsVWRZdvMO7yic-8wZ1GumSTQXgDg5L0THw,899
|
57
54
|
ams/models/bus.py,sha256=U0vSegkm-9fqPQS9KMJQU6gpIMX_1GK5O_dvRc8-0P0,1585
|
58
55
|
ams/models/cost.py,sha256=rmGNj9ztMbqA-OIJj8fNNBh8bdYJSY9hk10vffgxc6k,5916
|
59
|
-
ams/models/group.py,sha256=
|
56
|
+
ams/models/group.py,sha256=EEB66FwLq6liC6lGHax3oXIFxlwdYb4JMeDLnbLg6j4,5618
|
60
57
|
ams/models/info.py,sha256=Oh0Xo5J4ZHBsNIkMOzIwv_DegsX1inyuv3Q5CpCfyQw,788
|
61
|
-
ams/models/line.py,sha256=
|
62
|
-
ams/models/reserve.py,sha256=
|
58
|
+
ams/models/line.py,sha256=dltKgVZdXj_kchA9QhHeyorYQKm_7PQW9B2qC_PTsKs,8084
|
59
|
+
ams/models/reserve.py,sha256=3BjWCyKrPL4CwTvmzRxk25H8Nkxh-Rz0Ne17I9Y2TUA,2816
|
63
60
|
ams/models/shunt.py,sha256=h5QV33EcCd86XRR0sMIzcO0PTeTirkWaxi8imPKzOi0,337
|
64
|
-
ams/models/timeslot.py,sha256=
|
61
|
+
ams/models/timeslot.py,sha256=XfXJukbQXTUawbsYI6BMLbytXNIe5VE2SQ5_t1Lc8_8,2001
|
65
62
|
ams/models/zone.py,sha256=b9DsXOsD9Dny-lCMAWwRpRpl7rYVa0ev180YwqFTaiA,1076
|
66
63
|
ams/models/distributed/__init__.py,sha256=3uiMHT2YRq79DXIB1jni6wP7dNoQMjU1bMTUpr4P6Rc,161
|
67
64
|
ams/models/distributed/esd1.py,sha256=A1qCLzaDtJVI-YoXJd6IRYtP_wp_Ajz2lfjFHvzqHkk,2130
|
68
65
|
ams/models/distributed/ev.py,sha256=mpEIGyG9jV1bXkRIXOkCck4hl5np3bfBKvs4ysxukdM,1978
|
69
66
|
ams/models/distributed/pvd1.py,sha256=KAOlXpZgT_w58xaGWjm5ht6ksac6eRhaqBFHK4EPRH8,1960
|
70
67
|
ams/models/renewable/__init__.py,sha256=7dZyRXbvBAHbLJeJssJ1hsOHj9Bgeg77kB5gcX_mBtg,118
|
71
|
-
ams/models/renewable/regc.py,sha256=
|
68
|
+
ams/models/renewable/regc.py,sha256=3J9alIGUn_GkibQ3-dKTylAOpNPzd5zpancPc79q9T4,3448
|
72
69
|
ams/models/static/__init__.py,sha256=lh5yR5Xb2unS4ndng-cLU1TAeoidu2s6VAVFLc3HUDU,96
|
73
|
-
ams/models/static/gen.py,sha256=
|
74
|
-
ams/models/static/pq.py,sha256=
|
70
|
+
ams/models/static/gen.py,sha256=SAaQD5_oOGFWa8NY8hbhsNqMQGHlToHdngEt_Xy5S3E,6685
|
71
|
+
ams/models/static/pq.py,sha256=a-z7-1Vegr3mPguRAdLqfJlwk5OG_Zpp8usfOzRAR30,2583
|
75
72
|
ams/opt/__init__.py,sha256=INsl8yxtOzTKqV9pzVxlL6RSGDRaUDwxpZMY1QROrF4,459
|
76
73
|
ams/opt/constraint.py,sha256=ERT9zwjQyGkvDo465Yd0wBexlIhjVmw0MyWq4BWnWoI,5534
|
77
74
|
ams/opt/exprcalc.py,sha256=oVtjNHzdWvYHV-8PdRehAxjledsQxpxatdNgMLeWS5o,3935
|
@@ -105,29 +102,29 @@ ams/pypower/routines/pflow.py,sha256=q5RFZ5XuB5YQZk1jpJ5aTUB3DfgPJEGsvWyLDNo5PJo
|
|
105
102
|
ams/routines/__init__.py,sha256=idfPyMhFr0hkUZjcAEQw14JA5zPHeFe3Vl3p4DCJ5d0,640
|
106
103
|
ams/routines/acopf.py,sha256=VZC3qs1G7zE--6XxE_wXv432nj3SV5hcrR8967ogYlg,3835
|
107
104
|
ams/routines/cpf.py,sha256=xsrUVjtGQ1b7UCXpwwYihqzTeEGJJKnO9LlX1Tz9Tks,1552
|
108
|
-
ams/routines/dcopf.py,sha256=
|
105
|
+
ams/routines/dcopf.py,sha256=6ETgopvX9tSFF3kssHsBchAttcyo2DTG-eIqjvlk0WY,11087
|
109
106
|
ams/routines/dcopf2.py,sha256=sDCP8zqYHDh7s7p9SX6G8QhMfIxCg3VPYJn6r3pRKyo,3620
|
110
107
|
ams/routines/dcpf.py,sha256=SswIb7t37ulxe1rjroA7oSa6z01kYjO-x8P1WWOUutM,8237
|
111
108
|
ams/routines/dcpf0.py,sha256=gPPfSUzzJbHz_gAEFVyZ3iriEHvLJ-OGpTzhza8FOkA,6811
|
112
|
-
ams/routines/dopf.py,sha256=
|
113
|
-
ams/routines/ed.py,sha256=
|
114
|
-
ams/routines/pflow.py,sha256=
|
109
|
+
ams/routines/dopf.py,sha256=8D36-FkPORYGaMnwGTqwz8HxAXk5ywo3mk8NlGq327g,6289
|
110
|
+
ams/routines/ed.py,sha256=i0Y3COlz4oAf8u8JxqfuQWn6WxjJzb59weLedow0Y_g,11777
|
111
|
+
ams/routines/pflow.py,sha256=CZAiwnZYhEmSU7Exn9CK6rFxWvjpvv1Py-pLegWJ71s,9419
|
115
112
|
ams/routines/pflow0.py,sha256=xocLw94jcl2hh3WwnS_mdUW6dsm3EVjvZptVb814GdE,3521
|
116
113
|
ams/routines/routine.py,sha256=I98uMg6QCt6bipNYwdgtNMbdw_gWCSNVGokS4UmvkSk,35932
|
117
|
-
ams/routines/rted.py,sha256=
|
114
|
+
ams/routines/rted.py,sha256=GOHRxo0-HS5HhwQg8lv7-2VcGr_M_TdUvvomgJ31fDQ,22070
|
118
115
|
ams/routines/type.py,sha256=lvTWSnCYIbRJXIm3HX6jA0Hv-WWYusTOUPfoW8DITlU,3877
|
119
|
-
ams/routines/uc.py,sha256=
|
116
|
+
ams/routines/uc.py,sha256=yPi16FDXugT7Jb7ZwXPSP7NpGyGZ3jvQtCWDI9hAnis,15632
|
120
117
|
ams/utils/__init__.py,sha256=2hAQmWRgmnE-bCGT9cJoW9FkPDMGRiGkbBcUgj-bgjI,122
|
121
118
|
ams/utils/misc.py,sha256=Y6tPKpUKJa7bL9alroJuG2UNW9vdQjnfAmKb2EbIls8,2027
|
122
119
|
ams/utils/paths.py,sha256=D9VNUwtJtHy-8PFzMnxtQ9HpkOXT6vdVOjfOTuoKGKw,6699
|
123
120
|
docs/Makefile,sha256=UKXBFAbKGPt1Xw9J84343v0Mh8ylAZ-tE0uCd74DrQU,725
|
124
121
|
docs/make.bat,sha256=9UgKGb4SdP006622fJiFxeFT1BeycYAs6hDbV1xwPy8,804
|
125
|
-
docs/source/api.rst,sha256=
|
122
|
+
docs/source/api.rst,sha256=UR7nboMuNl6XDbdozIf7oo_Il1XntogFk66pHSzTFug,1443
|
126
123
|
docs/source/conf.py,sha256=UyoWogZTUNSJU7pQS_JaR28nKddW94zr01LYoIciZZw,6688
|
127
124
|
docs/source/genmodelref.py,sha256=IhmF7bDw8BXPvLD8V3WjQNrfc-H07r5iS-_4DHbbp-8,1420
|
128
125
|
docs/source/genroutineref.py,sha256=0JyMc2kV5bWrWbSoO6d7o4QgDgG8mVy3JGGQWacJypw,1064
|
129
126
|
docs/source/index.rst,sha256=N5phQS5RIyYs-NZo_5yYB8LjvHzOKLeXzRA-M8i-g3Q,2688
|
130
|
-
docs/source/release-notes.rst,sha256=
|
127
|
+
docs/source/release-notes.rst,sha256=KHsxEcYBAKMF19k9sl6FyO5Et4ecRutohZvkC6vr1PA,13787
|
131
128
|
docs/source/_templates/autosummary/base.rst,sha256=zl3U4baR4a6YjsHyT-x9zCOrHwKZOVUdWn1NPX2u3bc,106
|
132
129
|
docs/source/_templates/autosummary/class.rst,sha256=Hv_igCsLsUpM62_zN0nqj6FSfKnS5xLyu8ZldMbfOAk,668
|
133
130
|
docs/source/_templates/autosummary/module.rst,sha256=YdbpCudOrEU-JbuSlzGvcOI2hn_KrCM6FW5HcGqkaEE,1113
|
@@ -157,10 +154,10 @@ docs/source/modeling/model.rst,sha256=j7OSvoXnDht6rGpgwPiJklsCWrebfx4DxIN-G8r6iF
|
|
157
154
|
docs/source/modeling/routine.rst,sha256=BkUE3y5L1lA7LP9Nyzc4zzY-tF3t4k7egBE188kybHY,4286
|
158
155
|
docs/source/modeling/system.rst,sha256=NMOPNMOKG1_dRyNPPx-MiCKbbpadxWJxGyU6geRUsvQ,1374
|
159
156
|
tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
160
|
-
tests/test_1st_system.py,sha256=
|
157
|
+
tests/test_1st_system.py,sha256=BLlJsHnEBeLfiMJvIjyPguMikfDjqGSzfn8cZ-tqCVc,1900
|
161
158
|
tests/test_addressing.py,sha256=MIT713KCqMg0h2o4rBDZsGUrpGadmMlXnrrdq-wB77E,1364
|
162
|
-
tests/test_andes_mats.py,sha256=
|
163
|
-
tests/test_case.py,sha256=
|
159
|
+
tests/test_andes_mats.py,sha256=O4nCthteh7Y91KsWnq_EcplvsIN8DY-lgEGkH5a7iOc,1669
|
160
|
+
tests/test_case.py,sha256=8Jn1hwrB72l6-rqbCWTGJOcxicu4GHVDzGsLLxjDFos,8833
|
164
161
|
tests/test_cli.py,sha256=TtCGBy2e7Ll_2gJTFo9juZtzhaakho_MqkcqhG2w2dk,870
|
165
162
|
tests/test_export_csv.py,sha256=rZCafNrVbwDo7ZNC4MrL1gIcrU0c6YVw2q-QGL3O4K4,2921
|
166
163
|
tests/test_group.py,sha256=Tq0s9gtenqrv4ws5YNzWxbiF4WgyhtMEAXZfJtew6M4,2699
|
@@ -178,13 +175,13 @@ tests/test_routine.py,sha256=gblLHBQ3DJgYiSGsqGdIGnn-CuEZAEnq9CqhqN5m608,6234
|
|
178
175
|
tests/test_rtn_dcopf.py,sha256=LOfAVFzl2t6oTqTmWhmstu1j9FnpzHxdrplbmb3Y6Mc,3660
|
179
176
|
tests/test_rtn_dcopf2.py,sha256=g0MOW8J6WPJPQAV3Xwufa3dWEEeH-cQDErzvb-cq8lE,3747
|
180
177
|
tests/test_rtn_dcpf.py,sha256=QC6F_4LOZ7mrWOEM3s6a6j-eUDM_n49MQouPIR6fzR0,2555
|
181
|
-
tests/test_rtn_ed.py,sha256=
|
178
|
+
tests/test_rtn_ed.py,sha256=xTtCe_yepvtk1yINq01vmGMhEE8E5ORk7yPZvaydUWA,10189
|
182
179
|
tests/test_rtn_pflow.py,sha256=aDL5Ewm6lWqpdHqIIu-DTllhXzt4bMjsLJaKbJa8sXQ,6990
|
183
|
-
tests/test_rtn_rted.py,sha256=
|
184
|
-
tests/test_rtn_uc.py,sha256=
|
185
|
-
tests/test_service.py,sha256=
|
186
|
-
ltbams-1.0.
|
187
|
-
ltbams-1.0.
|
188
|
-
ltbams-1.0.
|
189
|
-
ltbams-1.0.
|
190
|
-
ltbams-1.0.
|
180
|
+
tests/test_rtn_rted.py,sha256=1Vd4JCX3sfLnuXXzuUGFsEPTtqmdaDzDXpBcAQwnDf0,9785
|
181
|
+
tests/test_rtn_uc.py,sha256=8KrqxOxW6tiN4Fxl417NyHJCgdZwXh2ioX0mQbHuEgU,8302
|
182
|
+
tests/test_service.py,sha256=6IP6CAH2xHxGHZM4-R8LjZxVJ2L10LcGaPDyRIqKLmc,2438
|
183
|
+
ltbams-1.0.7.dist-info/METADATA,sha256=Wd2Mlqkkwsqm2zA1DNsDL-RS55TJe8Ptod_oAWB55O8,14023
|
184
|
+
ltbams-1.0.7.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
185
|
+
ltbams-1.0.7.dist-info/entry_points.txt,sha256=FA56FlhO_yVNeEf810SrorVQb7_Xsmo3_EW-W-ijUfA,37
|
186
|
+
ltbams-1.0.7.dist-info/top_level.txt,sha256=pyKDqG2kj13F9-BYd_wkruRdBSqLXw8Nwc-cmljqrxg,15
|
187
|
+
ltbams-1.0.7.dist-info/RECORD,,
|
tests/test_1st_system.py
CHANGED
@@ -31,3 +31,34 @@ class TestCodegen(unittest.TestCase):
|
|
31
31
|
docum._service_doc(max_width=78, export=export)
|
32
32
|
docum._param_doc(max_width=78, export=export)
|
33
33
|
docum.config.doc(max_width=78, export=export)
|
34
|
+
|
35
|
+
|
36
|
+
class TestParamCorrection(unittest.TestCase):
|
37
|
+
"""
|
38
|
+
Test parameter correction.
|
39
|
+
"""
|
40
|
+
|
41
|
+
def setUp(self) -> None:
|
42
|
+
"""
|
43
|
+
Test setup.
|
44
|
+
"""
|
45
|
+
self.ss = ams.load(ams.get_case('matpower/case14.m'),
|
46
|
+
setup=False, no_output=True, default_config=True,)
|
47
|
+
|
48
|
+
def test_line_correction(self):
|
49
|
+
"""
|
50
|
+
Test line correction.
|
51
|
+
"""
|
52
|
+
self.ss.Line.rate_a.v[5] = 0.0
|
53
|
+
self.ss.Line.rate_b.v[6] = 0.0
|
54
|
+
self.ss.Line.rate_c.v[7] = 0.0
|
55
|
+
self.ss.Line.amax.v[8] = 0.0
|
56
|
+
self.ss.Line.amin.v[9] = 0.0
|
57
|
+
|
58
|
+
self.ss.setup()
|
59
|
+
|
60
|
+
self.assertIsNot(self.ss.Line.rate_a.v[5], 0.0)
|
61
|
+
self.assertIsNot(self.ss.Line.rate_b.v[6], 0.0)
|
62
|
+
self.assertIsNot(self.ss.Line.rate_c.v[7], 0.0)
|
63
|
+
self.assertIsNot(self.ss.Line.amax.v[8], 0.0)
|
64
|
+
self.assertIsNot(self.ss.Line.amin.v[9], 0.0)
|
tests/test_andes_mats.py
CHANGED
@@ -19,7 +19,7 @@ class TestMatrices(unittest.TestCase):
|
|
19
19
|
if parse_version(andes_version) < parse_version('1.9.2'):
|
20
20
|
raise unittest.SkipTest("Requires ANDES version >= 1.9.2")
|
21
21
|
|
22
|
-
sp = ams.load(ams.get_case('
|
22
|
+
sp = ams.load(ams.get_case('matpower/case14.m'),
|
23
23
|
setup=True, no_output=True, default_config=True,)
|
24
24
|
sa = sp.to_andes(setup=True, no_output=True, default_config=True,)
|
25
25
|
|
tests/test_case.py
CHANGED
@@ -14,7 +14,7 @@ class Test5Bus(unittest.TestCase):
|
|
14
14
|
|
15
15
|
def setUp(self) -> None:
|
16
16
|
self.ss = ams.main.load(
|
17
|
-
get_case("5bus/
|
17
|
+
get_case("5bus/pjm5bus_demo.xlsx"),
|
18
18
|
default_config=True,
|
19
19
|
no_output=True,
|
20
20
|
)
|
@@ -28,25 +28,33 @@ class Test5Bus(unittest.TestCase):
|
|
28
28
|
self.assertTrue("Bus" in self.ss.models)
|
29
29
|
self.assertTrue("PQ" in self.ss.models)
|
30
30
|
|
31
|
+
nBus = 5
|
32
|
+
nGen = 5
|
33
|
+
nPQ = 3
|
34
|
+
nArea = 3
|
35
|
+
nZone = 5
|
36
|
+
nDT = 24
|
31
37
|
# --- test device counts
|
32
|
-
self.assertEqual(self.ss.Bus.n,
|
33
|
-
self.assertEqual(self.ss.PQ.n,
|
34
|
-
self.assertEqual(self.ss.PV.n,
|
38
|
+
self.assertEqual(self.ss.Bus.n, nBus)
|
39
|
+
self.assertEqual(self.ss.PQ.n, nPQ)
|
40
|
+
self.assertEqual(self.ss.PV.n, 4)
|
35
41
|
self.assertEqual(self.ss.Slack.n, 1)
|
36
42
|
self.assertEqual(self.ss.Line.n, 7)
|
37
|
-
self.assertEqual(self.ss.Zone.n,
|
38
|
-
self.assertEqual(self.ss.
|
39
|
-
self.assertEqual(self.ss.
|
40
|
-
self.assertEqual(self.ss.
|
41
|
-
self.assertEqual(self.ss.
|
42
|
-
self.assertEqual(self.ss.
|
43
|
-
self.assertEqual(self.ss.
|
44
|
-
self.assertEqual(self.ss.
|
45
|
-
self.assertEqual(self.ss.
|
46
|
-
self.assertEqual(self.ss.
|
43
|
+
self.assertEqual(self.ss.Zone.n, nZone)
|
44
|
+
self.assertEqual(self.ss.Area.n, nArea)
|
45
|
+
self.assertEqual(self.ss.SFR.n, nArea)
|
46
|
+
self.assertEqual(self.ss.SR.n, nArea)
|
47
|
+
self.assertEqual(self.ss.NSR.n, nArea)
|
48
|
+
self.assertEqual(self.ss.GCost.n, nGen)
|
49
|
+
self.assertEqual(self.ss.DCost.n, nPQ)
|
50
|
+
self.assertEqual(self.ss.SFRCost.n, nGen)
|
51
|
+
self.assertEqual(self.ss.SRCost.n, nGen)
|
52
|
+
self.assertEqual(self.ss.NSRCost.n, nGen)
|
53
|
+
self.assertEqual(self.ss.EDTSlot.n, nDT)
|
54
|
+
self.assertEqual(self.ss.UCTSlot.n, nDT)
|
47
55
|
|
48
56
|
# test idx values
|
49
|
-
self.assertSequenceEqual(self.ss.Bus.idx.v, [
|
57
|
+
self.assertSequenceEqual(self.ss.Bus.idx.v, [0, 1, 2, 3, 4])
|
50
58
|
self.assertSequenceEqual(self.ss.Area.idx.v, [1, 2, 3])
|
51
59
|
|
52
60
|
# test cache refreshing
|
@@ -87,9 +95,9 @@ class Test5Bus(unittest.TestCase):
|
|
87
95
|
"""
|
88
96
|
|
89
97
|
self.ss.GCost.alter("c1", ['GCost_1', 'GCost_2'], [1500., 3100.])
|
90
|
-
np.testing.assert_array_equal(self.ss.GCost.c1.v, [1500., 3100., 0.4, 0.1])
|
98
|
+
np.testing.assert_array_equal(self.ss.GCost.c1.v, [1500., 3100., 0.4, 0.1, 0.01])
|
91
99
|
self.ss.ACOPF.run()
|
92
|
-
np.testing.assert_array_equal(self.ss.GCost.c1.v, [1500., 3100., 0.4, 0.1])
|
100
|
+
np.testing.assert_array_equal(self.ss.GCost.c1.v, [1500., 3100., 0.4, 0.1, 0.01])
|
93
101
|
|
94
102
|
def test_alter_param_after_routine(self):
|
95
103
|
"""
|
@@ -98,9 +106,9 @@ class Test5Bus(unittest.TestCase):
|
|
98
106
|
|
99
107
|
self.ss.ACOPF.run()
|
100
108
|
self.ss.GCost.alter("c1", ['GCost_1', 'GCost_2'], [1500., 3100.])
|
101
|
-
np.testing.assert_array_equal(self.ss.GCost.c1.v, [1500., 3100., 0.4, 0.1])
|
109
|
+
np.testing.assert_array_equal(self.ss.GCost.c1.v, [1500., 3100., 0.4, 0.1, 0.01])
|
102
110
|
self.ss.ACOPF.run()
|
103
|
-
np.testing.assert_array_equal(self.ss.GCost.c1.v, [1500., 3100., 0.4, 0.1])
|
111
|
+
np.testing.assert_array_equal(self.ss.GCost.c1.v, [1500., 3100., 0.4, 0.1, 0.01])
|
104
112
|
|
105
113
|
def test_multiple_disconnected_line(self):
|
106
114
|
"""
|
tests/test_rtn_ed.py
CHANGED
@@ -193,7 +193,7 @@ class TestEDES(unittest.TestCase):
|
|
193
193
|
"""
|
194
194
|
|
195
195
|
def setUp(self) -> None:
|
196
|
-
self.ss = ams.load(ams.get_case("5bus/
|
196
|
+
self.ss = ams.load(ams.get_case("5bus/pjm5bus_demo.xlsx"),
|
197
197
|
setup=True, default_config=True, no_output=True)
|
198
198
|
# decrease load first
|
199
199
|
self.ss.PQ.set(src='p0', attr='v', idx=['PQ_1', 'PQ_2'], value=[0.3, 0.3])
|
@@ -245,14 +245,14 @@ class TestEDES(unittest.TestCase):
|
|
245
245
|
"""
|
246
246
|
Test line tripping.
|
247
247
|
"""
|
248
|
-
self.ss.Line.set(src='u', attr='v', idx=
|
248
|
+
self.ss.Line.set(src='u', attr='v', idx='Line_3', value=0)
|
249
249
|
self.ss.EDES.run()
|
250
250
|
self.assertTrue(self.ss.EDES.converged, "EDES did not converge!")
|
251
|
-
plf_l3 = self.ss.EDES.get(src='plf', attr='v', idx=
|
251
|
+
plf_l3 = self.ss.EDES.get(src='plf', attr='v', idx='Line_3')
|
252
252
|
np.testing.assert_almost_equal(np.zeros_like(plf_l3),
|
253
253
|
plf_l3, decimal=6)
|
254
254
|
|
255
|
-
self.ss.Line.alter(src='u', idx=
|
255
|
+
self.ss.Line.alter(src='u', idx='Line_3', value=1)
|
256
256
|
|
257
257
|
@skip_unittest_without_MISOCP
|
258
258
|
def test_set_load(self):
|
tests/test_rtn_rted.py
CHANGED
@@ -203,7 +203,7 @@ class TestRTEDES(unittest.TestCase):
|
|
203
203
|
"""
|
204
204
|
|
205
205
|
def setUp(self) -> None:
|
206
|
-
self.ss = ams.load(ams.get_case("5bus/
|
206
|
+
self.ss = ams.load(ams.get_case("5bus/pjm5bus_demo.xlsx"),
|
207
207
|
setup=True, default_config=True, no_output=True)
|
208
208
|
# decrease load first
|
209
209
|
self.ss.PQ.set(src='p0', attr='v', idx=['PQ_1', 'PQ_2'], value=[0.3, 0.3])
|
@@ -237,16 +237,16 @@ class TestRTEDES(unittest.TestCase):
|
|
237
237
|
"""
|
238
238
|
Test line tripping.
|
239
239
|
"""
|
240
|
-
self.ss.Line.set(src='u', attr='v', idx=
|
240
|
+
self.ss.Line.set(src='u', attr='v', idx='Line_3', value=0)
|
241
241
|
|
242
242
|
self.ss.RTEDES.update()
|
243
243
|
self.ss.RTEDES.run()
|
244
244
|
self.assertTrue(self.ss.RTEDES.converged, "RTEDES did not converge under line trip!")
|
245
|
-
self.assertAlmostEqual(self.ss.RTEDES.get(src='plf', attr='v', idx=
|
245
|
+
self.assertAlmostEqual(self.ss.RTEDES.get(src='plf', attr='v', idx='Line_3'),
|
246
246
|
0, places=6,
|
247
247
|
msg="Line trip does not take effect!")
|
248
248
|
|
249
|
-
self.ss.Line.alter(src='u', idx=
|
249
|
+
self.ss.Line.alter(src='u', idx='Line_3', value=1)
|
250
250
|
|
251
251
|
@skip_unittest_without_MISOCP
|
252
252
|
def test_set_load(self):
|
tests/test_rtn_uc.py
CHANGED
@@ -173,7 +173,7 @@ class TestUCES(unittest.TestCase):
|
|
173
173
|
"""
|
174
174
|
|
175
175
|
def setUp(self) -> None:
|
176
|
-
self.ss = ams.load(ams.get_case("5bus/
|
176
|
+
self.ss = ams.load(ams.get_case("5bus/pjm5bus_demo.xlsx"),
|
177
177
|
setup=True, default_config=True, no_output=True)
|
178
178
|
# decrease load first
|
179
179
|
self.ss.PQ.set(src='p0', attr='v', idx=['PQ_1', 'PQ_2'], value=[0.3, 0.3])
|
@@ -236,13 +236,13 @@ class TestUCES(unittest.TestCase):
|
|
236
236
|
"""
|
237
237
|
Test line tripping.
|
238
238
|
"""
|
239
|
-
self.ss.Line.set(src='u', attr='v', idx=
|
239
|
+
self.ss.Line.set(src='u', attr='v', idx='Line_3', value=0)
|
240
240
|
self.ss.UCES.update()
|
241
241
|
|
242
242
|
self.ss.UCES.run()
|
243
243
|
self.assertTrue(self.ss.UCES.converged, "UCES did not converge under line trip!")
|
244
|
-
plf_l3 = self.ss.UCES.get(src='plf', attr='v', idx=
|
244
|
+
plf_l3 = self.ss.UCES.get(src='plf', attr='v', idx='Line_3')
|
245
245
|
np.testing.assert_almost_equal(np.zeros_like(plf_l3),
|
246
246
|
plf_l3, decimal=6)
|
247
247
|
|
248
|
-
self.ss.Line.alter(src='u', idx=
|
248
|
+
self.ss.Line.alter(src='u', idx='Line_3', value=1)
|
tests/test_service.py
CHANGED
@@ -63,9 +63,9 @@ class TestService(unittest.TestCase):
|
|
63
63
|
"""
|
64
64
|
Test `ZonalSum`.
|
65
65
|
"""
|
66
|
-
ds = ZonalSum(u=self.ss.RTED.zd, zone="
|
66
|
+
ds = ZonalSum(u=self.ss.RTED.zd, zone="Area",
|
67
67
|
name="ds", tex_name=r"S_{d}",
|
68
|
-
info="Sum pl vector in shape of
|
68
|
+
info="Sum pl vector in shape of area",)
|
69
69
|
ds.rtn = self.ss.RTED
|
70
70
|
# check if the shape is correct
|
71
71
|
np.testing.assert_array_equal(ds.v.shape, (self.nR, self.nD))
|