Skip to content

Releases: upb-lea/gym-electric-motor

v3.0.2: Hotfix pypi installation

19 Nov 17:32
Compare
Choose a tag to compare

Fixed the packaging process to enable a successful installation of gym-electric-motor via the pypi database.

v3.0.0: Refactoring Release

18 Nov 08:36
Compare
Choose a tag to compare

The changes in this version are mainly for easier development and maintenance of gym-electric-motor. However, it should be noted that some code breaking changes have been made to the transfer of elements in the gem.make() command, so that the objects must be transferred directly here and the input of text strings is no longer possible. For more information, please have a look at the cookbook or the other updated examples.

Added

  • Support for Python 3.11, 3.12, 3.13
  • Ruff: Python linter & formatter (see DEVELOPMENT.md)
  • StateObserver: An easy way to get state values with error checking example
  • Integrated gem_controls repository into gem. classic_controllers will be removed in further version
  • Using pyproject.toml, dropping deprecated setup.py
  • Enabled Gymnasium env checker see here

Changed

  • Dropped support for Python 3.8
  • Linted and formatted all files
  • Changed max. steps in some test files to improve test speed by 30%
  • Changed the syntax from gem_controller.py to be compatible with the gymnasium interface

Fixed

  • #244 Sphinx docu build
  • #233 EESM ODE update
  • #224 DqToAbcActionProcessor uses now the correct angle to apply the dq to abc transformation
  • #223 CosSinProcessor uses now the denormalized angel for calculating the sin and cos
  • #253 #256 all examples to the current syntax

v2.0.0: Farama Gymnasium API Adoption

15 Aug 08:27
5443a51
Compare
Choose a tag to compare

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 - New Motor and physical system wrappers

15 Jun 07:15
f08d629
Compare
Choose a tag to compare

[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

Christmas Release

20 Dec 15:57
cea19d3
Compare
Choose a tag to compare

[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 Stable Release

23 Aug 14:19
Compare
Choose a tag to compare

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

ConstraintMonitor and Visualization

18 Dec 15:35
Compare
Choose a tag to compare

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 Major Fall Release

23 Oct 08:21
Compare
Choose a tag to compare

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

Induction Motor

30 Apr 14:53
Compare
Choose a tag to compare

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

24 Apr 07:45
Compare
Choose a tag to compare
  • 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.