pingspice.lib.semiconductor.PowerSemiconductor(Subcircuit)
class documentation
Part of pingspice.lib.semiconductor
(View In Hierarchy)
Known subclasses: pingspice.lib.diodes.PowerDiode, pingspice.lib.mosfets.PowerMOSFET
I am a base class for a self-heating power semiconductor subcircuit. My
junction temperature node 'tj' starts at ambient temperature unless
steadyState is True
.
You can scale down all thermal capacitances in my package and heatsink
by setting the pingspice-only simulation option timeWarp > 1
where stuff heats up x times faster. You should keep timeWarp
consistent for all thermal subcircuits in a given simulation, and it's
preferred to set this option (as with all pingspice-only simulation
options) via a Netlist
constructor keyword.
The sole subcircuit param is ambient, the ambient temperature of the air surrounding the package. Default: 25 deg C.
You must define my nodes list in your subclass. It must end with the temperature nodes 'tc', 'tj', and 'tca0', representing my die and case temperatures and an input node 'tca0' that specifies an initial case-ambient temperature. The 'tca0' node is a high-impedance input that floats to zero, so if you'll never want the case to start out with a higher temperature than ambient, just leave it disconnected.
The other items must match the nodes expected by the Die subclass you specify.
So, unless you specify an initial case-ambient temperature difference with attribute tca0, your nodes list pattern must match the following:
[<Die, without 'tj'>] + ['tj', 'tc', 'tca0']
For the semiconductor device models provide by pingspice, the patterns are as follows:
['drain', 'gate', 'source', 'pdiss', 'tj', 'tc', 'tca0'] ['anode', 'cathode', 'pdiss', 'tj', 'tc', 'tca0']
Class Variable | Die | The subclass of analysis.mosfet.MOSFET
that models your device's semiconductor die. (Technically not just a die
since it also models lead impedances. But not package thermal behavior.) |
Class Variable | package | The name (not FQN) of the package subcircuit in lib.thermal , a subclass
of lib.thermal.Package . (type: str) |
Instance Variable | heatsink | A 2-sequence (or callable that returns a 2-sequence) containing values for rth_ca and cth_c of a heatsink attached to my package. |
Instance Variable | rth_ca | Thermal resistance, case (package) to ambient. Should only be defined if heatsink is not. |
Instance Variable | cth_c | Thermal capacitance of case (package). Should only be defined if heatsink is not. |
Instance Variable | tca0 | Set this to an initial case-ambient temperature difference. I will set up an extra node internally with that "voltage" for its thermal capacitance to be fast-charged to so you don't have to supply the node. (If tca0 is set to something, supplying the 'tca0' node will raise an exception.) |
Instance Variable | ignoreL | Set this True to ignore lead inductance. Inductors cause
convergence errors in SPICE because they create ringing that needs to be
tracked by the stepwise simulation, often at much higher frequencies than
you're really interested in. That's been mitigated by the use of
simulation-friendly inductors, though, so you probably won't need to set
this. |
Method | checkNodes | Raises an exception if the supplied list of nodes isn't appropriate. |
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. |
analysis.mosfet.MOSFET
that models your device's semiconductor die. (Technically not just a die
since it also models lead impedances. But not package thermal behavior.)
lib.thermal
, a subclass
of lib.thermal.Package
. (type: str)
True
to ignore lead inductance. Inductors cause
convergence errors in SPICE because they create ringing that needs to be
tracked by the stepwise simulation, often at much higher frequencies than
you're really interested in. That's been mitigated by the use of
simulation-friendly inductors, though, so you probably won't need to set
this.
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.