Brushless DC Motors "slip" ... ???

Discussion in 'General Electronics Chat' started by mwalden824, Feb 27, 2013.

  1. mwalden824

    Thread Starter Member

    Mar 6, 2011
    OK, I just recently built a circuit to control a small BLDC motor in open loop. I am eventually going to add Back-EMF detection for closed loop control, but that is another day.

    Anyway, this particular motor has 12 electromagnets around its stator. So I have a function in my code called commutate that switches to the next of 6 of the drive pattern and starts over. I am assuming every time I call the commutate function the rotor aligns with the next of the 12 electromagnets or in other words it advances by one to the next electromagnetic stator coil. Which means the commutate function has to be called 12 times for 1 mechanical rotation, correct?

    I have a ramp up function that starts with a relatively long time between calls to commutate and reduces linearly to a much smaller time between these calls to commutate. The value it ends at stays in an infinite loop with this value. I have calculated like a thousand times the ending rotation speed and I am getting ~16.27 rps (mechanical rounds per second).

    Now here's the problem. I setup a test rig with an optical sensor that drives the output low every time the blade of the propeller passes between it. I hooked up my oscilloscope to it and I measured the distance in time between two lows (because two blades) and I have calculated a ~4.55 rps mechanical rotation speed. That is almost a division of 4 of what it should be.

    Now either I am calculating this wrong which is certainly possible, but could it be that the rotating magnetic field is rotating faster than the rotor and the rotor is just trying to keep up?

    Now the measured ~4.55 rps is very stable and does not fluctuate at all.

    My other question is, since it is rotating pretty stable no matter what I think the rotation speed should be, could I go ahead and switch over to a closed loop, back-emf detection routine? Or should I try to tune the ramp-up function so that I get my measured and calculated speeds correct?

  2. #12


    Nov 30, 2010
    1) I don't know.
    2) You're trying to use this like a "stepper" motor.
    3) 3.57:1???
    4) 4.55 rpm isn't the kind of velocity that makes a fan use a lot of power.
    5) We need to see how you've wired this. Post a drawing.
    mwalden824 likes this.
  3. shortbus

    AAC Fanatic!

    Sep 30, 2009
    BLDC motors without some form of rotor position feedback have no real set speed. No matter what the speed control is telling it to do. Even the resistance of a propeller will give enough resistance to throw off the stator to rotor relationship.
    mwalden824 likes this.
  4. mwalden824

    Thread Starter Member

    Mar 6, 2011
    #12 - I have measured RPS not RPM, so multiply by 60. I am trying to use this like a BLDC motor. I have been reading application notes from microchip and atmel on the subject. I will post my schematic.

    Also, if it helps there are 14 magnets in the rotor but only 12 electromagnetic coils in the stator. SO this may be the discrepancy in the calculations. So a full mechanical rotation may take more calls to my commutate function than I expected to make an actual full mechanical rotation. Could this be it?

    #12 you gave me an idea with that ratio....
    I just did this:
    Calculated = 16.27 rps
    Measured = 4.55 rps
    Rotor magnets = 14
    Stator coils = 12

    Calculated/Measured = 3.57
    Rotor-Magnets/Stator-coils = 1.1667

    3.57 / 1.1667 = 2.98 which is ~3. The motor is wound as a 3-phase Y open neutral.

    So the difference in rotor magnets and stator coils could definitely be the cause of why it would take more calls to the commutation function that I thought correct?

    Thanks #12, and in the schematic below the only difference between it and mine now is that I have 11.1 V feeding the drivers instead of 20 V. Shortbus had told me to do that on another post, I don't know why I didn't have it that way to begin with.

    Last edited: Feb 27, 2013
  5. BillB3857

    Senior Member

    Feb 28, 2009
    If you pick a pair of the stator winding leads (doesn't matter which 2 of 3) and apply a low level DC to them, you should be able to feel distinct positions in which the rotor tends to lock up. Count how many of these you feel within one revolution and multiply by two. That will give you the number of poles, as defined by motor standards. The higher the number of poles, the slower the motor will run at any given commutation frequency. The number of poles is the factor that determines the synchronous speed of a synchronous machine, and the running speed of an induction motor. A 2-pole machine will run at or near a number of revs per second equal to the applied AC frequency - so on a 50 Hz system, the sychronous speed will be 50 revs per second or 3000 rpm. With a 4-pole machine, the rotor will move from 1 pole pair to the next in 1 AC supply cycle, so will do half a rev in one supply cycle - the synchronous speed is therefore 50/2 revs per second, or 1500 rpm. A 4-pole induction motor will have a nominal speed of 1450 rpm or thereabouts.
    mwalden824 likes this.
  6. mwalden824

    Thread Starter Member

    Mar 6, 2011
    OK, I just did what you said and I got 7 x 2 = 14 poles. That makes sense since there are 14 magnets in the rotor. Thanks for that info.

    Mechanical RPM is equal to Electrical frequency times 60 divided by poles correct?

    I just need to do the math or measure the electrical frequency now. But is it possible that the rotating field is rotating faster than the rotor? I have read that BLDC motors have no slip, so I would expect that the rotating field and rotor would rotate in tandem with no lag.

  7. mwalden824

    Thread Starter Member

    Mar 6, 2011
    Never mind, I figured out what I did wrong. My equation above is wrong. It's 120 * electrical frequency divided by pole count. When I worked out the math I am now getting the same RPM for measured and calculated.

    Thanks for everyone's help. I studied induction and synchronous motors in a class last year, but forgot a lot since then. We didn't cover BLDC motors by they are very similar to synchronous motors it seems.

    Thanks again. Later.
  8. thatoneguy

    AAC Fanatic!

    Feb 19, 2009
    Is this a homemade motor or one from a hobby shop?
  9. THE_RB

    AAC Fanatic!

    Feb 11, 2008
    Please show photos! :)