PDF

Bracket — Stress Optimization
with Fatigue Evaluation
Introduction
This model demonstrates how to improve fatigue properties using shape optimization. The fatigue properties are not optimized directly. Instead a heuristic methodology is applied where an approximate value of the maximum stress is minimized subject to constraints on the mass and stiffness.
Model Definition
The model is based on the model Bracket — Fatigue Evaluation in the Fatigue Module Application Library. The initial stiffness as well as fatigue properties can thus be evaluated immediately. The fatigue analysis indicates that failure is likely to occur near some small fillets as illustrated in Figure 1.
Figure 1: The initial fatigue properties.
The Free Shape Domain, Free Shape Boundary, and Symmetry/Roller shape optimization features are used to allow modification of the fillet details, where the maximum stress occurs. COMSOL does not support optimization of the fatigue properties directly, so a heuristic approach is applied. The method is not guaranteed to improve the fatigue properties and therefore it is critical that these are evaluated before and after optimization. The heuristic approach involves using the a p-norm of the von Mises stress as the objective function, φ,
For large values of p the objective is a good approximation of the maximum stress, but too large values can cause numerical problems for the optimization solver, so the model uses p = 50.The objective is scaled with the initial value, so (strictly speaking) the maximum stress, σmax, does not play a role; it only serves to prevent unit warnings. The setup of this objective function is simplified by the use of the P-norm feature. COMSOL Multiphysics comes with built-in variables for the volume and the stiffness, so it is easy to specify these constraints. The number of optimization iterations is limited to 20 and an iterative solver is used for the structural mechanics to save computation time.
Results and Discussion
As one might expect the optimization increases the fillet to reduce the maximum stress. This can be seen in Figure 2.
Figure 2: The shape optimization increases the fillet radius at the point of maximum stress.
To verify that the optimization has indeed improved the fatigue properties, a fatigue analysis is performed on the optimized design, and the result can be seen in Figure 3.
Figure 3: The shape optimization has removed the stress concentration at the fillet as compared to the initial design in Figure 2.
Notes About the COMSOL Implementation
The MMA optimization solver is used, but note that the (default) globally convergent behavior is disabled. The Fatigue study step zeros the shape optimization variables, so the model uses the withsol operator to plot the fatigue usage in the deformed frame.
Application Library path: Optimization_Module/Shape_Optimization/bracket_fatigue_optimization
Modeling Instructions
Root
In this example you will start from an existing model from the Fatigue Module.
Application Libraries
1
From the File menu, choose Application Libraries.
2
In the Application Libraries window, select Fatigue Module > Stress Life > bracket_fatigue in the tree.
3
Increase the force per hole to avoid, so that the number of cycles to failure does not exceed 1e6 for the optimized design.
Global Definitions
Parameters 1
1
In the Model Builder window, under Global Definitions click Parameters 1.
2
In the Settings window for Parameters, locate the Parameters section.
3
Start by computing the stiffness of the initial design in a new Evaluation Group.
Study 1: Initial Design
1
In the Model Builder window, click Study 1.
2
In the Settings window for Study, type Study 1: Initial Design in the Label text field.
3
In the Study toolbar, click  Compute.
Study 2: Initial Fatigue
1
In the Model Builder window, click Study 2.
2
In the Settings window for Study, type Study 2: Initial Fatigue in the Label text field.
3
In the Study toolbar, click  Compute.
Results
Initial Compliance
1
In the Results toolbar, click  Evaluation Group.
2
In the Settings window for Evaluation Group, type Initial Compliance in the Label text field.
3
Locate the Data section. From the Parameter selection (para) list, choose Last.
Global Evaluation 1
1
Right-click Initial Compliance and choose Global Evaluation.
2
In the Settings window for Global Evaluation, click Add Expression in the upper-right corner of the Expressions section. From the menu, choose Component 1 (comp1) > Solid Mechanics > Global > solid.Ws_tot - Total elastic strain energy - J.
3
In the Initial Compliance toolbar, click  Evaluate.
Global Definitions
Parameters 1
1
In the Model Builder window, under Global Definitions click Parameters 1.
2
In the Settings window for Parameters, locate the Parameters section.
3
Component 1 (comp1)
In the Model Builder window, expand the Component 1 (comp1) node.
Definitions
In the Model Builder window, expand the Component 1 (comp1) > Definitions node.
Free Boundaries
1
In the Model Builder window, expand the Component 1 (comp1) > Definitions > Selections node.
2
Right-click Definitions and choose Selections > Explicit.
3
In the Settings window for Explicit, type Free Boundaries in the Label text field.
4
Locate the Input Entities section. From the Geometric entity level list, choose Boundary.
5
Click  Paste Selection.
6
In the Paste Selection dialog, type 24, 25, 28, 29 in the Selection text field.
7
Free Domains
1
In the Definitions toolbar, click  Adjacent.
2
In the Settings window for Adjacent, type Free Domains in the Label text field.
3
Locate the Input Entities section. From the Geometric entity level list, choose Boundary.
4
Locate the Output Entities section. From the Geometric entity level list, choose Adjacent domains.
5
Locate the Input Entities section. Under Input selections, click  Add.
6
In the Add dialog, in the Input selections list, choose Bolt 1, Bolt 2, and Free Boundaries.
7
Symmetry Boundaries
1
In the Definitions toolbar, click  Adjacent.
2
In the Settings window for Adjacent, type Symmetry Boundaries in the Label text field.
3
Locate the Input Entities section. From the Geometric entity level list, choose Domain.
4
Locate the Output Entities section. From the Geometric entity level list, choose Adjacent boundaries.
5
Locate the Input Entities section. Under Input selections, click  Add.
6
In the Add dialog, select Free Domains in the Input selections list.
7
Symmetry Domains
1
In the Definitions toolbar, click  Explicit.
2
In the Settings window for Explicit, type Symmetry Domains in the Label text field.
3
Locate the Input Entities section. Click  Paste Selection.
4
In the Paste Selection dialog, type 6 8 in the Selection text field.
5
P-Norm 1 (pnorm1)
1
In the Definitions toolbar, click  Physics Utilities and choose P-Norm.
2
In the Settings window for P-Norm, locate the Geometric Entity Selection section.
3
From the Selection list, choose Free Domains.
4
Click Replace Expression in the upper-right corner of the P-Norm section. From the menu, choose Component 1 (comp1) > Solid Mechanics > Stress > comp1.solid.mises - von Mises stress - N/m².
5
Locate the P-Norm section. In the a text field, type solid.mises/sigmaMax.
6
From the p list, choose User defined.
7
In the Norm text field, type pExp.
Component 1 (comp1)
Free Shape Domain 1
1
In the Physics toolbar, click  Optimization and choose Shape Optimization.
2
In the Settings window for Free Shape Domain, locate the Domain Selection section.
3
From the Selection list, choose Free Domains.
Symmetry/Roller 1
1
In the Shape Optimization toolbar, click  Symmetry/Roller.
2
In the Settings window for Symmetry/Roller, locate the Geometric Entity Selection section.
3
From the Selection list, choose Symmetry Boundaries.
Free Shape Boundary 1
1
In the Shape Optimization toolbar, click  Free Shape Boundary.
2
In the Settings window for Free Shape Boundary, locate the Boundary Selection section.
3
From the Selection list, choose Free Boundaries.
The bracket thickness is 8 mm, so we set a maximum displacement that is smaller to avoid inverted elements.
4
Locate the Control Variable Settings section. In the text field, type 3[mm], which corresponds to twice the maximum displacement.
Mirror Symmetry 1
1
In the Shape Optimization toolbar, click  Mirror Symmetry.
2
In the Settings window for Mirror Symmetry, locate the Geometric Entity Selection section.
3
From the Selection list, choose Symmetry Domains.
4
Locate the Plane section. From the p list, choose User defined.
5
From the n list, choose User defined.
Add Study
1
In the Home toolbar, click  Add Study to open the Add Study window.
2
Go to the Add Study window.
3
Find the Studies subsection. In the Select Study tree, select Empty Study.
4
Click the Add Study button in the window toolbar twice.
Study 1: Initial Design
Step 1: Stationary
1
In the Model Builder window, expand the Study 1: Initial Design node.
2
Right-click Study 1: Initial Design > Step 1: Stationary and choose Copy.
Study 3: Optimized Design
1
In the Model Builder window, click Study 3.
2
In the Settings window for Study, type Study 3: Optimized Design in the Label text field.
3
Right-click Study 3: Optimized Design and choose Paste Stationary.
Shape Optimization
1
In the Study toolbar, click  Optimization and choose Shape Optimization.
2
In the Settings window for Shape Optimization, locate the Optimization Solver section.
3
From the Method list, choose MMA.
4
In the Maximum number of iterations text field, type 15.
5
In the Move limits text field, type 0.2.
6
Click Add Expression in the upper-right corner of the Objective Function section. From the menu, choose Component 1 (comp1) > Definitions > comp1.pnorm1 - P-norm.
Use an if-statement to evaluate the objective for the last solution.
7
Locate the Objective Function section. In the table, enter the following settings:
8
Find the Objective settings subsection. From the Objective scaling list, choose Initial solution based.
9
Click Add Expression in the upper-right corner of the Constraints section. From the menu, choose Component 1 (comp1) > Definitions > Free Shape Domain 1 > comp1.fsd1.relVolume - Material volume divided by geometry volume - 1.
10
Click Add Expression in the upper-right corner of the Constraints section. From the menu, choose Component 1 (comp1) > Solid Mechanics > Global > comp1.solid.Ws_tot - Total elastic strain energy - J.
11
Locate the Constraints section. In the table, enter the following settings:
This prevents the optimized design from being heavier or less stiff.
12
In the Study toolbar, click  Get Initial Value.
Results
Stress (solid) 1
Right-click Results > Stress (solid) 1 and choose Delete.
Study 3: Optimized Design
Solver Configurations
In the Model Builder window, expand the Study 3: Optimized Design > Solver Configurations node.
Solution 3 (sol3)
1
In the Model Builder window, expand the Study 3: Optimized Design > Solver Configurations > Solution 3 (sol3) > Optimization Solver 1 > Stationary Solver 1 > Segregated 1 node, then click Solid Mechanics.
2
In the Settings window for Segregated Step, locate the General section.
3
From the Linear solver list, choose Suggested Iterative Solver (solid) to reduce the computational time further.
Shape Optimization
1
In the Model Builder window, under Study 3: Optimized Design click Shape Optimization.
2
In the Settings window for Shape Optimization, click to expand the Output section.
3
Select the Plot checkbox.
4
5
In the Study toolbar, click  Compute.
Study 2: Initial Fatigue
In the Model Builder window, expand the Study 2: Initial Fatigue node.
Parametric Sweep, Step 1: Fatigue
1
In the Model Builder window, under Study 2: Initial Fatigue, Ctrl-click to select Parametric Sweep and Step 1: Fatigue.
2
Study 4: Optimized Fatigue
1
In the Model Builder window, click Study 4.
2
In the Settings window for Study, type Study 4: Optimized Fatigue in the Label text field.
3
Right-click Study 4: Optimized Fatigue and choose Paste Multiple Items.
Step 1: Fatigue
1
In the Settings window for Fatigue, locate the Values of Dependent Variables section.
2
Find the Values of variables not solved for subsection. From the Study list, choose Study 3: Optimized Design, Stationary.
3
In the Study toolbar, click  Compute.
Results
Shape Optimization 1
In the Model Builder window, under Results right-click Shape Optimization 1 and choose Delete.
Cycles to Failure, Optimized
1
In the Model Builder window, under Results click Cycles to Failure (ftg) 1.
2
In the Settings window for 3D Plot Group, type Cycles to Failure, Optimized in the Label text field.
The Fatigue study step returns zero for the dependent variables not solved for, so plotting the fatigue usage in the deformed configuration requires the use of the withsol operator.
3
Locate the Data section. From the Dataset list, choose Study 3: Optimized Design/Solution 3 (sol3).
Surface 1
1
In the Model Builder window, expand the Cycles to Failure, Optimized node, then click Surface 1.
2
In the Settings window for Surface, locate the Expression section.
3
In the Expression text field, type withsol('sol4',ftg.ctf).
Create an Evaluation Group to compare the fatigue properties before and after the optimization.
Fatigue Comparison
1
In the Results toolbar, click  Evaluation Group.
2
In the Settings window for Evaluation Group, type Fatigue Comparison in the Label text field.
3
Locate the Data section. From the Dataset list, choose Study 2: Initial Fatigue/Solution 2 (sol2).
Surface Minimum 1
1
Right-click Fatigue Comparison and choose Minimum > Surface Minimum.
2
In the Settings window for Surface Minimum, locate the Selection section.
3
From the Selection list, choose Free Boundaries.
4
Click Add Expression in the upper-right corner of the Expressions section. From the menu, choose Component 1 (comp1) > Fatigue > ftg.ctf - Cycles to failure - 1.
Surface Minimum 2
1
Right-click Surface Minimum 1 and choose Duplicate.
2
In the Settings window for Surface Minimum, locate the Data section.
3
From the Dataset list, choose Study 4: Optimized Fatigue/Solution 4 (sol4).
4
In the Fatigue Comparison toolbar, click  Evaluate.
The fatigue life has been improved by an order of magnitude.
Fatigue Comparison
Go to the Fatigue Comparison window.
Create a plot for visualizing the shape change using a volumetric representation.
Results
Shape Optimization, Volumetric
1
In the Results toolbar, click  3D Plot Group.
2
In the Settings window for 3D Plot Group, type Shape Optimization, Volumetric in the Label text field.
3
Locate the Data section. From the Dataset list, choose Study 3: Optimized Design/Solution 3 (sol3).
Volume 1
1
Right-click Shape Optimization, Volumetric and choose Volume.
2
In the Settings window for Volume, locate the Expression section.
3
In the Expression text field, type 1.
4
Locate the Coloring and Style section. From the Coloring list, choose Uniform.
Volume 2
1
Right-click Volume 1 and choose Duplicate.
2
In the Settings window for Volume, locate the Data section.
3
From the Dataset list, choose Study 1: Initial Design/Solution 1 (sol1).
4
Locate the Coloring and Style section. From the Color list, choose Gray.
Add a Deformation feature to avoid Z-fighting.
Deformation 1 - Z-fighting perturbation fix
1
Right-click Volume 2 and choose Deformation.
2
In the Settings window for Deformation, type Deformation 1 - Z-fighting perturbation fix in the Label text field.
3
Locate the Expression section. In the X-component text field, type -(Xg+0.0975)*5e-4.
4
In the Y-component text field, type -(Yg-0.1)*5e-4.
5
In the Z-component text field, type -(Zg-0.046)*5e-4.
6
Locate the Scale section. Select the Scale factor checkbox. In the associated text field, type 1.
Line 1
1
In the Model Builder window, right-click Shape Optimization, Volumetric and choose Line.
2
In the Settings window for Line, locate the Data section.
3
From the Dataset list, choose Study 1: Initial Design/Solution 1 (sol1).
4
Locate the Expression section. In the Expression text field, type 1.
5
Locate the Coloring and Style section. From the Coloring list, choose Uniform.
6
From the Color list, choose Gray.
Shape Optimization, Volumetric
1
In the Model Builder window, click Shape Optimization, Volumetric.
2
In the Shape Optimization, Volumetric toolbar, click  Plot.
The optimization increases the fillet radius at the point of maximum stress.
Cycles to Failure, Optimized
1
In the Model Builder window, click Cycles to Failure, Optimized.
2
In the Cycles to Failure, Optimized toolbar, click  Plot.
The plot can be compared with the corresponding plot for the initial design.