Electrical – Relating Hall sensor outputs to absolute rotor position (Which combination corresponds to which angle)

brushless-dc-motordc motorhall-effectmotorrotor

I have a working 6-step BLDC commutation which works based on the Hall effect sensor outputs. I would like to apply the same code to another motor, which doesnt have Hall sensors but an absolute rotor angle sensor.

The way i am planning to do it, is to mimic the hall sensor outputs, commutating the motor every 60 degrees. My problem is i couldn't figure out, which Hall output corresponds to which absolute rotor angle (60, 120 , 180 etc). Just knowing one, for example (1 0 0) corresponds to 60° would solve my problem.

The 6-step commutation control scheme is just designed around hall sensor outputs, without relating those outputs to absolute rotor angle.

Any help is much appreciated.

Best Answer

You've got 6 steps, just apply one, and the rotor will align on the magnetic field you generate with the stator. You just have to read the encoder, and this gives you an initial position.

There are 2 tricks:

  • The number of pole pairs of your motor is probably not 1. It's probably 6 or 7 (I'm just guessing), so, when you have your initial position, apply the next step, and read the position again. The difference should be 360/(6*n)°, where n is your number of pole pairs (n is an integer). You shall use this step size instead of 60° (which would be suitable for a single pole-pair motor).
  • If you commute when the rotor reaches the position you read during alignment, your efficiency will be very low, you should use this step from (120/n)° earlier to (60/n)° earlier.