Motor Drive Simulator in Python
Project description
motulator: Motor Drive Simulator in Python
Introduction
This open-source software includes simulation models for an induction motor, a synchronous reluctance motor, and a permanent-magnet synchronous motor. The motor 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. Simple 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.
Usage
The following example shows how to create a continuous-time system model, a discrete-time controller, and a simulation object:
import motulator as mt
# Continuous-time model for the drive system
motor = mt.InductionMotor() # Motor model
mech = mt.Mechanics() # Mechanics model
conv = mt.Inverter() # Converter model
mdl = mt.InductionMotorDrive(motor, mech, conv)
# Discrete-time controller
pars = mt.InductionMotorVectorCtrlPars() # Dataclass of control parameters
ctrl = mt.InductionMotorVectorCtrl(pars) # Sensorless controller
# Create a simulation object, simulate, and plot example figures
sim = mt.Simulation(mdl, ctrl)
sim.simulate()
mt.plot(sim)
This example applies the default settings. The drive system, controller, reference sequences etc. are easy to configure. The example scripts and Jupyter notebooks can be downloaded here:
https://aalto-electric-drives.github.io/motulator/auto_examples/index.html
New system models and controllers can be developed using the existing ones as templates.
Contributing
If you'd like to help us develop motulator, please have a look at these guidelines first.
Contributors
Thanks go to these wonderful people:
Lauri Tiitinen 💻 🤔 💡 🧑🏫 |
HannuHar 💻 🐛 |
Marko Hinkkanen 💻 🤔 💡 |
silundbe 💻 💡 |
JoonaKukkonen 💻 🚇 |
jarno-k 🤔 |
angelicaiaderosa 💻 💡 |
Luca Peretti 🤔 📣 |
GianmarioPellegrinoPolito 🔣 |
Simone Ferrari 🔣 |
Jialed0303 🤔 |
This project follows the all-contributors specification. Contributions of any kind welcome!
Acknowledgement
This project has been sponsored by ABB Oy and by the Academy 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file motulator-0.1.3.tar.gz
.
File metadata
- Download URL: motulator-0.1.3.tar.gz
- Upload date:
- Size: 41.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 394f8fcaae241a44b10808094fc4ddbdf46a35e127f63f42d3de66d8631bc87d |
|
MD5 | e6cb0e8d3580bd8023082ef7368bfe4e |
|
BLAKE2b-256 | e1e115cfc0ea7a99a4073f4e4a921a5d98dfd7ce554a937683ecc2b8a05cdc61 |
File details
Details for the file motulator-0.1.3-py3-none-any.whl
.
File metadata
- Download URL: motulator-0.1.3-py3-none-any.whl
- Upload date:
- Size: 55.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee684935a46d16b0d69326b853145457ff394d893a8bf37effa45432d80bf1ea |
|
MD5 | 81b4da457defb72bfed8deff1c25aec0 |
|
BLAKE2b-256 | f6f584766f1a13509d68c28c822476a586d8ede78a085a4e73e9c7af633f583c |