# Design Optimization

How to use the Design Optimization tool to automatically tune model parameters for performance

Last updated

How to use the Design Optimization tool to automatically tune model parameters for performance

Last updated

The Design Optimization tool seeks to minimize a signal over several simulation runs by changing model parameters at the beginning of each run. The benefit of this is to maximize the performance of your model by choosing the best initial conditions for your objective.

Objective

Choose a signal from your model that you want to minimize. Typically this is constructed from one or more other signals that are either arriving at a lowest value by the end of the simulation, or the signal is summed (integrated) over the entire simulation, in which case you're optimizing for the lowest accumulated error or cost.

Constraints

Constraints are additional signals that guide the optimization process. If a constraint signal goes positive (the value at any time step is greater than zero), then the parameter values under test are considered to be invalid. You can have multiple constraints. If you specify constraint signals, the number of algorithms available to you will be reduced, since not all algorithms support constraints.

Design Parameters

These are the model parameters that you are trying to optimize. You can add as many as you like to this list, and all of them will be varied in order to find the best values. The more you add here, the longer the optimization process may take.

For each parameter, you can specify the following values:

**Initial:**The starting value at the beginning of the optimization process. This is your best guess or a known sane value.**Minimum:**The minimum value, if any, that the parameter can reasonably have. Leave it blank (-inf) if there is no minimum.**Maximum:**The maximum value, if any, that the parameter can reasonably have. Leave it blank (+inf) if there is not maximum.

Stochastic Parameters

These are parameters that you want to vary according to random distribution in order to make extra certain that your optimized design parameter values are robust with respect to varied initial conditions. A simple example would be to randomly vary the starting angle of a pendulum for which you are optimizing a steady state controller.

For each parameter, you can specify the following values:

**Distribution:**The options here are`Normal`

,`Uniform`

, and`LogNormal`

. Normal varies the values around a central value, Uniform varies the values completely randomly within the specified range, and LogNormal is similar to Normal, but the values are restricted to positive only.**Minimum:**The minimum value, if any, that the parameter can reasonably have. Leave it blank (-inf) if there is no minimum.**Maximum:**The maximum value, if any, that the parameter can reasonably have. Leave it blank (+inf) if there is not maximum.**Number of batches:**Typically this kind of optimization is run in batches of simulations to better manage the complexity of multiple variables. For each batch, a single new random value will be generated for this parameter.**Batch size:**The number of simulations per batch. For example, if you specify 10 batches with a batch size of 10, then at least 100 simulations will be run.

Algorithm

Please see the Optimization Algorithms page for details on specific algorithms.