Capstone: Design and Test a Bridge

How Bridges Work

Chapter 10 ยท Capstone: Design and Test a Bridge

Nine chapters have given you the pieces: loads and forces, beams, arches, trusses, materials, cantilevers, suspension, cable stays, and what goes wrong. This chapter puts them together in the order a designer would meet them: a site, a type, the loads, the sizes, the checks against failure, the maintenance, and finally a look back at the three Forth crossings with the tools you now have. Everything here is built from functions you have already seen, and every number in a model is labelled as an assumption or as a figure from a named source.

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. These are teaching models, not design methods: they show how the pieces fit, and a real design needs a design code, an experienced engineer and checks well beyond these. Figures about the three Forth bridges come from the sources named in How Bridges Work 6 to 8.

Step 1: Choose a Type

The first question is the span: how wide is the gap? Each structure type in this course has a range where it makes sense. The evidence points are all in earlier chapters: a stone slab spans a few metres (How Bridges Work 3, about 5.6 m in the example); a plain steel beam can support only itself up to about 43 m (How Bridges Work 2, and far less with traffic); the Forth Bridge's cantilevers and girder span 521 m (How Bridges Work 6); the Queensferry Crossing's longest span is 650 m (How Bridges Work 8); and the Forth Road Bridge's suspension span is 1,006 m (How Bridges Work 7). A small function turns these into a rule of thumb:

def suggest(span_m): """A teaching rule of thumb from this course's examples, not a design code.""" if span_m <= 10: return "slab or simple beam" if span_m <= 40: return "steel or concrete girder" if span_m <= 200: return "truss, arch or deep girder" if span_m <= 700: return "cable-stayed, cantilever or truss" return "suspension (or a very long cable-stayed span)" for span in (6, 25, 120, 300, 520, 650, 1006): print(span, suggest(span)) # 6 slab or simple beam # 25 steel or concrete girder # 120 truss, arch or deep girder # 300 cable-stayed, cantilever or truss # 520 cable-stayed, cantilever or truss # 650 cable-stayed, cantilever or truss # 1006 suspension (or a very long cable-stayed span)

The thresholds are my own, drawn from the course's examples (the 700 m limit, for example, sits just above the 650 m of the Queensferry Crossing, and the real overlaps are wide). Span is only the first filter. The others come from the site:

Site questionWhy it mattersWhere the course covered it
What is the ground like?an arch or a suspension bridge pushes sideways and needs rock or a huge anchorage; a beam only pushes downHow Bridges Work 3 and 7
How much clearance is needed?ships need height and an open channel; piers in the water cause scourHow Bridges Work 9
How exposed is it to wind?a slender deck can flutter; a stiff truss or box resistsHow Bridges Work 9
How will it be built?balanced cantilever needs no falsework in the water; an arch needs centringHow Bridges Work 3, 6 and 8
How will it be maintained?hidden cables and foundations need a plan for inspectionHow Bridges Work 5 and 9

Step 2: Estimate the Loads

How Bridges Work 1's loads (dead, live and environmental) become numbers. Take a two-lane road deck 12 m wide (assumed) with a 0.25 m concrete slab (How Bridges Work 1's example), surfacing and barriers of 12 kN per metre of length (assumed), and the round live load of 5 kN per square metre used in How Bridges Work 1:

width = 12 # m, a two-lane road with edge barriers (assumed) slab = 0.25 * width * 24 # kN/m: 0.25 m of concrete at 24 kN/m3 surfacing = 12 # kN/m: surfacing and barriers (assumed) dead = slab + surfacing live = 5 * width # kN/m: 5 kN on every m2, as in How Bridges Work 1 print(dead, live, dead + live) # 84.0 60 144.0

The deck load is 144 kN per metre of bridge: 84 kN/m dead and 60 kN/m live. Wind, temperature and water (the environmental loads) are not in this figure, and for a long, slender bridge they can control the design (How Bridges Work 8 and 9). The 144 kN/m is the number the rest of this chapter's models use.

Step 3: Size the Main Elements

For a short span, the main elements are girders. Here is the beam calculation from How Bridges Work 2 applied to a 25 m road span, carried by six equal steel I-girders, trying deeper sections one at a time until one passes both the stress limit (165 MPa) and a sag limit of span/360, with each girder's own weight added:

import math E, ALLOW = 200e3, 165 # MPa RHO, G = 7850, 9.81 def i_section(bf, tf, tw, depth): inner = depth - 2 * tf return (bf * depth**3 - (bf - tw) * inner**3) / 12 def area_i(bf, tf, tw, depth): return 2 * bf * tf + tw * (depth - 2 * tf) SECTIONS = [(250, 16, 10, 600), (300, 20, 12, 800), (350, 22, 14, 1000), (400, 25, 16, 1200), (450, 28, 18, 1400)] def check(span_m, w_load, girders): """Try each section in turn on one of `girders` equal girders; return the first that passes.""" for bf, tf, tw, d in SECTIONS: w = w_load / girders + RHO * G * area_i(bf, tf, tw, d) * 1e-6 / 1000 # one girder i = i_section(bf, tf, tw, d) m = w * span_m**2 / 8 stress = m * 1e6 * (d / 2) / i sag = 5 * w * (span_m * 1000) ** 4 / (384 * E * i) limit = span_m * 1000 / 360 ok = stress <= ALLOW and sag <= limit print(d, round(w, 1), round(stress, 1), round(sag, 1), round(limit, 1), ok) if ok: return d return None print(check(25, 144, 6)) # 600 25.1 703.2 763.1 69.4 False # 800 25.6 353.6 287.8 69.4 False # 1000 26.2 217.8 141.8 69.4 False # 1200 27.0 141.5 76.8 69.4 False # 1400 27.8 98.1 45.6 69.4 True # 1400

Each line is the depth (mm), the load on one girder including its own weight (kN/m), the stress (MPa), the sag (mm), the sag limit (mm) and the verdict. Look at the 1,200 mm girder: its stress (141.5 MPa) is within the limit, but it sags 76.8 mm against 69.4 mm allowed, so it fails. Stiffness decided; the 1,400 mm girder passes with a stress of only 98.1 MPa. This is the lesson of How Bridges Work 2 again: a beam is often governed by how much it sags, not by whether it breaks.

For long spans the main element changes. The code below compares the steel in the main load-carrying system of a truss and of a suspension cable, per metre of bridge, with both carrying the 144 kN/m deck load plus their own weight. Each repeats its calculation until its own weight settles, or gives up if the weight keeps spiralling. The truss has a constant depth of span/10 (assumed) and the stress limit used in How Bridges Work 2 (165 MPa); the cable has a sag of span/10 (assumed) and the 600 MPa used in How Bridges Work 7. A factor of 1.5 on the truss chords stands for bracing and joints:

W_DECK = 144 # kN/m: deck, surfacing and traffic def truss_steel(span, depth_ratio=10, sigma_mpa=165, extra=1.5): """Steel (t per metre) for a truss of depth span/depth_ratio, found by repeating the calculation until its own weight stops changing. None if it never settles.""" w = W_DECK for _ in range(500): moment = w * span**2 / 8 # kN m force = moment / (span / depth_ratio) # chord force, kN area = extra * 2 * force / (sigma_mpa * 1e3) # m2 (kN / kPa), both chords plus bracing w_new = W_DECK + area * RHO * G / 1000 if abs(w_new - w) < 1e-6: return area * RHO / 1000 w = w_new if w > 1e6: return None return None def cable_steel(span, sag_ratio=10, sigma_mpa=600): """Main-cable steel (t per metre), same method. Towers and anchorages are not counted.""" w = W_DECK for _ in range(500): h = w * span**2 / (8 * span / sag_ratio) v = w * span / 2 area = math.hypot(h, v) / (sigma_mpa * 1e3) w_new = W_DECK + area * RHO * G / 1000 if abs(w_new - w) < 1e-6: return area * RHO / 1000 w = w_new if w > 1e6: return None return None for span in (50, 100, 200, 300, 500, 800, 1200): t = truss_steel(span) c = cable_steel(span) print(span, None if t is None else round(t, 2), None if c is None else round(c, 2)) # 50 1.41 0.13 # 100 3.11 0.26 # 200 7.91 0.53 # 300 16.23 0.8 # 500 102.84 1.39 # 800 None 2.35 # 1200 None 3.84

The columns are the span (m), the truss steel (tonnes per metre) and the cable steel (tonnes per metre). Read the trend. Going from 50 m to 300 m (six times the span), the cable's steel rises about six times (0.13 to 0.8), roughly in step with the span, but the truss's rises more than eleven times (1.41 to 16.23), and at 500 m it has ballooned to 102.84 and by 800 m there is no solution at all: the truss's own weight needs more steel than it can carry. This is the plain beam's span limit of How Bridges Work 2, pushed out by depth but not removed. Be careful with the comparison. The cable figure counts only the main cables. The towers, anchorages, hangers and the deck they carry are all missing, and the truss figure includes the whole load-carrying system. A constant-depth truss is also pessimistic: the Forth Bridge reaches 521 m by tapering its depth to follow the moment (How Bridges Work 6). What the numbers do show is how the two systems scale: a long span needs a system where load travels in tension.

Step 4: Test Against What Can Go Wrong

CheckQuestionChapter
Bending and sheardoes every member carry its moment and shear within the stress limit?2
Sagis the deck stiff enough (span/360 or whatever the code sets)?2, 6
Bucklingcan any compression member bow out sideways?4
Abutments and anchoragescan the ground take the thrust or the cable pull without sliding or tipping?3, 7
Fatiguewill repeated traffic cycles crack a detail within the design life?5, 9
Wind and flutteris there a wind speed at which the deck feeds itself energy?8, 9
Scourwhat is left of the foundation after a flood lowers the river bed?9
Corrosionwhat is the margin if some strength is lost, and can you inspect it?5, 9

Step 5: Plan Inspection and Maintenance

A bridge that is never inspected is a bridge waiting for a surprise. A maintenance plan lists each element, how often it is inspected or renewed, and what each event costs. The model plan below uses illustrative intervals and costs (the 1,200 thousand pound figure for a cable interior inspection echoes the ยฃ1.2 million quoted for the Forth Road Bridge's 2003 inspection programme in How Bridges Work 9, but the other figures are invented for the example):

# element: (inspection interval in years, cost of each inspection in ยฃ thousand), illustrative PLAN = { "bearings and expansion joints": (2, 15), "coating condition survey": (5, 40), "coating renewal": (25, 3000), "cable interior inspection": (10, 1200), "scour survey of piers": (1, 20), "fatigue-prone details": (6, 100), } def schedule(years, plan): totals = {} for name, (every, cost) in plan.items(): count = years // every totals[name] = (count, count * cost) return totals result = schedule(50, PLAN) for name, (count, cost) in result.items(): print(f"{name:32} {count:3} {cost:6}") print(sum(c for _, c in result.values())) # bearings and expansion joints 25 375 # coating condition survey 10 400 # coating renewal 2 6000 # cable interior inspection 5 6000 # scour survey of piers 50 1000 # fatigue-prone details 8 800 # 14575

Over 50 years the plan costs 14,575 thousand pounds in this model, and two items make up 82%: renewing the coating twice and inspecting the cable interior five times. Cheap, frequent checks (the yearly scour survey at 20 thousand) add up to far less than a single big job, but they are the ones that find a problem early. Real bridge owners balance both. How Bridges Work 5 gave the Forth Bridge as the example: a coating designed to last about 25 years, a ten-year refurbishment that cost ยฃ130 million and finished in December 2011.

Step 6: The Three Forth Crossings, Side by Side

With the tools you now have, the three bridges that run through this course make a complete case study. The figures below are those from How Bridges Work 6 to 8, from the sources named there. The last column of the code gives the years since the 1890 Forth Bridge opened:

# (name, opened, type, longest span m, total length m, tower height m) from How Bridges Work 6 to 8 BRIDGES = [ ("Forth Bridge", 1890, "cantilever", 521, 2467, 110), ("Forth Road Bridge", 1964, "suspension", 1006, 2512, 156), ("Queensferry Crossing", 2017, "cable-stayed", 650, 2700, 207), ] base = BRIDGES[0] for name, year, kind, span, length, tower in BRIDGES: print(f"{name:21} {kind:13} {span:5} {span / base[3]:.2f} {length:5} {tower:4} {year - base[1]:4}") # Forth Bridge cantilever 521 1.00 2467 110 0 # Forth Road Bridge suspension 1006 1.93 2512 156 74 # Queensferry Crossing cable-stayed 650 1.25 2700 207 127

The columns are the name, the type, the longest span (m), the span relative to the Forth Bridge, the total length (m), the tower height (m) and the years after 1890. The suspension bridge's main span is 1.93 times the cantilever's; the cable-stayed bridge's 650 m is 1.25 times. (The tower heights are measured to different references in the sources: above high water for the Forth Bridge, above mean water level for the Forth Road Bridge, and a plain height for the Queensferry Crossing, so compare them only loosely.)

Forth Bridge (1890)Forth Road Bridge (1964)Queensferry Crossing (2017)
Load pathdeep steel arms balanced over three towers; tension on top, compression belowdeck hangs from a draped main cable, which runs to towers and anchoragesstraight stays from three towers to the deck, which is in compression
Material storythe first major steel structure in Britain; painted against corrosion; coating renewed to a 25-year design in 2011high-tensile steel wire cables of 11,618 wires eachdeck segments built in China and Spain; stays crossing at midspan
What went wrong or nearly didthe coating's never-ending job; Bouch's earlier suspension design was abandoned after the Tay Bridge collapsecable corrosion found in 2005; 8% to 10% strength loss reported25 days lost to wind in 2016; ice falling from towers closed it in 2020
Lessondepth where the moment is largesttension is the efficient way to cross a long gap, but hidden steel must be inspectedthe wind and the weather shape the design, in the building and in use
Common mistakes
Choosing a type from the span alone (ground, wind, clearance and maintenance matter just as much); trusting a model's trend as if it were a design (the truss-against-cable table leaves out towers, anchorages and the deck); checking strength but not stiffness (the 1,200 mm girder failed on sag); and designing without a maintenance plan (the cheapest bridge to build is not always the cheapest to own).
Exercise 1

Using truss_steel and cable_steel from this chapter, find (a) the longest span, in steps of 10 m, for which the truss calculation still settles on an answer, (b) the shortest span, in steps of 10 m, at which the truss needs more than 20 times the steel of the cable, and (c) the truss-to-cable ratio at 50, 100, 200 and 300 m. What does the trend say about how steel use grows with span in the two systems, and what does the model leave out?

๐Ÿ“„ View solution
Exercise 2

A 35 m road span carries a deck load of 144 kN/m shared by six identical steel I-girders. Try the sections (350, 22, 14, 1000), (400, 25, 16, 1200), (450, 28, 18, 1400), (500, 32, 20, 1600) and (550, 36, 22, 1800) in turn (flange width, flange thickness, web thickness, depth, in mm), adding each girder's own weight. Use a stress limit of 165 MPa and a sag limit of span/360. Print the result for each, report the first that passes, and say which limit decided the failures.

๐Ÿ“„ View solution
Exercise 3

Using the maintenance plan of this chapter, print for a 50-year life the number of events, the cost and the percentage share of each element. Then change the coating renewal interval from 25 to 40 years and the cable interior inspection from every 10 years to every 5, and print the new total and the effect of each change alone. Which element dominates the budget, and which change matters most?

๐Ÿ“„ View solution

Quick Reference: the Whole Course

  • 1 Forces and Loads: five forces; dead, live and environmental loads; the load path; reactions; stress
  • 2 Beams and Simple Spans: shear and moment; stress = My/I; depth counts cubed; sag grows with the fourth power of the span
  • 3 Arches and Early Bridges: stone in compression; thrust H = wL²/(8f); abutments resist sliding and tipping
  • 4 Trusses: triangles; tension and compression bars; method of joints; buckling
  • 5 Materials: compression and tension strengths; fatigue; corrosion; paint as maintenance
  • 6 Cantilevers and the Forth Bridge: balanced arms over towers; the moment peaks at the tower
  • 7 Suspension Bridges: the cable as a parabola; the sag controls the pull; anchorages
  • 8 Cable-Stayed Bridges: stays in tension push the deck into compression; fan and harp; wind pressure rises with speed squared
  • 9 Wind, Water and Failure: flutter is not resonance; scour removes the foundation's ground; hidden corrosion needs inspection
  • 10 Capstone: choose, load, size, test, maintain
Course complete
That is the end of How Bridges Work. If you walk or drive across any of the three Forth bridges, you can now say which way the load goes from the road to the ground, which members are pulling and which pushing, and what the inspectors are looking for.