I'm working on a project about controlling Brush-less DC Motor using PI(Proportional Integral) Close Loop Speed Control Method.

3 Phases Motor is driven by 6 MOSFETs, Rotor speed is sensed and feedback to the control IC, this IC will compare the reference speed (target speed) with the sensed speed and adjust the control of the 6 MOSFETs.

Schematic is as below:

enter image description here

Calculation and controlling can be done inside the IC itself, but I want to know what signal the PI Close Loop Speed Control will control to archive the target speed? Eg: when rotor speed is lower than ref speed, the controller will increase the Duty cycle of PWM or will it increase the phase switching frequency?

Thank you all for reading.

  • \$\begingroup\$ Well, usually the BLDC motor shaft has a Hall effect quadrature encoder which the controller reads to calculate the speed. \$\endgroup\$
    – tlfong01
    Sep 17, 2020 at 13:37

1 Answer 1


What it is actually controlling is the duty cycle, but the phase switching/commutation frequency follows the RPM so it will increases as the RPM increases since it must be synchronized with rotor or the motor will lock up.

It is wrong to think that the driver directly controls the commutation frequency. It does increase but the driver doesn't directly control it by dialing in a number. It just commutates whenever the rotor reaches particular angular positions so in reality the RPM (or more accurately how frequently the rotor passes a commutation point) controls the commutation switching frequency. And RPM is affected by both applied load and duty cycle.

  • \$\begingroup\$ Is it OK to think that to control the motor as above there're 2 schemes, one is the speed control to archive the target speed, and one is for position detection to match commutation frequency with rotor speed to avoid loss of sync ? \$\endgroup\$ Sep 17, 2020 at 13:50
  • \$\begingroup\$ @Electronicsnewbie Yeah...like you might have the PWM signal where you punch in duty cycle, but you also have an interrupt part triggered by encoder position that reroutes that PWM signal to the right switches so the proper phase is PWMing. \$\endgroup\$
    – DKNguyen
    Sep 17, 2020 at 13:52
  • \$\begingroup\$ It's an interesting question why switching speed isn't normally used for speed control. \$\endgroup\$ Sep 17, 2020 at 14:14
  • 1
    \$\begingroup\$ @FourierFlux Is it? It seems fairly obvious to me why it is not. Speed is not what you directly control, force (duty cycle is). Speed is a result of that. Or maybe you mean constant-on time variable frequency instead of variable duty cycle constant frequency? In that case it is the similar reason constant frequency smps topologies are more common. Variable frequency is difficult to filter. You want phases to get a good amount of pwm cycles in before commutating. Also cap bootstrap is harder at lower frequencies/RPM. \$\endgroup\$
    – DKNguyen
    Sep 17, 2020 at 14:26
  • \$\begingroup\$ @DKNguyen How about the transfer function for PWM Duty ? Input of the function should be PI controller output and the output of the function should be applied PWM Duty? \$\endgroup\$ Sep 18, 2020 at 3:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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