public void stamp(Circuit sim, int n0, int n1) { nodes[0] = n0; nodes[1] = n1; sim.stampNonLinear(nodes[0]); sim.stampNonLinear(nodes[1]); }
public override void stamp(Circuit sim) { int vn = sim.nodeCount + pins[2].voltSource; sim.stampNonLinear(vn); sim.stampNonLinear(0); sim.stampNonLinear(lead_node[2]); }
public override void stamp(Circuit sim) { sim.stampNonLinear(lead_node[anode]); sim.stampNonLinear(lead_node[cnode]); sim.stampNonLinear(lead_node[gnode]); sim.stampNonLinear(lead_node[inode]); sim.stampResistor(lead_node[gnode], lead_node[cnode], cresistance); diode.stamp(sim, lead_node[inode], lead_node[gnode]); }
public override void stamp(Circuit sim) { // output pin sim.stampVoltageSource(0, lead_node[1], pins[1].voltSource); // attach Vi to R1 pin so its current is proportional to Vi sim.stampVoltageSource(lead_node[0], lead_node[4], pins[4].voltSource, 0); // attach 5V to R2 pin so we get a current going sim.stampVoltageSource(0, lead_node[5], pins[5].voltSource, 5); // put resistor across cap pins to give current somewhere to go // in case cap is not connected sim.stampResistor(lead_node[2], lead_node[3], cResistance); sim.stampNonLinear(lead_node[2]); sim.stampNonLinear(lead_node[3]); }
/*public override void getInfo(String[] arr) { * arr[0] = "op-amp"; * arr[1] = "V+ = " + getVoltageText(lead_volt[1]); * arr[2] = "V- = " + getVoltageText(lead_volt[0]); * // sometimes the voltage goes slightly outside range, to make * // convergence easier. so we hide that here. * double vo = Math.Max(Math.Min(lead_volt[2], maxOut), minOut); * arr[3] = "Vout = " + getVoltageText(vo); * arr[4] = "Iout = " + getCurrentText(current); * arr[5] = "range = " + getVoltageText(minOut) + " to " + getVoltageText(maxOut); * }*/ public override void stamp(Circuit sim) { int vn = sim.nodeCount + voltSource; sim.stampNonLinear(vn); sim.stampMatrix(lead_node[2], vn, 1); }
public override void stamp(Circuit sim) { // stamp voltage divider to put ctl pin at 2/3 V sim.stampResistor(lead_node[N_VIN], lead_node[N_CTL], 5000); sim.stampResistor(lead_node[N_CTL], 0, 10000); // output pin sim.stampVoltageSource(0, lead_node[N_OUT], pins[N_OUT].voltSource); // discharge pin sim.stampNonLinear(lead_node[N_DIS]); }
public override void stamp(Circuit sim) { sim.stampNonLinear(lead_node[0]); sim.stampNonLinear(lead_node[1]); }
public override void stamp(Circuit sim) { sim.stampVoltageSource(0, lead_node[3], voltSource); sim.stampNonLinear(lead_node[3]); sim.stampNonLinear(lead_node[1]); }