pingspice.analysis.fixture.DiodeRecoveryFixture(Subcircuit) class documentation
Part of pingspice.analysis.fixture
(View In Hierarchy)
A test fixture for testing diode reverse recovery in a simulation-friendly way:
+---+ +----+
+-- 10 ----+-->| R |-------->| A+ |
| | +---+ | |
| | | |
+---------+ | +-------<| C- |
| + | R (SCA) | +----+
| V:Pulse | | | DUT
| - | | |
+---------+ | |
| | |
+----------+--------+
The V source starts at +V_rev, with R selected to push I_fwd amps through the forward-biased diode, assuming it has a typical voltage drop of 0.7V (much smaller than the voltage source, so doesn't have to be exact or even really accounted for).
There is a high-value resistance in parallel with the V source for SCA (SPICE convergence aid), as with many V and B sources throughout. (Usually, SCA resistors are not shown on the diagram.)
To drop the current at the specified rate of dIdt, the V source goes from full positive to zero in time I_fwd / dIdt:
+---//--------------------------//-------------+
|: : : : |
|:--//---, : : ,-|
|: :\ : : / |
|: : \ : : / |
|: : \ : : / |
|: : \ : : / |
|.............\........................./......|
|: : \ : : / |
|: : \ : : / |
|: : \ : : / |
|: : \: V:Pulse :/ |
|: : '---------------' <----------- V_rev
|: : : : |
+:--//---:---------:------------//-:-----------+
: : : :
: : : :
+:--//---:---------:------------//-:-----------+
|: : : : |
|:--//---, <--- I_fwd : |
|: :\ : : |
|: : \ : : |
|: : \ : : |
|: : \ : Iac : |
|:..//........\........ ,,------//-:-----------|
|: : \ : / : |
|: : ''---'' : |
|0 ts ts+tr ts+tr+tp |
+:--//---:---------:------------//-:-----------+
: :
: +------- Beginning of "rise" time
+------------Beginning of TRAN simulation
| Instance Variable | V_rev | The cathode-anode voltage at full reverse bias. |
| Instance Variable | I_fwd | The forward current supplied at full forward bias. |
| Instance Variable | dIdt | The derivative of diode current as it transitions from forward to reverse bias. |
| Static Method | timing | Returns pulse start time ts, rise (and fall) time tr, and pulse width time tp. |
| Method | setup | Subcircuit definition. |
Inherited from NodeStuff (via Subcircuit):
| Instance Variable | shunts | A dict of current sensing V elements with the pairs of nodes they connect. |
| Class Variable | debug | A Bag that gets set
True for all instances to log info about each setup
call. |
| Class Method | autoName | Undocumented |
| Method | setupResults | Undocumented |
| Method | fill | Undocumented |
| Method | nodeCheck | Call with the circuit building tool f and a sequence of
nodes provided to this Include or
Subcircuit. |
| Method | rawNetlist | Get lines of a raw netlist from a search hierarchy of possible sources. |
| Method | shunt | Call to insert a current-measuring shunt and add an entry to my Elements
baton's dict of shunts. |
| Method | raw | See Elements.raw. |
| Method | iNode | See Elements.iNode. |
| Method | ground | See Elements.ground. |
| Method | sca | See Elements.sca. |
| Method | sca6 | See Elements.sca6. |
| Class Method | _libDir | Undocumented |
| Method | _strippedLines | Undocumented |
| Method | _call_setup | Calls my setup
method (almost always your override of that method, actually) and processes
any return value. |
Inherited from NodeStuff (via Subcircuit):
| Instance Variable | shunts | A dict of current sensing V elements with the pairs of nodes they connect. |
| Class Variable | debug | A Bag that gets set
True for all instances to log info about each setup
call. |
| Class Method | autoName | Undocumented |
| Method | setupResults | Undocumented |
| Method | fill | Undocumented |
| Method | nodeCheck | Call with the circuit building tool f and a sequence of
nodes provided to this Include or
Subcircuit. |
| Method | rawNetlist | Get lines of a raw netlist from a search hierarchy of possible sources. |
| Method | shunt | Call to insert a current-measuring shunt and add an entry to my Elements
baton's dict of shunts. |
| Method | raw | See Elements.raw. |
| Method | iNode | See Elements.iNode. |
| Method | ground | See Elements.ground. |
| Method | sca | See Elements.sca. |
| Method | sca6 | See Elements.sca6. |
| Class Method | _libDir | Undocumented |
| Method | _strippedLines | Undocumented |
| Method | _call_setup | Calls my setup
method (almost always your override of that method, actually) and processes
any return value. |
def timing(I_fwd, dIdt):
Returns pulse start time ts, rise (and fall) time tr, and pulse width time tp.
Subcircuit definition.
Why use f? Because it's short and a conveniently typed letter on the keyboard.
Override this if your subclass does not reference a param.ParameterFinder
subclass via the Finder class attribute. As with Include.setup,
your override method can return a dict of attribute names and values to set
in my instance.