Tools › Structures › Loads and Dynamics › Fatigue Spectrum Generation › Method
Fatigue Spectrum Generation: Method
Open the Fatigue Spectrum Generation tool
Fatigue Spectrum Generation: From Exceedance Curves to a Flight-by-Flight Load Sequence
The problem
The loads an airframe sees in service are known statistically: flight recorders (the NACA VGH and V-G programs of the 1940s to 1960s, their successors on today's fleets) count how often the normal acceleration at the centre of gravity reaches or exceeds each level, by source (gusts, maneuvers), by flight condition (climb, en route, descent) and by altitude. A fatigue analysis by Miner's rule can work on those counts directly, but a crack-growth analysis, a full-scale fatigue test and any method that depends on load interaction need the loads in a sequence: the order sets the mean stress of each cycle, the ground-air-ground cycle between the ground and the highest load of each flight, and the retardation that a high load imposes on the growth under the small cycles that follow it. The standard load sequences of the 1970s, TWIST for transport wings (de Jonge, Schütz, Lowak and Schijve 1973) and FALSTAFF for fighters (1975), fixed the practice: an exceedance spectrum is stepped into a handful of levels, the occurrences of every level in a block of flights are fixed, and the occurrences are dealt to flights of random severity and applied in random order within each flight. The USAF Damage Tolerant Design Handbook (section 5.4.2) sets the same procedure out as the way to build the load sequence for a damage-tolerance analysis. This tool follows it.
Conventions and units
Loads are expressed at the point analysed as a stress: the 1-g flight stress S1g of each segment (the stress in steady level flight at that weight and speed) and the stress change per unit load-factor increment Sg, so that a load factor n gives S1g + (n − 1) Sg; for a wing lower skin whose stress is proportional to the load factor Sg = S1g, which is the default when the field is blank. Stresses go through the unit system (ksi or MPa); hours, speeds in knots, load-factor increments Δn, counts and the seed are plain numbers. A gust is a symmetric pair, peak S1g + Δn Sg then valley S1g − Δn Sg, as the atmosphere delivers up- and downdrafts alike and as TWIST applies them; a pull-up maneuver (Δn > 0) goes from S1g to the peak and back, a push-over (Δn < 0) from S1g down to the valley and back. The ground stress Sgnd is the 1-g stress with the airplane on its wheels (a compression on a wing lower skin), the taxi cycles are symmetric about it, and the landing impact is one excursion to the stress entered.
Exceedance curves
An exceedance curve N(x) is the number of times the load increment x is reached or exceeded per unit of exposure. The data behind the default curves are NASA Memorandum 1-17-59L (Engel and Copp 1959), whose Table I gives the gust accelerations of a four-engine transport on a northwestern United States to Alaska route in 0.1 g classes from 0.3 g, by climb (57.5 hours), en route (490.8 hours) and descent (124.6 hours) over 263 flights, and whose Table II(a) gives the operational maneuvers of the same 672.9 hours, positive and negative separately. Divided by the hours of each condition, the cumulative class counts are exceedances per 1,000 flight hours; the tool's default curves A, B, C and M are those numbers. VGH data count every excursion from the 1-g reference, up or down, so a gust curve counted that way gives one symmetric cycle per two counts ("positive and negative peaks combined"); a curve already reduced to cycles is applied count for count. Between breakpoints the curve is taken straight on a semi-logarithmic plot (log N linear in x), which is how gust and maneuver spectra are drawn and faired; above the last breakpoint there are no exceedances, and below the first the count is held, so no loads are invented beyond the data in either direction.
Per-mile curves and the TN 4332 model. Gust statistics are often given per mile of flight (the gust frequency depends on the distance flown through the atmosphere, not on the time); the tool converts them with the segment's speed and hours. The classic generalized gust distribution is that of NACA TN 4332 (Press and Steiner 1958): the overall number of gusts per statute mile exceeding a derived gust velocity Ude is G(Ude) = 20 P1 e−Ude/(2.2 k1) + 15 P2 e−Ude/(5.3 k2) (eq. 10), the first term for nonstorm turbulence and the second for storm turbulence, with P1 and P2 the proportions of flight distance in each (the report's table: 0.32 and 0.00025 below 2,000 ft, 0.08 and 0.0008 from 2,000 to 10,000 ft, 0.045 and 0.0004 to 20,000 ft, 0.06 and 0.00013 to 30,000 ft, 0.065 and 0.000045 to 40,000 ft, 0.023 and 0.00001 to 50,000 ft, 0.02 and 0 to 60,000 ft) and k1, k2 intensity factors relative to 6,000 ft read from its Figure 2 at the bracket midpoints (k1 = 1.20, 1.01, 0.92, 0.82, 0.70, 0.58, 0.42; k2 = 1.0 to 30,000 ft then 0.92, 0.84, 0.755). The same two-exponential form with altitude-dependent constants is the mission-analysis gust model of 14 CFR 25 Appendix G and MIL-A-8861. The load-factor increment follows from the gust-load formula, Δn = Ude ρ0 Ve a Kg/(2 W/S); the tool takes Δn per fps as an input (curve D) and the altitude of the segment. The report's counts are of both signs, 20 and 15 being the average numbers of gust peaks per mile; its nonstorm data carry a 20 % reduction for the flexibility amplification of the recorded c.g. accelerations, its storm data do not, and its P values are averages of transport operations with storm avoidance. It is a 1958 description of the atmosphere, adequate for a first spectrum and for comparing missions, not a substitute for a fleet's own recorder data.
Stepping the curve into levels
The curve cannot be applied as a continuum: a sequence needs discrete levels, and the Damage Tolerant Design Handbook shows (its Figure 5.4.5) that eight to ten positive levels reproduce the crack growth of a finer stepping while fewer change it. The occurrences of a level follow from differencing the exceedances (Table 5.4.1: level i carries ni − ni+1, the top level n1). The tool offers two steppings. With equal steps, bands of the chosen width run from the omission level to the clipping level; each band carries N(lo) − N(hi) occurrences applied at its mid-increment, and the exceedances of the clipping level itself are applied at that level (the clipped row). With the pasted points as levels, each breakpoint is a level carrying the exceedances between it and the next, which is the handbook's own table and reproduces its Example 5.4.1 (levels 4.9, 4.0, 3.25, 2.5 and 1.8 g exceeded 10, 1,400, 6,500, 30,000 and 100,000 times per 1,000 flights give 10, 1,390, 5,100, 23,500 and 70,000 occurrences). Two levels need choosing. The clipping level is the highest load applied: the handbook recommends the level exceeded about ten times in 1,000 flights, because a load applied once in the whole history is not representative of a fleet and, by retarding crack growth, is unconservative. The omission (truncation) level is the lowest load kept: it sets the length of the sequence and, within reason, has a small effect on crack growth; the handbook suggests the level exceeded 105 to 5 × 105 times per 1,000 flights, and MINITWIST (Lowak et al. 1979) showed that omitting the smallest TWIST level cut the sequence to a tenth with a measurable but modest increase in life. The omitted cycles are counted and reported, from the curve's first breakpoint down to the omission level; cycles below the first breakpoint are not in the data at all (the Memorandum's threshold is 0.3 g for gusts and 0.1 g for maneuvers).
Mission and block
A flight is the segments entered, in order, each with its hours and its own curves and 1-g stress: climb, cruise and descent differ in speed, altitude, weight and turbulence, and the recorder data are sorted that way. The occurrences per flight are the rates times the segment's exposure. A block of F flights is one period of the sequence; its occurrence table must be integers, and the tool rounds the expected cumulative exceedances from the top level down and differences them, so the block table follows the curve as closely as integers allow and a rare level is kept once when it is expected at least half a time per block. A longer block therefore keeps rarer loads: the default 100 flights keep the 0.8 g gust of the en-route and descent curves (expected 0.2 and 0.4 times) only in a 263-flight block, which is the Memorandum's own sample. TWIST uses 4,000 flights per block and ten flight types of graded severity; this tool uses one flight type and deals the occurrences to flights at random, which gives the flights a Poisson-like spread of severity about the mean.
The sequence
Each occurrence is assigned to a flight by a seeded pseudo-random generator, Park and Miller's minimal standard xn+1 = 16807 xn mod (231 − 1), chosen because it is defined in one line and gives the same sequence in any language for the same seed; the test script's independent Python implementation reproduces the tool's sequence point for point. Within a flight, the cycles of a segment are applied in random order (the usual choice for gusts) or in low-high-low order (ascending then descending, the programmed order that the handbook, citing Schijve, finds similar to random for gust loading). Each flight opens with half the taxi cycles about the ground stress (or the ground stress alone), runs through its segments, and closes with the landing impact and the other half of the taxi cycles. Points that are neither peaks nor valleys are removed, and the result is a list of reversals in stress, ten to a line, that the Spectrum Fatigue Life tool reads as a peak-valley history.
Checks: peak counts and the rainflow count
The exceedance curve is a count of peaks, so the generated block is checked by counting its peaks: for every segment the number of gust and pull-up peaks must equal the block table, and for a segment without maneuvers the peaks at or above each band's lower stress must equal the cumulative block exceedances of that band. They do, by construction, unless a segment's 1-g stress lies so far below the previous segment's that its small peaks are swallowed by a larger excursion. The block is then rainflow counted by ASTM E1049-85, section 5.4.4, as a repeating history (section 5.4.5: the block is rotated to start at its largest peak, so that every cycle closes as a full cycle). The rainflow count is not the applied-pair count, and the difference is the physics the sequence adds: within one segment the symmetric gust pairs about the 1-g stress are recovered exactly (the test script proves it level by level), but the largest excursion of every flight pairs with the lowest ground point into the ground-air-ground cycle, a pull-up peak may close on a gust valley, and cycles about the different 1-g stresses of the segments combine. The range-spectrum chart shows it: the rainflow curve matches the applied cycles at the small ranges and lies to the right at the large ones, where the ground-air-ground cycles are. A Miner's-rule life computed from the sequence is therefore shorter than one computed from the exceedance counts alone, and the difference is real.
Limits
The tool produces a sequence from counts; it does not supply the counts. The Memorandum's curves describe one 1950s piston transport on one route, with a 0.3 g gust threshold, and are the default because they are published and complete, not because they apply to another airplane; the TN 4332 model is a 1958 average atmosphere. Flexibility amplification of recorded c.g. accelerations, the weight change along the flight, the conversion from load factor to stress at points whose stress is not proportional to n (a fuselage frame, a landing gear fitting), measured taxi and landing spectra, flight types of different severity, and the sequence effects themselves (retardation, which needs a crack-growth model with load interaction) are all outside it. What it gives is a reproducible, documented sequence whose level-crossing content is exactly the input table, ready for the Spectrum Fatigue Life tool (Miner's rule with the MIL-HDBK-5J S/N equations) and the Crack Growth tool.
Reading the results
The mission table lists each segment's exposure, curves, 1-g stress and expected cycles per flight, then the flight duration and the omitted cycles. The level tables give, per segment and curve, the bands, the applied increment, the exceedances at the band boundaries, the occurrences per unit exposure, per flight and per block, the cumulative block count and the peak and valley stresses; Figure 1 overlays the stepped block levels on the curves. The sequence section reports the reversals, extremes, ground-air-ground count and mean range, and draws the first flights (Figure 2). The checks compare the sequence's peaks with the block table and list the largest rainflow cycles with Figure 3's range spectra. The two text boxes hold the sequence and the rainflow blocks for the downstream tools.