Feeds:
Posts
Comments

Archive for the ‘Fatigue’ Category

Aircraft Fatigue

Malaysia Airlines Flight 370

b777

The leading news story the last few days has been Malaysia Airlines Flight 370 which mysteriously disappeared on March 8, 2014, somewhere over the South China Sea or perhaps the Strait of Malacca. The aircraft was a Boeing 777-200ER.

The cause or causes of the disappearance and presumed crash are simply unknown at this time.

But fatigue failure is one possible cause. Note that the Federal Aviation Administration (FAA) had previously issued the following warning regarding potential fatigue cracking in Boeing 777 aircraft.

Airworthiness Directives; The Boeing Company Airplanes
Document Number: 2013-23456
Type: Proposed Rule
Date: 2013-09-26

Agency: Federal Aviation Administration, Department of Transportation
We propose to adopt a new airworthiness directive (AD) for certain The Boeing Company Model 777 airplanes. This proposed AD was prompted by a report of cracking in the fuselage skin underneath the satellite communication (SATCOM) antenna adapter. This proposed AD would require repetitive inspections of the visible fuselage skin and doubler if installed, for cracking, corrosion, and any indication of contact of a certain fastener to a bonding jumper, and repair if necessary. We are proposing this AD to detect and correct cracking and corrosion in the fuselage skin, which could lead to rapid decompression and loss of structural integrity of the airplane.

* * *

Pressurization Cycles

Aircraft fuselages undergo repetitive cycles of differential pressure with each flight. The difference between the cabin and the external ambient pressure is about 6 or 7 psi at an altitude of 36,000 feet.

Note that cabin pressure at high altitudes is maintained at about 75% of sea level pressure, which corresponds to the air pressure at 8000 ft. This is done by pumping air into the cabin. Note that there is some variation in these numbers depending on the aircraft model.

Pressurization cycles along with vibration, corrosion, and thermal cycling can cause fatigue cracks to form and propagate.

The following images show case histories of fatigue failures in aircraft.

* * *

de Havilland DH 106 Comet

boac1

boac2
The de Havilland DH 106 Comet was the first production commercial jetliner, beginning service in 1952.

Several catastrophic failures occurred over the next two years.

Investigators eventually determined via testing that aircraft’s square windows had a “stress concentration factor” which generated levels of stress two or three times greater than across the rest of the fuselage. The window corners where thus prone to fatigue crack initiation, propagation, and fracture, particularly at the rivet holes.

As a result, the Comet was extensively redesigned with oval windows, structural reinforcement and other changes.

* * *

Aloha Airlines Flight 243

aloha

Aloha Airlines Flight 243 between Hilo and Honolulu in Hawaii suffered extensive damage after an explosive decompression in flight, on April 28, 1988. The aircraft was a Boeing 737-297. It was able to land safely at Kahului Airport on Maui. There was one fatality — a flight attendant was swept overboard.

Fatigue cracks occurred due to disbanding of cold bonded lap joints and hot bonded tear joints in the fuselage panels. This caused the rivets to be over-stressed. A large number of small cracks in the fuselage may have joined to form a large crack. Corrosion was also a related factor.

* * *

Southwest Airlines Flight 812

SW_Yuma

Southwest Airlines Flight 812 suffered rapid depressurization at 34,400 ft near Yuma, Arizona, leading to an emergency landing at Yuma International Airport, on April 1, 2011.

Inspection of the 5 feet long tear revealed evidence of pre-existing fatigue along a lap joint.

The National Transportation Safety Board has concluded that “the probable cause of this accident was the improper installation of the fuselage crown skin panel at the S-4L lap joint during the manufacturing process, which resulted in multiple site damage fatigue cracking and eventual failure of the lower skin panel.”

* * *

Qantas Flight 32

aus_rr

Qantas Flight 32 suffered an uncontained engine failure on 4 November 2010 and made an emergency landing at Singapore Changi Airport. The aircraft was an Airbus A380 with Rolls-Royce Trent 900 engines.

The Australian Transport Safety Bureau concluded that “fatigue cracking” in a stub pipe within the No. 2 engine resulted in oil leakage followed by an oil fire in the engine. The fire led to the release of the Intermediate Pressure Turbine (IPT) disc.

Shrapnel from the exploding engine punctured part of the wing and damaged the fuel system causing leaks and a fuel tank fire, disabled one hydraulic system and the anti-lock brakes and caused No.1 and No.4 engines to go into a ‘degraded’ mode, damaged landing flaps and the controls for the outer left No.1 engine.

* * *

Landing Gear

landing_gear_fatigue

Landing gears are designed to absorb the loads arising from taxiing, take-off, and landing. Hard landing shock is a particular concern. Vibration is another concern. Fatigue cracks can form in the struts and trunnion arms as a results of these loads. Again, corrosion can be a related factor.

* * *

See also:

FAA FR Doc No: 2013-23456

Aircraft Acoustics & Hard Landings

* * *

- Tom Irvine

Read Full Post »

Fatigue Exponent Q & A

Question:

What is meant exactly by “fatigue exponent”. I generally input a value between 3 (for notched parts) and 6 (for (unnotched ones). Is it right?…I’ve found confusing and contrasting definitions about b and m exponent (among MIL-STD-810 G and various other documents)

Answer:

The fatigue exponent is the slope of the SN curve in log-log format. It is also the greatest unncertainty factor.

The slope can be affected by many factors including stress concentration, notches, mean stress, residual stress, surface roughness, temperature, corrosion, etc.

For electronic equipment, I typically use 6.4 per Steinberg’s text.

For bare aluminum, I would use 9 or 10.

A good approach would be to run three cases using lower, nominal, and upper estimates for the fatigue exponent.

Damping is another uncertainty factor. So you should probably also vary the Q value.

So now you will have permutations for both the fatigue exponent and Q.

Best wishes,
Tom Irvine

Read Full Post »

A number of methods have been derived for performing rainflow cycle counting for a response PSD. Note that they tend to be conservative.

The Dirlik method is an example of a semi-empirical method for cycle identification.

A Matlab script for performing this method is given at: Dirlik_rainflow.zip

* * *

The following script calculates the Dirlik fatigue cycles for a single-degree-of-freedom (SDOF) system subjected to a base input PSD: sdof_ran.zip

The natural frequency and damping value for the system are required inputs.

The immediate output of the Dirlik method is a “Cumulative Histogram of Range (peak-valley).”

This can readily be converted into individual cycles with their respective amplitudes, where: amplitude=(peak-valley)/2

* * *

The following script calculates the Dirlik fatigue damage spectrum for an array of degree-of-freedom (SDOF) systems subjected to a base input PSD: VRS.zip

The natural frequency is an independent variable. The damping value is required. The fatigue exponent from the S-N curve slope is also required.

* * *

Reference papers:

T. Irvine, Experimental Verification of the Dirlik Fatigue Cycle Method. Download

Halfpenny & Kim, Rainflow Cycle Counting and Acoustic Fatigue Analysis Techniques for Random Loading. Download

Halfpenny, A frequency domain approach for fatigue life estimation from Finite Element Analysis, nCode International Ltd., Sheffield UK. Download
* * *

See also:

Rainflow Fatigue Cycle Counting

Fatigue Damage Spectrum, Time Domain

- Tom Irvine

Read Full Post »

Consider a single-degree-of-freedom system subjected to base excitation where the input is an arbitrary time history.

The response of the system can be calculated via a digital recursive filtering relationship, which is the numerical engine embedded in the SRS calculation.   This is done for each natural frequency and amplification factor Q of interest.

Next, a rainflow cycle count can be performed for each time history response permutation.

Then a relative damage index can be calculated for each fatigue exponent b case of interest using a Miners-type summation.

The damage index can then be plotted as a function of natural frequency, with separate curves for each Q and b pairs.  This is a Fatigue Damage Spectrum (FDS).

The fatigue damage spectrum is useful for comparing the relative damage potential between two different base inputs, particularly for the case of a nonstationary input.

* * *

An FDS program in C/C++ is:

fds.cpp
fds.exe

Note that C/C++ is the optimum language to use for speed because the rainflow calculation requires deleting intermediate rows from the amplitude array.

* * *

An alternative would be to use a Matlab MEX script that calls a C/C++ program. A script set is posted at: Matlab MEX

* * *

The following presentation gives further information on Fatigue Damage Spectra:  SAVE_conference_2013_Irvine_fatigue

* * *

See also:

Rainflow Cycle Counting

Dirlik Rainflow Counting Method from Response PSD

Shock Response Spectrum

Sine Vibration Rainflow & Fatigue Damage

* * *

- Tom Irvine

Read Full Post »

I will be teaching two tutorial sessions at:

84th Shock & Vibration Symposium
November 3-7, 2013
Atlanta, GA

The sessions are:

Shock Response Spectra and Time History Synthesis
Rainflow Cycle Counting for Random Vibration Fatigue Analysis

You are invited to participate.

Further information is given at:

http://www.savecenter.org/

Thank you,
Tom Irvine

Read Full Post »

sdof_base_image

Consider a single-degree-of-freedom system subject to base excitation.

Assume a case where the base input is a sine tone which must be converted to an “equivalent” narrowband PSD.

The narrowband PSD must be greater than or equal to the sine tone in terms of peak response and fatigue damage.

A conversion technique is given in:  A Method for Converting a Sine Tone to a Narrowband PSD

A Matlab script which performs the conversion calculation is:  sine_to_narrowband.m

Here is a C/C++ version:
sine_to_narrowband.cpp
sine_to_narrowband.exe

* * *

A converse method is given in:  A Method for Converting a Random PSD to a Sine Tone

A Matlab script which performs the conversion calculation is: psd_to_sine.zip

* * *

See also:

Extending Steinberg’s Fatigue Method

Fatigue Damage Spectrum

- Tom Irvine

Read Full Post »

I am going to present:

Extending Steinberg’s Fatigue Analysis of Electronics Equipment to a Full Relative Displacement vs. Cycles Curve

at the Dynamic Environments Workshop in El Segundo, California, June 4-6, 2013.

I know that travel budgets are very tight, but I hope to meet a few of you at the conference.

See also: Extending Steinberg’s Fatigue Method

Thank you,
Tom Irvine

Read Full Post »

ecccccc

Here is a paper for…

Extending Steinberg’s Fatigue Analysis of Electronics Equipment Methodology to a Full Relative Displacement vs. Cycles Curve

electronic_rd_n.pdf

extending_Steinberg.pptx

This paper also shows in a very roundabout way that “fatigue damage equivalence” between sine and random vibration occurs when the sine amplitude (zero-to-peak) is approximately equal to the random vibration 2-sigma amplitude.

* * *

Here is a Matlab script for cumulative damage index calculation, to be used after rainflow cycle counting:  RD_N.m

This script is for identifying individual points along the RD-N curve:  RD_N_point.m

* * *

See also:

Rainflow Cycle Tutorial Paper

Rainflow Fatigue Cycle Counting

PSD Time History Synthesis

Steinberg’s Vibration Analysis for Electronic Equipment

* * *

- Tom Irvine

Contact Form:

Read Full Post »

This blog entry is a work-in-progress.

Fatigue analysis can be performed in the time domain using rainflow cycle counting.   This is an elegant, brute-force approach.  One advantage of the time domain approach is that it tends to highlight the occurrences of peaks above 3-sigma for the case of random vibration.

These higher peaks can also be accounted for in frequency domain methods, but the frequency domain approach requires a more thorough consideration of the Rayleigh distribution and other statistical theory.

Furthermore, the time domain method is better able to handle nonstationary and non-Gaussian time history inputs.

Here is a paper that gives a fatigue analysis example for a single-degree-of-freedom system subjected to a base input PSD using Rainflow cycle counting in the time domain: Miners_fatigue_rainflow.pdf

The method can readily be extended to the case of a multi-degree-of-freedom or a continuous system, as will be shown in future papers posted at this blog entry.

* * *

rainflow_bins.m is a Matlab script that performs rainflow cycle counting on a time history per ASTM E 1049-85 (2005).

A Matlab GUI version is included in:  Vibrationdata Matlab Signal Analysis
Package

A Matlab MEX version is given at: Matlab MEX Rainflow

* * *

See also:

Synthesize a Time History to satisfy a PSD

Rainflow Cycle Counting

Shock Response Spectrum

Python Rainflow Fatigue

Aircraft Fatigue

MMPDS-01

Fatigue Damage Spectrum

nCode Fatigue and Durability Explained

* * *

- Tom Irvine

Contact Form:

Read Full Post »

Endo & Matsuishi (1968) developed the Rainflow Counting method by relating stress reversal cycles to streams of rainwater flowing down a Pagoda.  This method is very useful for fatigue analysis.

The rainflow method allows the application of Miner’s rule in order to assess the fatigue life of a structure subject to complex loading.

The resulting tabular data is sometimes referred to as a spectra.

rainflow bins.m is a Matlab script that performs rainflow cycle counting on a time history per ASTM E 1049-85 (2005). It’s supporting function is: progressbar.m

The specific method is ASTM E 1049-85, section 5.4.4, Rainflow Counting. The results of this method for an example are shown in Figure 6 of the ASTM document.

A Fortran version is:  RAINFLOW.F

A C/C++ version is:
rainflow.cpp
rainflow.exe

* * *

These scripts arbit_rainflow.zip calculate the response of a single-degree-of-freedom system to an arbitrary base input time history.

The scripts also have an option for rainflow cycle counting.

arbit_rainflow.m is the main script.

The remaining scripts are supporting functions.

* * *

Here is a script for calculating a damage index from the rainflow results. It is meant for relative comparisons only. fatigue_damage_sum.m

* * *

See also:

Miner’s Cumulative Fatigue via Rainflow Cycle Counting

Rainflow Counting Tutorial

Fatigue Damage Spectrum

Dirlik Method for PSDs

Python Rainflow Page

Matlab Mex Example

Enveloping Nonstationary Random Vibration Data

Sine Vibration Rainflow & Fatigue Damage

* * *

- Tom Irvine
Join me at:  LinkedIn

Contact Form:

Read Full Post »

Matlab MEX

Matlab is a great programming language and environment because of its ease of use, great visualization, and rapid prototyping abilities.

Matlab has a feature called MEX, Matlab Executables.   See:  Matlab MEX Introduction

MEX files allow Matlab scripts to call user-supplied functions written in C/C++ and Fortran.

* * *

The first step is to install a supported compiler.

See:

Matlab R2011a Compilers

Matlab R2012a Compilers

* * *

Matlab running on Windows 7 can use:

Microsoft Platform SDK

Microsoft Visual C++ 2010

Note that the following update may be required for Windows 7 64-bit systems:

Microsoft Visual C++ 2010 Service Pack 1 Compiler Update for the Windows SDK 7.1

* * *

Next, go to the Matlab Command Window.

Type:

>>mex -setup

The C/C++ source code is compiled with Matlab as:

>>mex filename.cpp

* * *

A good MEX tutorial is given at:  Shawn Lankton Online

A useful example is given at:  University of Cambridge

* * *

Here is a sample Matlab script and the C/C++ function which it calls:

rainflow_main.m

rainflow_mex.cpp

Here are the two commands for running the program set in Matlab:

>>mex rainflow_mex.cpp

>>rainflow_main

The program set performs rainflow cycle counting on a time history per  ASTM E 1049-85 (2005).   Rainflow counting is used for fatigue analysis.

* * *

Here is set of scripts for a fatigue damage spectrum via rainflow cycle counting: fds_main.zip

Here are the two commands for running the program set in Matlab:

>>mex rainflow_mex.cpp

>>fds_main

* * *

See also:  Python Rainflow Page

* * *

- Tom Irvine

Read Full Post »

Aerospace Conference

The 2012 Spacecraft and Launch Vehicle Dynamic Environments Workshop will be held in El Segundo, California, June 19-21.

The conference information is give at: Workshop Link

I will present a paper: An Alternate Damage Potential Method for Enveloping Nonstationary Random vibration

I hope to see some of you there!

- Tom Irvine

Read Full Post »

Older Posts »

Follow

Get every new post delivered to your Inbox.

Join 172 other followers

%d bloggers like this: