A bias point is a solution, not a choice
Everything else on this site solves a linear network. It can, because every device model in the collection has already been linearised before it reaches the solver: a transconductance, a resistance, a controlled source. That is a legitimate way to work and it is what makes a Bode plot possible at all. It also quietly assumes that somebody has already decided where on the device’s curve the linearisation is taken.
That decision is what a bias point is, and it is not a decision. It is the value at which a transcendental equation and a linear network agree, and finding it needs a different kind of solve.
What the loop actually does
The method is the one a circuit simulator uses, and it is worth stating in full because it is short.
Take a guess at every nonlinear element’s controlling voltage. At that guess, each device has a
current i(v) and a slope g = di/dv. Replace the device with a conductance g and a
current source of i(v) − g v, chosen so the pair reproduces the device exactly at the
present guess and linearly elsewhere. What is left is a linear network, which the same solveAt
that draws every other figure on this site can solve. Read the new voltages, and repeat.
That companion pair is the whole trick. It converts a nonlinear problem into a sequence of linear ones, and every one of those linear ones goes through the same assembly, the same complex solver and the same current-law check as every other network in the collection. Nothing about the nonlinear solve needed a new solver; it needed a loop around the existing one.
Two details make it work rather than merely look like it should.
The derivative is supplied, not differenced. A numerical derivative would converge nearly as well, and it would make the residual check below circular — it would be measuring the same difference quotient the iteration used. On an exponential it also loses about half its digits exactly where the iteration needs them most.
The step is limited. Newton’s method on an exponential from a cold start asks for a first iterate that overflows: a ten-volt supply against a device whose current is exp(v/25.852 mV) produces an exponent in the hundreds. Capping each step at a hundred and fifty millivolts costs a few iterations and makes the loop converge from anywhere. From zero volts to a part in 10¹¹ takes thirteen steps at five volts and ten at forty-eight.
The check that is not the loop’s own
A Newton iteration reports convergence when its step size goes to zero. That says the iteration stopped. It does not say it stopped at a solution, and an iteration that has converged to the wrong thing looks exactly like success from inside the loop — which is the failure this check exists for.
So the residual is recomputed at the end from the original equations. Each linear element contributes the current its own law gives at the solved voltages, each device contributes its exponential evaluated at its own controlling voltage, and the sums are required to vanish at every node. Nothing in that computation uses a conductance, a companion source, or anything else the iteration produced.
It closes to 2.4×10⁻¹⁵ of the largest branch current at five volts, and to between 10⁻¹⁵ and 10⁻¹⁴ across the whole slider.
Two Newtons, no shared arithmetic
The netlist route is more machinery than this circuit needs, which is exactly why it is worth
running here. lib/devices.js has carried a one-line Newton since the first commit: solve
V_s = v + R i(v) directly, with no matrix, no assembly and no companion models. It is the
right tool for a diode with a resistor and completely useless for anything larger.
The two agree at 0.692543633 V. Not to a tolerance — to every digit either of them prints.
That is the strongest form this site’s two-route habit takes anywhere, and it is worth being clear about why it is a real check rather than a tautology. The two routes share the diode’s saturation current, its ideality factor and the thermal voltage, which is to say they share the model. They share nothing else. One inverts a four-by-four complex matrix repeatedly with damped updates on a node voltage; the other iterates a scalar equation. A sign error in the companion model’s current source, an index error in the assembly, a controlled source referred to the wrong pair — none of those survives the comparison, and none of them would be visible in the picture.
Sixty millivolts a decade, and where it comes from
The measured drops across the slider are worth setting out, because the pattern in them is the whole reason a bias point cannot be a constant.
At 0.6 V of supply the diode carries 0.033 mA and drops 0.567 V. At 5 V it carries 4.31 mA and drops 0.693 V. At 48 V it carries 47.2 mA and drops 0.754 V. Three decades of current, and the drop moved 187 mV — about 62 mV per decade.
The number is not arbitrary. Inverting i = I_S exp(v/nV_T) gives v = nV_T ln(i/I_S), so a factor of ten in current is nV_T ln 10 in voltage, which at room temperature is 25.852 × 2.303 = 59.5 mV for an ideality factor of one. The measured 60.4 mV between the five-volt and twenty-four-volt cases is that, plus the small departure caused by the resistor’s share of the supply changing over the range.
The practical statement is the one the figure makes: the “0.7 V drop” is a value the device takes at one particular current, and it is neither a property of silicon nor a constant. Design a circuit that depends on it holding to ten millivolts and it holds over about a third of a decade of current.
The straight line is the resistor’s, and it need not be straight
The picture in the hero figure has a particular shape that is worth naming, because it is the shape of nearly every bias calculation and it is not general.
One of the two curves is the device’s. The other is the load line, and it is straight only because the thing on the other side of the device is a resistor and a constant voltage. Its equation is i = (V_s − v)/R, so its intercepts are the supply voltage on one axis and the short-circuit current on the other, and its slope is minus one over the resistance. Change the supply and it translates; change the resistance and it pivots about the voltage intercept. Both movements are visible on the slider.
The generality of the method has nothing to do with that straightness. Newton on the netlist knows nothing about load lines; it linearises whatever is nonlinear, solves whatever is linear, and repeats. Replace the resistor with a current source and the load line becomes horizontal; replace it with a second diode and it becomes a second exponential, so that the operating point is the intersection of two curves neither of which is a line. Nothing in the loop changes, and the picture stops being drawable in the form above — which is a fair summary of why simulators exist.
The load-line drawing survives as a teaching device precisely because it works for the one case where the answer could have been obtained without it. That is worth noticing rather than complaining about: the picture is genuinely explanatory, and it explains a case rather than a method.
How many iterations, and from where
The iteration counts across the slider are 10, 11, 14, 13, 11, 10, 10 — for supplies of 0.6, 1, 2, 5, 12, 24 and 48 volts, all from a cold start at zero.
The shape of that sequence is the damping. Every step is capped at 150 mV, so reaching an operating point at 0.75 V from zero takes at least five steps of pure travel before Newton’s quadratic convergence gets a chance to do anything. The four or five steps after that are the actual solve, and they take the residual from something of order one to 10⁻¹⁵. The peak of fourteen in the middle of the range is where the capped travel and the exponential’s steepness are least well matched.
Removing the cap makes the middle cases converge in six steps and the outer ones overflow, which is the trade the cap exists to make. It is worth stating in that form — an unconditionally convergent method that is slower, rather than a faster one that works most of the time — because the second is what a hand-rolled version usually turns out to be, and it fails on the circuits that are hardest to check by hand.
What the linear figures on this site are standing on
Once the operating point is known, the small-signal resistance follows: r_d = nV_T/I, which is 5.99 Ω at 4.31 mA and 0.55 Ω at 47.2 mA. Every linear figure that includes a diode-like device is using a number of that kind, and every one of them is therefore downstream of an operating point that had to be solved first.
That dependency is usually invisible, and it is where a whole class of design error lives. A circuit whose bias current drifts by a factor of two has a small-signal resistance that drifts by a factor of two, and the linear analysis that was performed at the nominal current says nothing at all about that. It is not wrong; it is answering a question about a different circuit.
How small is small signal measures the other half of the same boundary — how far the signal may swing before the tangent stops describing the curve — and finds 7.30 mV for one per cent of gain error. The two numbers together are the full statement of what a linear device model assumes: this bias current, and excursions small compared with the thermal voltage.
What the solver refuses
Adding a nonlinear loop on top of a linear solver inherits the linear solver’s refusals for free, and that turns out to matter more than it sounds. A netlist with a floating node has no answer, and a solver that returns one is lying. In a Newton loop that failure would otherwise appear as non-convergence — four hundred iterations, a step size that does not shrink, and a report that says “did not converge” when the truth is “this circuit does not determine its own node voltages”.
The distinction is the difference between a numerical complaint and a statement about the circuit, and the second is the one worth having.
There is a second failure mode that the loop can genuinely have and that the linear solver cannot: convergence to a solution that exists but is not the one wanted. A circuit with more than one stable operating point — a latch, a bistable, a comparator with hysteresis — has several roots, and Newton finds whichever one its starting guess falls towards. Nothing in the method chooses between them, and nothing in the residual check can, because all of them satisfy the equations. Every circuit drawn on this page has exactly one operating point, and that is a property of these circuits rather than a guarantee the method provides.
What the field is built on
The rest of this field needs the operating point and then leaves it behind. The distortion a linear model cannot have drives the device far enough that the tangent stops describing it and measures what appears instead; the frequency a device sets for itself puts the small-signal model back and asks what its own capacitances do to the answer.
Both of those start from a point on a curve, and this page is about the fact that the point is computed. It is the difference between a model that carries its own conditions and one that carries a number somebody remembered.
One thing this page does not do is worth recording as a gap rather than left implicit. The diode’s saturation current is a strong function of temperature — roughly doubling every ten kelvin — and the thermal voltage is proportional to absolute temperature, so the drop at a fixed current falls by about two millivolts per kelvin. Every number on this page is at one temperature and the model carries no temperature dependence at all, so the site’s own rule is met by stating the condition rather than by measuring the boundary: these are 300 K numbers, and nothing here computes what happens at 350 K.
That is a real shortfall by the standard the rest of the collection is held to, and it is named
here rather than buried. The machinery to fix it is small — one parameter through diodeExp and a
second axis on the figure — and the reason it was not built is that it would have made this page
about temperature rather than about the fact that an operating point is a root.