I was learning to implement MNA(SPICE) and I am quite stuck near diodes . I read through a couple of sources and they instruct using Newton-Raphson to basically find the intersection of the load line and the diode IV curve iteratively .MNA for the circuit below proceeds as follows

enter image description here enter image description here


Where \$Ieq\$ and \$G\$ are the current source and conductance of the diode companion model respectively .I'm lost at how to proceed further . I can't seem to understand where Newton-Raphson fits in here?


1 Answer 1


Start with an initial guess for the current through the diode. Find its differential conductance at this operating point from the Shockley equation (or whatever diode model you're using). Use those values for \$I_{eq}\$ and \$G_{eq}\$, and solve the circuit.

You'll now find that the total current through the diode (both the current source arm and the conducance arm) is not equal to your initial guess.

So update your \$I_{eq}\$ to that total current, and find a new \$G_{eq}\$ for this new estimate of the operating point. Solve the circuit again.

Again, you get a slightly different total current for the diode. Make a new equivalent circuit. Solve again.

Keep doing this until you think the solution is close enough to the correct answer. This could be when the current through the conductance arm gets very small. Or it could be when the difference in the solutions between one iteration and the next gets very small.

Another way to describe this is: At each iteration, make a linearized model of your circuit. Solve the linearized model. From that solution, update the linearized model. Continue until the solution converges.

If you replace "circuit" with "system of equations" in this version, you should see how this is equivalent to Newton's method.

  • \$\begingroup\$ Basically , I guess V2 and V3 . Their difference gives me the voltage across the diode from which I compute the current through the diode hence obtaining Geq and Ieq . Use this to solve the matrix equation and obtain V2 and V3 . Check if they are close to my initial guess . If not , I update V2 and V3 and proceed with the iteration until the error in my estimate is less than a certain bound \$\endgroup\$
    – Aakusti
    Sep 7, 2017 at 17:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.