Running Hot

You inherited a fixed-point field-oriented speed controller for a three-phase PMSM drive. Every 100 microseconds it reads the phase currents and the rotor's electrical sector, rotates the currents into the rotor frame, runs a cascaded current/speed control law, and rotates the commanded voltages back out to the three phase modulations.

On the bench it looked fine: commanded to speed, the shaft turns at very nearly the right rate and the console shows it holding the setpoint. But the drive runs hot. The phase currents sit far higher than the modest torque the load demands, the windings heat up, and the inverter trips its overcurrent protection on a load the drive used to carry without complaint.

The commanded speed is delivered in an SRAM mailbox at 0x2000FF00 in milli-RPM (4,000,000 mRPM is 4,000 RPM). The rotor's present electrical sector is reported in SECTOR (0 through 5) and the measured speed in SPEED. The bring-up, the sector-angle estimation, the control tuning, and the reporting are all correct.

Find why the drive circulates so much current for so little torque and fix it so the phase currents fall back to what the load actually requires.

Loading the interactive arena.