S12ZVML: (curent open loop) position error between openloop angle and estimated angle

Showing results for 
Show  only  | Search instead for 
Did you mean: 

S12ZVML: (curent open loop) position error between openloop angle and estimated angle

Contributor I

Hi, I recently come with a problem with motor state transition from force to sensorless.

We check the varible:

drvFOC.pospeOpenLoop.thDifOpenLEstim = MLIB_Sub_F16(drvFOC.pospeSensorless.thRotEl, drvFOC.pospeOpenLoop.thRotEl);

There are two situations of

this varible when we start the motor.

One is the error is between 0~0.5, which means in 90 degrees. We can easily go to the sensorless state.

The other is between -0.1~-0.5,which means in -180 ~-90 degrees range.It is difficult to go to the sensorless state.

I think if the position error is between -180~-90,the magnet force will make the motor a reverse rotation.However, the motor's running direction is the same as the first situation.

It is strange that the second situation happens. I think in the open loop , the positon error between -90~90 is reasonable.

Is the second situation normal, or is there any suggestion for me to transist to sensorless state with the second situation?




below is the figure os the 2situations (first figure is situation 2, second is situation 1),black line is position error variable:

black for position errorblack for position errorblack for postion errorblack for postion error


0 Kudos
1 Reply

NXP Employee
NXP Employee


could you please check this article? https://ieeexplore.ieee.org/document/8896231

It may explain some parts of your questions.

In general, looking at the thDifOpenLEstim still tells nothing about the real rotor position. Absolute rotor position sensor would tell you where the rotor is.

Just a teaser: NXP is working on an application note discussing sensorless FOC incl. open loop startup in details. It takes time, so we appreciate your patience.

Best regards,