EMDtool is a continuously-developed Matlab toolbox for the design of electric motors using finite element analysis (FEA).


Object oriented approach, with extendable base classes for e.g.

  • Geometry creation
  • Radial and axial flux motor models
  • Circuits
  • FEA problems

Click here for very partial documentation.

Test link goes here.


What you see here below probably isn’t up to date. However, at the time of writing, the situation is as follows:

Existing features:

  • Time-static and transient analysis in 2D, with motion.
  • Class-based geometry definition
  • Flexible definition of circuits, including
    • Polyphase circuits with current density, net current, or voltage supply
    • Large solid conductors like rotor bars or solid shafts
    • Axially-segmented solid conductors like permanent magnets
  • Simple post-processing of quantities of interest, including
    • Torque, current, and voltage waveforms
    • Visualization of flux and eddy-current densities
    • Losses
  • Synchronous machine analysis with current supply (sinusoidal & PWM):
    • Efficiency maps
    • Equivalent circuits
    • Automatic operation point iteration (current d- and q-axis components for reaching desired speed, torque point)

Features under development; working but not pretty:

  • 3D analysis, static and transient
    • Only linear so far, nonlinear next
    • Rotation/motion almost working
  • Thermal analysis
  • Rotor centrifugal stress analysis
  • Different modulators
    • SVPWM and SEH at the moment

Planned features:

  • Synchronous machine analysis with voltage supply (sinusoidal or modulated)


Less than Ansys. Less than, or roughly on par with, rent money in many parts of the world, too.


Everything computed with EMDtool. Some 3D visualizations made with Paraview.