ltbams 1.0.9__tar.gz → 1.0.10__tar.gz
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.
- {ltbams-1.0.9/ltbams.egg-info → ltbams-1.0.10}/PKG-INFO +87 -47
- {ltbams-1.0.9 → ltbams-1.0.10}/README.md +64 -46
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/__init__.py +0 -1
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/_version.py +3 -3
- ltbams-1.0.10/ams/cases/5bus/pjm5bus_demo.json +1324 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/core/__init__.py +1 -0
- ltbams-1.0.10/ams/core/common.py +30 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/core/model.py +1 -1
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/core/symprocessor.py +1 -1
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/extension/eva.py +1 -1
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/interface.py +40 -24
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/io/matpower.py +31 -17
- ltbams-1.0.10/ams/io/psse.py +283 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/main.py +2 -2
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/models/group.py +2 -1
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/models/static/pq.py +7 -3
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/opt/param.py +1 -2
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/routines/__init__.py +2 -3
- ltbams-1.0.10/ams/routines/acopf.py +14 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/routines/dcopf.py +8 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/routines/dcpf.py +1 -1
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/routines/ed.py +4 -2
- ltbams-1.0.10/ams/routines/grbopt.py +150 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/routines/pflow.py +2 -2
- ltbams-1.0.10/ams/routines/pypower.py +631 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/routines/routine.py +4 -10
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/routines/uc.py +2 -2
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/shared.py +26 -43
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/system.py +118 -2
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/api.rst +2 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/getting_started/install.rst +9 -6
- ltbams-1.0.10/docs/source/images/dcopf_time.png +0 -0
- ltbams-1.0.10/docs/source/images/educ_pie.png +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/release-notes.rst +21 -47
- {ltbams-1.0.9 → ltbams-1.0.10/ltbams.egg-info}/PKG-INFO +87 -47
- {ltbams-1.0.9 → ltbams-1.0.10}/ltbams.egg-info/SOURCES.txt +8 -25
- ltbams-1.0.10/ltbams.egg-info/requires.txt +36 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/pyproject.toml +15 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/requirements-dev.txt +2 -1
- {ltbams-1.0.9 → ltbams-1.0.10}/requirements.txt +1 -1
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_1st_system.py +1 -1
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_case.py +14 -14
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_export_csv.py +1 -1
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_interface.py +24 -2
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_io.py +50 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_omodel.py +1 -1
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_report.py +6 -6
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_routine.py +2 -2
- ltbams-1.0.10/tests/test_rtn_acopf.py +75 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_rtn_dcopf.py +1 -1
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_rtn_dcopf2.py +1 -1
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_rtn_ed.py +9 -9
- ltbams-1.0.10/tests/test_rtn_opf.py +142 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_rtn_pflow.py +0 -72
- ltbams-1.0.10/tests/test_rtn_pypower.py +315 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_rtn_rted.py +8 -8
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_rtn_uc.py +18 -18
- ltbams-1.0.9/ams/io/psse.py +0 -6
- ltbams-1.0.9/ams/pypower/__init__.py +0 -8
- ltbams-1.0.9/ams/pypower/_compat.py +0 -9
- ltbams-1.0.9/ams/pypower/core/__init__.py +0 -8
- ltbams-1.0.9/ams/pypower/core/pips.py +0 -894
- ltbams-1.0.9/ams/pypower/core/ppoption.py +0 -244
- ltbams-1.0.9/ams/pypower/core/ppver.py +0 -18
- ltbams-1.0.9/ams/pypower/core/solver.py +0 -2451
- ltbams-1.0.9/ams/pypower/eps.py +0 -6
- ltbams-1.0.9/ams/pypower/idx.py +0 -174
- ltbams-1.0.9/ams/pypower/io.py +0 -604
- ltbams-1.0.9/ams/pypower/make/__init__.py +0 -11
- ltbams-1.0.9/ams/pypower/make/matrices.py +0 -665
- ltbams-1.0.9/ams/pypower/make/pdv.py +0 -506
- ltbams-1.0.9/ams/pypower/routines/__init__.py +0 -7
- ltbams-1.0.9/ams/pypower/routines/cpf.py +0 -513
- ltbams-1.0.9/ams/pypower/routines/cpf_callbacks.py +0 -114
- ltbams-1.0.9/ams/pypower/routines/opf.py +0 -1803
- ltbams-1.0.9/ams/pypower/routines/opffcns.py +0 -1946
- ltbams-1.0.9/ams/pypower/routines/pflow.py +0 -852
- ltbams-1.0.9/ams/pypower/toggle.py +0 -1098
- ltbams-1.0.9/ams/pypower/utils.py +0 -293
- ltbams-1.0.9/ams/routines/acopf.py +0 -117
- ltbams-1.0.9/ams/routines/cpf.py +0 -65
- ltbams-1.0.9/ams/routines/dcpf0.py +0 -196
- ltbams-1.0.9/ams/routines/pflow0.py +0 -113
- ltbams-1.0.9/docs/source/images/dcopf_time.png +0 -0
- ltbams-1.0.9/ltbams.egg-info/requires.txt +0 -11
- ltbams-1.0.9/tests/test_rtn_dcpf.py +0 -77
- {ltbams-1.0.9 → ltbams-1.0.10}/CONTRIBUTING.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/LICENSE +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/MANIFEST.in +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/__main__.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/5bus/pjm5bus_demo.xlsx +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/5bus/pjm5bus_ev.xlsx +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/5bus/pjm5bus_jumper.xlsx +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/hawaii40/Hawaii40.m +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/ieee123/ieee123.xlsx +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/ieee123/ieee123_regcv1.xlsx +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/ieee14/ieee14.json +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/ieee14/ieee14.raw +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/ieee14/ieee14_conn.xlsx +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/ieee14/ieee14_uced.xlsx +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/ieee39/ieee39.xlsx +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/ieee39/ieee39_uced.xlsx +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/ieee39/ieee39_uced_esd1.xlsx +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/ieee39/ieee39_uced_pvd1.xlsx +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/ieee39/ieee39_uced_vis.xlsx +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/matpower/benchmark.json +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/matpower/case118.m +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/matpower/case14.m +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/matpower/case300.m +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/matpower/case39.m +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/matpower/case5.m +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/matpower/case_ACTIVSg2000.m +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/npcc/npcc.m +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/npcc/npcc_uced.xlsx +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/pglib/pglib_opf_case39_epri__api.m +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/wecc/wecc.m +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cases/wecc/wecc_uced.xlsx +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/cli.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/core/documenter.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/core/matprocessor.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/core/param.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/core/service.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/core/var.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/extension/__init__.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/io/__init__.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/io/json.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/io/pypower.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/io/xlsx.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/models/__init__.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/models/area.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/models/bus.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/models/cost.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/models/distributed/__init__.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/models/distributed/esd1.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/models/distributed/ev.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/models/distributed/pvd1.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/models/info.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/models/line.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/models/renewable/__init__.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/models/renewable/regc.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/models/reserve.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/models/shunt.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/models/static/__init__.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/models/static/gen.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/models/timeslot.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/models/zone.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/opt/__init__.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/opt/constraint.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/opt/exprcalc.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/opt/expression.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/opt/objective.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/opt/omodel.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/opt/optzbase.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/opt/var.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/report.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/routines/dcopf2.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/routines/dopf.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/routines/rted.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/routines/type.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/utils/__init__.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/utils/misc.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ams/utils/paths.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/Makefile +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/make.bat +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/_templates/autosummary/base.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/_templates/autosummary/class.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/_templates/autosummary/module.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/_templates/autosummary/module_toctree.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/conf.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/examples/index.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/genmodelref.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/genroutineref.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/getting_started/copyright.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/getting_started/formats/index.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/getting_started/formats/matpower.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/getting_started/formats/psse.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/getting_started/formats/pypower.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/getting_started/formats/xlsx.png +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/getting_started/formats/xlsx.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/getting_started/index.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/getting_started/overview.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/getting_started/testcase.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/getting_started/verification.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/images/curent.ico +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/images/sponsors/CURENT_Logo_NameOnTrans.png +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/images/sponsors/CURENT_Logo_Transparent.png +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/images/sponsors/CURENT_Logo_Transparent_Name.png +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/images/sponsors/doe.png +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/index.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/modeling/example.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/modeling/index.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/modeling/model.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/modeling/routine.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/docs/source/modeling/system.rst +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ltbams.egg-info/dependency_links.txt +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ltbams.egg-info/entry_points.txt +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/ltbams.egg-info/top_level.txt +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/setup.cfg +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/setup.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/__init__.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_addressing.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_cli.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_group.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_jumper.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_known_good.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_matp.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_model.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_paths.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_repr.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/tests/test_service.py +0 -0
- {ltbams-1.0.9 → ltbams-1.0.10}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ltbams
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.10
|
4
4
|
Summary: Python software for scheduling modeling and co-simulation with dynamics.
|
5
5
|
Home-page: https://github.com/CURENT/ams
|
6
6
|
Author: Jinning Wang
|
@@ -23,6 +23,28 @@ Requires-Dist: openpyxl
|
|
23
23
|
Requires-Dist: andes>=1.9.3
|
24
24
|
Requires-Dist: pybind11
|
25
25
|
Requires-Dist: cvxpy
|
26
|
+
Provides-Extra: dev
|
27
|
+
Requires-Dist: pytest; extra == "dev"
|
28
|
+
Requires-Dist: pytest-cov; extra == "dev"
|
29
|
+
Requires-Dist: coverage; extra == "dev"
|
30
|
+
Requires-Dist: flake8; extra == "dev"
|
31
|
+
Requires-Dist: numpydoc; extra == "dev"
|
32
|
+
Requires-Dist: toml; extra == "dev"
|
33
|
+
Provides-Extra: nlp
|
34
|
+
Requires-Dist: PYPOWER; extra == "nlp"
|
35
|
+
Requires-Dist: pyoptinterface; extra == "nlp"
|
36
|
+
Requires-Dist: gurobipy; extra == "nlp"
|
37
|
+
Requires-Dist: gurobi-optimods; extra == "nlp"
|
38
|
+
Provides-Extra: doc
|
39
|
+
Requires-Dist: pandoc; extra == "doc"
|
40
|
+
Requires-Dist: ipython; extra == "doc"
|
41
|
+
Requires-Dist: sphinx; extra == "doc"
|
42
|
+
Requires-Dist: pydata-sphinx-theme; extra == "doc"
|
43
|
+
Requires-Dist: numpydoc; extra == "doc"
|
44
|
+
Requires-Dist: sphinx-copybutton; extra == "doc"
|
45
|
+
Requires-Dist: sphinx-panels; extra == "doc"
|
46
|
+
Requires-Dist: myst-parser; extra == "doc"
|
47
|
+
Requires-Dist: nbsphinx; extra == "doc"
|
26
48
|
Dynamic: author
|
27
49
|
Dynamic: home-page
|
28
50
|
|
@@ -30,40 +52,29 @@ Dynamic: home-page
|
|
30
52
|
|
31
53
|
Python Software for Power System Scheduling Modeling and Co-Simulation with Dynamics, serving as the market simulator for the [CURENT Largescale Testbed][LTB Repository].
|
32
54
|
|
33
|
-
|
34
|
-

|
35
|
-
[](https://www.python.org/)
|
55
|
+

|
36
56
|
[](https://ieeexplore.ieee.org/document/10836855)
|
37
|
-
[](https://www.repostatus.org/#active)
|
38
|
-
[](https://codecov.io/gh/CURENT/ams)
|
39
|
-
|
40
|
-
[](https://github.com/CURENT/ams/tags)
|
41
|
-

|
42
|
-
[](https://github.com/CURENT/ams/commits/master/)
|
43
|
-
[](https://github.com/CURENT/ams/commits/develop/)
|
44
|
-
|
45
|
-
[](https://libraries.io/pypi/ltbams)
|
46
|
-

|
47
|
-
[](https://mango-dune-07a8b7110.1.azurestaticapps.net/?repo=CURENT%2Fams)
|
48
|
-
|
49
|
-
[](https://github.com/CURENT/ams/actions/workflows/compatibility.yml)
|
50
|
-
[](https://github.com/CURENT/ams/actions/workflows/publish-pypi.yml)
|
51
|
-
[](https://dev.azure.com/curentltb/ams/_build/latest?definitionId=2&branchName=master)
|
52
57
|
|
53
58
|
<img src="docs/source/images/sponsors/CURENT_Logo_NameOnTrans.png" alt="CURENT ERC Logo" width="300" height="auto">
|
54
59
|
|
55
|
-
|
|
56
|
-
|
57
|
-
| Documentation | [](https://ams.readthedocs.io/en/stable/?badge=stable) | [](https://ams.readthedocs.io/en/develop/?badge=develop) |
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
66
|
-
|
60
|
+
| | Stable | Develop |
|
61
|
+
|---|---|---|
|
62
|
+
| Documentation | [](https://ams.readthedocs.io/en/stable/?badge=stable) | [](https://ams.readthedocs.io/en/develop/?badge=develop) |
|
63
|
+
|
64
|
+
| Badges | | |
|
65
|
+
|---|---|---|
|
66
|
+
| Repo |  |  |
|
67
|
+
| Version |  |  |
|
68
|
+
| Tag | [](https://github.com/CURENT/ams/tags) |  |
|
69
|
+
| Download |  |  |
|
70
|
+
| Code Quality |  |  |
|
71
|
+
| Code Cov |  | |
|
72
|
+
| Last Commit |  |  |
|
73
|
+
| CI |  |  |
|
74
|
+
| CD |  | |
|
75
|
+
| Structure | [](https://mango-dune-07a8b7110.1.azurestaticapps.net/?repo=CURENT%2Fams) | [](https://deepwiki.com/CURENT/ams) |
|
76
|
+
| Dependency | [](https://libraries.io/pypi/ltbams) | |
|
77
|
+
| Try on Binder | [](https://mybinder.org/v2/gh/curent/ams/master) | |
|
67
78
|
|
68
79
|
# Why AMS
|
69
80
|
|
@@ -82,25 +93,27 @@ and solved with third-party solvers.
|
|
82
93
|
|
83
94
|
AMS produces credible scheduling results and competitive performance.
|
84
95
|
The following results show the comparison of DCOPF between AMS and other tools.
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
|
89
|
-
|
90
|
-
|
|
91
|
-
| IEEE
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
96
|
+
In the table, **AMS Gap** is the difference between the AMS and MATPOWER results,
|
97
|
+
and **pandapower Gap** is the difference between the pandapower and MATPOWER results.
|
98
|
+
|
99
|
+
| Case | MATPOWER [\$] | AMS Gap [\$] | pandapower Gap [\$] |
|
100
|
+
|------------------|--------------|--------------|---------------------|
|
101
|
+
| IEEE 14-Bus | 7,642.59 | 0.00 | 0.00 |
|
102
|
+
| IEEE 39-Bus | 41,263.94 | 0.00 | 0.00 |
|
103
|
+
| PEGASE 89-Bus | 5,733.37 | 0.00 | 0.00 |
|
104
|
+
| IEEE 118-Bus | 125,947.88 | 0.00 | 0.00 |
|
105
|
+
| NPCC 140-Bus | 810,033.37 | 0.00 | **-17.31** |
|
106
|
+
| WECC 179-Bus | 411,706.13 | 0.00 | 0.00 |
|
107
|
+
| IEEE 300-Bus | 706,292.32 | 0.00 | 0.00 |
|
108
|
+
| PEGASE 1354-Bus | 1,218,096.86 | 0.00 | 0.00 |
|
109
|
+
| PEGASE 2869-Bus | 2,386,235.33 | 0.00 | 0.00 |
|
110
|
+
| GOC 4020-Bus | 793,634.11 | 0.00 | 0.00 |
|
111
|
+
| EPIGRIDS 5658-Bus| 1,195,466.12 | 0.00 | 0.00 |
|
112
|
+
| EPIGRIDS 7336-Bus| 1,855,870.94 | 0.00 | 0.00 |
|
100
113
|
|
101
114
|
<div style="text-align: left;">
|
102
115
|
<img src="docs/source/images/dcopf_time.png" alt="DCOPF Time" width="480" height="auto">
|
103
|
-
<p><strong>Figure:</strong> Computation time of OPF on
|
116
|
+
<p><strong>Figure:</strong> Computation time of OPF on medium to large cases.</p>
|
104
117
|
</div>
|
105
118
|
|
106
119
|
In the bar chart, the gray bar labeled "AMS Symbolic Processing" represents the time spent
|
@@ -113,6 +126,19 @@ Regarding the baselines, the blue and green bars represent the running time of M
|
|
113
126
|
solver MIPS and pandapower using solver PIPS, respectively.
|
114
127
|
The results for AMS, pandapower, and matpower are the average time consumed over ten repeat tests.
|
115
128
|
|
129
|
+
<div style="text-align: left;">
|
130
|
+
<img src="docs/source/images/educ_pie.png" alt="DCOPF Time" width="480" height="auto">
|
131
|
+
<p><strong>Figure:</strong> Computation time distribution for multi-period economic dispatch and
|
132
|
+
unit commitment using a 31,777-bus case.</p>
|
133
|
+
</div>
|
134
|
+
|
135
|
+
To further demonstrate AMS's scalability, we validated multi-period economic dispatch and unit commitment
|
136
|
+
on an ultra-large power system case with 31,777 buses, 4,664 generators, 41,573 transmission lines,
|
137
|
+
and 5 time intervals.
|
138
|
+
The computation time distribution for this case is shown in the figure below. Notably, the time spent
|
139
|
+
on symbolic processing remains negligible even at this scale, highlighting AMS's efficiency for
|
140
|
+
large-scale studies.
|
141
|
+
|
116
142
|
AMS is currently under active development.
|
117
143
|
Use the following resources to get involved.
|
118
144
|
|
@@ -136,6 +162,20 @@ Install from PyPI using pip:
|
|
136
162
|
pip install ltbams
|
137
163
|
```
|
138
164
|
|
165
|
+
You can also install with optional dependencies, such as ``dev``, ``docs``, and ``nlp``:
|
166
|
+
|
167
|
+
```bash
|
168
|
+
pip install ltbams[dev]
|
169
|
+
pip install ltbams[docs]
|
170
|
+
pip install ltbams[nlp]
|
171
|
+
```
|
172
|
+
|
173
|
+
Or install with all optional dependencies:
|
174
|
+
|
175
|
+
```bash
|
176
|
+
pip install ltbams[all]
|
177
|
+
```
|
178
|
+
|
139
179
|
Install from conda-forge using conda:
|
140
180
|
|
141
181
|
```bash
|
@@ -2,40 +2,29 @@
|
|
2
2
|
|
3
3
|
Python Software for Power System Scheduling Modeling and Co-Simulation with Dynamics, serving as the market simulator for the [CURENT Largescale Testbed][LTB Repository].
|
4
4
|
|
5
|
-
|
6
|
-

|
7
|
-
[](https://www.python.org/)
|
5
|
+

|
8
6
|
[](https://ieeexplore.ieee.org/document/10836855)
|
9
|
-
[](https://www.repostatus.org/#active)
|
10
|
-
[](https://codecov.io/gh/CURENT/ams)
|
11
|
-
|
12
|
-
[](https://github.com/CURENT/ams/tags)
|
13
|
-

|
14
|
-
[](https://github.com/CURENT/ams/commits/master/)
|
15
|
-
[](https://github.com/CURENT/ams/commits/develop/)
|
16
|
-
|
17
|
-
[](https://libraries.io/pypi/ltbams)
|
18
|
-

|
19
|
-
[](https://mango-dune-07a8b7110.1.azurestaticapps.net/?repo=CURENT%2Fams)
|
20
|
-
|
21
|
-
[](https://github.com/CURENT/ams/actions/workflows/compatibility.yml)
|
22
|
-
[](https://github.com/CURENT/ams/actions/workflows/publish-pypi.yml)
|
23
|
-
[](https://dev.azure.com/curentltb/ams/_build/latest?definitionId=2&branchName=master)
|
24
7
|
|
25
8
|
<img src="docs/source/images/sponsors/CURENT_Logo_NameOnTrans.png" alt="CURENT ERC Logo" width="300" height="auto">
|
26
9
|
|
27
|
-
|
|
28
|
-
|
29
|
-
| Documentation | [](https://ams.readthedocs.io/en/stable/?badge=stable) | [](https://ams.readthedocs.io/en/develop/?badge=develop) |
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
38
|
-
|
10
|
+
| | Stable | Develop |
|
11
|
+
|---|---|---|
|
12
|
+
| Documentation | [](https://ams.readthedocs.io/en/stable/?badge=stable) | [](https://ams.readthedocs.io/en/develop/?badge=develop) |
|
13
|
+
|
14
|
+
| Badges | | |
|
15
|
+
|---|---|---|
|
16
|
+
| Repo |  |  |
|
17
|
+
| Version |  |  |
|
18
|
+
| Tag | [](https://github.com/CURENT/ams/tags) |  |
|
19
|
+
| Download |  |  |
|
20
|
+
| Code Quality |  |  |
|
21
|
+
| Code Cov |  | |
|
22
|
+
| Last Commit |  |  |
|
23
|
+
| CI |  |  |
|
24
|
+
| CD |  | |
|
25
|
+
| Structure | [](https://mango-dune-07a8b7110.1.azurestaticapps.net/?repo=CURENT%2Fams) | [](https://deepwiki.com/CURENT/ams) |
|
26
|
+
| Dependency | [](https://libraries.io/pypi/ltbams) | |
|
27
|
+
| Try on Binder | [](https://mybinder.org/v2/gh/curent/ams/master) | |
|
39
28
|
|
40
29
|
# Why AMS
|
41
30
|
|
@@ -54,25 +43,27 @@ and solved with third-party solvers.
|
|
54
43
|
|
55
44
|
AMS produces credible scheduling results and competitive performance.
|
56
45
|
The following results show the comparison of DCOPF between AMS and other tools.
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
|
61
|
-
|
62
|
-
|
|
63
|
-
| IEEE
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
46
|
+
In the table, **AMS Gap** is the difference between the AMS and MATPOWER results,
|
47
|
+
and **pandapower Gap** is the difference between the pandapower and MATPOWER results.
|
48
|
+
|
49
|
+
| Case | MATPOWER [\$] | AMS Gap [\$] | pandapower Gap [\$] |
|
50
|
+
|------------------|--------------|--------------|---------------------|
|
51
|
+
| IEEE 14-Bus | 7,642.59 | 0.00 | 0.00 |
|
52
|
+
| IEEE 39-Bus | 41,263.94 | 0.00 | 0.00 |
|
53
|
+
| PEGASE 89-Bus | 5,733.37 | 0.00 | 0.00 |
|
54
|
+
| IEEE 118-Bus | 125,947.88 | 0.00 | 0.00 |
|
55
|
+
| NPCC 140-Bus | 810,033.37 | 0.00 | **-17.31** |
|
56
|
+
| WECC 179-Bus | 411,706.13 | 0.00 | 0.00 |
|
57
|
+
| IEEE 300-Bus | 706,292.32 | 0.00 | 0.00 |
|
58
|
+
| PEGASE 1354-Bus | 1,218,096.86 | 0.00 | 0.00 |
|
59
|
+
| PEGASE 2869-Bus | 2,386,235.33 | 0.00 | 0.00 |
|
60
|
+
| GOC 4020-Bus | 793,634.11 | 0.00 | 0.00 |
|
61
|
+
| EPIGRIDS 5658-Bus| 1,195,466.12 | 0.00 | 0.00 |
|
62
|
+
| EPIGRIDS 7336-Bus| 1,855,870.94 | 0.00 | 0.00 |
|
72
63
|
|
73
64
|
<div style="text-align: left;">
|
74
65
|
<img src="docs/source/images/dcopf_time.png" alt="DCOPF Time" width="480" height="auto">
|
75
|
-
<p><strong>Figure:</strong> Computation time of OPF on
|
66
|
+
<p><strong>Figure:</strong> Computation time of OPF on medium to large cases.</p>
|
76
67
|
</div>
|
77
68
|
|
78
69
|
In the bar chart, the gray bar labeled "AMS Symbolic Processing" represents the time spent
|
@@ -85,6 +76,19 @@ Regarding the baselines, the blue and green bars represent the running time of M
|
|
85
76
|
solver MIPS and pandapower using solver PIPS, respectively.
|
86
77
|
The results for AMS, pandapower, and matpower are the average time consumed over ten repeat tests.
|
87
78
|
|
79
|
+
<div style="text-align: left;">
|
80
|
+
<img src="docs/source/images/educ_pie.png" alt="DCOPF Time" width="480" height="auto">
|
81
|
+
<p><strong>Figure:</strong> Computation time distribution for multi-period economic dispatch and
|
82
|
+
unit commitment using a 31,777-bus case.</p>
|
83
|
+
</div>
|
84
|
+
|
85
|
+
To further demonstrate AMS's scalability, we validated multi-period economic dispatch and unit commitment
|
86
|
+
on an ultra-large power system case with 31,777 buses, 4,664 generators, 41,573 transmission lines,
|
87
|
+
and 5 time intervals.
|
88
|
+
The computation time distribution for this case is shown in the figure below. Notably, the time spent
|
89
|
+
on symbolic processing remains negligible even at this scale, highlighting AMS's efficiency for
|
90
|
+
large-scale studies.
|
91
|
+
|
88
92
|
AMS is currently under active development.
|
89
93
|
Use the following resources to get involved.
|
90
94
|
|
@@ -108,6 +112,20 @@ Install from PyPI using pip:
|
|
108
112
|
pip install ltbams
|
109
113
|
```
|
110
114
|
|
115
|
+
You can also install with optional dependencies, such as ``dev``, ``docs``, and ``nlp``:
|
116
|
+
|
117
|
+
```bash
|
118
|
+
pip install ltbams[dev]
|
119
|
+
pip install ltbams[docs]
|
120
|
+
pip install ltbams[nlp]
|
121
|
+
```
|
122
|
+
|
123
|
+
Or install with all optional dependencies:
|
124
|
+
|
125
|
+
```bash
|
126
|
+
pip install ltbams[all]
|
127
|
+
```
|
128
|
+
|
111
129
|
Install from conda-forge using conda:
|
112
130
|
|
113
131
|
```bash
|
@@ -8,11 +8,11 @@ import json
|
|
8
8
|
|
9
9
|
version_json = '''
|
10
10
|
{
|
11
|
-
"date": "2025-
|
11
|
+
"date": "2025-05-23T00:18:06-0400",
|
12
12
|
"dirty": false,
|
13
13
|
"error": null,
|
14
|
-
"full-revisionid": "
|
15
|
-
"version": "1.0.
|
14
|
+
"full-revisionid": "f467fb0017c81d3946c1c566802adc4f411ad05e",
|
15
|
+
"version": "1.0.10"
|
16
16
|
}
|
17
17
|
''' # END VERSION_JSON
|
18
18
|
|