cancel
Showing results for 
Search instead for 
Did you mean: 

Unstable low speed of a BLDC motor using STEVAL-PTOOL4A

AnthonyK
Associate III

Hello,

I have the following BLDC motor equipped with hall sensor, having an accuracy of 60 electrical degrees (15 mechanical degrees). 
Motor characteristics:

  • Voltage: 18VDC
  • Rated speed 15,000 rpm
  • Rated torque  0.200 Nm
  • Rated current 15.5 A
  •  Winding resistance (phase–phase) mΩ 50
  •  Winding inductance (phase–phase) µH 42
  • Number of poles poles 8

The BLDC is connected to a gearbox of a ratio 40. 

I am using the STEVAL-PTOOL4A that was configured using MC Workbench V6.3.2. The motor control used is the FOC with the hall sensor as speed feedback. I have tuned the PI current and speed for high speed (max speed is 18000RPM) and under load the motor works good. However, I am struggling to have stable speeds at low values (starting 1000RPM to around 4000RPM). The motor runs with some oscillations with no load but when I put a load, it stalls and the speed falls to zero. I tried to tune the PI of the speed again, but I couldnt do better than removing the oscillations with no load. 

I have done some calculation to check if the hall sensor resolution (15 mechanical degree) are enough to calculate the speed using the TIM2 in the MCSDK software. And I have found, that the timer does an overflow if the speed is around 6485RPM (due to  TIM2 clock speed of 170MHz and an overflow of 65536). However the MCSDK software waits 150ms of overflows before resetting the speed to zero.

 

Is the FOC with BLDC using this hall sensor, suitable to be used for these speeds? 

Thank you

1 ACCEPTED SOLUTION

Accepted Solutions
GMA
ST Employee

Hello @AnthonyK,

On STEVAL-PTOOL4A board, you can try the High Sensitivity Observer (HSO) for low speed. Refer to "HSO Startup Guide" available through "Workbench tool">About>Documentations>Documentation".
On the other hand, still using FOC/HALL sensor use case, if a set of PID parameter could cope with your High Speed use case and another set with Low Speed use case, you can change these PID parameters dynamically (as you can do through Motor Pilot Advanced Configuration setting).
PID_Setxx() functions located in pid_regulator.c file.
More detail in:

GMA_0-1748879439222.png

 

 

If you agree with the answer, please accept it by clicking on 'Accept as solution'.
Best regards.
GMA

View solution in original post

1 REPLY 1
GMA
ST Employee

Hello @AnthonyK,

On STEVAL-PTOOL4A board, you can try the High Sensitivity Observer (HSO) for low speed. Refer to "HSO Startup Guide" available through "Workbench tool">About>Documentations>Documentation".
On the other hand, still using FOC/HALL sensor use case, if a set of PID parameter could cope with your High Speed use case and another set with Low Speed use case, you can change these PID parameters dynamically (as you can do through Motor Pilot Advanced Configuration setting).
PID_Setxx() functions located in pid_regulator.c file.
More detail in:

GMA_0-1748879439222.png

 

 

If you agree with the answer, please accept it by clicking on 'Accept as solution'.
Best regards.
GMA