Aalto-Electric-Drives / motulator

Motor Drive and Grid Converter Simulator in Python
https://aalto-electric-drives.github.io/motulator/
MIT License
139 stars 53 forks source link
control-systems converters electric-drives electric-machines electrical-engineering grid-connected induction-motors inverters power-electronics python simulations synchronous-motors

motulator: Motor Drive and Grid Converter Simulator in Python

DOI Build Status License PyPI version shields.io All Contributors

Introduction

This open-source software includes simulation models and controllers for electric machine drives and grid converter systems. The machine models include an induction machine, a synchronous reluctance machine, and a permanent-magnet synchronous machine. Various subsystem models are provided for modeling grid converter systems, such as an LCL filter connected to an inductive-resistive grid.

The system models are simulated in the continuous-time domain while the control algorithms run in discrete time. The default solver is the explicit Runge-Kutta method of order 5(4) from scipy.integrate.solve_ivp. Various control algorithms are provided as examples. The documentation is available here:

https://aalto-electric-drives.github.io/motulator/

Installation

This software can be installed using pip:

pip install motulator

Alternatively, the repository can be cloned:

https://aalto-electric-drives.github.io/motulator/installation.html

Usage

The system models, controllers, reference sequences etc. are easy to configure. As a starting point, example scripts and Jupyter notebooks can be downloaded here:

https://aalto-electric-drives.github.io/motulator/drive_examples/index.html

https://aalto-electric-drives.github.io/motulator/grid_examples/index.html

New system models and controllers can be developed using the existing ones as templates.

Contributing

If you would like to help us develop motulator, please have a look at these guidelines first.

Contributors

Thanks go to these wonderful people:

Lauri Tiitinen
Lauri Tiitinen

πŸ’» πŸ€” πŸ’‘ πŸ§‘β€πŸ«
HannuHar
HannuHar

πŸ’» πŸ›
Marko Hinkkanen
Marko Hinkkanen

πŸ’» πŸ€” πŸ’‘ πŸ§‘β€πŸ«
silundbe
silundbe

πŸ’» πŸ’‘
JoonaKukkonen
JoonaKukkonen

πŸ’» πŸš‡
jarno-k
jarno-k

πŸ€” πŸ‘€ πŸ§‘β€πŸ«
angelicaiaderosa
angelicaiaderosa

πŸ’» πŸ’‘
Luca Peretti
Luca Peretti

πŸ€” πŸ“£
GianmarioPellegrinoPolito
GianmarioPellegrinoPolito

πŸ”£
Simone Ferrari
Simone Ferrari

πŸ”£
Jialed0303
Jialed0303

πŸ€”
murgui
murgui

πŸ›
Nithin Valiyaveettil Sadanandan
Nithin Valiyaveettil Sadanandan

πŸ›
saarela
saarela

πŸ›
Ushnish
Ushnish

πŸ›
Francesco-Lelli
Francesco-Lelli

πŸ’» πŸ’‘ πŸ€”
Mikko SarΓ©n
Mikko SarΓ©n

πŸ’» πŸ’‘ πŸ€”
Juho MÀÀttÀ
Juho MÀÀttÀ

πŸ’» πŸ’‘ πŸ€”
rayanmour
rayanmour

πŸ’» πŸ’‘ πŸ€” πŸ‘€ πŸ§‘β€πŸ«
Cosimo Bassi
Cosimo Bassi

πŸš‡

This project follows the all-contributors specification. Contributions of any kind welcome!

Acknowledgement

This project has been sponsored by ABB Oy and by the Research Council of Finland Centre of Excellence in High-Speed Electromechanical Energy Conversion Systems. The example control methods included in this repository are based on published algorithms (available in textbooks and scientific articles). They do not present any proprietary control software.