Guide to  Monte-Carlo Analysis using PSPICE

This follows Example 5.14 from Microelectronic Circuit Design, 2nd Ed. (Jaeger).

For details of Monte-Carlo analysis refer to Chapt. 13 of the "MicroSim PSpice A/D & Basics Users Guide."  This is available at (among other sources):

http://www.ece.uncc.edu/manuals/

We want to perform Monte-Carlo (MC) analysis on a BJT four-resistor bias circuit with a 5% tolerance on VCC, 10% tolerance for each resistor, and 50% tolerance on the current gain bF = 75.

PSPICE will be used to determine the nominal values, as well as the statistical distribution of IC and VCE.

In order for PSPICE to perform a MC analysis, the parts that have tolerances must have models.

We start by constructing the circuit using Rbreak parts for the resistors, instead of R parts.

We will use a QbreakN part for the BJT.

We need to play a "trick" to be able to put the 5% toelrance on VCC, since voltage sources don't have models associated with them. We will generate the voltage VCC with a current-controlled voltage source (H part), for which the control current comes from a fixed 12 V source in series with a 1-ohm nominal Rbreak part.  Then we can impose the desired 5% tolerance on the Rbreak, and Ohm's law will do the rest for us.

The finished circuit is shown below:

I edited the model names to help remind me of the tolerances. Rbreak-X10 has 10% tolerance, QbreakN-X50 ahs 50% tolerance, and  Rbreak-X5 has 5% tolerance.

Let's look at the models (access these by selecting the part with the mouse, then choosing Edit / Model / Edit Instance Model):

The Rbreak-X10 model is shown below. Notice the R=1 DEV=10% statement, which tells PSPICE that this part has a nominal value of 1 ohm (which gets multiplied by the actual resistance you set on the schematic), and a device tolerance. (There is also something called a lot tolerance which can be specified, but we're not using that here.):

The Rbreak-X5 model is shown next; notice the DEV=5% statement:

Finally, the BJT model is shown; notice the BF=75 DEV=50% line, which tells PSPICE the nominal value of BF is 75, and the device tolerance is 50%.

In order to display the nominal resistance value on the schematic for an Rbreak part, follow these steps:

(1) Double-click the part on the schematic to bring up the dialog box:

(2) Select and edit the line VALUE =   (as shown above).

(3) Click on the Change Display button to get this box:

(4) Choose Value Only

(5) Click OK, OK.

Now the nominal value will show on the schematic, and can be edited directly by double-clicking.

To run the MC analysis, we need to set up the DC Sweep and MC parameters. Using Analysis / Setup, set up the DC Sweep as shown:

and setup the MC box as follows:

(The Output Var entry determines which detailed results are written to the output file; but it does not affect the histogram.)

To get the MC analysis histogram results for IC and VCE, place a current marker on the collector fo the BJT, and a differential voltage marker (Markers / Mark Voltage Differential) between the collector and emitter terminals, as shown below.

and run the simulation (select Anlaysis/ Simulate, press F11, or click the toolbar icon).

If PROBE is set to auto-run (Analysis / Probe Setup), you should get a histogram for one of the desired variables (IC or VCE).  In order to get a histogram for the other variable, double-click the variable name and select or type in the new one. One expression for VCE that PSPICE will understand is (watch punctuation marks):

V(Q1:c, Q1:e)

-assuming node labels c and e are used as shown in the example schematic above.

The expression for IC is:

IC(Q1)

You should get a histogram similar to this:

To change the number of histogram bins (shown as n divisions on the plot legend), select Tools /Options / Number of Histogram Divisions and enter the desired number.

Note: Due to a bug in PROBE, the units (A or V) shown on the vertical axis are erroneous, but the text label "Percent of Samples" is correct.