Set 35 — Vector Control and Field Orientation
Everything V/f could not do traces to one omission: the drive never knows where the rotor flux is. It commands a stator frequency and hopes.
The DC machine of Set 33 had no such problem, because its commutator holds the armature MMF perpendicular to the field mechanically — so armature current commands torque and nothing else. Vector control is the observation that if the flux position can be computed rather than mechanically enforced, the stator current can be resolved into a component along it and a component across it — one setting flux, the other setting torque — and the induction machine becomes the DC drive that was already designed.
The rotor flux responds with the rotor time constant:
\[ \tau_r = \frac{L_r}{R_r}, \qquad \lambda_r(s) = \frac{L_mi_d}{1+s\tau_r} \]In rotor-flux coordinates the torque equation separates:
\[ T = \frac32\cdot\frac{P}{2}\cdot\frac{L_m}{L_r}\lambda_ri_q, \qquad \lambda_r = L_mi_d\ \text{(steady state)} \]Indirect field orientation computes the slip frequency:
\[ \omega_{sl} = \frac{R_r}{L_r}\cdot\frac{i_q}{i_d}, \qquad \theta_e = \int\left(\omega_r+\omega_{sl}\right)dt \]Direct torque control selects a vector from a table instead of modulating:
\[ \text{6 sectors}\times\text{flux band}\times\text{torque band} \;\to\; \vec V_k \]Sensorless estimation fails when the back EMF falls below the resistive drop:
\[ f_{crit} = f_{rated}\frac{I_1R_1}{V_{rated}} \]Loop bandwidths separate by a decade at each level:
\[ f_{current} \approx 1\ \text{kHz} \;\gg\; f_{speed} \approx 100\ \text{Hz} \;\gg\; f_{flux} \approx 10\ \text{Hz} \]
For the machine of Set 34 with \(L_m = 0.13\) H, \(L_{lr} = 0.005\) H and \(R_r = 0.8\ \Omega\), find the rotor time constant and the settling time of a flux change. Explain why this makes open-loop V/f unsuitable for dynamic applications, and what vector control does about it.
The rotor time constant:
A sixth of a second. The rotor cage is a short-circuited winding of substantial inductance and low resistance, so any change in its flux linkage decays slowly — and there is no terminal at which to force it faster.
What that means for a torque command. In a V/f drive, torque is commanded by changing the frequency, which changes the slip:
Half a second to establish a new torque. For a pump that is irrelevant — the hydraulic system is slower still. For a servo, a spindle, a traction drive or anything that must reject a load disturbance, it is useless.
Compare the timescales in play:
| Quantity | Time constant | Set by |
|---|---|---|
| Stator current | ~2 ms | leakage inductance / stator resistance |
| Rotor flux | 169 ms | \(L_r/R_r\) |
| Mechanical | ~1 s | \(J\omega/T\) |
Nearly two orders of magnitude separate the current from the flux. That separation is the opportunity: if the flux could be held constant while only the current changes, torque would respond at the current's timescale rather than the flux's.
Which is precisely what vector control does. Resolve the stator current into two components relative to the rotor flux:
Hold \(i_d\) constant and the flux never changes, so its slow dynamics are simply never excited. Torque is then commanded through \(i_q\) alone, which responds in milliseconds.
The resulting improvement:
| Control | Torque response | Limited by |
|---|---|---|
| Open-loop V/f | ~500 ms | rotor time constant |
| Slip-frequency V/f | ~100 ms | partial flux disturbance |
| Vector control (FOC) | ~5 ms | current loop bandwidth |
| Direct torque control | ~1 ms | switching frequency |
A hundredfold improvement, and no change to the machine or the inverter — the hardware of Set 26, Problem 6 serves either. The entire difference is in what the controller computes.
The one thing that stays slow. Establishing the flux from zero still takes \(3\tau_r\):
So a vector drive cannot produce torque instantly from a cold start — it must first build the rotor flux, which takes half a second. Drives handle this by pre-magnetising: applying \(i_d\) with \(i_q = 0\) before the brake releases. It is also why field weakening is a slow manoeuvre, and why a drive commanded rapidly through base speed can briefly lose orientation.
For the same 4-pole machine at a rotor flux of 0.9 Wb, find the torque constant, the \(i_d\) and \(i_q\) needed for a rated torque of 47.7 N·m, and the resulting stator current. Verify against the machine's rated current.
The torque equation in rotor-flux coordinates:
Compare Set 33's DC machine: \(T = K_a\Phi I_a\) with \(K_a\Phi = 1.321\). The form is identical — a constant times a current — and that identity is the entire point of the transformation.
The torque-producing current:
The flux-producing current, from the steady-state relation:
Note that this is the magnetising current, and in a V/f drive it is drawn automatically as reactive current. Here it is commanded explicitly, which means it can also be reduced — the basis of field weakening and of efficiency optimisation at light load.
The stator current is their vector sum, because they are perpendicular by construction:
Within 2% of the nameplate current computed in Set 34 by an entirely different route — power, voltage, power factor and efficiency. The dq model and the equivalent circuit are describing the same machine.
What the two components mean physically:
| \(i_d\) | \(i_q\) | |
|---|---|---|
| Sets | rotor flux | torque |
| DC machine analogue | field current | armature current |
| Time constant | 169 ms | ~2 ms |
| Normally | held constant | varied freely |
| In field weakening | reduced | reduced to stay within \(I_{max}\) |
| Reactive/active | reactive | active |
The second row is why the technique works at all. An induction machine has no field winding, so \(i_d\) is a synthetic field current — carried by the same three wires as \(i_q\) and separable only because the controller knows the flux angle.
The transformations that make it possible:
Both are pure algebra; the difficulty is entirely in \(\theta_e\), the rotor flux angle. It cannot be measured — there is no terminal at the rotor flux — so it must be computed, which is Problem 3 and the whole practical content of vector control.
Compute the slip frequency required for field orientation at the operating point of Problem 2, verify it against Set 34's rated slip frequency, and determine the effect of a 50% rise in rotor resistance as the machine heats up.
The problem. The Park transformation needs \(\theta_e\), the angle of the rotor flux — which is not the rotor's mechanical angle, and cannot be measured:
The rotor position \(\theta_r\) is available from an encoder. The slip angle is not — but it can be computed from the currents the controller is itself commanding. That is indirect field orientation.
The slip relation. Requiring the rotor flux to lie entirely on the d-axis forces a specific slip:
Against Set 34's rated slip frequency of 2.0 Hz, computed from the equivalent circuit — agreement to within the difference between the two models' assumptions. The machine's rated slip frequency and its field-orientation slip are the same physical quantity.
The complete IFOC scheme:
| Step | Operation |
|---|---|
| 1 | Measure \(\omega_r\) from the encoder |
| 2 | Compute \(\omega_{sl}\) from the commanded \(i_q/i_d\) |
| 3 | Integrate the sum to get \(\theta_e\) |
| 4 | Park-transform the measured currents using \(\theta_e\) |
| 5 | Regulate \(i_d\) and \(i_q\) with PI loops |
| 6 | Inverse Park and hand the voltage vector to SVM — Set 28 |
Note that step 6 hands a voltage vector straight to the space vector modulator — no conversion to three-phase references and back. That fit is why SVM and vector control are always paired.
Now the weakness. The slip computation depends on \(R_r\), which is a rotor temperature measurement in disguise:
A 50% error in the commanded slip frequency — and the error is in the integrated angle, so it does not merely scale the torque. It rotates the entire dq frame away from the actual flux.
What detuning does:
| Consequence | Detail |
|---|---|
| Orientation lost | the d-axis no longer lies on the flux |
| Torque error | commanded and actual diverge, typically 10–20% |
| Coupling returns | \(i_q\) now disturbs the flux |
| Efficiency falls | flux is wrong for the operating point |
| Dynamic response degrades | the fast/slow separation is broken |
| Instability at high torque | in severe cases |
The third row is the subtle one. Field orientation's whole benefit was that \(i_q\) does not affect the flux; once the frame is misaligned that guarantee fails, and a torque step drags the flux with it — reintroducing the 169 ms dynamics the scheme was built to avoid.
The remedies:
| Approach | Note |
|---|---|
| Thermal model of the rotor | estimate temperature from load history — cheap, approximate |
| Online \(R_r\) adaptation | estimate from a model mismatch — standard in good drives |
| Direct field orientation | measure or observe the flux instead — avoids \(R_r\) at speed |
| Accept the error | adequate for many industrial duties |
Direct field orientation observes the flux from the stator voltage and current rather than computing the slip — which removes the \(R_r\) dependence but introduces an integration that drifts at low speed, and a dependence on \(R_s\) instead. Most drives use indirect orientation with adaptation, and Problem 5 explains why.
Describe direct torque control, explain how it achieves a torque response several times faster than field-oriented control, and identify what it gives up in exchange.
The premise. The stator flux moves in the direction of the applied voltage vector:
So applying one of the six active vectors of Set 28 pushes the stator flux directly, and the torque — which depends on the angle between stator and rotor flux — changes immediately. No current loop, no transformation to a rotating frame, no modulator.
The control law is a lookup table:
| Input | Values |
|---|---|
| Flux error band | 2 (increase / decrease) |
| Torque error band | 3 (increase / hold / decrease) |
| Flux sector | 6 — the hexagon of Set 28 |
| Output | one of the 8 voltage vectors |
Two hysteresis comparators and a 36-entry table — that is the entire controller. There is no PI regulator anywhere in the torque path, and no PWM: the selected vector is applied directly until a comparator changes state.
Why it is faster. Count what stands between a torque command and a change in the inverter's output:
| Stage | FOC | DTC |
|---|---|---|
| Coordinate transform | Clarke + Park | Clarke only |
| Current regulators | two PI loops | none |
| Inverse transform | inverse Park | none |
| Modulator | SVM — one period of delay | none |
| Response | ~5 ms | ~1 ms |
The two rows in bold are the difference. A current loop necessarily takes several switching periods to change a current; DTC changes the applied voltage on the very next sample, which is the fastest anything can happen in a switching converter.
What it costs:
| Drawback | Cause |
|---|---|
| Variable switching frequency | hysteresis, not a fixed carrier |
| Broadband acoustic noise | no discrete carrier tone |
| Harder EMI filtering | spread spectrum — no line to notch |
| Torque and flux ripple | set by the hysteresis bands |
| Poor at very low speed | stator flux estimated by integration |
| High sampling rate needed | typically 40 kHz for a 4 kHz effective rate |
The first row propagates into the next two and is DTC's main practical objection: an EMI filter designed against a fixed carrier, as Set 32 did, has nothing fixed to work against. The fifth row is shared with sensorless FOC and is the subject of Problem 5.
The three schemes side by side:
| V/f | FOC | DTC | |
|---|---|---|---|
| Torque response | 500 ms | 5 ms | 1 ms |
| Torque control | none | excellent | excellent |
| Switching frequency | fixed | fixed | variable |
| Parameter sensitivity | low | \(R_r\) | \(R_s\) |
| Position sensor | no | usually | no |
| Complexity | lowest | high | moderate |
| Zero-speed torque | no | yes (with sensor) | marginal |
Modern drives blur these lines: space-vector-modulated DTC adds a modulator back to fix the variable frequency, and predictive control generalises the vector selection over a longer horizon. The three columns are landmarks rather than a complete taxonomy.
Vector control needs the rotor position. Determine the frequency below which voltage-model estimation fails for the machine of Set 34, explain why, and describe the technique that works to zero speed.
The voltage model. The stator flux can be found by integrating the terminal quantities:
Elegant, and it needs only one parameter. From the stator flux and the currents, the rotor flux angle follows — and hence the rotor position, without any sensor. It works well at speed and fails completely at low speed, for a reason that can be quantified exactly.
Why it fails. The integrand is a difference of two terms, and their relative size depends entirely on frequency:
The resistive drop is larger than the signal being estimated. Subtracting a 13.6 V correction from a 13.6 V measurement to find an 8.3 V quantity leaves nothing but the error in \(R_s\).
The crossover frequency:
Below about 1.6 Hz the resistive drop dominates and estimation degrades rapidly; practical drives quote a minimum of 1–3 Hz for sensorless operation, which agrees. Note that this frequency is a property of the machine — specifically of its per-unit stator resistance — not of the algorithm.
Three compounding problems at low speed:
| Problem | Effect |
|---|---|
| \(R_s\) uncertainty | ±50% with temperature — and it is the dominant term |
| Integrator drift | any DC offset integrates without bound |
| Inverter nonlinearity | dead-time error is 12.7% at low modulation — Set 25 |
| Measurement resolution | small signals against full-scale sensors |
The third row connects directly to Set 25, Problem 5: the drive does not actually apply the voltage it commanded, and the discrepancy is worst at exactly the low modulation index where the estimator is already struggling. Sensorless drives therefore need dead-time compensation before they need a better observer.
The technique that works to zero speed:
If the machine has any magnetic saliency — a difference between \(L_d\) and \(L_q\) — the injected carrier produces a current response whose magnitude varies with rotor position. Demodulating that response gives position without depending on back EMF at all, so it works perfectly at standstill.
Its own limitations:
| Requirement | Difficulty |
|---|---|
| Sufficient saliency | a cage induction motor has very little |
| Audible noise | the carrier is in the audible band |
| Extra loss | carrier current does no work |
| Reduced current capability | the carrier occupies headroom |
| Handover to the voltage model | must blend smoothly around 2–5 Hz |
The first row explains where the technique is actually used. An interior permanent magnet machine, with its buried magnets, has strong saliency and responds beautifully; a cage induction motor has only the small saturation-induced saliency, so injection works but marginally. That is one reason Set 36's IPMSM has displaced the induction machine in traction.
When to fit an encoder:
| Application | Sensor |
|---|---|
| Pumps, fans, conveyors | sensorless — low speed never needed |
| Extruders, mixers | sensorless with injection |
| Hoists, cranes, lifts | encoder — full torque at zero speed |
| Machine tools, servos | encoder or resolver — position accuracy |
| Traction | resolver — environment and reliability |
The third row is the elevator of Set 33 again, now with an induction machine. A hoist must produce full torque at exactly zero speed to hold a load while the brake releases — the one condition under which every sensorless method fails — so an encoder is not a refinement but a safety requirement.
Specify a complete field-oriented control implementation for the 7.5 kW machine: the computation sequence per sampling period, the loop bandwidths, the cross-coupling terms that must be cancelled, and the limits that must be enforced.
The per-period sequence, at a 5 kHz sampling rate synchronised to the PWM centre — the sampling instant Set 28 established:
| Step | Operation |
|---|---|
| 1 | Sample \(i_a,i_b\) and \(V_{dc}\) at the period centre |
| 2 | Read \(\theta_r\) from the encoder |
| 3 | Clarke: \((i_a,i_b) \to (i_\alpha,i_\beta)\) |
| 4 | Compute \(\omega_{sl}\) and integrate to \(\theta_e\) |
| 5 | Park: \((i_\alpha,i_\beta,\theta_e) \to (i_d,i_q)\) |
| 6 | Speed PI → \(i_q^*\); flux controller → \(i_d^*\) |
| 7 | Two current PIs → \(v_d,v_q\) |
| 8 | Add decoupling terms |
| 9 | Inverse Park → \((v_\alpha,v_\beta)\) |
| 10 | SVM → three compare registers — Set 28 |
The bandwidths, each a decade below the one inside it — the cascade principle of Set 33:
| Loop | Bandwidth | Limited by |
|---|---|---|
| Current (\(i_d,i_q\)) | 1 kHz | PWM at 5 kHz — a fifth of it |
| Speed | 100 Hz | a decade below current |
| Flux | 10 Hz | \(\tau_r = 169\ \text{ms}\) |
| Position (if fitted) | 10 Hz | a decade below speed |
The flux loop is deliberately slow because the plant is slow — there is no point demanding a faster response than \(1/\tau_r\) can deliver, and trying only saturates the voltage.
The decoupling terms. The d and q axes are not actually independent in the voltage equations — rotation couples them:
The \(\omega_e\) terms are speed-dependent disturbances that each axis injects into the other, and they grow with speed. Adding their computed values to the PI outputs — feedforward decoupling — leaves each current loop seeing a clean first-order plant, which is what the pole-cancellation design of Set 33 assumed.
Without decoupling, the picture at rated speed:
A 136 V disturbance in the q-axis voltage equation — more than half the phase voltage. The PI would eventually reject it, but only within its bandwidth, so a speed transient produces a large transient current error. Feedforward removes it before the loop ever sees it.
The limits that must be enforced:
| Limit | Value | Handling |
|---|---|---|
| Current magnitude | \(\sqrt{i_d^2+i_q^2} \le I_{max}\) | prioritise \(i_d\), clip \(i_q\) |
| Voltage magnitude | \(\left|\vec v\right| \le V_{dc}/\sqrt3\) | Set 28's inscribed circle |
| Field weakening | reduce \(i_d\) when the voltage saturates | keeps the vector inside the circle |
| Integrator anti-windup | on every PI | back-calculation |
| Minimum pulse width | Set 28, Problem 6 | drop short pulses |
| Dead-time compensation | Set 25, Problem 5 | essential at low speed |
The first row's priority matters. When the current limit binds, reducing \(i_q\) costs torque but reducing \(i_d\) costs flux — and losing flux takes 169 ms to recover while losing torque is instantly reversible. So \(i_d\) is protected and \(i_q\) absorbs the limit.
What the whole structure achieves:
| Capability | V/f (Set 34) | FOC |
|---|---|---|
| Torque response | 500 ms | 5 ms |
| Speed accuracy | 4–40% | < 0.1% with encoder |
| Full torque at zero speed | no | yes |
| Torque limiting | no | exact |
| Four-quadrant | crude | seamless |
| Computation | trivial | ~20 µs per period |
Every entry in the last column matches or beats the DC drive of Set 33 — in a machine with no brushes, no commutator and no maintenance. Twenty microseconds of arithmetic per period is what replaced a mechanical commutator, and it is why the DC drive has essentially disappeared.
Key Formulas
| Quantity | Relation | Notes |
|---|---|---|
| Rotor time constant | \(\tau_r = L_r/R_r\) | 169 ms here |
| Flux dynamics | \(\lambda_r = \dfrac{L_mi_d}{1+s\tau_r}\) | Settles in \(3\tau_r\) |
| Torque | \(T = \dfrac32\dfrac{P}{2}\dfrac{L_m}{L_r}\lambda_ri_q\) | DC-machine form |
| Torque constant | \(k_T = \dfrac32\dfrac{P}{2}\dfrac{L_m}{L_r}\lambda_r\) | 2.60 N·m/A |
| Flux current | \(i_d = \lambda_r/L_m\) | 6.9 A |
| Stator current | \(\sqrt{i_d^2+i_q^2}\) | Perpendicular by construction |
| Slip frequency | \(\omega_{sl} = \dfrac{R_r}{L_r}\dfrac{i_q}{i_d}\) | The IFOC relation |
| Flux angle | \(\theta_e = \int(\omega_r+\omega_{sl})dt\) | Computed, not measured |
| Detuning sensitivity | \(\omega_{sl} \propto R_r\) | +50% hot |
| Voltage model | \(\vec\lambda_s = \int(\vec v_s-R_s\vec i_s)dt\) | Fails at low \(f\) |
| Sensorless limit | \(f_{crit} = f_{rated}\dfrac{I_1R_1}{V_{rated}}\) | 1.64 Hz here |
| d-axis decoupling | \(-\omega_e\sigma L_si_q\) | Feedforward |
| q-axis decoupling | \(+\omega_e\left(\sigma L_si_d+\frac{L_m}{L_r}\lambda_r\right)\) | 136 V at rated speed |
| Bandwidth ladder | 1 kHz / 100 Hz / 10 Hz | current / speed / flux |
| Torque response | 500 / 5 / 1 ms | V/f / FOC / DTC |
Common Mistakes
Expecting instant torque from a cold start. The flux takes \(3\tau_r \approx 500\) ms to establish — pre-magnetise — Problem 1.
Using \(L_m\) instead of \(L_r\) in the torque equation. The ratio \(L_m/L_r\) appears, not either alone — Problem 2.
Confusing the rotor flux angle with the rotor mechanical angle. They differ by the slip angle — Problem 3.
Ignoring \(R_r\) variation in IFOC. A 50% rise misorients the frame and reintroduces cross-coupling — Problem 3.
Assuming detuning only scales the torque. It rotates the reference frame, so \(i_q\) begins disturbing the flux — Problem 3.
Specifying DTC where EMI is filtered against a fixed carrier. Its switching frequency varies — Problem 4.
Expecting a sensorless drive to hold zero speed. Estimation fails below 1.64 Hz for this machine — Problem 5.
Applying high-frequency injection to a cage induction motor. It has very little saliency — Problem 5.
Omitting the \(\omega_e\) decoupling terms. The q-axis disturbance reaches 136 V at rated speed — Problem 6.
Clipping \(i_d\) rather than \(i_q\) at the current limit. Lost flux takes 169 ms to recover — Problem 6.
Six problems and the induction machine has become a servo. The rotor time constant of 169 ms made V/f dynamics hopeless and was then simply never excited; the torque equation collapsed to a constant times a current, identical in form to the DC machine's; indirect field orientation computed the flux angle from a slip relation and paid for it with sensitivity to a rotor resistance that rises 50% when hot; and sensorless operation was shown to fail below 1.64 Hz for a reason arising from the machine rather than the algorithm.
Every difficulty in this set came from the same source: the rotor's flux is induced, so it must be created by stator current, maintained against a slow time constant, and located by computation. A machine whose rotor carries permanent magnets has none of those problems. Its flux is simply there — constant, free of excitation current, and mechanically locked to a rotor position that an encoder measures directly.
That removes \(i_d\) from the torque equation, removes the magnetising current from the stator, removes \(R_r\) from the control, and removes the rotor copper loss entirely. It also removes the ability to switch the flux off — which becomes the central problem above base speed.
Next: Set 36 — Synchronous, BLDC and PMSM Drives, where a permanent-magnet machine needs 357 V of DC link at base speed and would need 533 at twice it, field weakening injects negative \(i_d\) to fight the magnets, an interior machine's reluctance torque contributes 11% and reduces the current by 7%, and the technologies are compared for a traction application.