420 likes | 586 Views
Tutorial 3, Part 1: Optimization of a linear truss structure. 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
E N D
Tutorial 3, Part 1: Optimization of a linear truss structure
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 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 Tutorial 3, Part 1: Optimization
Project manager 1. 2. 3. • Open the project manager • Define project name • Create a new project directory • Copy optiSLang Examples/10bar_truss into project directory Tutorial 3, Part 1: Optimization
Parameterization of the problem 1. 2. 3. 4. 5. • Start a new parametrize workflow • Define workflow name • Create a new problem specification • Enter problem file name • Start parametrize editor Tutorial 3, Part 1: Optimization
Parameterization of the problem 1. 2. 3. • Click “open file” icon in parametrize editor • Browse for the SLang input file 10bar_truss.s • Choose file type as INPUT Tutorial 3, Part 1: Optimization
Parameterization of the problem 2. 1. 3. • Mark value of a1 in the input file • Define a1 as input parameter • Define parameter name Tutorial 3, Part 1: Optimization
Parameterization of the problem 1. 2. • Open parameter in parameter tree • Enter lower and upper bounds (0.1 … 20.0) • Set settings as default for other parameters 3. 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 Tutorial 3, Part 1: Optimization
Parameterization of the problem 3a. 2. 1a. 1b. 3b. • Open output file of solver 10bar_response.out • Mark output value in editor • Define mass as output parameter • Repeat for displacements and stress values (take care of sign) Tutorial 3, Part 1: Optimization
Parameterization of the problem 2. 1. • Mark final string • Define it as success string Tutorial 3, Part 1: Optimization
Parameterization of the problem 3. 1. 2. • Open objective section (double click) • Create new objective function • Define mass as objective Tutorial 3, Part 1: Optimization
Parameterization of the problem 2. 3. 1. • Open constraint section (double click) • Create inequality constraint equation for each displacement value 1-|disp_node/20| (scaled to one) • Create inequality constraint equation for each stress value 1-|stress_element/25000| (scaled to one) Tutorial 3, Part 1: Optimization
Parameterization of the problem • Close parametrization editor • Check overview for inputs • Check overview for outputs Tutorial 3, Part 1: Optimization
Parameterization of the problem • Check overview for objectives • Check overview for constraints Tutorial 3, Part 1: Optimization
Design Of Experiments (DOE) 2. 1. 2. 3. • Start a new DOE workflow • Define workflow name and workflow identifier • Enter problem file name Tutorial 3, Part 1: Optimization
Design Of Experiments (DOE) 1. 3. • Enter solver call (slang –b 10bar_truss.s) • Start DOE evaluation • Generate 100 Latin Hypercube samples Tutorial 3, Part 1: Optimization
Design Of Experiments (DOE) 2. 1. 4. 3. 1. 2. • Check input samples • Check input distributions • Check input correlations • Continue to evaluate response values Tutorial 3, Part 1: Optimization
Design Of Experiments (DOE) • 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) Tutorial 3, Part 1: Optimization
Meta-Model of Optimal Prognosis (MOP) 2. 1. 3. 4. 5. • Start a new MOP workflow • Define workflow name • Define workflow identifier • Choose DOE result file • Choose optional problem file Tutorial 3, Part 1: Optimization
Meta-Model of Optimal Prognosis (MOP) 1. 4. 2. 3. 5. • CoP settings (sample splitting or cross validation) • Investigated approximation models • DCoP - accepted reduction in prediction quality to simplify model • Filter settings • Selection of inputs and outputs 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 Tutorial 3, Part 1: Optimization
Meta-Model of Optimal Prognosis (MOP) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 max_stress max_disp stress10 stress9 stress8 stress8 stress6 stress5 stress4 stress3 stress2 stress1 disp4 disp2 mass MOP filter • 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 Tutorial 3, Part 1: Optimization
Gradient-based optimization 2. 1. 2. 3. 4. • Start a new Gradient-based workflow • Define workflow name and workflow identifier • Enter problem file name • Choose optimization method • Enter solver call (slang –b 10bar_truss.s) • Start gradient workflow Tutorial 3, Part 1: Optimization
Gradient-based optimization 3. 1. 2. • Decrease size of diffentiation interval • Choose single sided differences to reduce number of solver calls • Choose best valid sample from DOE workflow as start value 3. 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) Tutorial 3, Part 1: Optimization
Adaptive response surface 2. 1. 2. 3. • Start a new ARSM workflow • Define workflow name and workflow identifier • Enter problem file name • Enter solver call (slang –b 10bar_truss.s) • Start ARSM workflow Tutorial 3, Part 1: Optimization
Adaptive response surface 2. 1. 2. 3. • GA & NLPQL as optimization method • Approximation settings: keep polynomial regression • Advanced settings: no recycle of previous support points 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 Tutorial 3, Part 1: Optimization
Evolutionary algorithm (global search) 2. 1. 2. 3. 4. • Start a new NOA workflow • Define workflow name and workflow identifier • Enter problem file name • Choose optimization algorithm (EA with global search as default) • Enter solver call (slang –b 10bar_truss.s) and start workflow Tutorial 3, Part 1: Optimization
Evolutionary algorithm (global search) 1. • Choose start population size • Keep defaults for Selection, Crossover and Mutation Tutorial 3, Part 1: Optimization
Evolutionary algorithm (global search) • Best design with valid constraints: mass = 2087 (25% of initial mass) • 392 solver calls Tutorial 3, Part 1: Optimization
Evolutionary algorithm (local search) 1. 2a. 2b. • Keep defaults for Start population, Selection, Crossover and Mutation • Choose start design from global EA optimization 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) Tutorial 3, Part 1: Optimization
Overview optimization results • 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 Tutorial 3, Part 1: Optimization
Parameterization of second objective 1. 2. 3. 4. • Start a new parametrize workflow • Define workflow name • Create a copy and modify it • Open truss.pro and enter new problem file name Tutorial 3, Part 1: Optimization
Parameterization of second objective 2. 1. 4. 3. • Create a new objective • Enter name, activate and enter function obj2= max_stress • Delete stress constraints • Close editor and check objectives Tutorial 3, Part 1: Optimization
Pareto optimization with EA 2. 1. 2. 3. 4. • Start a new Pareto workflow • Define workflow name and workflow identifier • Enter problem file name • Choose EA as optimization algorithm • Enter solver call (slang –b 10bar_truss.s) and start workflow Tutorial 3, Part 1: Optimization
Pareto optimization with EA 1. 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 Tutorial 3, Part 1: Optimization
Pareto optimization with EA 1. 2. • Select “specify start population” • Increase minimum and maximum number of generations • Keep defaults for Selection, Crossover and Mutation Tutorial 3, Part 1: Optimization
Pareto optimization with EA 2. 1. 1. • Import design from ARSM optimization • Choose 20 designs (preferred designs from anthill plot and the remaining from the designs with minimal mass) Tutorial 3, Part 1: Optimization
Pareto optimization with EA Pareto front Tutorial 3, Part 1: Optimization