public override void Analyze(Analysis Mna) { Expression Ip = Mna.AddUnknown("i" + Name + "p"); Mna.AddPassiveComponent(pa, pc, Ip); Expression Is = Mna.AddUnknown("i" + Name + "s"); Mna.AddPassiveComponent(sc, sa, Is); Mna.AddEquation(Ip * turns, Is); Expression Vp = pa.V - pc.V; Expression Vs = sa.V - sc.V; Mna.AddEquation(Vp, turns * Vs); }
public static void Analyze(Analysis Mna, string Name, Node Anode, Node Cathode, Expression V) { // Unknown current. Mna.AddPassiveComponent(Anode, Cathode, Mna.AddUnknown("i" + Name)); // Set the voltage. Mna.AddEquation(Anode.V - Cathode.V, V); }
public static Expression Analyze(Analysis Mna, string Name, Node Anode, Node Cathode) { Expression i = Mna.AddUnknown("i" + Name); Mna.AddPassiveComponent(Anode, Cathode, i); Mna.AddEquation(Anode.V, Cathode.V); return i; }
public static Expression Analyze(Analysis Mna, string Name, Node Anode, Node Cathode) { Expression i = Mna.AddUnknown("i" + Name); Mna.AddPassiveComponent(Anode, Cathode, i); Mna.AddEquation(Anode.V, Cathode.V); return(i); }
public override void Analyze(Analysis Mna) { // Infinite input impedance. Mna.AddPassiveComponent(Positive, Negative, 0); // Unknown output current. Mna.AddTerminal(Out, Mna.AddUnknown("i" + Name)); // The voltage between the positive and negative terminals is 0. Mna.AddEquation(Positive.V, Negative.V); }
public static Expression Analyze(Analysis Mna, string Name, Node Anode, Node Cathode, Expression L) { // Define a new unknown for the current through the inductor. Expression i = Mna.AddUnknown("i" + Name); Mna.AddPassiveComponent(Anode, Cathode, i); // V = L*di/dt Mna.AddEquation(Anode.V - Cathode.V, L * D(i, t)); return i; }
public static Expression Analyze(Analysis Mna, string Name, Node Anode, Node Cathode, Expression C) { // Ensure that V is not multiple variables. Expression V = Mna.AddUnknownEqualTo("V" + Name, Anode.V - Cathode.V); // i = C*dV/dt Expression i = C * D(V, t); Mna.AddPassiveComponent(Anode, Cathode, i); return(i); }
public static Expression Analyze(Analysis Mna, string Name, Node Anode, Node Cathode, Expression L) { // Define a new unknown for the current through the inductor. Expression i = Mna.AddUnknown("i" + Name); Mna.AddPassiveComponent(Anode, Cathode, i); // V = L*di/dt Mna.AddEquation(Anode.V - Cathode.V, L * D(i, t)); return(i); }
public static Expression Analyze(Analysis Mna, string Name, Node Anode, Node Cathode, Expression IS, Expression n, Expression VT) { // V = Va - Vc Expression Vac = Mna.AddUnknownEqualTo("V" + Name, Anode.V - Cathode.V); // Evaluate the model. Expression i = IS * (LinExp(Vac / (n * VT)) - 1); i = Mna.AddUnknownEqualTo("i" + Name, i); Mna.AddPassiveComponent(Anode, Cathode, i); return i; }
public static Expression Analyze(Analysis Mna, string Name, Node Anode, Node Cathode, Expression R) { // i = V/R if (R.EqualsZero()) { return(Conductor.Analyze(Mna, Name, Anode, Cathode)); } else { Expression i = (Anode.V - Cathode.V) / R; Mna.AddPassiveComponent(Anode, Cathode, i); return(i); } }
public static Expression Analyze(Analysis Mna, string Name, Node Anode, Node Cathode, Expression R) { // i = V/R if (R.EqualsZero()) { return Conductor.Analyze(Mna, Name, Anode, Cathode); } else { Expression i = (Anode.V - Cathode.V) / R; Mna.AddPassiveComponent(Anode, Cathode, i); return i; } }
public static Expression Analyze(Analysis Mna, string Name, Node Anode, Node Cathode, Expression IS, Expression n, Expression VT) { // V = Va - Vc Expression Vac = Mna.AddUnknownEqualTo("V" + Name, Anode.V - Cathode.V); // Evaluate the model. Expression i = IS * (LinExp(Vac / (n * VT)) - 1); i = Mna.AddUnknownEqualTo("i" + Name, i); Mna.AddPassiveComponent(Anode, Cathode, i); return(i); }
public override void Analyze(Analysis Mna) { Expression Ip = Mna.AddUnknown("i" + Name + "p"); Mna.AddPassiveComponent(pa, pc, Ip); Expression Isa = Mna.AddUnknown("i" + Name + "sa"); Expression Isc = Mna.AddUnknown("i" + Name + "sc"); Mna.AddTerminal(sa, -Isa); Mna.AddTerminal(sc, Isc); Mna.AddTerminal(st, Isa - Isc); Mna.AddEquation(Ip * turns, Isa + Isc); Expression Vp = pa.V - pc.V; Expression Vs1 = sa.V - st.V; Expression Vs2 = st.V - sc.V; Mna.AddEquation(Vp, Vs1 * turns * 2); Mna.AddEquation(Vp, Vs2 * turns * 2); }
public static void Analyze(Analysis Mna, Node Anode, Node Cathode, Expression Current) { Mna.AddPassiveComponent(Anode, Cathode, Current); }