Circuit Optimization Guide for uSimmics (formerly QucsStudio) [2026]

Basics

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 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.

  1. Label the node across R1 as “Voltage”.
  2. Insert a current probe in series with R1 and name its output “Current”.

3. Add the Optimization Component

  1. Select the “Optimization” component from the uSimmics (formerly QucsStudio) toolbar and place it on the schematic.
  2. 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

Comment

Copied title and URL