Open Source Software (OSS) for
Electricity Market Research,
Teaching, and Training
Software Release Disclaimer:
- All software provided below is unsupported and provided as-is, without
warranty of any kind, unless otherwise specified by the provider.
- Materials Linked to Date:
The U.S. electric power industry is currently undergoing substantial changes in both its structure (ownership and technology aspects) and its architecture (operational and oversight aspects). These changes involve attempts to move the industry away from highly regulated markets with administered cost-based pricing and towards competitive markets in which prices more fully reflect supply and demand forces. The goal of these changes is to provide industry participants with better incentives to control costs and introduce innovations. The process of enacting and implementing policies and laws to bring about these changes has come to be known as restructuring.
This restructuring process has been controversial. The meltdown in the restructured California wholesale power market in the summer of 2000 has demonstrated how unintended consequences can arise when complex market designs are implemented without sufficient pre-testing. Following the California crisis, many energy researchers have called for the development of test beds combining sound physical understanding of power system operations with economic analysis of incentives to help ensure that electricity market designs have good real-world performance characteristics.
Many commercially available packages for power system analysis now incorporate components critical for the simulation of restructured electricity markets (e.g. optimal power flow solvers). However, lack of open-source access prevents users from gaining a complete and accurate understanding of what has been implemented, restricts the ability of users to experiment with new software features, and hinders users from tailoring software to specific needs. In addition, these packages can be cumbersome to use for research, teaching, and training purposes requiring intensive experimentation and sensitivity analyses.
The goal of this resource site is to encourage the study of restructured electricity markets from a perspective that adequately addresses both economic and engineering concerns. Annotated pointers are provided to open source software (OSS) facilitating the modeling of electricity markets as commercial networks of strategically interacting traders and regulatory agencies learning to operate through time over realistically rendered transmission grids.
Suggestions regarding additional pertinent links for this resource site are most welcome. Links are sought for OSS libraries, computational laboratories, simulators, toolkits, evaluative studies, and management systems that could potentially facilitate electricity market research, teaching, and training.
OSS for Electricity Market Simulation
AMES Wholesale Power Market Test Bed (Java)
AMES Wholesale Power Market Test Bed,
developed entirely in Java by an interdisciplinary team of researchers at Iowa State University,
is a modular and extensible agent-based computational laboratory for studying the
dynamic efficiency and reliability of wholesale power markets restructured in
accordance with guidelines issued by the U.S. Federal Energy Regulatory Commission.
AMES models strategically-learning traders interacting over time in an ISO-managed
wholesale power market operating over a transmission grid subject to
congestion effects. Congestion on the grid is managed by means of locational
marginal prices derived from optimal power flow solutions.
- AMES is a free open-source tool suitable for research, teaching, and training
applications. It is designed for the intensive experimental study of small to medium-sized systems (2-500 nodes).
A graphical user interface permits the creation, modification, analysis and storage of scenarios,
parameter initialization and editing, specification of behavioral rules (e.g.
learning methods) for market participants, and output reports through table and chart displays.
AMES is an acronym for Agent-based Modeling of Electricity Systems.
Eight-Zone Test System Based on ISO-NE Data (Java/Python)
- A team of researchers at ISU has developed an open source 8-Zone Test System Based on ISO-NE Data. A description of this test system, together with an illustrative application, is given in the following preprint:
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.
Java/Python code for this open source test system, together with data for the illustrative application, can be found at the following
BitBucket code/data repository site.
JASA: Java Auction Simulator API
- Steve Phelps (Ripple Software, LTD) has
developed an open-source Java class library called
JASA (Java Auction Simulator API)
for the simulation of auctions with learning traders. Included in JASA are classes specifically
developed for electricity auction simulation.
MinPower: Electric Power Market Simulator (Python)
is an open source toolkit for students and researchers in power systems. It is designed to make working with economic dispatch, optimal power flow, and unit commitment problems simple and beautiful. The goal is to foster collaboration with other researchers and to make learning easier for students. MinPower is written in Python, can use many solvers, and creates nice plots. The project is currently developed and maintained by Adam Greenhall, University of Washington, USA.
Tools for Assessment of Bidding Into Electricity Auctions (Java)
- Steven Puller (Texas A&MB) and Ross Baldick (University of Texas, Austin) have developed a public domain academic-grade tool to assess the competitiveness of offers into electricity auctions operating over transmission grids subject to transmission constraints. The prototype is written in the Java language, and is released as open source software under the terms of the GNU General Public License (GPL). To obtain the zipped tool and example file, visit
Open Source Software for Optimal Power Flow
A key stumbling block to developing OSS for general academic research into restructured electricity markets in the U.S. and elsewhere is the lack of OSS for AC/DC optimal power flow (OPF) problems. In the U.S., market operators of restructured wholesale power markets must repeatedly solve AC/DC OPF problems in order to generate unit commitment and dispatch schedules, as well as locational marginal prices (LMPs), for both spot and forward energy markets.
Developing algorithms for the successful solution of optimization problems involving mixed collections of equality
and inequality constraints, even when specialized to quadratic objective functions (as in DC OPF approximations to AC OPF problems), is a daunting task full of pitfalls for the unwary. (An excellent introduction to this topic can be found in R. Fletcher, Practical Methods of Optimization, Second Edition, John Wiley & Sons,
New York, c. 1987.)
This section includes annotated pointers to OSS for AC/DC OPF problems.
DCOPFJ: A Bid/Offer-Based DC-OPF Solver (Java)
developed entirely in Java by a team of researchers at Iowa State University, is a free open-source
stand-alone solver for small to medium-sized bid/offer-based DC optimal power flow problems having a strictly convex quadratic programming (SCQP) formulation.
The DCOPFJ package incorporates an SCQP solver (QuadProgJ) wrapped in an outer SI-to-PU data processing shell. QuadProgJ implements the well-known dual active-set SCQP algorithm developed by Goldfarb and Idnani (1983). QuadProgJ has been shown to match or exceed the accuracy of the proprietary C-language QP solver BPMPD (highly recommended by MATPOWER) when tested on a public repository of small to medium-sized SCQP problems.
- The DCOPFJ package has been successfully run on DC-OPF test cases commonly used for training purposes.
is a free MatLab based open source program for AC/DC power flow analysis. The program uses a sequential power flow algorithm and can be used to simulate interconnected AC systems, HVDC Grids and Voltage Source Converter High Voltage Direct Current (VSC HVDC) systems in general. The package has been fully integrated with the existing AC power flow routines developed in MATPOWER, while keeping the MATPOWER original source code unaltered. The project is currently developed and maintained by Jef Berteen, Katholieke Universiteit Leuven, Belgium.
MatDyn is a free MatLab based open source program to perform dynamic analysis of electric power systems. It is inspired by Matpower, a power flow and optimal power flow program in MatLab and shares its philosophy: "It is intended as a simulation tool for researchers and educators that is easy to use and modify." The source code for MatDyn is available
The developers note that care been taken to keep it well structured and easy to understand. The project is currently developed and maintained by Stijn Cole, Katholieke Universiteit Leuven, Belgium.
developed by a team of researchers at Cornell University, is a
package of MatLab M-files for solving power flow and optimal power flow
problems. It is intended as a simulation tool for researchers and educators that is easy to use and modify. MATPOWER is designed to give the best performance possible while keeping the code simple to understand and modify.
A detailed description of MATPOWER's
OPF formulation can be obtained here:
"MATPOWER's Extensible OPF Architecture"
by Ray D. Zimmerman, Carlos E. Murillo-Sánchez, and Robert J. Thomas.
- Although MATPOWER is free of charge and open source, its use requires MatLab (version 5 or later) and the MatLab Optimization Toolbox (for some OPF algorithms). MatLab and the MatLab Optimization Toolbox are commercial products whose kernels and libraries cannot be modified or freely distributed.
PSAT: Power System Analysis Toolbox (MatLab-Based)
Power System Analysis Toolbox (PSAT),
developed by Federico Milano (University of Castilla-La Mancha), is a
MatLab-based software package for analysis and design of
small to medium-sized electric power systems. The main features of PSAT include: power flow; continuation power flow; optimal power flow; small signal stability analysis; time-domain simulation; Phasor Measurement Unit (PMU) placement; FACTS models; and wind turbine models. All operations can be accessed by means of graphical user interfaces, and a Simulink-based library provides a user-friendly tool for network design.
- MatLab is a commercial product whose kernel and libraries
cannot be modified or freely distributed. However, PSAT can run on GNU/Octave, which is basically a free MatLab clone.
Other Supporting Open Source Software
Dia: Diagram Creation Program
Dia is a GTK+ based diagram creation program for GNU/Linux, MacOS X, Unix, and Windows, and is released under the GPL license. Dia is roughly inspired by the commercial Windows program 'Visio,' though more geared towards informal diagrams for casual use. It can be used to draw many different kinds of diagrams. It currently has special objects to help draw entity relationship diagrams, UML diagrams, flowcharts, network diagrams, and many other diagrams. It is also possible to add support for new shapes by writing simple XML files, using a subset of SVG to draw the shape. For more information about Dia, visit
EPOCHS: Electric Power and
Communication Synchronizing Simulator
- EPOCHS is an agent-based distributed simulation environment that combines multiple research and commercial off-the-shelf systems: namely, the PSAD/EMTDC electromagnetic transient simulator, the PSLF elctromechanical transient simulator, and the Network Simulator 2 (NS2). The resulting combined simulator permits the study of electric power scenarios incorporating new communication protocols.
For more information about EPOCHS, see
the following article: Kenneth Hopkinson, Xiaoru Wang, Renan Giovanini, James Thorp, Kenneth Birman, and Denis Coury, "EPOCHS: A Platform for Agent-Based Electric Power and Communication Simulation Built from Commercial Off-the-Shelf Components"
IEEE Transactions on Power Systems 21(2), 2006, 548-558.
GridLAB-D: Electric Energy Distribution Platform (C++/C)
is a power distribution simulation platform developed by the U.S.
Department of Energy at Pacific Northwest National Laboratory (PNNL) in
PNNL maintains a
GridLAB-D Site at SourceForge.
InterPSS: Internet-Based Software System
Internet Technology-based Open-source Power
System Simulation (InterPSS) System
is an open-source project whose goal is to develop a simple to use, yet powerful, Internet technology based software system for design, analysis, and simulation of power systems. Its open and loosely coupled system architecture will allow components developed by others to be easily plugged into the system to augment its functionality, and equally important, allow its components to be integrated into other systems to provide certain power system simulation functionality or services. The project is currently under development by a team of developers living in the United States, Canada and China.
LP_Solve: Linear Programming Toolkit
- LP_solve is a free linear (integer) programming solver based on the revised simplex method and the Branch-and-bound method for the integers. It contains full source, examples and manuals. LP_solve solves pure linear, (mixed) integer/binary, semi-continuous and special ordered sets (SOS) models. For general information about LP_Solve, visit
For downloads, go to
LP_Solve versions at sourceforge.net.
Open DSS: Distribution System Simulator (MS Windows Operating Environment)
The Electric Power Research Institute, Inc. (EPRI) has made its
Open Source Distribution System Simulator (OpenDSS)
program available as an open source project. The OpenDSS software is a comprehensive electrical power system simulation tool for electric utility distribution systems. The program has been developed for the Microsoft Windows environment. It supports nearly all frequency domain (sinusoidal steady-state) analyses commonly performed on electric utility power distribution systems. In addition, it supports many new types of analyses that are designed to meet future needs related to grid modernization efforts. Additionally, this open source program may encourage the user community to contribute useful models that might help others active in grid modernization.
Michael Thomas Flanagan's Java Scientific Library
- Michael Thomas Flanagan (EE, University College London, UKB) has developed and released as open-source software a
Java scientific library
to support both his own electrical engineering research and his undergraduate programming courses and projects. Included in the library are links to source files and documentation for classes handling a wide variety of numerical functions, including: inut/output; graph plotting; mathematical functions and physical constants; random numbers and deviates; error propagation; regression; optimization; Fourier transform and short-time Fourier transform; numerical integration; interpolation; root searching; matrices; complex arithmetic; circuits; impedance spectroscopy; optics; reflexivity; and control and system engineering routines.
- Flanagan also provides
Notes on Object-Oriented Programming (OOP) in Java
that includes tutorial materials for learning the Java programming language (specifically geared towards EE applications), instructions for how to download, install, and run a Java program on a personal computer, and instructions for how to set up his Java Scientific Library on a personal computer.
OSS Management Systems
Comparison of Four OSS Configuration Management Systems
- David Wheeler maintains a site titled
Comments on OSS/FS Software Configuration Management Systems
providing comparisons of the following four systems: CVS, Subversion, GNU Arch, and Monotone.
Evaluation of OSS for Electricity Markets
Evaluation of OSS LP Software for Electricity Spot Market Optimization
- Stuart R. Thorncraft, Hugh R. Outhred, and David J. Clements, "Evaluation of Open-Source LP Optimization Codes in Solving Electricity Spot Market Optimization Problems"
19th Mini-European Conference on Operations Research Models and Methods in the Energy Sector, Coimbra, Portugal, September 6-8, 2006.
- Abstract: The authors investigate the performance of three linear programming packages --- GLPK, COIN-LP (CLP), and LPSOLVE -- for the determination of optimal locational marginal prices (LMPs) and dispatch levels for electricity spot markets.
OSS General Reference Materials
Development of Open Source Test Beds
Tom Overbye, "Synthetic Power Grid Models: What Are They, How They're Made, and Why They Matter", PSERC Webinar, March 15, 2016.
Development of Open Source Software
- Karl Fogel, "Producing Open Source Software: How to Run a Successful Free Software Project
184 pages, copyright 2005 under a CreativeCommons Attribution-ShareAlike license.
- Abstract: This book is meant for software developers and managers who are either planning to start an OSS project or who are concerned with the effective maintenance of an ongoing OSS project. Topics covered include: (1) History of OSS; (2) Getting Started (choosing a name, mission statement, license, documentation, etc.); (3) Technical Infrastructure (project needs, mailing lists, version control, bug tracker, Wikis, websites); (4) Social and Political Infrastructure; (5) Money (types of involvement, contracting, funding, marketing); (6) Communications (structure and formatting, avoiding common pitfalls, handling difficult people, handling growth, publicity); (7) Packaging, Releasing, and Daily Development (release numbering, packaging, testing and releasing, maintaining multiple release lines); (8) Managing volunteers; (9) Licenses, Copyrights, and Patents (MIT/X Window System License, GNU General Public License, BSD License, copyrighting, dual licensing, patents); (10) Useful Appendices (free version control systems, free bug trackers, copyright forms, etc.).
- Hongyan Li and Leigh Tesfatsion, "Development of Open Source Software for Power Market Research: The AMES Test Bed"
Journal of Energy Markets, Vol. 2, No. 2, Summer 2009, 111-128.
Open Source Software (OSS) expresses the idea that developers should be able to license the publication of their software in a manner permitting anyone to freely use, modify, and distribute the software. Today OSS is widely used in the software industry, such as for language development tools (e.g., NetBeans for Java), office document processors (e.g., OpenOffice), and operating systems (e.g., Linux, OpenSolaris).
Yet OSS has been slow to penetrate the power industry; heavy reliance is still placed on closed-source commercial software packages. The OSS in use tends to be for specialized purposes (e.g., circuit design) rather than for the general-purpose analysis of power systems. This study discusses potential benefits and drawbacks of developing OSS for power market research, using the AMES Wholesale Power Market Test Bed for concrete illustration.
Copyright © Leigh Tesfatsion. All Rights Reserved.