L'ensemble de gym-moteur électrique (GEM) est une boîte à outils Python pour la simulation et le contrôle de divers moteurs électriques. Il est construit sur des environnements de gymnase de Faram et, par conséquent, peut être utilisé pour les deux, des expériences de simulation de contrôle classique et d'apprentissage par renforcement. Il vous permet de construire un train de conduite typique avec les blocs de construction habituels, c'est-à-dire des tensions d'alimentation, des convertisseurs, des moteurs électriques et des modèles de charge, et d'obtenir non seulement une simulation en boucle fermée de cette structure physique, mais aussi une riche interface pour brancher tout algorithme de prise de décision, du contrôle de rétroaction linéaire à des agents gradient de politique déterministe profonds. De plus, un cadre automatisé pour les structures de contrôle classique basé sur des contrôleurs PI est fourni.
Un moyen facile de commencer avec GEM est de jouer avec les ordinateurs portables interactifs suivants dans Google Colaboratoratory. Les caractéristiques les plus importantes du GEM ainsi que des démonstrations d'applications sont présentées et donnent un coup d'envoi pour les ingénieurs de l'industrie et du monde universitaire.
Il existe également une liste d'exemples autonomes pour des démonstrations minimalistes.
Une routine de base est aussi simple que:
import gym_electric_motor as gem
if __name__ == '__main__' :
env = gem . make ( "Finite-CC-PMSM-v0" ) # instantiate a discretely controlled PMSM
env . reset ()
for _ in range ( 10000 ):
( states , references ), rewards , done , _ =
env . step ( env . action_space . sample ()) # pick random control actions
if done :
( states , references ), _ = env . reset ()
env . close () pip install gym-electric-motor
git clone [email protected]:upb-lea/gym-electric-motor.git
cd gym-electric-motor
# Then either
python setup.py install
# or alternatively
pip install -e .
Un environnement GEM consiste à suivre les éléments constitutifs:

Parmi divers modèles DC-Motor, les moteurs AC suivants - ainsi que leurs homologues électriques électroniques - sont disponibles:
Les convertisseurs peuvent être entraînés au moyen d'un cycle de service (ensemble de contrôle continu) ou de commandes de commutation (ensemble de contrôle fini).
Un livre blanc pour la boîte à outils généraux dans le contexte de la simulation de lecteur et du prototypage de contrôle peut être trouvé dans le Journal of Open Sorce Software (Joss). Veuillez utiliser l'entrée Bibtex suivante pour le citer:
@article{Balakrishna2021,
doi = {10.21105/joss.02498},
url = {https://doi.org/10.21105/joss.02498},
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}
}
Un livre blanc pour l'utilisation de ce cadre dans l'apprentissage par renforcement est disponible sur IEEE-Xplore (préimprimée: arXiv.org/abs/1910.09434). Veuillez utiliser l'entrée Bibtex suivante pour le citer:
@article{9241851,
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},
year={2022},
volume={33},
number={3},
pages={919-928},
doi={10.1109/TNNLS.2020.3029573}}
Un livre blanc pour les approches de contrôle classique du contrôle de la gym-électrique est disponible chez IEEE-Xplore. Veuillez utiliser l'entrée Bibtex suivante pour le citer:
@INPROCEEDINGS{10239044,
author={Book, Felix and Traue, Arne and Schenke, Maximilian and Haucke-Korber, Barnabas and Wallscheid, Oliver},
booktitle={2023 IEEE International Electric Machines & Drives Conference (IEMDC)},
title={Gym-Electric-Motor (GEM) Control: An Automated Open-Source Controller Design Suite for Drives},
year={2023},
volume={},
number={},
pages={1-7},
doi={10.1109/IEMDC55163.2023.10239044}}
Pour exécuter l'unité, les tests «Pytest» sont requis. Tous les tests peuvent être trouvés dans le dossier «Tests». Exécutez PyTest dans le dossier racine du projet:
>>> pytest
ou avec couverture de test:
>>> pytest --cov=./
Tous les tests doivent passer.