Wind, Water and Failure

How Bridges Work

Chapter 9 ยท Wind, Water and Failure

Almost every famous bridge failure has the same shape: the loads the engineers checked were fine, and the one that destroyed the bridge was not on the list. The first Tay Bridge fell in a gale, and its inquiry found it badly designed, badly constructed and badly maintained. The Tacoma Narrows bridge twisted itself apart in a wind that was not a storm. Rivers carry away the ground that foundations stand on. And cables corrode out of sight. This chapter takes the four in turn, with a few small simulations that show why they are dangerous, and ends with what each failure added to the engineer's checklist.

What was run, and what to trust
Every Python snippet in this chapter and in the three exercise solutions was executed, and the output shown in the comments is what Python printed. Facts about the bridges come from the sources named. The models are deliberately simple illustrations with assumed numbers (damping, soil strength, wire strength), so they show how the effects work, not what happened at any particular bridge.

Tacoma Narrows, 1940

FactWhat the sources say
Datesopened 1 July 1940; collapsed 7 November 1940
Main span2,800 ft (about 853 m)
Width"just 39 feet (12 m) wide", two lanes
Deck stiffeningMoisseiff proposed 8 ft (2.4 m) deep plate girders instead of the 25 ft (7.6 m) deep trusses the state had proposed
Wind at collapseabout 40 mph (64 km/h); flutter occurred for any sustained wind above about 35 mph (56 km/h)
Cause"moderate winds produced aeroelastic flutter that was self-exciting and unbounded", a twisting mode in which the two halves of the deck twisted in opposite directions
Casualtiesno human deaths are stated; a dog, Tubby, died and people were injured
Afterwardsa new bridge opened in 1950 using the original towers' pedestals and cable anchorages; the page says the collapse boosted research into bridge aerodynamics, which has influenced the designs of all later long-span bridges

(Source: the Wikipedia article on the 1940 Tacoma Narrows Bridge. A subagent read the first 39,400 of 95,062 characters verbatim, and these facts are from that part. The article's own introduction says construction began in September 1938 while its infobox says 23 November 1938, so I give no start date. The footage of the collapse, shot by two cameramen and added to the US National Film Registry in 1998, is often shown about 50% too fast, because of a frame-rate conversion error, which makes the motion look more violent than it was.)

Look at the shape. The deck was 39 ft wide and only 8 ft deep over a span of 2,800 ft, a slender strip, much more flexible than the 25 ft trusses first proposed. The code gives the proportions:

span, width = 2800, 39 # ft: Tacoma Narrows main span and deck width for name, depth in (("8 ft plate girders", 8), ("25 ft trusses", 25)): print(name, "depth/span = 1/%d" % round(span / depth), " width/span = 1/%d" % round(span / width)) # 8 ft plate girders depth/span = 1/350 width/span = 1/72 # 25 ft trusses depth/span = 1/112 width/span = 1/72

The built deck had a depth of 1/350 of the span, against 1/112 for the trusses. A shallow deck is a flexible deck (the stiffness of a beam depends on the cube of its depth, How Bridges Work 2), and a narrow one twists easily. Both properties made the bridge responsive to the wind.

Resonance or Flutter?

Many physics textbooks use the Tacoma Narrows collapse to illustrate resonance: a regular push at just the right rhythm makes a swing go higher and higher. The Wikipedia article says the event "is presented as an example of elementary forced mechanical resonance, but it was more complicated in reality". The cause was aeroelastic flutter, and the difference matters:

ResonanceFlutter
The pushan outside force with its own rhythmthe wind's force depends on the structure's own motion
Growthlevels off, limited by dampingkeeps growing if the wind feeds in more energy than damping removes
Needsthe right frequencya steady wind above a critical speed

A small simulation shows the difference. The structure is an oscillator with a natural frequency of 0.2 Hz and a damping ratio of 1% (both assumed). First it is pushed by a rhythmic force at its own frequency (resonance). Then the push is removed and the wind instead supplies "negative damping", an assumed energy input that is bigger than the structure's own damping, so that the net damping is below zero. The code steps through time and reports the biggest swing in each 50 s window:

import math def run(zeta, omega, a, force, omega_f, t_end, dt=0.01): """x'' + (2 zeta omega - a) x' + omega^2 x = force cos(omega_f t), by RK4. a is the 'negative damping' fed in by the wind. Returns (time, x) samples.""" c = 2 * zeta * omega - a def f(t, x, v): return v, force * math.cos(omega_f * t) - c * v - omega**2 * x t, x, v, out = 0.0, 0.0, 0.001, [] while t < t_end: k1x, k1v = f(t, x, v) k2x, k2v = f(t + dt/2, x + dt/2*k1x, v + dt/2*k1v) k3x, k3v = f(t + dt/2, x + dt/2*k2x, v + dt/2*k2v) k4x, k4v = f(t + dt, x + dt*k3x, v + dt*k3v) x += dt/6 * (k1x + 2*k2x + 2*k3x + k4x) v += dt/6 * (k1v + 2*k2v + 2*k3v + k4v) t += dt out.append((t, x)) return out def peak(samples, t0, t1): return max(abs(x) for t, x in samples if t0 <= t < t1) omega, zeta = 2 * math.pi * 0.2, 0.01 forced = run(zeta, omega, 0.0, 0.1, omega, 400) # resonance: periodic push print([round(peak(forced, t, t + 50), 2) for t in (0, 100, 200, 300)]) # [1.45, 2.68, 3.03, 3.13] print(round(0.1 / (2 * zeta * omega**2), 2)) # theory: F / (2 zeta omega^2) # 3.17 flutter = run(zeta, omega, 0.06, 0.0, omega, 400) # wind feeds energy in print([round(peak(flutter, t, t + 50), 3) for t in (0, 100, 200, 300)]) # [0.002, 0.011, 0.061, 0.348] calm = run(zeta, omega, 0.0, 0.0, omega, 400) # same, with no wind effect print([round(peak(calm, t, t + 50), 4) for t in (0, 100, 200, 300)]) # [0.0008, 0.0002, 0.0001, 0.0]

Read the four lines. Resonance grows fast at first but flattens out: the swing approaches 3.13 m, close to the theoretical limit of 3.17 m, because the structure's damping removes energy as fast as the push supplies it. Flutter starts from a tiny disturbance of 0.002 m and grows by a factor of about 5.7 every 100 s (it doubles every 40 s or so), reaching 0.348 m after 300 s and still accelerating: nothing in the model limits it, as the article's phrase "self-exciting and unbounded" says. The last line shows the same bridge without the wind effect: any disturbance simply dies away. The model is linear and ignores the limits that real structures set, so it is an illustration of the mechanism, not of Tacoma's actual motion. Exercise 1 explores how a critical wind speed arises.

Water: Scour

A river bed is not fixed. Scour is the removal of sand and gravel from around the foundations of piers and abutments by fast-moving water. The Wikipedia article calls it one of the three main causes of bridge failure (the others being collision and overloading), and gives these estimates: 60% of all bridge failures result from scour and other hydraulic causes (an estimate from a 1992 conference paper), and in the US 46 of 86 major bridge failures between 1961 and 1976 resulted from scour near piers. Scour can be at its worst during a flood, which is also when it is hardest to see. The great flood of 1829 that took the parapets off the Carrbridge packhorse bridge in How Bridges Work 3 is the kind of event in which a river does this kind of work.

The effect on a foundation is easy to model. A friction pile stands on the grip of the soil along its length, and scour removes the upper part of that length, so its capacity falls in proportion. The code assumes a 1.0 m diameter pile, 12 m long, a skin friction of 60 kPa and a working load of 1,000 kN (all illustrative):

import math def pile_factor(length_m, scour_m, load_kn, dia_m=1.0, skin_kpa=60): """Safety factor of a friction pile after the river bed drops by scour_m.""" embedded = max(0.0, length_m - scour_m) capacity = skin_kpa * math.pi * dia_m * embedded # kN return capacity / load_kn for scour in (0, 2, 4, 6, 8): print(scour, round(pile_factor(12, scour, 1000), 2)) # 0 2.26 # 2 1.88 # 4 1.51 # 6 1.13 # 8 0.75 # scour depth at which the factor falls to 1.5 and to 1.0 for target in (1.5, 1.0): d = 12 - target * 1000 / (60 * math.pi * 1.0) print(target, round(d, 2)) # 1.5 4.04 # 1.0 6.69

The safety factor falls from a healthy 2.26 to 1.51 after 4 m of scour and to 1.13 after 6 m, and the pile fails at 6.69 m, more than half its length. Nothing visible happens above the water until it is too late. The article lists many countermeasures. Riprap (large stones placed around the foundation) is the most common, though the article says such countermeasures are temporary because the stones can move or be washed away in a flood, and that the US Federal Highway Administration recommends designing pier foundations that resist scour without relying on riprap at all. The practical lessons are to found piers deep, to inspect the river bed after floods, and to watch the depth under each pier.

Cables: Corrosion You Cannot See

The Forth Road Bridge's main cables (How Bridges Work 7) are made of 11,618 steel wires each, wrapped and hidden. The article on the bridge gives this sequence: an inspection programme began in 2003 (costing ยฃ1.2 million) after corrosion had been found in older US suspension bridges of similar design; in 2005, potentially serious structural issues were discovered; and when the study was completed two years later it reported an 8% to 10% loss of strength. The worst-case projection was that traffic restrictions might be needed by 2014 and full closure by 2020. The response was to keep the air among the strands below 40% humidity with a dehumidification system: work by Faber Maunsell began in 2006, took two and a half years and cost ยฃ7.8 million, and some corroded strands were spliced. Acoustic monitoring for wire breaks was commissioned in August 2006.

How serious is a loss of 8% to 10%? That depends on the margin the cables started with. Using the 581 MPa wire stress of How Bridges Work 7 and an assumed breaking strength of 1,500 MPa:

WIRES = 11618 WORKING_MPA = 581 # wire stress from How Bridges Work 7 BREAK_MPA = 1500 # assumed breaking strength of the wire def factor(loss): """Safety factor when a fraction `loss` of the strength is gone.""" return (1 - loss) * BREAK_MPA / WORKING_MPA for loss in (0, 0.05, 0.08, 0.10, 0.15, 0.20, 0.30): print(loss, round(factor(loss), 2)) # 0 2.58 # 0.05 2.45 # 0.08 2.38 # 0.1 2.32 # 0.15 2.19 # 0.2 2.07 # 0.3 1.81 for target in (2.0, 1.5): lost = 1 - target * WORKING_MPA / BREAK_MPA print(target, round(lost * 100, 1), round(lost * WIRES)) # 2.0 22.5 2618 # 1.5 41.9 4868

With these assumptions the cables begin with a factor of 2.58 and still have 2.32 after a 10% loss, so there was no immediate danger, but the loss would grow if nothing were done. The factor falls to 2.0 at a loss of 22.5% (about 2,618 wires' worth) and to 1.5 at 41.9%. The worst case did not arrive. Instead the problem was found by inspection, stopped by dehumidification and watched by acoustic monitoring. It is a good example of the kind of failure that does not happen because of regular, expensive, unglamorous work. (The relative loss figures are the article's. The 1,500 MPa strength and the resulting factors are my assumptions.)

What Each Failure Added to the Checklist

EventWhat was missedWhat the checklist gained
Tay Bridge, 1879wind pressure; weak cast-iron lugs; maintenance (the inquiry: "badly designed, badly constructed and badly maintained")higher wind pressures (the Board of Trade later required 56 lb/sq ft); more care with brittle details
Tacoma Narrows, 1940aerodynamic stability of a slender deckwind-tunnel testing and aerodynamic shaping of decks (the article says the collapse boosted bridge aerodynamics research)
Scour failuresthe river bed moving beneath the foundationsdeep foundations, flood inspections, scour countermeasures
Forth Road Bridge cables, 2005corrosion hidden inside the cableinspection of hidden parts, dehumidification, acoustic monitoring

The pattern is that each disaster widened the list of things engineers must check: wind, then wind dynamics, then water, then time. Several of these cases (the Tay Bridge, Tacoma Narrows, the Forth Road Bridge cables) appeared earlier in this course in other roles, and they belong together here as one story: a bridge is safe only against the loads somebody thought of.

Common mistakes
Calling every wind failure "resonance" (flutter is a different mechanism); treating a safety factor as protection against effects that were never in the calculation (it covers uncertainty in the loads you know, not loads you omitted); inspecting only what can be seen (cables, foundations and bearings hide their damage); and trusting a single dramatic number (the Tacoma film is shown too fast; the percentage loss in the cables needs its starting margin to mean anything).

Where This Leads

That is every tool of the course. The final chapter puts them to work: choose a bridge type for a site, estimate the loads with a small program, plan the inspection and maintenance that keep it safe, and compare the three Forth crossings side by side.

Exercise 1

A deck mode has a frequency of 0.2 Hz. (a) Under a steady periodic push of 0.1 m/sยฒ at exactly that frequency, the peak swing is F / (2ζω²). Find it for damping ratios of 0.005, 0.01 and 0.02. (b) Suppose the wind adds negative damping a = kU, with k chosen so that a equals the structure's own damping 2ζω at U = 15.6 m/s (35 mph) for ζ = 0.01. For wind speeds of 12, 15.6, 17.9 and 22 m/s, find the net growth rate a/2 − ζω and the doubling time when it is positive. Which of the two effects levels off, and which does not?

๐Ÿ“„ View solution
Exercise 2

A friction pile of diameter 1.0 m carries 1000 kN, with a soil skin friction of 60 kPa over its embedded length. For pile lengths of 10, 12, 15 and 18 m find the safety factor with no scour, the scour depth at which it falls to 1.5, and the scour depth at which it falls to 1.0. Then repeat the last two for 12 m piles carrying 1500 kN. What does the result say about the effect of load on the scour a foundation can stand?

๐Ÿ“„ View solution
Exercise 3

A cable of 11,618 wires has a breaking strength of 1,500 MPa (assumed). Its working stress is 581 MPa. Print the factor of safety for strength losses of 0, 5, 10, 20, 30 and 40%. Find the loss at which the factor falls to 2.0 and to 1.5, and the equivalent number of wires. Then repeat for working stresses of 450 and 700 MPa: which design has the most margin, and why does this matter when you are told "8% to 10% of the strength has gone"?

๐Ÿ“„ View solution

Quick Reference

  • Tacoma Narrows (1940): opened 1 July, collapsed 7 November; a 39 ft wide deck on a 2,800 ft span; aeroelastic flutter, self-exciting and unbounded
  • Resonance: an outside rhythm; limited by damping. Flutter: the wind's force depends on the motion; unbounded above a critical speed
  • Scour: water removes the soil round foundations; estimated 60% of failures are scour and other hydraulic causes
  • Riprap: the most common countermeasure, but temporary; better to found piers to resist scour
  • Forth Road Bridge cables: 8% to 10% strength loss reported; dehumidification keeps air below 40% humidity
  • Pattern: every failure adds a load or an effect to the engineer's checklist
Coming next
How Bridges Work 10 is the capstone: choosing a bridge type for a site, estimating loads with a small program, planning inspection and maintenance, and comparing the three Forth crossings.