So far components have been assumed to have an “accurate / exact” value but, in reality, components have a tolerance and are rarely, exactly, the marked value. Monte Carlo allows the effect of component variance on circuit performance to be investigated.
What does Monte Carlo Analysis do?
Computes the circuit response to changes in component values by randomly varying all of the device model parameters for which a tolerance is specified. This provides statistical data on the impact of a device parameter’s variance.
Model parameters are given tolerances and multiple analyses – DC Sweep, AC Sweep or Transient – are run randomly varying these tolerances.
A typical application of Monte Carlo analysis is predicting the yields on production runs of a circuit.
Assigning Tolerances
There are two tolerance properties used by Monte Carlo but, typically, only the DEV, device, tolerance is used in circuit analysis.
The concept behind the tolerances is that the LOT tolerance specifies the overall range for all batches of the parameter value and the DEV tolerance specifies the range for all devices made in the lot.
For example, using a LOT tolerance of 30% and a DEV tolerance of 2% would mean that the range of values for the mean of a lot would be within +/- 30% and the range of values within a specific lot would be within +/- 2% This might be representative of semiconductor components but wouldn’t be realistic for many passive components, hence the use of only the DEV tolerance, set in the Tolerance property for the intrinsic passive components.
If both the DEV and LOT tolerances are required for R, L or C components, the version from the breakout.olb needs to be used. To add the tolerance, add the keyword and value after the parameter. As an example, for a breakout resistor:
.MODEL Rxyz RES R=1 LOT=30% DEV=2%
Since PSpice AD Basic doesn’t include the PSpice Model Editor, the model would need to be created with a text editor and the part in the schematic associated with that PSpice model.
How Monte Carlo uses the Tolerances
When the simulation runs, each component type is assigned a random value within the LOT tolerance for the run, then each component with a DEV property is assigned a random value about the LOT tolerance that has been selected for that component type.
For the successive runs, each component type is assigned another random value within the LOT tolerance and then each component with a DEV property is assigned another random value about the LOT tolerance that has been selected for that component type.
Taking the example of a LOT tolerance of 30% and a DEV tolerance of 2% for a resistor.
For the first run, say that the random value for the LOT tolerance was +12.6% for this resistor model, each instance of this resistor model would then be assigned a random value between +10.6% and +14.6% of the nominal value.
For the next run, say that the random value for the LOT tolerance was -2.5% for this resistor model, each instance of this resistor model would then be assigned a random value between -0.5% and -4.5% of the nominal value.
And so on for each run.
Viewing results
The results of the Monte Carlo analysis can be viewed in the output and the Probe window.
All content Copyright 2022 Parallel Systems Ltd.
