Don't Complicate Your Inductances
Why does inductance change when a motor saturates?
Inductance is one of the most commonly used parameters when analyzing and controlling an electric motor. We usually treat it as a fixed value — for example, an IPM motor might have an Ld of some value and an Lq of another.
But is the inductance really constant? The short answer is no — inductance changes due to saturation. If you want to know the reason behind it, read along.
In the last blog we assumed that inductance stays constant regardless of the current. In this article we look more closely at inductance and its calculation: the theory behind it, two common ways of calculating it (apparent and incremental), and a comparison of the two methods under two different operating conditions.
1. What is inductance?
For a simple linear inductor, we can write:
where L is inductance, i is current, and λ is flux linkage. Therefore:
This is straightforward when the magnetic material is operating in the linear region. The problem is that motor iron is not always linear. When the motor starts to saturate, the relationship between current and flux linkage is no longer a straight line.
As the image shows, in the linear part the ratios are equal, but once saturation sets in the ratio changes. This means the inductance of the motor is not constant. There are two common ways to calculate it, explained below.
2. Apparent inductance
The first method is the apparent inductance. It is calculated as:
In other words, it looks at the total flux linkage produced by the current and divides it by the current. This is often the value we get when calculating inductance from a conventional operating point. At low current, where the motor is not significantly saturated, this works very well. But what happens when the motor saturates?
3. Incremental inductance
Incremental inductance looks at the change in flux linkage caused by a small change in current. It can be written as:
So instead of the complete flux linkage, we are looking at the slope of the flux-linkage curve at a particular operating point.
When the magnetic circuit is linear, the two values are essentially the same. When saturation becomes significant, they can be quite different. This distinction matters when the inductance is being used to describe the behavior of the motor around a particular operating point.
4. Simulation setup
For this experiment we used the same motor as in the last blog, simulated with sinusoidal current excitation. Two operating conditions were simulated:
- Very light load / low current
- High current / heavy load
To save simulation time, we used 40 steps per electrical cycle.
5. Low-current simulation (5 A)
First, the motor was simulated at a very low current (5 A).
At this operating point the magnetic circuit is mostly unsaturated. The calculated inductances were:
| Inductance \ method | Apparent | Incremental |
|---|---|---|
| Ld (mH) | 8.55 | 8.41 |
| Lq (mH) | 27.57 | 26.65 |
As expected, the two methods give very similar results — exactly what we would expect from a motor operating in the linear region.
6. High-current simulation (50 A)
The same calculation was then repeated at a much higher current (50 A).
At this operating point some parts of the magnetic circuit are approaching saturation, and the results are now different:
| Inductance \ method | Apparent | Incremental |
|---|---|---|
| Ld (mH) | 8.69 | 7.05 |
| Lq (mH) | 14.6 | 4.02 |
The difference is far more noticeable than at the low-current point. Notice too that the gap between Ld and Lq has shrunk, so the motor produces less reluctance torque than at the lightly loaded point. This happens because the flux-linkage curve is no longer linear, while apparent inductance is calculated on the assumption that it is.
7. Why does this matter?
If the motor is simulated only at a single operating point, using a fixed inductance may be a reasonable approximation. However, motor control algorithms operate over a range of currents — during normal operation the motor may move from lightly loaded to heavily loaded, or enter flux weakening at high speed.
If Ld and Lq change significantly with current, using one fixed value can introduce errors into the motor model, affecting calculations such as:
- voltage prediction
- current control
- decoupling terms
- flux weakening
- torque prediction
- MTPA calculations
The more saturated the motor becomes, the more important this effect can be.
8. So which inductance should we use?
There isn't one inductance value that is always "correct" — the appropriate value depends on what we are trying to model. Apparent inductance describes the overall relationship between flux linkage and current. Incremental inductance describes how the flux linkage changes around a particular operating point.
When the motor is operating in the linear region, there is very little difference between them. When saturation becomes significant, the incremental inductance can provide a better description of the motor's small-signal behavior around that operating point. This distinction becomes particularly important when the inductance is used in a dynamic motor-control model.
9. Conclusion
Inductance is often treated as a constant motor parameter. In reality, Ld and Lq can change with the operating point, particularly when the motor becomes saturated. At low current, apparent and incremental inductance are usually very similar; as the motor approaches saturation, the difference can become significant.
This is why simply taking one Ld and Lq value from a motor design may not always be enough when building a detailed motor-control model.
In the next blog, we take this one step further and look at how Ld and Lq change across the complete Id–Iq operating range — producing what is commonly known as a Flux LUT.
About the simulation
The simulations in this article were performed using MotorDesignSoftware and FEMM. MotorDesignSoftware can calculate motor inductance using both the apparent and incremental methods, allowing the results to be compared at different operating points. Try it yourself:
- FEMM: femm.info/download
- MotorDesignSoftware: get a license
← Back to all articles