ジム電気モーター(GEM)パッケージは、さまざまな電気モーターのシミュレーションと制御のためのPythonツールボックスです。 Faram Gymnasium環境上に構築されているため、古典的な制御シミュレーションと補強学習実験の両方に使用できます。通常のビルディングブロック、IE、供給電圧、コンバーター、電気モーター、負荷モデルを備えた典型的なドライブトレインを構築し、この物理的構造の閉ループシミュレーションだけでなく、線形フィードバック制御から深い決定的なポリシー勾配エージェントまでの意思決定アルゴリズムをプラグインするための豊富なインターフェイスを取得することができます。さらに、PIコントローラーに基づく古典的な制御構造の自動フレームワークが提供されます。
GEMを始める簡単な方法は、Google Colaboratoryで次のインタラクティブなノートブックをいじくり回すことです。 GEMの最も重要な特徴とアプリケーションのデモンストレーションが紹介され、業界と学界のエンジニアにキックスタートを提供します。
最小限のデモンストレーション用のスタンドアロンの例のスクリプトのリストもあります。
基本的なルーチンは次のように簡単です。
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 .
宝石環境は、次のビルディングブロックで構成されています。

さまざまなDCモーターモデルの中で、次のACモーターとその電子電子カウンターパートとともに利用可能です。
コンバーターは、デューティサイクル(連続制御セット)またはスイッチングコマンド(有限制御セット)によって駆動できます。
ドライブシミュレーションと制御プロトタイピングのコンテキストでの一般的なツールボックスのためのホワイトペーパーは、Journal of Open Sorceソフトウェア(JOSS)に記載されています。それを引用するには、次のBibtexエントリを使用してください。
@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}
}
強化学習内でこのフレームワークを利用するためのホワイトペーパーは、IEEE-XPlore(preprint:arxiv.org/abs/1910.09434)で入手できます。それを引用するには、次のBibtexエントリを使用してください。
@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}}
ジム電気モーター制御の古典的な制御アプローチのためのホワイトペーパーは、IEEE-XPloreで入手できます。それを引用するには、次のBibtexエントリを使用してください。
@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}}
ユニットテストを実行するには、「pytest」が必要です。すべてのテストは、「テスト」フォルダーに記載されています。プロジェクトのルートフォルダーでpytestを実行します。
>>> pytest
またはテストカバレッジを使用して:
>>> pytest --cov=./
すべてのテストは渡されます。