ElectricGrid.jl - A Julia-based modeling and simulation tool for power electronics-driven electric energy grids

ElectricGrid.jl - A Julia-based modeling and simulation tool for power electronics-driven electric energy grids - Published in JOSS (2023)

https://github.com/upb-lea/electricgrid.jl

Science Score: 98.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    4 of 18 committers (22.2%) from academic institutions
  • Institutional organization owner
    Organization upb-lea has institutional domain (ei.uni-paderborn.de)
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords from Contributors

electrical-engineering openai-gym-environments reinforcement-learning standardization

Scientific Fields

Engineering Computer Science - 31% confidence
Last synced: 6 months ago · JSON representation

Repository

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

Basic Info
Statistics
  • Stars: 38
  • Watchers: 4
  • Forks: 6
  • Open Issues: 2
  • Releases: 4
Created about 4 years ago · Last pushed over 2 years ago
Metadata Files
Readme License

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: * 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 in regard to the electric grid can be found here: * Default Parameters

To run a simple example, the following few lines of code can be executed:

``` using ElectricGrid

env = ElectricGridEnv(numsources = 1, numloads = 1) MultiAgent = SetupAgents(env) hook = Simulate(MultiAgent, 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

  • Name: Paderborn University - LEA
  • Login: upb-lea
  • Kind: organization
  • Location: Paderborn, Germany

Department of power electronics and electrical drives

JOSS Publication

ElectricGrid.jl - A Julia-based modeling and simulation tool for power electronics-driven electric energy grids
Published
September 02, 2023
Volume 8, Issue 89, Page 5616
Authors
Oliver Wallscheid ORCID
Chair of Power Electronics and Electrical Drives, Paderborn University, Paderborn, Germany
Sebastian Peitz ORCID
Chair of Data Science for Engineering, Paderborn University, Paderborn, Germany
Jan Stenner
Chair of Data Science for Engineering, Paderborn University, Paderborn, Germany
Daniel Weber ORCID
Chair of Power Electronics and Electrical Drives, Paderborn University, Paderborn, Germany
Septimus Boshoff
Chair of Power Electronics and Electrical Drives, Paderborn University, Paderborn, Germany
Marvin Meyer ORCID
Chair of Power Electronics and Electrical Drives, Paderborn University, Paderborn, Germany
Vikas Chidananda
Chair of Data Science for Engineering, Paderborn University, Paderborn, Germany
Oliver Schweins
Chair of Power Electronics and Electrical Drives, Paderborn University, Paderborn, Germany
Editor
Øystein Sørensen ORCID
Tags
Electric Grids Microgrids Reinforcement Learning Energy Systems Simulation Testing Control

GitHub Events

Total
  • Watch event: 6
  • Fork event: 1
Last Year
  • Watch event: 6
  • Fork event: 1

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 1,030
  • Total Committers: 18
  • Avg Commits per committer: 57.222
  • Development Distribution Score (DDS): 0.72
Past Year
  • Commits: 324
  • Committers: 12
  • Avg Commits per committer: 27.0
  • Development Distribution Score (DDS): 0.735
Top Committers
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 (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • 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 requests: 31
  • Bot issues: 0
  • Bot pull requests: 44
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • Webbah (10)
  • janstenner (6)
  • wallscheid (6)
  • osorensen (6)
  • SeptimusBoshoff (5)
  • MarvinMeyer (4)
  • VikasChidananda (3)
  • OliverSchw (1)
  • benebrueck (1)
  • JuliaTagBot (1)
Pull Request Authors
  • github-actions[bot] (36)
  • VikasChidananda (11)
  • janstenner (8)
  • MarvinMeyer (7)
  • osorensen (3)
  • wallscheid (2)
  • Webbah (2)
  • SeptimusBoshoff (1)
  • benebrueck (1)
Top Labels
Issue Labels
enhancement (11) visualisation (1) documentation (1) invalid (1) help wanted (1)
Pull Request Labels
enhancement (1)

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 1
juliahub.com: ElectricGrid

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

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 9.9%
Average: 24.4%
Dependent packages count: 38.9%
Last synced: 6 months ago

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