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.

  • \$\begingroup\$ The needed data are: number of pole pairs of the rotor, absolute encoder resolution, how the encoder and rotor are aligned. A depiction is needed. \$\endgroup\$ – Marko Buršič Mar 17 '17 at 0:04

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.
| improve this answer | |
  • \$\begingroup\$ I'd run it through all six steps, as a stepper, and record positions. That'll tell you pretty quickly how many poles you have. \$\endgroup\$ – TimWescott Oct 4 '18 at 22:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.