Curvo Studio

PMSM field-oriented control: Clarke and Park transforms, d-q axes and field weakening

Field-oriented control (FOC) drives a permanent-magnet synchronous motor (PMSM) by transforming its three phase currents into a rotating d-q frame fixed to the rotor. In that frame the flux-producing current Id and the torque-producing current Iq become two DC quantities that can be regulated independently, which gives smooth, fast and efficient torque control.

PMSM compared with BLDC

A PMSM and a BLDC motor are built almost the same way: permanent magnets on the rotor and three windings in the stator. The difference is the shape of the back-EMF and therefore the way they are driven.

  • BLDC: trapezoidal back-EMF, driven with rectangular current blocks in six steps, two phases at a time. Simple and cheap, with torque ripple at each commutation.
  • PMSM: sinusoidal back-EMF, driven with sinusoidal currents in all three phases at once. The rotating stator field is smooth, so torque is smooth and noise is low.

The price is that a PMSM needs accurate rotor position, from an encoder or resolver, or a good observer, and more computing. The reward is the quiet, precise and efficient behaviour of servo drives, electric vehicles and robot joints.

The idea of field orientation

A DC motor is easy to control because its field and armature currents are separate. Torque is proportional to armature current, flux is held by the field, and the two do not interfere.

In an AC machine, the three phase currents are sinusoids that mix both functions. Field-oriented control restores the DC-motor idea mathematically. The controller measures the rotor angle, and expresses the stator current as a vector in a frame that rotates with the rotor. The component along the rotor magnet axis is the d (direct) current, Id. The component 90° ahead is the q (quadrature) current, Iq. For a surface-mounted PMSM:

T = 1.5 × p × ψm × Iq

where p is the number of pole pairs and ψm is the permanent-magnet flux linkage. Torque depends only on Iq, and Id only adds or removes flux. Changing a torque command is therefore as direct as changing the armature current of a DC motor.

Clarke and Park transforms

Two coordinate transformations turn three measured currents into d-q values.

The Clarke transform converts the three-phase currents (ia, ib, ic) into two currents on a stationary two-axis frame (α, β), exploiting ia + ib + ic = 0:

iα = ia iβ = (ia + 2 × ib) / √3

The Park transform rotates that frame by the electrical rotor angle θ so it follows the rotor:

id = iα × cos θ + iβ × sin θ iq = −iα × sin θ + iβ × cos θ

In steady state, id and iq are constant, even though the phase currents are sinusoids at the electrical frequency. A pair of PI controllers can therefore regulate them with zero steady-state error. Their outputs, the voltage commands vd and vq, are rotated back with the inverse Park transform, and a space-vector or sine-triangle PWM stage turns them into gate signals for the inverter. The current loop typically runs at 10 to 20 kHz, every 50 to 100 microseconds.

Id = 0 control, MTPA and field weakening

For a surface-mounted PMSM, the magnets already supply all the flux, so the most efficient strategy at normal speeds is Id = 0: all current goes into Iq, and torque per ampere is as high as it can be. For interior-magnet motors, which also have reluctance torque, a small negative Id raises torque per ampere (maximum torque per ampere, MTPA).

A PMSM has a speed limit set by voltage. Back-EMF is proportional to speed, E = ω_e × ψm (with ω_e the electrical speed in rad/s), and eventually it reaches the maximum voltage the inverter can supply from its DC bus (about Vdc / √3 per phase with space-vector modulation). To go faster, the controller drives a negative Id, which produces a stator flux opposing the magnet flux and reduces the net air-gap flux. This is field weakening. It allows speeds above base speed, but available torque falls roughly in inverse proportion to speed, giving a constant-power region. The cost is extra current, which means more copper loss and the risk of demagnetising the magnets if Id is pushed too hard.

Example. A motor with 4 pole pairs, ψm = 0.05 Wb and Iq = 10 A (Id = 0) gives T = 1.5 × 4 × 0.05 × 10 = 3 N·m. A 6-pole-pair version with the same flux and current gives 4.5 N·m, a reminder that torque grows with pole pairs at a given flux linkage.

Torque ripple and why FOC helps

Torque ripple is the variation of torque at a fixed current. In a six-step BLDC drive, it comes mainly from commutation. In a PMSM under FOC, the main sources are:

  • Back-EMF harmonics: if the back-EMF is not a perfect sinusoid, sinusoidal current produces torque at 6th and 12th electrical harmonics.
  • Cogging torque: the attraction between the magnets and the slotted stator iron, present even with no current.
  • Current measurement errors: offset and gain errors in the phase current sensors create ripple at the electrical frequency and twice that frequency.
  • Inverter dead time and PWM switching ripple.
  • Position error from a poorly aligned or low-resolution sensor.

Because FOC controls the real current vector at every instant, the main current-related ripples are small and the controller can also inject correcting harmonics. The result is far smoother torque at low speed than a six-step drive can give.

How the simulator models a PMSM

Curvo Studio's PMSM simulator does not implement a field-oriented controller, d-q axes, or Id and Iq readouts. It models a PMSM supplied by a three-phase drive with a chosen voltage and frequency, in steady state, and shows what a synchronous machine does at the shaft.

The rotor speed is the synchronous speed, 120 × f / p, with no slip: the rotor locks onto the rotating field or loses synchronism. The pull-out torque is approximated as 1.8 times the rated torque, scaled by the flux ratio, which is the applied voltage divided by the applied frequency relative to their rated values, capped at 1. If the voltage is not increased with frequency, the flux ratio falls and so does the pull-out torque, which is the same effect as field weakening seen from the V/f side. A load angle readout expresses the load as a percentage of that pull-out torque, and 100% means synchronism is lost. Because the field comes from permanent magnets, the model draws only a small no-load current. Start-up is an exponential approximation, not a model of drive control.

Try it in the PMSM simulator

Open the permanent magnet synchronous motor simulator and try these experiments.

  • Change the Supply frequency and watch the Synchronous speed readout follow 120 × f / p. The rotor speed locks to it.
  • Raise the Mechanical load slider and watch the Load angle readout climb towards 100%. Push the load beyond the limit and the motor goes Out of step.
  • Lower the Applied line voltage while holding the frequency, and see the Load angle rise at the same load, because the pull-out torque has dropped.
  • Raise the frequency above rated without raising the voltage, and see the same weakened-flux effect, which is the V/f picture of field weakening.
  • Change the Pole count in the nameplate and see the synchronous speed change.
  • Switch the Phase sequence between ABC and ACB and the rotor reverses. Turn on the Magnetic field layer in the cutaway view to see the rotating field.

Try it in the simulator

Frequently asked questions

What is field-oriented control?
Field-oriented control, or vector control, regulates the stator current of an AC motor as a vector in a frame that rotates with the rotor. The two components, Id along the magnet flux and Iq perpendicular to it, are controlled separately, so flux and torque can be commanded independently, like in a DC motor.
What do the Clarke and Park transforms do?
The Clarke transform converts three-phase currents into a two-axis stationary frame (α, β). The Park transform rotates that frame by the rotor angle so the currents become the DC quantities Id and Iq in steady state. Together they let simple PI controllers regulate AC currents.
What does Id = 0 control mean?
It keeps the d-axis current at zero and puts all the stator current into Iq. For a surface-mounted PMSM, where the magnets provide the flux, that gives the highest torque per ampere. Interior-magnet motors use a negative Id to add reluctance torque.
What is field weakening in a PMSM?
Above base speed the back-EMF reaches the inverter voltage limit. A negative Id then reduces the net flux in the air gap, lowering the back-EMF and allowing higher speed. Torque capability falls in the process, giving a constant-power region.
Is a PMSM the same as a BLDC motor?
Not exactly. Both have permanent magnets on the rotor, but a BLDC motor has trapezoidal back-EMF and six-step drive, while a PMSM has sinusoidal back-EMF and sinusoidal current, usually with field-oriented control. In practice the names are sometimes mixed up and some motors can be driven either way.
Does FOC need a position sensor?
FOC needs the rotor angle. It can come from an encoder, a resolver or Hall sensors, or be estimated by a sensorless observer from voltages and currents. Observers work well at medium and high speed but have difficulty at very low speed and standstill.