uSimmics (formerly QucsStudio) includes a built-in Circuit Optimizer that automatically adjusts component values to achieve a desired circuit behavior. This guide walks through a concrete example — finding the load resistance value that maximizes the power delivered from a source — to explain the full optimization workflow.
- What You Will Learn
- Overview of Circuit Optimization
- Step-by-Step Procedure
- 1. Design the Circuit to Optimize
- 2. Place Measurement Nodes and a Current Probe
- 3. Add the Optimization Component
- 4. Configure Optimization Variables in the Variables Tab
- 5. Set the Optimization Goal in the Goals Tab
- 6. Define the Custom Parameter Using Insert Equation
- 7. Run the DC Simulation to Start Optimization
- 8. Review the Results
- Choosing the Right Optimization Algorithm
- Summary
- Related Articles
What You Will Learn
- Overview of the Circuit Optimizer feature in uSimmics (formerly QucsStudio)
- How to design the target circuit and configure variables and goals
- How to define custom parameters using Insert Equation
- How to inspect optimization results with the Tabular component
- Characteristics and use cases for each optimization algorithm (Grid Search, Steepest Descent, Nelder-Mead, Differential Evolution)
Overview of Circuit Optimization
The Circuit Optimizer iteratively runs simulations while varying the specified variables (such as component values), and automatically searches for the values that satisfy the configured goals (maximize, minimize, or converge to a target value).
Step-by-Step Procedure
1. Design the Circuit to Optimize
This example uses the following circuit:
- A voltage source with an internal impedance of 33 Ω connected to a load resistor (R1)
- Goal: maximize the power dissipated by the load resistor R1
Design Note: According to the Maximum Power Transfer Theorem, maximum power is delivered to the load when the load resistance equals the source impedance (33 Ω). The optimization result will verify this.
2. Place Measurement Nodes and a Current Probe
To define “power” as an optimization goal, both voltage and current must be measured.
- Label the node across R1 as “Voltage”.
- Insert a current probe in series with R1 and name its output “Current”.
3. Add the Optimization Component
- Select the “Optimization” component from the uSimmics (formerly QucsStudio) toolbar and place it on the schematic.
- Double-click the component to open its configuration dialog.
4. Configure Optimization Variables in the Variables Tab
In the Variables tab, define the parameters that the optimizer will modify during the search.
| Setting | Example Value |
|---|---|
| Variable Name | R_load (resistance of R1) |
| Initial Value | 10 Ω |
| Minimum Value | 1 Ω |
| Maximum Value | 200 Ω |
5. Set the Optimization Goal in the Goals Tab
In the Goals tab, define what the optimizer should achieve. In this example, maximize the parameter “Power”.
| Setting | Description |
|---|---|
| Parameter Name | Power |
| Direction | Maximize |
6. Define the Custom Parameter Using Insert Equation
Because “Power” is not a native schematic quantity, it must be defined explicitly so the simulation engine can evaluate it. Add an Insert Equation element to the schematic and enter:
Power = Voltage * Current
This allows the optimization engine to recognize “Power” as an evaluable expression.
7. Run the DC Simulation to Start Optimization
Once the setup is complete, run a DC simulation. The Circuit Optimizer will launch automatically and begin the optimization process.
8. Review the Results
After optimization completes, place a Tabular component (from the Diagrams menu) on the schematic to display the numerical results.
In this example, the optimizer returns R_load = 33 Ω as the value that maximizes delivered power.
Note: Optimization results are approximations, not exact analytical solutions. Fine-tuning may be required depending on accuracy requirements.
Choosing the Right Optimization Algorithm
uSimmics (formerly QucsStudio) provides several optimization algorithms. Selecting the appropriate one based on the nature of the problem improves both computation speed and result accuracy.
Grid Search
Exhaustively evaluates the variable space in a grid pattern. Effective when there are few variables and a narrow search range, but computation time grows rapidly with the number of variables.
Typical use case: Simple single-variable sweeps, such as scanning resistance from 0 to 100 Ω in 1 Ω steps.
Steepest Descent (Gradient Descent)
Follows the steepest gradient toward the optimal value. Converges quickly but is prone to getting trapped in local optima.
Typical use case: Fine-tuning when the initial value is already close to the known optimal.
Nelder-Mead
Explores the solution space by manipulating multiple points simultaneously (a simplex), which makes it more robust against local optima. Does not require gradient information, making it applicable to non-differentiable objective functions.
Differential Evolution (DE)
An evolutionary algorithm that uses randomness to explore complex, multi-modal search spaces. Requires more computation time but can discover solutions that conventional gradient-based methods miss.
Typical use case: Global optimization of large-scale circuits containing many transistors and passive components.
Summary
The Circuit Optimizer in uSimmics (formerly QucsStudio) eliminates manual trial-and-error by automatically identifying optimal component values. The key to effective optimization lies in correctly configuring three elements: variables, goals, and algorithm. Begin by practicing on a simple circuit, then apply the workflow to real-world design tasks.
Related Articles
- DC Analysis in uSimmics (formerly QucsStudio) [2026]
- Running Monte Carlo Analysis in uSimmics (formerly QucsStudio)
- Configuring Monte Carlo Simulation Parameters in uSimmics (formerly QucsStudio)
- Parametric Analysis Guide for Electronic Circuits in uSimmics (formerly QucsStudio)
- Basic Circuit Editor Operations in uSimmics (formerly QucsStudio) [2026]


Comment