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.