Gym Electric Motor Versions Save

Gym Electric Motor (GEM): An OpenAI Gym Environment for Electric Motors

v2.0.0

9 months ago

With this release the Farama Gymnasium API (gymnasium v0.29.0) is adopted in this repo. That means there are several breaking changes, which are enlisted here: Migration Guide

This change helps GEM to stay up to date and continue leveraging researchers and stakeholders from industry and academia to conduct data-driven control design for electric motors.

Moreover, Python 3.7 support is dropped in favor of Python 3.8 - 3.10.

v1.1.0

1 year ago

[1.1.0] - 2022-06-15

Added

  • Physical System Wrappers as a new feature to process actions and states directly in the environment. A decent introduction can be found in the GEM cookbook (Paragraph 2.8)
  • The externally excited synchronous motor (EESM) has been added to the GEM-toolbox. Instantiate it with the following keys: "{Cont|Finite}-{CC|TC|SC}-EESM-v0"

Changed

  • The MotorDashboard has received a "initialize()" method to initialize the plots below a specific cell.
  • The MotorDashboard is now compatible with the "%matplotlib widget" backend. Therefore, GEM is now compatible with the integrated jupiter notebook execution of Visual Studio Code

Fixed

  • If multiple converters were used and the time constant tau was changed from its default values, it was possible that the values of tau were different in each converter

v1.0.1

2 years ago

[1.0.1] - 2021-12-20

Added

  • Classic field oriented controllers for induction motors
  • Uniform initialization of the WienerProcessReferenceGenerator

Changed

  • Reduced the dynamics of the reference signals in several speed control environments
  • Changed the default ode-solver of all environments to the ScipyOdeSolver

Fixed

  • gym version compatibility for all versions >= 0.21.0
  • Docs: m2r dependency to m2r2. Enables compatibility with latest sphinx versions.
  • matplotlib compatibility with versions >= 3.5.0
  • Bugfix in the stable_baselines3_dqn_disc_pmsm_example.ipynb example notebook
  • Bugfix in the jacobian of the ConstantSpeedLoad

v1.0.0

2 years ago

Added

  • classic controllers in examples with complete makeover
  • Possibility to seed all random number generators at once with a unified API - Reproduciblity improved.

Changed

Environment IDs

  • The environments have changed the IDs for their creation.
  • Furthermore, environments specialized for torque (TC), current (CC) and speed (SC) control tasks have been introduced.
  • The ids are now structured as follows: {Cont/Finite}-{CC/TC/SC}-motorType-v0
  • Details can be looked up on the code documentation pages.

gem.make() parameters

The arbitrary environment creation keyword arguments that were passed to every subcomponent of the environment have been removed. Instead, there is a fixed set of keyword parameters for every environment described in the API-documentation of every environment.

MPC example

  • Visualization improvements
  • fix: State variables were updated

Miscellaneous

  • Documentation was updated
  • Changed all DC Envs to FourQuadrantConverters per default
  • Adjusted the dynamics of the speed references in DC environments
  • Adjusted the plots for better visibility of single points

Removed

  • simple_controllers.py in examples
  • Tensorforce tutorial due to deprecation

v0.3.1

3 years ago

This minor release comes with several improvements on

  • the constraint monitor
  • the visualization functionality

Moreover, this is the first release to be tracked by ZENODO.

v0.3.0

3 years ago

This is a major release comprising 6 months of collaborative work. Among plenty of bug fixes, several new features were added:

  • Tutorial notebooks were added that can be viewed and edited on Colab. These demonstrate use cases with the most prevalent reinforcement-learning-toolboxes
  • Several example scripts were added
  • An external speed load was added
  • AC voltage supplies (1-phase and 3-phase) were added
  • NoConverter was added (to throughput voltage supplies directly to the motor)
  • The DC-link can be modeled as a more physically realistic RC element now
  • The constraint monitor module was introduced
  • Callbacks were introduced to leverage custom hooks on certain places in the environment flow
  • The visualization was majorly refactored (dropping the PyQT5 dependence, adding more insightful plotting variants)
  • Default motor parameters are more realistic now

v0.2.0

4 years ago

Release Notes:

  • add the squirrel cage induction motor and the doubly fed induction motor as new supported motor systems

  • generalize the DoubleConverter classes to MultiConverter classes for more flexibility with future feature implementations

v0.1.0

4 years ago
  • The calculation of Jacobian matrices was added to the motor and load models to speed up the ODE-solvers. It can be turned on/off by setting the "calc_jacobian" parameter in the initialization parameters of an evironment / SCML-System.
  • The environment-ids have changed to a CamelCase notation. Please use this notation. The old ids are still available, but will be removed in future releases.