How can I derive the torque equation for a star-connected, brushless DC motor, given its back-emfs waveforms and currents?

I'm currently reading the article A Park-like transform for the study and the control of a non-sinusoidal brushless DC motor, in which the author presents the equation for the torque in a star-connected, BLDC:

$$ T = p.(\phi'_{ra}.i_a+\phi'_{rb}.i_b+\phi'_{rc}.i_c) $$

in which

  • \$ T \$ - Electromagnetic torque
  • \$ p \$ - Number of pole pairs
  • \$ \phi_{rx} \$ - Rotor flux induced in the stator phase '\$x\$'
  • \$ i_x \$ - Current in phase '\$x\$'

However, the only introduction to the above formula is that "through an analysis of the consumed power by the machine, we can deduce the electromagnetic torque expression, assuming constant airgap", no more explanations, nor sources. Additionally, it is unclear to me whether the \$'\$ in \$ \phi' \$ denotes differentiation in respect to time or in respect to the electrical angle (I suppose it's the latter).

If someone could walk me through the process described by the author, or at least clarify it a bit I'd greatly appreciate.

  • \$\begingroup\$ The formula is derived from Faraday's law and the conservation of energy (or power) between the mechanical and electrical sides of the motor. As Faraday's law describes, it is the rate of change of flux (the differential) that is important. This can be wrt either time or angle, as these two variables are proportional to each other. I will post a full answer when I get time. \$\endgroup\$
    – Jon
    Jun 17, 2015 at 10:55

2 Answers 2


Brushless AC

Lets start with a brushless AC machine first & Field Orientated Control.

So BLAC machine's have their stator windings sinusoidally distributed (higher concentration close to the tooth, lower for the outer turns)

Now to control such machine is relatively complex and you can use a field orientated control ( F.O.C. ).Using Park's transform (Clark + rotation) the 3phase sinus stator current's can be transformed 1st into a rotating 2phase representation

Park Transforms - General

$$ I_{\alpha \beta 0 } = \frac{2}{3}\begin{bmatrix} 1 & \frac{-1}{2} & \frac{-1}{2} \\ 0 & \frac{\sqrt{3}}{2} &\frac{-\sqrt{3}}{2} \\ \frac{1}{2} & \frac{1}{2} & \frac{1}{2} \end{bmatrix} $$

or simply

\$I_\alpha = I_a \$

\$I_\beta = \frac{2I_b + Ia}{\sqrt{3}} \$

And these phasors can further be reduced to two DC quantities via a rotating frame of reference transform

$$ \begin{bmatrix} I_d\\ I_q \end{bmatrix} = \begin{bmatrix} Cos(\Theta ) & Sin(\Theta )\\ -Sin(\Theta ) & Cos(\Theta ) \end{bmatrix} \cdot \begin{bmatrix} I_\alpha\\ I_\beta \end{bmatrix} $$

These two DC terms (with Id usually controlled to 0, unless field weakening is desired) are simple inputs to two classic PI loops to control Id and Iq (the output of which is Vd & Vq).
This Vd & Vq, via inverse Clark&PArk produce the 3phase voltage that will be applied to the stator (insert SVM or SPWM)

Great, it works

Brushless DC & general Permanent Magnet machine equations

Thing is BLDC machines produce higher torque than a sinusoidally wound stator (downto the higher concentration of winding around the teeth to produce the flattened line-line profile). The downside is the torque ripple. This is mostly due to simplifying the control downto which equally limits the effective bandwidth of the controller.

A park-like transform can be applied to overcome some of these shortcomings as the aim is to produce a stator stimulus closer to the airgap profile - tpyically a Quazi squarewave (30-120-30) is superimposed onto a trapezoidal backEMF (60-60-60).

First of all you need the machine equation for a BLDC machine (which is the same for a BLAC machine). $$ \begin{bmatrix} V_a\\ V_b\\ V_c \end{bmatrix} = R_s \begin{bmatrix} i_a\\ i_b\\ i_c \end{bmatrix} + L\frac{\mathrm{d} }{\mathrm{d} t}\begin{bmatrix} i_a\\ i_b\\ i_c \end{bmatrix} + \begin{bmatrix} e_a\\ e_b\\ e_c \end{bmatrix}$$

\$e_a, e_b, e_c\$ are the 3 backEMF's that are generated for a rotating rotor. Via Faraday's law $$ \varepsilon = - \frac{\mathrm{d} \Phi _B}{\mathrm{d} t} $$

BackEMF is the rate of change of flux

$$ \frac{\mathrm{d} \Phi }{\mathrm{d} t} = \frac{\mathrm{d} \Phi }{\mathrm{d} \Theta}\frac{\mathrm{d} \Theta }{\mathrm{d} t} = \frac{\mathrm{d} \Phi }{\mathrm{d} \Theta}\omega $$

$$ e = \omega {\Phi}' $$

Thus: $$ \begin{bmatrix} e_a\\ e_b\\ e_c \end{bmatrix} = \omega_e \frac{\mathrm{d} }{\mathrm{d} \vartheta_e}\begin{bmatrix} \Phi_a\\ \Phi_b\\ \Phi_c \end{bmatrix} = \omega_e \begin{bmatrix} {\Phi}'_a\\ {\Phi}'_b\\ {\Phi}'_c \end{bmatrix}$$

As the total torque produced is the summation of the 3 phases producing torque (factoring in the pole-pair count):

Torque equation

\$T_e = P({\Phi}'_a i_a + {\Phi}'_b i_b + {\Phi}'_b i_b)\$

Now, the Park transform can be applied to voltage, currents and flux, thus:

$$ T_e = \frac{3}{2}P({\Phi}'_\alpha i_\alpha + {\Phi}'_\beta i_\beta + {\Phi}'_0 i_0) = \frac{3}{2}P({\Phi}'_d i_d + {\Phi}'_q i_q + {\Phi}'_0 i_0) = \frac{3}{2}P{\Phi}'_q i_q $$

For a BLAC machine \${\Phi}'_q\$ is a simple sinus profile (and thus a lookup table, CORDIC... can be used) but for a BLDC an appropriate lookup table of flux vs angle is required specific for the machine being used.

  • \$\begingroup\$ Hello Jon! First of all, thank you for the time and effort you've put in this answer, with it I was able to understand how to derive the expression. That being said, I would like to point out that the question is specifically about the derivation of the expression, so IMHO the parts about BLACS and the references to Park's transform are an overkill. If you agree with me, I'd like to ask you to trim the unnecessary parts and expand a bit the part about the actual derivation of the torque expression (starting from conservation of energy, explicitly state the steps). \$\endgroup\$
    – JLagana
    Jun 17, 2015 at 12:16
  • \$\begingroup\$ If you don't have the time I can write another answer, but I believe the credit should go to you. \$\endgroup\$
    – JLagana
    Jun 17, 2015 at 12:17
  • \$\begingroup\$ The only reason the BLAC bit is stated as it captures aspects of the Park transform. The next section was on basic machine theory (the same for BLAC, BLDC) as that showed where the Phi` comes from (rate of change w.r.t. angle) to build up the torque equation. Finally how Park can be applied to a BLDC machine. I can expand, but I think the BLAC 2 paragraph's are still useful \$\endgroup\$
    – user16222
    Jun 17, 2015 at 12:24
  • \$\begingroup\$ My point is the only difference between a BLAC and a BLDC is the equation that governs Phi (sinus for BLAC, Trap for BLDC). Everything else is, for all intent and purpose, the same. \$\endgroup\$
    – user16222
    Jun 17, 2015 at 12:27
  • \$\begingroup\$ What made me understand how to derive the expression was primarily what's stated between the paragraph starting with "First of all you need the machine equation (...)" and the final expression for the torque (the one before applying parks transformation and your comment on the question itself. Even though it was informative to learn more about Parks transf. and the difference between BLACs and BLDCs, that info didn't contribute to my understanding of the stated problem. Additionally, I understood what you mean by the derivative of phi, but that could be expl with no refs to machine theory \$\endgroup\$
    – JLagana
    Jun 17, 2015 at 12:41

Derived work from JohnRB's answer.

Conservation of energy between mechanical and electrical sides of the motor leads to:

$$ E_{mechanical} = E_{electrical} $$ $$ T_e.\omega_m = e_a.i_a + e_b.i_b + e_c.i_c $$

but $$ e_x = \frac{d\phi_{rx}}{dt} $$

using chain rule: $$ e_x = \frac{d(\phi_{rx})}{d\theta_e}.\frac{d\theta_e}{dt} $$ $$ e_x = \frac{d(\phi_{rx})}{d\theta_e}.\omega_e $$

substituing back in the energy balance equation:

$$ T_e.\omega_m = \frac{d(\phi_{ra})}{d\theta_e}.\omega_e.i_a + \frac{d(\phi_{rb})}{d\theta_e}.\omega_e.i_b + \frac{d(\phi_{rc})}{d\theta_e}.\omega_e.i_c $$ $$ T_e = \frac{\omega_e}{\omega_m}.(\frac{d(\phi_{ra})}{d\theta_e}.i_a + \frac{d(\phi_{rb})}{d\theta_e}.i_b + \frac{d(\phi_{rc})}{d\theta_e}.i_c) $$

and, finally:

$$ T_e = n_{pp}.(\frac{d(\phi_{ra})}{d\theta_e}.i_a + \frac{d(\phi_{rb})}{d\theta_e}.i_b + \frac{d(\phi_{rc})}{d\theta_e}.i_c) $$


  • \$ E_{mechanical} \$ - Energy in the mechanical side of the motor
  • \$ E_{electrical} \$ - Energy in the electrical side of the motor
  • \$ T_e \$ - Electromagnetic torque
  • \$ \theta_m \$ - Rotor's angular mechanical position
  • \$ \omega_m \$ - Rotor's angular velocity (mechanical), namely \$ \frac{d\theta_m}{dt} \$
  • \$ e_x \$ - Back-emf at phase '\$ x \$'
  • \$ i_x \$ - Current in phase '\$x\$'
  • \$ \phi_{rx} \$ - Rotor flux induced in the stator phase '\$x\$'
  • \$ \theta_e \$ - Rotor's angular electrical position
  • \$ \omega_e \$ - Rotor's agular velocity (electrical), namely \$ \frac{d\theta_e}{dt} \$
  • \$ n_{pp} \$ - Number of pole pairs
  • \$\begingroup\$ @JohnRB: This is what I understood from your answer and comments. Is this completely accurate? \$\endgroup\$
    – JLagana
    Jun 17, 2015 at 14:58
  • \$\begingroup\$ The issue is at zero speed this will result in no torque. \$\endgroup\$
    – user16222
    Aug 3, 2015 at 22:10
  • \$\begingroup\$ I don't see why \$\endgroup\$
    – JLagana
    Aug 5, 2015 at 5:18

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.