cancel
Showing results for 
Search instead for 
Did you mean: 

motor is drawing more current than expected

hashiR
Associate III

Hello all,

I’m using NUCLEO F302R8 and IHM08M1 for motor control. While the motor runs, it gradually heats up to around 85°C and draws more current than its rated value in no-load conditions.

while using the IHM07M1, the motor's heating seems normal, but the board temperature rises significantly.

What could be causing this issue?

13 REPLIES 13

I don't know anything about the IHM08M1. But I have configured BLDC speedcontrollers for RC motors in the past. Once I had a motor getting really hot. It was the setting of the number of poles. I don't know why this had to be configured, but it made a huge difference. It must have impacted the timing or waveform and lead to current flowing when there shouldn't be current, leading to heating of the windings instead of providing torque to the motor.
Have you measured the output voltage and current with an oscilloscope? You can compare it with the output of the IHM07M1.

Kudo posts if you have the same problem and kudo replies if the solution works.
Click "Accept as Solution" if a reply solved your problem. If no solution was posted please answer with your own.

Thank you for your response.

I have configured the motor with the correct number of poles as specified in the datasheet. I am using a high-speed BLDC motor with the IHM08M1 and an STM32F401RE (84 MHz). Considering the motor's specifications (47,000 RPM, 24V, 9.3A, 180W), is the 84 MHz clock frequency sufficient for efficient operation of the motor?

The IHM07M1 is capable of lower current. So it probably has more RDSON loss. It will heat up more.
The IHM08M1 should handle the current, but if the motor is heating up in idle while the board isn't, then it has to be switching at the wrong times (like sending DC-current through a speaker).
It could be that there's something wrong with current measurement. The current measurement is used to determine when it switches. If there is a phase error or noise it might switch at the wrong time.

  • Please use an oscilloscope or logic analyser to show the switching signals and the current.
  • Are you using 6-step or FOC algorithm?
  • Have you checked the value of the shunt resistors? Too high and you have higher loss and potential clipping in your measurement. Too low and your signal is too small and more sensitive to noise.
  • Is there any filtering on the current measurement? Perhaps it causes too much delay for such a fast motor.

 

 

Kudo posts if you have the same problem and kudo replies if the solution works.
Click "Accept as Solution" if a reply solved your problem. If no solution was posted please answer with your own.

I am using a high-speed BLDC motor (47,000 RPM, 24V, 180W) ,

  1. The current waveform is attached for reference. 
  2. I have tested the motor with both 6-step control and FOC algorithms, but in both cases, the motor heats up significantly.
  3. The shunt resistor value used is 0.01 OHM.
  4. How can I determine if there is any filtering applied to the current measurement?

hashiR_6-1737091620833.png

 

Thank you. I feel like we can get to the bottom of this with enough data.

 


@hashiR wrote

How can I determine if there is any filtering applied to the current measurement?

 


Check the schematic. I found there is a first order RC-filter for each shunt resistor. 680Ohm and 100nf. This results in a Cutoff frequency (Fc) of 2340Hz.
The motor is spinning at 47k RPM which is 783Hz. To get the required frequency of the waveforms on the phases you need to multiply it with the number of pole pairs. In case of 4 poles, or 2 pole pairs, that results in 1,566Hz. Which is under the cutoff frequency, but pretty close. It will definitely result in a phase change. I don't know if that's a problem for the controller, but I suspect it might. In that case changing the filter might solve the problem.
The shunt of the IHM08M1 is 10mOhm and that of the IHM07M1 is 330mOhm.
The IHM07M1 uses a different filter type.

The waveform I'm interested in is the voltage on the phases or switching signals in combination with the current. I'm interested in timing of the switching. If it switches at appropriate times. Like I wrote if the motor receives current at the wrong time or DC current it isn't used for torque, but for heating the windings.

Kudo posts if you have the same problem and kudo replies if the solution works.
Click "Accept as Solution" if a reply solved your problem. If no solution was posted please answer with your own.

hello

My motor (IPMSM) runs at 60000 RPM (1000 Hz with 1 pole pair) much lower than the boards 2340 Hz cutoff frequency. Why would the filter still need to be changed?

hashiR_0-1737117901791.png

 


@hashiR wrote:

hello

My motor (IPMSM) runs at 60000 RPM (1000 Hz with 1 pole pair) much lower than the boards 2340 Hz cutoff frequency. Why would the filter still need to be changed?


If the current sampled at a specific point, then a group delay might screw up the result. I don't know what algorithm you use so I don't know what happens.

According to this filter calculator (http://sim.okawa-denshi.jp/en/CRtool.php) the phase change at 1000 Hz is about 24 degrees. The time constant tau is 68us. So there is a shift/delay of the signal.

Usually the back-EMF voltage is used to detect zero crossing. Can you measure those signals too?

60k RPM is higher than the 47k RPM value you mentioned earlier. Are you running your motor too fast? Same speed as with the other board?

Kudo posts if you have the same problem and kudo replies if the solution works.
Click "Accept as Solution" if a reply solved your problem. If no solution was posted please answer with your own.

I am using hall foc algorithm

That's new information. You didn't specify you were using a sensored BLDC motor.
Can you share the datasheet of the motor? The thing with FOC is that it needs to be tuned to the motor. It needs to match the BEMF wafe form. Most BLDC motors are designed for 6-step and not sine.

Kudo posts if you have the same problem and kudo replies if the solution works.
Click "Accept as Solution" if a reply solved your problem. If no solution was posted please answer with your own.