HyperWorks Solvers

OS-2010: Design Concept for an Automotive Control Arm

OS-2010: Design Concept for an Automotive Control Arm

Previous topic Next topic No expanding text in this topic  

OS-2010: Design Concept for an Automotive Control Arm

Previous topic Next topic JavaScript is required for expanding text JavaScript is required for the print function  

This tutorial uses OptiStruct's topology optimization functionality to create a design concept for an automotive control arm required to meet performance specifications. The finite element mesh containing designable (blue) and non-designable regions (yellow) is shown in the figure below. Part specifications constrain the resultant displacement of the point where loading is applied for three load cases to 0.05mm, 0.02mm, and 0.04mm, respectively. The optimal design would use as little material as possible.

2010_model

Finite element mesh containing designable (blue) and non-designable (yellow) material.

A finite element model representing the designable and non-designable material (shown in figure) is imported into HyperMesh. Appropriate properties, boundary conditions, loads, and optimization parameters are defined and the OptiStruct software determines the optimal material distribution. The results (the material layout) are viewed as contours of a normalized density value ranging from 0.0 to 1.0 in the design space. Isosurfaces are also used to view the density results. Areas that need reinforcement will tend towards a density of 1.0.

The optimization problem for this tutorial is stated as:

Objective:

Minimize volume.

Constraints:

SUBCASE 1 -

The resultant displacement of the point where loading is applied must be less than 0.05mm.

SUBCASE 2 -

The resultant displacement of the point where loading is applied must be less than 0.02mm.

SUBCASE 3 -

The resultant displacement of the point where loading is applied must be less than 0.04mm.

Design variables:

Element density (and corresponding stiffness of the element) of each element in the design space.

The following exercises are included:

Setting up the FE model in HyperMesh
Setting up the optimization in HyperMesh
Post-processing the results in HyperView

Exercise


Setting Up the FE Model in HyperMesh

Step 1: Launch the HyperMesh Desktop, Set the User Profile and Retrieve the File

1.Launch HyperMesh Desktop.
2.Choose the OptiStruct in the User Profiles dialog 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.From the File menu on the toolbar, select Open > Model.
4.Select the carm.hm file you saved to your working directory from the optistruct.zip file. Refer to Accessing the Model Files.
5.Click Open.

Step 2: Create Materials and Properties and Assign to Proper Components

1.Click the Model tab.
2.In the Model browser, right-click and select Create > Material.
3.For Name, enter Steel.
4.For Card Image, select MAT1 as the material type.
5.For E, enter the value 2.0E5.
6.For Nu, enter the value 0.3.
7.In the Model browser, right-click and select Create > Property.
8.For Name, enter design_prop.
9.For Card Image, select PSOLID as the property type.
10.For Material, click Unspecified > Material.
11.In the Select Material dialog, select Steel as the material and click OK to complete the material selection.
12.In the Model browser, right-click and select Create > Property.
13.For Name, enter nondesign_prop.
14.For Card Image, select PSOLID as the property type.
15.For Material, click Unspecified > Material.
16.In the Select Material dialog, select Steel as the material and click OK to complete the material selection.
17.Open the Component folder to update the component collectors with the newly created properties.
18.Click the nondesign component to display it in the Entity Editor.
19.For Property, click Unspecified > Property.
20.In the Select Property dialog, select nondesign_prop from the list of options and click OK to complete the selection.
21.Repeat steps 17 through 20 to assign design_prop to the design component.

Step 3: Create Load Collectors

Next, you will create four load collectors (SPC, Brake, Corner and Pothole) and assign each a color. Follow these steps for each load collector.

1.In the Model browser, right-click and select Create > Load Collector.
2.For Name, enter SPC.
3.Leave the Card Image set to None.
4.Select a suitable color.
5.Similarly, create load collectors named Brake, Corner, and Pothole.

Step 4: Apply Constraints

Next, creating constraints and assigning them to the SPC load collector, is outlined in the following steps.

1.From the Model browser, expand Load Collector, right-click on SPC, and click Make Current.
2.From the Analysis page, click constraints.
3.Make sure the create subpanel is selected using the radio buttons on the left-hand side of the panel.
4.Make sure that SPC is selected for load types.
5.Select the node at one end of the bushing (see the figure below) by clicking on it in the graphics window.
6.Constrain dof1, dof2, and dof3; make sure dofs 1, 2, and 3 are checked and dofs 4, 5, and 6 are unchecked.

Dofs with a check will be constrained, while dofs without a check will be free.

Dofs 1, 2, and 3 are x, y, and z translation degrees of freedom.

Dofs 4, 5, and 6 are x, y, and z rotational degrees of freedom.

7.Click create.

A constraint is created. A constraint symbol (triangle) appears in the graphics window at the selected node. The number 123 is written beside the constraint symbol, indicating that dof1, dof2 and dof3 are constrained.

os_2010_dof_constraints

Constraining dof1, dof2 and dof3 at one end of the bushing.

8.Select the node at the other end of the bushing (see the following figure) by clicking on it in the graphics window.
9.Constrain dof2 and dof3; make sure only dofs 2 and 3 are checked.
10.Click create.

A constraint is created. A constraint symbol (triangle) appears in the graphics window at the selected node. The number 23 is written beside the constraint symbol, indicating that dof2 and dof3 are constrained.

2010_constrain_dofs_2

Constraining dof2 and dof3 at the other end of the bushing.

11.Click nodes and select by id from the extended entity selection window.
12.Enter the value 3239 and press ENTER.
13.This selects node ID 3239 (see the next figure), which corresponds to the shock absorber mounting location.
14.Constrain only dof3.
15.Click create. A constraint is created. A constraint symbol (triangle) appears in the graphics window at the selected node. The number 3 is written beside the constraint symbol, indicating that dof3 is constrained.

2010_constrain_dofs_3

Constraining dof3 on node ID 3239.

16.Click return to go to the main menu.

Step 5: Apply Forces for Brake, Corner, and Pothole Loadcases

1.From the Model browser, expand Load Collector, right-click Brake, and click Make Current.
2.From Analysis page, click forces.
3.Click nodes >> by id.
4.Type the node number 2699 and press ENTER. This selects the node where the force is being applied.
5.Click magnitude=, enter 1000.0 and press ENTER.
6.Set the switch below to x-axis.
7.Click create. An arrow, pointing the x direction, appears at the node on the screen.
8.For better visualization of the arrows, select uniform size=, enter 100, and press ENTER.
9.From the Model browser, expand Load Collectors, right-click Corner, and click Make Current.
10.Click nodes >> by id.
11.Enter the node number 2699 and press ENTER.
12.Click magnitude=, enter 1000.0, and press ENTER.
13.Set the switch below to y-axis.
14.Click create. An arrow, pointing in the Y direction, appears at the node on the screen.
15.From the Model browser, expanded Load Collector, right-click Pothole, and click Make Current.
16.Click nodes >> by id.
17.Enter the node number 2699 and press ENTER.
18.Click magnitude=, enter 1000.0, and press ENTER.
19.Set the switch below to z-axis.
20.Click create. An arrow, pointing in the Z direction, appears at the node on the screen.
21.Click return to go back to the Analysis page.

2010_constrain_dofs_4

Three separate forces in load collectors: brake, corner, and pothole with the component "design" turned off using the display panel.

Step 6: Create Brake, Corner and Pothole Loadcases

The last step in establishing boundary conditions is the creation of a subcase.

1.From the Analysis page, click loadsteps.
2.Click name=, enter Brake, and press ENTER.
3.Set type as linear static.
4.Check the box preceding SPC. An entry field appears to the right of SPC.
5.Click on the entry field and select SPC from the list of load collectors.
6.Check the box preceding Load and select Brake from the list of load collectors.
7.Click create.
8.Similarly create the load cases Corner [by selecting the load collectors Corner and SPC] and Pothole [by selecting the load collectors Pothole and SPC].
9.Click return to go back to the Analysis page.

 

Setting Up the Optimization in HyperMesh


Step 7: Define the Topology Design Variables

1.From the Analysis page, click optimization.
2.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 design_prop, and press ENTER.
5.Click props 2010_props, select design_prop from the list of props, and click select.
6.Set type: as PSOLID.
7.Click create. A topology design space definition, design_prop, has been created. All elements organized in this design property collector are now included in the design space.
8.Click return.

Step 8: Create a Volume and Displacement Response

1.Enter the responses panel.
2.Click response = and enter vol.
3.Click on the switch below response type and select volume from the pop-up menu.
4.Ensure the regional selection is set to total (this is the default).
5.Click create. A response, vol, is defined for the total volume of the model.
6.Click response = and enter disp1.
7.Click on the switch below response type and select static displacement from the pop-up menu.
8.Click nodes >> by id.
9.Enter 2699 and press ENTER.

The node where the three forces are applied is selected.

10.Select total disp from the radio options.

This is the vector sum of the x, y, and z translations.

11.Click create. A response, disp1, is defined for the total displacement of node 2699.
12.Click return to go back to the Optimization panel.

Step 9: Define the Objective

1.Enter the objective panel.
2.The switch on the left should be set to min.
3.Click response= and select vol.
4.Click create.
5.Click return to exit the Optimization panel.

Step 10: Create Constraints on Displacement Responses

In this step, the upper and lower bound constraint criteria for this analysis are set.

1.Enter the dconstraints panel.
2.Click constraint= and enter constr1.
3.Check the box for upper bound only.
4.Click upper bound= and enter 0.05.
5.Select response= and set it to disp1.
6.Click loadsteps.
7.Check the box next to Brake.
8.Click select.
9.Click create.
10.Click constraint= and enter constr2.
11.Check the box for upper bound only.
12.Click upper bound= and enter 0.02.
13.Select response= and set it to disp1.
14.Click loadsteps.
15.Check the box next to Corner.
16.Click create.
17.Click constraint= and enter constr3.
18.Check the box for upper bound only.
19.Click upper bound= and enter 0.04.
20.Select response= and set it to disp1.
21.Click loadsteps.
22.Check the box next to Pothole.
23.Click create.
24.Click return twice to return to the main menu.

Step 11: Check the Optimization Problem

A check run may be performed in which OptiStruct will estimate the amount of RAM and disk space required to run the model. During the check run, OptiStruct will also scan the deck checking that all the necessary information required to perform an analysis or optimization is present and also that this information is not conflicting.

1.From the Analysis page, click OptiStruct.
2.Click save as.
3.Select the directory where you would like to write the OptiStruct model file and enter the name for the model, carm_check.fem, in the File name: field. The extension.fem is for OptiStruct input decks.
4.Click Save.

The name and location of the carm_check.fem file displays in the input file: field.

5.Set the export options: toggle to all.
6.Click the run options: switch and select check.
7.Set the memory options: toggle to memory default.
8.Click OptiStruct. This launches the OptiStruct check run.

When the processing is complete, view the file carm_check.out. This is the OptiStruct output file containing specific information on the file setup, optimization problem setup, RAM and disk space requirement for the run. Review this file for possible warnings and errors.

Is the optimization problem set up correctly?  See Optimization Problem Parameters section of the carm_check.out file.

The objective function?  See Optimization Problem Parameters section of the carm_check.out file.

The constraints?  See Optimization Problem Parameters section of the carm_check.out file.

What is the recommended amount of RAM for an In-Core solution?  See Memory Estimation Information section of the carm_check.out file.

Is there enough disk space to run the optimization?  See Disk Space Estimation Information section of the carm_check.out file.

Step 12: Run the Optimization Problem

1.From the Analysis page, click OptiStruct.
2.Click save as, enter carm_complete.fem as the file name, and click Save.
3.Click the run options: switch and select optimization.
4.Click OptiStruct to run the optimization.

The following message appears in the window at the completion of the job:

OPTIMIZATION HAS CONVERGED.
FEASIBLE DESIGN (ALL CONSTRAINTS SATISFIED).

OptiStruct also reports error messages if any exist. The file carm_complete.out can be opened in a text editor to find details regarding any errors. This file is written to the same directory as the .fem file.

5.At the end of process, close the HyperWorks Solver View dialog.

The default files written to the directory are:

carm_complete.hgdata

HyperGraph file containing data for the objective function, percent constraint violations, and constraint for each iteration.

carm_complete.his_data

The OptiStruct history file containing iteration number, objective function values and percent of constraint violation for each iteration.

carm_complete.HM.comp.cmf

HyperMesh command file used to organize elements into components based on their density result values. This file is only used with OptiStruct topology optimization runs.

carm_complete.HM.ent.cmf

HyperMesh command file used to organize elements into entity sets based on their density result values. This file is only used with OptiStruct topology optimization runs.

carm_complete.html

HTML report of the optimization, giving a summary of the problem formulation and the results from the final iteration.

carm_complete.oss

OSSmooth file with a default density threshold of 0.3. You may edit the parameters in the file to obtain the desired results.

carm_complete.out

OptiStruct output file containing specific information on the file setup, the setup of the optimization problem, estimates for the amount of RAM and disk space required for the run, information for all optimization iterations, and compute time information. Review this file for warnings and errors that are flagged from processing the cclip_complete.fem file.

carm_complete.res

HyperMesh binary results file.

carm_complete.sh

Shape file for the final iteration. It contains the material density, void size parameters and void orientation angle for each element in the analysis. The .sh file may be used to restart a run and, if necessary, run OSSmooth files for topology optimization.

cclip_complete.stat

Summary of analysis process, providing CPU information for each step during analysis process.

 

Post-processing the Results in HyperView


Element density results are output to the carm_complete_des.h3d file from OptiStruct for all iterations. In addition, Displacement and Stress results are output for each subcase for the first and last iterations by default into carm_complete_s#.h3d files, where # specifies the sub case ID. This section describes how to view those results in HyperView.

Step 13: View the Deformed Structure

1.When the message OPTIMIZATION HAS CONVERGED is received in the command window, click HyperView.

HyperView is launched with the HyperWorks Desktop and the results are loaded. A message window appears to inform about the successful loading of the model and result files into HyperView. Notice that all three .h3d files get loaded, each in a different page of HyperView.

2.Click Close to close the message window.

It is helpful to view the deformed shape of a model to determine if the boundary conditions are defined correctly, and also to find out if the model is deforming as expected. The analysis results are available in pages 2, 3, and 4. The first page contains the optimization results.

3.Click the Next Page toolbar icon pageNext-24 to move to the second page.

The second page has the results from the carm_complete_s1.h3d file. The name of the page is displayed as Subcase 1 – Brake to indicate that the results correspond to subcase 1.

4.Select Linear as the animation mode animationLinear-24.
5.Click the Contour toolbar icon resultsContour-24.
6.Select the first drop-down menu below Result type: and select Displacement [v].
7.Select the second drop-down menu and select Mag.
8.Click Apply to display the displacement contour.
9.Click the Deformed toolbar icon resultsDeformed-24.
10.Set Result type: to Displacement (v), Scale: to model units, and Type: to Uniform.
11.Enter 10 for value:. This means that the maximum displacement will be 10 Model units and all other displacements will be proportional.
12.Below the Undeformed shape: section, click on the drop-down menu next to Show and select Wireframe.
13.Click Apply. A deformed plot of your model with displacement contour should be visible, overlaid on the original undeformed mesh.
14.Click Start/Pause Animation to animate the model animationStart-24. A deformed animation for the first subcase (brake) should be displayed.

In what direction is the load applied for the first subcase?

Which nodes have degrees of freedom constrained?

Does the deformed shape look correct for the boundary conditions applied to the mesh?

15.Select Iteration 18 in the Results browser.

os_2010_iteration18

The contour now shows the displacement results for Subcase 1 (brake) and iteration 18 which corresponds to the end of the optimization iterations.

16.Stop the animation animationPause-24.
17.Click Next Page toolbar icon pageNext-24 to move to the third page.

The third page which has results loaded from carm_complete_s12.h3d file is displayed. The name of the page is displayed as Subcase 2 – corner to indicate that the results correspond to subcase 2.

18.Repeat this process to display the displacement contours and deformed shape of the model for the second subcase.

In what direction is the load applied for the second subcase?

Which nodes have degrees of freedom constrained?

Does the deformed shape look correct for the boundary conditions applied to the mesh?

19.Similarly, review the displacements and deformation for subcase 3 (pothole).

Step 14: Review Contour Plot of the Density Results

The optimization iteration results (Element Densities) are loaded in the first page.

1.Click the Previous Page icon pagePrevious-24 until the name of the page is displayed as Design History, indicating that the results correspond to optimization iterations.
2.Click the Contour toolbar icon resultsContour-24.

Note the Result type: is Element Densities [s]; this should be the only results type in the “file_name”_des.h3d file.

The second drop-down menu shows Density.

3.In the Averaging method: file, select Simple.
4.Click Apply to display the density contour.

Note the contour is all blue this is because your results are on the first design step or Iteration 0.

5.Select Iteration 18 in the Results browser.

Each element of the model is assigned a legend color, indicating the density of each element for the selected iteration.

Have most of your elements converged to a density close to 1 or 0?

If there are many elements with intermediate densities, the DISCRETE parameter may need to be adjusted. The DISCRETE parameter (set in the opti control panel on the optimization panel) can be used to push elements with intermediate densities towards 1 or 0 so that a more discrete structure is given.

In this model, refining the mesh should provide a more discrete solution; however, for the purposes of this tutorial, the current mesh and results are sufficient.

Regions that need reinforcement tend towards a density of 1.0. Areas that do not need reinforcement tend towards a density of 0.0.

Is the max= field showing 1.0e+00?

In this case, it is.

If it is not, the optimization has not progressed far enough. Allow more iterations and/or decrease the OBJTOL parameter (also set in the Opti control panel).

If adjusting the discrete parameter, refining the mesh, and/or decreasing the objective tolerance does not yield a more discrete solution (none of the elements progress to a density value of 1.0), review the set up of the optimization problem. Some of the defined constraints may not be attainable for the given objective function (or vice versa).

Step 15: View an Iso Value Plot on Top of the Element Densities Contour

This plot provides the information about the element density. Iso Value retains all of the elements at and above a certain density threshold. Pick the density threshold providing the structure that suits your needs.

1.From the Results menu, click Plot > Iso.
2.From the panel area (lower portion of the GUI), select Element Densities as the Result type.
3.Click Apply.
4.Set the Current Value: to 0.15.

2010_isoval

5.Move the slider below Current value: to change the density threshold.

You will see the iso value in the graphics window update interactively when you scroll to a new value. Use this tool to get a better look at the material layout and the load paths from OptiStruct.

See Also:

OptiStruct Tutorials