Das GEM-Paket (Fitnesselektrikummotor) ist eine Python-Toolbox für die Simulation und Steuerung verschiedener Elektromotoren. Es basiert auf Faram Gymnasium -Umgebungen und kann daher sowohl für die klassischen Kontrollsimulation als auch für die Verstärkungsexperimente verwendet werden. Sie können einen typischen Antriebsstrang mit den üblichen Bausteinen, dh, Versorgungsspannungen, Wandlern, Elektromotoren und Lastmodellen erstellen und nicht nur eine Simulation dieser physikalischen Struktur mit geschlossener Regelkreis erhalten, sondern auch eine reichhaltige Schnittstelle für das Einfügen von Entscheidungsalgorithmus, von linearer Feedback-Kontrolle, bis hin zur tiefen Deterministischen Richtliniengradienten-Agenten. Darüber hinaus wird ein automatisiertes Framework für klassische Steuerungsstrukturen auf der Grundlage von PI -Controllern bereitgestellt.
Eine einfache Möglichkeit, mit GEM zu beginnen, besteht darin, mit den folgenden interaktiven Notebooks in Google Colaboratory herumzuspielen. Die wichtigsten Merkmale von GEM sowie Anwendungsdemonstrationen werden vorgestellt und geben einen Kickstart für Ingenieure in Industrie und Wissenschaft.
Es gibt eine Liste von eigenständigen Beispielskripten für minimalistische Demonstrationen.
Eine grundlegende Routine ist so einfach wie:
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 .
Eine Gem -Umgebung besteht aus den folgenden Bausteinen:
Unter verschiedenen DC -Motor -Modellen sind die folgenden Wechselstrommotoren - zusammen mit ihren elektronischen Kollegen der Stromversorgung - verfügbar:
Die Konverter können mittels eines Arbeitszyklus (kontinuierlicher Steuerungssatz) oder Schaltbefehle (Finite -Steuer -Set) angesteuert werden.
Ein Weißbuch für die allgemeine Toolbox im Kontext von Antriebssimulation und Steuerungsprototyping finden Sie im Journal of Open Sorce Software (Joss). Bitte verwenden Sie den folgenden Bibtex -Eintrag, um es zu zitieren:
@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}
}
Ein Weißbuch zur Verwendung dieses Rahmens innerhalb des Verstärkungslernens finden Sie unter IEEE-XPLORE (Preprint: arxiv.org/abs/1910.09434). Bitte verwenden Sie den folgenden Bibtex -Eintrag, um es zu zitieren:
@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}}
Ein weißes Papier für die klassischen Kontrollansätze der im Fitnessstudioelektrikum motorischen Kontrolle ist unter IEEE-XPLORE erhältlich. Bitte verwenden Sie den folgenden Bibtex -Eintrag, um es zu zitieren:
@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}}
Um die Unit -Tests auszuführen, ist "PyTest" erforderlich. Alle Tests finden Sie im Ordner "Tests". Führen Sie PyTest im Stammordner des Projekts aus:
>>> pytest
oder mit Testabdeckung:
>>> pytest --cov=./
Alle Tests müssen bestehen.