cancel
Showing results for 
Search instead for 
Did you mean: 

About the algorithm selection of sensorless PMSM

Dldw.1
Associate II

Hi ST community,

I tried to use STM32CubeMX for motor control of sensorless PMSM. I am confused about the Speed Sensing module. There are three modes of sensorless: Observer PLL, Observer Cordic, HFI+Observer, what is the trade-off between them? HFI+Observer indicates that the firmware library is not supported. When the first two modes are used, the motor can rotate, but the effect is not good at low speed. Do you have any countermeasures? 

Thank you very much!

4 REPLIES 4
Fred V.
ST Employee

Hello,

I suppose that you actually mean ST Motor Control Workbench, from ST MCSDK and not STM32CubeMx as the sensorless modes are not visible from CubeMx, AFAIK.

First, HFI+Observer is not supported anymore. Indeed, the choice is still possible in the UI of the Workbench but this is a bug that has been fixed with MCSDK version 6.0.0.

The Observer observes the back-EMF of the motor from the measurement of the currents flowing through the phases. It then reconstructs the rotor speed and its electrical angle from the observed back-EMF. This reconstruction can be done either with a PLL or with a CORDIC. The choice is mainly a matter of user's preferences. On STM32G4xx MCUs, the Observer+CORDIC may be preferred as it uses the hardware CORDIC IP embedded in these devices, that is faster than the software implementation.

Now, the Observer is observing the back-EMF. The slower the rotor speed, the smaller the back-EMF and the more sensitive it gets to current measurements noise. When the speed goes too low, the current measurement gets so noisy that the observed back-EMF and, as a consequence, the reconstructed speed and angle are not reliable anymore.

The implementation of the Observer provided with the SDK features a mechanism that assesses the reliability of the angle and that triggers a Speed Feedback Error and the motor is stopped.

Two tracks that can be investigated to address this issue. Both imply hardware changes:

  • Switching to a sensorred solution: a quadrature encoder or Hall effect sensors can be used with the SDK to provide the position and the speed of the rotor.
  • reworking some aspects of the hardware to improve the quality of the measured signals.

I hope it can help!

Best Regards,

Fred

Hi Fred,

Thank you very much for your reply�?

Yes, I encountered this problem while operating in MotorControl Workbench 5.Y.4 (because 6.0.0 does not support ICS current capture). I use STM32G474QET6 chip and have used Observer+Cordic. The performance is not significantly different from Observer+PLL.

In order to control the cost, there is no position sensor in the current scheme. I am interested in how to accurately estimate the position. Positioning and reverse rotation are not allowed after power-on. Does ST have a good position detection method for zero speed? 

 Looking forward to your reply.

​Best regards.

Fred V.
ST Employee

Hello,

Very sorry for so late an answer...

Well, I'm afraid that MCSDK does not (yet) have a good position estimation capability around zero speed in sensorless mode. As of today, if you need to have a good position feedback near zero speed, the use of sensors (Hall effect sensors or Quadrature Encoder sensors) is needed.

Best Regards.

Dldw.1
Associate II

Hi Fred,

Thank you very much for your reply�?

I see.​

​Best regards.