Comments on BLDC motor - initial rotor position
Parent
BLDC motor - initial rotor position
Sensorless BLDC motor controller are becoming more and more popular, especially with rising of the drone industry.
Being able to detect where the rotor is at 0rpm or no load seems intuitive if we have hall sensors or resolver.
However, what I am having difficulties understanding is how do you know which phase switching combination you should start with if you don’t know where the rotor is? Do you just loop through 6 combinations and check which one would get you enough BEMF?
Is there a clever way how to do it and/or is the approach above how it’s usually done?
Post
In the case of a permanent magnet motor, as found in many smaller drone motors, I have seen controllers merely activate the drive at some phase angle that has maximum theoretical torque (two high, one low or one high, one low and one floating, dunno) and pause for a brief moment for the motor to settle into that position and then they have a predetermined ramp up profile from a dead stop at a known position. This allows you to 'prime' the motor position to some pole position as the motor controller is switched on and can proceed to turn in the commanded direction as soon as servo signals appear.
A permanent magnet motor behaves the same as a stepper motor with fewer poles and will find the closest pole position for any given phase input if there is minimal resistance, a small propeller or fan is an ideal low resistance load at low speeds.
As Olin writes you then ramp up at conservative acceleration in open loop until you expect to have enough back EMF to measure.
This last process is repeated EVERY time the motor comes to a stop. The wakeup position seek only needs to be done after the power is applied or an enable signal returns as the motor knows the exact rotor 'phase' position if it brought it to a stop and did not freewheel the prop.
0 comment threads