SPICE Analog Behavioral Modeling of Variable Passives
Apr 1, 2005 12:00 PM
By Christophe Basso, Application Manager, ON Semiconductor, Toulouse, France
News & Features From Auto Electronics
Committed to improving hybrid electric cars
New Motors for Hybrid Vehicles
Battery Firms Battle for Hybrid Hegemony
Innovative Bipolar Plates for Fuel Cells
See More Headlines
Top Articles
Exploring Current Transformer Applications
Ultracapacitor Technology Powers Electronic Circuits
Buck-Converter Design Demystified
Sensorless Motor Control Simplifies Washer Drives
PET Resources
Buyer's Guide
Conferences
Engineering Jobs
Power Electronics Events
Rent Our Lists
Spotlight on Digital Power
For the PDF version of this article, click here. Click to read part I and part III of this article.
In part one of this article (see “SPICE Analog Behavioral Modeling of Variable Passives,” March 2005, Power Electronics Technology), a method for modeling a variable resistor within SPICE was described. Here in part two, a similar technique is applied to model variable capacitors.
As we did in the previous article with the resistor, a capacitor can be portrayed by a voltage source obeying the following law:
In other words, if we integrate the current flowing into our equivalent subcircuit capacitor and multiply it by the inverse of a control voltage V, we obtain a capacitor of value C = V. Unfortunately, there is no integral primitive in SPICE since it involves the variable t, which is continuously varying. Therefore, why not capitalize on the equation and force the subcircuit current into a 1-F capacitor? By observing the resulting voltage over this 1-F capacitor, we have integrated I
In Fig. 1, the dummy source V routes the current into the 1-F capacitor, which develops the integrated voltage on the “int” node. Then, once multiplied by the inverse of the CTRL node voltage, it mimics our variable capacitor. Fig. 2 shows an actual test circuit used to verify the validity of our Spice model. Fig. 3 displays voltages and currents obtained from both the real capacitor and the variable one modelled in Spice. There is no difference between plots.
Below are the models in both IsSpice and PSpice:
IsSpice
.SUBCKT VARICAP 1 2 CTRL
R1 1 3 1u
VC 3 4
BC 4 2 V=(1/v(ctrl))*v(int)
BINT 0 INT I=I(VC)
CINT INT 0 1
.ENDS
PSpice
.SUBCKT VARICAP 1 2 CTRL
R1 1 3 1u
VC 3 4
EC 4 2 Value = { (1/v(ctrl))*v(int) |
GINT 0 INT Value = { I(VC) |
CINT INT 0 1
.ENDS
Tests also were run in ac analysis where the model confirmed its accuracy in the frequency domain.

