Openmodelica Microgrid Gym

OpenModelica Microgrid Gym (OMG): An OpenAI Gym Environment for Microgrids
Alternatives To Openmodelica Microgrid Gym
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Stable Baselines36,99579a day ago80November 17, 202381mitPython
PyTorch version of Stable Baselines, reliable implementations of reinforcement learning algorithms.
Keras Rl5,348513a year ago8June 01, 201843mitPython
Deep Reinforcement Learning for Keras.
Cleanrl3,724
12 hours ago44otherPython
High-quality single file implementation of Deep Reinforcement Learning algorithms with research-friendly features (PPO, DQN, C51, DDPG, TD3, SAC, PPG)
Stable Baselines3,06425103 years ago31April 06, 2021n,ullmitPython
A fork of OpenAI Baselines, implementations of reinforcement learning algorithms
Muzero General2,203
3 months ago54mitPython
MuZero
Awesome Ai Books1,086
8 months agomitJupyter Notebook
Some awesome AI related books and pdfs for learning and downloading, also apply some playground models for learning
Rex Gym759
2 years ago17October 08, 20209apache-2.0Python
OpenAI Gym environments for an open-source quadruped robot (SpotMicro)
Deep Learning Wizard664
a month ago2mitHTML
Open source guides/codes for mastering deep learning to deploying deep learning in production in PyTorch, Python, C++ and more.
Sumo Rl467
4 months ago8June 15, 202315mitPython
Reinforcement Learning environments for Traffic Signal Control with SUMO. Compatible with Gymnasium, PettingZoo, and popular RL libraries.
Agilerl438
9 hours ago1apache-2.0Python
Streamlining reinforcement learning with RLOps
Alternatives To Openmodelica Microgrid Gym
Select To Compare


Alternative Project Comparisons
Readme

OpenModelica Microgrid Gym

build cov     python pypi download     license
https://github.com/upb-lea/openmodelica-microgrid-gym/raw/develop/docs/pictures/omg_flow.png

The OpenModelica Microgrid Gym (OMG) package is a software toolbox for the simulation and control optimization of microgrids based on energy conversion by power electronic converters.

The main characteristics of the toolbox are the plug-and-play grid design and simulation in OpenModelica as well as the ready-to-go approach of intuitive reinfrocement learning (RL) approaches through a Python interface.

The OMG toolbox is built upon the OpenAI Gym environment definition framework. Therefore, the toolbox is specifically designed for running reinforcement learning algorithms to train agents controlling power electronic converters in microgrids. Nevertheless, also arbritary classical control approaches can be combined and tested using the OMG interface.

Video Tutorial

Following is a short YouTube video introduction, to get a fist impression how to use OMG.

Installation

Install Python Environment

This is the short installation guide for Windows and Linux. OpenModelica is hardly supported for Mac, they suggest to install in a Linux VM. For this reason, running OMG in a Linux VM is strongly recommended for Mac users!

Since it is not possible to install PyFMI, a package which is necessary for the communication between the python interface and the environment, via pip, we recommend to install this package in advance in a conda environment. As of now, only Windows and Linux are supported officially.

  • If conda is NOT installed on your PC, install miniconda for python 3.8

  • Create a new conda environment (e.g. in PyCharm)

  • Install PyFMI from the conda-forge channel in the terminal:

    $ conda install -c conda-forge pyfmi
    
  • Install OpenModelica MicrogridGym from PyPI (recommended):

    $ pip install openmodelica_microgrid_gym
    

Installation of OpenModelica

OMG was create by using OMEdit v1.16

In case of installation issues you can resort to their pre-built virtual machine.

Getting started

The environment is initialized and run like any other OpenAI Gym

import gym

if __name__ == '__main__':
    env = gym.make('openmodelica_microgrid_gym:ModelicaEnv-v1',
               max_episode_steps=None,
               net='../net/net.yaml',
               model_path='../omg_grid/grid.network.fmu')

    env.reset()
    for _ in range(1000):
        env.render()
        env.step(env.action_space.sample())  # take a random action
    env.close()

OMG uses the FMI standard for the exchange of the model between OpenModelica and Python.

An example network consisting out of two inverters, three filters and an inductive load.

https://github.com/upb-lea/openmodelica-microgrid-gym/raw/master/docs/pictures/omedit.jpg

You can either use one of the provided FMUs (Windows and Linux, 64-bit, both included in the grid.network.fmu) or create your own by running:

openmodelica_microgrid_gym\fmu> omc create_fmu.mos

Windows users might need to open the terminal out of OpenModelica by clicking 'tools' => 'OpenModelica Command Prompt' to make sure that the command 'omc' gets recognized.

Running the staticctrl.py starts a simulation with a manually tuned cascaded PIPI controller

https://github.com/upb-lea/openmodelica-microgrid-gym/raw/master/docs/pictures/control.jpg

A save Bayesian approach of a reinforcement learning agent is provided under examples/berkamkamp.py.

https://github.com/upb-lea/openmodelica-microgrid-gym/raw/master/docs/pictures/kp_kp_J.png

Using pytest

OMG provides a big range of tests to ensure correct working toolbox after changes are done. On some windows machines, the tests can only be started from the terminal via 'pytest'.

The standard test OS for the development is Linux. In some cases, we have noticed that the test_modelica.py on windows PCs might throw an error. Since on Linux everything works fine, it seems to be a numerical issue connected with the FMUs.

Citation & white paper

Please find a white paper on the OMG toolbox including an exemplary usage scenario here:

Please use the following BibTeX entry for citing us:

@article{OMG-code2020,
    title = {OMG: A Scalable and Flexible Simulation and Testing Environment Toolbox for Intelligent Microgrid Control},
    author = {Stefan Heid and Daniel Weber and Henrik Bode and Eyke Hllermeier and Oliver Wallscheid},
    year = {2020},
    doi = {10.21105/joss.02435},
    url = {https://doi.org/10.21105/joss.02435},
    publisher = {The Open Journal},
    volume = {5},
    number = {54},
    pages = {2435},
    journal = {Journal of Open Source Software}
}

@article{OMG-whitepaper2020,
    title={Towards a Scalable and Flexible Simulation and
           Testing Environment Toolbox for Intelligent Microgrid Control},
    author={Henrik Bode and Stefan Heid and Daniel Weber and Eyke Hllermeier and Oliver Wallscheid},
    year={2020},
    eprint={http://arxiv.org/abs/2005.04869},
    archivePrefix={arXiv},
    primaryClass={eess.SY}
}

Contributing

Please refer to the contribution guide.

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

Popular Gym Projects
Popular Machine Learning Projects
Popular Applications Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Python
Machine Learning
Reinforcement Learning
Gym
Openai Gym