Set 28 — Space Vector Modulation
Set 27 used the same zero-sequence freedom twice for two unrelated purposes — once to gain 15.5% of output, once to save a third of the switching loss. When one degree of freedom keeps producing unrelated benefits, the framework is usually wrong.
Treat the three references as a single rotating vector and the inverter's eight switching states as six fixed vectors plus two zeros, and the whole problem becomes geometry. The reference is a point, the states are the vertices of a hexagon, and modulation is the question of which two vertices to dwell on and for how long. The 0.707 utilisation that injection produced turns out to be nothing more than the radius of the largest circle that fits inside that hexagon.
Six active vectors of equal magnitude, 60° apart, plus two zeros:
\[ \left|\vec V_k\right| = \frac23V_{dc}, \qquad k = 1\dots6; \qquad \vec V_0 = \vec V_7 = 0 \]The linear limit is the inscribed circle:
\[ \left|\vec V_{ref}\right|_{max} = \frac23V_{dc}\cos30^\circ = \frac{V_{dc}}{\sqrt3} \]Dwell times from the reference's magnitude and angle within its sector:
\[ T_1 = mT_s\sin\left(60^\circ-\theta\right), \qquad T_2 = mT_s\sin\theta, \qquad T_0 = T_s-T_1-T_2 \]with \(m = \sqrt3\left|\vec V_{ref}\right|/V_{dc}\), so \(m = 1\) at the inscribed circle.
The seven-segment sequence keeps every transition to one leg:
\[ \frac{T_0}{4}\ \Big|\ \frac{T_1}{2}\ \Big|\ \frac{T_2}{2}\ \Big|\ \frac{T_0}{2}\ \Big|\ \frac{T_2}{2}\ \Big|\ \frac{T_1}{2}\ \Big|\ \frac{T_0}{4} \]SVM equals third-harmonic injection, because splitting \(T_0\) between the two zero states is a zero-sequence choice:
\[ V_{L1,max} = \frac{V_{dc}}{\sqrt2} = 0.707V_{dc} \]Overmodulation runs from the circle to the hexagon vertices:
\[ 1 < m \le \frac{\pi}{3}\cdot\frac{\sqrt3}{\ldots} = 1.103 \quad\text{(six-step)} \]
For a three-phase VSI on a 400 V link, find the magnitude of the six active space vectors, the radius of the largest circle that fits inside the hexagon they form, and the corresponding phase and line voltages. Show that this reproduces the third-harmonic injection limit of Set 26.
The eight states. Each leg is either high or low, giving \(2^3 = 8\) combinations. Six produce a non-zero output; two — all-high and all-low — short the load and produce nothing:
| State | Vector | Angle | Type |
|---|---|---|---|
| 100 | \(\vec V_1\) | 0° | active |
| 110 | \(\vec V_2\) | 60° | active |
| 010 | \(\vec V_3\) | 120° | active |
| 011 | \(\vec V_4\) | 180° | active |
| 001 | \(\vec V_5\) | 240° | active |
| 101 | \(\vec V_6\) | 300° | active |
| 000, 111 | \(\vec V_0,\vec V_7\) | — | zero |
The six active vectors are 60° apart and equal in magnitude, so their tips form a regular hexagon. Two distinct states at the origin is the redundancy that makes SVM flexible — Problem 4.
The magnitude, from the space-vector transform of the three phase voltages:
Each vertex represents applying the full link voltage across one phase and half of it across the other two — the six-step waveform of Set 26, seen instant by instant rather than as a waveform.
The inscribed circle. A rotating reference must be reproducible at every angle, so it must stay inside the hexagon — and the binding constraint is the midpoint of each side, at 30° from a vertex:
The linear limit of space vector modulation, and it is a purely geometric statement: the largest circle inscribed in a hexagon of circumradius \(R\) has radius \(R\cos30^\circ\). No Fourier analysis was involved.
Translate to voltages. The space vector's magnitude is the peak phase voltage:
Which is exactly the injection result:
| Route | Argument | \(V_{L1,max}\) |
|---|---|---|
| Set 26, Problem 4 | flatten the reference peak to \(\sqrt3/2\) | 282.8 V |
| This problem | inscribe a circle in a hexagon | 282.8 V |
| SPWM (Set 26, Problem 3) | reference peak limited to 1 | 245.0 V |
Two completely different arguments — one trigonometric, one geometric — giving the identical number. They are the same statement: a sinusoidal reference constrained by its own peak is a circle constrained by the hexagon's vertex distance, and relaxing that to the inscribed circle is what both methods do.
Where SPWM sits on the diagram. Its limit corresponds to a smaller circle:
Sinusoidal PWM restricts the reference to a circle of radius \(V_{dc}/2\), which is \(\cos30^\circ\) of the inscribed circle — and \(1/\cos30^\circ = 1.1547\) is precisely the injection boost of Set 26. The whole 15.5% is the difference between two circles.
A reference vector of 200 V sits at 30° within sector 1, with a 400 V link and a switching frequency of 5 kHz. Find the modulation index and the dwell times on \(\vec V_1\), \(\vec V_2\) and the zero states, and verify the result.
The principle: volt-second equivalence. The inverter cannot produce the reference vector, but it can produce the two adjacent vertices and the origin. Spending the right fractions of each switching period on each gives the right average:
Exactly the volt-second balance of Set 1, applied to a vector instead of a scalar. The load's inductance does the averaging, as it always has.
The modulation index, normalised so that \(m = 1\) at the inscribed circle:
Comfortably inside the linear range. Note that this \(m\) is the SVM convention, not the carrier-based \(m_a\) — the two differ by \(2/\sqrt3\), which is a common source of confusion when comparing sources.
Resolve the reference onto the two vertices. Applying the sine rule to the triangle formed by \(\vec V_{ref}\) and the two adjacent vectors:
Equal, as symmetry demands — the reference sits exactly halfway between \(\vec V_1\) at 0° and \(\vec V_2\) at 60°. That symmetry is a useful check on any dwell-time calculation.
The zero time is whatever is left:
Thirteen per cent of every period spent producing nothing. As the reference grows the zero time shrinks, reaching zero exactly when the reference touches the hexagon boundary — which at \(\theta = 30^\circ\) is the inscribed circle at \(m = 1\).
Verify by reconstructing the average. Resolving both vectors onto the reference direction:
And the perpendicular components cancel, since the two dwell times are equal and the vectors are symmetric about the reference. The synthesis is exact in the average.
How the dwell times behave across a sector:
| \(\theta\) | \(T_1\) | \(T_2\) | \(T_0\) |
|---|---|---|---|
| 0° | 150.0 µs | 0 | 50.0 µs |
| 15° | 127.4 µs | 44.8 µs | 27.8 µs |
| 30° | 86.6 µs | 86.6 µs | 26.8 µs |
| 45° | 44.8 µs | 127.4 µs | 27.8 µs |
| 60° | 0 | 150.0 µs | 50.0 µs |
The active time is largest in the middle of a sector and smallest at its edges — the opposite of what intuition suggests, and it follows directly from the hexagon: the boundary is nearest at the side midpoint, so a given reference magnitude uses proportionally more of the available time there.
Using the dwell times of Problem 2, construct the seven-segment symmetric switching sequence for sector 1. Tabulate the segment durations, count the switching transitions per period, and explain why this particular ordering is used.
The dwell times say nothing about order. \(T_1\), \(T_2\) and \(T_0\) could be applied in any sequence and the average would be the same — but the number of switching transitions would not:
A good sequence changes only one leg at each transition. That halves the switching count compared with a careless ordering, and it is entirely free — a matter of choosing an order.
The seven-segment sequence for sector 1, symmetric about the centre of the period:
| Segment | State | Duration | Value |
|---|---|---|---|
| 1 | 000 | \(T_0/4\) | 6.70 µs |
| 2 | 100 | \(T_1/2\) | 43.30 µs |
| 3 | 110 | \(T_2/2\) | 43.30 µs |
| 4 | 111 | \(T_0/2\) | 13.40 µs |
| 5 | 110 | \(T_2/2\) | 43.30 µs |
| 6 | 100 | \(T_1/2\) | 43.30 µs |
| 7 | 000 | \(T_0/4\) | 6.70 µs |
| Total | — | \(T_s\) | 200.0 µs |
Note that the zero time is split: a quarter at each end in state 000, and a half in the middle in state 111. Using both zero states is what makes single-leg transitions possible throughout.
Count the transitions. Each boundary changes exactly one leg:
Each device switches on once and off once per period — the minimum possible for a scheme that uses both zero states. A sequence that jumped from 100 to 111 directly would need two legs to change at once, doubling the count for no benefit.
Why symmetry matters. Placing the segments symmetrically about the period centre makes each leg's waveform a centred pulse:
| Property | Consequence |
|---|---|
| Centred pulses | lower harmonic distortion than edge-aligned |
| Symmetric spectrum | sidebands cancel in pairs |
| Natural for up-down counters | direct hardware implementation |
| Sampling at the period centre | current measured at its average value |
The last row is a practical gift. With centred pulses, sampling the current at the middle of the period catches it exactly halfway through its ripple — giving the average value without any filtering. Every digital drive uses this.
The five-segment alternative. Dropping one zero state entirely:
Which is exactly the discontinuous modulation of Set 27, Problem 5 — and here the mechanism is transparent. Choosing to spend all the zero time in 000 rather than splitting it means leg C stays low throughout the period. The zero-sequence freedom of the carrier view is, in the vector view, simply the choice of how to divide \(T_0\).
The two schemes side by side:
| Seven-segment | Five-segment | |
|---|---|---|
| Zero states used | both (split) | one only |
| Transitions per \(T_s\) | 6 | 4 |
| Switching loss | 1× | 0.67× |
| Current ripple at low \(m\) | lower | higher |
| Common-mode swing | full \(V_{dc}\) | reduced |
Show that the 15.5% advantage of space vector modulation over sinusoidal PWM arises from the choice of how the zero time is split, and that this choice is mathematically identical to third-harmonic injection. Quantify the equivalent zero-sequence waveform.
Start from what SPWM does in vector terms. Three independent sinusoidal references, each compared against a carrier, produce a rotating reference vector — but the constraint is applied to each phase separately:
A circle of radius 200 V — smaller than the inscribed circle's 230.9. SPWM is leaving the region between the two circles unused, and that region is entirely reachable.
What SVM does differently. It does not constrain individual phases at all; it constrains only the vector:
The full 15.5%, and the ratio is \(1/\cos30^\circ\) because that is the ratio between the inscribed circle and the circle of radius \(V_{dc}/2\). Nothing about harmonics enters.
Where the freedom comes from. The zero vector has two realisations, and the split between them is arbitrary:
Because both states produce zero differential output. But they produce very different common-mode voltages — \(-V_{dc}/2\) and \(+V_{dc}/2\) from Set 26, Problem 5. So choosing the split is choosing a common-mode voltage, which is choosing a zero-sequence component.
The equal split of the seven-segment sequence corresponds to a specific zero-sequence waveform. Working out the resulting leg reference:
A triangular wave at three times the fundamental frequency, of amplitude \(V_{dc}/4\) — whose Fourier series is dominated by a third harmonic of amplitude very close to one-sixth of the fundamental, plus small ninth and fifteenth terms.
The comparison:
| Scheme | Zero-sequence added | Peak reduction | Utilisation |
|---|---|---|---|
| SPWM | none | — | 0.612 |
| Third-harmonic injection | \(\tfrac16\sin3\theta\) | to 0.866 | 0.707 |
| SVM (equal \(T_0\) split) | triangular, \(3f\) | to 0.866 | 0.707 |
| DPWM (all \(T_0\) in one state) | clamping waveform | to 0.866 | 0.707 |
All three of the lower rows reach the same 0.707, because all three place the reference on the inscribed circle. They differ only in which zero-sequence waveform they use to get there — and therefore in switching loss, ripple and common-mode behaviour, not in output capability.
Why SVM is nonetheless preferred over explicit injection:
| Reason | Detail |
|---|---|
| Naturally digital | dwell times map straight onto timer registers |
| Boundary is explicit | overmodulation handled geometrically — Problem 5 |
| Sequence is a free parameter | switch between continuous and discontinuous at will |
| Fits vector control | the current regulator already works in vectors |
| Slightly lower THD at high \(m\) | optimal placement of the zero |
The fourth row is decisive in a modern drive. Field-oriented control computes a voltage demand as a vector in the same reference frame; handing that directly to a space vector modulator avoids converting to three phase references and back.
Determine the modulation index at which SVM reaches six-step operation, describe the two overmodulation regions geometrically, and explain what the modulator does when the reference falls outside the hexagon.
What goes wrong beyond the circle. Between the inscribed circle and the hexagon, a reference is reachable at some angles and not others:
The dwell-time equations demand more time than the period contains, which is geometrically the statement that the reference has left the hexagon. Something has to give, and how it gives defines the overmodulation regions.
Region I — the reference is projected onto the boundary. Whenever \(T_1+T_2 > T_s\), both are scaled down:
The angle is preserved, the magnitude is clipped to the hexagon edge. The reference trajectory becomes a circle with the corners flattened — and near the sector centres, where the hexagon is nearest, it follows the straight edge instead of the circle.
Region II — the angle is distorted too. As the demand rises further, clipping the magnitude alone is insufficient:
The trajectory stops being continuous: it dwells at \(\vec V_1\), then jumps along the edge, then dwells at \(\vec V_2\). The dwell fraction grows with the demand until it fills the whole sector.
The six-step limit. When the dwell fills each sector completely, the inverter applies exactly one state per 60°:
Which matches Set 27, Problem 4 exactly — and note that the fundamental at six-step (254.6 V peak) exceeds the hexagon's vertex-to-centre distance would suggest, because averaging over a sector recovers more than the geometry of a single instant.
The complete range:
| \(m\) | Region | Trajectory | \(T_0\) | Low-order THD |
|---|---|---|---|---|
| 0–1.0 | linear | circle | > 0 | ≈ 0 |
| 1.0–1.05 | overmod I | circle with flats | partly 0 | small |
| 1.05–1.10 | overmod II | vertex dwells | 0 | growing |
| 1.103 | six-step | hexagon vertices only | 0 | 31.1% |
Read the fourth column. Overmodulation is exactly the region where the zero time has been exhausted — the modulator has no idle time left to give up, so it must start distorting instead. That is a cleaner statement of the limit than any harmonic argument.
What the controller must do about it. Two problems appear:
The gain from command to output collapses, so a current regulator tuned for the linear range becomes ineffective. And (ii) the produced vector no longer equals the commanded one in either magnitude or angle, so a field-oriented controller loses the orthogonality it depends on. Practical drives apply an explicit inverse map from desired to commanded \(m\), and freeze or detune the current loop in deep overmodulation.
Specify a complete digital SVM implementation at 5 kHz with 2 µs of dead time: the computation sequence per period, the timer compare values for the reference of Problem 2, the minimum pulse width constraint, and how dead time is accounted for.
The per-period computation, executed in an interrupt at the period centre:
| Step | Operation |
|---|---|
| 1 | Read \(V_\alpha,V_\beta\) from the current controller |
| 2 | Compute \(\left|\vec V_{ref}\right|\) and \(\theta\) |
| 3 | Identify the sector from \(\theta\) (integer divide by 60°) |
| 4 | Reduce \(\theta\) to within the sector |
| 5 | Compute \(T_1,T_2,T_0\) |
| 6 | Check overmodulation: if \(T_1+T_2 > T_s\), scale |
| 7 | Check minimum pulse width; drop or extend |
| 8 | Map to three compare registers for the sector |
Steps 6 and 7 are the ones omitted from textbook descriptions and required in every real implementation. Neither is optional.
The compare values. With an up-down counter of period \(T_s/2\), each leg's compare register sets when its output changes. For sector 1 with the durations of Problem 3:
Three numbers, loaded once per period, and the timer hardware generates the complete seven-segment sequence including its symmetry. That mapping — from a vector to three compare values — is the entire runtime cost of SVM.
Dead time is inserted by the hardware, not the algorithm:
Modern PWM peripherals insert it automatically on every complementary pair, delaying each turn-on by \(t_d\). The algorithm computes ideal times and the hardware perturbs them — which is exactly the distortion of Set 25, Problem 5, and must be compensated in the reference, not in the timer.
The minimum pulse width constraint. A pulse shorter than the dead time cannot be produced at all:
Near the sector boundaries one dwell time approaches zero — at \(\theta = 0\), \(T_2 = 0\) exactly. And near \(m = 1\) the zero time approaches zero. Both situations demand pulses the hardware cannot make.
The three ways of handling it:
| Strategy | Effect | Cost |
|---|---|---|
| Drop the pulse | set the short dwell to zero | small vector error |
| Extend to \(T_{min}\) | stretch it, steal from another | different small error |
| Compensate next period | carry the error forward | best accuracy, more state |
Dropping is standard and its error is second-order: near a sector boundary the dropped vector was contributing almost nothing anyway. The third method is used in high-performance drives, where the accumulated error over many periods would otherwise produce a small but persistent current distortion.
The full implementation budget:
| Requirement | Value |
|---|---|
| Interrupt rate | 5 kHz — every 200 µs |
| Computation budget | < 20 µs (10% of the period) |
| Timer resolution | < 100 ns → 0.05% of \(T_s\) |
| Dead time | 2 µs, hardware-inserted |
| Minimum pulse | 5 µs — drop below this |
| Current sampling | at the period centre — catches the average |
| Sector lookup | 6 permutations of the compare mapping |
The sixth row is the reward for the symmetric sequence of Problem 3: at the centre of the period all three legs are in the zero state and the current is exactly at its average, so a single sample gives the fundamental with no filtering and no phase lag. That is why the interrupt is placed there.
Key Formulas
| Quantity | Relation | Notes |
|---|---|---|
| Active vector magnitude | \(\tfrac23V_{dc}\) | Six of them, 60° apart |
| Inscribed circle | \(\tfrac23V_{dc}\cos30^\circ = \dfrac{V_{dc}}{\sqrt3}\) | The linear limit |
| Peak phase voltage | \(\hat V_{ph1} = \left|\vec V_{ref}\right|\) | — |
| Line voltage limit | \(V_{dc}/\sqrt2 = 0.707V_{dc}\) | = injection limit |
| Modulation index | \(m = \dfrac{\sqrt3\left|\vec V_{ref}\right|}{V_{dc}}\) | \(m = 1\) at the circle |
| Dwell times | \(T_1 = mT_s\sin(60^\circ-\theta),\ T_2 = mT_s\sin\theta\) | \(\theta\) within the sector |
| Zero time | \(T_0 = T_s-T_1-T_2\) | Zero at the boundary |
| Seven-segment | \(\tfrac{T_0}{4},\tfrac{T_1}{2},\tfrac{T_2}{2},\tfrac{T_0}{2},\tfrac{T_2}{2},\tfrac{T_1}{2},\tfrac{T_0}{4}\) | 6 transitions |
| Five-segment | one zero state only | 4 transitions, \(\tfrac13\) less loss |
| SVM gain over SPWM | \(1/\cos30^\circ = 1.1547\) | Pure geometry |
| Equivalent zero sequence | \(-\dfrac{\max+\min}{2}\) | Triangular at \(3f\) |
| Overmodulation I | \(T_1' = \dfrac{T_1}{T_1+T_2}T_s\) | Magnitude clipped |
| Six-step limit | \(m = 1.103\) | 10.3% above linear |
| Six-step fundamental | \(\hat V_{ph1} = \dfrac{2V_{dc}}{\pi}\) | — |
| Compare values | \(\tfrac{T_0}{4},\ \tfrac{T_0}{4}+\tfrac{T_1}{2},\ \tfrac{T_0}{4}+\tfrac{T_1}{2}+\tfrac{T_2}{2}\) | Sector 1 |
| Minimum pulse | \(\approx 2t_d+t_r+t_f\) | Drop below it |
Common Mistakes
Using the hexagon vertex distance as the modulation limit. A rotating reference must fit the inscribed circle at \(V_{dc}/\sqrt3\) — Problem 1.
Confusing SVM's \(m\) with carrier-based \(m_a\). They differ by \(2/\sqrt3\) — Problem 2.
Measuring \(\theta\) from the wrong origin. It is the angle within the sector, from 0 to 60° — Problem 2.
Applying the dwell times in an arbitrary order. A bad sequence doubles the switching count for no benefit — Problem 3.
Forgetting to split \(T_0\) between both zero states. Using only one gives discontinuous modulation, which may or may not be intended — Problem 3.
Believing SVM is fundamentally different from third-harmonic injection. Both place the reference on the inscribed circle by choosing a zero sequence — Problem 4.
Assuming SVM gives lower THD than injection. Their output capability is identical; only sequencing differs — Problem 4.
Letting \(T_1+T_2\) exceed \(T_s\) without scaling. The modulator must detect overmodulation explicitly — Problems 5 and 6.
Keeping a linear current regulator through overmodulation. The gain from \(m\) to output collapses near six-step — Problem 5.
Ignoring the minimum pulse width. Near sector boundaries and near \(m = 1\) the required pulses are shorter than the dead time — Problem 6.
Six problems and the modulation puzzle has resolved into geometry. Eight states became six vertices and two origins; the linear limit became the radius of an inscribed circle; dwell-time calculation became volt-second balance with a vector; and the 15.5% that third-harmonic injection produced by trigonometry turned out to be \(1/\cos30^\circ\) — the ratio of two circles. The zero-sequence freedom that Set 27 used twice for different ends became a single visible choice: how to split \(T_0\) between the two redundant zero states.
Everything in Part 4 so far has been a two-level voltage source inverter: a stiff DC link, six switches, and an output that jumps between two rails. That topology has three hard limits. Its output step is the full link voltage, which stresses insulation and radiates. Its device blocking requirement is the whole link, which caps it at a few kilovolts. And it switches hard, so every transition costs the energy that Set 2 budgeted.
Next: Set 29 — Current Source, Multilevel and Resonant Inverters, where a stiff DC current replaces the stiff voltage, series-connected cells produce more levels from lower-voltage devices, and resonant transitions make the switching energy vanish altogether.