You are on page 1of 14

14.3.

Evaluating Fatigue

You perform a fatigue evaluation in POST1, the general postprocessor, after you have
completed a stress solution. The procedure normally consists of five general steps:

1. Enter POST1 (/POST1) and resume your database.


2. Establish the size (the number of locations, events, and loadings), define the
fatigue material properties, identify stress locations, and
define stress concentration factors.
3. Store stresses at locations of interest for various events and loadings; assign
event repetitions and scale factors.
4. Activate the fatigue calculations.
5. Review the results.

The following fatigue-evaluation topics describe each step in detail and provide
additional information:

Enter POST1 and Resume Your Database


Establish the Size, Fatigue Material Properties, and Locations
Store Stresses and Assign Event Repetitions and Scale Factors
Activate the Fatigue Calculations
Review the Results
Other Approaches to Range Counting
Sample Input

14.3.1. Enter POST1 and Resume Your Database

In order to perform a fatigue evaluation, you need to follow these steps:

1. Enter POST1.

Command(s): /POST1

GUI: Main Menu> General Postproc

2. Read your database file (Jobname.DB) into active memory. (If your intended
fatigue evaluation is a continuation of an ongoing session,
then Jobname.DB will already be in memory.) A results file (Jobname.RST)
with nodal stress results should also be available; you will read results data into
memory later.

Command(s): RESUME
GUI: Utility Menu> File> Resume from

14.3.2. Establish the Size, Fatigue Material Properties, and


Locations

Define the following data:

Maximum number of locations, events, and loadings


Fatigue material properties
Stress locations and stress concentration factors (SCFs)

1. Define the maximum number of stress locations, events, and loadings.

By default, your fatigue evaluation can consider up to five nodal locations, ten
events, and three loadings within an event. You can use the following option to
establish larger dimensions (that is, allow more locations, events, or loadings), if
necessary.

Command(s): FTSIZE

GUI: Main Menu> General Postproc> Fatigue> Size Settings

2. Define material fatigue properties.

In order to calculate usage factors, and to include the effect of simplified elastic-
plastic computations, you must define material fatigue properties. The material
properties of interest in a fatigue evaluation are:

The S-N curve, a curve of alternating stress intensity ((Smax - Smin)/2)


versus allowable number of cycles. The ASME S-N curves already
account for maximum mean stress effects. You should adjust your S-
N curve to account for mean-stresseffects, if necessary. If you do not
input an S-N curve, alternating stressintensities will be listed in
decreasing order for all possible combinations of stressconditions, but
no usage factors will be calculated.

Command(s): FP

GUI: Main Menu> General Postproc> Fatigue> Property


Table> S-N Table

The Sm-T curve, a curve of design stress-intensity value versus


temperature. This curve is needed if you want the program to detect
whether or not the nominalstress range has gone plastic.
Command(s): FP

GUI: Main Menu> General Postproc> Fatigue> Property


Table> Sm_T Table

Elastic-plastic material parameters M and N (strain hardening


exponents). These parameters are required only if you desire
simplified elastic-plastic code calculations. These parameters' values
can be obtained from the ASME Code.

Command(s): FP

GUI: Main Menu> General Postproc> Fatigue> Property


Table> Elas-plas Par

The following example illustrates the use of the FP command to input


material fatigue properties:

! Define the S-N table:


FP,1,10,30,100,300,1000,10000 ! Allowable Cycles, N
FP,7,100000,1000000 ! "
FP,21,650,390,240,161,109,59 ! Alternating Stress-
FP,27,37,26 ! Intensity Range, S,
ksi
! Define the Sm-T table:
FP,41,100,200,300,400,500,600 ! Temperature,F
FP,47,650,700,750,800 ! "
FP,51,20,20,20,18.7,17.4,16.4 ! "Design Stress-
Intensity
FP,57,16.1,15.9,15.5,15.1 ! Value", Sm (=2/3*Sy
or
! 1/3 *Su), ksi
! Define the elastic-plastic material parameters:
FP,61,1.7,.3 ! M and N

3. Define stress locations and stress concentration factors.

The following option allows you to explicitly define a nodal location of interest to
your fatigue evaluation, define stress concentration factors (SCFs) for that
location, and assign a short (20 character) title to that location.

Command(s): FL

GUI: Main Menu> General Postproc> Fatigue> Stress Locations


Note: Not all fatigue analyses will require the FL command. Locations are
automatically defined for nodes when FS, FSNODE, or FSSECT are issued (see below).
If your model contains sufficient grid detail, your stresses could be accurate enough
that you would not need to apply calculated SCFs. (Supplemental SCFs for surface, size,
or corrosion effects might still be required, however.) Where only one location is being
examined, you could omit a title. If explicit definition of locations, SCFs, or titles are not
required, you could forgo the FL command entirely.

Here is an example of some FL commands for a cylinder with a global Y axis, having
two wall thicknesses of interest, where SCFs are to be applied (to the axial linearized
stresses) at the outside wall.

FL,1,281,,,,Line 1 at inside
FL,2,285,,1.85,,Line 1 at outside
FL,3,311,,,,Line 2 at inside
FL,4,315,,2.11,,Line 2 at outside

Figure 14.1: Cylinder Wall with Stress Concentration Factors (SCFs)

14.3.3. Store Stresses and Assign Event Repetitions and Scale


Factors

14.3.3.1. Storing Stresses

In order to perform a fatigue evaluation, the program must know the stresses at
different events and loadings for each location, as well as the number of repetitions of
each event. You can store stresses for each combination of location, event, and loading,
using the following options:

Manually stored stresses


Nodal stresses from Jobname.RST
Stresses at a cross-section

Caution: The program never assumes that a "zero" stress condition exists. If
zerostress is one of the conditions to be considered, it must be explicitly input for each
event in which it may occur.

The following command sequences schematically illustrate how to store stresses. In


some situations, you might prefer to use LCASE instead of SET.

Manually stored stresses: FS


Nodal stresses retrieved from Jobname.RST: SET, FSNODE
Stresses at a cross-section: PATH, PPATH, SET, FSSECT
(Cross-section calculations also require data from Jobname.RST.)

You can use more than one method of storing stresses in an event. Each of these
methods is explained in detail below.

14.3.3.1.1. Manually Stored Stresses

You can use this option to store stresses and the temperature, and the time "manually"
(without direct access to the results file Jobname.RST). In such cases, you are not
using the fatigue module in POST1 as a postprocessor, but simply as a fatigue
calculator. Line elements, such as beams, must be handled in this way since the fatigue
module is not able to access data from a results file other than for solid elements or
shell elements.

Command(s): FS
GUI: Main Menu> General Postproc> Fatigue> Store Stresses> Specified Val

Command input for this option is demonstrated by the following example:

FS,201,1,2,1,-2.0,21.6,15.2,4.5,0.0,0.0
FS,201,1,2,7,450.3

In this example, only the total stresses (items 1-6) and the temperature (item 7) are
input. If the linearized stresses were also to be input, they would follow the
temperatures as items 8 through 13. Time would be input at item 14.
Note: Time is not used in the fatigue calculation and is only included for reference
purposes.

Note: In the special case of a beam element having only axial stress, you would input
only one stress component (SX), leaving the rest of the stress fields blank.

14.3.3.1.2. Nodal Stresses from Jobname.RST

When you use this option, you cause a nodal stress vector containing
six stress components to be stored directly from the results
database. Stress components stored with this option can be modified with a
subsequent FS command.

Note: You must issue a SET command, and possibly a SHELL command, before
executing FSNODE. SET will read results for a particular load substep from the results
file (Jobname.RST) into the database. SHELL allows you to select results from the
top, middle, or bottom surfaces for shell elements (default is the top surface).

Command(s): FSNODE
GUI: Main Menu> General Postproc> Fatigue> Store Stresses> From rst File

Input by means of FSNODE is demonstrated by the following example for an event at


one nodal location:

SET,1 ! Define data set for load step 1


FSNODE,123,1,1 ! Stress vector at node 123 assigned to event 1,
! loading 1.
SET,2 ! Define data set for load step 2
FSNODE,123,1,2 ! ...event 1, loading 2
SET,3 ! ...load step 3
FSNODE,123,1,3 ! ...event 1, loading 3

Figure 14.2: Three Loadings in One Event


14.3.3.1.3. Stresses at a Cross-Section

This option calculates and stores total linearized stresses at the ends of a section path
(as defined by a preceding PATH and PPATH command). Because you will normally
want the linearization to take place over a thickness representing the shortest distance
between the two surfaces, use only the two surface nodes to describe the path in
the PPATH command. This option retrievesstress information from the results
database; therefore FSSECT must also be preceded by
a SETcommand. Stress components stored with an FSSECT command can be modified
with a subsequent FS command.

Command(s): FSSECT
GUI: Main Menu> General Postproc> Fatigue> Store Stresses> At Cross Sect

Input by means of FSSECT is demonstrated in the following example. If node locations


are not assigned with an FL command, the FSSECT commands in this example will
automatically assign location numbers to the two path nodes, 391 and 395.
(See Figure 14.3: Surface Nodes are Identified by PPATH Prior to Executing FSSECT.)

PATH,Name,2 ! Define the path using the two surface


nodes
PPATH,1,391
PPATH,2,395
SET,1
FSSECT,,1,1 ! Store stresses at nodes 391 and 395

Figure 14.3: Surface Nodes are Identified by PPATH Prior to Executing FSSECT
14.3.3.2. Listing, Plotting, or Deleting Stored Stresses

Use the following options to list, plot, or delete stored stresses.

List the stored stresses per location, per event, per loading, or
per stress condition:

Command(s): FSLIST

GUI: Main Menu> General Postproc> Fatigue> Store Stresses> List


Stresses

Display a stress item as a function of loading number for a particular location


and event:

Command(s): FSPLOT

GUI: Main Menu> General Postproc> Fatigue> Store Stresses>


Plot Stresses

Delete a stress condition stored for a particular location, event, and loading:

Command(s): FSDELE

GUI: Main Menu> General Postproc> Fatigue> Store Stresses>


Dele Stresses

Delete all stresses at a particular location:

Command(s): FL

GUI: Main Menu> General Postproc> Fatigue> Stress Locations

Delete all stresses for all loadings in a particular event:


Command(s): FE

GUI: Main Menu> General Postproc> Fatigue> Erase Event Data

14.3.3.3. Assigning Event Repetitions and Scale Factors

This option assigns the number of occurrences to the event numbers (for all loadings at
all locations of the event). It can also be used to apply scale factors to all of the
stresses that make up its loadings.

Command(s): FE
GUI: Main Menu> General Postproc> Fatigue> Assign Events

An example of this command usage is given below:

FE,1,-1 ! Erase all parameters and fatigue stresses formerly


! used for event 1.
FE,2,100,1.2 ! Assign 100 occurrences to events 2, 3 and 4,
*REPEAT,3,1 ! and scale by 1.2.
FE,5,500 ! Assign 500 occurrences to event 5.

14.3.3.4. Guidelines for Obtaining Accurate Usage Factors

Structures are usually subjected to a variety of maximum and minimum stresses, which
occur in unknown (or even random) order. Therefore, you must take care to achieve an
accurate count of the number of repetitions of all possible stress ranges, in order to
obtain a valid fatigue usagefactor.

The program automatically calculates all possible stress ranges and keeps track of their
number of occurrences, using a technique commonly known as the "rain flow" range-
counting method. At a selected nodal location, a search is made throughout all of the
events for the pair of loadings (stress vectors) that produces the most severe stress-
intensity range. The number of repetitions possible for this range is recorded, and the
remaining number of repetitions for the events containing these loadings is decreased
accordingly. At least one of the source events will be "used up" at this point; remaining
occurrences of stress conditions belonging to that event will subsequently be ignored.
This process continues until all ranges and numbers of occurrences have been
considered.

Caution: It can be surprisingly easy to misuse the range-counting feature of the


fatigue module. You must take pains to assemble events carefully if you want your
fatigue evaluation to yield accurate usage factors.
Consider the following guidelines when assembling events:

Understand the internal logic of the range-counting algorithm. See POST1 -


Fatigue Module in the Mechanical APDL Theory Reference for more details
on how the program performs range counting.
Because it can be difficult to predict the exact load step at which a maximum
(or minimum) 3-D stress state occurs, good practice often requires that you
include several clustered loadings in each event, in order to successfully
capture the extremestress state. (See Figure 14.2: Three Loadings in One
Event.)
You will obtain consistently conservative results if you include only one
extreme stresscondition (either a local maximum or a local minimum) in any
given event. If you group more than one extreme condition in a single event,
you will sometimes generateunconservative results, as illustrated by the
following example:

Consider a load history made up of two slightly different cycles:

Load Cycle 1: 500 repetitions of Sx = +50.0 to -50.1 ksi

Load Cycle 2: 1000 repetitions of Sx = +50.1 to -50.0 ksi

These load cycles will obviously sum to 1500 repetitions having an


alternating stress intensity of about 50 ksi. However, carelessly grouping these loadings
into only two events will result in an inaccurate range count. Let's see how this would
happen:

Event 1, loading 1: Sx = 50.0 500 repetitions


loading 2: Sx = -50.1
Event 2, loading 1: Sx = 50.1 1000 repetitions
loading 2: Sx = -50.0

The possible alternating stress intensities are:

a. From E1,L1 to E1,L2: 50.05 ksi


b. From E1,L1 to E2,L1: 0.05 ksi
c. From E1,L1 to E2,L2: 50.00 ksi
d. From E1,L2 to E2,L1: 50.10 ksi
e. From E1,L2 to E2,L2: 0.05 ksi
f. From E2,L1 to E2,L2: 50.05 ksi

Sorting these combinations by decreasing alternating stress intensity gives:

d. From E1,L2 to E2,L1: 50.10 ksi


a. From E1,L1 to E1,L2: 50.05 ksi
f. From E2,L1 to E2,L2: 50.05 ksi
c. From E1,L1 to E2,L2: 50.00 ksi
b. From E1,L1 to E2,L1: 0.05 ksi
e. From E1,L2 to E2,L2: 0.05 ksi

The range counting then proceeds as follows:

d. 500 cycles of E1,L2 to E2,L1 - this uses up 500 cycles of E1 and E2


a. 0 cycles of E1,L1 to E1,L2 - E1 is all used up
f. 500 cycles of E2,L1 to E2,L2 - this uses up 500 more cycles of E2
c. 0 cycles of E1,L1 to E2,L2 - both events are all used up
b. 0 cycles of E1,L1 to E2,L1 - both events are all used up
e 0 cycles of E1,L2 to E2,L2 - both events are all used up

Thus, only 1000 repetitions of about 50 ksi range would be counted, instead of the
known 1500 cycles. This error results solely from improper assembly of events.

If the loadings had each been described as separate events (such that E1,L1 E1;
E1,L2 E2; E2,L1 E3; and E2,L2 E4), then the following range counts would be
obtained:

d. 500 cycles of E2 to E3 - this uses up 500 cycles of E2 and E3


a. 0 cycles of E1 to E2 - E2 is all used up
f. 500 cycles of E3 to E4 - uses up 500 more cycles of E3, and 500 of E4
c. 500 cycles of E1 to E4 - uses up 500 more cycles of E4
b. 0 cycles of E1 to E3 - E3 is all used up
e. 0 cycles of E2 to E4 - E2 and E4 are both all used up

Cumulative fatigue damage in this case would properly be calculated for 1500
repetitions of about 50 ksi range.
Conversely, using separate events for each maximum and each
minimum stresscondition could sometimes become too conservative. In such
cases, carefully choose those loadings that should be counted together, and
group them into the same events. The following example illustrates how
some events can appropriately contain multiple extreme stress conditions:

Consider a load history made up of these two load cycles:

Load Cycle 1: 500 repetitions of Sx = +100.1 to +100.0 ksi


Load Cycle 2: 1000 repetitions of Sx = +50.1 to +50.0 ksi

It is readily apparent that the worst possible combination of these cycles would yield
500 repetitions having alternating stress intensity of about 25 ksi range.

Proceeding as in the above example, grouping these loadings into two events would
produce an accurate count of 500 repetitions of about 25 ksi range. Treating each
loading as a separate event would yield an over-conservative count of 1000 repetitions
of about 25 ksi range.

14.3.4. Activate the Fatigue Calculations

Now that you have locations, stresses, events, and material parameters all specified,
you can execute the fatigue calculations at a specified location. The location is specified
by either the location number or the node itself.

Command(s): FTCALC
GUI: Main Menu> General Postproc> Fatigue> Calculate Fatig

14.3.5. Review the Results

Fatigue calculation results are printed in the output. If you have routed your output
[/OUTPUT] to a file (for example Jobname.OUT), then you can review the results by
listing that file.

Command(s): *LIST
GUI: Utility Menu> List> Files> Other> Jobname.OUT

If you have input an S-N curve, output is in the form of a table of


alternating stress intensities (listed in decreasing order) with corresponding pairs of
event/loadings, as well as cycles used, cycles allowed, temperature, and partial
usage factor. Following that, the cumulative usage factoris shown for that particular
location. This information is repeated for all locations.
As has been just mentioned, FTCALC output shows the contributing pairs of events and
loadings for any given alternating stress-intensity range. This information can help you
isolate the transients (events/loadings) causing the most fatigue damage.

A convenient way to modify your events would be to write all stored fatigue data
onJobname.FATG. (This option could be executed either before or after FTCALC.)
Data are written to Jobname.FATG in terms of equivalent fatigue module commands.
You can modify your events by editing Jobname.FATG; then use
the /INPUT command to reread the modified fatigue commands.

Command(s): FTWRITE
GUI: Main Menu> General Postproc> Fatigue> Write Fatig Data

14.3.6. Other Approaches to Range Counting

Earlier, we discussed the "rain flow" range-counting method. This technique is useful
whenever the exact time-history of various loadings is not known. However, if in your
fatigue analysis the time-history is known, you can avoid the undue conservatism of this
procedure simply byrunning a separate fatigue analysis [FTCALC] for each sequential
event and then adding the usage factors manually.

14.3.7. Sample Input

A sample input listing for a fatigue evaluation is shown below:

! Enter POST1 and Resume the Database:


/POST1
RESUME,...
! Number of Locations, Events, and Loadings
FTSIZE,...
! Material Fatigue Properties:
FP,1,.... ! N values
FP,21,... ! S values
FP,41,... ! T values
FP,51,... ! Sm values
FP,61,... ! Elastic-plastic material parameters
! Locations, Stress Concentration Factors, and Location Titles
FL,...
! Store Stresses (3 Different Methods)
! Store Stresses Manually:
FS,...
! Retrieve Stresses from the Results File:
SET,...
FSNODE,...
! Store Stresses at a Cross-Section:
PPATH,...
SET,...
FSSECT,...
! Event Repetitions and Scale Factors
FE,...
! Activate the Fatigue Calculations
FTCALC,...
! Review the Results (List the output file)
FINISH

See the Command Reference for a discussion of


the FTSIZE, FP, FL, FS, FSNODE, PPATH,FSSECT, FE, and FTCALC commands.

Release 15.0 - SAS IP, Inc. All rights reserved.

You might also like