Introduction
SmartGridToolbox is a C++14 library for developing smart grid simulations, which can be used on Mac OS X or Linux systems. It was developed by the Energy Systems subgroup of National ICT Australia (NICTA)'s Optimisation Research Group, with the help of the Australian National University and Actew-AGL. It is currently maintained at the Planning and Optimisation Group of the ANU's Research School of Computer Science.
SmartGridToolbox's simulation engine uses agent-based and discrete event simulation concepts. Research into future electricity grids requires the ability to handle a wide range of control strategies and simulation components. SmartGridToolbox aims to provide this ability through an API that emphasises flexibility and extensibility.
Getting Started
The main GitLab repository for SmartGridToolbox is available here. It contains detailed instructions about how to install SmartGridToolbox for Linux or MacOS.
The API reference provides a detailed reference for the C++14 API. In particular, the modules page gives an organised overview of the code. The YAML specifications for SmartGridToolbox configuration files are also documented.
Finally, the tutorials and examples may also be of use.
Tutorials
The tutorials can be found in SmartGridToolbox/tutorials
.
Basics Tutorial - Basic and utility classes and functions.
Network Tutorial - Construct and solve networks.
ComponentCollection Tutorial - Learn about the ComponentCollection
class, frequently used to store collections of objects.
Parsing Tutorial - See how SmartGridToolbox parses YAML configuration files.
Simulation Tutorial - Construct and solve a basic simulation.
Time Varying Loads Tutorial - See how time series data can be incorporated into simulations.
Properties Tutorial - See how SmartGridToolbox Properties work.
Examples
The examples can be found in SmartGridToolbox/examples
. They are intended to be an introduction to more sophisticated applications of SmartGridToolbox, involving optimisation and custom components. They contain README.md files that will give details that will help you to build and understand the code.
Python Bindings
Python 3 bindings for the SgtCore part of SmartGridToolbox (which includes network modelling and solving but excludes the discrete event simulation library) are available in extras/python_bindings
. See here for details.