Field weakening
The MTPA page treated negative d-axis current as an optimisation — a few percent of extra torque, worth having on a salient machine and ignorable on a surface-magnet one.
Above a certain speed it stops being optional. Without it the machine simply will not go faster.
Running out of volts
The magnets generate a back-EMF proportional to speed. Add the resistive and inductive drops and the voltage the inverter must produce grows with speed until it hits — and then the current loop saturates, current falls, torque falls, and the machine stops accelerating.
The speed where that first happens at full torque is the base speed. Below it the drive is current-limited and torque is flat. Above it the drive is voltage-limited and something has to give.
Look at the term. The flux the machine is working against is , and is ours to choose. Make it negative and the flux shrinks, the back-EMF shrinks with it, and the voltage requirement comes back inside the limit.
That is field weakening: spending current on the d-axis, where it makes no torque, to buy back the voltage headroom that lets the q-axis keep working.
The characteristic current decides everything
Push far enough negative and the flux reaches zero. The current that does it is the characteristic current:
For the reference machine that is −40.5 A. Whether the drive can reach it decides what kind of machine you have:
- If is inside the current limit, the flux can be fully cancelled, the back-EMF can be held bounded at any speed, and the speed range is unlimited in principle.
- If it is outside, weakening runs out before the flux does and the machine has a hard maximum speed.
Most surface-magnet machines fall in the second category — strong magnets, low inductance, so is huge. Interior-magnet machines are deliberately designed towards the first, which is why traction drives use them.
What the envelope looks like
For the reference machine on a 48 V link, with three different current limits:
| Current limit | Base speed | Flux cancellable? | Torque at 2× base | at 3× base |
|---|---|---|---|---|
| 20 A | 5166 rpm | no | 43% | — (none) |
| 40 A | 2863 rpm | marginal | 59% | 40% |
| 60 A | 1284 rpm | yes | 69% | 51% |
Two things worth noticing.
Base speed falls as the current limit rises. That looks backwards until you remember that more current needs more voltage — a bigger drop and a bigger drop — so the ceiling arrives sooner. A drive rated for more torque has a lower base speed on the same DC link, and that is not a defect.
Above base speed, torque falls but roughly as , which is constant power. The dotted line on the figure is exactly constant power through the base-speed point; the real envelope tracks it while the weakening is working and falls away from it once the current limit starts binding as well.
On the bench Raise the DC link and the whole envelope stretches to the right — base speed is proportional to available voltage. That is the cheapest way to buy speed range, and it is why traction inverters run at hundreds of volts for machines that would work perfectly well at 48.
The geometry
Everything above is one picture. In the current plane there are two constraints:
- The current limit is a circle of radius , fixed.
- The voltage limit is a closed curve centred near the characteristic current, which shrinks as speed rises.
Below base speed the voltage curve is large and the optimum sits on the MTPA locus, well inside it. Above base speed the two curves intersect and the optimum slides along their intersection, dragging steadily further into negative . Eventually the voltage curve shrinks entirely inside the current circle and the current limit stops mattering at all.
If the shrinking curve collapses around a point the drive can reach, the machine runs on for ever. If it collapses around a point outside the current circle, the feasible set becomes empty and the machine has hit its maximum speed.
On the bench Textbooks draw that voltage curve as an ellipse centred exactly on , which comes from neglecting the stator resistance. It is the right picture for understanding and it can be quantitatively poor: this machine needs 40 A of d-axis current to cancel its flux, and 40 A through 0.35 Ω is 14 V — half the 27.7 V budget. The site’s figure draws the boundary from the exact constraint for that reason.
The first version of the solver here sampled the textbook ellipse for candidate operating points and rejected every one of them, because the approximate curve and the true one were nowhere near each other. It reported a drive with a generous current limit as having less speed range than one with a small limit — an obviously wrong answer that only showed up because a test compared the two.
Doing it in a real drive
The closed-form solutions in the literature are worth knowing and are rarely what ships, because they depend on and — the two parameters that drift most with temperature and saturation. Getting them wrong at high speed means either leaving performance unused or losing control of the flux, and the second is dangerous.
Production drives overwhelmingly use voltage feedback instead: watch how much of the available voltage the current loop is actually asking for, and if it is close to the limit, wind more negative until it is not.
/* The modulation index the current loop is demanding. */
const float m = sqrtf(vd_ref*vd_ref + vq_ref*vq_ref) / v_limit;
/* Above the threshold, weaken. Below it, relax back towards MTPA. */
const float err = m - 0.95f;
fw_integrator += KI_FW * err * dt;
fw_integrator = clampf(fw_integrator, 0.0f, i_max);
id_ref = mtpa_id(iq_ref) - fw_integrator;
/* The current limit is on the VECTOR, so iq gets what is left. */
const float iq_room = sqrtf(fmaxf(0.0f, i_max*i_max - id_ref*id_ref));
iq_ref = clampf(iq_ref, -iq_room, iq_room);
It is a slow outer loop around the fast current loop, and it needs no machine parameters at all — it measures the thing it is trying to control. The threshold sits slightly below 1.0 so the current loop keeps some authority; run it right at the limit and the loop has nothing left to regulate with.
On the bench Note the last three lines. The current limit applies to the vector, so as grows more negative there is less room for — and the torque reduction is a consequence of that geometry, not something to be commanded separately. Clamping the axes independently allows times the intended current, which is the same mistake as the anti-windup and MTPA limit bugs. Three pages, one lesson: shared budget, shared limit.
The failure that matters
If the drive loses control while the flux is weakened — a fault trip, a gate driver shutdown, a lost angle — the d-axis current disappears, the flux returns to full strength, and the machine is suddenly generating full back-EMF at high speed. On a 48 V system that is a nuisance. On a 400 V traction system running at three times base speed it means over a kilovolt appearing across the DC link, through the freewheeling diodes, into the battery.
This is the uncontrolled generator mode, and it is a safety case, not a performance one. It is why traction machines are designed so that the characteristic current is inside the current rating: a machine that can cancel its own flux is also a machine whose short-circuit current is bounded, and deliberately shorting all three phases becomes a safe response to a fault.
What to take away
- Base speed is where the back-EMF plus the drops first reach the voltage limit at full torque. Below it, torque is flat; above it, something must give.
- Negative reduces the flux, reduces the back-EMF, and buys back the voltage. It makes no torque itself — the torque loss is the price.
- The characteristic current decides the speed range. Inside the current limit means unlimited in principle; outside means a hard ceiling.
- Base speed falls as the current limit rises, because more current needs more voltage.
- Implement it with voltage feedback, not a formula. The formula depends on the two parameters that drift the most.
- Apply the current limit to the vector, and let take what is left.
- Design the characteristic current inside the rating if the machine will ever spin fast — the alternative is an uncontrolled generator on a fault.