Skip to main content

Motor Drive Simulator in Python

Project description

motulator: Motor Drive Simulator in Python

Build Status License PyPI version shields.io All Contributors

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
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

🤔

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

motulator-0.1.3.tar.gz (41.3 kB view details)

Uploaded Source

Built Distribution

motulator-0.1.3-py3-none-any.whl (55.9 kB view details)

Uploaded Python 3

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

Hashes for motulator-0.1.3.tar.gz
Algorithm Hash digest
SHA256 394f8fcaae241a44b10808094fc4ddbdf46a35e127f63f42d3de66d8631bc87d
MD5 e6cb0e8d3580bd8023082ef7368bfe4e
BLAKE2b-256 e1e115cfc0ea7a99a4073f4e4a921a5d98dfd7ce554a937683ecc2b8a05cdc61

See more details on using hashes here.

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

Hashes for motulator-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ee684935a46d16b0d69326b853145457ff394d893a8bf37effa45432d80bf1ea
MD5 81b4da457defb72bfed8deff1c25aec0
BLAKE2b-256 f6f584766f1a13509d68c28c822476a586d8ede78a085a4e73e9c7af633f583c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page