
Security News
CISA Extends MITRE Contract as Crisis Accelerates Alternative CVE Coordination Efforts
CISA extended MITRE’s CVE contract by 11 months, avoiding a shutdown but leaving long-term governance and coordination issues unresolved.
Python Software for Power System Scheduling Modeling and Co-Simulation with Dynamics, serving as the market simulator for the CURENT Largescale Testbed.
Stable | Latest | |
---|---|---|
Documentation |
Badges | ||
---|---|---|
Downloads | ||
Try on Binder | ||
Code Quality |
AMS facilitates Dynamics Incorporated Scheduling and Scheduling-Dynamics Co-Simulation through an integrated interface with ANDES.
This package is helpful for power system engineers, researchers, and students conducting scheduling and transient stability studies at specific operating points. It also benefits those interested in developing new scheduling formulations and algorithms, particularly by extending existing formulations to include new decision variables, constraints, and objective functions.
AMS is a Modeling Framework that provides a descriptive way to formulate scheduling problems. The optimization problems are then handled by CVXPY and solved with third-party solvers.
AMS produces credible scheduling results and competitive performance. The following results show the comparison of DCOPF between AMS and other tools.
Cost [$] | AMS | pandapower | MATPOWER |
---|---|---|---|
IEEE 14-Bus | 7,642.59 | 7,642.59 | 7,642.59 |
IEEE 39-Bus | 41,263.94 | 41,263.94 | 41,263.94 |
PEGASE 89-Bus | 5,733.37 | 5,733.37 | 5,733.37 |
IEEE 118-Bus | 125,947.88 | 125,947.88 | 125,947.88 |
NPCC 140-Bus | 810,033.37 | 810,016.06 | 810,033.37 |
WECC 179-Bus | 411,706.13 | 411,706.13 | 411,706.13 |
IEEE 300-Bus | 706,292.32 | 706,292.32 | 706,292.32 |
PEGASE 1354-Bus | 1,218,096.86 | 1,218,096.86 | 1,218,096.86 |
PEGASE 2869-Bus | 2,386,235.33 | 2,386,235.33 | 2,386,235.33 |
GOC 4020-Bus | 793,634.11 | 793,634.11 | 793,634.11 |
EPIGRIDS 5658-Bus | 1,195,466.12 | 1,195,466.12 | 1,195,466.12 |
EPIGRIDS 7336-Bus | 1,855,870.94 | 1,855,870.94 | 1,855,870.94 |
Figure: Computation time of OPF on small-scale cases.
In the bar chart, the gray bar labeled "AMS Symbolic Processing" represents the time spent on symbolic processing, while the wheat-colored bar "AMS Numeric Evaluation" represents the time spent on system matrices calculation and optimization model construction. The orange bar labeled "AMS GUROBI" represents the optimization-solving time using the GUROBI solver. Similarly, the red bar labeled "AMS MOSEK" and the pink bar labeled "AMS PIQP" represent the time used by the solvers MOSEK and PIQP, respectively. Regarding the baselines, the blue and green bars represent the running time of MATPOWER using solver MIPS and pandapower using solver PIPS, respectively. The results for AMS, pandapower, and matpower are the average time consumed over ten repeat tests.
AMS is currently under active development. Use the following resources to get involved.
AMS is released as ltbams
on PyPI and conda-forge.
Install from PyPI using pip:
pip install ltbams
Install from conda-forge using conda:
conda install conda-forge::ltbams
Install from GitHub source:
pip install git+https://github.com/CURENT/ams.git
NOTE:
cvxpy
is distributed with the open source solvers CLARABEL, OSQP, and SCS, but MIP-capable solvers need separate installationcvxpy
versions below 1.5 are incompatible with numpy
versions 2.0 and aboveSCIP
encounters an import error caused by a missing libscip.9.1.dylib
, try reinstalling its Python interface by running pip install pyscipopt --no-binary scip --force
kvxopt
is recommended to install via conda
as sometimes pip
struggles to set the correct path for compiled libraries, more detailes can be found in this closed issue Bug with dependency kvxopt 1.3.2.0import ams
import andes
ss = ams.load(ams.get_case('ieee14/ieee14_uced.xlsx'))
# solve RTED
ss.RTED.run(solver='CLARABEL')
ss.RTED.pg.v
>>> array([1.8743862, 0.3226138, 0.01 , 0.02 , 0.01 ])
# convert to ANDES case
sa = ss.to_andes(addfile=andes.get_case('ieee14/ieee14_full.xlsx'),
setup=True, verify=False)
sa
>>> <andes.system.System at 0x14bd98190>
If you use AMS for research or consulting, please cite the following paper in your publication that uses AMS:
J. Wang et al., "Dynamics-incorporated Modeling Framework for Stability Constrained Scheduling Under High-penetration of Renewable Energy," in IEEE Transactions on Sustainable Energy, doi: 10.1109/TSTE.2025.3528027.
AMS is the scheduling simulation engine for the CURENT Largescale Testbed (LTB). More information about CURENT LTB can be found at the LTB Repository.
This work was supported in part by the Engineering Research Center Program of the National Science Foundation and the Department of Energy under NSF Award Number EEC-1041877 and the CURENT Industry Partnership Program.
This work was supported in part by the Advanced Grid Research and Development Program in the Office of Electricity at the U.S. Department of Energy.
See GitHub contributors for the contributor list.
AMS is licensed under the GPL v3 License.
Some commercial solvers provide academic licenses, such as COPT, GUROBI, CPLEX, and MOSEK.
FAQs
Python software for scheduling modeling and co-simulation with dynamics.
We found that ltbams demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISA extended MITRE’s CVE contract by 11 months, avoiding a shutdown but leaving long-term governance and coordination issues unresolved.
Product
Socket's Rubygems ecosystem support is moving from beta to GA, featuring enhanced security scanning to detect supply chain threats beyond traditional CVEs in your Ruby dependencies.
Research
The Socket Research Team investigates a malicious npm package that appears to be an Advcash integration but triggers a reverse shell during payment success, targeting servers handling transactions.