3
\$\begingroup\$

I have a BLDC motor on a controller I built running in both forwards and reverse.

However the reverse direction is substantially noisier than the other and the motor vibrates more almost as if the commutation sequence were wrong.

I am using the same sequence for iterating through the 6 commutation states in either direction based on the hall status.

For going forwards I take the position from the hall sensors and map that to N "state" in my list of 6 states, I then set the motors to N+1 state.

For going backwards I do the same but use the N-2 state. (modulo 6)

I am working on the assumption that N+1 is magnetic field in advance of the poles by of 60-120 degrees, N is 0-60 degrees, N-1 is -60 to 0 degrees and N-2 is -120 to -60 degrees - this seems to hold true experimentally using the N and N-1 states, the move, but slowly and jerkily.

I'm using a very low duty cycle PWM (10%) at the moment with a 32V power source (the motor is rated for 48V - this motor specifically https://en.nanotec.com/products/2873-db59c048035-a/)

Why would it consistently behave fine in one direction, but not the other?

Thanks

\$\endgroup\$
  • \$\begingroup\$ Is your algorithm not symmetrical somehow? Maybe you flubbed in the code somewhere. Swap any two wires between motor and controller. Does the jerkiness follow the motor's mechanical rotation or does it follow the controller's commutation direction? \$\endgroup\$ – DKNguyen Apr 29 at 18:42
  • 2
    \$\begingroup\$ Oh, it's you again. The motor braking guy. \$\endgroup\$ – DKNguyen Apr 29 at 18:43
  • 1
    \$\begingroup\$ Yeah, I don't know about that one. The only things that come to mind are: problem with the algorithm, some asymmetry with the motor, some bad positioning with the commutation hall sensors. \$\endgroup\$ – DKNguyen Apr 29 at 19:00
  • 1
    \$\begingroup\$ Those slotted screws? That does seem to be made to adjust something. I would assume that's to adjust hall sensor positioning. Maybe it's there for dumb controllers that can't have phase advancement dialed in. That would definitely make it rotate badly in one direction if you did not adjust the controller's phase advancement accordingly. Mechanical phase advancement would have been the first thing I would suggest if it was a brushed motor, but I ruled it out because I didn't know brushless motors had similar adjustements. \$\endgroup\$ – DKNguyen Apr 29 at 19:09
  • 1
    \$\begingroup\$ Note you should mark the existing hall board angle with a sharp tool or permanent marker, then adjust it. So that you can put it back precisely to the original angle. \$\endgroup\$ – rdtsc Apr 29 at 20:30
3
\$\begingroup\$

When I was running slot cars with brushed motors in the late 60s I played with advancing the timing, by rotating the brush assembly until the forward rotation was fastest at a given voltage. This of course made the motor asymmetrical with regard to forward and reverse operation.

Your noisy reverse operation may be from a very similar situation. The motor with sensors may be "factory tuned" to operate more efficiently in the nominal forward direction.

One might try playing with the timing in the reverse direction to try to compensate for the (possibly) asymmetrical motor timing and remove the reverse direction noise. Tuning timing for minimum noise may do the trick. Hope this helps!

| improve this answer | |
\$\endgroup\$
1
\$\begingroup\$

The screws on the back of the motor turn out to control the position of the hall sensors, it was biasaed by a few degrees in the forwards direction, adjusting them all the way to one side appears to have set them equally - it appears the motor could be biased more in the forwards direction but cannot be biased at all to reverse.

This has made the forwards directions "bumpier" which I would expect while on simple block commutation - but both side behave pretty much equally now - which gives me the starting point I was looking for.

| improve this answer | |
\$\endgroup\$
  • 1
    \$\begingroup\$ Good. Don't forget to accept this (after 8 hours, I think) if your problem is solved. \$\endgroup\$ – Transistor Apr 30 at 15:38
  • \$\begingroup\$ If you compensate the timing in software based on speed instead of using the mechanical adjustment, you could have it run smoothly in both directions. \$\endgroup\$ – pericynthion Apr 30 at 17:56

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.