A trade study or trade-off study is the activity of a multidisciplinary team to identify the most balanced technical solutions among a set of proposed viable solutions (System Engineering Manual, Federal Aviation Administration, 2006).
A trade study is used to compare with a number of alternative solutions to see whether and how well they satisfy a particular set of criteria. Each solution is characterized by a set of measures of effectiveness (often abbreviated “moe’s”) that corresponds to evaluation criteria and has a calculated value or value distribution. The moe’s for a given solution is then evaluated using an objective function (often called a cost function or utility function), and the results for each alternative are compared to select a preferred solution.
Cameo Simulation Toolkit has built-in support for trade study analysis. The TradeStudyExamples sample model is used as a demonstration for trade study analysis through the following steps.
From the MD Customization for SysML::analysis patterns::trade study package, drag TradeStudy «Block» «Analysis» into the Block Definition diagram (BDD).
The TradeStudy package is available in all SysML projects. If the MD Customization for SysML package is not visible, click in the Containment tree pane and select Show Auxiliary Resources. |
The TradeStudy Block contains the following four value properties which will be inherited by the TradeAnalysis Block.
Create «objectiveFunction».
An objective function is a special type of constraint Block used to determine the overall value of any weighted alternatives in terms of weighted criteria. You must create a constraint Block containing related constraint parameters and a constant expression for determining the best weighted value, e.g., Criteria.
|
Add «objectiveFunction».
Create the constraint property in the TradeAnalysis Block typed by the created constraint Block, and apply «objectiveFunction», e.g., OF : Criteria.
Create «alternatives».
Create reference properties typed by a Block of alternatives and apply «alternatives» (Qualified Name: MD Customization for SysML::additional_stereotypes::alternatives) to those properties, e.g., C : Caliper, R : Rotor, and P : Pad, as shown in the figure below.
kind = TABLE: source must be an instance table which must be the same Classifier as the alternative property, as shown in the two figures below. However, sorting of rows in the table is not necessary.
kind = SUBTYPES: source must be a parent Block of subtypes which must be the same type as the alternative property, as shown in the two figures below. Also, the parent Block will not be evaluated as well as any Blocks which have Is Abstract = true.
kind = EXCEL: source must be either an Instance table linked to an Excel file («DiagramTableMapToDataSource» applied) or using an «ImportMap». Table columns or element properties must be correctly mapped to Excel/CSV columns as shown in the two figures below (see also Sync with Excel or CSV files). However, you do not need to use the Read from File command from the Publish Excel toolbar to load data into the table.
resultLocation
A package/instance table must be specified so an instance with related information will be saved after running the simulation. The information includes N, OutOfSpec, score, winner, and other elements.
|
Tags neglected
You can neglect animationSpeed, constraintFailureAsBreakpoint, UI, and autoStart.
Run the SimulationConfig.
When running the SimulationConfig, the information of TradeStudy will be printed in the Console pane. The Simulation pane will be disabled, but all warning/errors will be printed. There is a progress bar shown with the description of Executing alternative [n] of [total iterations] (Time elapsed: [time]), and the Cancel button that allows canceling Trade Study as shown in the figure below. Simulation Toolkit automatically iterates all variants and instantiates all possible configurations in memory. For example, Brake which contains the combinations of Pad (26 instances), Caliper (20 instances), and Rotor (4 instances) will have 26 x 20 x 4 = 2,080 configurations. The winner value on each iteration will be compared directly with the score value property.
|
Get the TradeAnalysis result.
When the simulation is either completed or canceled, winning information will be printed on the Console pane in the following three lines as shown in the figure below.
The first line shows the number of iterations (completed/canceled) of all alternatives for executionTarget with elapsed time.
The second line displays the winning configuration from the winner string.
The third line is the winningscore from the ^score.
The winner string is printed with the formats as follows: where StringKind will apply the following rules, depending on kind of alternative:
|
The result instance will be saved at the location as specified in resultLocation of SimulationConfig. You can create an instance table, set a Classifier to the TradeAnalysis Block, and set Scope to the package of the results.