Power Grid and Market Analysis (PowerGAMA)
PowerGAMA is an open-source Python package for power system grid and market analyses.
It is a lightweight simulation tool for high level analyses of renewable energy integration in large power systems. The simulation tool optimises the generation dispatch, i.e. the power output from all generators in the power system, based on marginal costs for each timestep over a given period, for example one year. It takes into account the variable power available for solar, hydro and wind power generators. It also takes into account the variability of demand. Moreover, it is flow-based meaning that the power flow in the AC grid is determined by physical power flow equations.
Since some generators may have an energy storage (hydro power with reservoir and concentrated solar power with thermal storage) the optimal solution in one timestep depends on the previous timestep, and the problem is therefore be solved sequentially. A realistic utilisation of energy storage is ensured through the use of storage values.
PowerGAMA does not include any power market subtleties (such as start-up costs, limited ramp rates, forecast errors, unit commitments) and as such will tend to overestimate the ability to accommodate large amounts of variable renewable energy. Essentially it assumes a perfect market based on nodal pricing without barriers between different countries. This is naturally a gross oversimplification of the real power system, but gives nonetheless very useful information to guide the planning of grid developments and to assess broadly the impacts of new generation and new interconnections.
PowerGAMA is an open source re-design/implementation of SINTEF's Power System Simulation Tool (PSST). Read more about PSST here: TradeWind Report D3.2 Grid modelling and power system data.
- User Guide - A description of the PowerGAMA tool and its data format and usage
- doi:10.1063/1.4962415 - Paper: HG Svendsen and OC Spro, PowerGAMA: A new simplified modelling approach for analyses of large interconnected power systems, applied to a 2030 Western Mediterranean case study, J. Renewable and Sustainable Energy 8 (2016)
- Brief presentation - See for a very brief overview of what PowerGAMA is
- A conference presentation and paper that illustrates how the software package can be used
See also the auto-generated code documentation.
These Jupyter notebooks demonstrate how to run simulations with PowerGAMA
- 9 bus example (dataset included with source code)
- Europe 2014 case (dataset can be downloaded from doi:10.5281/zenodo.54580)
Installation - prerequisites (Python)
A convenient Python distribution that include the packages numpy, scipy and matplotlib, as well as the Matlab-like interface Spyder is Anaconda.
PowerGAMA requires Python 3 and the following Python packages:
- numpy, scipy, matplotlib, pandas, networkx (included in Anaconda)
- Pyomo Pyomo optimisation package
- COIN-OR CBC solver. Executable can be downloaded here, and should be put in a folder that is added to the system PATH.
- Folium for plotting leaflet-based maps
- sklearn (for time sampling in powergama.sampling)
How to install
The simplest way to install PowerGAMA is directly from the Internet using pip:
pip install powergama (from the Anaconda Command Prompt, if you use Anaconda)
Alternatively, if you want to use the most up-to date version, and be able to make changes in the code:
- Clone the code (using git) or download the most recent master branch
- Open the (anaconda) prompt and navigate to where you put the source code, to the powergama folder containing the
- From within this folder, execute the command
pip install --editable .This creates a link from the python installation package directory to this location
Access PowerGAMA in a script or interactive shell via
Power Grid Investment Module (PowerGIM)
PowerGIM is an independent module for grid investment analyses that is included with the PowerGAMA python package. It is a power system expansion planning model that can consider both infrastructure and generator investments. Moreover, it has the ability to account for uncertainties since it is formulated as a two-stage stochastic program with variables related to investment decisions in the first stage, and operational (and second phase investment) variables in the second stage.
For a fuller description, read the PowerGIM user guide
Read more about...
Harald G Svendsen
SINTEF Energy Research