Design Explorer Optimizer Profile
The Design Explorer Optimizer Profile is a search profile that uses a Sequential Quadratic Programming (SQP) algorithm to solve constrained, nonlinear, optimization problems. The optimizer modifies a set of control parameters to achieve the objective while applying a set of constraints that define the problem space.
The optimizer is comprised of eight tabs:
In addition to describing the parameters and options of the optimizer, this help page contains a troubleshooting section at the end of the page, which you can access easily from this link.
Variables
There are three types of variables that can be selected and defined for an optimizer profile - control parameters, objectives, and constraints. To execute properly, a profile must have at least one control parameter and one objective defined. Objectives and constraints are derived from the same source and defined in the same manner, but are different in terms of how they are applied to the problem; an objective is a variable that the optimizer attempts to minimize or maximize, while a constraint is a variable that defines the problem space.
Selecting Control Parameters, Objectives, and Constraints
displayed adjacent to it. To select an element as a decision variable, click the associated target icon; a check mark will appear over the icon. To remove a selected element as a decision variable, click the target icon a second time and the check mark will disappear. You can select decision variables in more
than one nested segment and, in each, you can select as many decision variables
as you need. Plugins publish their inputs to Astrogator, so you
can also select these inputs as decision variables. To target an input,you may need to double-click it to expose the window for editing its value; the target icon will appear in that window next
to the editable field.
If the "Restore nominal values as soon as target sequence completes" MCS Option is selected and an element of a linked component is selected as an control parameter, the changed value that is produced will only be applied to subsequent segments nested within the same target sequence. Segments that are outside of the target sequence will use the value that the element held at the beginning of the MCS. If you apply corrections after running the MCS, then on the next run all segments within the MCS will use the value produced by the target sequence.
Objectives and constraints are defined in terms of Astrogator's extensive repertoire of Calculation Objects (to which you can add). To select objectives and constraints for a given nested MCS segment, click Results.... This will bring up the User-Selected Results window for that segment, where Calculation Objects can be selected as objectives and constraints.
The sections below describe the definition of control parameters and objectives and constraints:
Defining Control Parameters
Each control parameter that you have selected is listed in the Control Parameters section of the Variables tab, along with the following information:
- Use -- If the box is checked, the control parameter is being used.
- Name -- The name of the element selected as a control parameter.
- Current Value -- The element's final value from the last run of the optimizer; if the optimizer hasn't run, this value is the same as the initial value.
- Lower Bound -- The lowest value that you want to allow the optimizer to use for the element; double-click the field to edit it.
- Upper Bound -- The highest value that you want to allow the optimizer to use for the element; double-click the field to edit it.
- Object -- The segment or component to which the element belongs.
- Custom Display Unit -- Select to use a unit other than the default when displaying results in the status window and graphs.
- Display Unit -- The unit to be displayed if the Custom Display Unit option has been selected.
Graphs cannot display DMS or HMS angle units and will use the scenario unit instead
If you have multiple control parameters, select the Hide Inactive field to hide control parameters that are not currently selected for use.
The following fields, some of which can be edited, appear below the Control Parameters list:
Field | Description |
---|---|
Initial Value | The nominal value of the element selected as a parameter. |
Current Value | The element's final value from the last run of the optimizer; if the optimizer hasn't run, this value is the same as the initial value. |
Perturbation | Enter the value to be used in calculating numerical derivatives. |
Scaling Method | Select among:
|
Scaling Value | Enter a scale value if the Custom Scaling Method has been selected. |
Defining Objectives and Constraints
Each objective or constraint that you have selected is listed in the Objectives and Constraints (Results) section of the Variables tab, along with the following information:
- Use -- If the box is checked, the variable is being used.
- Name -- The name of the Calculation Object used as a dependent variable.
- Current Value -- The value achieved for this dependent variable in the last optimizer run. You can copy the value in this field by right-clicking it and selecting the Copy command that appears.
- Weight -- The relative significance of the element compared to other objectives; this value will be applied to the calculations to allow you to favor achieving one goal over another; this field only applies if the dependent variable is set to function as a Maximize, Minimize, Maximize+Constraint, or Minimize+Constraint objective in the Goal field. Double-click the field to edit it.
- Lower Bound -- The lowest value that you want to allow the optimizer to achieve. This field only applies if the dependent variable is set to function as a Constraint, Maximize+Constraint, or Minimize+Constraint in the Goal field. Set the Upper Bound and Lower Bound to be equal to employ the dependent variable as an equality constraint. Double-click the field to edit it.
- Upper Bound -- The highest value that you want to allow the optimizer to achieve. This field only applies if the dependent variable is set to function as a Constraint, Maximize+Constraint, or Minimize+Constraint in the Goal field. Set the Upper Bound and Lower Bound to be equal to employ the dependent variable as an equality constraint. Double-click the field to edit it.
- Object -- The segment or component to which the element belongs.
- Goal -- The purpose of the element in the problem; click the field once and select Constraint to employ the element as a constraint, Maximize or Minimize to employ it as an objective, or Maximize+Constraint or Minimize+Constraint to employ it as an objective that is only satisfied within specified bounds. If you select multiple Maximize or Minimize objectives for the same profile, the optimizer will maximize or minimize the sum of the values (with each individual value multiplied by its weight and divided by its scale factor).
- Custom Display Unit -- Select to use a unit other than the default when displaying results in the status window and graphs.
- Display Unit -- The unit to be displayed if the Custom Display Unit option has been selected.
Graphs cannot display DMS or HMS angle units and will use the scenario unit instead
If you have multiple objectives and constraints, select the Hide Inactive field to hide objectives and constraints that are not currently selected for use.
The tolerance for constraints is set on the Advanced page.
The following fields appear below the Objectives and Constraints list:
Field | Description |
---|---|
Scaling Method | Select among:
|
Scaling Value | Enter a scale value if the Custom Scaling Method has been selected. |
Options
Convergence criteria and related parameters are specified on the Options tab for each optimizer profile:
Field | Description |
---|---|
Reset controls before each run | When this option is checked, the optimizer is automatically reset each time that it is run, discarding information that was computed the last time it was run. |
Display status |
Select to have a page appear during the targeting run to report the status of the targeting effort in terms of proximity to the desired value for each dependent variable in the profile. Click For a design that violates one or more constraints, the Fitness Function displayed in the status grid is calculated by adding a penalty factor (equal to the sum of violated constraint margins) to the objective value. The penalty factor is subtracted when maximizing the objective. For a design that satisfies all constraints, the Fitness Function displayed in the status grid is calculated by subtracting a small bonus factor (based on the constraint that is closest to its boundary) from the objective value. The bonus factor is added when maximizing the objective. |
Generate results file | Select to create a file of the optimizer's results, which is saved to the scenario directory. |
Enforce design variable bounds | Select to have the optimizer stop if it tries to take a function evaluation outside of the bounds of a control variable; if this option is not selected, it may allow the optimizer more freedom to search the design space. |
Use defaults for general options | Select to disable the Maximum number of iterations field and enforce the use of the default value. |
Maximum number of evaluations | The maximum number of complete evaluations of the target sequence to try before stopping. |
Advanced
The Advanced tab for the optimizer profile provides several additional configuration options:
Option | Description |
---|---|
Use defaults for advanced options |
Select to disable the value fields for each of the advanced options and enforce the use of the default values. |
Use global perturbation size for calculating gradients | Select to define a single perturbation size to be used for all control parameters; perturbations defined for individual control parameters on the Variables tab will be overridden. |
Tolerance on objective function | Enter the desired tolerance for satisfying an objective. |
Tolerance on constraint feasibility | Enter the desired tolerance for abiding a constraint. |
Tolerance on projected gradient | Enter the desired tolerance for convergence on a projected gradient. |
Summary Log, Detail Log, and Engine Log
The Summary, Detail, and Engine Log tabs provide results information for the last run of the optimizer profile. The Summary Log displays the profile's overall result, in terms of the best solution it achieved. The Details Log displays the control parameters, objectives, and constraints that were used in the profile and all of the parameter settings; in addition, it displays results for each iteration of the profile. The Engine Log displays the raw output of the optimizer, which may be useful for debugging or troubleshooting.
Graphs
The Graphs tab allows you to define a variety of graphs of the optimizer profile's performance that can be generated manually when desired or automatically whenever the MCS is run. The tab is divided into two general areas - a table that displays the graphs that have been assigned to the profile and the collection of properties that define the graph that is currently selected in the table.
Graphs Table
You can add, copy, delete and perform other actions on graphs by right-clicking in the table that lists them or by using the following toolbar buttons:
Button | Name | Function |
---|---|---|
![]() |
New... | Inserts a new graph with default properties settings. |
![]() |
Cut | Removes the currently selected graph from the list and copies it to the clipboard. |
![]() |
Copy | Makes a copy of the currently selected graph to the clipboard. |
![]() |
Paste | Inserts a copy of the graph that is currently on the clipboard. |
![]() |
Delete | Deletes the currently selected graph. |
The graphs table displays the following information for each graph:
- Name -- The name given by the user to the graph or, if one was not given, the default name.
- Generate on run -- Select to have Astrogator generate the graph automatically each time that the MCS is run.
- User Comment -- a description of the graph supplied by the user or, if one was not supplied, a default description.
Graph Properties
Each graph can display the values of any number of the active Controls and Objectives and Constraints defined for the profile against an X axis of the number of iterations performed or any single active Control or Objective or Constraint defined for the profile.
The Independent variable field defines the X axis of the graph. If the X axis is one of the active Controls or Objectives or Constraints, you can select Label Iterations to have each of the points on the graph labeled according to its iteration number.
The active Controls defined for the profile are listed in a table that you can use to specify their display characteristics in the graph:
- Name -- The name of the element selected as a control.
- Object -- The segment or component to which the element belongs.
- Graph Value -- Select to include the value in the graph.
- Line Color -- The color of line that will be used to represent the control's value in the graph.
- Point Style -- The style of marker that will be used to represent iteration points along the control's line in the graph.
- Y Axis -- Select Y1 or Y2 to display a range of values suitable to the control on the left or right side, respectively, of the graph.
The active Objectives and Constraints (Results) defined for the profile are also listed in a table that you can use to specify their display characteristics in the graph:
- Name -- The name of the Calculation Object used as an Objective or Constraint.
- Object -- The segment or component for which this Objective or Constraint has been selected.
- Graph Option -- Select Don't graph to leave the Objective or Constraint out of the graph or Graph value to use the Objective's or Constraint's value in the graph.
- Line Color -- The color of line that will be used to represent the Objective's or Constraint's value in the graph.
- Point Style -- The style of marker that will be used to represent iteration points along the Objective's or Constraint's line in the graph.
- Y Axis -- Select Y1 or Y2 to display a range of values suitable to the Objective or Constraint on the left or right side, respectively, of the graph.
Click Generate Graph to produce the currently selected graph. To produce a report of the graph data, click Generate Report.
Scripting
The Scripting tab contains an embedded instance of the Scripting Tool. A script entered here will be executed before the sequence is run. The script will be executed each time that the profile runs the sequence. Parameters that are defined in the Scripting Tool are available for use as controls by the optimizer profile.
Troubleshooting
This section discusses approaches to troubleshooting some common problems with Design Explorer Optimizer.
Scaling
The optimizer may fail to converge or give an error if design variables, constraints, and objectives are not properly scaled. First, try setting the Scaling Method to Auto; if that method does not work, try setting the method to Custom and define the scale factors manually.
To check for proper scaling:
- On the Options tab, select Generate results file.
- Rerun the optimizer.
- After the optimization run has completed, a file called optDesigns.csv will be written to the Scenario directory. This file contains the scaled values for all design variables, constraints, and objectives for each iteration of the optimization run. All values (except those for fitness and critical margin) should be around 1.0.
Design Variable Bounds
Occasionally, the optimizer will set one or more of the design variables outside of its range. This typically happens because the optimizer is having difficulty finding a search direction that will yield a feasible design or improve the objective function. Reasons for this occurring include:
- Non-smooth interpolation of data
- Iterative procedures (e.g., a Differential Corrector) inside the function evaluation process
- Discontinuous constraint/objective functions (e.g., branching from IF tests)
- Non-differentiable functions (e.g., ABS, MAX, MIN)
- The optimizer is having a difficult time finding a feasible region of the design space
If this occurs, deselect Enforce design variable bounds and try running the optimizer again. If the optimizer still does not converge, then the target sequence may have to be modified to remove discontinuities. For example, if there are nested differential correctors, try to have the optimizer itself incorporate the differential correctors’ equality constraints instead of using the nested differential correctors.