optimize design_of_experiments
The DESIGN_OF_EXPERIMENTS command allows you to perform a number of analyses on a parametric model.
You specify which design variables are to be changed, and one or more objective functions that are to be evaluated upon completion of each analysis.
The combinations of design variable values to be used by the DOEalgorithm are taken from a table, which might look like this (for an experiment with three variables and four trials).
-1 -1 0
-1 +1 0
-1 0 +1
0 0 +1
The values in the table are used as indexes into the list of ALLOWED_VALUES, where 0 is meant to index the central value (if there is one).
The tables used by Adams View in its DOE algorithm can come from one of three places:
1. An already existing disk file (possibly generated by another program).
2. They can be entered on the command line by you.
3. They can be automatically generated by Adams View.
There are three mutually exclusive groups of parameters providing different means for performing the analysis on your model. The first two use Adams Solver with either simple values (END_TIME, NUMBER_OF_STEPS, and so on) or the Adams command file (ACF) interface.
The third group (labelled INDEPENDENT_OF_RESULTS) allows you to perform a DOE without invoking Adams Solver (set the DO_NOT_RUN_SOLVER parameter to TRUE). This is appropriate for models where the objective is not dependent on any analysis results.
For example, you might define a model in which the objective is dependent upon the mass of a part. If the mass of the part is determined by the geometry of the system, then you do not need to run Adams Solver. If you can use this type of analysis, do so, as it reduces the amount of time required for analysis by orders of magnitude.
Format:
optimize design_of_experiments |
|---|
model_name= | existing mode |
analysis_name= | existing analysis |
user_executable= | string |
brief= | on/off |
on_objective_error= | stop/continue |
analysis_type= | analysis_type |
number_of_steps= | integer |
end_time= | real |
initial_static= | yes/no |
adams_command_file= | string |
do_not_run_solver= | true |
objective_name= | existing objective |
design_variables= | existing design variable |
technique= | doe_technique |
number_of_user_trials= | integer |
user_matrix= | integer |
matrix_file_name= | string |
Description:
Parameter | Value Type | Description |
|---|
model_name | Existing Model | Specifies an existing model |
analysis_name | Existing Analysis | Specifies an existing analysis |
user_executable | String | Specifies the name of the user Adams executable to use for this analysis. If no values are specified, the standard Adams executable is run. |
brief | On, Off | Specifies whether or not to display the brief form of the information about the analysis being submitted. If set to Off, the entire output from the Adams run will be displayed in the info_window. If set to On, only errors and warnings will be displayed. |
on_objective_error | Stop, Continue | Indicates how Adams View should handle an invalid/nonexistent objective |
analysis_type | Dynamics, Kinematics, Statics, Transient | Specifies which type of analysis you want Adams to perform. |
number_of_steps | Integer | The number of values to be stored in each component of a result set being read from a file. |
end_time | Real | Specifies the end time for a dynamic, kinematic, or quasi-static equilibrium analysis. |
initial_static | Yes, No | Specifies whether or not Adams is to execute a static solution prior to the main simulation. |
adams_command_file | String | Specifies the contents of the Adams command file to use to control the execution of the Adams simulation. |
do_not_run_solver | True | When you set DO_NOT_RUN_SOLVER to TRUE (its only possible value), you are indicating that the DOE or optimization is to take place without using Adams Solver. This is only possible when you have a model whose design functions (objectives or constraints) are not dependent upon analysis results in any way. |
objective_name | Existing Objective | Specifies the names of the objectives that are to be evaluated at every run during the Design of Experiments analysis. |
design_variables | Existing Design Variable | The DESIGN_VARIABLES parameter allows you to specify which Adams View variables are to be modified for the DOE runs. Each variable must have its ALLOWED_VALUES specified for the DOE algorithms to operate. |
technique | Doe Technique | When you perform a Design of Experiments analysis, you may select a built-in technique for creating the trial matrix. |
number_of_user_trials | Integer | Use the NUMBER_OF_USER_TRIALS parameter with the USER_MATRIX parameter to indicate how many user trials are being entered. |
user_matrix | Integer | The USER_MATRIX parameter specifies indexes to the levels for each variable. |
matrix_file_name | String | Specifies the file in which the DOE trials are described |
Extended Definition:
1. You may identify a model by typing its name or by picking it from the screen.
If the model is not visible on the screen, you must type the name.
You may also find it convenient to type the name even if the model is displayed.
You must separate multiple model names by commas. If the model is visible in one of your views, you may identify it by picking on any of the graphics associated with it.
You need not separate multiple model picks by commas.
2. You may identify an analysis by typing its name or by picking it from the screen.
An analysis may be picked from the screen if you have read an Adams Graphics file, and use the GRAPHIC_RESULTS command to display it. If the analysis is not visible on the screen, you must type the name. You may also find it convenient to type the name even if the analysis is displayed.
You may have explicitly named the analysis when you created it by reading one or more Adams output files. By default, the name of the analysis is the root name of the Adams output files. If you created the analysis by reading an Adams Graphics file, for instance, the analysis name is the name of the graphics file without the '.gra' extension.
You may get a list of analysis by typing a "?" in response to a parameter that requires an analysis name to be entered.
You must separate multiple analysis names by commas.
If the analysis is visible in one of your views, you may identify it by picking on any of the graphics associated with it.
You need not separate multiple analysis picks by commas.
3. If on_objective_error is "stop", the simulations will stop if Adams View detects an invalid/nonexistent objective during the simulations. If on_objective error is "continue", the simulations will continue if Adams View detects an invalid/nonexistent objective. On_objective_error defaults to "stop".
4. There are 4 different analysis types:
■DYNAMIC: Specifies that Adams is to integrate the dynamics equations.
If you request a dynamic analysis for a model with zero degrees-of-freedom, Adams issues a warning message and integrates the equations instead of using kinematic analysis. Kinematic analysis is faster.
■KINEMATICS: Specifies that Adams is to run a kinematic analysis. If you request a kinematic analysis for a model with one or more degrees-of-freedom, Adams issues an error message and ignores the entire command.
■ STATICS: Specifies that Adams is to run either a static equilibrium analysis or a quasi-static equilibrium analysis. If you choose STATICS and fail to specify an END_TIME, or NUMBER_OF_STEPS, Adams performs a static equilibrium analysis at the current time. If you choose STATICS and specify an end time and one or more steps, Adams performs a quasi- static equilibrium analysis.
■ TRANSIENT: Specifies that Adams is to run a kinematic analysis if the model has zero degrees of freedom, or a dynamic analysis if the system has one or more degrees-of-freedom.
You may use the 'MODEL VERIFY' command to display the number of degrees-of-freedom in your model.-
5. All components being read from a file must have the same number of steps. Lines that do not begin with a number are considered comments and ignored.
If this parameter is not specified, the size of the components will be inferred from the format of the file. A component will be read from a file until a comment line is encountered. This comment line marks the end of the component.
6. END_TIME must be greater than the begin time.
Since the begin time must be greater than zero, this means that the end time must also be greater that zero.
7. If you select YES for the initial_static parameter, Adams will run a static analysis before starting the simulation you have specified with the ANALYSIS_TYPE, NUMBER_OF_STEPS, and END_TIME parameters.
You may wish to set this parameter to YES when running a vehicle model, for instance, to allow the vehicle to settle on its suspension before starting a transient analysis.
8. Adams View allows you to create your own Adams Command File by using the text edit window. You can control the Adams simulation parameters and commands by putting all commands in the command file just as you would enter them during an interactive Adams analysis session. When Adams View submits the Adams analysis run, the command file "View_Ana.acf" will be created, and Adams will use this command file to control the simulation.
See the Adams documentation for a complete description of the Adams Command File.
To invoke the text edit window for modification of the ACF file, just pick the "EDIT" button on the SUBMIT command panel while the ADAMS_COMMAND_FILE parameter field in active.
Below, is a description of the text editor.
The Text Edit Window provides a flexible means of entering large amounts of text into a panel field.
■Invoking the text edit window:
The Text Edit Window is displayed by either typing control-t or picking the EDIT button on a panel.
When the text edit window is displayed, the contents of the current active field are placed into it. If the contents of the current active field consist of multiple quoted strings, then each string will be placed on a separate line in the text edit window.
■Cursor placement: Point and click. You can place the text cursor anywhere within the text by placing the mouse cursor at the desired location and clicking. Arrow keys can be used to move the cursor left, right, up and down within the text in the window. The up and down arrow keys will also scroll the window if there are more than 8 lines of text. Carriage-return advances to the next line.
■Buttons:
■OK - The OK button is used when you are satisfied with the text in the window and that you wish it to be placed into the panel from which it originated. A verification will be performed, and if there are no problems, the contents of the text edit window will be placed into the originating field. If the verification failed, the cursor will be placed at or near the location where the parser detected a problem.
■ CANCEL - The CANCEL button is used to terminate the current use of the text edit window, and to return to the originating panel without changing the contents of the current active panel field.
■VERIFY - The VERIFY button is used to perform a verification on the current contents of the text edit window. It checks for the proper syntax required by the active field on the originating panel. A message will be output indicating success or failure. In the case of a failure, the text cursor will be placed at or near the location where the parser detected a problem.
■ GET_NAME - The GET_NAME button is used to place the name of a marker into the text in the window at the current text cursor location. After the MARKER button has been picked, you may then pick a marker and its name will be inserted at the current text cursor location.
■ FUNCTIONS - The FUNCTIONS button provides a means of constructing an Adams function string. Upon picking the FUNCTIONS button, you will be presented with the list of available functions in the "selection window". After you select the desired function, a panel will appear with fields representing the various parameters for the function. You will have full access to on-line help with this panel just like you have with regular panels. After you have completed the panel and selected the DONE button on the panel, the function string will be constructed and inserted at the current text cursor location in the text edit window.
■ INSERT/OVERSTRIKE - The INSERT/OVERSTRIKE button toggles between insert mode and overstrike mode. In insert mode, as characters are typed, any characters to the right of the insertion point on the current line are shifted further to the right. In overstrike mode, as characters are typed, they will replace any characters to their right that they may encounter.
■ CUT - The CUT button will cut out the line that currently contains the text cursor. The line is remembered until a subsequent CUT is performed. The information in the CUT buffer is accessible for PASTE operations for the duration of the Adams VIEW session.
■ PASTE - The PASTE button will insert the text that was last CUT. The insertion will be performed at the current text cursor location.
■ Control characters: control-i set for insert mode, control-o set for overstrike mode, control-d equivalent to OK button, control-q equivalent to CANCEL button, control-x equivalent to CUT button, control-v equivalent to PASTE button
9. One simple means for generating the trial matrix is by using the the case number as an index into the allowed values of the design variables. This is called the CASEWISE technique. You end up with N trials, where N is the number of levels for the design variables.
The FULL_FACTORIAL technique is a simple "brute force" algorithm that generates all possible permutations (there are N**M of them, where N is the number of levels for the design variables and M is the number of design variables; all design variables must have the same number of levels). This can quickly get out of hand, so it is often the case that you will choose a "reduced factorial" trial matrix.
CENTRAL_COMPOSITE is a reduced factorial algorithm that selects design points on the axis and adds the "star points", i.e. the corners of the design space.
BOX_BEHNKEN is a reduced factorial algorithm that selects the points on the planes of the design space.
USER1, USER2 and USER3 are used to invoke user-written code for generating tables.
A comparison of how many runs are required for a given algorithm is shown in the following table.
nDV nLv FF BB CC
--- --- -- -- --
2 3 9 5 9
2 5 25 9 17
2 7 49 13 25
3 3 27 13 15
3 5 125 49 29
3 7 343 109 43
4 3 81 33 25
4 5 625 257 49
4 7 2401 865 73
5 3 243 81 43
5 5 3125 1281 85
5 7 16807 6481 127
6 3 729 193 77
6 5 15625 6145 153
6 7 117649 46657 229
7 3 2187 449 143
7 5 78125 28673 285
7 7 823543 326593 427
where:
nDV = number of design variables
NLv = number of levels on each design variable
FF = number of trials for a Full Factorial experiment
BB = number of trials for a Box-Behnken experiment
CC = number of trials for a Central Composite experiment
10. The indexes specified in the user_matrix parameter should be centered. This means that for a two-level variable, the only possible values are -1 and +1; for three-levels, -1, 0 and +1; for four-levels, -2, -1, +1, +2; and so on.
11. The following is an example which could be used for an experiment with two variables with three levels each. There would be four trials in the experiment.
NUMBER_OF_USER_TRIALS=4 USER_MATRIX=0,+1, -1, 0, +1,-1, +1,+1
12. The first line of the file contains three numbers. The first is the number of variables for this DOE. The second number is the number of levels for each variable. The third number is the number of trials to be found on the subsequent lines of the file.
Each line that follows contains indexes to the levels for each variable. These indexes should be centered. This means that for a two-level variable, the only possible values are -1 and +1; for three-levels, -1, 0 and +1; for four-levels, -2, -1, +1, +2; and so on.
The following is an example of a file which could be used for an experiment with two variables with three levels each. There would be four trials in the experiment.
2 3 4
0 +1
-1 0
+1 -1
+1 +1