OS-T: 5030 Buckling Optimization of a Structural Rail

In this tutorial, you will perform a size and shape optimization on a structural rail to increase the buckling factor, thereby increasing the load it can carry before buckling. The rail has external forces applied at one end, and is constrained in all degrees of freedom at the other end. By performing buckling optimization, the buckling factor can be increased and thereby increase critical buckling force.

Structures are said to "buckle" when a certain combination of loads cause them to be unstable and deflection occurs. When a particular loading is reached, the structure continues to deflect without an increase in the magnitude of the load. The critical load at which buckling occurs is the product of the critical buckling factor and the applied reference load. The buckling factor is an eigenvalue and has no dimension. Generally speaking, the lowest buckling load is usually of the most interest to engineers, since a structure will fail prior to reaching any higher buckling loads.

When using OptiStruct to solve a linear buckling problem, apply a reference load to the structure and calculate the buckling factors based on linear static and normal mode analysis. Use OptiStruct also to perform size and/or shape optimizations on the structure to optimize for linear buckling. Neither yielding of a structure nor change of force can occur during the optimization process.

Buckling optimization needs be performed to minimize the maximum von Mises stress among several elements. This is done using the minimized maximum problem setup. Use MINMAX or MAXMIN statements to define the objective function of a minimize maximum or maximize minimum problem. Many times you will need to minimize or maximize several responses; minimizing the maximum von Mises stress among several elements, for example. In such situations, using user-defined equations to minimize the maximum von Mises stress will not achieve the expected result. Reducing the maximum stress in one element often results in increased stress on another element.

This tutorial describes the steps involved in defining linear buckling and size optimization using the gauge panel. Shape and size optimizations will both be applied to this structural optimization. The shape optimization has been pre-defined in this model using HyperMorph, so you will not need to set up the shapes and shape design variables. The size optimization is part of the exercise. A reference value is given to the stress design objective, and the problem is formulated as a minmax optimization problem. The resulting structure is thicker and wider to prevent buckling.

os5030_pic1
Figure 1. Buckling Optimization of a Structural Rail
This problem will perform a size and shape optimization on a structural rail to prevent buckling in the rail structure.
Objective
Minimize maximum von Mises stress.
Constraints
Increase first buckling factor above 30.
Regional volume of designable region is less than 800000.
Design Variables
Element thickness and shape perturbation.

Launching HyperMesh and Setting the OptiStruct User Profile

  1. Launch HyperMesh.
    The User Profile dialog appears.
  2. 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.

Opening the Model

  1. Click File > Open > Model.
  2. Select the os_buckle_original.hm file you saved to your working directory from the optistruct.zip file. Refer to Accessing the Model Files.
  3. Click Open.
    The os_buckle_original.hm database is loaded into the current HyperMesh session, replacing any existing data. The database only contains geometric data.

Setting Up the Optimization

Reviewing the Design Variables and Animation of Shape Changes

The shape optimization is already pre-defined using HyperMorph in this model. You will review the design variables and animation of the previously defined shape changes.
  1. From the menu bar, click View > Browsers > HyperMesh > Utility.
  2. In the Utility tab, click Opti.
  3. Under Optimization Info, click Design Variables.
  4. In the Size and Shape Design Variables dialog, review the pre-defined, v1 and v2 design variables and then click Close.
    The pre-defined design variables, v1 and v2, have an Initial Value of 0.0, Lower Bound of -2.0, and Upper Bound of 2.0

    5030_dvs
    Figure 2.
  5. From the Analysis page, click the optimization panel.
  6. Click the shape panel.
  7. Select the desvar subpanel.
  8. Click animate.
  9. Animate the shape, SHAPE - v1 (1).
    1. Click simulation = and select SHAPE - v1 (1).
    2. Set data type = and select Perturbation Vector.
    3. Click linear.
    4. Review the animation of the first shape.
  10. Animate the shape, SHAPE - v2 (2).
  11. Click return three times to go back to the Optimization panel.

Defining the Size Optimization Design Variable

The shape optimization setup is predefined in os_buckle_original.hm. Therefore, you only need to define the size design variable for this buckling optimization problem.
  1. From the Analysis page, click the optimization panel.
  2. Click the gauge panel.
  3. Select the create subpanel.
  4. Set the type: to PSHELL-T and same desvar for all props.
  5. In the desvar= field, enter shells.
  6. Using the props selector, select dom and shell_elements.
  7. In the initial value = field, enter 6.0.
  8. Switch lower bound % = to lower bound =, and enter 3.0.
  9. Switch upper bound % to upper bound =, and enter 9.0.
  10. Click create.
  11. Click return twice to go back to the main menu.

Creating Buckling Load Collectors

In this step you will create a load collector to perform real eigenvalue analysis (buckling analysis).
  1. In the Model Browser, right-click and select Create > Load Collector from the context menu.
    A default load collector displays in the Entity Editor.
  2. For Name, enter Buckling.
  3. Click Color and select a color from the color palette.
  4. Set Card Image to EIGRL.
  5. For V1, enter 0.01.
  6. For V2, enter 100.0.
    OptiStruct will search for the three lowest eigenvalues below 100.
  7. For ND, enter 20.

Creating a Buckling Optimization Load Step

  1. In the Model Browser, right-click and select Create > Load Step from the context menu.
    A default load step displays in the Entity Editor.
  2. For Name, enter Buckling.
  3. Click Color and select a color from the color palette.
  4. Set Analysis type to Linear Buckling.
  5. Define STATSUB.
    1. For STATSUB, click Unspecified > Loadcol.
    2. In the Select Loadcol dialog, select LINEAR and click OK.
  6. Define METHOD(STRUCT).
    1. For METHOD(STRUCT), click Unspecified > Loadcol.
    2. In the Select Loadcol dialog, select buckling and click OK.

Creating Optimization Responses

  1. From the Analysis page, click optimization.
  2. Click Responses.
  3. Create the volume response, which defines the volume fraction of the design space.
    1. In the responses= field, enter Vol.
    2. Below response type, select volume.
    3. Set regional selection to by entity and no regionid.
    4. Using the props selector, select dom.
    5. Click create.
  4. Create a static stress response.
    1. In the response= field, enter Von.
    2. Set the response type to static stress.
    3. Using the props selector, select dom Stress.
    4. Set the response selector to von mises.
    5. Under von mises, select both surfaces.
    6. Click create.
  5. Create the buckling response.
    1. In the response= field, enter buckle.
    2. Set response type: to buckling.
    3. In the Mode Number field, enter 1.
    4. Click create.
      The optimization response buckle, which is the lowest calculated buckling mode for the structure, is created.
  6. Click return to go back to the Optimization panel.

Defining Constraints

  1. From the optimization panel, click the dconstraints panel.
  2. Create the constraint, BUCKLE.
    1. In the constraint= field, enter BUCKLE.
    2. Check the box next to lower bound, then enter 30.
    3. Click response= and select Buckle.
    4. Using the loadsteps selector, select Buckling.
    5. Click create.
  3. Create the constraint, Vol.
    1. In the constraint= field, enter VOL.
    2. Uncheck the box next to lower bound.
    3. Check the box next to upper bound, then enter 800000.
    4. Click response= and select Vol.
    5. Click create.
  4. Click return to go back to the Optimization panel.

Defining the Objective Function

  1. Create an objective reference.
    1. Click the obj reference panel.
    2. In the dobjref= field, enter MAX_STRESS.
    3. Click response= and select Von.
    4. Select pos reference=.
      A value of 1.0 is assigned by default.
    5. Switch the toggle from all to loadsteps, then use the loadsteps selector to select LINEAR.
    6. Click create.
    7. Click return to go back to the Optimization panel.
  2. Define the objective.
    1. Click the objective panel.
    2. Select minmax.
    3. Using the dobjrefs= selector, select MAX_STRESS.
    4. Click create.
    5. Click return to go back to the Optimization panel.

Running the Optimization

  1. From the Analysis page, click OptiStruct.
  2. Click save as.
  3. In the Save As dialog, specify location to write the OptiStruct model file and enter os_buckle_optimization for filename.
    For OptiStruct input decks, .fem is the recommended extension.
  4. Click Save.
    The input file field displays the filename and location specified in the Save As dialog.
  5. Set the export options toggle to all.
  6. Set the run options toggle to optimization.
  7. Set the memory options toggle to memory default.
  8. 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 os_buckle_optimization.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.
  9. Click Close.

Viewing the Results

Viewing the Animations

  1. From the OptiStruct panel, click HyperView.
    HyperView launches within the HyperMesh Desktop and loads the result file(s).
  2. In the top, right of the application, use the navigations buttons to navigate to the Design History (page 2).

    page_nav
    Figure 3.
  3. In the Results Browser, select Iteration 3.

    os5030_iteration3
    Figure 4.
  4. On the Results toolbar, click resultsContour-24 to open the Contour panel.
  5. Set the Result type to Shape Change (v) and Mag.
  6. Click Apply.
  7. Animate the results.
    1. On the Animation toolbar, click to start the animation.
    2. With the animation running, use the slider bar to adjust the speed of the animation.
      The seek slider and playback speed slider (top and bottom respectively) are located next to the playback controls.
    3. Click the Animation Controls icon next to the seek slider and activate the Bounce option to review a back and forth animation of the impact.
    4. Stop the animation and use the Current time: slider bar to manually control the animation.

    animation_toolbar
    Figure 5.

    os5030_design_history
    Figure 6.

Viewing the Stresses

  1. In the top, right of the application, click to proceed to the next page (page 3 of 4), which contains the Linear analysis results.
  2. On the Results toolbar, click resultsContour-24 to open the Contour panel.
  3. Set the Result type to Element Stresses (2D&3D)(t) and vonMises.
  4. In the Results Browser, select the final iteration (Iteration 3).
  5. Click Apply.
A plot of the stresses on your final shape should be displayed.

os5030_linear
Figure 7.

Viewing the Buckling Modes

  1. In the top, right of the application, click to proceed to the next page (page 4 of 4), which contains the buckling results.
  2. On the Results toolbar, click resultsDeformed-24 to open the Deformed panel.
  3. Set the deformed shape parameters.
    This will improve the animation visualization.
    1. Set Result type to Buckling mode(v).
    2. Set Scale to Model units.
    3. Set Type to Uniform.
    4. For Value, enter 10.
    5. Set Resolved in to Global System (proj: none).
  4. Animate the model.
    1. On the Animation toolbar, set the animation mode to Modal.
    2. On the Animation toolbar, click to start the animation.
    3. With the animation running, use the speed slider bar to adjust the animation.
      Increase the scale to better see the buckling mode shape.
    4. Activate the Bounce option to review animation of the impact.
    5. The animation can also be manually controlled using the time slide to manually control the animation.