In field orientated control (FOC) of a BLDC motor, when applying an \$I_d\$ current, one can effectively change the 'speed constant' of the motor.

I want to be able to calculate specifically how much the motor speed will change if I apply a given \$I_d\$. What are the equations and constants one could use to calculate this?

Or is there a better forum to ask this question? Possibly physics?

Is it possible to derive the constant from those typically published in a motor datasheet such as the torque or motor constant and/or inductance?

My guess as to what the equation might look like:

A simple model of an unload motor has back EMF

\$V_{emf}=K_v\;\omega \$
where \$K_v\$ is the speed constant
\$\omega\$ is the rotational velocity in radians per second

For a large (negative) \$I_d\$, one could imagine total cancellation of the field created by the permanent magnets. This would describe that behavior:

\$V_{emf} = K_{id} (I_{m0} + I_d) * \omega\$

where \$K_{id}\$ is the constant I think I need
\$I_d\$ is the non-torque producing component of current in FOC
\$I_{m0}\$ is the equivalent current that would create the magnetic field resulting from the the permanent magnets.

Since we could replace \$K_{id}\,I_{m0}\;\; with \;\; K_v\$:

\$V_{emf}=(K_v + K_{id}\;I_d) * \omega\$


  • \$\begingroup\$ Please use the MathJax to write formulas, next , the Id has to be negative in order to oppose the PM field. Your question is a bit unclear, can you elaborate it? The two last equations are incompatible, therefore are not valid in terms of science and engineering. \$\endgroup\$ – Marko Buršič Feb 24 at 22:06
  • \$\begingroup\$ I need to calculate the effect that an Id is going to have on the motor speed. For example, if Id = 0, my unloaded RPMs might be 100. If Id is -1 amp, then maybe RPMs become 200. Since this information isn't available on any datasheets I've ever seen - maybe it can be derived from known constants. Or possibly the relationship depends on many things and thus a simple expression doesn't exist. \$\endgroup\$ – brainfog Feb 25 at 1:24
  • \$\begingroup\$ @MarkoBuršič - have a new understanding and yes the 2nd equation and the first become the same. \$\endgroup\$ – brainfog Feb 25 at 14:33
  • \$\begingroup\$ Id must be zero to get max torque, using FOC. Note that in other BLDC control models like crossing zero technique, "Id" isn't zero (if you consider "Id" as longitudinal math component of total current), what leads to non constant torque. So, if you apply an non zero Id it does not means you will get more or less speed, as I understand. Try to understand the math behind FOC technique, and what Id is, or why it needs to be zero in order to get a ripple-free torque. \$\endgroup\$ – Emanuel M Feb 25 at 15:57
  • \$\begingroup\$ Why don't you try it. Increasing -Id means also that you have to decrease the Iq in order to keep the driver and motor within a constraint \$I_s=\sqrt{I_d^2+I_q^2}\$. You might introduce a new controller for Id setpoint that is governed by the angle, or Iq itself. For example Id=-Iq, would give you 135 deg. angle, both have to be limited to 0.707 of nominal stator current. Then you could derive your constant. \$\endgroup\$ – Marko Buršič Feb 25 at 19:13

First to get a couple things straight regarding terminology.

Field Oriented Control (FOC) is not performed on BLDC Motors. BLDC motors have Trapezoidal Back EMF, and are controlled as DC motors using electrical commutation, and applying PWM to modulate currents.

Field Oriented Control (FOC) is performed on Permanent Magnet Synchronous Motors (PMSM). PMSM have sinusoidal Back EMF (aka Sinusoidal Fluxlinkage). Field Oriented control is used to linearize the dynamics of the machine so we can control it as a DC motor.

You can use the following equation, which has been solved assuming steady state DQ state space motor model \begin{equation} i_d = \frac{-n_p\omega^2LK}{R^2+(n_p\omega L)^2} \end{equation} Note that variables are two phase equivalent as this equation is derived from alpha and beta reference frame, so if you want to convert your 3 phase motor parameters to two phase I believe you need to use the following conversions. \begin{equation} L = \frac{1}{2}L_{l-l}\\ R = \frac{1}{2}R_{l-l}\\ K = \frac{1}{\sqrt{3}}K_b^{l-l}\\ n_p : Pole Pairs\\ \omega : Angular Velocity \end{equation}

Field Weakening is an optimization technique used to operate the motor either at the maximum current the inverter can provide or maximum voltage the inverter can provide. The math requires knowledge of calculus and state space equations.

See "Modeling and High-Performance Control of Electric Machines" ISBN 0-471-68449 pg 530 to 531 for derivation

  • \$\begingroup\$ Well, in many occasions PMSM are often called BLDC (just like oscillators are often called colpitts even if made in another topology). The distinction is important and correct however, the winding pack in the motor is differen too! \$\endgroup\$ – Lorenzo Marcantonio Mar 10 at 9:22
  • \$\begingroup\$ Thank you for the clarification on PMSM vs BLDC. I (clearly) lack the deep theory of FOC control, but think of it vector addition of currents and application of PI control in a rotating frame in which the current and voltage are constant WRT to rotor angle. My first PMSM firmware/hardware implementation was sine drive, and there was a phase delay attempting command current based on rotor angle and high RPM (Maxon EC-30), so FOC was a better than my kludges that reduced that delay. \$\endgroup\$ – brainfog Mar 11 at 14:44
  • \$\begingroup\$ Do know some physics and the back EMF that result from motor is proportional to the time rate of change of magnetic flux. That flux, is proportional to the magnetic field produce by a permanent magnet. If one changes the magnets from N42 to N52, I imagine the back EMF increases by 23%. One could also use the coils to increase or decease the field produced by the permanent magnets and accomplish the same effect. So I think I'm looking for the relationship between Id and the fractional change in field strength ideally based on known motor parameters. \$\endgroup\$ – brainfog Mar 11 at 14:47
  • \$\begingroup\$ I was certainly confused by the difference between PMSM and BLDC when I started learning about motors several years ago. Applying a -Id current is essentially the same thing as using a different grade magnet. Id current is essentially demagnetizing the magnet, which reduces the rate change for the flux. Note that magnets used in motors are typically N42SH-48SH grade. An N52 does not have the temperature stability that is necessary in most motor applications. \$\endgroup\$ – Real Magnetics Mar 11 at 23:28

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.