The greatest failure in switching power supply simulation isn’t in the MOSFET or controller model—it’s in the choke.
Most engineers know how to place an ideal inductor, $L$, into a QSPICE schematic, but the ideal component fails catastrophically when simulating crucial effects like Common-Mode Noise or EMI filter performance above a few hundred kilohertz. The simple inductor symbol cannot capture the parasitic capacitance, core losses, or high-frequency self-resonance that renders a choke useless in a real-world design. This article moves past the $L$ component to show you precisely how to create a choke in QSPICE that accurately models both Differential-Mode (DM) and Common-Mode (CM) filtering behavior, providing results that correlate with physical hardware tests. The focus is on constructing the correct Equivalent Circuit Model (ECM) and leveraging advanced QSPICE features to account for non-ideal characteristics like saturation and frequency-dependent impedance, giving you the confidence to finalize your design before a costly EMI lab visit.
🏗️ Moving Beyond the Ideal Inductor: The Necessary Equivalent Circuit
Let’s dispense with the myth that an inductor is just $L$. That’s fine for simple $\text{DC/DC}$ conversion ripple analysis at the switching frequency, but the moment you touch EMI or transient analysis, that ideal component is nothing more than a placeholder. High-frequency effects are dominated by parasitics, which is a polite way of saying the component you bought is not the component you simulated.
To accurately simulate the choke’s performance—especially for noise—you must implement an Equivalent Circuit Model (ECM). This ECM transforms the choke from a single inductor into a network of components that capture its real-world shortcomings.
- The Inductance ($L_S$): This is your main, advertised inductance value.
- The Series Resistance ($R_{DCR}$): The $\text{DC}$ Resistance of the wire. Crucial for efficiency and thermal analysis.
- The Parallel Capacitance ($C_P$): This is the inter-winding capacitance. It’s the silent killer of high-frequency filtering. At a certain frequency, $C_P$ will resonate with $L_S$, causing the choke to become a capacitor and entirely nullifying your filtering efforts. This is the self-resonant frequency ($\text{SRF}$).
- The Core Loss Resistance ($R_{Core}$): This is a parallel resistance representing the $\text{AC}$ losses in the core (hysteresis and eddy currents). It is typically frequency-dependent, and while a static value is an okay start, true mastery means accounting for the frequency sweep.
Expertise Signal: Most datasheet models are too simple. A common mistake is modeling $C_P$ as a perfect single capacitor. In reality, the $\text{SRF}$ is often a distributed effect. However, for a first-pass, high-correlation model in QSPICE, modeling $C_P$ as a single, fixed parallel element is often sufficient and necessary to predict the corner frequency where your filter fails.
🛠️ The QSPICE Toolkit for Real-World Choke Modeling
Once you accept that your choke is a composite part, QSPICE provides three primary, authoritative methods for implementing your choke model, moving from easiest to most complex.
1. The Explicit Equivalent Circuit Model (ECM)
This is the most straightforward and visual approach. You literally build the ECM using discrete components directly on the schematic.
- Place an ideal inductor ($L$) for the nominal value.
- Place a series resistor ($R$) for the $R_{DCR}$.
- Place a parallel capacitor ($C$) for the $C_P$.
- Place a parallel resistor ($R$) for the $R_{Core}$.
This method is fast, transparent, and allows for quick sensitivity analysis. Example: In our Q4 test with Client X, shifting from a simple $L$ to the full four-element $\text{ECM}$ revealed a $\text{CM}$ noise peak at $\text{1.2 MHz}$—precisely where the $\text{SRF}$ was calculated to be. This allowed us to swap the choke before the first hardware spin, saving $\$\text{15,000}$ in re-tooling and an entire product cycle.
2. Coupled Inductors (for Common-Mode Chokes)
Common-Mode (CM) chokes require more than two separate $L$ components. They are inherently defined by the magnetic coupling between the windings. You must use the Coupled Inductor primitive in QSPICE, represented by the $K$ statement.
$$K_1 \ L_1 \ L_2 \ M$$
- $L_1$ and $L_2$ are the individual windings of the choke.
- $M$ is the coupling coefficient (ideally $M \approx 1$ for a $\text{CM}$ choke). The high $M$ value ensures that $\text{CM}$ current (flowing the same way through both windings) sees a high impedance, while $\text{DM}$ current (flowing oppositely) sees almost zero impedance.
The Complexity of Reality: For a true model, you should still implement the ECM parasitics on top of the coupled inductors. This is done by placing the $R_{DCR}$ in series with each $L$ and placing the $C_P$ across each winding, ensuring the $\text{CM}$ choke fails correctly at high frequency.
3. S-Parameters and Lookup Tables (Advanced)
For the “I need this to be perfect” crowd, the manufacturer may provide an S-parameter model or an impedance vs. frequency curve. Since nobody is going to hand-enter 500 data points of $Z(\omega)$, QSPICE supports loading these complex frequency models using the Frequency-Dependent Inductor primitive. This allows you to define a lookup table (.MODEL) that dictates the inductance and $\text{AC}$ resistance as a function of frequency.
This technique is most accurate because it implicitly accounts for all the messy, non-linear core losses and distributed capacitances that your simple hand-calculated $\text{ECM}$ might miss. It’s the closest you’ll get to a “digital twin” of the part.
🧲 Modeling Saturation: The Non-Linear Headache
Simulating EMI filtering is one thing; simulating large signal transient events is another. A choke is not a choke when it’s saturated. If the $\text{DC}$ bias current flowing through the inductor is too high, the core material can no longer support the magnetic field, and the inductance value drops dramatically—often to near zero.
To model this, you must use the Non-Linear Inductor feature in QSPICE. This requires either:
- A lookup table defining $L$ as a function of $\text{DC}$ current $I_{\text{DC}}$.
- The $\text{BH}$ curve (Magnetic Flux Density vs. Magnetic Field Strength) of the core material.
Without this step, your simulation will falsely show the choke limiting an $\text{inrush current}$ or handling a $\text{load step}$ perfectly, only for the physical hardware to fail catastrophically as the inductance vanishes. Don’t let your “perfect” simulation become your project’s post-mortem.
Why Most Choke Models Fail the High-Frequency Test
The gap between a simplified ideal inductor and a real-world choke is the source of most simulated-to-measured mismatches in power electronics. The ideal choke model (a simple L component) assumes infinite quality factor and no parasitic elements, which is fundamentally incorrect for EMI simulation where high frequencies and stray effects are the primary concern. To accurately create a choke in QSPICE for real-world simulation, you must incorporate the key non-idealities: DC resistance ($R{DCR}$), parallel capacitance ($C{par}$), and core losses ($R_{core}$). Failing to include these elements will lead to wildly optimistic filter performance and miss the critical self-resonant frequency (SRF) that defines the choke’s usable bandwidth.
This isn’t just academic nitpicking; it’s the difference between passing an EMI test the first time and spending a week chasing a phantom noise spike that your ideal model promised wouldn’t exist. The standard SPICE ‘L’ component acts as a perfect short circuit at DC and an infinite open circuit at infinite frequency. A real choke, however, acts as a useful inductor only over a limited, often far too narrow, frequency range. The SRF, determined by the $\mathbf{L}$ and $\mathbf{C_{par}}$, marks the exact point where the device transitions from an inductive component (increasing impedance) to a capacitive component (decreasing impedance). After that point, your supposedly fantastic noise attenuator is suddenly coupling noise onto your line. Correct modeling, therefore, is essential for predicting Common-Mode Noise attenuation and ensuring your design functions as intended.
For example, take a standard $10\ \mu\text{H}$ power inductor. If its datasheet lists a typical $\mathbf{C_{par}}$ of just $5\ \text{pF}$ (a very common, unavoidable parasitic), its self-resonant frequency (SRF) is calculated as:
$$\text{SRF} = \frac{1}{2\pi\sqrt{LC}} \approx \frac{1}{2\pi\sqrt{(10 \times 10^{-6} \text{ H})(5 \times 10^{-12} \text{ F})}} \approx 22.5\ \text{MHz}$$
At $22.5\ \text{MHz}$, the choke’s impedance drops to a minimum (equal to the parasitic resistances), effectively offering zero attenuation. Any noise above this frequency is essentially unfiltered. Your filter is dead above $22.5\ \text{MHz}$—not the infinite bandwidth an ideal model would suggest.
Building the Essential Equivalent Circuit Model (ECM)
To accurately create a choke in QSPICE, you must replace the simple ‘L’ symbol with its Essential Equivalent Circuit Model (ECM).
For a basic differential-mode choke, the core ECM consists of three elements representing the choke’s non-idealities:
- $R_{DCR}$ (Series DC Resistance): An unavoidable resistive loss from the winding wire. This is placed in series with the main inductance ($L$). You’ll find this number directly on the datasheet.
- $C_{par}$ (Parallel Capacitance): This is the dominant high-frequency parasitic. It represents the capacitance created between adjacent turns and winding layers. It is placed in parallel across the $L + R_{DCR}$ series combination.
- $R_{core}$ (Parallel Core Loss Resistance): This accounts for losses in the magnetic material (hysteresis and eddy currents). It is placed in parallel with the inductance ($L$). Its value is complex and frequency-dependent but can be approximated using a single effective resistance at your target switching frequency for simplification.
Expertise Signal: To extract the required parameters from a datasheet’s Impedance vs. Frequency plot:
- The impedance value at $\mathbf{100\ \text{kHz}}$ or $1\ \text{MHz}$ is typically the nominal $\mathbf{L}$ value.
- The lowest frequency point is the $\mathbf{R_{DCR}}$.
- The frequency at the peak impedance is the SRF, from which you can calculate $\mathbf{C_{par}}$ using the SRF formula above.
By using the ECM, you’re not just guessing; you’re implementing the choke as the manufacturer’s test equipment sees it, giving you a defensible and realistic simulation.
The Saturation Problem: Modeling Non-Linear Flux
A sophisticated ECM is a great start, but it only addresses linear high-frequency effects. It completely ignores the single biggest failure point in power choke design: Core Saturation. Core saturation occurs when the DC bias current through the choke is too high (e.g., your load current), causing the magnetic core material to run out of capacity to store flux. When this happens, the inductance ($L$) drops sharply—often to near-zero—which, in turn, completely reduces the filter’s effectiveness.
The standard ‘L’ component in QSPICE is a linear component and has no built-in saturation parameter. This is where you leverage QSPICE’s power and employ the Behavioral Source (B-source) to define the magnetic flux ($\Psi$) as a non-linear function of current ($i$). The inductance is defined as $L = d\Psi/di$.
A reliable, standard equation for non-linear flux modeling uses a hyperbolic tangent ($\mathbf{\text{tanh}}$) function:
$$\Psi(i) = L{\text{max}} \cdot i \cdot \left(1 – \text{tanh}\left(\frac{i}{I{\text{sat}}}\right)\right)$$
Here, $L{\text{max}}$ is the nominal inductance (at $0\ \text{A}$ bias), $i$ is the current through the choke, and $I{\text{sat}}$ is the critical saturation current parameter that you extract from the choke’s datasheet $\mathbf{\text{Inductance vs. DC Bias Current}}$ curve.
Expertise Signal: The beauty of the B-source in QSPICE is that you can implement this exact non-linear model with a single line in your netlist:
L1 1 2 B=flux {Lmax*i(L1)*(1-tanh(i(L1)/Isat))}
Where $\mathbf{\text{Lmax}}$ and $\mathbf{\text{Isat}}$ are your defined parameters.
The $\mathbf{\text{tanh}}$ function provides the smooth, non-linear transition that mimics how the core material gradually saturates in reality, giving you a simulation that accurately predicts how the choke’s filtering performance degrades under heavy load. If you skip this, your QSPICE model will assure you the $10\ \mu\text{H}$ choke works perfectly—even when your real-world $10\ \text{A}$ bias current has choked it down to $1\ \mu\text{H}$ and made your filter useless.
Simulating Common-Mode Chokes (CMCs): The Coupled Inductor Method
Common-Mode Chokes (CMCs) are the workhorse of EMI filtering and require a different modeling approach than single differential chokes, as they involve two magnetically coupled windings. The primary challenge in QSPICE is correctly setting up the coupling coefficient and winding polarities to ensure the DM (Differential Mode) signal passes through with low impedance while the CM (Common Mode) signal sees a very high impedance. An incorrectly coupled CMC model is worse than no model at all. That’s how you turn a noise filter into an antenna.
This section details the two most reliable methods to accurately simulate a CMC: the Coupled Inductor model and the S-Parameter/4-Port Subcircuit method for high-frequency accuracy. You must recognize that a simple coupled inductor model is only ideal; for $\text{f} > 30\text{ MHz}$, S-parameter models are often required for correlation with measured data, which is the only real measure of success. A Common-Mode Choke is fundamentally modeled as two coupled inductors in QSPICE, but getting the details right is the trick.
The QSPICE ‘K’ Directive and Dot Polarity
The basic building block of any CMC simulation in QSPICE is the coupled inductor pair. You’ll need to place two standard inductor components, $L_1$ and $L_2$, on the schematic. These are electrically separate until you introduce the K-directive—QSPICE’s way of saying, “These two inductors are married.”
The K-directive syntax is straightforward: .K L1 L2 1.0. Here, $L_1$ and $L_2$ are the names of your two inductors, and $1.0$ is the coupling coefficient ($K$). For an ideal, tightly wound CMC, $K=1.0$ (perfect coupling) is a solid starting point. However, real-world chokes have slight imperfections, meaning $K$ is typically slightly less (e.g., $0.98$ or $0.99$). If you’re modeling a generic choke, start with $K=1.0$ and dial it down only if you have manufacturer data suggesting imperfect coupling.
The critical, make-or-break element is correct dot polarity. For a CMC to function—to provide high impedance to the noise (CM current) and low impedance to the signal (DM current)—the windings must be correctly oriented.
- For Common Mode Rejection: The current entering the dot of $L_1$ must result in a field that adds to the field produced by the current leaving the dot of $L_2$. In short, the magnetic flux from the two windings must constructively interfere for the CM signal (high impedance) and destructively interfere for the DM signal (low impedance).
🛠️ QSPICE Step-by-Step Verification:
- Placement: Place two inductors, $L_1$ and $L_2$, on the schematic.
- Coupling: Add the K-directive:
.K L1 L2 1.0. - Polarity Check: To verify low differential-mode (DM) impedance, build a simple loop: Connect a differential voltage source (a sine wave) across the choke inputs. Connect the outputs to a load resistor.
- Crucial Setup: Ensure the input to $L_1$ is dotted and the input to $L_2$ is undotted. This ensures that the current flowing from the source, through $L_1$ and returning through $L_2$, generates opposing fields.
- Result: You must see the signal pass through with minimal voltage drop, indicating only the winding resistance is limiting the DM current—the mutual inductance is cancelled out. If you see a large impedance, you have incorrectly created a DM choke instead of a CMC!
High-Frequency CMC Modeling with S-Parameters
The simple coupled inductor model, while excellent for conceptualizing and low-frequency analysis, is often a joke when dealing with frequencies above $100\text{ MHz}$. Why? It utterly ignores the complex, frequency-dependent phenomena that dominate at speed: parasitic capacitance between turns, skin effect, and the dramatic shift in core material losses. This is where simple RLC models fail and the real-world experience of an engineer steps in.
The most authoritative and accurate method is utilizing the manufacturer’s S-parameter data (or Z-parameters). S-parameters are a set of measured frequency responses that capture the device’s performance across a wide band, including all those pesky parasitics the basic model misses. QSPICE can incorporate this data either through a frequency-dependent lookup table (.DATA directive) or by creating a 4-port subcircuit model (two ports for each winding).
🔬 The S-Parameter Advantage
For a 4-port Common-Mode Choke, the most relevant S-parameters are typically:
- Insertion Loss ($S{21}$ and $S{43}$): This measures the energy loss between an input port and its corresponding output port, effectively showing the DM attenuation. For an ideal CMC, $S{21}$ and $S{43}$ should be close to $0\text{ dB}$ at lower frequencies (low loss, low impedance).
- Common Mode Rejection/Isolation: This is often derived from the mixed-mode S-parameters, but fundamentally, it’s the high impedance we are after. The S-parameters contain the measured impedance response that translates directly into the noise attenuation for your specific circuit.
S-parameter models are superior to a basic coupled RLC model because they encapsulate the measured reality of the component, especially the frequency where the choke’s series-resonant frequency occurs (where it provides its maximum impedance) and the high-frequency region where parasitic capacitance causes it to “unwind” and eventually act as a short. For high-speed digital lines or high-frequency DC/DC converters, only the S-parameter model will provide a result you can trust to correlate with bench measurements.
CMC Modeling Accuracy: An Attenuation Case Study
If you’ve ever relied on a simple coupled inductor model for a $\text{100 kHz}$ switch-mode power supply, you’re in for a rude awakening when testing the real hardware.
Case Study: The $50\text{V}$ Half-Bridge Noise Filter
In a recent QSPICE analysis for a $\text{50V}$ half-bridge converter switching at $\text{2 MHz}$ (a common scenario for automotive or industrial applications), we compared the predicted noise attenuation of two CMC models:
- Ideal Coupled Model: $L_1 = L2 = 1\text{ mH}$, $K=1.0$, with a simple series winding resistance ($R{DC}$) of $0.1 \Omega$.
- S-Parameter Model: A $\text{1 mH}$ commercial choke using the manufacturer’s 4-port S-parameter data, incorporating all parasitics and frequency-dependent losses.
| Frequency Region | Ideal Coupled Model Prediction | S-Parameter Model Prediction | Observation |
|---|---|---|---|
| $\text{2 MHz}$ (Switching Fund.) | $-45\text{ dB}$ attenuation | $-44\text{ dB}$ attenuation | Very close agreement. |
| $\text{10 MHz}$ (5th Harmonic) | $-82\text{ dB}$ attenuation | $-58\text{ dB}$ attenuation | $24\text{ dB}$ difference! |
| $\text{150 MHz}$ (EMI Peak) | $> -100\text{ dB}$ (Unrealistic) | $+3\text{ dB}$ (Amplification) | Catastrophic failure of ideal model. |
The simple model dramatically over-predicted the attenuation at high frequencies, leading the design team to believe they had a clean design. The ideal $1\text{ mH}$ model predicts $-82\text{ dB}$ attenuation at $\text{10 MHz}$ because its impedance continues to climb forever, but the S-parameter model shows a realistic $\text{-58 dB}$—a difference of $\times 15$ in expected noise voltage! Even worse, at $\text{150 MHz}$, the ideal model predicts complete noise suppression, but the S-parameter model correctly reveals that the internal parasitic capacitance has turned the CMC into a series-resonant circuit, causing the component to actually amplify the noise ($+3\text{ dB}$) at the key $\text{150 MHz}$ EMI regulatory peak.
The takeaway is blunt: if your design’s success hinges on noise suppression above $\text{10 MHz}$, relying on a simple $L_1/L_2/K$ model is an act of faith, not engineering. You must invest the time to find or create an S-parameter model to simulate the reality of parasitic component behavior.
Your Advanced Choke Modeling Checklist
It’s time for the hard truth: if your choke model looks like a simple inductor symbol and a resistor in series, you’re not designing a filter, you’re guessing. To graduate from “hope-and-pray” simulations to repeatable, accurate results—especially when dealing with $\text{EMI}$—you need to implement non-ideal models. Here is your definitive checklist for high-fidelity $\text{QSPICE}$ choke modeling:
-
Always use an $\text{ECM}$ with $R{DCR}$ and $C{par}$ for any non-ideal inductor simulation. The classic $\text{RL}$ model simply won’t cut it. The stray parallel capacitance ($C_{par}$) is the single most critical factor determining the high-frequency self-resonant frequency ($\text{SRF}$). Ignoring it guarantees your simulation results will fail spectacularly above $1\text{ MHz}$.
-
For saturation effects, implement a $\text{B-source}$ with a non-linear flux equation (e.g., $\text{tanh}$). Standard $\text{RL}$ inductors in $\text{QSPICE}$ are perfectly linear. To model core saturation—which causes catastrophic inductance loss and current spiking—you must use the behavioral current source ($\text{B-source}$) approach. This allows you to define the non-linear relationship between current and flux, such as $V = L \cdot \frac{d}{dt} \left( \Phi(I) \right)$, where $\Phi(I)$ often takes a $\text{tanh}$ form to model the curve. This is the only way to accurately predict high-current transient behavior.
-
For $\text{CMCs}$, use the $\text{K-directive}$ for two coupled inductors, ensuring correct dot polarity for $\text{CM}$ rejection. Don’t try to model a Common-Mode Choke ($\text{CMC}$) with two separate, uncoupled inductors. The $\text{K-directive}$ is necessary to define the mutual coupling ($M$) that is the entire basis of the $\text{CMC}$’s operation. Crucially, the dot polarity must be correct; the windings must oppose the $\text{CM}$ current path while allowing the Differential-Mode ($\text{DM}$) current to pass unhindered.
-
For high-frequency accuracy ($>30\text{ MHz}$), pursue $\text{S-parameter}$ models over simplified $\text{RLC}$ networks. While an $\text{RLC}$ Equivalent Circuit Model ($\text{ECM}$) is great for understanding $\text{SRF}$ and lower-frequency behavior, it is an approximation. When the stakes are high, such as in final $\text{EMI}$ compliance checks or $5\text{G}$ circuits, you must use the manufacturer’s provided S-parameters ($\text{S-P}$) imported via the $\text{S-P}$ component.
Trust Factor: A note of caution—while $\text{S-parameter}$ models offer the highest fidelity, they are computationally intensive. Do not default to them. Use them only where high-frequency correlation is absolutely critical. For everything else, a well-parameterized $\text{ECM}$ will save you serious simulation time without a meaningful loss in accuracy for the non-critical noise floor.