For the PDF version of this article, click here.

In this third and final installment (read part I and part II), the technique for modeling variable passives in SPICE is applied to inductors.

When an inductor is energized, it struggles to keep the ampere-turns constant, acting like a real current source. Using that characteristic, we can model our variable inductor. If we apply Lenz's law, we can state that:

Rearranging this equation leads to:

If we now integrate both parts of this equation, we obtain:

Since L is constant, we have:

or

Equation 5 simply means that we need to integrate the voltage present across our equivalent inductor and divide it by the control voltage intended to simulate L. Fig. 1 shows the equivalent subcircuit.

The voltage integration is made by transforming terminals voltages into a current, and again, injecting this equivalent current into a 1-F capacitor. The subcircuit netlist is:

IsSpice

.SUBCKT VARICOIL 1 2 CTRL
BC 1 2 I=V(INT)/V(CTRL)
BINT 0 INT I=V(1,2)
CINT INT 0 1
.ENDS

PSpice

.SUBCKT VARICOIL 1 2 CTRL
GC 1 2 Value={V(INT) V(CTRL)}
BGINT 0 INT Value={V(1,2)}
CINT INT 0 1
.ENDS

These techniques can now be extended to construct adjustable LC filters and model them in SPICE for performing complex ac analysis. Now, if we simulate Fig. 2, we can obtain Fig. 3 waveforms.

Some simulators do not include ABM equations for their L, R and C elements. But, thanks to the simple subcircuits described in this article, it's now possible to create passive elements whose values are dependent on complex analytical expressions, including logical expressions.

These techniques pave the way for building nonlinear capacitors, time-dependent resistors and other variable passive elements.