I want to mesure the speed of BLDC motor using back-EMF constant, \$Ke=Vrms/rpm\$, so the speed is \$rpm=Vrms/ke\$.

What I want to know is how to get the Vrms? Suppose I have DC supply=40 V and the duty cycle = 80% does the \$Vrms = 0.8*40=32V\$? Or the \$Vrms=40*0.8/sqrt(3)=18.47V\$?

i already know how to mesure the speed using this equation
but instead I want to estimate the speed using back-EMF constant.

  • 2
    \$\begingroup\$ surely it's far easier with a BLDC to time the transitions of the back EMF? \$\endgroup\$
    – Neil_UK
    Commented Oct 19, 2020 at 9:43
  • \$\begingroup\$ Neil ,I didn't understand what you said ? \$\endgroup\$
    – Mourad
    Commented Oct 19, 2020 at 13:05
  • 1
    \$\begingroup\$ Its a sinewave. Its frequency is a much better measure of the speed than voltage will ever be. Use a frequency meter and divide by the number of pole pairs. (*60 for RPM) \$\endgroup\$
    – user16324
    Commented Oct 19, 2020 at 14:14
  • \$\begingroup\$ yes i know, but i want to use it in application where i compare the speed of the motor under load and the desired speed when applying PWM \$\endgroup\$
    – Mourad
    Commented Oct 19, 2020 at 15:25
  • \$\begingroup\$ That's silly, you can't electronically commutate a BLDC without knowing how fast the poles are passing. \$\endgroup\$ Commented Oct 21, 2020 at 12:10

1 Answer 1


After some research i found the solution.
thus, i will answer my own question
Some motor spec use \$ke= Vrms/rpm \$(because when calculating the Ke they used the VRMS volatge and not the peak voltage) so in my example the \$Vrms=40*0.8/sqrt(2)\$
but most motor manufactures use \$Ke= Vpeak/rpm\$ so in my example \$Vpeak=40*0.8\$
and in order to calculate the rpm i need to take into consideration the voltage drop and the losses therefore the actual speed will be
\$rpm=Dutycyle*(Vsupply-Vdrop)/Ke -(Ploss/Tloss)\$
with \$(Ploss/Tloss)\$ is the speed reduction brought about by the power and subsequent torque required to be produced by a motor to overcome friction, windage and core losses.

  • \$\begingroup\$ As explained in comments this is a weak solution to the problem. To drive the motor via electronic commutation the driver has to measure the actual timing of pole passing, and the pole count is a constant, so you readily know the actual instantaneous RPM as well - without the error this amplitude scheme will suffer. \$\endgroup\$ Commented Oct 21, 2020 at 12:12
  • \$\begingroup\$ as i said in the comment, i'm actually measuring the speed of the motor with the equation rpm=f*60/p but i also want to comapre it with the equation above.i don't why you downvote my answer i think my question is clear ''Determine the speed of BLDC motor using back-EMF constant'' \$\endgroup\$
    – Mourad
    Commented Oct 21, 2020 at 13:23
  • \$\begingroup\$ This is a foolish and inaccurate way to measure speed, when there's an implicitly accurate one available in the act of commutation itself. \$\endgroup\$ Commented Oct 21, 2020 at 13:42
  • \$\begingroup\$ well Chris i can not explain to you what's the hole project because it has many details for a comment, all i want is to determine the speed using back-EMF constant and not the frequency and the pole pairs. maybe the only thing i should correct it is to replace "determine" with "estimate" in the question \$\endgroup\$
    – Mourad
    Commented Oct 21, 2020 at 14:04

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.