Overheat error during Motor Control
Hi, I’m using X-NUCLEO-IHM08M1 with NUCLEO-G474RE evaluation board for FOC speed control of PMSMs (using encoder). I made the various hardware modifications and soldered the circuit so as to have a 3-shunt resistor.
The motor rotates at the set speed, with the selected acceleration (via the ramp function) and with sufficiently high torque thanks to the tuning of Kp and Ki.
The problem is that the temperature read by the NTC via NTC_GetAvTemp_C(&TempSensor_M1) increases one step at a time, just like a ramp, until it reaches the set OVER_TEMPERATURE value.


This happens at any speed, with no load, and even when the rotor is stopped! (after I press the blue button)
It seems strange to me because the currents on the phases are usually around 2Arms and the current on the DC bus (47V) is less than 1.2A… the MOSFETs get quite hot because I can feel the heat if I hold my finger close to them; I don’t think they should get that hot with such a small load.
I’d like to ask what changes we could make to reduce this rise in temperature… but first of all, how is it possible for it to rise to the maximum (set at 80°C)… shall we do some theoretical calculations on paper?
---------------------------------------------------------------------------PARAMETERS---------------------------------------------------------------------


NTC_Handle_t TempSensor_M1 =
{
.bSensorType = REAL_SENSOR,
.hOverTempThreshold = (uint16_t)(OV_TEMPERATURE_THRESHOLD_d),
.hOverTempDeactThreshold = (uint16_t)(OV_TEMPERATURE_THRESHOLD_d - OV_TEMPERATURE_HYSTERESIS_d),
.hSensitivity = (int16_t)(ADC_REFERENCE_VOLTAGE/dV_dT),
.wV0 = (uint16_t)((V0_V * 65536) / ADC_REFERENCE_VOLTAGE),
.hT0 = T0_C,
};
..let me know if you need any further information
