simulating_a_time-varying_capacitor_in_spice
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
simulating_a_time-varying_capacitor_in_spice [2024/09/08 17:14] – removed bm | simulating_a_time-varying_capacitor_in_spice [2024/09/10 11:51] (current) – bm | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | =====Simulating a time-varying capacitor in Spice===== | ||
+ | |||
+ | The relationship between the voltage $v_C$ over and the current $i_C$ through a capacitor is determined by its capacitance $C$: | ||
+ | |||
+ | $$ i_C(t)=C\frac{dv_C(t)}{dt}$$ | ||
+ | |||
+ | However, this current-voltage relationship is not valid when the capacitor is varying in time. For a time variant capacitor, the equation modifies to: | ||
+ | |||
+ | $$ i_C(t)=\frac{d}{dt}[C(t).v_C(t)]=C(t)\frac{dv_C(t)}{dt}+v_C(t)\frac{dC(t)}{dt}$$ | ||
+ | |||
+ | Rearranging this equation gives an expression for the voltage over the capacitor: | ||
+ | |||
+ | $$ v_C(t)=\frac{1}{C(t)}[C(0)v_C(0)+\int_0^t i_C(t) dt] $$ | ||
+ | |||
+ | valid if $C(t)\neq 0$ at //any// time. | ||
+ | |||
+ | We will use this expression to simulate a time-varying capacitor in LT Spice. Notice the limitation that $C(t)\neq 0$ at //any// time. | ||
+ | |||
+ | Suppose we want we simulate a sinusoidal value in function of time with a certain offset: $C(t)$= 5 nF + 3 nF.sin(2π.100 kHz.t). In order to realize this, we have to introduce a custom component in SPICE with the following subcircuit: | ||
+ | |||
+ | < | ||
+ | .subckt capacitor + - params: VC0=0 | ||
+ | .func C(time) {5n+3n*sin(2*pi*100k*time)} | ||
+ | hvolt + - value={(sdt(I(hvolt))+VC0*C(0))/ | ||
+ | .ends | ||
+ | </ | ||
+ | |||
+ | Current Dependent Voltage Source | ||
+ | |||
+ | The voltage over the capacitor (see equation above) is modeled via a current dependent voltage source '' | ||
+ | |||
+ | First, we save the code for this subcircuit into a .txt-file and, for example, place this file in the same folder as your SPICE circuit file. | ||
+ | |||
+ | Next, open the text file in LT Spice, right click on the first word " | ||
+ | |||
+ | The program asks you if you wish to automatically create a symbol. Click " | ||
+ | |||
+ | To use the time-varying capacitor in a circuit, click " | ||
+ | |||
+ | Plotting the value of the capacitance in SPICE in function of time is not straightforward. Let us just check some individual times: we compare the value of the current through and voltage over the capacitor (i) in the case of the time-varying capacitor at time $t_i$ (after the transition period), and (ii) in the case of a static capacitor with value $C(t_i)$. | ||
+ | |||
+ | Case (i): We apply a high frequency source in order to create an envelope facilitating comparison between both cases. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | At a certain time, e.g., t=50µs, the value of the capacitor equals $C$(50µs)= | ||
+ | If we then zoom in at the simulation at t=50µs, we find the peak value of voltage over and current through the inductor. | ||
+ | |||
+ | Case (ii): We compare this value with a static inductor of 5 nF: | ||
+ | {{: | ||
+ | |||
+ | We find that both the current and voltage correspond to case (i). | ||
+ | |||
+ | We do the same for a lot of other values of time, and always find a correspondence between both cases. This is not a rigid proof, but it gives us sufficient confidence that the capacitor was modeled correctly in SPICE. | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | **References** | ||
+ | * Biolek, D., Kolka, Z., & Biolkova, V. (2007). Modeling time-varying storage components in PSpice. In Proc. Electronic Devices and Systems IMAPS CS International Conference EDS (Vol. 2007, pp. 39-44). | ||
simulating_a_time-varying_capacitor_in_spice.1725815644.txt.gz · Last modified: by bm