Circuit simulation
First Claim
1. A computer-implemented method, comprising:
- creating one or more data structures that together store characteristics of a plurality of active branches Bactive that make up a graph of nodes and branches that form a circuit, wherein Bactive consists ofa set BL of zero or more inductive branches, each having a non-zero inductive component but neither a capacitive component nor a variable switch state;
a set BC of zero or more capacitive branches, each having a non-zero capacitive component but neither an inductive component nor a variable switch state; and
a set BA of additional branches, each having neither an inductive component, nor a capacitive component;
partitioning Bactive into a first branch set Btreeactive and a second branch set Blinkactive, where the branches in Btreeactive form a spanning tree over Bactive, giving priority in said partitioning to branches not in BL over branches in BL;
sub-partitioning Blinkactive into a third branch set BlinkL and a fourth branch set BlinkCA, where BlinkL=Blinkactive∩
BL;
identifying a fifth branch set BCA as the union ofBlinkCA,BC∩
Btreeactive, andthose branches in Btreeactive that form a closed graph when combined with BlinkCA;
partitioning BCA into a sixth branch set {tilde over (B)}treeCA and a seventh branch set {tilde over (B)}linkCA, where the branches in {tilde over (B)}treeCA form a spanning tree over BCA, giving priority in said partitioning to branches in BC over branches not in BC;
identifying an eight branch set BtreeC={tilde over (B)}treeCA∩
BC;
selecting a set of state variables comprising;
for each branch of BlinkL, either the inductor current or inductor flux, andfor each branch of BtreeC, either the capacitor voltage or capacitor charge; and
simulating a plurality of states of the circuit using the set of state variables.
1 Assignment
0 Petitions
Accused Products
Abstract
A system, method, and apparatus select state variables for, build state equations of, and simulate time-domain operation of an electronic circuit. The circuit is modeled with three branch types (inductor, resistor, voltage source in series; capacitor, resistor, current source in parallel; and switch), including four pre-defined switch types (unidirectional unlatched, bidirectional unlatched, unidirectional latched, and bidirectional latched). Automated analyses determine efficient state variables based on the currently active circuit topology, and state equations are built and applied. Switching logic determines when switch states change, and state equations for the new topology are either drawn from a cache (if the topology has already been processed) or derived anew. The switch control signals may be combined into a single switching variable, defined as a function of the state output.
65 Citations
4 Claims
-
1. A computer-implemented method, comprising:
-
creating one or more data structures that together store characteristics of a plurality of active branches Bactive that make up a graph of nodes and branches that form a circuit, wherein Bactive consists of a set BL of zero or more inductive branches, each having a non-zero inductive component but neither a capacitive component nor a variable switch state; a set BC of zero or more capacitive branches, each having a non-zero capacitive component but neither an inductive component nor a variable switch state; and a set BA of additional branches, each having neither an inductive component, nor a capacitive component; partitioning Bactive into a first branch set Btreeactive and a second branch set Blinkactive, where the branches in Btreeactive form a spanning tree over Bactive, giving priority in said partitioning to branches not in BL over branches in BL; sub-partitioning Blinkactive into a third branch set BlinkL and a fourth branch set BlinkCA, where BlinkL=Blinkactive∩
BL;identifying a fifth branch set BCA as the union of BlinkCA, BC∩
Btreeactive, andthose branches in Btreeactive that form a closed graph when combined with BlinkCA; partitioning BCA into a sixth branch set {tilde over (B)}treeCA and a seventh branch set {tilde over (B)}linkCA, where the branches in {tilde over (B)}treeCA form a spanning tree over BCA, giving priority in said partitioning to branches in BC over branches not in BC; identifying an eight branch set BtreeC={tilde over (B)}treeCA∩
BC;selecting a set of state variables comprising; for each branch of BlinkL, either the inductor current or inductor flux, and for each branch of BtreeC, either the capacitor voltage or capacitor charge; and simulating a plurality of states of the circuit using the set of state variables. - View Dependent Claims (2, 3)
-
-
4. A system, comprising a processor and a computer-readable medium in communication with said processor, said medium containing programming instructions executable by said processor to:
-
build state equations for a first topology of an electronic circuit having at least two switching elements, wherein each switching element has a switching state; solve said state equations at time tt to provide a state output vector, in which at least two elements control the switching states of tlie switching elements; calculate the value of a switching variable as a function of the state output vector, wherein the value reflects whether the switching state of at least one of the switching elements is changing; and if the value of the switching variable at time tt indicates that at least one of the switching elements is changing, determine a second topology of the electronic circuit for time ti+ and obtain state equations forte second topology; wherein; said programming instructions comprise a state equation building module, a solver module for ordinary differential equations, and a switching logic module; said building is performed by the state equation building module; said solving and calculating are performed by the solver module; said determining is performed by the switching logic module; at a time tj, at least two switching elements are each either rising-sensitive or falling-sensitive switches, wherein rising-sensitive switches change switching state if and only if a controlling element of the state vector has passed from a negative value to a non-negative value; and falling-sensitive switches change switching state if and only if a controlling element of the state vector has passed from a positive value to a non-positive value; and the function is the arithmetic maximum of a maximum of all controlling elements of the state vector that control rising-sensitive switches, and the negative of the minimum of all controlling elements of the state vector that control falling-sensitive switches.
-
Specification