Fatigue Analysis Setup

Static Fatigue Analysis: Linear Superposition of Multiple FEA/Load Time History Load Cases

When there are several load cases at the same time, all of which vary independently of one another, the principle of linear superposition will be used to combine all load cases together to determine the stress variation at each calculation point due to the combination of all loads. The formula is:(1)
σ ij ( t )= k=1 n ( σ ij,k P FEA,k P k ( t ) )

Where, n is the total number of load cases, P k ( t ) and σ i j ( t ) are, respectively, the time variation of the k-th load time history and the total stress tensor, and P F E A , k and σ i j ( t ) are, respectively, the k-th load magnitude and stress tensor from FE analysis.

Transient Fatigue Analysis

During Transient Fatigue Analysis, the load-time history input is not required, as it is calculated internally during Transient Analysis.

Random Response Fatigue Analysis

During Random Response Fatigue Analysis, the load time history input is not required. The LCID field on the FATLOAD Bulk Data Entry should referenced a Random Response Subcase.

Sine Sweep Fatigue Analysis

During Sine Sweep Fatigue Analysis, the load-time history input is not required. The LCID field on the FATLOAD Bulk Data Entry should reference a Frequency Response Subcase.

OS-MBD Stress Recovery

Fatigue Analysis can also be performed based on stresses recovered from a flexh3d file sourced from a Multibody Analysis. The ASSIGN,H3DMBD entry can be used to identify the flexh3d file and the EL2PROP Bulk Data Entry should be used to define Properties (and materials) for the elements. You can create sets from the flexbody H3D files and assign modal participation factors to obtain the corresponding stresses for the fatigue calculation.

Load Time History Compression

This option is used to save calculation time. It will remove small cycles (defined by a gate value) and intermediate points.

Figure 1. Sample Showing Removal of Small Cycles
When removing small cycles, adjacent turning points, where the difference is less than the maximum range multiplied by relative gate value, will be removed from each channel. However, phase relationship will be maintained, when peaks and valleys occur on different channels at different times. This is shown by the sample above. In the first channel (top), the points at time 4 and 5 will be removed when the absolute gate equals one, while in the second channel (bottom), the points at time 1 and 2 will not be removed in order to keep the phase relationship between channels.

Figure 2. Sample Showing Removal of Intermediate Points

Removing intermediate points is another important mechanism to save computation time. If any point on the load-time history is neither a peak nor valley point, it will not contribute in determining any stress cycle. Such points could be screened out in the fatigue computation without losing the accuracy, but the computation time could be saved significantly. For example, the left column in Figure 2 shows three load-time histories of three super-positioned loadcases, respectively. After removing the intermediate points, the three load-time histories are obtained as in the right column, which can produce the same fatigue results as the left column, but use much less time. This mechanism is built in OptiStruct and is effective automatically.

Fatigue Loads, Events and Sequences

Fatigue loading is defined by scaling a static subcase with a load-time history.

A fatigue event consists of one or more static loadcases applied simultaneously in the same time duration scaled by load-time histories. For fatigue events with more than one static loadcase stress, linear superposition is used.

A fatigue sequence consists of a number of fatigue events and repeated instances of these events. A fatigue sequence can be made up of other sub fatigue sequences and/or fatigue events. In this way, you can define very complex events and sequences for fatigue analysis.

In OptiStruct, fatigue sequences defined in fatigue subcases (referred by FATSEQ) are the basic loading blocks. The fatigue life results of these fatigue subcases are calculated as the number of repeats of the loading block.

Below is an example of a "tree-like" fatigue sequence, which can be defined in OptiStruct, with FSEQ# identifying fatigue sequences and FEVN# identifying fatigue events:

Figure 3. "Tree-like" Fatigue Sequence Example

Fatigue loading is defined by a FATLOAD Bulk Data Entry, where a static subcase and a load-time history are associated.

A fatigue loading event is defined by a FATEVNT Bulk Data Entry, where one or more fatigue loads (FATLOAD) are selected.

A fatigue loading sequence is defined by a FATSEQ Bulk Data Entry, where a sequence of one or more fatigue loading events or other fatigue loading sequences is given. The appropriate FATSEQ Bulk Data Entry may be referenced from a fatigue subcase definition through the FATSEQ Subcase Information Entry.

Pseudo Damage Method

Pseudo Damage method is an alternative method to calculate Fatigue Damage and Life for Static S-N and Static E-N fatigue only (both uniaxial and multiaxial fatigue are supported). Pseudo Damage approach may be suitable for huge models with large load histories, especially when you are not interested in regions of lower damage and if the regions with lower damage are not likely to play a role in subsequent optimization, if any. Weld, Vibration, Transient, and FOS Fatigue are currently not supported with the Pseudo Damage method. Pseudo Damage can be activated by setting the PSEUDO flag on the FATPARM entry. For additional control, the PSEUDO continuation line on FATPARM can be used to modify parameters.
  • Load History Approximation
    1. Rainflow counting is conducted directly on the load history to find the load cycles for subsequent fatigue calculations.
    2. SWT method of mean stress correction is applied directly to the load cycles identified by Rainflow counting.
    3. The top NPV load cycles with the highest ranges are selected (default is 3). Note that if there are multiple load histories (multiple TABFATs), and if the same load cycle (time step pair) from one load history is not identified in other load histories, then such load cycles should still be selected for fatigue calculations.
  • Pseudo Damage Calculation
    1. Based on the approximated load histories from the previous step, pseudo damages are calculated for all elements in the model.
    2. These are termed as pseudo damages since they are damages calculated based on the approximated load histories.
  • Cluster Generation
    1. The global maximum Pseudo Damage is normalized to 1.0.
    2. Now the model would typically consist of a global maximum pseudo damage of 1.0 and many local maxima across the element-space.
    3. Starting with the element exhibiting the global maximum pseudo damage, the first element cluster is created. The cluster is expanded to include neighboring elements as long as a positive slope is not encountered (that is, the cluster can expand as long as the pseudo damage of the outermost element within the cluster boundary is greater than the pseudo damage of its neighboring element outside the cluster).
    4. If the difference in pseudo damage between the neighboring element outside the cluster and its corresponding outermost element within the cluster is greater than NOISETHR, then the current cluster formation is terminated.
    5. After a cluster formation is terminated, all elements in the cluster are removed from consideration for the next loop. Now the next global pseudo damage maximum is identified, and the steps 3, 4, and 5 under Cluster Generation section are repeated until the entire model has been divided into element clusters.
  • Hotspot Generation
    1. The next step is the generation of hotspot clusters. The total number of hotspot clusters for each model is defined by MXHOTSPOT. For each element cluster created in step 5 above, the top NACTDMG number of elements are identified based on their pseudo damage values.
    2. For these NACTDMG number of elements, actual damage calculation is carried out (this is the regular fatigue damage calculation using the entire load history). The local maximum within each such element cluster and its NACTDMG elements for which the actual damage calculation is carried out, is called as a Hotspot.
    3. For all other elements in the cluster, whose pseudo damages are lower than the top NACTDMG elements, the following approximation is carried out:

      log (Damage) = log (pseudo damage)*log(actual damage of the local maximum element)/log(pseudo damage of the local maximum element)

    4. The steps 1 through 3 above completes the generation of one hotspot cluster. This process is repeated until a total of MXHOTSPOT hotspot clusters are generated.
  • Output
    1. Fatigue and Life results are output by default and Rainflow results can be output using the RNFLOW command. Note that the output consists of the actual damage results (based on full load history) for the elements in the hotspot clusters and for the rest of the elements, the actual damage values are approximated based on the equation specified in step 3 of the Hotspot Generation section.
    2. A filename.eactdmg file is output by default for a Pseudo damage run. This file contains the element sets for which actual damages were calculated in each fatigue subcase. This can be turned off using PARAM,PEACTDMG,NO.

Fatigue Optimization

The RTYPE field of the DRESP1 entry should be set to FATIGUE. Fatigue Optimization Responses are Life, Damage, and Factor of Safety using the LIFE, DAMAGE, and FOS options on the ATTA field of DRESP1 Entry. A minimum of one Fatigue Analysis subcase is required for Fatigue Optimization.

Fatigue Optimization with Multibody analysis using the ESL optimization method is now supported (Fatigue Analysis is not supported for this feature). The LCID field on the FATLOAD entry can reference an MBD subcase. Only the Fatigue subcase and MBD subcase can be present, no other subcases are allowed in the model.