Tutorial 3, Part 1: Optimization of a
linear truss structure
2 Tutorial 3, Part 1: Optimization
Truss structure
• Optimization goal is to minimize the mass of the structure (initial mass is 8393 lbs)
• Maximum stress is 25000 psi (limit stress=40166/global safety factor=1.6)• Maximum displacement is 20 in• Design variables: cross section areas of trusses 0.1 in² ≤ Xi=ai ≤ 20 in²• Load parameters: F=100000 lbf• Material parameters: E=107 psi, =0.2, =0.1 lbs/in³• Element length: L=360 in• Responses from linear finite element analysis are mass, displacements at
loading points and stresses for each element
3 Tutorial 3, Part 1: Optimization
Task description
• Parameterization of the problem• Definition and evaluation of DOE scheme• Definition and evaluation of MOP
• Single objective, constraint optimization• Gradient based optimization• Adaptive response surface method• Evolutionary algorithm
• Multi objective optimization• Pareto optimization with
evolutionary algorithm
4 Tutorial 3, Part 1: Optimization
Project manager
1. Open the project manager2. Define project name3. Create a new project directory4. Copy optiSLang Examples/10bar_truss into project directory
1.
2.3.
5 Tutorial 3, Part 1: Optimization
Parameterization of the problem
1. Start a new parametrize workflow2. Define workflow name3. Create a new problem specification4. Enter problem file name5. Start parametrize editor
1.2.
3.
5.
4.
6 Tutorial 3, Part 1: Optimization
Parameterization of the problem
1. Click “open file” icon in parametrize editor2. Browse for the SLang input file 10bar_truss.s 3. Choose file type as INPUT
1.
2.
3.
7 Tutorial 3, Part 1: Optimization
Parameterization of the problem
1. Mark value of a1 in the input file2. Define a1 as input parameter3. Define parameter name
1.
2.
3.
8 Tutorial 3, Part 1: Optimization
Parameterization of the problem
1. Open parameter in parameter tree2. Enter lower and upper bounds
(0.1 … 20.0)3. Set settings as default for
other parameters
1.
2.
3.
9 Tutorial 3, Part 1: Optimization
Parameterization of the problem
• Repeat the procedure for the other cross section areas• Lower and upper bounds are automatically set to 0.1 … 20.0
10 Tutorial 3, Part 1: Optimization
Parameterization of the problem
1. Open output file of solver 10bar_response.out2. Mark output value in editor3. Define mass as output parameter4. Repeat for displacements and stress values (take care of sign)
1a.
2. 3a.
1b.3b.
11 Tutorial 3, Part 1: Optimization
Parameterization of the problem
1. Mark final string2. Define it as success string
1.
2.
12 Tutorial 3, Part 1: Optimization
Parameterization of the problem
1. Open objective section (double click)2. Create new objective function 3. Define mass as objective
2.1.
3.
13 Tutorial 3, Part 1: Optimization
Parameterization of the problem
1. Open constraint section (double click)2. Create inequality constraint equation for each displacement value
1-|disp_node/20| (scaled to one)3. Create inequality constraint equation for each stress value
1-|stress_element/25000| (scaled to one)
1.
2.
3.
14 Tutorial 3, Part 1: Optimization
Parameterization of the problem
1. Close parametrization editor2. Check overview for inputs3. Check overview for outputs
15 Tutorial 3, Part 1: Optimization
Parameterization of the problem
1. Check overview for objectives2. Check overview for constraints
16 Tutorial 3, Part 1: Optimization
Design Of Experiments (DOE)
1.
2.
2.
3.
1. Start a new DOE workflow2. Define workflow name and workflow identifier3. Enter problem file name
17 Tutorial 3, Part 1: Optimization
Design Of Experiments (DOE)
1.
1. Enter solver call (slang –b 10bar_truss.s)
2. Start DOE evaluation3. Generate 100 Latin
Hypercube samples
3.
18 Tutorial 3, Part 1: Optimization
1. Check input samples2. Check input distributions3. Check input correlations4. Continue to evaluate
response values
Design Of Experiments (DOE)
1.
4. 3. 1.
2.
2.
19 Tutorial 3, Part 1: Optimization
• Reload file in optimization mode to find best design from DOE samples as possible start value for optimization task
• Best design with valid constraints: mass = 3285 (39% of initial mass)
Design Of Experiments (DOE)
20 Tutorial 3, Part 1: Optimization
Meta-Model of Optimal Prognosis (MOP)
1.
2.
4.
1. Start a new MOP workflow2. Define workflow name 3. Define workflow identifier4. Choose DOE result file5. Choose optional problem file
5.
3.
21 Tutorial 3, Part 1: Optimization
Meta-Model of Optimal Prognosis (MOP)
1.
2.
3.
4.
1. CoP settings (sample splitting or cross validation)2. Investigated approximation models3. CoP - accepted reduction in prediction quality to simplify model4. Filter settings5. Selection of inputs and outputs
5.
22 Tutorial 3, Part 1: Optimization
Meta-Model of Optimal Prognosis (MOP)
• MOP indicates only a1, a3, a8 as important variables for maximum stress and displacements,but all inputs are important for objective function
23 Tutorial 3, Part 1: Optimization
Meta-Model of Optimal Prognosis (MOP)
• For single stress values used in constraint equations, each input variable occurs at least twice as important parameter
Reduction of number of inputs seems not possible
max_stressmax_dispstress10stress9stress8stress8stress6stress5stress4stress3stress2stress1
disp4disp2mass
a1 a2 a3 a4 a5 a6 a7 a8 a9 a10
MOP filter
24 Tutorial 3, Part 1: Optimization
Gradient-based optimization
1.2.
3.
1. Start a new Gradient-based workflow2. Define workflow name and workflow identifier3. Enter problem file name4. Choose optimization method5. Enter solver call (slang –b 10bar_truss.s)6. Start gradient workflow
2.
4.
25 Tutorial 3, Part 1: Optimization
1. Decrease size of diffentiation interval
2. Choose single sided differences to reduce number of solver calls
3. Choose best valid sample from DOE workflow as start value
Gradient-based optimization
1.
2.
3.
3.
26 Tutorial 3, Part 1: Optimization
Gradient-based optimization
• Best design with valid constraints: mass = 1595 (19% of initial mass)
• Elements 2,5,6 and 10 are set to minimum
• Stresses in remaining elements reach maximum value
• 153 solver calls (+100 from DOE)
27 Tutorial 3, Part 1: Optimization
Adaptive response surface
1.
2.
3.
1. Start a new ARSM workflow2. Define workflow name and workflow identifier3. Enter problem file name4. Enter solver call (slang –b 10bar_truss.s)5. Start ARSM workflow
2.
28 Tutorial 3, Part 1: Optimization
Adaptive response surface
2.
3.1. GA & NLPQL as optimization
method2. Approximation settings:
keep polynomial regression3. Advanced settings: no recycle
of previous support points
2.1.
29 Tutorial 3, Part 1: Optimization
Adaptive response surface
• Best design with valid constraints: mass = 1613 (19% of initial mass)
• Elements 2,6 and are set to minimum, 5 and 10 are close to minimum
• 360 solver calls
30 Tutorial 3, Part 1: Optimization
Evolutionary algorithm (global search)
1. Start a new NOA workflow2. Define workflow name and workflow identifier 3. Enter problem file name4. Choose optimization algorithm (EA with global search as default)5. Enter solver call (slang –b 10bar_truss.s) and start workflow
1. 2.
3.
4.
2.
31 Tutorial 3, Part 1: Optimization
Evolutionary algorithm (global search)
1.
1. Choose start population size2. Keep defaults for Selection,
Crossover and Mutation
32 Tutorial 3, Part 1: Optimization
Evolutionary algorithm (global search)
• Best design with valid constraints: mass = 2087 (25% of initial mass)
• 392 solver calls
33 Tutorial 3, Part 1: Optimization
Evolutionary algorithm (local search)
1.
1. Keep defaults for Start population, Selection, Crossover and Mutation
2. Choose start design from global EA optimization
2a.
2b.
34 Tutorial 3, Part 1: Optimization
Evolutionary algorithm (local search)
• Best design with valid constraints: mass = 2049 (24% of initial mass)
• 216 solver calls (+392 from global search)
35 Tutorial 3, Part 1: Optimization
Overview optimization resultsMethod Settings Mass Solver calls Constraints
violatedInitial - 8393 - -DOE LHS 3285 100 75%
NLPQL diff. interval 0.01%, single sided 1595 153(+100) 42%
ARSM defaults (local) 1613 360 80%EA global defaults 2087 392 56%EA local defaults 2049 216(+392) 79%
PSO global defaults 2411 400 36%GA global defaults 2538 381 25%SDI local defaults 1899 400 70%
• NLPQL with small differentiation interval with best DOE as start design is most efficient
• Local ARSM gives similar parameter set• EA/GA/PSO with default settings come close to global optimum• GA with adaptive mutation has minimum constraint violation
36 Tutorial 3, Part 1: Optimization
Parameterization of second objective
1. Start a new parametrize workflow2. Define workflow name3. Create a copy and modify it4. Open truss.pro and enter new problem file name
1. 2.
3.
4.
37 Tutorial 3, Part 1: Optimization
Parameterization of second objective
1. Create a new objective2. Enter name, activate and enter function obj2 = max_stress3. Delete stress constraints4. Close editor and check objectives
1.
2.
3.4.
38 Tutorial 3, Part 1: Optimization
Pareto optimization with EA
1.2.
3.
1. Start a new Pareto workflow2. Define workflow name and workflow identifier 3. Enter problem file name4. Choose EA as optimization algorithm 5. Enter solver call (slang –b 10bar_truss.s) and start workflow
2.
4.
39 Tutorial 3, Part 1: Optimization
Pareto optimization with EA
Find optimal designs for start population: • Open ARSM optimization results in statistic mode• Select anthill plot mass vs. max_stress• Select some designs around the optimum which seem
to be Pareto optimal • Remember the design numbers
1.
40 Tutorial 3, Part 1: Optimization
Pareto optimization with EA
1. Select “specify start population” 2. Increase minimum and maximum number of generations3. Keep defaults for Selection, Crossover and Mutation
1.
2.
41 Tutorial 3, Part 1: Optimization
Pareto optimization with EA
1.
2.
1. Import design from ARSM optimization2. Choose 20 designs (preferred designs from anthill plot
and the remaining from the designs with minimal mass)
1.
42 Tutorial 3, Part 1: Optimization
Pareto optimization with EA
Pareto front