I just saw this question How do I eliminate PWM noise when driving a fan? but cannot think of the reason why is doing PWM over brush-less control useful.

I am assuming people are trying to control the torque or speed of the motor by PWM. But ultimately the torque, the speed and the mechanic resistance will reach a balance. So controlling one of these three factors should achieve the original goal. For a brush-less motor, it's much easier to control the speed because the controller is doing that anyway - it determines when to energize a coil based on the current rotor position. If the controller delays energizing the coil, the torque will be reduced.

From the answers to the original question, it seems this (doing PWM over brushless control) is rather common. However to me it's more like a dirty hack when there is no access to the controller.

Am I missing anything?


In theory, one could use a BLDC motor as a 3-winding (six-phase) stepper motor, controlling rotation speed by controlling the frequency with which the windings are driven. Indeed, for certain situations where would be using a motor at only a fraction of its rated power (e.g. because the cheapest motor one could get was much bigger than necessary) this approach will work fine. A major problem with this approach, however, is that when a motor is driven at a fixed speed, a reduction in mechanical output torque will not cause a corresponding reduction in current draw. Instead, it will cause a massive increase in the amount of heat dissipated by the motor. Although stepper motors are generally able to safely dissipate 100% of rated power as heat, BLDC motors generally aren't.

One might regard the situation as being vaguely analogous to regulating the speed of an automobile purely by using the clutch and brake pedals while the engine was always running at wide open throttle. True, one could for a little while make the car go any desired speed using just two of the three pedals (and if one was going uphill, one could do it with the clutch alone), but fuel economy would be dreadful, and unless one added a truly massive amount of extra cooling to the clutch it would be destroyed in minutes.

  • \$\begingroup\$ "a reduction in mechanical output torque will not cause a corresponding reduction in current draw" - that seems like a badly designed controller. A good controller (at least in theory) could stop energizing the winding when it reaches the right position, which is essentially doing PWM by controller itself. I could image such a design may not be economically efficient for small and low voltage motors but is that the only reason? \$\endgroup\$ – Codism Feb 1 '13 at 21:21
  • 2
    \$\begingroup\$ @Codism: If the winding was controlled by a circuit that turned on the motor any time it was "behind" its ideal position, and turned it off any time it was "caught up" or "ahead", the motor would have no choice but to turn at the correct "average" speed, but it would be unlikely to spin uniformly at that speed. One might hope that the motor would find a nice equilibrium where it lags behind the "ideal" position just enough to get hit with the amount of energy needed to keep it going. In practice, it's much more likely that the system would alternately overcompensate for being ahead... \$\endgroup\$ – supercat Feb 2 '13 at 19:09
  • \$\begingroup\$ ...and then overcompensate for being behind. While there are a variety of techniques one could use to determine precisely when to turn the thing on each cycle so as to achieve stable behavior, it's easier to have the motor turn "on" and "off" based purely on position, and but use high-speed (and position-agnostic) PWM to vary the strength of the "on" cycle. If each cycle where the motor is too fast or too slow causes only a small change to the PWM level, the system will likely take longer than ideal to reach the correct speed, but the speed--once reached--will be pretty stable. \$\endgroup\$ – supercat Feb 2 '13 at 19:13

You're missing the giant, angry orangutan in the room:

The OP in the question you are referring to is trying to control a computer fan.
These are very, very, mass-produced devices. There are specialty ASICs available explicitly for the purpose of controlling them, which integrate the hall-effect sensor, the controller, and the coil power driver into one single (generally 4-6 lead) package.

Second, the "brushless motor" in most fans is not a traditional three-phase motor. In fact, most DC muffin fans are one-phase only! The "controller" simply turns power to the winding on and off at certain points in the fan's rotation, relying entirely on momentum to carry the rotor when the winding is not energized.

Given this controller topology, there isn't much you could do to to slow such a system down, except A: Reduce the coil voltage, or B: PWM the coil. Given that the controller is completely stateless (it's just a hall-effect sensor and a power transistor, really), PWMing before or after the controller is basically just a matter of opinion.

  • \$\begingroup\$ What you said made a lot of sense to me except the PWM before the controller is hard to believe but I won't go there in detail in this post. I wish I could also accept your answer but I can only accept one. Anyway, thanks for the explanation. \$\endgroup\$ – Codism Feb 4 '13 at 15:08

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.