OS-T: 1100 Thermal Stress Analysis of a Printed Circuit Board with Anisotropic Material Properties

Printed Circuit Boards (PCB's) are used in electronic components to both mechanically support and provide electrical connections between components. Construction involves etching a thin copper layer that has been deposited onto a non-conductive, glass-fiber/epoxy composite substrate. Electrical components are then mounted to the board and connected to the copper traces with electrical solder.

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

The concentrated, intense heating that occurs during the soldering process creates stresses in the substrate material. In this exercise, you will simulate this process and determine if the stresses and strains resulting from this process are acceptable or not.

The model makes use of solid hexahedral (CHEXA8) elements with a thin skin of shell elements (CQUAD4) on the outside faces.

The consistent unit system used in this simulation are: kg, mm, GPa, kN and °C

rd1100_strain_control_card
Figure 1.

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 circuit_board.hm file you saved to your working directory.
  3. Click Open.
    The circuit_board.hm database is loaded into the current HyperMesh session, replacing any existing data.

Set Up the Model

Create MAT9 Material for Solid Elements

The MAT9 material type defines the properties for linear, temperature independent, anisotropic materials. This material model is well suited to this tutorial, due to the composite structure of the substrate. The X, Y and Z orientations of the laminated material have different elastic moduli and thermal expansion coefficients. The MAT9 material applied to solid elements allows a simplification of the model over using a shell model of the composite, with the individual ply layer properties and orientations defined.
  1. In the Model Browser, right-click and select Create > Material.
  2. For Name, enter PCB_solids.
  3. For Card Image,select MAT9 and click Yes to confirm.
  4. Enter the following values for the oriented elastic and shear modulus of the composite:
    G11
    17.0
    G22
    16.2
    G33
    7.00
    G44
    4.93
    G55
    4.70
    G66
    2.03
  5. Enter the following values for the thermal expansion rates and reference temperature:
    A1
    1.6e-5
    A2
    1.9e-5
    A3
    8.0e-5
    TREF
    10.0

    os_1100_pcb_solids
    Figure 2.

Create MAT2 Material for Shell Elements

You should still be in the materials/create panel from the previous step.
  1. In the Model Browser, right-click and select Create > Material.
  2. For Name, enter PCB_shells.
  3. For Card Image, select MAT2 and click Yes to confirm.
  4. Enter the following values for the shell element material properties:
    G11
    17.0
    G22
    16.2
    G33
    4.90
    A1
    1.6e-5
    A2
    1.9e-5
    TREF
    10.0

Create Properties with a Material Reference

  1. In the Model Browser, right-click and select Create > Property.
  2. For Name, enter shell.
  3. For Card Image, select PSHELL.
  4. For Material, click Create > Material.
  5. In the Select Material dialog, select PCB_shells from the list of materials and click OK to complete the material selection.
  6. Enter the thickness for the shell component by clicking T, and enter 0.001.

    os_1100_13_04
    Figure 3.
  7. Repeat steps 1 to 6 to create another property with name Solids, with Card Image set as PSOLID and Material as PCB_solids.
  8. In the Model Browser, click the pcb_solids component.
    The component entry is displayed in the Entity Editor below.
  9. For Property, click Unspecified > Property.
  10. In the Select Property dialog, select Solids and click OK to complete the property selection.
  11. Repeat steps 8 to 10 for both solder_pads and shell_faces selecting shell for the property name.

Create Displacement Constraints at the Mounting Holes

  1. In the Model Browser, right-click and select Create > Load Collector.
  2. For Name, enter constraints.
  3. Leave Card Image set to None.
  4. Select a suitable color.

    os_1100_13_05
    Figure 4.
  5. Click BCs > Create > Constraints to open the Constraints panel.
  6. Click nodes > by sets.
  7. Select the constrain_nodes entity set and click select.
  8. Leave all 6 degrees of freedom selected and click create.
  9. Click return to go back to the main menu.

Create Applied Temperature Loads at the Solder Pads

  1. Create a new load collector named temperature_loads.
  2. Leave Card Image set to None.
  3. Click BCs > Create > Interfaces to open the Temperatures panel.
  4. Click nodes > by collector.
  5. Check the box next to the solder_pads component.
  6. Click select.
  7. Verify that constant value (the field label specifies value=) is selected and enter 345.0.
  8. Verify the load types= is set to TEMP.
  9. Click create to create the temperature_loads.
  10. Click return to go back to the main menu.

Create a Load Step

  1. In the Model Browser, right-click and select Create > Load Step.
    A default load step template is now displayed in the Entity Editor below the Model Browser.
  2. For Name, enter thermal_loading.
  3. For Analysis type, select Linear Static from the drop-down menu.
  4. For METHOD(STRUCT), select Unspecified > Load step inputsmodal.
  5. For SPC, select Unspecified > Loadcol.
  6. From the Select Loadcol dialog, select constraints.
  7. For Load, click Unspecified > Loadcol.
  8. In the Select Loadcol dialog, select constraints and click OK.
  9. For TEMP_LOAD, click Unspecified > TEMP.
  10. In the Select Loadcol dialog, select temperature_loads and click OK.
    An OptiStruct loadstep has been created, which references the inertia relief support points in the load collector SPCs and the forces in the load collector static_loads.

Add Control Cards to the Analysis

  1. Click Setup > Create > Control Cards to open the Control Cards panel.
  2. Click next to advance until OUTPUT is available, click OUTPUT to add card requesting output results format.
  3. For the number_of_outputs field on the lower part of the panel, enter 2.
  4. Set one of the KEYWORD to OP2 to request the OP2 format results file, and set the second output as H3D format. The frequency (FREQ) of the output can be set as ALL.
  5. Click return to go back to the Control Cards panel.
  6. Click next to advance to the second page of control cards, then once more to go to the third page.
  7. Activate the SCREEN card with the OUT option.
  8. Return to the Control Card panel.
  9. Select GLOBAL_OUTPUT_REQUEST on the first page to access the output settings.
  10. Activate the STRAIN option to request strain results output. Leave the default settings for this card.
  11. Click return to go back to the Control Cards panel.
  12. Click next until the SYSSETTING card is available, click SYSSETTING to alter the system settings.
  13. Activate UNDEFTEMP and select ZERO option.
    OptiStruct will use a value of zero for grids without a specified temperature field.
  14. Click return twice to get back to the main menu.

Submit the Job

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

    OS_1000_13_17
    Figure 5. Accessing the OptiStruct Panel
  2. Click save as.
  3. In the Save As dialog, specify location to write the OptiStruct model file and enter circuit_board 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 circuit_board.fem was written. The circuit_board.out file is a good place to look for error messages that could help debug the input deck if any errors are present.