Gym Electric Motor

Gym Electric Motor (GEM): An OpenAI Gym Environment for Electric Motors
Alternatives To Gym Electric Motor
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.
15 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
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.
13 hours ago1apache-2.0Python
Streamlining reinforcement learning with RLOps
Alternatives To Gym Electric Motor
Select To Compare

Alternative Project Comparisons

Gym Electric Motor

Overview paper | Reinforcement learning paper | Quickstart | Install guide | Reference docs | Release notes

Build Status codecov PyPI version License DOI Zenodo DOI JOSS


The gym-electric-motor (GEM) package is a Python toolbox for the simulation and control of various electric motors. It is built upon Faram Gymnasium Environments, and, therefore, can be used for both, classical control simulation and reinforcement learning experiments. It allows you to construct a typical drive train with the usual building blocks, i.e., supply voltages, converters, electric motors and load models, and obtain not only a closed-loop simulation of this physical structure, but also a rich interface for plugging in any decision making algorithm, from linear feedback control to Deep Deterministic Policy Gradient agents.

Getting Started

An easy way to get started with GEM is by playing around with the following interactive notebooks in Google Colaboratory. Most important features of GEM as well as application demonstrations are showcased, and give a kickstart for engineers in industry and academia.

There is a list of standalone example scripts as well for minimalistic demonstrations.

A basic routine is as simple as:

import gym_electric_motor as gem

if __name__ == '__main__':
    env = gem.make("Finite-CC-PMSM-v0")  # instantiate a discretely controlled PMSM
    for _ in range(10000):
        (states, references), rewards, done, _ =\ 
        	env.step(env.action_space.sample())  # pick random control actions
        if done:
            (states, references), _ = env.reset()


  • Install gym-electric-motor from PyPI (recommended):
pip install gym-electric-motor
  • Install from Github source:
git clone [email protected]:upb-lea/gym-electric-motor.git 
cd gym-electric-motor
# Then either
python install
# or alternatively
pip install -e .

Building Blocks

A GEM environment consists of following building blocks:

  • Physical structure:
    • Supply voltage
    • Converter
    • Electric motor
    • Load model
  • Utility functions for reference generation, reward calculation and visualization

Information Flow in a GEM Environment

Among various DC-motor models, the following AC motors - together with their power electronic counterparts - are available:

  • Permanent magnet synchronous motor (PMSM),
  • Synchronous reluctance motor (SynRM)
  • Squirrel cage induction motor (SCIM)
  • Doubly-fed induction motor (DFIM)

The converters can be driven by means of a duty cycle (continuous control set) or switching commands (finite control set).


A white paper for the general toolbox in the context of drive simulation and control prototyping can be found in the Journal of Open Sorce Software (JOSS). Please use the following BibTeX entry for citing it:

    doi = {10.21105/joss.02498},
    url = {},
    year = {2021},
    publisher = {The Open Journal},
    volume = {6},
    number = {58},
    pages = {2498},
    author = {Praneeth {Balakrishna} and Gerrit {Book} and Wilhelm {Kirchgässner} and Maximilian {Schenke} and Arne {Traue} and Oliver {Wallscheid}},
    title = {gym-electric-motor (GEM): A Python toolbox for the simulation of electric drive systems},
    journal = {Journal of Open Source Software}

A white paper for the utilization of this framework within reinforcement learning is available at IEEE-Xplore (preprint: Please use the following BibTeX entry for citing it:

  author={Traue, Arne and Book, Gerrit and Kirchgässner, Wilhelm and Wallscheid, Oliver},
  journal={IEEE Transactions on Neural Networks and Learning Systems}, 
  title={Toward a Reinforcement Learning Environment Toolbox for Intelligent Electric Motor Control}, 

Running Unit Tests with Pytest

To run the unit tests ''pytest'' is required. All tests can be found in the ''tests'' folder. Execute pytest in the project's root folder:

>>> pytest

or with test coverage:

>>> pytest --cov=./

All tests shall pass.

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.
Machine Learning
Reinforcement Learning
Openai Gym