ElectricGrid.jl
| Reference docs | Install guide | Quickstart | Release notes
ElectricGrid.jl is a library for setting up realistic electric grid simulations with extensive support for control options. With ElectricGrid.jl you can
- create a simulation environment for an electric grid by defining its sources, loads, and cable connections
- set detailed parameters of your electric components - or let them be auto-generated
- choose different control modes for each source in your system
- use the agent architecture of ReinforcementLearning.jl to either train RL agents as controllers or write your own ones
Installation
- Installation using the julia package manager (recommended): In a julia terminal run the follwing:
]
activate .
add ElectricGrid
- Install from Github source:
- Clone the git and navigate to the directory
git clone https://github.com/upb-lea/ElectricGrid.jl.git
-
activate Julia
-
activate the project by pressing
]
to access pkg mode and thenactivate path/to/ElectricGrid
oractivate .
if you started julia in your ElectricGrid directory -
run
instantiate
Getting Started
To get started with ElectricGrid.jl the following interactive notebooks are useful. They show how to use the ElectricGrid.jl framework to build and simulate the dynamics of an electric power grid controlled via classic controllers or train common RL agents for different control tasks:
- Create an environment with ElectricGrid.jl
- Theory behind ElectricGrid.jl - Modelling Dynamics using Linear State-Space Systems
- Classic Controlled Electric Power Grids - State of the Art
- Use RL Agents in the ElectricGrid.jl Framework
An overview of all parameters defining the experiment setting with regards to the electric grid can be found here:
To run a simple example, the following few lines of code can be executed:
using ElectricGrid
env = ElectricGridEnv(num_sources = 1, num_loads = 1)
Multi_Agent = SetupAgents(env)
hook = Simulate(Multi_Agent, env)
RenderHookResults(hook = hook)
This is a minimal example of a full ElectricGrid.jl setup. There should also appear a plot that looks like this: