A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

ElectricGrid.jl

A time domain electrical energy grid modeling and simulation tool with a focus on the control of power electronics converters.
https://github.com/upb-lea/ElectricGrid.jl

Category: Energy Systems
Sub Category: Grid Analysis and Planning

Keywords from Contributors

control latex prediction reinforcement-learning course-materials lecture lecture-notes online-learning online-videos open-education

Last synced: about 13 hours ago
JSON representation

Repository metadata

A time domain electrical energy grid modeling and simulation tool with a focus on the control of power electronics converters

README.md

ElectricGrid.jl

| Reference docs
| Install guide
| Quickstart
| Release notes

DOI
Build Status
License

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 power electronic converter in your system and
  • use the agent architecture of ReinforcementLearning.jl to either train RL agents as controllers or write your own ones.

ElectricGrid Framework

Installation

  • Installation using the Julia package manager (recommended if you want to use ElectricGrid in your project):
    • In a Julia terminal run the following:
import Pkg
Pkg.add("ElectricGrid")

or press ] in the Julia Repl to enter Pkg mode and then run

add ElectricGrid
  • Install from GitHub source (recommended if you want to run the example notebooks and scripts):
    • Clone the git and navigate to the directory
git clone https://github.com/upb-lea/ElectricGrid.jl.git

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:

An overview of all parameters defining the experiment setting in regard 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:
output of the minimal example

Using the GUI

The current version of ElectricGrid features a graphical user interface (GUI) that helps with setting up a simulation.
This is built on the library QML.jl, that, at the time of writing, stopped working in its current release version.
For that reason it is required to clone this codebase and install QML.jl in its GitHub main state manually if you want to use the GUI.

import Pkg
Pkg.add("QML#main")

or press ] in the Julia RPEL to enter Pkg mode and then run

add QML#main

GUI example

Usage of the GUI is explained in the GUI section in the docs.


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 8 days ago

Total Commits: 1,030
Total Committers: 18
Avg Commits per committer: 57.222
Development Distribution Score (DDS): 0.72

Commits in past year: 324
Committers in past year: 12
Avg Commits per committer in past year: 27.0
Development Distribution Score (DDS) in past year: 0.735

Name Email Commits
SeptimusBoshoff s****s@g****a 288
Jan Stenner j****r@u****e 233
webbah d****o@g****e 159
Marvin Meyer m****5@w****e 86
Marvin Meyer 2****r 62
cvikas c****s@m****e 40
cvikas v****k@g****m 40
webbah D****! 33
OliverSchw o****w@g****e 28
Jan Stenner 5****r 25
Oliver Wallscheid w****d@l****e 16
Daniel Weber D****o@g****e 8
Vikas 6****a 4
Øystein Sørensen o****n@h****m 3
github-actions[bot] 4****] 2
SeptimusBoshoff 1****f 1
OliverSchw 9****w 1
Daniel Weber w****r@l****e 1

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 43
Total pull requests: 79
Average time to close issues: 6 months
Average time to close pull requests: about 23 hours
Total issue authors: 10
Total pull request authors: 9
Average comments per issue: 2.44
Average comments per pull request: 0.08
Merged pull request: 31
Bot issues: 0
Bot pull requests: 44

Past year issues: 0
Past year pull requests: 0
Past year average time to close issues: N/A
Past year average time to close pull requests: N/A
Past year issue authors: 0
Past year pull request authors: 0
Past year average comments per issue: 0
Past year average comments per pull request: 0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/upb-lea/ElectricGrid.jl

Top Issue Authors

  • Webbah (10)
  • wallscheid (6)
  • janstenner (6)
  • osorensen (6)
  • SeptimusBoshoff (5)
  • MarvinMeyer (4)
  • VikasChidananda (3)
  • benebrueck (1)
  • OliverSchw (1)
  • JuliaTagBot (1)

Top Pull Request Authors

  • github-actions[bot] (44)
  • VikasChidananda (11)
  • janstenner (8)
  • MarvinMeyer (7)
  • osorensen (3)
  • wallscheid (2)
  • Webbah (2)
  • SeptimusBoshoff (1)
  • benebrueck (1)

Top Issue Labels

  • enhancement (11)
  • visualisation (1)
  • documentation (1)
  • invalid (1)
  • help wanted (1)

Top Pull Request Labels

  • enhancement (1)

Package metadata

juliahub.com: ElectricGrid

A time domain electrical energy grid modeling and simulation tool with a focus on the control of power electronics converters

  • Homepage: https://upb-lea.github.io/ElectricGrid.jl/
  • Documentation: https://docs.juliahub.com/General/ElectricGrid/stable/
  • Licenses: MIT
  • Latest release: 1.0.0 (published about 2 years ago)
  • Last Synced: 2025-04-28T13:34:03.047Z (1 day ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 9.866%
    • Average: 24.369%
    • Dependent packages count: 38.871%

Dependencies

.github/workflows/CI.yml actions
  • actions/checkout v2 composite
  • julia-actions/cache v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/documentation.yml actions
  • actions/checkout v2 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/draft-pdf.yml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v1 composite
  • openjournals/openjournals-draft-action master composite

Score: -Infinity