PMSM Efficiency Map Calculator
Calculate a minimum-loss PMSM efficiency map from public nonlinear flux and loss data. Explore current and voltage limits, MTPA/MTPV guides, scaling and optional PWM losses.
A PMSM efficiency map shows how efficiently a permanent magnet synchronous motor converts electrical input into shaft power at different speeds and torques. EV and drive engineers use these maps to compare operating regions, assess voltage limits and estimate energy use. Students can use this calculator to connect the rotating d–q model with the familiar torque–speed envelope.
This motor efficiency map calculator starts from public nonlinear finite element flux and loss maps in the SyR-e project. The supplied traction motor has three pole pairs, a 400 V reference DC link and an 800 A reference peak phase current. Its magnetic maps describe magnets at 80 °C. It is a specific source motor; the Toyota Prius is a separate measured benchmark discussed below.
Set a shaft torque and speed, then enter the available DC-link voltage, fundamental peak phase-current limit and winding temperature. The voltage utilization factor reserves part of the ideal SVPWM voltage ceiling. Read the efficiency, output power and losses together: a high percentage can still mean several kilowatts of heat. An infeasible selection produces a message explaining which operating demands or drive limits to change.
The colored map displays motor efficiency, with zero-power axes and infeasible operating cells left blank. Its white boundary shows the estimated maximum shaft torque, with gaps where even zero torque is infeasible. Each map point minimizes total modeled motor loss within both drive limits. The other plots show the selected torque’s speed sweep, loss components and the magnetizing-current paths for maximum torque per ampere (MTPA) and maximum torque per voltage (MTPV). Press play on electrical angle to rotate the d–q frame, current and flux vectors without rebuilding the map.
Stack-length and turns ratios let you explore a related motor using axial scaling and rewinding. These preserve the underlying magnetic loading at corresponding ampere-turns. They do not establish a new continuous thermal rating. Winding temperature changes resistance; it does not update the magnet-temperature-dependent flux maps.
The default is sinusoidal excitation. For PWM, supply additional phase-current RMS ripple and aggregate harmonic iron/magnet loss from measurement or a suitable drive simulation. The illustrative PWM defaults are assumptions. Their increments stay constant across the displayed map, so this option is a sensitivity estimate rather than a switching-frequency prediction.
This PMSM efficiency map calculation excludes inverter, DC converter, battery and gearbox losses, regeneration, demagnetization and thermal transients. Flux and loss data are bilinearly interpolated, current coordinates are refined continuously, and the colored cells are samples. ORNL measured a 96% peak motor efficiency for the 2010 Prius at a 650 V link; that result is useful context, but is not used to tune this different motor. Validate scaled designs and calibrated PWM cases against motor-specific FEA or test data.
How it is calculated
The motor-specific data are from SyR-e syreDefaultMotor.mat, commit 24492399a52b3450a40885285cc7d2c4d15b5276, motorModel.FluxMap_dq and IronPMLossMap_dq. The original 255×255 surfaces are bilinearly resampled to 33×33 reference-current nodes from −1000 to 0 A on d and 0 to 1000 A on q. The table source records the transformations and attribution.
For each requested shaft torque, add viscous drag torque and construct a constant-developed-torque locus. The cross-flux relation is . For an arbitrary d current, bilinearly interpolate between neighboring d-current columns. Locate the q-current cell by bisection, then solve its local quadratic exactly. This preserves the requested cross-flux torque identity while allowing d current to vary continuously.
The fundamental loss-current branch is parallel to rotational EMF: . Add it to magnetizing current before computing copper loss and terminal voltage. At standstill, mapped frequency-dependent losses and this branch are zero. Use , , , and . Angular equations treat radians as dimensionless, explicitly normalized by the one-radian step.
The map and operating point minimize total modeled motor loss, following Ferrari Section IV-A, step 10(b). The objective includes fundamental copper, iron, PM, supplied PWM and mechanical loss. It is not a minimum-terminal-current control map. Current and voltage are simultaneous feasibility constraints.
The d-current domain is restricted by the imposed current limit. A 33-seed bracketing scan finds all detected local minima of the constrained objective; continuous golden-section searches refine their neighboring intervals and retain the best feasible point. Infeasible candidates are ranked by the larger normalized current/voltage violation, so a narrow feasible interval can be found even when none of its initial seeds is feasible. The selected point uses 26 refinements; map cells use 14. Regression and doubled-density convergence checks cover both paths.
The separate MTPA guide minimizes magnetizing current and the MTPV guide minimizes flux magnitude at each torque within the magnetizing-current circle. They ignore resistance and losses in those theoretical guide objectives; the loss-optimal selected point need not lie on MTPA. The paths are continuously refined, not snapped to d-current grid nodes.
Hysteresis uses the dataset exponent 1.05855; iron eddy and PM losses use the squared speed ratio to the 4000 rpm source loss map. These implement the map manipulation approach of Ferrari et al., DOI 10.1109/TIA.2022.3221381, equations 1–7 and 14–15; their full mesh-level iGSE/PWM procedure is not reconstructed here.
Axial/rewinding scaling follows the public SyR-e MMM_eval_mapScale.m and MMM_scale.m: reference current is multiplied by the turns ratio, flux by length times turns, torque and iron/PM loss by length, and resistance by turns squared times the active/end-turn length weighting. Reference active and end lengths are 134 and 126.7903 mm. Copper resistance uses with Celsius temperatures.
PWM adds and the supplied aggregate harmonic iron/PM increment to the power balance. Harmonic currents do not enter the fundamental dq phasor or its limits. Finally, ; standstill efficiency is reported as zero. The 25×17 efficiency map writes NaN gaps for infeasible cells and for the zero-speed column and zero-shaft-torque row. These zero-output-power axes are not assigned a color. Colored cells are clipped geometrically to the piecewise-linear white torque envelope, preventing cell corners from protruding above it; an envelope gap leaves the corresponding interval blank. The torque envelope is computed from unmasked feasibility samples, so valid standstill and zero-torque limits remain available. The display torque span adapts to the current limit, using 0.65 N·m/A as a plotting margin above the largest torque/current ratio in the reference grid. Six torque bisections, each using a continuous current/voltage feasibility search, refine the boundary to one sixty-fourth of a torque cell (about 0.51 N·m at the defaults). Zero torque is tested explicitly. A speed with no feasible torque is NaN, leaving a gap in the colored-map boundary and native envelope chart; a feasible zero-torque endpoint remains zero.
The color legend spans 60–98% for detail in the useful operating region; lower efficiencies use the lowest shade. The 80, 90, 95 and 97% contours have distinct colors and line patterns, identified by the matching legend. Refinement convergence checks compare against doubled seed density and longer searches; data interpolation remains limited by the supplied FEA table.
The implementation caches source-grid columns, reuses speed-independent torque loci whenever shaft-torque samples repeat, and carries only the best d-current coordinate through each golden-section refinement. The same electrical model evaluates the search objective directly; full terminal power tables are assembled once for the selected coordinates. The envelope reuses grid-proven feasibility and searches zero torque only in otherwise empty speed columns. With zero mechanical drag, rows beyond the MTPA current limit are excluded before the map search: in positive motoring, the core-loss current increases terminal-current magnitude above the magnetizing-current magnitude. All 33 search seeds and the existing 14/18/24/26 refinements are retained. These changes preserve the objective, constraints and 25×17 sampling. Regression trials against the previous solver gave identical map feasibility, efficiencies, envelopes and selected-torque sweeps at the defaults and at low-current, low-voltage, scaled-motor and PWM/drag cases.
Assumptions
- Balanced three-phase steady-state motoring; dq currents and voltages are phase peaks. RMS current is peak divided by .
- Public source motor only, including saturation and cross coupling already present in its FEA maps. Magnet temperature stays at 80 °C; no PM temperature extrapolation.
- The source's tiny negative interpolated PM losses are clipped to zero; q-axis flux is set to zero on the symmetry line . These are explicitly recorded in the data table.
- Stack scaling keeps cross-section and materials fixed. Rewinding keeps slot copper area fixed. End-turn resistance is retained. Radial scaling and changes of pole count are outside this model.
- The optional mechanical loss is viscous drag: its torque rises linearly with speed from the supplied value at 4000 rpm.
- PWM ripple RMS and incremental iron/PM loss are supplied assumptions or calibration values for the selected drive condition, held constant over the map. They do not include inverter switching loss or frequency-dependent winding AC resistance.
- The source flux/loss table has 31.25 A reference current spacing. Bilinear interpolation and continuous constrained searches are used between nodes; operating points are not limited to those nodes. The torque axis adapts to the drive current limit. Contours interpolate between the feasible map samples.
Where it applies
Use for engineering comparison and education over 0–18100 rpm, positive shaft torque and the supplied current-map domain. The product of peak-current limit and turns ratio must not exceed 1000 A. User ranges limit axial scaling to 0.5–1.5 and turns scaling to 0.7–1.3; these exploration ranges are not validated manufacturing or thermal bounds.
Efficiency belongs to the motor terminals and shaft. Inverter, battery, boost converter and transmission losses are excluded. There is no thermal-duration prediction, continuous-rating guarantee, regenerative quadrant, demagnetization test or rotor-stress assessment.
The source dataset is a different machine from the 2010 Prius. ORNL/TM-2010/253, attached file page 71 (printed 62), reports a 96% peak motor efficiency at 650 V, between about 4500 and 6500 rpm; page 72 separates motor and inverter measurements and describes short-duration high-power capability. Use it as measured context, not as a numerical validation of this source motor.
Reference cases use stored SyR-e MTPA results, directly extracted from the public MAT file with provenance and SHA256 in the attached one-page source. Small current tolerances allow for bilinear source-data interpolation, averaged FEA torque versus cross-flux torque, the added loss branch, and low-speed loss minimization instead of ideal magnetizing-current MTPA. They check the transfer against the author's independent stored calculation; they are not a new experimental validation.
Stipetić et al. 2018 is cited by DOI for the scalable saturated-model background. Its full text was not accessible during this build. Implemented scaling is limited to the separately inspectable public SyR-e axial/rewinding equations. For production decisions use motor-specific measurements or FEA, including PWM waveforms where needed. Blank plot regions identify infeasible operating points or zero shaft output power; standstill torque capability remains in the separate envelope.
The operating point and displayed map use minimum-total-loss control. This matches the stated objective of Ferrari Section IV-A, step 10(b), rather than the previous minimum-terminal-current selector. Convergence checks compare 33/65 seed scans and 14/26/34 continuous refinements; matching feasibility and specified efficiency/current/voltage tolerances are required. These numerical checks do not replace experimental validation of the motor maps.
References
- Ferrari, Ragazzo, Dilevrano & Pellegrino. Flux and Loss Map Based Evaluation of the Efficiency Map of Synchronous Machines. IEEE TIA 59(2), 1500–1509 (online 2022; issue 2023). DOI: https://doi.org/10.1109/TIA.2022.3221381 . Accepted manuscript: https://iris.polito.it/handle/11583/2972970 .
- SyR-e contributors. syreDefaultMotor.mat, public nonlinear FEA flux, loss and stored control-trajectory data. Commit 24492399a52b3450a40885285cc7d2c4d15b5276. https://github.com/SyR-e/syre_public/blob/24492399a52b3450a40885285cc7d2c4d15b5276/motorExamples/syreDefaultMotor.mat . Apache-2.0: https://www.apache.org/licenses/LICENSE-2.0 . Copyright SyR-e contributors; calculator data are resampled and lightly symmetry-corrected as stated.
- SyR-e MMM_eval_mapScale.m and MMM_scale.m, public axial length, turns, resistance and loss scaling equations. https://github.com/SyR-e/syre_public/blob/24492399a52b3450a40885285cc7d2c4d15b5276/mfiles/syreMMM/MMM_eval_mapScale.m ; https://github.com/SyR-e/syre_public/blob/24492399a52b3450a40885285cc7d2c4d15b5276/mfiles/syreMMM/MMM_scale.m .
- Burress et al. Evaluation of the 2010 Toyota Prius Hybrid Synergy Drive System. ORNL/TM-2010/253, March 2011. DOI: https://doi.org/10.2172/1007833 . Open report: https://digital.library.unt.edu/ark:/67531/metadc836432/ . See attached pages 71–72, Fig. 3.11.
- Stipetić, Goss, Žarko & Popescu. Calculation of Efficiency Maps Using a Scalable Saturated Model of Synchronous Permanent Magnet Machines. IEEE TIA 54(5), 4257–4267 (2018). DOI: https://doi.org/10.1109/TIA.2018.2837672 . DOI citation only; full text not obtained.
- SyR-e direct MAT data extract attached as source s7, page 1: stored MTPA indices 16 and 26 and baseline motor parameters, without recalculation. Original MAT SHA256: 56b417b8c9dd127f183e7371de8deb27aa570a470c6611b7cca7895e489ee953.
Inputs
| Input | Symbol | Unit | Default |
|---|---|---|---|
| Rotor speed | n_op | rpm | 5000 |
| Shaft torque demand | T_op | N*m | 200 |
| Fundamental peak phase-current limit Peak amplitude, not phase RMS. Original map covers up to 1000 A of reference ampere-turns. | I_lim | A | 800 |
| DC-link voltage | V_dc | V | 400 |
| SVPWM voltage utilization | mod_util | 0.95 | |
| Winding temperature Changes copper resistance only. The flux/loss maps retain their 80 °C magnet temperature. | theta_C | degC | 120 |
| Maximum map speed | n_top | rpm | 18000 |
| Stack-length ratio Axial scaling only; reference stack 134 mm. Magnet temperature stays fixed at 80 °C. | k_L | 1 | |
| Series-turns ratio Rewinding at fixed slot copper area. Current times this ratio must stay within the source grid. | k_N | 1 | |
| Viscous drag torque at 4000 rpm Optional assumed viscous drag; zero preserves the electromagnetic boundary of the source dataset. | T_drag | N*m | 0 |
| Motor supply | supply | Sinusoidal baseline | |
| Additional PWM phase-current RMS User-supplied additional per-phase RMS ripple, held constant over the map. Default 10 A is an illustrative assumption, not measured data. | I_ripple | A | 10 |
| Additional PWM iron and PM loss User-supplied aggregate motor harmonic iron/PM increment at this bus and switching condition; held constant over the map. This excludes inverter loss. | P_pwm | W | 100 |
| Electrical field angle Press play to rotate the d–q frame and the current and flux vectors. Electrical angle is pole-pairs times mechanical angle. | theta_e | deg | 35 |
Results
With the default inputs above, the calc gives:
| Result | Value |
|---|---|
| Motor efficiency | 96.3 % |
| Shaft output power | 104.7 kW |
| Total motor loss | 4.028 kW |
| Fundamental phase current, peak | 354.7 A |
| Fundamental phase voltage, peak | 219.4 V |
| Fundamental copper loss | 3,150 W |
| Iron and magnet loss | 877 W |
| Additional motor PWM loss | 0 W |
Checked against sources
Each case below was calculated by this calc and agrees with the value from its source (within the tolerance where one is shown).
SyR-e stored MTPA point: 267.13 N·m
Source: Independent stored author result: SyR-e commit 24492399a52b3450a40885285cc7d2c4d15b5276, syreDefaultMotor.mat, motorModel.controlTrajectories.MTPA, MATLAB index 16. Current magnitude 453.759222 A is the Euclidean norm of the stored dq components. Evaluated here at 100 rpm to avoid voltage limiting. Tolerances cover the 31.25 A d-grid, averaged FEA vs cross-flux torque, and small loss-branch current; not fitted parameters. https://github.com/SyR-e/syre_public/blob/24492399a52b3450a40885285cc7d2c4d15b5276/motorExamples/syreDefaultMotor.mat
Inputs: Rotor speed = 100 rpm; Shaft torque demand = 267.1 N·m; the others as above.
| Result | Source | This calc |
|---|---|---|
| Fundamental phase current, peak | 453.8 ± 3 A | 455.4 A |
| Magnetizing d-axis current | -347.2 ± 16 A | -343.8 A |
| Magnetizing q-axis current | 292.1 ± 16 A | 297 A |
| q-axis flux linkage | 0.1551 ± 0.003 Wb | 0.1558 Wb |
SyR-e stored MTPA point: 406.03 N·m
Source: Independent stored author result: same public SyR-e MAT dataset, motorModel.controlTrajectories.MTPA, MATLAB index 26. Magnitude 737.355412 A from the stored dq components. Low-speed test isolates MTPA, retaining core-loss current. Absolute component tolerance is half one source d-grid interval; magnitude tolerance is below 0.6%. This tests transfer of independent stored author results, not an experimental claim. https://github.com/SyR-e/syre_public/blob/24492399a52b3450a40885285cc7d2c4d15b5276/motorExamples/syreDefaultMotor.mat
Inputs: Rotor speed = 100 rpm; Shaft torque demand = 406 N·m; the others as above.
| Result | Source | This calc |
|---|---|---|
| Fundamental phase current, peak | 737.4 ± 4 A | 738.9 A |
| Magnetizing d-axis current | -617.7 ± 16 A | -615.7 A |
| Magnetizing q-axis current | 402.7 ± 16 A | 406.2 A |
| q-axis flux linkage | 0.165 ± 0.003 Wb | 0.1654 Wb |
SyR-e 800 A current-limited torque rating
Source: Independent motorModel.data.T0 = 430.6615362965606 N·m at motorModel.data.Imax = 800 A in the public source MAT file. At standstill the chosen voltage is ample, so the calculator's torque envelope is current-limited. A 3 N·m tolerance covers source torque averaging, bilinear flux-map interpolation and the approximately 0.51 N·m boundary bracket. No efficiency value is inferred from this rating.
Inputs: Rotor speed = 0 rpm; the others as above.
| Result | Source | This calc |
|---|---|---|
| Current- and voltage-limited shaft torque envelope [1] | 430.7 ± 3 N·m | 430.1 N·m |
Regression: 10 N·m at 8000 rpm with a 50 A limit
Source: Independent reviewer supplied a feasible bilinear-table witness: magnetizing id = −42.96875 A and iq = 16.49432 A, giving 47.21 A terminal current and 218.35 V terminal phase peak at these inputs. This is below the 50 A and 219.393 V limits. The calculator must find a feasible solution; minimum-loss control may choose a better current vector than the witness. Regression from the user-provided independent review, 25 October 2026.
Inputs: Rotor speed = 8,000 rpm; Shaft torque demand = 10 N·m; Fundamental peak phase-current limit = 50 A; the others as above.
| Result | Source | This calc |
|---|---|---|
| Operating point satisfies drive limits | 1 | 1 |
| Developed torque from the cross-flux product | 10 N·m | 10 N·m |
Related Resources
Related courses
Induction motor simulation using RMXPRT tool of ANSYS MAXWELL
1
Original price was: 50 €.12 €Current price is: 12 €.
IEC Electrical Schematics and Industrial Control Panels
5
Original price was: 42 €.21 €Current price is: 21 €.
Basic Electrical Controls & Diagram Reading
7
Original price was: 32 €.18 €Current price is: 18 €.







Responses