A size optimization is performed in this tutorial using OptiStruct. Size optimizations involve the changing of the properties of either 1D or 2D elements. These properties include area, moments of inertia of the 1D elements, and the thickness of 2D elements. Size optimization is performed when it is not necessary to remove materials, generate beads or change the shape of the structure.
With size optimization, the cross-sectional properties of the elements are changed to meet the necessary objective. Properties are linked with design variables (DESVAR) using DVPREL cards.
This tutorial goes through the steps involved in defining a size optimization for a model comprised of shell and bar elements. You will update the PBARL property to simulate the properties of the bar elements and then link that to the design variable. The resulting design will have higher frequencies and updated element properties.
This tutorial outlines using OptiStruct macros under an OptiStruct user profile to setup the optimization problem.
Finite element model of a shredder.
Problem Statement
Objective:
|
Minimize the global mass
|
Constraints:
|
Transverse modes higher than 6 Hz
|
Design variables:
|
Beam width, beam thickness, beam depth, and shell thickness
|
In this tutorial, you will learn to:
• | Perform a finite element analysis and check the results |
• | Define a size optimization with 1D element property |
• | Post-process the optimization results |
Exercise
Step 1: Launch the HyperMesh Desktop, Set the User Profile, and Import an FE Model File
1. | Launch HyperMesh Desktop. |
2. | Choose OptiStruct in the User Profiles and click OK. This loads the user profile. It includes the appropriate template, macro menu, and import reader, paring down the functionality of HyperMesh to what is relevant for generating models for OptiStruct. |
4. | From the File menu on the toolbar, select Import > Solver Deck. An Import tab is added to your tab menu. |
5. | Set the Import type: to FE Model by clicking on the icon . |
6. | Choose the proper File type: OptiStruct. |
7. | Click the Select Files icon and select the shredder.fem file you saved to your working directory from the optistruct.zip file. Refer to Accessing the Model Files. |
Performing a Finite Element Analysis and Checking the Results
Step 2: Run a Normal Modes Analysis of the Model
A normal mode analysis of this model is performed prior to the definition of the optimization process. An analysis identifies the responses of the structure before optimization to ensure that constraints defined for the optimization are reasonable.
1. | From the Analysis page, select the OptiStruct panel. |
2. | Click save as following the input file: field. |
3. | Select the directory where you would like to write the file and enter the name shredder_analysis.fem in the File name: field. |
The name and location of the shredder_analysis.fem file displays in the input file: field.
5. | Set the export options: toggle to all. |
6. | Click the run options: switch and select analysis. |
7. | Set the memory options: toggle to memory default. |
8. | Leave the options: field blank. |
9. | Click OptiStruct. This launches the OptiStruct job. |
If the job was successful, new results files can be seen in the directory where the OptiStruct model file was written. The shredder_analysis.out file is a good place to look for error messages that will help to debug the input deck if any errors are present.
Step 3: View the Eigen Modes of the Shredder
1. | From the OptiStruct panel, click HyperView. A HyperView client launches in a new page and the session file, shredder_analysis.mvw, is loaded. This file is linked with the shredder_analysis.h3d file, which contains the model and results. |
2. | Click Close to exit the Message Log menu that appears. |
3. | Set the animation type to Modal . |
4. | Select the Deformed toolbar icon . |
5. | Leave Result type set to Eigen Mode(v). |
6. | Set Scale: to Model Units. |
7. | Set Type: to Uniform: and for Value, enter in a scale factor of 1000. |
This means that the maximum displacement will be 1000 modal units and all other displacements will be proportional.
Using a scale factor higher than 1.0, amplifies the deformations while a scale factor smaller than 1.0 would reduce them. In this case, you are accentuating displacements in all directions.
8. | Under Undeformed shape:, set Show: to Edges. |
11. | In the Results browser, use the Simulation drop-down to select Mode 1 and click OK. |
12. | Click the contour icon and click Apply to plot the Eigen Mode contour. |
13. | Click the Note icon and remove the first two lines, leaving the rest as below, and click Apply. |
14. | Click the Page Window Layout icon to choose the four window layout . |
15. | Click in the first window and, from the Edit menu, click Copy Window. |
16. | Click in the second window and, from the Edit menu, click Paste Window. |
17. | Repeat step 18 for the 3rd and 4th windows. |
First mode on contour on all windows.
18. | Next, update the 2nd, 3rd, and 4th windows with the 2nd, 3rd, and 4th modes. This can be done easily by selecting the window and clicking in the mode selection box above the HyperView Entities tree (in the Results browser). Select each window and then use the selector drop-down to choose which mode you wish to display in that window. |
First four eigen modes contour.
19. | Click the play icon in the animation controls to start the animation, and click again to stop the animation. |
The 3rd and 4th mode (~ 3.9 and 4.8 Hz) has a transversal shape that can reduce the performance of the shredder when it gets excited. The objective, then, is to get the minimum mass to greater than 7Hz.
20. | From the File menu, click Save as > Report Template. |
21. | Change Save as type: to Report definition (*tpl). |
22. | For File name:, enter report.tpl. |
23. | Use the page navigation icons to navigate back to the HyperMesh client on the first page. |
Defining Design Variables and Beam Cross-section Properties
Step 4: Define Design Variables using the Size Panel
The design variables for this problem are the thickness of the cover, width, thickness, and depth of the bar. You will define the first design variable using the size panel.
1. | From the Analysis page, enter the optimization panel. |
3. | Make sure the desvar subpanel is selected using the radio button on the left hand side of the panel. |
4. | Click desvar =, and enter the name coverthck. |
5. | Enter the following values: initial value = 3.0, lower bound = 1.0, upper bound = 6.0. |
7. | Similarly create four more design variables with following initial values, lower bounds and upper bounds from the size panel. |
Name
|
Initial Value
|
Lower Bound
|
Upper Bound
|
Beamwide
|
50
|
30
|
90
|
Beamhigh
|
100
|
80
|
125
|
Beamthck1
|
10
|
5
|
15
|
Beamthck2
|
20
|
15
|
30
|
Step 5: Assign Cover Thickness to a Design Variable
1. | From the size panel, select the generic relationship subpanel using the radio button on the left. |
2. | For name =, enter the name coverthck. |
3. | For C0, enter a value of 0.0. |
4. | Click prop and select cover. |
5. | Verify that the property switch is set to Thickness T. |
6. | Click designvars and check the box next to coverthck. |
Step 6: Define Property Relations for Beam Dimensions
The dimensions are defined as shown in the image below. In this step, each dimension of a C beam will be defined as a design variable. The table has values of property on the initial design.
|
Name
|
Represents
|
Value
|
DIMs(1)
DIMs(2)
DIMs(3)
DIMs(4)
|
Beam Wide
Beam High
Beam Thck1
Beam Thck2
|
50
100
10
20
|
|
1. | From the size panel, select the generic relationship subpanel by selecting the radio button. |
2. | For name =, enter the name DIM1. |
3. | For C0, enter a value of 0.0. |
4. | Click the yellow prop box, and select frame2. |
5. | Verify that the property is Dimension1. |
6. | Click designvars and check the box next to Beamwide. |
7. | Click return and create. |
8. | For dvprel =, enter the name DIM2. |
9. | For C0, enter a value of 0.0. |
10. | Click the yellow prop box, and select frame2. |
11. | Toggle the property to Dimension2. |
12. | Click designvars and check the box next to Beamhigh. |
13. | Click return and create. |
14. | For dvprel =, enter the name DIM3. |
15. | For C0, enter a value of 0.0. |
16. | Click the yellow prop box, and select frame2. |
17. | Toggle the property to Dimension3. |
18. | Click designvars and check the box next to Beamthck1. |
19. | Click return and create. |
20. | For dvprel =, enter the name DIM4. |
21. | For C0, enter a value of 0.0. |
22. | Click the yellow prop box, and select frame2. |
23. | Toggle the property to Dimension4. |
24. | Click designvars and check the box next to Beamthck2. |
Step 7: Define Responses
1. | Click the responses panel. |
2. | For response =, enter the name mass. |
3. | Select the response type as mass. |
5. | For response =, enter the name f3. |
6. | Change the response type: to frequency. |
7. | Enter a value of 3 for Mode Number. |
9. | Repeat steps 7.5 through 7.8 to create response= f4 and Mode Number 4. |
10. | Click return to exit the panel. |
Step 8: Create Constraints
2. | For constraint =, enter the name c_f3. |
3. | Check lower bound = and enter a value of 6.0. |
4. | Click response = and select f3. |
5. | Click loadstep and check the box beside ld1, then click select. |
7. | Repeat steps 8.2 through 8.6 with the following values: constraint= c_f4, lower bound = 6.0, response = f4, and loadstep ld1. |
8. | Click return to exit the panel. |
Step 9: Define the Objective Function
2. | Set objective option to min. |
3. | Click response = and select mass. |
5. | Click return twice to exit the panel. |
Step 10: Save the Database
1. | From the File menu, select Save as > Model. |
2. | In the Save file window, browse for the working directory and save the database as shredder_optimization.hm. |
Step 11: Run the Size Optimization
1. | From the Analysis page, select the OptiStruct panel. |
2. | Set the export options: toggle to all. |
3. | Set the run options: toggle to optimization. |
4. | Set the memory options: toggle to memory default. |
5. | Click OptiStruct. This launches the OptiStruct job. |
If the job was successful, new results files can be seen in the directory where the OptiStruct model file was written. The shredder_optimization.out file is a good place to look for error messages that will help to debug the input deck if any errors are present.
Post-process the Optimization Results
Step 12: View Thickness Results from the Optimization Run
1. | When the message Process completed successfully appears in the command window, close the solver GUI window. |
2. | Click HyperView from within the OptiStruct panel. This automatically loads the results for the current run into HyperView. |
A message window appears to inform about the successful loading of the model and result files.
3. | Click Close to close the message window. |
4. | Navigate to the Design History page, if you are not already there through the use of the page navigation arrows, as shown below. |
5. | From the Model browser, select the last Iteration # and click OK, as shown in the image below. |
6. | Click the Contour toolbar icon . |
7. | Select the first drop-down menu below Result type: and select Element Thicknesses (s) and Thickness. |
The resulting colors represent the thickness fields resulting from the applied loads and boundary conditions. Notice the final optimized thickness of the cover component is 1.0.
9. | Open the shredder_optimization.prop file using any text editor to review final optimized PBAR property. The following figure illustrates what you will be looking for. |
The final dimensions could be rounded off to:
Beam Wide (DIM1):
|
70.10
|
Beam High (DIM2):
|
125
|
Beam Thck (DIM3):
|
5
|
Beam wide (DIM4):
|
15
|
This .prop file can be read into HyperMesh with over write mode on and the PBARL card will be updated.
See Also:
OptiStruct Tutorials