uSimmics (formerly QucsStudio) includes a built-in Monte Carlo analysis capability that lets you statistically evaluate the effect of component tolerances and manufacturing variation on circuit performance. This guide walks through the complete workflow using a voltage divider circuit as a practical example.
What You’ll Learn
- What Monte Carlo analysis is and why it matters in electronic circuit design
- How to model component tolerances using the
tolfunction - How to configure and run Monte Carlo analysis in uSimmics (formerly QucsStudio)
- The difference between DC analysis and Monte Carlo analysis, and why DC analysis should come first
- How to visualize and interpret the statistical distribution of simulation results
What Is Monte Carlo Analysis?
Monte Carlo analysis uses random sampling to numerically evaluate problems that involve probabilistic variables. In electronic circuit design, it predicts how component tolerances and manufacturing spread affect overall circuit performance — statistically, across a large number of trials.
uSimmics (formerly QucsStudio) implements this by running the specified simulation repeatedly (one run per iteration), varying each component value randomly within its defined tolerance on each run, and accumulating the resulting distribution.
Why Tolerance Analysis Matters
Electronic components inevitably deviate from their nominal values due to manufacturing process limits and material properties. A resistor labeled 1 kΩ may actually range across ±5%. This variation has significant consequences in:
- Filter circuits where passband and attenuation may drift outside specification
- Voltage dividers where output voltage must stay within a defined range
- Oscillators and PLLs where operating frequency can drift
Monte Carlo analysis lets you predict worst-case performance during the design phase, before any hardware is built.
Circuit Under Test
This guide uses a simple voltage divider circuit.
Circuit configuration:
– Supply: 5 V DC source
– Components: R1 and R2 connected in series
– Measurement node: labeled “V2” at the midpoint
Setting Component Tolerances Using the tol Function
uSimmics (formerly QucsStudio) uses the tol function to apply tolerances to component values:
tol(1k, 5)
This sets a 1 kΩ nominal value with a 5% standard deviation (σ). The second argument is a percentage standard deviation, assuming a normal (Gaussian) distribution. See the related article on tol parameter settings for details on correct sigma configuration.
Step 1: Verify Circuit Operation with DC Analysis
Run a DC analysis before starting Monte Carlo to establish a baseline — the output at the nominal (tolerance-free) component values.
- Add the node label V2 to the midpoint of the divider in the schematic.
- From the Simulations tab, place a DC Simulation component on the schematic.
- Run the simulation.
- From the Diagrams tab, place a Tabular diagram and display V2 to read the DC voltage.
With R1 = R2 (equal values), the expected result is V2 = 0.5 V (half of 5 V). Standard DC analysis does not apply any component tolerances, even if tol is set in component values.
Step 2: Add and Configure Monte Carlo Analysis
Once the DC analysis confirms correct circuit operation, add the Monte Carlo analysis block.
- From the Simulations tab, place a Monte Carlo component on the schematic.
- Double-click the Monte Carlo component and configure:
- sim:
DC1(the DC simulation defined in Step 1) - Iterations: 1000
- Run the simulation.
Each of the 1000 iterations uses a freshly sampled random value for every component with a tol setting, producing 1000 independent output data points.
Step 3: Visualize the Results
Statistical output from Monte Carlo analysis is best understood graphically.
- From the Diagrams tab, place a Cartesian diagram.
- Set the data source to
V2,V. - Change the display style to Circle.
The resulting scatter plot shows the distribution of V2 across all 1000 simulation runs. The spread of the points directly illustrates how much the output voltage varies due to component tolerances.
Interpreting the Results
The width of the point cloud represents the tolerance-induced variation range. Overlaying specification limit lines (upper and lower bounds) lets you immediately see what fraction of production units would pass.
If the spread exceeds the acceptable range, consider:
- Upgrading component tolerance grade (e.g., ±5% → ±1%)
- Revising circuit constants to reduce sensitivity to component variation
- Adding a feedback loop to stabilize the output
Summary
DC analysis is an essential prerequisite before running Monte Carlo — it confirms that the circuit behaves as intended at nominal values. Monte Carlo analysis in uSimmics (formerly QucsStudio) then provides a statistically rigorous quantification of tolerance effects, enabling design decisions that hold up in production. This technique directly supports yield improvement and is a standard step in any robust circuit design flow.
Related Articles
- LPF Design Guide Using uSimmics (formerly QucsStudio) [2026]
- LPF Optimization with Real Component S-Parameters in uSimmics (formerly QucsStudio) [2026]
- VSWR Analysis with uSimmics (formerly QucsStudio) [2026]
- Creating Custom User Models in uSimmics (formerly QucsStudio) [2026]
- Monte Carlo tol Function Parameter Settings in uSimmics (formerly QucsStudio)


Comment