This topic has been permanently closed and transferred to MATLAB Answers.


Issue: PMSM FOC – Flux Weakening Region Current Optimization

adhavan d on 19 Sep 2025

Issue: PMSM FOC – Flux Weakening Region Current Optimization
I’m using Motor Control Blockset (R2025b) for FOC of a PMSM and facing mismatches in flux-weakening operation compared to MotorCAD/MCIS data.
  • Motor setup: 5 pole pairs, Rs = 0.01125 Ω, Ld = 178 µH, Lq = 224 µH, flux = 0.03696 Wb, Vdc = 100 V.
  • At low speed (MTPA region): MATLAB’s Id/Iq match MotorCAD well (e.g., 60 Nm @ 1000 rpm).
  • At high speed (FW, e.g., 15 Nm @ 7000 rpm): MATLAB selects much higher |Id|, leading to phase currents ≈ 154–161 A, while MotorCAD optimizes at ≈ 96 A. This results in significantly higher copper losses and lower efficiency.
  • Tried:
  • Single-data model (constant Ld, Lq, flux) → overestimates FW depth.
  • LUT-based model (imported MotorCAD Ld/Lq/Flux maps with mcbGenerateTables, idiqLUTs, vclmt method) → closer, but still higher currents vs MotorCAD’s MTPV points.
  • Verified constraints (current circle, voltage ellipse, torque hyperbola).
Ask:
How can I configure the PMSM Control Reference block (or supporting functions) to follow MotorCAD’s minimum-current MTPV trajectory in the FW region? Is this a modeling limitation, or do I need custom optimization (e.g., using Model-Based Calibration Toolbox or MotorCAD-MATLAB co-simulation)? Any examples or best practices for accurate FW LUT import would be very helpful.