Version Release History
The AMES Wholesale Power Market Test Bed
An Open-Source Computational Laboratory for the
Agent-Based Modeling of Electricity Systems
- Last Updated: 16 January 2023
- Site Maintained By:
- Research Professor & Professor Emerita of Economics
- Courtesy Research Professor
of Electrical & Computer Engineering
- Heady Hall 260
- Iowa State University
- Ames, Iowa 50011-1054
tesfatsi AT iastate.edu
AMES Market Package Versions Released to Date:
Note on Terminology: "AMES Wholesale Power Market Test Bed" refers to our general test bed framework and "AMES Market Package" refers to our particular software implementation of this framework.
AMES Market Package--Version 5.0 (Released: 8/7/2020)
was developed by Swathi Battula and Leigh Tesfatsion at Iowa State University, with support from Pacific Northwest National Laboratory researchers (Tom McDermott, Mitch Pelton, Qiuhua Huang, and Sarmad Hanif).
AMES V5.0 is an open source software platform capturing salient features of U.S. RTO/ISO-managed wholesale power markets operating over high-voltage transmission grids, with congestion handled by locational marginal pricing.
AMES V5.0 consolidates features from previous AMES versions and continues the main developments in these previous versions.
AMES V5.0 supports the submission of supply offers and demand bids (in both fixed and price-sensitive form) into daily DAM SCUC/SCED and RTM SCED optimizations formulated as Mixed Integer Linear Programming (MILP) problems with a comprehensive set of system constraints. It permits continual updating of initial state conditions to permit market operations to run over successive days. The package includes an 8-bus test case based on data, operations, and market timing for the Electric Reliability Council of Texas (ERCOT) energy region.
In addition, AMES V5.0 is integrated with a high-level simulation framework that permits it to function as a software component within larger systems, such as multiple seamed energy regions or integrated transmission and distribution systems.
ERCOT Test System (Released: 8/7/2020), implemented in part by AMES V5.0
ERCOT Test System
was developed by Swathi Battula and Leigh Tesfatsion at Iowa State University and Thomas E. McDermott at the Pacific Northwest National Laboratory.
In default mode, the ERCOT Test System models ISO-managed day-ahead and real-time market operations in the Electric Reliability Council of Texas (ERCOT) energy region. Modeled market participants include dispatchable generators, load-serving entities, and non-dispatchable generation such as unfirmed wind and solar power. Users can configure a broad variety of parameters to study basic ERCOT market and grid features under alternative system conditions.
Users can also easily extend the test system's Java/Python software classes to study modified or newly envisioned market and grid features. In addition, the test system is integrated with a high-level simulation framework that permits it to function as a software component within larger systems, such as multiple seamed energy regions or integrated transmission and distribution systems.
A detailed description of the ERCOT Test System, together with illustrative 8-bus and 200-bus ERCOT test cases, can be found in the following paper:
Swathi Battula, Leigh Tesfatsion, and Thomas E. McDermott, "An ERCOT Test System for Market Design Studies"
Applied Energy, Volume 275, October. DOI: 10.1016/j.apenergy.2020.115182
AMES Market Package--Version 4.0 (Released: 4/13/2017)
was developed by Dheepak Krishnamurthy, Sean L. Mooney, Auswin George Thomas, Wanning Li, and Leigh Tesfatsion at Iowa State University.
AMES V4.0 substantively modifies AMES V2.06 as follows:
- AMES V4.0 models a daily ISO-managed day-ahead market (DAM) formulated either as a deterministic SCUC optimization or as a two-stage stochastic SCUC optimization conditional on a set of user-specified net-load scenarios.
- These optimizations are based on Load Serving Entity (LSE) demand bids and Generation Company (GenCo) supply offers. DAM settlements are determined on the basis of locational marginal price (LMP) outcomes.
- AMES V4.0 includes an interface to a fast and efficient
Python-based solver (Pyomo/PSST) for implementing the daily DAM SCUC optimization in either deterministic or stochastic form.
- AMES V4.0 permits spinning reserve requirements to be included among the system constraints for each optimization. For the stochastic DAM SCUC optimization, this inclusion provides a hedge against net-load scenario specification errors.
Eight Zone ISO-NE Test System (Released: 11/30/2015), implemented in part by AMES V4.0
8-Zone ISO-NE Test System.
was developed by Dheepak Krishnamurthy, Wanning Li, and Leigh Tesfatsion at Iowa State University.
- The 8-Zone ISO-NE Test System is based on structural characteristics and data from the ISO New England energy region.
A detailed description of the test system, together with illustrative test cases comparing stochastic versus deterministic DAM SCUC implementations both with and without non-dispatchable wind generation, can be found
in the following two papers:
Dheepak Krishnamurthy, Wanning Li, and Leigh Tesfatsion, "An 8-Zone Test System based on ISO New England Data: Development and Application"
IEEE Transactions on Power Systems, Vol. 31, Issue 1, January 2016, 234-246.
Wanning Li and Leigh Tesfatsion, "An 8-Zone ISO-NE Test System with Physically-Based Wind Power,"
Economics Working Paper No. 17017, Department of Economics, Iowa State University, January 2017.
AMES Market Package--Version 3.0 (Released: 12/16/2017)
was developed by Auswin George Thomas and Tesfatsion at Iowa State University.
AMES V3.0 extends AMES V2.06 by incorporating a real-time market operating in tandem with a day-ahead market. More precisely:
- AMES V3.0 models a two-settlement system that includes a daily Day-Ahead Market (DAM) for next-day operations as well as a Real-Time Market (RTM) that runs once every hour. Congestion is handled by Locational Marginal Prices (LMPs).
- As in AMES V2.06, the DAM on each day D is cleared by means of an ISO-managed SCED optimization; it determines a generation dispatch schedule and LMPs for day D+1, based on Load Serving Entity (LSE) demand bids and GenCo supply offers for day D+1.
- The RTM for each hour H is cleared by means of an ISO-managed SCED optimization, based on ISO load forecasts and Generation Company (GenCo) supply offers for H. It
determines generation dispatch levels
and LMPs for H.
AMES Market Package--Version 2.06 (Released: 5/22/13)
- AMES V2.06 was developed by Hongyan Li, Leigh Tesfatsion, and Sean L. Mooney at Iowa State University.
- AMES V2.06 modifies AMES V2.05 as follows:
- Bug Fix: A bug in the transmission grid verification logic prevented a 2-Bus 1-Branch transmission grid from being used.
- Bug Fix: Platform independence -- fixed some paths that assumed AMES was on a Windows system.
- Improved GUI responsiveness.
Downloads for AMES V2.06:
- Zip file
(i) an src folder containing full compilable source code; (ii) a lib folder containing all required libraries for building, testing, and generating documentation;
(iii) a test folder containing basic unit tests;
(iv) a DATA folder containing a 2-bus test case, a 5-bus test case, and a 30-bus test case (in both regular and batched modes);
(v) a netbeans project folder nbproject; and
(vi) a build file (build.xml) to facilitate command line use.
- Zip file
that includes a directly runnable version of AMES V2.06 in the form of a compiled jar, runtime libraries/jars, and a data folder
AMES Market Package--Version 2.05 (Released: 9/14/09)
- AMES 2.05 was developed by Hongyan Li and Leigh Tesfatsion at Iowa State University.
AMES V2.05 modifies AMES V2.03 as follows:
- A bug in the AMES V2.03 GUI case edit facility that prevented users from being able to use this GUI facility to change the size of the grid has been fixed. The ability of users to change the grid size along with other AMES parameter settings through direct editing of the provided default 5-bus and 30-bus test cases was not affected by this bug.
AMES Market Package--Version 2.03 (Released: 8/09/09)
AMES 2.03 was developed by Hongyan Li and Leigh Tesfatsion at Iowa State University.
AMES V2.03 modifies AMES V2.02 as follows:
- The default dynamic 30-bus test case included with the download of AMES V2.02 has been updated so that it now corresponds to the dynamic 30-bus test case used to run experiments in the following working paper:
Hongyan Li and Leigh Tesfatsion, "ISO Net Surplus Collection and Allocation in Wholesale Power Markets under Locational Marginal Pricing"
IEEE Transactions on Power Systems, Vol. 26, Issue 2, 2011, 627-641.
AMES Market Package--Version 2.02 (Released: 9/20/08)
AMES 2.02 was developed by Hongyan Li and Leigh Tesfatsion at Iowa State University.
- AMES V2.02 modifies AMES V2.01 as follows:
- A small glitch in the GUI menu command sequence "Output Table View -> GenCo Commitments -> GenCo i" has been fixed so that the name of the selected GenCo is properly displayed in the first table column.
AMES Market Package--Version 2.01 (Released: 7/17/08)
AMES 2.01 was developed by Hongyan Li and Leigh Tesfatsion at Iowa State University.
- AMES V2.01 modifies AMES V2.0 as follows:
- A glitch in the final "Done" command in the command sequence "Case->Case Parameters->Step 1...Step 6->Done" has been fixed so that changed parameter settings are properly saved and can be immediately run.
- The default (or user-specified) random seed set by "Case->Case Parameters->Step 6: Simulation Control Parameters->Random Seed" is now properly displayed at the top of the main view screen when a case is run.
- After each run, the main view screen now indicates (at the end) which of the five possible stopping rules have been flagged and which flagged stopping rule's activation actually resulted in the stopping of the simulation run.
- A sample data file for conducting batch (multi-run) experiments has been included in the DATA directory for AMES(V2.01) along with sample data files for conducting single-run 5-bus and 30-bus test case experiments. The extension ".bth" is used for batch data files and the extension ".dat" is used for single-run data files.
- A glitch in the display ordering of the GenCo learning parameters on the main view screen has been fixed.
- The default values for the GenCos' fixed costs in the 5-bus and 30-bus test cases have now been calibrated so that each GenCo earns positive daily profits (daily total revenues minus daily total cost) in the "competitive benchmark" solution calculated at the beginning of each run. In the previous version 2.0 the default fixed cost values were set in an ad hoc manner that resulted in persisently negative daily profits for some GenCos.
- The default settings V_o and S_o for base voltage and base apparent power now appear in the setting screen "Case->Case Parameters->Step 1: Input Global Parameters" so that the user can change these default base value settings as desired.
- The default (or user-specified) settings for the price-sensitive demand function parameters c_j(H), d_j(H), and SLMax_j(H) for each hour H and each LSE j are now displayed on the main view screen (along with all other parameter settings) whenever a case is run.
- The default (or user-specified) settings for the price-sensitive demand function parameters c_j(H), d_j(H), and SLMax_j(H) for each hour H and each LSE j can now be displayed in table form by the command sequence "View->Output Table View->View Case Data Parameters->LSE Price-Sensitive Demand Parameters".
- The price-sensitive demand function for each LSE j can now be individually displayed in chart form as part of the display of cleared price-sensitive demand for LSE j by the command sequence "View->Output Chart View->LSE Price-Sensitive Demand"->LSEj.
- For direct comparison, the true marginal cost function for each GenCo i is now displayed along with GenCo i's reported marginal cost function for each day D using the command sequence "View->Output Chart View->View Case Data Parameters->GenCos->GenCoi.
- The setting screen "Case->Case Parameters->Step 5: Input LSE Parameters->LSEj" has been modified for clarity. In particular, the captions now indicate more clearly the difference between the flag boxes (for indicating the existence or not of fixed demand and/or of a price-sensitive demand function for LSE j for each hour) versus the value boxes (for setting specific numerical values for fixed demand and/or for the price-sensitive demand function parameters for LSE j for each hour).
- A glitch in the chart displays of cleared points for LSE price-sensitive demands has been fixed.
Note: Thanks to Abhishek Somani, Nanpeng Yu, and Qun Zhou for helpful comments on the previous version AMES V2.0, particularly with regard to points (1) through (4).
AMES Market Package--Version 2.0 (Released: 7/10/08)
AMES V2.0 was developed by Hongyan Li and Leigh Tesfatsion at Iowa State University.
- AMES V2.0 extends AMES V1.31 as follows:
- The demand bid reported by each LSE for each hour of the day-ahead market can now include a price-sensitive demand bid function as well as a fixed (price-insensitive) demand bid. In AMES V1.31 only fixed demand bids were permitted.
- All stochastic reinforcement learning parameter values can now be set individually for each GenCo. In AMES V1.31 these parameter values had to be set the same across all GenCos.
- In the implementation of each GenCo's stochastic reinforcement learning method, the user can now choose to use either "daily profits" or "daily net earnings" as the "daily rewards" that condition the updating of action choice probabilities. The former is defined as revenues minus total costs (including fixed costs), whereas the latter is defined as revenues minus total variable costs (excluding fixed costs).
In AMES V1.31, the use of daily profits as the daily rewards was hard coded.
- The ISO can now impose a user-specified price cap on the supply offers reported by GenCos in an effort to mitigate their "market power," i.e., their ability to profitably raise prices either by reporting higher-than-true marginal costs or less-than-true operating capacity. In AMES V1.31 no supply-offer price caps were permitted.
- Many additional tables and charts are now available for the display of simulation outputs, and the presentation of the tables and charts has been improved.
- The user is now able to set any combination of five different stopping rules for simulation runs. In
AMES V1.31 only two stopping rules were available.
- The user is now clearly informed on the main output screen (as well as in the output tables and charts) whenever offered supply is inadequate to meet fixed demand for some hour of the day-ahead market, resulting in the DC optimal power flow (OPF) problem for that hour having no solution. In AMES V1.31, all DC-OPF outputs were simply zeroed out in the output tables and charts whenever such "inadequacy events" arose.
AMES Market Package--Version 1.31 (Released: 10/13/07)
AMES V1.31 was developed by Hongyan Li, Junjie Sun, and Leigh Tesfatsion at Iowa State University.
AMES V1.31 modifies AMES V1.3 by correcting a small bug in ActionDomain.java (a misplaced comment indicator) that causes program termination when the user specifies M2=1 (i.e., when the user forces all generators to report the true slope of their marginal cost curves in the supply offers they report to the ISO).
In particular, in ActionDomain.Java for Version 1.31, the comment indicator // in front of the assignment statement "inc2=someLargeNumber;" inside the "if(M2==1)" code segment is now removed.
AMES Market Package--Version 1.30 (Released: 7/14/07)
AMES V1.30 was developed by Hongyan Li, Junjie Sun, and Leigh Tesfatsion at Iowa State University.
AMES V1.30 modifies AMES V1.20 by incorporating a number of improvements in the output displays.
In addition, AMES V1.30 corrects a bug in AMES V1.20 that caused the competitive equilibrium (no learning) benchmark solution, initially calculated during each run of the market simulation, to be picked up and counted as "Day 1" in the indexing of days. Version 1.3 treats this initial calculation of the competitive equilibrium benchmark solution as a separate off-line calculation, so that "Day 1" now clearly indicates the beginning of the market simulation with learning traders.
AMES Market Package--Version 1.20 (Released: 7/6/07)
AMES V1.20 was developed by Junjie Sun and Leigh Tesfatsion at Iowa State University.
AMES V1.20 modified AMES V1.10 in response to user questions about set up. The accompanying manual and tutorial materials were revised for increased clarity, and a link was included on the AMES Test Bed Home Page to a new page of detailed instructions for setting up and running the AMES Market Package as a NetBeans project.
AMES Market Package--Version 1.10 (Released: 6/29/07)
AMES V1.10 was developed by Junjie Sun and Leigh Tesfatsion at Iowa State University.
- AMES V1.1 modifies AMES V1.0 by cleaning up some of the comment statements in the .java files, and by changing the name of JOptim.jar to QuadProgJ.jar in the library directory to clarify that this Jar file implements the SCQP solver QuadProgJ constituting the core of DCOPFJ, the AMES DC optimal power flow solver.
AMES Market Package--Version 1.00 (Released: 6/22/07)
AMES V1.00 was developed by Junjie Sun and Leigh Tesfatsion, with important assistance from Deddy Koesrindartoto, all at Iowa State University.
- AMES V1.00 was the first release of the AMES Wholesale Power Market Test Bed as open-source software. The acronym
AMES = Agent-based Modeling of Electricity Systems is due to Deddy Koesrindartoto.