PowerGAMA is an open-source Python package for power system grid and market analyses.
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 should 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.
-
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), doi.org/10.1063/1.4962415
Install latest PowerGAMA release from PyPi:
pip install powergama
Prerequisite:
- Poetry
- Pre-commit
- An LP solver, e.g. the free CBC solver. Clone or download the code and install it as a python package. The tests rely on the GLPK solver.
git clone [email protected]:powergama/powergama.git
cd powergama
poetry install
poetry shell
poetry run pytest tests
These pipelines are defined:
- Build: Building and testing on multiple OS and python versions. Triggered on any push to GitHub.
- Release: Create a release. Triggered when a version tag v* is created.
- Publish: Publish to PyPI. Triggered when a release is published
You are welcome to contribute to the improvement of the code.
- Use Issues to describe and track needed improvements and bug fixes
- Use branches for development and pull requests to merge into main
- Use Pre-commit hooks
Harald G Svendsen
SINTEF Energy Research