Using probes, it is easy to find the Thevenin voltage, and Norton Current of a circuit. We could simply divide Vth / In = Rth, but is there a way to find Rth through a simulation?

enter image description here


2 Answers 2


When you ask this kind of question, it's usually single-ended (shared ground, single signal wire in or out of a circuit.) So, the simplified behavioral idea is something like this:


simulate this circuit – Schematic created using CircuitLab

Where you have a shared ground and just want to test, say, the signal input pin to find out its input resistance. (Or, you can direct it to the signal output pin to find out its output resistance, I suppose.)

AC Analysis

Most Spice programs will support AC Analysis using the .AC card. If you do this, then you can implement the following:


simulate this circuit

AC Analysis is usually performed over some range of frequencies that you specify. So use a range that is meaningful to you and also make sure that the value of the capacitor, \$C_1\$, presents a tiny impedance compared to what you expect to measure at the lowest frequency in your range. (I've simply supplied some value, but not a particular value, for illustration purposes.)

The capacitor is needed in order to allow the circuit under test to find it's own DC operating point, which you do NOT want to mess with. So the capacitor acts to isolate the testing from the circuit under test.

Most Spice programs I know about allow you to specify a standard voltage value for the AC source shown above. This is usually just "1" and represents the default \$1\:\text{V}\$. (If you use a different value, you need to be aware of that difference because it matters.) You then measure the current in the AC test voltage source. Dividing that current into \$1\:\text{V}\$ provides the observed resistance.

Transient Analysis

Another way you can do this is, is to try using the Transient Analysis mode of Spice using the .TRAN card. A very similar schematic is used:


simulate this circuit

Now, in the above case I've decided to use \$10\:\mu\text{V}\$ as the peak voltage (which is NOT the RMS voltage, keep in mind) and have chosen to use \$1\:\text{kHz}\$ as the signal frequency. So here, you get to pick a particular frequency for testing. It will help you with that specific frequency and no other frequency. So keep that in mind.

And again, you want \$C_1\$ to present a tiny impedance compared to what you expect to measure at that given frequency.

If you divide the RMS voltage of the source by the RMS current of the source, then you'll have your value.

(Make sure that you do NOT do the .TRAN run using the UIC, though. You want to allow Spice to perform the ITS step it needs to find the DC operating point.)

Using the .MEAS Card

LTspice, for example, supports a .MEAS card which can be quite handy to use with the transient analysis mode.

For example, suppose the voltage source is V1 and its signal node is also called V1. Then the following work well:


LTspice will complete the analysis and provide, in its "Spice Error Log" report, the following kinds of information:

srcv: RMS(v(v1))=7.06862e-006 FROM 0 TO 0.02
srci: RMS(i(v1))=7.06859e-009 FROM 0 TO 0.02
rth: srcv/srci=1000

As you can see, it has worked out that the impedance is \$1\:\text{k}\Omega\$, which is correct for the case I ran (for \$20\:\text{ms}\$, as you can see, which is fine enough for a \$1\:\text{kHz}\$ signal.)


It's important that you ensure that Spice produces enough data points for your need. So, for example, if you are using a \$1\:\text{kHz}\$ signal and transient analysis then you will want lots of data points for each cycle so that it can produce better numbers for you. The same thing is true for AC analysis. Lots of data points are important. So don't be shy about asking for them. It helps get you better numbers.

Also, you don't want to disturb the DC operating point of whatever it is that you are measuring. So the use of an AC signal through a capacitor is a pretty good way to achieve this, even with simple DC circuits including only one resistor. (It "just works.")

Note that the only limitation is your imagination! There are a number of ways to go about getting what you want. You just have to think for a moment. But usually not long. For example, suppose that the input is differential instead of single-ended? How might you modify any of the above to achieve that measurement? You should be able to come up with a couple of different ways, now.


I pulled out an old circuit I had considered for a \$9\:\text{V}\$ battery-driven headphone amplifier, years ago. I just found it by doing a quick search on my disk. After adding the above .MEAS commands to it and providing an appropriate input source, the schematic looks like this:

enter image description here

Simple analysis suggests that the input resistance is about:

$$22\:\text{k}\Omega\:\mid\mid\:22\:\text{k}\Omega\:\mid\mid\:18\:\text{k}\Omega\approx 6827.59\:\Omega$$

(This assumes that the (-) input of the opamp can be taken to be a "virtual voltage reference.")

Here's the result of the LTspice analysis:

srcv: RMS(v(vi))=7.06978e-006 FROM 0 TO 0.02
srci: RMS(i(vi))=1.03558e-009 FROM 0 TO 0.02
rth: srcv/srci=6826.91

Good enough for horseshoes, anyway! ;)


I don't have Multisim, but assuming it's an advanced circuit analysis program it maybe can calculate how steeply some quantity depends on the values of the components.

You connect a current source to the terminals terminals for which you want the Rth. Then you simply let the program calculate how steeply the voltage between the terminals depends on the current. That's dV/dI and it is directly the wanted Rth

You can also insert an AC current source and calculate with an custom expression Vpp/Ipp if that's available.

The third possibility is to simulate at the same time your circuit and a device which measures the Rth.


Your Answer

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

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