public override void stamp(Circuit sim) { sim.stampVoltageSource(lead_node[4], lead_node[0], voltSource1); sim.stampVoltageSource(lead_node[5], lead_node[1], voltSource2); sim.stampResistor(lead_node[2], lead_node[4], impedance); sim.stampResistor(lead_node[3], lead_node[5], impedance); }
public override void stamp(Circuit sim) { if (waveform == WaveType.DC) { sim.stampVoltageSource(lead_node[0], lead_node[1], voltSource, getVoltage(sim)); } else { sim.stampVoltageSource(lead_node[0], lead_node[1], voltSource); } }
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 stamp(Circuit sim) { if (position == 0) { sim.stampVoltageSource(lead_node[0], lead_node[1], voltSource, 0); } }
public override void step(Circuit sim) { bool v1 = lead_volt[0] > 2.5; bool v2 = lead_volt[1] > 2.5; if (v1 && !pins[0].value) { ff1 = true; } if (v2 && !pins[1].value) { ff2 = true; } if (ff1 && ff2) { ff1 = ff2 = false; } double @out = (ff1) ? 5 : (ff2) ? 0 : -1; // System.out.println(out + " " + v1 + " " + v2); if (@out != -1) { sim.stampVoltageSource(0, lead_node[2], pins[2].voltSource, @out); } else { // tie current through output pin to 0 int vn = sim.nodeCount + pins[2].voltSource; sim.stampMatrix(vn, vn, 1); } pins[0].value = v1; pins[1].value = v2; }
public override void stamp(Circuit sim) { if (position == 2) { return; // in center? } sim.stampVoltageSource(lead_node[0], lead_node[position + 1], voltSource, 0); }
/*public override void getInfo(String[] arr) { * arr[0] = (gain == 1) ? "CCII+" : "CCII-"; * arr[1] = "X,Y = " + getVoltageText(lead_volt[0]); * arr[2] = "Z = " + getVoltageText(lead_volt[2]); * arr[3] = "I = " + getCurrentText(pins[0].current); * }*/ // boolean nonLinear() { return true; } public override void stamp(Circuit sim) { // X voltage = Y voltage sim.stampVoltageSource(0, lead_node[0], pins[0].voltSource); sim.stampVCVS(0, lead_node[1], 1, pins[0].voltSource); // Z current = gain * X current sim.stampCCCS(0, lead_node[2], pins[0].voltSource, gain); }
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) { double v = (position == 0) ? lowVoltage : highVoltage; if (isTernary) { v = position * 2.5; } sim.stampVoltageSource(0, lead_node[0], voltSource, v); }
public override void stamp(Circuit sim) { for (int i = 0; i != getLeadCount(); i++) { Pin p = pins[i]; if (p.output) { sim.stampVoltageSource(0, lead_node[i], p.voltSource); } } }
public override void stamp(Circuit sim) { sim.stampVoltageSource(0, lead_node[0], voltSource); }
public override void stamp(Circuit sim) { sim.stampVoltageSource(0, lead_node[3], voltSource); sim.stampNonLinear(lead_node[3]); sim.stampNonLinear(lead_node[1]); }