Performing Nominal Optimization
Nominal Optimization, also known as Performance Optimization, is the process of modifying a set of parameter values to satisfy predetermined performance goals. Optimizers compare computed and desired responses and modify design parameter values to bring the computed response closer to that desired. Nominal Optimization is available in the Advanced Design System simulators as follows:
- For Analog/RF systems simulation using any analysis type (such as AC, DC, S-Parameter, Harmonic Balance, Circuit Envelope, and Transient simulation types)
- For ADS Ptolemy signal processing simulation
Nominal optimization can be performed in conjunction with any frequency-domain or time-domain Analog/RF Systems simulation component as well as most Signal Processing components. For example:
- To optimize the response of a low-pass filter, you can perform an S-parameter simulation or an AC simulation to calculate the output amplitude of the filter over a frequency range, then change filter parameter values to refine filter response shape.
- To optimize the rise time of a pulse, you can perform a transient simulation to calculate the output voltage over a period of time, then change circuit parameter values to fine-tune the rise time of the pulse.
- You can optimize the gain of a carrier recovery loop to achieve a desired lock time and residual loop error.
- You can optimize a fixed-point bit-width parameter in a DSP design.
 | Note Some ADS Ptolemy parameter types (Complex, Precision, Array, String, or Filename) require additional steps to complete optimization. These steps are described in Optimizing Various Parameter Types. |
Examples of goals include characteristics of an output signal such as rise time, bandpass shape, or harmonic output. Minimum and/or maximum acceptable performance are used to define the limits of a goal. These limits can be a function of a fixed or a swept variable evaluated at the beginning of the optimization process.
The steps required to perform nominal optimization include:
- Running a simulation.
- Comparing results with the goal.
- Changing the circuit parameters to obtain results that are likely to be closer to the goal.
- Running a simulation again with the new parameter values.
ADS Optimization Features
The circuit nature and the performance requirements decide the features of the underlying optimization problem. Different optimization problems require different optimizers for better performance and accuracy. Each optimizer uses a different combination of error-function (EF) formulation and search methods in order to achieve the desired results. Multiple optimizers specifically for this purpose are provided and are listed below.
For more information on available optimizers, refer to Summary of Optimizers.
Combined with these advanced optimizers, the optimization analysis in RFDE also includes the following flexible and advanced features:
- Nominal Optimization - Nominal Optimization supports both continuous optimization and discrete optimization. The appropriate optimizer must be selected to find the best values for all of the defined design parameters that satisfy all of the defined performance goals. Nominal Optimization also includes the ability to use a subset of the defined design parameters and performance goals.
- Final Analysis - Final analysis, specified in the optimization control, is run automatically after an optimization and uses the optimal design parameters. It is useful when the analysis executed by the optimizer uses a different sweep grid than the one you want for your output. For more information, refer to Final Analysis.
- Swept Optimization - Swept optimization enables designers to optimize any circuit at any swept parameter value. For example, a circuit can be optimized at any temperature level with the temperature being the swept variable. Similarly, a digital programmable attenuator can be optimized at every level of attenuation with the attenuation voltage being the swept variable. One of the key features of swept optimization is the starting value of the design parameters for each optimization. For each value of the sweep variable, the optimization can always start from the nominal values of the design parameters, or can start from the optimal values of the previous optimization. For more information, refer to Swept Optimization.
- Programmable Optimization - Programmable optimization enables you to program your optimization steps. For more information, refer to Programmable Optimization.
- Sensitivity Analysis - Applying sensitivity analysis to a nominal design will help you to identify the most influential parameters to be applicable for the following design stages, for example, optimization design, statistical design, etc. For more information, refer to Sensitivity Analysis.
Nominal Optimization Minimum Requirements
Prior to applying Nominal Optimization, you need:
- At least one component parameter in your design identified as an optimization variable. You specify details in the Component Parameter dialog box by choosing the Tune/Opt/Stat/DOE Setup button.
- At least one optimization goal component ( Goal ) placed in the Schematic window.
- One nominal optimization component ( Optim ) placed in the Schematic window.
The Goal and Optim components are accessed as follows:
- For Analog/RF Systems simulation, from the Optim/Stat/Yield/DOE palette or component library.
- For Signal Processing simulation, from the Controller s palette or component library.
- One simulation control component (a Data Flow controller for ADS Ptolemy simulating or an AC, DC, S-Parameter, Harmonic Balance, Circuit Envelope, and Transient simulation component for Analog/RF Systems simulation).
Specifying Component Parameters for Optimization
In this part of the procedure, you can enable or disable the optimization status of the parameter and specify the type and format for the parameter range over which optimization is to take place.
The procedure for specifying components for optimization is as follows:
- Select and place an appropriate component from one of the component palettes or component libraries. For example, place a parallel resistor-inductor-capacitor (PRLC) from the Lumped Components palette in Analog/RF Systems or a Gain component in Signal Processing.
- Double-click the component in the Schematic window to edit its parameters.
- From the component dialog box, highlight the parameter that you want to optimize in the Select Parameters box (for example R for parallel resistance), then choose the Tune/Opt/Stat/DOE Setup button, which will appear for optimizable or statistical parameters (and when the default Standard Parameter Entry Mode is selected). The Setup dialog box appears, with the Optimization tab active. Note that the Tuning, Statistics, and DOE tabs are not needed for Nominal Optimization. These additional setup tabs are described in:
- From the Optimization Status drop-down list, select Enabled so you can edit the appropriate fields. Enabled causes the parameter to be optimized when the simulation is run. Disabled temporarily deactivates this parameter from being optimized, and Clear removes the values you previously applied to the design after you select Clear in this box, followed by Apply in the component dialog box.

- From the Type drop-down list, select an appropriate optimization Value Type (Continuous or Discrete). For a description of Discrete optimization refer to Discrete Optimization Example. For descriptions of Value Types, refer to the section Value Types for Nominal Optimization.
- From the Format drop-down list, select an appropriate optimization format ( min/max, +/- Delta %, +/- Delta, or Unconstrained). Generally, you should pick as narrow a range as you believe will work. A large range or Unconstrained could use more simulation time. For descriptions of the available formats, refer to the section Value Types for Nominal Optimization in Available Value Types.
- If you selected a min/max format, you can optionally enter values for nominal, minimum, and maximum in the appropriate boxes, and select an appropriate unit assignment for each from the drop-down list next to the boxes. If you selected an Unconstrained format, only a nominal value and associated unit need to be specified. If you selected either of the Delta formats, the companion limit values must be specified.
- From the Nominal Value field and the Units drop-down list, the value and units in your design for this component are displayed. You can change these to set your starting point for your optimization if you wish.
 | Note The Post Production Tuning checkbox is used in Statistical Design, not in Nominal Optimization, and is described in Using Statistical Design. |
Specifying Optimization Parameters for Multiple Components
Using the Simulation Variable dialog, you can enable or disable the optimization status of the parameter and specify the type and format for the parameter range over which optimization is to take place.
To specify components for optimization:
- In the Schematic window, click Simulate > Simulation Variable Setup to open the Simulation Variable dialog.
- To enable optimization, select the checkbox in Optimize column next to the desired component.
- Select tuning format, unconstrained, min/max, +/- delta, +/- delta %, or min/max/step from the Format drop-down list.
The default values for Min, Max, and Step are displayed as appropriate. To modify a Min, Max, and Step value, enter the desired value in the appropriate field. The default values for Min, Max, and Step are 50%, 150% and 10% of the nominal value of the parameter, respectively.
- To disable optimization, deselect the checkbox in the Optimize column.
- Select the "Show selected items only" checkbox to display only the components selected in the schematic.
- Click Deselect All to deselect all optimizable parameters.
- Click Ok to close the dialog.

Placing an Appropriate Simulation Control Component
An appropriate simulation control component must be placed in the design prior to initiating an optimization. Typically, this step will already be done from an earlier simulation.
For Analog/RF Systems simulation, all analysis types are supported, for example place one of the following components:
- AC from the AC Simulation palette or library
- DC from the DC Simulation palette or library
- S-Param from the S-Param Simulation palette or library
- Harmonic Balance from the HB Simulation palette or library
- ENV from the Envelope Simulation palette or library
- Tran from the Transient Simulation library
For details on using these control components, refer to Using Circuit Simulators.
For ADS Ptolemy simulation, place a
- Data Flow controller from the Controllers library or palette
For details on specifying parameters for the Data Flow controller, refer to ADS Ptolemy Simulation.
Setting Optimization Goals
Optimization goals are specified by placing a Goal component and double-clicking it to display the Goals for Nominal Type Optimization dialog box. The Goal component can be found:
- in the Optim/Stat/Yield/DOE palette or library, for Analog/RF Systems simulation.
- in the Controller s palette or library, for Signal Processing simulation.
You can specify and place more than one Goal if needed. The goals to be used are referenced by the Nominal Optimization component, as described in the later section, Selecting an Optimizer and Goals. By default, all goals placed apply to all Nominal Optimization components in a design.

To set appropriate goal specifications in this dialog box:
- If desired, enter a name in the Instance Name field that is different from the assigned default name shown.
- In the Select Parameter list box on the left, click on each parameter that you want to modify, then make other associated changes in the box on the right. When you select a parameter, such as Expr, all relevant items in your design will be displayed in the box. The style of this box varies depending on the parameter, as described in the table below.
Parameter Goals for Nominal Optimization
| Parameter |
Description |
Use Model |
| Expr |
A valid AEL expression that operates on the simulation results, such as mag(S11), or the name of a MeasEqn. For more information on AEL expressions, refer to AEL or Measurement Expressions. |
The list box label becomes Measurement Equations. All associated expressions are displayed in the box. Select the one you want to optimize and it will appear just below in the Selection box. For expressions not related to MeasEqns, you must type them in the Selection box. |
| SimInstanceName |
Enter the instance name for the simulation control component that you placed in your design, which will generate the data used by the Expr field. |
The list box label becomes Analysis Components. Select the analysis component (simulation controller), such as S-parameter, that you want to optimize and it will appear just below in the Selection box. |
| Min |
Enter a number for a minimum acceptable response value. |
Fields for Parameter Entry Mode and Equation editor are used as in any component parameter dialog box. Type a value in the box. Note: Both Min and Max do not have to be specified, but at least one does. |
| Max |
Enter a number for a maximum acceptable response value. |
Same as above. |
| Weight |
Enter a weighting valued to be used in error function calculation. Default is 1. For more information on using the weighting factor to form the error function, refer to Weighting Factors. |
Fields for Parameter Entry Mode and Equation editor are used as in any component parameter dialog box. Type a value in the box. |
| RangeVar |
Independent variable name. |
Same as above, but note that this parameter is "indexable" and can be applied to more than one independent variable. |
| RangeMin |
Minimum limit of range for independent variable during optimization. |
Same as above. |
| RangeMax |
Maximum limit of range for independent variable during optimization. |
Same as above. |
Setting Optimization Job Parameters
To set job parameters, you need to specify data in the Nominal Optimization dialog box, as follows:
- Place an Optim component in the appropriate Schematic window. It is found as follows:
- For Analog/RF Systems simulation, from the Optim/Stat/Yield/DOE palette or library
- For Signal Processing simulation, from the Controller s palette or library
- Double-click the component to bring up the Nominal Optimization dialog box, which has three tabs. It is displayed with the Setup tab active.
- Make specifications in each tab of the dialog box, as described in the next three sections.
Selecting an Optimizer and Goals
To set up an optimization in the Setup tab of the Nominal Optimization dialog box:

- In the Optimization type field, select an appropriate optimizer from the drop-down list, such as Random (the default), Gradient, Least Pth, Minmax, Genetic, etc. For details on selecting an appropriate optimizer, refer to Summary of Optimizers. To perform a sensitivity analysis (which is not a type of optimization) select Sensitivity from the drop-down list. For more information on sensitivity analysis, refer to Sensitivity Analysis.
- In the Optimization Goal and Variable Setup box, first choose the OptGoal tab and accept the default Use All goals in Design checkbox. This is the best approach for most designs, and all goal components placed in a design will be implicitly associated with the optimization controller.
To associate a subset of all goals with a given optimization controller, deselect the Use All goals in Design checkbox. Select a goal from the Edit drop-down list, which will include all Goal components that are currently placed in the design, as described in the preceding section, Setting Optimization Goals. Choose Add to place it in the OptGoal box, and repeat this procedure as necessary. Choose the Cut or Paste buttons, if necessary to make any changes in the OptGoal box.
- Under Stopping criterion, specify the number of desired trial iterations to use during the optimization process. For the random optimizers (Random, Random Minimax, Random Max, and Genetic) this value represents the number of trials to attempt. Values in the range from 25-100 are recommended initially. For the iterative optimizers (Gradient, Gradient Minimax, Quasi-Newton, Least Pth, and Minimax) this value represents the number of iterations (improvements in the error function) to attempt. Less than 10 iterations are recommended initially. The default for all optimizers is 25 trials/iterations.
- In the Optimization Goal and Variable Setup box, next choose the OptVar tab and accept the default Use All Optimization Variables in Design checkbox, unless you want to use only some optimization variables.
You may have many optimization variables, specified by placing one or more VAR (variables and equations) components, in your design and want to associate only one or two of the variables, for example, with a given optimization controller. To associate a subset of all optimization variables with a given optimization controller, deselect the Use All Optimization Variables in Design checkbox. Then enter the name of an optimization variable you want to use in the Edit field and choose the Add button. It is added to the OptVar box. Repeat this procedure as necessary. Choose the Cut or Paste buttons, if necessary to make any changes in the OptVar box.
- Choose Apply to retain the specifications that you have made while you enter data into the Parameters tab, as described in the next section.
Nominal Optimization Setup Tab
| Section |
Parameter |
Description |
| Optimization Type |
For more information, refer to Summary of Optimizers. |
Options include Gradient, Random Minimax, Gradient Minimax, Quasi-Newton, Least Pth, Minimax, Random Max, Hybrid, Discrete, Genetic, Simulated Annealing, and Sensitivity. |
| OptGoal (Optimization Goal Setup) Tab |
Use All goals in Design |
When selected, all of the active goal components placed in a design will be used for the current optimization controller. The default is "selected". When de-selected, the OptGoal list box becomes active. |
| OptGoal list box |
Enables you to perform an optimization for a subset of the goal components placed in your design. Goal components can be added to the OptGoal list box using the Edit drop-down list and the Add or Paste button. Note that you can alternatively de-activate the unwanted Goal components in the design one by one. This method works if there is only one optimization controller in your design. |
| Edit drop-down list |
Includes all Goal components that are currently active in the design. |
| Add |
Adds a selected goal component from the Edit drop-down list. |
| Cut |
Cuts a selected goal component from the OptGoal list box. |
| Paste |
Pastes a selected goal component into the OptGoal list box. |
| OptVar (Optimization Variable Setup) Tab |
Use All Optimization Variables in Design |
When selected, all of the design parameters defined in your design will be used for the current optimization controller. The default is "selected". When de-selected, the OptVar list box becomes active. |
| OptVar list box |
Enables you to perform an optimization for a subset of the design parameters defined in your design. Design variables can be added to the OptVar list box using the Edit drop-down list and the Add or Paste button. Note that you can alternatively disable the unwanted design parameters one by one in the design. This method works if there is only one optimization controller in your design. |
| Edit drop-down list |
Includes all optimization design variables that are currently active in the design. |
| Add |
Adds a selected optimization design variable from the Edit drop-down list. |
| Cut |
Cuts a selected optimization design variable from the OptVar list box. |
| Paste |
Pastes a selected optimization design variable into the OptVar list box. |
| Stopping criterion |
Number of iterations |
Specifies the number of desired trial iterations to use during the optimization process. For the random optimizers (Random, Random Minimax, Random Max, Genetic, and Simulated Annealing) this value represents the number of trials to attempt. Values in the range from 25-100 are recommended initially. For the iterative optimizers (Gradient, Gradient Minimax, Quasi-Newton, Least Pth, and Minimax) this value represents the number of iterations (improvements in the error function) to attempt. Less than 10 iterations are recommended initially. The default for all optimizers is 25 trials/iterations. |
Setting Parameter Information
You set parameter information in the Parameters tab of the Nominal Optimization dialog box, such as what data to save and other information. To do this, follow these steps:

- In the Output Data field, specify which data you want to retain in your dataset following optimization. Check the following choices that apply.
- Analysis outputs send all analysis results (including measurement equations) to the dataset. This can create a substantial amount of data.
- Goals expressions (default) sends the result of each active Goal's Expr field to the dataset.
- Optimization variables sends the values of all active optimization variables to the dataset for each improvement found during the optimization.
- Current Error Function sends the value of the current error-function (EF) formulation used to the dataset. For more information, refer to Error-Function (EF) Formulation.
- In the Output Data Control field, specify whether you want to:
- Save data for iterations. Choices are:
Last - Only the last iteration is saved to the dataset.
Nominal & last (default) - Only the nominal and last (best) iterations are saved to the dataset.
All - Data for all iterations is saved. This can create a substantial amount of data.
- Update display during optimization (default). This updates the dataset on each optimization iteration so you can see the results in the Data Display window as they occur (instead of waiting to the end where all the traces are displayed at once). For faster results, turn this feature OFF.
- In the Levels field, enter a number for the desired annotation level. Levels are 0-4, with increasing information displayed in the Status window. (4 is the default.)
- In the Final Analysis field, specify whether you want to employ an analysis run after your optimization is complete. This analysis can be of any analysis controller component that does not introduce circularity in analysis execution. The drop-down list allows you to select None (for no Final Analysis, the default) or any analysis controller component currently in your design (such as an S-Parameter or Data Flow controller).
Final analysis is useful when the analysis executed by the optimizer uses a different sweep grid than the one you want for your output. For example, if a coarse grid is required for optimization, but a finer grid, or a different range, is desired for output, then the analysis setup to generate this finer grid may be run after the optimization is completed, using the Final Analysis feature.
Multiple analyses are run by grouping them together in a parameter sweeper (without specifying a sweep variable), and choosing this sweeper in the Final Analysis drop-down list box. Note that for swept or nested optimization, the Final Analysis parameter should not refer to any controller that is already executing. Data output for Final Analysis follows the information (flags) set in the companion Optim controller component.
- In the Other field, specify a Seed value, Order of optimization norm, and Desired Error for use during optimization.
- Seed is a value for the random number generator used to initiate an optimization. If Seed is not specified, the simulator chooses its own seed, which will be different each time an optimization type requiring a seed is used (Random, Random Max, Random Min, Genetic, and Discrete).
- Possible values for Order of optimization norm are 2, 4, 8, or 16. (2 is the default.) For more information, refer to the section, Error-Function (EF) Formulation.
- Initial Temperature applies only to the Simulated Annealing optimizer. The initial temperature and the number of shoots per iteration determine the annealing schedule mechanism for the system. The default value for the initial temperature is 0.1. The recommended range for it is 0.001 - 1000. For more information, see Summary of Optimizers.
- Number of Shoots Per Iteration applies only to the Simulated Annealing optimizer. It sets the maximum number of iterations the downhill simplex method uses for each temperature level, or for one iteration of simulated annealing method. It decides the thermodynamics state of the system in one iteration. The default value for it is 20. The recommended range is 10 - 5000. For more information, see Summary of Optimizers.
- The Desired Error field represents the value of the error function that is acceptable to terminate the analysis. If you want all goals to be met, accept the default of 0.
- It is strongly suggested that you select the Normalize goals automatically checkbox when the optimization goals use a default weighting factor. The effect of this option is to produce an internal weighting factor for each goal. This prevents any one goal from dominating the error function. For more information, refer to Error-Function (EF) Formulation.
- If you want to Set the best values for the parent optimization, leave the checkbox in its default setting (checked). With this box checked, the optimal values are saved internally so that they can be either user-updated or utilized by a subsequent analysis. To disable this setting, click the checkbox.
- Choose Apply to retain the specifications that you have made while you enter data into the Display tab, as described in the next section.
Nominal Optimization Parameters Tab
| Section |
Parameter |
Description |
Output Data This field is used to specify which data you want to retain in your dataset following an optimization. Check all choices that apply. |
Analysis outputs |
When activated, all of the outputs including the measurements from the analyses called from the optimization controller are sent to the dataset. This can create a substantial amount of data. Default is "deselected". |
| Goal expressions |
When activated, it sends the results of the Goal's Expr field to the dataset for each Goal component used in the optimization controller. Default is "selected". |
| Optimization variables |
When activated, it sends the values of the design parameters associated with the optimization controller to the dataset. Default is "deselected". |
| Current Error Function |
When activated, it sends the value of the current error-function (EF) formulation used to the dataset. For more information, refer to Error-Function (EF) Formulation in Summary of Optimizers. Default is "deselected". |
| Output Data Control |
Save data for iteration(s) |
Last - Only the output data from the last (best) iteration is saved to the dataset. Nominal & Last - This is the default. Only the output data from the nominal and last (best) iterations are saved to the dataset. All - The output data for all iterations is saved. This can create a substantial amount of data. |
| Update display during optimization |
This is a built-in snapshot feature for optimization. It enables the real-time updates of the dataset and the real-time snapshot for each optimization iteration in the Data Display window. Note that this feature will slow down your simulation speed. For faster results, turn this feature off. Then the dataset and Data Display window will be updated only once at the end of the simulation. Default is "selected". |
| Levels |
Status level |
Enter a number for the desired annotation level. Levels are 0-4, with increasing information displayed in the Status window. Default is 4. |
Final Analysis Used to specify an analysis run after your optimization is complete using the optimal design parameters. |
|
None - No Final Analysis. This is the default option. Any other analysis simulation control component that currently exists in your design such as Sweep1 or DC1. For more information, refer to Final Analysis. |
| Other |
Seed |
Seed is a value for the random number generator used to initiate an optimization. It only affects random optimizers including Random, Random Max, Random Min, Genetic and Discrete. For such optimizers, the results are reproducible with a fixed Seed. If Seed is not specified, the simulator chooses its own seed, which is different for each run and the results are un-reproducible. |
| Starting Norm Order (P) |
This parameter is only used for the Least Pth optimizer to define its starting norm order. Possible values for Starting Norm Order (P) are 2, 4, 8, or 16. Default is "2". For more information, see _Summary of Optimizers_. |
| Initial Temperature |
Applies only to the Simulated Annealing optimizer. The initial temperature and the number of shoots per iteration determine the annealing schedule mechanism for the system. The default value for the initial temperature is 0.1. The recommended range for it is 0.001 - 1000. For more information, see _Summary of Optimizers_. |
| Number of Shoots Per Iteration |
Applies only to the Simulated Annealing optimizer. It sets the maximum number of iterations the downhill simplex method uses for each temperature level, or for one iteration of simulated annealing method. It decides the thermodynamics state of the system in one iteration. The default value for it is 20. The recommended range is 10 - 5000. For more information, see _Summary of Optimizers_. |
| Desired Error |
Provides an additional stopping criteria for optimization. Represents the value of the error function that is acceptable to terminate the optimization. If you want all performance requirements to be met, accept the default of 0.0. Otherwise, specify an alternate value to cause the optimization to terminate sooner. |
| Normalize goals automatically |
Provides a built-in method to make the contributions from all associated goals equal to the error function. Useful when there is more than one Goal component associated with the optimization controller. The desired performances can be different in orders, which can result in the error function being biased to the responses with larger values. To prevent any one goal from dominating the error function, use either of the following methods: - Manually set up the weight factor correctly for each Goal component according to the performance values. - Let weight factor for each Goal component set automatically to the appropriate value for the performance level. For more information, refer to The Weighting Factors. |
| Set best values for parent optimization |
Used for the advanced optimization features including swept optimization and programmable optimization. |
Displaying Analysis Data on the Schematic
The Display tab of the Nominal Optimization dialog box is used to select the parameters that will be displayed on your schematic related to nominal optimization. The same Display tab and procedure is used for yield analysis and yield optimization described in Using Statistical Design. Generally, it is not necessary to modify the visible parameters. Check the appropriate boxes in the Display tab dialog box (the default is all boxes are checked).
Make specifications as follows:
- To select or unselect any parameter, click in the appropriate checkbox.
- Choose Set All to check all parameters. Choose Clear All to uncheck all parameters.

- After all selections have been correctly made, click Apply if you want to continue entering data in the other tabs of this dialog box. If you are finished entering data in this dialog box, click OK. Above is a nominal optimization dialog box example.
 | Note MaxTrials, Enable and RestoreNom are reserved parameters and are not currently available. Selecting these parameters in the Display parameter on schematic section will display the parameters on the schematic; however, changes to the parameter values will not be recognized. |
| Display parameter |
Description |
| OptimType |
Optimization Type |
| ErrorForm |
Error Function Formulation |
| MaxIters |
Maximum number of Iterations |
| P |
Starting Norm Order (P) |
| DesiredError |
Desired Error |
| StatusLevel |
Status Level |
| FinalAnalysis |
Final Analysis |
| NormalizedGoals |
Normalized Goals |
| SetBestValues |
Set Best Values |
| Seed |
Seed |
| SaveSolns |
Save Solutions |
| SaveGoals |
Save Goals |
| SaveOptimVars |
Save Optimization Variables |
| UpdateDataset |
Update Dataset |
| SaveNominal |
Save Nominal values |
| SaveAllIterations |
Save All Iterations |
| UseAllOptVars |
Use All Optimization Variables |
| OptVar |
Optimization Variables |
| UseAllGoals |
Use All Goals |
| GoalName |
Goal Name |
| SaveCurrentEF |
Save Current Error Function |
| InitialTemp |
Initial Temperature |
| NumShootsPerIter |
Number of Shoots Per Iteration |
Initiating an Optimization
To initiate an optimization, select Simulate or click on the Simulate button on the toolbar. The optimization status is displayed in the status window, including the initial and current error function (EF) values, and the current trial/iteration.
If the error function reaches the terminating error value, the simulator ceases optimization and indicates success. Choose Cancel to discontinue the optimization process.
 | Note If the optimization process becomes exceedingly long, you can use the Stop Simulation command on the Simulation/Synthesis menu in the status window to interrupt the process. |
See also Nominal Optimization Example.
Updating Optimized Parameters on the Design
Select Simulate > Update Optimization Values if you want to update your Schematic window with the new parameter values resulting from a successful optimization. If you want save the design at this point, select File > Save or File > Save As and assign an appropriate name.
Final Analysis
After the optimal design is obtained, several analyses are usually applied to check its time-domain and/or frequency domain performance. Either of the following approaches works for this purpose:
- After the optimization process finishes, Update Optimization Values to get the optimal design. Then deactivate the optimization controllers. Place the additional analysis controllers on the schematic and repeat the simulation.
- Use a parameter sweep analysis to sequence the optimization with additional analyses. For more information, refer to Programmable Optimization.
- Use the Final Analysis feature with nominal optimization
The Final Analysis drop-down list (see Setting Parameter Information) is used to specify an analysis run after your optimization is complete while using the optimal design parameters. This analysis can be of any analysis controller component that does not introduce circularity in analysis execution. The drop-down list enables you to select None (for no Final Analysis, the default) or any analysis simulation control component currently in your design.
Final analysis is useful when the analysis executed by the optimizer uses a different sweep grid than the one you want for your output. For example, if a coarse grid is required for optimization, but a finer grid, or a different range, is desired for output, then the analysis setup to generate this finer grid may be run after the optimization is completed using the Final Analysis feature.
Multiple analyses can run as final analysis by grouping them together in a parameter sweeper (without specifying a sweep variable), and choosing this sweeper in the Final Analysis drop-down list. Note that for swept or nested optimization, the Final Analysis parameter should not refer to any controller that is already executing. Data output for Final Analysis follows the information (flags) set in the companion Optim component.
See also Final Analysis Example.
Swept Optimization
Nominal optimization, yield analysis, yield optimization, and design of experiments (DOE) can all be swept as any other ADS analysis. When these analysis controllers are referenced by a parameter sweep controller, the nominal optimization, yield analysis, yield optimization, or DOE is performed for each value of the sweep variable and the results are output as a function of the sweep variable. Any level of sweep nesting can be used and multiple optimization, yield, yield optimization, or DOE controllers may be referenced at any level.
Using a ParamSweep component can form more flexible applications. For example, sequence optimization jobs with other analyses. Detailed descriptions are provided in Programmable Optimization. In this section, swept optimization only means an optimization controller referenced by a Parameter Sweep controller. One of the key concerns for the swept optimization is the starting values of the design parameters for the optimization for each value of the sweep variable. It is controlled by the Set best values for parent optimization checkbox on the Parameters tab of the Optim components Nominal Optimization dialog box (see Setting Parameter Information).
For each value of the sweep variable, the optimization can always start from the nominal values of the design parameters (if Set best values for parent optimization is not activated), or it can start from the optimal values of the previous optimization results (if Set best values for parent optimization is activated). When Set best values for parent optimization is activated, the optimal values are saved internally so that they can be either user-updated or utilized by a subsequent analysis.
See also Swept Optimization Example.
Programmable Optimization
Programmable optimization is another advanced optimization feature that uses a parameter sweep component. A ParamSweep component can be used to sequence optimization jobs with other analyses. Some possible applications include:
- Final Analysis type feature: Using a ParamSweep component to group an optimization controller and some additional final analysis. For example, an optimization can reference an S-parameter analysis with fewer frequency points. This makes the optimization more efficient. Then, a follow-on final analysis can be specified that uses additional frequency points to display the results of the optimization. Note that you must check the control parameter, Set best values for parent optimization, in the Optim component so that the final analysis always uses the optimal results of the design parameters.
- Sequential optimization methods: Using a ParamSweep component to group several optimization controllers, each of which using a different optimizer but associated with the same optimization variables and goals. For example, you might sequence random optimization with gradient optimization in an effort to attain a more robust and fast solution. In this case, you use the random optimizer to locate the results around local/global minimum. Then the gradient optimizer reaches the minimum results fast. Note that you must check the control parameter, Set best values for parent optimization, in the Optim component so that the following optimizer starts from the optimal results of the previous optimizer.
- Program the optimization approach: Using a ParamSweep component to group several optimization controllers, each of which is associated with different optimization variables and goals. The ability to designate a particular subset of both optimization variables and goals is accomplished by using the OptVar and OptGoal parameter tabs (Optimization Variables and Optimization Goals) in the Optim component (see Selecting an Optimizer and Goals). One example for this application is to simulate a full-blown tuning/test procedure. For this example, the control parameter, Set best values for parent optimization, in the Optim component must be checked so that the following optimizers start from the optimal results of the previous optimizer.
See also Programmable Optimization Example.
Sensitivity Analysis
While sensitivity analysis is not strictly a type of optimization, it is a fundamental element of gradient optimization methods. This feature is documented here as it is selected from the Nominal Optimization dialog box, as are the other optimizers.
The prerequisites for sensitivity analysis are the same as for any optimization. You must first have:
- At least one component parameter in your design identified as an optimization variable. You specify details in the Component Parameter dialog box by clicking the Tune/Opt/Stat/DOE Setup button. As with any optimization, choose Enabled. Choose Continuous for Type. The Format field (such as min/max) has no affect with sensitivity analysis. For more information, about specifying component parameters, refer to Specifying Component Parameters for Optimization.
- At least one optimization goal component ( Goal ) placed in the Schematic window. For more information, refer to Setting Optimization Goals.
To perform a sensitivity analysis:
- Place an Optim (Nominal Optimization) component in a Schematic window.
- Double-click the component to bring up the Nominal Optimization dialog box, which has three tabs. It is displayed with the Setup tab active.
- In the Optimization Type field, select Sensitivity from the drop-down list.

Sensitivity analysis comprises a single-point or infinitesimal sensitivity analysis of a design variable. For circuit design, it involves taking partial derivatives of the response with respect to a design variable of interest. It is thought that these numbers can help pinpoint variables that contribute disproportionately to performance variance.
ADS contains other techniques for robust design, including statistical design using both yield analysis and yield optimization. These features are described in Using Statistical Design.
The method used to compute sensitivities is based on finite difference approximation requiring N+1 circuit simulations, where N is the number of optimization variables.
By choosing Nominal Optimization dialog box > Setup tab > OptVar tab (in the Optimization Goal and Variable Setup box), you can specify a subset of all optimization variables within the design project.
Results are sent to the Status window for immediate feedback without the need to open the Data Display window, by choosing Nominal Optimization dialog box > Parameters tab > Levels box > Status level field and entering a proper annotation level. Sensitivity analysis results are also unconditionally sent to the dataset, and this data can be examined in the Data Display window. The remainder of the Parameters tab fields are inactive with sensitivity analysis.
See also Sensitivity Analysis Example.
Sensitivities and Normalized Sensitivities
Sensitivities are approximated as follows:

where R(P0) is the response evaluated at the nominal point and R(Pi+) is the response due to a perturbation in the ith parameter.
Note that in ADS, the response R is actually the expression found in the goal(s) given in the Optim (Nominal Optimization) component performing the sensitivity analysis. Additionally, if a goal contains several simulation points, only the point with the highest sensitivity is reported.
Normalized sensitivities use the approximate gradient (single-point sensitivity) to predict the percentage change in the response due to a 1% change in the design variable. Normalized sensitivity is defined as:

The sensitivity information is saved in the dataset using the Goal instance name. Normalized sensitivities are save with the name:
norm_ <goal_instance_name>.
Optimization Examples
This section includes multiple examples that are intended to help with your understanding of various optimization topics. The examples provided in this section include the following topics:
See also Locating Optimization Examples.
Nominal Optimization Example
The example used in this topic is from Analog/RF Systems simulation. However, the nominal optimization procedure is the same for either Signal Processing or Analog/RF Systems type of simulation. For a bit-width example used in ADS Ptolemy simulation, refer to Using Nominal Optimization.
This example is called optex1_prj, and it is located in the directory $HPEESOF_DIR/examples/Tutorial. To access this example project and enable simulation, first copy it to a working directory by choosing File > Copy Project in the ADS Main window.
The circuit topology for the following simple example represents a 2-to-1 impedance matching transformer with a passband of one octave. The example circuit is intended to match the 100-ohm load resistance of R1 to 50 ohms over the range of 200 to 400 MHz. The circuit is swept from 100 to 500 MHz to view the out-of-band response as well as the passband response.
Of the next two following figures, the first one shows the beginning design with the initial component values used for this example. The display shown in the second figure demonstrates that the initial response of the circuit is far from optimum.

Design Used for Optimization Example

Initial Response of Example Circuit
To optimize the example circuit:
- Since the intent of this design is to match the 100-ohm load resistance to 50 ohms, and we are measuring the input reflection coefficient S11, the goal is to make S11 as small as possible. A Nominal Optimization component and a Goal component are placed from the Optim/Stat/Yield/DOE palette into the design, as shown in the following figure, and the appropriate specifications are set.
Design with Nominal Optimization and Goal component Added
Notice that in the Goal component, the goal magnitude of S11 has been set to zero in the Goals for `nominal' type optimization dialog box, as shown in the following figure. This box is accessed by double-clicking on the placed Goal component as shown in that figure.

Specifying Optimization Goals
- The next step is to specify which circuit parameters are to be adjusted by the optimizer. For this example, all four parameters are optimized. These include the inductors L1 and L2, and the capacitors C1 and C2. Suppose the smallest inductance we can achieve in practice is 10 nH and the largest is 50 nH. Suppose the smallest capacitance we can achieve is 1 pF, and the largest is 10 pF. In the Setup dialog box for each of these four components, we specify a constrained optimization Value Type (specifically min/max), as shown in the following figure. Refer to the section Specifying Component Parameters for Optimization for more details.
Enabling a Min/Max Constrained Optimization
This allows the circuit parameter to be adjusted within the constraints shown in the next figure.

Specifying Circuit Parameters to be Adjusted by Optimizer
- Now the circuit can be optimized. It turns out that the least-squares error function (explained in the section, Error-Function (EF) Formulation) is relatively smooth, so the Gradient optimizer is a good initial choice. In the optimization controller, the Gradient optimizer is selected, Use All Goals in Design, Use All Optimization Variables in Design, only output Analysis outputs for Nominal & Last iteration(s), and Update display during optimization, as shown in the following figure.
Optimization Job Parameters
- To simulate this setup, choose Simulate > Simulate, or the Simulate icon on the toolbar.
- The following figure shows the results of selecting 100 iterations of the Gradient optimizer on this circuit. The optimizer terminated due to a zero gradient, or a local minimum, in the error function after 13 iterations.
Results After 13 Iterations Using Gradient Optimizer
Notice that the response, although much improved over the initial response, is still not quite optimal. The return loss (S11 in dB) is less than 20 dB at 200 MHz (the low-frequency end of the passband), about 23 dB at 400 MHz (the high-frequency end of the passband), and about 26 dB near the band center. An optimal design would have equal values of return loss at these three frequencies.
 | Note ADS names optimization variables in a specific way to avoid confusion in the dataset or Status window, as follows:
<enclosing_definition_name> . <instance_name> . variable_name.
For more information on this naming convention, refer to Understanding How ADS Names Optimization Variables. |
- The next step is to select Simulate > Update Optimization Values to see the values that the Gradient optimizer has arrived at, as shown in the following figure.
Schematic Showing Optimized Parameter Values
- Although the design shown in the previous figure is not optimal, it does provide a good starting point for further optimization. An optimal response would have equal values of return loss at the band edges and at the band center (an equal-ripple response). The Minimax optimizer, using a method described in the section Error-Function (EF) Formulation is designed to achieve such a response. The following figure shows the results of selecting 100 iterations of the Minimax optimizer on this circuit. The optimizer terminated after 8 iterations.
Results Using Minimax Optimizer
- Notice in the previous figure that the values of the return loss at the band edges and at the band center are now equal: about 22.5 dB. This is the equal-ripple response, which is optimal for the design. Selecting Simulate > Update Optimization Values causes the design to be updated with the optimal design values in the Var/Eqn component, as shown in the following figure.
Var/Eqn Component Showing Optimal Design Values
Discrete Optimization Example
The previous nominal optimization example was based on continuous-value optimization. Advanced Design System also allows you to perform nominal optimization in which the results are limited to real-world, discrete-value parts. Discrete optimization variables can be defined using Vendor Component Libraries (for example, the RF Passive SMT Library), reading from files or the Min/Max/Step format. Discrete optimization can be compatible with the Random, Random Minimax, Random Max, Discrete, and Genetic optimizers.
This example uses the same project, optex1_prj, as the previous example; however, the example is modified for discrete optimization. Most of the discrete optimization procedure is the same as other types of nominal optimization, so we will only describe the differences here.

Impedance Matching Transformer Before Discrete Optimization
There are several methods to set up discrete optimization. The optex1_prj example is changed here to learn how to do two of them by:
- Replacing inductor L2 with an SMT inductor from the RF Passive SMT Library and setting it up for discrete optimization. This step illustrates the use of Vendor Component Libraries with discrete optimization. Here values are based on the manufacturer's standard values.
- Changing capacitor C2v in the VAR component to be used for discrete optimization. This step illustrates the use of a component referenced in a VAR with discrete optimization. Here you specify the range and step size.
- Changing the Nominal Optimization component from Gradient to Random. Discrete optimization is compatible only with the Random, Random Minimax, Random Max, Discrete, and Genetic optimization types.
A third method uses a user-defined data file to set up discrete optimization and is described at the end of this section. Refer to Performing Discrete Optimization Using a Data File for details.
Setting Up Inductor L2 for Discrete Optimization
To set up an SMT inductor for discrete optimization:
- Delete inductor L2.
- Choose Insert > Component > Component Library. The Component Library window is displayed.
- From the Libraries list, select the RF Passive SMT Library. Then select SMT Inductor (a sub-type under RF Passive SMT Library).
- From the Components list on the right, select part sl_act_IC 1210_M_19960828.
- Place the new part and wire it in to the design.
- Double-click the inductor to bring up the Component Parameter dialog box.
- Choose the Parameter Entry Mode drop-down list button and select Discrete optimize from the list.
- Three fields appear under Discrete optimize for Nominal, Minimum, and Maximum values. Each field has a drop-down list with the inductor series associated with the inductor family we placed. Select:
- The 22 nH part for the Nominal Value
- The 10 nH part for the Minimum Value
- The 100 uH part for the Maximum Value
- After selecting these values, the dialog box appears as shown below. Click OK.

At this point, the design appears as below. Note that the annotation has changed for the inductor, to reflect the parts to be used for discrete optimization.

Setting Up Capacitor C2v for Discrete Optimization
To set up capacitor C2v in the VAR component for discrete optimization:
- Double-click the VAR component to bring up the Component Parameter dialog box.
- Select C2v from the Select Parameter list.
- Click the Tune/Opt/Stat/DOE Setup button. A dialog box appears.
- Under the Optimization tab, change Continuous to Discrete in the Type field.
- You then enter the Nominal, Minimum, Maximum, and Step values you want for discrete optimization. For this example, leave the defaults for the first three and enter 1 in the Step Value field.
- Click OK to return to the previous dialog box. Click OK again.
The VAR component is updated to show the discrete optimization parameters, as shown below.

Setting Up the Nominal Optimization Component
To set up the Nominal Optimization component for discrete optimization:
- Double-click the Optim component to bring up the Nominal Optimization dialog box.
- In the Optimization Type drop-down list, change Gradient to Random.
- Click OK.
This example is now ready for discrete optimization.
Simulation Results
After the design is simulated, the inductor will be updated for a value to 39 nH, based on the goal criteria that was specified. The schematic will be updated only if you select Simulate > Update Optimization Values from the Schematic window.
Performing Discrete Optimization Using a Data File
A third method to set up discrete optimization employs a user-defined data file that contains a list of the discrete values. This file is referenced by placing a Data Access Component (DAC) on your schematic. This method is desirable when you have a long list of values for a part that is not found in the Advanced Design System Vendor Component Libraries.
To specify parameters for discrete optimization using a data file:
- Create your data file with an editor or program suited for this task.
- Place your data file in the data subdirectory of the desired project. (Other directories are allowed but their paths must be specified.)
It is important for you to understand the DAC data file format when building discrete data files. The DAC data file consists of a matrix of data arranged in rows and columns. Each row represents a different possible component value or part number. Each column represents a different parameter or characteristic of your component. At the top of each column is a name used to identify that column in the file. These column names may be any alphanumeric string defined by the user. In this example, the file is a simple file-based list of discrete-value parts for inductors and capacitors as shown in the following table.
List of Discrete-Value Parts
BEGIN DSCRDATA
% rownumber Inductance Capacitance
0 1.9 0.5
1 2.7 0.75
2 3.3 1.0
3 4.7 1.2
4 5.6 1.5
5 6.8 2.2
6 7.5 3.3
7 8.2 3.9
8 9.5 4.7
9 10 5.6
10 12 6.8
11 15 7.0
12 19 7.5
13 22 8.2
14 24 9.1
15 27 10
16 30 12
17 33 15
18 36 18
19 39 20
20 40 22
21 43 27
22 47 33
23 51 39
END
- Place a DAC component in the Schematic window by choosing Insert > Component > Component Library > Data Items > DataAccessComponent (or choose a DAC from the Data Items palette) and placing it in your design. An example is shown below.

- Double-click the component to bring up the Component Parameter dialog box.
- In the Select Parameter list on the left, set the File parameter to refer to your data file. In this example, the file is called parts.mdf, as shown below.

There are a number of other parameters in the Data Access Component dialog box. Only a few are needed for this example.
- Under the File tab, accept the default for the File Type parameter, which is Discrete.
- Under the Interpolation tab, accept the defaults for Interpolation Method (Index Lookup) and Interpolation Domain (Rectangular).
- Under the Display tab, there are pairs of parameters, called iVar1 and iVal1, iVar2 and iVal2, iVar3 and iVal3, etc. These indicate independent variable 1 and independent value 1, independent variable 2 and independent value 2, etc. Each pair tells the software to refer to a row number in your data file for each variable. In this example, the only variable is inductance, so only iVar1 and iVal1 need to be specified.
- Under the Independent Variable tab, set iVar1 to 1 (for the first independent variable).
- Then set iVal1 to L1_index (for inductance index; this is a user-defined label).
- Click OK to dismiss the dialog box.
- In the Schematic window, place or edit your discrete-valued component. For this example, inductor L1 from the previous example is used. Also, as in the previous example, the VAR component is referenced to specify the parameter, as shown below.

- Double-click the VAR component to edit its parameters.
- For parameter L1v:
- Choose File Based in the Variable or Equation Entry Mode list box.
- Enter L in the Name field.
- Accept DAC1 for the Data Access Component Id.
- Enter Inductance in the Dependent Parameter Name field.
- For parameter L1_index:
- This is the parameter (inductance) that will be set up for discrete optimization.
- Choose Standard in the Variable or Equation Entry Mode list box.
- Enter L1_index in the Name field.
- The Variable Value field will be used for the nominal value set in the next step. (It can be ignored for now.)
- Now click the Tune/Opt/Stat/DOE Setup button. The Setup dialog box appears.
- This dialog box is set up like any other for discrete optimization.
- The Optimization Status should be Enabled.
- The Type field should be Discrete.
- For this example, set the Nominal Value to 0, the Minimum Value to 0, the Maximum Value to 23, and the Step Value to 1.
- What this means for a file-based discrete optimization is that inductor values from row 0 to row 23 will be used and the step will be one row. (If the Step Value were set to 2, the simulator would skip every other row.)
- Click OK to dismiss the Setup dialog box.
- Click OK again to complete the setup of the Variables and Equations parameter dialog box for L1. Follow the same procedure for L2, C1, and C2. At this point the Schematic window will appear as shown in the following figure.
Discrete Optimization using Data Files
In this example, the discrete optimizer was selected. The discrete optimizer will search all of the possible combinations of the discrete design parameters. Therefore, the Number of Iterations does not apply to discrete optimizers and it takes a great deal of time if the possible combinations are large.
At this point, you can start to run the discrete optimization and find its optimal design as L1_index = 11, L2_index = 17, C1_index = 10 and C2_index = 6.
Final Analysis Example
The example, $HPEESOF_DIR/examples/Tutorial/FinalAnalysis_prj, illustrates how to use this feature. In the following figure, the final analysis includes a finer SP analysis and a transient analysis, whose results are automatically output to the dataset and shown in the next figure.

Final Analysis Example

Final Analysis Results
Swept Optimization Example
The following simple example is from $HPEESOF_DIR/examples/Tutorial/sweptOptTest_prj and it will help illustrate swept optimization.
The goal of this design is to optimize R2.R to form a perfect voltage divider for each value of the swept variable R1.R as shown in the following figure.

Swept Optimization Example
In this simulation, note that the SetBestValues parameter of the Optim component is set to no. With this setup, the optimization at each sweep point resets the value of the optimization variables (R2.R) to the initial nominal value. So after simulation, the results appear in the Data Display window as shown below:

Now set the control parameter SetBestValues of the Optim component to yes. To do this you can either edit the schematic directly or,
- Double click the Optim controller in the schematic window. The Nominal Optimization dialog box appears.
- Select the Parameters Tab.
- Activate the Set best values for parent optimization check box.
- Click OK in the Nominal Optimization dialog box to clear the dialog.
With this setup, the optimization at each sweep point will start with the optimal values of the optimization variables (R2.R) from previous optimization. So after simulation, the results appear as follows:

Notice above how the optimization variable R2.R tracks the swept variable R1.R to form a voltage divider for each sweep point for both cases.
Programmable Optimization Example
A practical application of programmable optimization for an MMIC design can be found in:
$HPEESOF_DIR/examples/MW_Ckts/X_Band_LNA_Statistical_prj
Save a copy of the project and open the A3_X-band_LNA_prog_optimized.dsn design. In this example, the programmable optimization performs an optimization on a low noise amplifier (LNA) starting on the input network with its input parameters. The first optimization is followed by a new optimization on the output network with its output parameters, and finally followed by an overall final optimization of the whole LNA. The following figure shows the initial programmable optimization setup details.
- In the initial optimization, the ParamSweep component is setup as shown below in the following figure.
Parameter Sweep Initial Analysis Setup
- Using the Input Matching Network components, the circuit is first setup to be optimized for Noise Figure as shown below in the next figure.
Noise Figure Optimization Setup
- In the second optimization, the design is optimized for Gain and Return Loss. The optimization starts by using the best values obtained from the first optimization (see parameter SetBestValue=yes in the Optim component). The setup is shown below in the following figure.
Second Optimization Setup for Gain and Return Loss
Note that the second optimization shown in this figure is set up to optimize all of the amplifier's optimizable parameters for Noise Figure, Gain, and S22 specifications (see parameter UseAllOptVars=yes in the Optim component).
- The last optimization sequence performs the Final Analysis. For more information, refer to Final Analysis.
Final Analysis Setup
The results from programmable optimization can indicate the performance of the optimal design for the entire circuit. The following figure shows the results for this example.

Optimal Performance after Programmable Optimization
Sensitivity Analysis Example
The following example will help illustrate the use of sensitivity analysis. This example can be found in $HPEESOF_DIR/examples/Tutorial/sensitivity_ex1_prj.

The results of this example are shown below.

Troubleshooting
This section provides general information on optimization that may help answer some of your questions when faced with difficulties.
Understanding How ADS Names Optimization Variables
ADS names optimization (as well as yield and DOE) variables in a specific way to avoid confusion in the dataset or Status window. Ignoring that part of the name introduced by the optimization controller, optimization variable names have the following format:
<enclosing_definition_name> . <instance_name> . variable_name .
For example, you might have a name such as Def1.Inst1.X, where the variable X is defined in the definition Def1.
The instantiation path has the enclosing definition name pre-pended.
Optimization input variables may be derived from variables, or derived from component parameters. The former are always associated with the definition and so have no instantiation path. The latter are associated with an instantiation and therefore have an instantiation path, with the exception of parameters where the default value is an optimization input variable. In this case, if the user does not provide a value, the parameter is associated with the definition.
Failures that Occur in Evaluating Goals
The most common error from optimization is related with the evaluation of goal expressions. You will see an error in the simulation window such as:
Optimization/Statistics Error:
Please check for valid 'Expr' field in OptimGoal/fieldSpec item
Check the following device:
OptimGoal
The Expr field in a Goal component is a MeasEqn (Measurement Equation) component. When the optimization starts, it calls the underlying analysis specified in the SimInstanceName field of the Goal component and evaluates the MeasEqn before it returns to the optimization process. The error shown above usually indicates that the MeasEqn has failed to obtain the underlying analysis. An easy way to verify this is to:
- Deactivate the Optim components in the design.
- Deactivate other simulation control components but leave the simulation control component, and others associated with it, indicated by the SimInstanceName field of the Goal component that has a problem.
- Add a MeasEqn which equals the Expr field of Goal component that has the problem.
- Run the simulation. When you run the simulation at this time, there are two cases:
- Error information saying that the simulator cannot resolve/evaluate the MeasEqn
- No warning information. However, when you check the dataset, there is no output for the MeasEqn
For such cases, you have to check and make sure the required responses are valid expressions from the underlying analysis (Please remember the basic requirements to apply optimization in the first section in this topic). Otherwise, optimization is not applicable.
Global vs. Local Search
For general information on global and local search, refer to Obtaining Global Optimal Results.
Locating Optimization Examples
To find optimization examples that may help you with understanding a feature, use the Examples Search tool in ADS. From the ADS Main window,
- Choose Tools > Example Search. The Examples Search tool appears.
- Enter the keyword Optim with/without other keywords.
See also Optimization Examples.
Improving Optimization Speed
Because it requires multiple circuit analyses per iteration of the optimizer, optimization is an inherently slow process. The following precautions can help minimize optimization time:
- Use as few frequency points as possible during optimization
- Minimize the number of variables and circuit nodes
- If a structure is used repeatedly in your circuit, enter it as a subcircuit
- Simplify the optimization criteria as much as possible
- Do not be afraid to experiment with optimizers, goals, and weights
- Begin with a reasonably good initial design
- Ensure that you have not defined conflicting optimization goals