Пакет гим-электрического мотора (GEM) представляет собой набор инструментов Python для моделирования и управления различными электродвигателями. Он построен в средах гимназии фарама и, следовательно, может использоваться как для классического контроля, так и для экспериментов по обучению. Это позволяет вам построить типичный приводной поезд с обычными строительными блоками, т.е. напряжения, преобразователи, электродвигатели и модели нагрузки, и получить не только моделирование этой физической структуры, но и богатый градиент-интерфейс для подключения любого алгоритма принятия решений, от линейного управления обратной связью до глубоких детерминированных агентов градиента политики. Кроме того, предоставляется автоматизированная структура для классических структур управления на основе контроллеров PI.
Легкий способ начать работу с GEM - играть со следующими интерактивными ноутбуками в Google Colaboratory. Наиболее важные функции GEM, а также демонстрации приложений демонстрируются, и дают Kickstart для инженеров в промышленности и научных кругах.
Существует список отдельных примеров сценариев, а также для минималистичных демонстраций.
Основная рутина так же проста, как:
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 -мотор, доступны следующие двигатели переменного тока - вместе с их электронными аналогами - доступны:
Преобразователи могут быть приведены с помощью рабочего цикла (непрерывный набор управления) или команды переключения (конечный набор управления).
Белый документ для общего набора инструментов в контексте моделирования и прототипирования управления приводом можно найти в журнале программного обеспечения 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=./
Все испытания проходят.