OS-T: 4050 Optimization of a Horizontal Tail Plane

In this tutorial you will optimize the thickness of the aluminum ribs for a horizontal tail plane.

Before you begin, copy the file(s) used in this tutorial to your working directory.

4050_model
Figure 1. Horizontal Tail Plane Model
It is assumed that the tail is cantilevered about its inboard section. Three loading scenarios are considered; one where the tail experiences pressure loads of 0.25 psi on the bottom skin, a second where the tail experiences a tip load of 400 lbs, and a third where the tail experiences both the pressure load and tip load simultaneously. The applied loading is represented below.

4050_loading
Figure 2. Loading Experienced by Horizontal Tail Plane
The optimum design should be as light as possible without failing or buckling under the given loading conditions.
Table 1. Part Materials
  Glass_fabric Core   Aluminum 2024-T3
E1 4Msi (4.0e6 psi) 2ksi (2000 psi)

E

10.6Msi (10.6e6 psi)
E2 6Msi (6.0e6 psi) 4ksi (4000 psi) Nu 0.33
NU12 0.1 0.3 G 4.06Msi (4.06e6 psi)
G12 800ksi (800000 psi) 3ksi (3000 psi) Rho 0.1 lb/in3
G1,Z 800ksi (800000 psi) 4ksi (4000 psi) Yield 50ksi (50000 psi)
G2,Z 800ksi (800000 psi) 4ksi (4000 psi)    
RHO 0.07 lb/in3 0.001074 lb/in3    
Xt 35ksi (35000 psi) 500 psi    
Xc 35ksi (35000 psi) 500 psi    
Yt 35ksi (35000 psi) 500 psi    
Yc 35ksi (35000 psi) 500 psi    
S 4ksi (4000 psi) 150 psi    
The optimization problem may be stated as
Objective
Minimize mass.
Constraints
Composite skins must not fail.
Aluminum ribs must not yield.
Buckling must not occur.
Design Variables
Composite ply thicknesses.
Rib thicknesses.

Launch HyperMesh and Set the OptiStruct User Profile

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

Open the Model

  1. Click File > Open > Model.
  2. Select the tail_baseline.hm file you saved to your working directory.
  3. Click Open.
    The tail_baseline.hm database is loaded into the current HyperMesh session, replacing any existing data.

Set Up the Model

Create Isotroic Materials and Properties; Assign to Metallic Ribs

Create the Material

  1. In the Model Browser, right-click and select Create > Material from the context menu.
    A default material displays in the Entity Editor.
  2. For Name, enter al2024-t3.
  3. Set Card Image to MAT1.
  4. Enter the material values next to the corresponding fields.
    These values are taken from the table Aluminum 2024-T3 at the beginning of the tutorial.
    1. For E (Young's Modulus), enter 10.6e6.
    2. For NU, (Poisson's Ratio), enter 0.33.
    3. For RHO (Mass Density), enter 0.1.
A new material, al2024-t3, has been created. The material uses OptiStruct's linear isotropic material model, MAT1.

Create the Property

  1. In the Model Browser, right-click and select Create > Property from the context menu.
    A default property displays in the Entity Editor.
  2. For Name, enter Ribs.
  3. Set Card Image to PSHELL.
  4. Enter the property values next to the corresponding fields.
    An empty Value field indicates that it is turned off. To edit these properties, click on the blank Value fields next to them and enter the required values.
    1. For Material, click Unspecified > Material. In the Select Material dialog, select a12024-t3 and click OK.
    2. For T (thickness of the plate), enter 1.0.
A new property, Ribs, has been created as a 2D PSHELL. Material information is also linked to this property.

Assign Material and Property Data to the Ribs Component

  1. In the Model Browser, right-click and select Create > Component from the context menu.
    A default component template displays in the Entity Editor.
  2. For Name, enter Ribs.
  3. For Property, click Unspecified > Property. In the Select Property dialog, select Ribs and click OK.
A property collector named Ribs has been created. It has a PSHELL definition with a thickness of 1.0. It also references the Aluminum 2024-T3 material definition and the component name Ribs.

os_4050_ribs
Figure 3.

Create Materials and Geometric Properties using HyperLaminate

Create Orthotropic Material Properties

  1. From the 2D page, click the HyperLaminate panel.
    HyperLaminate opens.
  2. Create the material definition, glass_fabric.
    1. In the Laminate Browser, right-click on MAT8 and select New from the context menu.
      A new material definition is created and appears in the Laminate Browser under MAT8.
    2. Under the Define, Edit material section, enter Glass_fabric in the Material field.
    3. Edit the following fields:
      E1
      4Msi (4.0e6 psi)
      E2
      6Msi (6.0e6 psi)
      NU12
      0.1
      G12
      800ksi (800000 psi)
      G1Z
      800ksi (800000 psi)
      G2Z
      800ksi (800000 psi)
      RHO
      0.07 lb/in3
      Xt
      35ksi (35000 psi)
      Xc
      35ksi (35000 psi)
      Yt
      35ksi (35000 psi)
      Yc
      35ksi (35000 psi)
      S
      4ksi (4000 psi)
    4. Click Apply.
    An orthotropic material definition for Glass_fabric is complete.
  3. Create the material definition, core.
    1. In the Laminate Browser, right-click on MAT8 and select New from the context menu.
      A new material definition is created and appears in the Laminate browser under MAT8.
    2. Under the Define, Edit material section, enter Core in the Material field.
    3. Edit the following fields:
      E1
      2ksi (2000 psi)
      E2
      4ksi (4000 psi)
      NU12
      0.3
      G12
      3ksi (3000 psi)
      G1Z
      4ksi (4000 psi)
      G2Z
      4ksi (4000 psi)
      RHO
      0.001074 lb/in3
      Xt
      500 psi
      Xc
      500 psi
      Yt
      500 psi
      Yc
      500 psi
      S
      150 psi
    4. Click Apply.
Two new orthotropic material definitions have been created on the MAT8 branch of the Laminate Browser.

Create Composite Laminates

  1. In the Laminate Browser, right-click on PCOMP and select New from the context menu.
    A new laminate definition is created and appears in the Laminate Browser under PCOMP.
  2. Under the Laminate definition section, edit laminate information.
    1. In the Name field, enter Inboard_section_top.
    2. Click the color box and select a new color for the laminate.
  3. Under Stacking sequence convention, set Convection to Symmetric-Midlayer.
  4. Under Add/Update plies, edit ply information.
    1. Set Material to Glass_fabric.
    2. For Thickness T1, enter 0.25.
    3. For Orientation (Degrees), enter 0.0.
    4. For No. of Repetitions, enter 1.0.
  5. Click Add New Ply three times.
  6. Under Ply lay-up order, edit the first ply (row 1).
    1. Set Material to Core.
    2. For Thickness T1, enter 0.5.
    3. For Orientation (Degrees), enter 45.
    4. Set SOUT to YES.
  7. Under Ply lay-up order, edit the second ply (row 2).
    1. For Orientation (Degrees), enter 90.
    2. Set SOUT to YES.
  8. Under Ply lay-up order, edit the third ply (row 3).
    1. Set SOUT to YES.

    4050_plylayup
    Figure 4.
  9. Click Update Laminate.
    The Inboard_section_top laminate definition is complete.

    4050_update_lam
    Figure 5. Inboard_section Laminate
  10. In the Laminate Browser, right-click Inboard_section_top and select Duplicate from the context menu.
  11. Under the Laminate definition section, edit laminate information.
    1. In the Name field, enter Inboard_section_btm.
    2. Click the color box and select a new color for the laminate.
  12. Click Update Laminate.
  13. Update the ply angles on the laminates Outboard_section_btm, Outboard_section_top, Midspan_section_btm, and Midspan_section_top to be the same as Inboard_section_top, then click Update Laminate.
  14. From the menu bar, click File > Exit.
    HyperLaminate closes, and the laminate information is exported back to HyperMesh.
Six laminate definitions have been created using the PCOMP keyword.

os_4050_002
Figure 6. Laminate Definitions

Assign Newly Created Properties to the Associated Component

At this point, the model is meshed and the material and geometric properties are defined. However, the elements are not referencing the correct property and material information.
  1. Edit the component, Inboard_section_top.
    1. In the Model Browser, Component folder, select Inboard_section_top.
      The Entity Editor opens and displays the component's corresponding data.
    2. For Property, click Unspecified > Property. In the Select Property dialog, select Inboard_section_top and click OK.
  2. Edit the component, Inboard_section_btm.
    1. In the Model Browser, Component folder, select Inboard_section_btm.
      The Entity Editor opens and displays the component's corresponding data.
    2. For Property, click Unspecified > Property. In the Select Property dialog, select Inboard_section_btm and click OK.

Arrange Elements in Respective Component Collectors

  1. In the Model Browser, right-click on the Load Collector folder and select Hide from the context menu.
  2. Edit the feature angle.
    1. Press O on the keyboard to open the Options panel.
    2. Select the mesh subpanel.
    3. In the feature angle= field, enter 37.
    4. Click return.
    This allows you to select elements by feature angle.
  3. From the Tool page, click the organize panel.
  4. Organize elements on the top inboard section into the Inboard_section_top component.
    1. Select one of the elements on the top inboard section.
    2. Click elems > by face.
      Several elements are selected on the top surface, stopping where the angle between elements is greater than 37 degrees. The ribs elements in between the top and bottom surface create a 90 degrees, thus the selection set stops here.
    3. Click dest component = and select Inboard_section_top.
    4. Click Move.
  5. Organize the remaining elements into the correct component collectors indicated in Figure 7.

    4050_skin_elements
    Figure 7.
  6. In the Model Browser, Components folder, right-click on Tail and select Isolate Only from the context menu.
    Only the elements forming the ribs which are in the tail collector display.
  7. Organize the elements forming the ribs in the Ribs component collector.
    1. In the Organize panel, click elems > displayed.
    2. Click dest component = and select Ribs.
    3. Click Move.
    4. Click return to exit the panel.
  8. In the Model Browser, right-click on the Components folder and select Show from the context menu.
  9. Clear empty components.
    1. Press F2 on the keyboard.
    2. Set the entity selector to comps.
    3. Click preview empty and delete entity to clear any empty components (the tail component in this case).
    4. Click return to exit the panel.

Orient Elements

  1. From Tool page, click the normals panel.
  2. Select the elements subpanel.
  3. Set the entity selector to elems, then click elems > by collector.
  4. Select Ribs.
  5. Click comps > reverse.
  6. Click select.
  7. Click display.
    Verify the element normals are not all in the same direction.
  8. If element normals are not all in the same direction, adjust element normals.
    1. Under orientation, set the selector to elem and select an element whose normal is pointing inward.
    2. Click adjust.
    All skin normals should now point inwards. These skin normals are the local z-axes for each element.
  9. Click return to return to the main menu.
  10. From the 2D page, click the composites panel.
  11. Select the material orientation subpanel.
  12. Use the comps selector to select the components that contain all of the elements belonging to the skin.
    Note: This is all components, except Ribs.
  13. Set Material orientation method to by vector.
  14. Under by vector, select z-axis.
  15. Click project.
  16. Click return to exit the panel.

The local x-axis of each of the selected elements is oriented to be the projection of the global z-axis. This is indicated by the small white arrows that appear on each element.

Having defined the local x and z axes of the elements belonging to the component collectors Inboard_section_top, Inboard_section_btm, Midspan_section_top, Midspan_section_btm, Outboard_section_top, and Outboard_section_btm, you have fully established the local orientation for each element referencing a composite laminate.

Create Static and Buckling Subcases

Three loading scenarios are to be considered in this exercise: one where the tail experiences pressure loads on the bottom skin, a second where the tail experiences a tip load, and a third where the tail experiences both the pressure load and tip load simultaneously.

In previous steps, a load collector containing the pressure loads and another containing the tip load were created, but a load collector containing both together is still needed. Next is to create a load collector which is a combination of the load collectors pressure and tip_load.

Create Combination Load Collector

  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. In the Name field, enter Combined.
  3. Click Color and select a color from the color palette.
  4. Set the Card Image to LOADADD.
  5. For S, enter 1.0.
  6. For LOAD_Num_Set = and enter 2.
    This indicates how many load-collectors to combine.
  7. In the Data: S1, field, click .
  8. In the LOAD_Num_Set= dialog, edit load collector information.
    1. For S1(1), enter 1.0.
    2. For L1(1), select pressure.
    3. For S1(2), enter 1.0.
    4. For L1(2), select tip_load.
    5. Click Close.
A combination load collector, combining 1.0 times the loads in the pressure load-collector with 1.0 times the loads in the tip_load collector, is created.

Create Static and Associated Buckling Subcase

  1. From the menu bar, click View > Browsers > HyperMesh > Utility.
  2. In the Utility tab, select FEA.
  3. Under LoadSteps, click Buckling.
    The Create Buckling Subcases opens.
  4. Create a linear static subcase named pressure_only, which combines the pressure loads in the load-collector pressure with the single-point constraints in the load collector constraints, and an associated buckling eigenvalue subcase named buck_pressure_only which calculates the first 10 buckling modes greater than 0.0 for the pressure_only static subcase.
    1. In the Name field, enter pressure_only.
      This is the user-defined name for the static subcase. If you call the static subcase name, then the associated buckling subcase will be named buck_name.
    2. After the Name field, select EIGRL.
      This indicates that eigenvalue analysis is to be used to calculate the buckling modes. Currently this is the only option available.
    3. In the V1 field, enter 0.0.
      This indicates that the lower bound for the eigenvalue extraction is 0.0. This prevents negative buckling modes being calculated (negative buckling modes indicate that buckling will occur if the loading is reversed).
    4. Leave the V2 field blank.
      This is the upper bound for the eigenvalue extraction. You will select a number of modes to calculate (instead of a range of eigenvalues) for this exercise.
    5. In the ND field, enter 10.
      This requests that the 10 lowest buckling modes (which are greater than V1) be calculated.
    6. Set LOAD to pressure.
    7. Set SPC to constraints.
    8. Click Create.
  5. Create a static subcase named tip_load_only, which combines the point loads in the load-collector tip_load with the single point constraints in the load collector constraints, and an associated buckling subcase which calculates the first 10 modes greater than 0.0.
  6. Create a static subcase named combo, which combines the loads in the load-collector combined (that is, both pressure and tip_load) with the single point constraints in the load collector constraints, and an associated buckling subcase which calculates the first 10 modes greater than 0.0.
  7. Exit the Create Buckling Subcases dialog.

Request Stress, Strain and Failure Results for Composite Laminates

Stress, strain, and failure results are not output by default for composite laminates, but need to be requested.
  1. Edit the property, Outboard_section_top.
    1. In the Model Browser, Properties folder, click Outboard_section_top.
      The Entity Editor opens and displays the properties card image.
    2. Set FT to HILL.
      This activates failure theory calculation.
    3. For SB, enter 3,500.
      This is the interlaminate shear strength of the laminate, which is the bonding material shear strength. 3.5ksi is an assumed value, as no material data was provided.
    4. In the Data: MID field, click .
    5. In the Number_of_Plies= dialog, set SOUT for all plies to YES and click Close.
      This requests stress and strain results to be output for all plies.
  2. Repeat step 1 for the other composite laminates.
  3. Edit the GLOBAL_CASE_REQUEST control card.
    1. From the Analysis page, click the control cards panel.
    2. In the Card Image dialog, click GLOBAL_CASE_REQUEST.
    3. Verify CSTRAIN and CSTRESS is selected.
    4. Click return twice to exit the dialog.
    Stress, strain, and failure results will now be output for the composite laminates.

Submit the Job

  1. From the Analysis page, click the OptiStruct panel.

    OS_1000_13_17
    Figure 8. Accessing the OptiStruct Panel
  2. Click save as.
  3. In the Save As dialog, specify location to write the OptiStruct model file and enter tail_baseline_complete 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 analysis.
  7. Set the memory options toggle to memory default.
  8. Click OptiStruct to launch the OptiStruct job.
If the job is successful, new results files should be in the directory where the tail_baseline_complete.fem was written. The tail_baseline_complete.out file is a good place to look for error messages that could help debug the input deck if any errors are present.

View the Results

Review the Analysis Summary File

After running the OptiStruct analysis, the tail_baseline_complete.out file is written to your working directory. This file contains a summary of the analysis run.
Using a text editor, open the tail_baseline_complete.out file.
The file contains:
  • A summary of the finite element model.
  • A summary of the optimization parameters.
  • Memory and disk space estimations.
  • Analysis results.
The Volume, Mass, and Buckling Modes for the baseline model are given in the analysis results section.
ANALYSIS RESULTS :

------------------

ITERATION   0

(Scratch disk space usage for starting iteration = 30 MB)
(Running in-core solution)

Volume                              =  7.71079E+04   Mass     =  2.49519E+03

Subcase   Compliance
      1  5.455666E+02
      3  2.486638E+01
      5  7.735856E+02

Subcase  Mode  Buckling Eigenvalue
      2      1     1.583435E+01
      2      2     1.610702E+01
      2      3     1.638024E+01
      2      4     1.665444E+01
      2      5     1.681097E+01
      2      6     1.693918E+01
      2      7     1.715172E+01
      2      8     1.723870E+01
      2      9     1.739906E+01
      2     10     1.748200E+01
      4      1     8.267695E+01
      4      2     8.326373E+01
      4      3     8.393269E+01
      4      4     8.466939E+01
      4      5     8.541136E+01
      4      6     8.618942E+01
      4      7     8.695226E+01
      4      8     8.765920E+01
      4      9     8.834313E+01
      4     10     8.907416E+01
      6      1     1.329775E+01
      6      2     1.351079E+01
      6      3     1.372538E+01
      6      4     1.394187E+01
      6      5     1.416444E+01
      6      6     1.417737E+01
      6      7     1.439755E+01
      6      8     1.445274E+01
      6      9     1.464175E+01
      6     10     1.466889E+01

Review Displacment Results

  1. From the OptiStruct panel, click HyperView.
    HyperView launches within the HyperMesh Desktop and the results are loaded.
  2. On the Animation toolbar, set the Animation type to animationLinear-24 (Linear).
  3. On the Results toolbar, click resultsContour-24 to open the Contour panel.
  4. Set the Result type to Displacement [v] and Mag.
  5. Click Apply.
The displacement contour displays for the 1st subcase [pressure only]. You could also view the same for other subcases.

4040_displacement_contour
Figure 9. Displacement Contour for pressure_only subcase.

Review Stress Results

  1. On the Visualization toolbar, click palette-24 to open the Entity Attributes panel.
  2. Select Auto apply mode.
  3. For Display, click Off.
    This will cause any component selected, either in the display or from the list of components, to be hidden.
  4. Hide all of the components except the ribs.
  5. On the Results toolbar, click resultsContour-24 to open the Contour panel.
  6. Set the Result type to Element Stresses (2D & 3D) [t] and von Mises.
  7. Click Apply.
    A contour plot of the von Mises stresses for the metallic ribs displays.

    os_4050_contour_plot
    Figure 10.
  8. On the Visualization toolbar, click palette-24 to open the Entity Attributes panel.
  9. Click Flip.
    The Ribs component is now hidden and the composite laminate components are displayed.
  10. On the Results toolbar, click resultsContour-24 to open the Contour panel.
  11. Set the Result type to Composite Stresses (s) and Ply Failure.
  12. Set Layers to 1.
  13. Click Apply.
    A contour plot of the composite failure indices from the composite skins results is displayed for the first layer.

    os_4050_fail_index
    Figure 11. Failure index for the first layer for the pressure only loadstep
    After calculating the failure indices for individual plies, OptiStruct calculates the potential failure index for the composite shell element. This is based on the premise that failure of a single layer qualifies as failure of the composite. Thus, a failure index for composite elements is calculated as a maximum of all computed ply and bonding failure indices.
    Note: Only plies with requested stress output are taken into account here.
  14. Set Layers to Max.
    The maximum index for the laminate displays.

    os_4050_max_fail
    Figure 12. Max failure index found on all layers for pressure only loadstep

Repeat this process to have the maximum failure index for all loadsteps.

MAX FAILURE INDEX = 3.73 e-3 (Combo Loadstep)

Set Up the Optimization

Next you will setup the optimization problem in HyperMesh. The first step in this process is to define the design variables. The design variables for this exercise are the rib thicknesses and the laminates used in the composite skins.

Return to HyperMesh Desktop

HyperMesh Desktop allows you to use one HyperMesh page and multiple pages from the HyperView, HyperGraph, MotionView, and MediaView clients without having to switch applications.

Return to HyperMesh Desktop by deleting the HyperView page or navigating back to the HyperMesh client.
  • To delete the HyperView page and return to the HyperMesh client, click pageDelete-24 on the Page Controls toolbar.
  • To keep the page open but return to the HyperMesh client page, click pagePrevious-24/pageNext-24 in the top, right of the application until the HyperMesh client returns.

Create and Reference a Thickness Design Variable for Metallic Ribs

  1. From Analysis page, click the optimization panel.
  2. Click the gauge panel.
  3. Select the create subpanel.
  4. Using the props selector, select the Ribs collector.
  5. Set the top toggle to value from property.
    This sets the initial value of the design variable to be the thickness value defined on the property card.
  6. Toggle lower bound % to lower bound =, then enter 0.01.
    This sets the lower bound for the design variable.
  7. Toggle upper bound % to upper bound =, then enter 2.0.
    This sets the upper bound for the design variable.
  8. Set type to PSHELL - T.
  9. Click create.
  10. Click return twice to go to the main page.

os_4050_settings
Figure 13. Gauge Panel Settings for Rib Thickness Design Variable

Create Composite Laminate Design Variables

  1. From the 2D page, click the HyperLaminate panel.
    HyperLaminate opens.
  2. In the Laminate Browser, right-click on DESVAR and select New from the context menu.
    A new design variable, named NewDv1, is created.
  3. In the Defne/Edit material section, edit the design variable.
    1. In the Material field, enter istgf_th.
      istgf_th stands for (inboard_section_top, glass_fabric, and thickness).
    2. In the Initial value field, enter 0.25.
    3. In the Lower bound field, enter 0.01.
    4. In the Upper bound field, enter 1.0.
  4. Click Apply.
  5. Create one more design variables named isbgf_th using the same bounds as the istgf_th design variable.
    Tip: Quickly create an identical design variable by right-clicking on istgf_th in the Laminate Browser and selecting Duplicate from the context menu.
  6. Review the other ten design variables in HyperLaminate and verify their bounds match the information in Table 2.
    Table 2.
    Name Initial Value Lower bound Upper bound
    mstgf_th 0.25 0.01 1.0
    msbgf_th 0.25 0.01 1.0
    ostgf_th 0.25 0.01 1.0
    osbgf_th 0.25 0.01 1.0
    istc_th 0.5 0.01 2.0
    isbc_th 0.5 0.01 2.0
    mstc_th 0.5 0.01 2.0
    msbc_th 0.5 0.01 2.0
    ostc_th 0.5 0.01 2.0
    osbc_th 0.5 0.01 2.0
Twelve total composite design variables now exist, one for the thickness of the glass fabric for each composite laminate component, and the other for the thickness of the core for each composite laminate component. As the laminates are symmetric, the glass fabric will reference the same design variables on either side of the core.

Update Composite Laminate Properties

  1. In the Laminate Browser, under PCOMP, select Inboard_section_top.
  2. Select Optimization.
    New fields appear in the Ply lay-up order table, allowing design variables to be associated to ply thicknesses or ply orientations.
  3. In the first row of the Ply lay-up order table, set Thickness Designvar to istgf_th.
    Now the design variable istgf_th is associated to the thickness of the Glass_fabric material used in ply1, and, in this case, ply5 (as this is a symmetric-midlayer type laminate) of the Inboard_section_top component collector.
  4. In the second row, set Thickness Designvar to istc_th.
    Now the design variable istc_th is associated to the thickness of the Core material used in ply2 and ply4 of the Inboard_section_top component collector.
  5. In the third row, set Thickness Designvar to istgf_th.
  6. Click Update Laminate to save the design variable assignments.
  7. Repeat the above steps for the Inboard_section_btm composite laminate component collector, associating the appropriate design variables.
  8. From the menu bar, click File > Exit.
    HyperLaminate closes, and the design variable and updated laminate information is exported back to HyperMesh.

Create Optimization Responses

  1. From the Analysis page, click optimization.
  2. Click Responses.
  3. Create the mass response, which is defined for the total volume of the model.
    1. In the responses= field, enter mass.
    2. Below response type, select mass.
    3. Set regional selection to total and no regionid.
    4. Click create.
  4. Create the composite failure response.
    1. In the response= field, enter hl_ist.
    2. Set response type: to composite failure.
    3. Using the props selector, select the Inboard_section_top collector.
    4. Set the switch next to the props selector to hill.
    5. Click create.
  5. Create the responses hl_osb, hl_ost, hl_msb, hl_mst, and hl_isb by repeating step 4 to create optimization responses for the hill failure criteria for the plies of the other composite laminate skins.
  6. Create a static stress response.
    1. In the response= field, enter vm_strs.
    2. Set the response type to static stress.
    3. Using the props selector, select Ribs.
    4. Set the response selector to von mises.
    5. Under von mises, select both surfaces.
    6. Click create.
  7. 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.
  8. Click return to go back to the Optimization panel.

Create Constraints

In this step you will define constraints. You will attempt to minimize the total mass of the structure, while keeping the von Mises stress in the metallic ribs below yield, the composite failure index of the composite skins below 1.0, and the buckling modes of the structure above 1.0.
  1. Click the dconstraints panel.
  2. Create the constraint, cnst1.
    1. In the constraints= field, enter cnst1.
    2. Click response= and select vm_strs.
    3. Check the box next to upper bound, then enter 50,000.
    4. Using the loadsteps selector, select pressure_only, tip_load_only, and combo.
    5. Click create.
    A constraint is defined on the von Mises stress of the metallic ribs to be less than 50ksi for all of the static subcases.
  3. Create the constraint, cnst2.
    1. In the constraints= field, enter cnst2.
    2. Click response= and select hl_ist.
    3. Check the box next to upper bound, then enter 1.0.
    4. Using the loadsteps selector, select pressure_only, tip_load_only, and combo.
    5. Click create.
    A constraint is defined on the hill failure criteria for the Inboard_section_toplaminate to be less than 1.0. for all of the static subcases.
  4. Create the cnst3 through cnst7 constraints by repeating step 3.
  5. Create the constraint, cnst8.
    1. In the constraints= field, enter cnst8.
    2. Click response= and select buckle.
    3. Uncheck the box next to upper bound.
    4. Check the box next to lower bound, then enter 1.0.
    5. Using the loadsteps selector, select buck_pressure_only, buck_tip_load_only, and buck_combo.
    6. Click create.
    A constraint is defined on the lowest calculated buckling mode of the structure to be greater than 1.0 for all of the linear buckling subcases.
  6. Click return to return to the Optimization panel.

Define the Objective Function

  1. Click the objective panel.
  2. Verify that min is selected.
  3. Click response and select mass.
  4. Click create.
  5. Click return twice to exit the Optimization panel.

Create Additional Run Parameters

For the buckling constraint to be effectively maintained, an additional parameter needs to be defined.
  1. Click the opti control panel.
  2. Select MAXBUCK=.
    By default, the box preceding GBUCK= is checked automatically.
  3. Click return.
Together, these two options ensure that up to 10 modes are considered in the buckling constraint.

Run 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 tail_opt 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 tail_opt.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.

View the Results

Review the Optimization Summary File

Using a text editor, navigate to the directory where you ran the OptiStruct optimization and open the tail_opt.out file.
The tail_opt.out file contains:
  • A summary of the finite element model.
  • A summary of the optimization parameters.
  • Memory and disk space estimations.
  • An optimization iteration history.

The value of the objective, the retained constraints, and the design variables are provided for all iterations in the optimization iteration history section.

The final iteration provides information on the mass of the optimized structure, the values of the design variables for the optimized structure and the values of the objective and retained constraints for the optimized structure.

Review the Iteration History

  1. From the Page Controls toolbar, click pageNew-24 to create a new page with the HyperView client.
  2. From the menu bar, click File > Open > Session.
    The Open Session File window appears.
  3. In the Open Session File dialog, navigate to the directory where you ran the OptiStruct optimization and open the tail_opt_hist.mvw file.

This is a HyperView session which creates plots of the objective, constraints, and design variables against iteration number using information from the tail_opt.hist file.

Figure 14 shows page 1 of the session, which is the plot of the objective against iteration. It shows how the mass decreased through the optimization process and how convergence is achieved when the change in mass levels out.

Similar plots are available for the design variables and the constraints. There is also a plot showing the maximum constraint violation for a given iteration against iteration. When this value is zero, it indicates that there is no constraint violation.

os_4050_obj_function
Figure 14.

Compare Baseline Results with Optimized Results

  1. From the menu bar, click File > New > Session.
    A new session starts.
  2. From the client selector, select client_selector_icon to change the current client to HyperView.
  3. Click Yes to continue.
  4. From the Page Controls toolbar, change the page layout to pageLayout2Vertical-24 to create a two pane view.

    os_4050_page_layout
    Figure 15.
  5. Click the first window to activate it.
    The blue halo that surrounds the window indicates that it is active.
  6. From the Standard toolbar, click folderResultsContours-24 to load a new model file.
  7. In the Load Model File dialog, navigate to the directory where you ran the OptiStruct baseline analysis and open the Tail_baseline_complete.h3d file.
    The path and file name for Tail_baseline_complete.h3d appears in the fields to the right of Load model and Load results. This is good because the Hyper3D format contains both model and results data.
  8. Click Apply.
    The model and results are loaded in the current HyperViewwindow.
  9. Click the second window to active it.
  10. From the Standard toolbar, click folderResultsContours-24 to load a new model file.
  11. In the Load Model File dialog, navigate to the directory where you ran the OptiStruct optimization and open the tail_opt_s1.h3d file.
    For the optimization, analysis results are written to files named *_s#.h3d (static analysis results, where # is the subcase ID) and *_m#.h3d (eigenvalue analysis results, where # is the subcase number), while the density, thickness and shape results are written to the file *_des.h3d.
  12. Activate the first window.
  13. On the Results toolbar, click resultsContour-24 to open the Contour panel.
  14. Set the Result type to Displacement (v).
  15. Click Apply.
  16. Activate the second window.
  17. In the Results Browser, select subcase 1 (pressure only) load case and the last iteration.

    os_4050_subcase1
    Figure 16.
  18. On the Results toolbar, click resultsContour-24 to open the Contour panel.
  19. Set the Result type to Displacement (v).
  20. Click Apply.

    A side-by-side comparison of the displacement results before the optimization with those after the optimization displays. Notice the big change in the value of the total displacement.

    The optimized displacement results are greater than the baseline because you were optimizing for mass without displacement constraints.

    os_4050_base_optimize
    Figure 17.
  21. On the Animation toolbar, set the animation mode to animationLinear-24 (Linear static).
  22. Click animationStart-24 to animate the deformation. Click again to stop the animation.

Similar steps can be followed to compare stress and composite failure plots before and after the optimization.

Notice how the maximum value for the composite failure index is almost at the design limit of 1.0.

Assign Thicknesses and Orientations

In this step you will import the optimum property file to assign thicknesses and orientations.
  1. From the menu bar, click File > New > Session.
  2. From the client selector, select clientHyperMesh-24 to switch to the HyperMesh client.
    All result information is cleared out of the client, including all pages. This will not affect your files on your hard drive.
  3. From the menu bar, click File > Import > Solver Deck.
  4. In the Import browser, click files_panel and open the tail_opt.fem file from the directory where you ran the optimization.
  5. Click Import.
    The *.fem that the optimization was run with is loaded into HyperMesh.
  6. In the Import browser, click files_panel and open the tail_opt.prop file from the directory where you ran the optimization.
    The tail_opt.prop file is created by OptiStruct at the end of the optimization run and contains the optimized property data for model.
  7. Expand the import options and select FE overwrite.
  8. Click Import.
  9. From the 2D page, click the HyperLaminate panel.
  10. In HyperLaminate, review the new thicknesses assigned to the PCOMP properties.