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 Python 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)
- PowerGIM deterministic and stochastic
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, math, pandas, networkx (included in Anaconda)
- Pyomo Pyomo optimisation package (Versions<1.1 use PuLP instead)
- simplekml (for plotting google earth maps)
- Matplotlib Basemap toolkit (for plotting maps). Download the most up-to-date Windows binaries here
- COIN-OR CBC solver. Executable can be downloaded here, and should be put in a folder that is added to the system PATH.
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, it can be installed in the basic way using the setup.py script:
- Download the source to a temporary local folder and then locate the file. setup.py
- From within this folder, execute the shell command
python setup.py installto install it into your default python package folder.
- Restart Python
- Access PowerGAMA in a script or interactive shell via
Read more about...
Harald G Svendsen
SINTEF Energy Research
For discussions, please visit the +powergama page.