This tutorial demonstrates how to set up an optimization problem of an MBD system using the equivalent static load method (ESL). The model is setup in HyperMesh, and the Topology optimization job is run with OptiStruct. The Objective of the optimization is to maximize the stiffness of the Lower arm of an excavator model, while keeping the mass to less than an allowable value. The model units are kg, N, m and s.
Excavator model
The optimization problem for this tutorial is stated as:
Objective:
|
Minimize the maximum compliance in an ESL loadstep.
|
Constraints:
|
Upper bound on volume fraction.
|
Design variables:
|
Element density of elements in the lower arm (flexible body) component.
|
In this tutorial, you will learn to:
• | Review an MBD transient analysis |
• | Change one of the rigid body to a flexible body |
• | Set up and run a topology optimization on a MBD system using the equivalent static load method |
• | Post-process optimization results using HyperView |
Exercise
Step 1: Launch HyperMesh, Set the User Profile, and Retrieve the File
1. | Launch HyperMesh Desktop. |
2. | A User Profiles GUI will appear, select OptiStruct 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. |
3. | Click the Open Model icon . |
4. | Select the Excavator_MBD.hm file you saved to your working directory from the optistruct.zip file. Refer to Accessing the Model Files. |
The Excavator_MBD.hm database is loaded into the current HyperMesh session.
Step 2: Submit the Transient MBD Simulation in OptiStruct
The model Excavator_MBD.hm already has the excavator MBD analysis set up with all the bodies defined as rigid bodies. Next is to run the analysis and look at the animation.
1. | From Analysis page, click OptiStruct. |
2. | Set the export options: toggle to all. |
3. | Click the run options: switch and select analysis. |
4. | Set the memory options: toggle to memory default. |
5. | Click save as following the input file: field. |
6. | Select the directory where you would like to write the OptiStruct model file and enter the name for the model, excavator_MBD_analysis.fem, in the File name: field. For OptiStruct input decks .fem is the suggested extension. |
The name and location of the file displays in the input file: field.
8. | Change the options: field so that it is blank. |
9. | Click OptiStruct. This launches an OptiStruct run in a separate shell (DOS or UNIX) which appears. |
If the analysis was successful, no error messages are reported to the shell and messages appear in the shell indicating that the analysis is complete.
Post-processing the MBD Results in HyperView
Step 3: Post-process the transient MBD analysis
1. | When the message ANALYSIS COMPLETED is received in the dialog, close the dialog. |
2. | Click HyperView from within the OptiStruct panel. This will automatically load 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 Log window. |
4. | Click the icon to start the animation and review the MBD model. |
5. | Close the HyperView window using the Delete Page icon and return back to HyperMesh. |
Step 4: Change the Rigid Body into a Flexible Body
In this step, you are going to define topology optimization on the body Lower_Arm. It is originally modeled as a rigid body and needs to be converted to a flexible body for the optimization.
1. | From the Analysis page, click bodies. |
2. | Select the update option. |
3. | Double-click body= and select Lower_Arm. |
The lower arm component is highlighted. Body type PRBODY is shown for type=, indicating that lower arm is modeled as a rigid body. You will update this body to a flexible body type, and also define topology optimization on this body.
5. | Click type= and select PFBODY. |
6. | Enter 20 under the nmodes= to increase the number of modes included in the CMS method to 20. |
Updating body type for Lower_Arm
A message appears in the lower left corner to indicate that the body has been update to a new type.
Step 5: Define Topology Design Variable
1. | From the Analysis page, select the optimization panel. |
2. | Select topology to enter the topology panel |
3. | Make sure the create subpanel is selected using the radio buttons on the left-hand side of the panel. |
4. | Click DESVAR=, enter L_Arm_Topology, and press ENTER. |
5. | Click props and choose lowerarm from the list of props; click select. |
8. | Activate the parameters option. |
9. | Click the toggle next to minmemb off to activate mindim= and set the value to 0.05. |
Minimum member size control of 0.05 meter has been applied on this topology optimization problem.
11. | Click return to go back to the optimization panel. |
Step 6: Define Responses
Two responses types are defined: a compliance response for the objective function and volume fraction for the constraint.
1. | You should already be in the optimization panel; select the responses panel. |
2. | Click response = and enter Volfrac. |
3. | Select the switch below response type and select volumefrac from the pop-up menu. |
4. | Toggle total to by entity. |
5. | Click props in the cyan border and select lowerarm. |
6. | Click create. A volume fraction response, Volfrac, is defined for the topology design volume. |
7. | Click response = and enter Comp. |
8. | Select the switch below response type and select compliance from the pop-up menu. |
9. | Make sure the entity selection toggle is set to total. |
10. | Click create. A compliance response, Comp is created. |
11. | Click return to go to the optimization panel. |
Step 7: Define Constraints on Volume Fraction Response
An upper bound constraint is to be defined for the volume fraction response defined in the previous sections.
1. | Select the dconstraints panel. |
2. | Click constraint = and enter Vol_Constr. |
3. | Check the box next to upper bound =. |
4. | Click upper bound = and enter 0.5. |
5. | Click response = and select Volfrac from the list of responses. |
6. | Click create. A constraint is defined on the response Volfrac. The constraint will force the volume fraction used in the design space to be less than 0.5. |
7. | Click return twice to exit the panel. |
Step 8: Define the Objective Reference
2. | Enter MAX_Comp in the dobjref= field. |
3. | Check pos reference; this sets the value 1.0. |
4. | Check neg reference; this sets the value -1.0. |
5. | Click response and select Comp. |
6. | Set the loadsteps selection option to all to make sure the design objective reference includes compliances from all the load steps that are calculated by the ESL method. |
8. | Click return to go back to the optimization panel. |
Step 9: Define an Objective Function
The objective is to minimize the maximum compliance of the equivalent static loadsteps.
1. | Choose the objective panel. |
2. | Click the left-most toggle and select minmax. |
3. | Click dobjrefs and select MAX_Comp. |
5. | Click return to go back to the optimization panel. |
Step 10: Save the Database
1. | From the File menu, click Save As > Model. |
2. | Select the directory in which to save the file and, in File name:, enter excavator_MBD_Topology.hm. |
Step 11: Submit the ESL Optimization Job in OptiStruct
1. | From the Analysis page, click OptiStruct. |
2. | Set the export options: toggle to all. |
3. | Click the run options: switch and select optimization. |
4. | Set the memory options: toggle to memory default. |
5. | Click save as following the input file: field. |
6. | Select the directory where you would like to write the OptiStruct model file and enter the name for the model, excavator_MBD_Topology.fem, in the File name: field. For OptiStruct input decks .fem is the suggested extension. |
The name and location of the file displays in the input file: field.
8. | Click OptiStruct. This launches an OptiStruct run in a separate shell (DOS or UNIX) which appears. |
If the optimization was successful, no error messages are reported to the shell. The optimization is complete when the message OPTIMIZATION HAS CONVERGED appears in the shell.
If the job was successful, the new results file can be seen in the directory where the input file was saved. In addition to the regular output files, you will also see a text file named excavator_MBD_Topology.eslout. This file is a good source to review the process of the ESL optimization.
Note that depending on the type of hardware, the optimization run time may be substantial.
Post-processing Optimization Results using HyperView
Step 12: View element density results for the last iteration
1. | When the message OPTIMIZATION HAS CONVERGED is received in the command window, close the DOS window. |
2. | Click HyperView from within the OptiStruct panel. HyperView is launched and the results are loaded. |
A message window appears to inform about the successful loading of the model and result files into HyperView.
3. | Click Close to close the message window. |
4. | Select the final Outerloop iteration in the Results browser as shown below to load the optimized topology results. |
5. | Click the Iso Value panel toolbar icon . |
6. | Set the Result type: to Element densities (s). |
7. | Click Apply to see only the elements that have elemental density higher than what is shown in the field for Current value:. |
8. | Enter a value of 0.5 in the Current value: field. |
9. | Make sure that Show values: is set to Above. |
10. | Using the Model browser on the left, display only the Lower_Arm component. |
11. | Check the boxes next to Features to visualize the complete design space. |
12. | You can also move the slider bar to change current value of Element densities to look at material distribution for different density threshold values. |
See Also:
OptiStruct Tutorials