Sign in or create a free account to continue.

CIV-224 · Lesson 4 of 12 · 24 min

Plane trusses: joints, sections and zero-force members

The garage roof spans 60 ft between columns, too far for an economical rolled beam carrying Duluth snow, so Priya has chosen steel trusses at 25 ft centers. A truss is a set of straight members joined at their ends to form triangles. Because a triangle cannot change shape without changing the length of a side, a triangulated frame is rigid, and when loads act only at the joints, every member carries pure tension or compression. That makes trusses light and efficient for long spans, which is why they appear in roofs, bridges, towers and cranes.

Truss forms

A handful of classical forms cover most applications. In a Pratt truss the diagonals slope down toward midspan, so under gravity load they are in tension and the shorter verticals are in compression, which suits steel because long members in tension do not buckle. A Howe truss reverses the diagonals, putting them in compression and the verticals in tension, which suited timber diagonals with steel rod verticals in the nineteenth century. A Warren truss has diagonals of alternating slope and often no verticals; it uses fewer members and is common for bridges and long-span joists. Pitched roofs use Fink, Howe or scissors trusses, and bowstring trusses with curved top chords carry uniform loads very efficiently, because the curved chord follows the shape of the moment diagram.

Five truss outlines: Pratt with diagonals sloping down to midspan, Howe with diagonals sloping the other way, Warren with alternating diagonals, a pitched Fink roof truss, and a bowstring truss with a curved top chord.
Common truss forms. Under gravity load, Pratt diagonals are in tension, Howe diagonals in compression, and Warren diagonals alternate.

Assumptions of truss analysis

Classical truss analysis rests on three assumptions. Members are connected at their ends by frictionless pins. Loads, including member self-weight, are applied only at the joints. And member centroidal axes meet at a point at each joint. Under these assumptions each member is a two-force member, loaded only at its two ends, so the force in it acts along the line joining the ends: pure axial tension or compression.

Real trusses violate all three assumptions slightly. Gusset plates are bolted or welded and resist some rotation, purlins or joists may land between panel points, and member self-weight is distributed. The effects are small secondary stresses, usually a few percent of the axial stresses, provided members are slender and the joints are detailed so that the centroidal axes meet. Where a top chord carries load between panel points, it must be designed for the local bending as well as its axial force.

Determinacy and stability of trusses

A plane truss with j joints provides \(2j\) equilibrium equations (two force equations per joint, since all forces at a pin pass through it). The unknowns are the b member forces and r reaction components. Thus

\[b + r < 2j \ \to \ \text{unstable} \qquad b + r = 2j \ \to \ \text{determinate (if stable)} \qquad b + r > 2j \ \to \ \text{indeterminate}\]

As with beams, the count is necessary but not sufficient. A simple truss, built by starting with a triangle and adding two members and one joint at a time, is always internally stable. A truss with a missing diagonal in one panel forms a four-sided panel that can rack, and it is unstable however many members it has elsewhere.

The method of joints

Because each joint is a point where concurrent forces meet, you can isolate it and write two equations, \(\sum F_x = 0\) and \(\sum F_y = 0\). Start at a joint with at most two unknown member forces, usually a support after the reactions are known, and move from joint to joint. Assume every unknown member force is tension, drawn as an arrow pulling away from the joint. A negative result then means compression, and the sign convention stays consistent from joint to joint without having to redraw arrows.

For an inclined member it helps to use its slope. If a diagonal rises d over a horizontal run a, its length is \(\sqrt{a^2 + d^2}\), and its horizontal and vertical force components are the force times \(a/\ell\) and \(d/\ell\). Working with these ratios avoids trigonometric functions and rounding errors.

A six-panel Pratt truss with joints labeled L0 to L6 along the bottom chord and U0 to U6 along the top, loads at each top joint, a pin at L0 and a roller at L6, with members colored to show tension and compression and the two end bottom chord panels dashed.
The garage Pratt truss under factored snow and dead load. Top chord and verticals are in compression (red), bottom chord and diagonals in tension (blue); L0L1 and L5L6 carry no force.

Worked problem

Joints at the left support

The six-panel Pratt truss spans 60 ft with 10 ft panels and a depth of 7 ft. Joists deliver the factored load of 2.30 kip/ft from lesson 2 as panel loads \(P = 2.30 \times 10 = 23.0\ \text{kips}\) at each interior top joint and \(P/2 = 11.5\ \text{kips}\) at U0 and U6. The truss has a pin at L0 and a roller at L6. Find the forces in L0L1, L0U0, U0L1 and U0U1.

Show solution
  1. Reactions by symmetry: total load \(= 5(23.0) + 2(11.5) = 138\ \text{kips}\), so \(R_{L0} = R_{L6} = 69.0\ \text{kips}\) and the horizontal reaction is zero.
  2. Joint L0: the only horizontal member is L0L1 and there is no horizontal load or reaction, so \(F_{L0L1} = 0\). Vertically, \(F_{L0U0} + 69.0 = 0\), so \(F_{L0U0} = -69.0\ \text{kips}\) (compression).
  3. Joint U0: the diagonal U0L1 has run 10 ft, rise 7 ft, length \(\sqrt{149} = 12.21\ \text{ft}\). Vertical equilibrium, with the vertical L0U0 pushing up with 69.0 kips and the load of 11.5 kips down: \(69.0 - 11.5 - F_{U0L1}(7/12.21) = 0\).
  4. \[F_{U0L1} = \frac{57.5 \times 12.21}{7} = 100.3\ \text{kips (tension)}\]
  5. Horizontal equilibrium at U0: \(F_{U0U1} + F_{U0L1}(10/12.21) = 0\), so \(F_{U0U1} = -82.1\ \text{kips}\) (compression).

Answer: L0L1 = 0, L0U0 = 69.0 kips C, U0L1 = 100.3 kips T, U0U1 = 82.1 kips C. Note that the end vertical carries the whole reaction, because the loads are applied to the top chord and the support is at the bottom.

Zero-force members

Some members carry no force under a particular loading, and spotting them first saves work. Two rules cover most cases.

  • If only two non-collinear members meet at an unloaded joint, both are zero-force members.
  • If three members meet at an unloaded joint and two of them are collinear, the third is a zero-force member.

The bottom chord member L0L1 in the example is zero by a related argument: at L0 it is the only member with a horizontal component, and nothing else there acts horizontally. Zero-force members are not useless. They brace compression members against buckling, carry load under other load cases such as wind or unbalanced snow, and keep the geometry stable. Removing one because it shows zero force under one loading is a classic and dangerous mistake.

The method of sections

To find the force in one member near the middle of a truss without working through every joint, cut the truss with an imaginary section through that member and no more than two others whose forces are unknown, then apply the three equilibrium equations to one side of the cut. Choose a moment center where two of the unknown forces intersect, and the third force follows from one equation.

The method of sections reveals how a truss works. The chord forces resist the bending moment, forming a couple with lever arm equal to the depth: chord force ≈ M/d. The diagonals resist the shear: the vertical component of the diagonal force equals the shear in the panel. A truss is a beam with its web replaced by a lattice, and the moment and shear diagrams you will draw in lesson 5 predict its member forces.

Worked problem

Chord and diagonal forces at midspan

For the same truss, find the forces in U2U3, L2L3 and U2L3 using a section through panel 3 (between joints 2 and 3).

Show solution
  1. Take the left part. Loads on it: 69.0 kips up at L0, and 11.5, 23.0, 23.0 kips down at U0, U1, U2.
  2. Moments about L3 (where L2L3 and U2L3 meet), at 30 ft from the left: \(69.0(30) - 11.5(30) - 23.0(20) - 23.0(10) + F_{U2U3}(7) = 0\). That gives \(2070 - 345 - 460 - 230 + 7F_{U2U3} = 0\), so \(F_{U2U3} = -147.9\ \text{kips}\) (compression).
  3. Moments about U2 (where U2U3 and U2L3 meet), at 20 ft: \(69.0(20) - 11.5(20) - 23.0(10) - 7F_{L2L3} = 0\), so \(F_{L2L3} = (1380 - 230 - 230)/7 = 131.4\ \text{kips}\) (tension).
  4. Vertical forces give the diagonal: shear in the panel \(V = 69.0 - 11.5 - 23.0 - 23.0 = 11.5\ \text{kips}\), and \(F_{U2L3}(7/12.21) = 11.5\), so \(F_{U2L3} = 20.1\ \text{kips}\) (tension).

Answer: U2U3 = 147.9 kips C, L2L3 = 131.4 kips T, U2L3 = 20.1 kips T. Check: the midspan moment of a simple beam under 2.30 kip/ft is \(2.30(60^2)/8 = 1035\ \text{kip·ft}\), and \(1035/7 = 147.9\ \text{kips}\), exactly the top chord force at midspan.

The chord forces grow toward midspan, following the moment diagram, and the diagonal forces shrink toward midspan, following the shear. In design, this is why chords are heaviest at midspan and web members heaviest near the supports, and why some long-span trusses use lighter chord sections near the ends.

Compound and complex trusses

A compound truss is formed by connecting two or more simple trusses, for example two Fink trusses joined at the apex and tied by a bottom chord. You analyze it by first finding the force in the connecting members, typically with a section, and then treating each simple truss separately. A complex truss is neither simple nor compound; its joints all have three or more unknowns, so neither method works directly. The general approach is to write all 2j equations and solve them together, which is exactly what a computer does.

Solving a whole truss by computer

Sofia's program writes the two equilibrium equations at every joint, with every member force and reaction as an unknown, and solves the system. It reproduces the hand results and flags the zero-force members. The same idea, with member stiffnesses added so that it also works for indeterminate trusses, is the basis of the stiffness method in CIV-321.

Method of joints for every joint at once
import math

def solve(A, b):
    n = len(b); M = [row[:] + [b[i]] for i, row in enumerate(A)]
    for k in range(n):
        p = max(range(k, n), key=lambda i: abs(M[i][k])); M[k], M[p] = M[p], M[k]
        for i in range(k + 1, n):
            f = M[i][k] / M[k][k]
            for jj in range(k, n + 1): M[i][jj] -= f * M[k][jj]
    x = [0.0] * n
    for i in reversed(range(n)):
        x[i] = (M[i][n] - sum(M[i][jj] * x[jj] for jj in range(i + 1, n))) / M[i][i]
    return x

# Pratt truss: 60.0, 6 panels, depth 7.0; factored load P at each top panel point (P/2 at ends)
span, panels, depth, P = 60.0, 6, 7.0, 23.0
a = span / panels
nodes = {}
for i in range(panels + 1):
    nodes[f"L{i}"] = (i * a, 0.0); nodes[f"U{i}"] = (i * a, depth)
mem = [(f"L{i}", f"L{i+1}") for i in range(panels)] + [(f"U{i}", f"U{i+1}") for i in range(panels)]
mem += [(f"L{i}", f"U{i}") for i in range(panels + 1)]
mem += [(f"U{i}", f"L{i+1}") for i in range(panels // 2)] + [(f"U{i+1}", f"L{i}") for i in range(panels // 2, panels)]
loads = {f"U{i}": -P * (0.5 if i in (0, panels) else 1.0) for i in range(panels + 1)}
sup = [("L0", 0), ("L0", 1), (f"L{panels}", 1)]          # pin at L0, roller at L6

names = list(nodes); idx = {n: k for k, n in enumerate(names)}
nu = len(mem) + len(sup)
print("b + r =", nu, " 2j =", 2 * len(names))
A = [[0.0] * nu for _ in range(2 * len(names))]; rhs = [0.0] * (2 * len(names))
for m, (i, j) in enumerate(mem):                        # tension positive
    (xi, yi), (xj, yj) = nodes[i], nodes[j]
    L = math.hypot(xj - xi, yj - yi); c, s = (xj - xi) / L, (yj - yi) / L
    A[2*idx[i]][m] += c; A[2*idx[i]+1][m] += s; A[2*idx[j]][m] -= c; A[2*idx[j]+1][m] -= s
for k, (n, d) in enumerate(sup):
    A[2*idx[n] + d][len(mem) + k] = 1.0
for n, fy in loads.items():
    rhs[2*idx[n] + 1] -= fy
x = solve(A, rhs)
for (i, j), f in zip(mem, x):
    kind = "T" if f > 1e-6 else ("C" if f < -1e-6 else "zero")
    print(f"{i}{j:4s} {abs(f):8.1f} kips {kind}")
print("Reactions:", [round(v, 1) for v in x[len(mem):]])
Output
b + r = 28  2j = 28
L0L1        0.0 kips zero
L1L2       82.1 kips T
L2L3      131.4 kips T
L3L4      131.4 kips T
L4L5       82.1 kips T
L5L6        0.0 kips zero
U0U1       82.1 kips C
U1U2      131.4 kips C
U2U3      147.9 kips C
U3U4      147.9 kips C
U4U5      131.4 kips C
U5U6       82.1 kips C
L0U0       69.0 kips C
L1U1       57.5 kips C
L2U2       34.5 kips C
L3U3       23.0 kips C
L4U4       34.5 kips C
L5U5       57.5 kips C
L6U6       69.0 kips C
U0L1      100.3 kips T
U1L2       60.2 kips T
U2L3       20.1 kips T
U4L3       20.1 kips T
U5L4       60.2 kips T
U6L5      100.3 kips T
Reactions: [0.0, 69.0, 69.0]

Reading down the output confirms the patterns: chord forces largest at midspan, web forces largest at the ends, the two end bottom chord panels at zero, and \(b + r = 2j\), so the truss is determinate.

Common mistakes

  • MistakeAssuming the direction of each member force from intuition and then redrawing arrows at the next joint.

    InsteadAssume tension everywhere; signs then carry consistently from joint to joint.

  • MistakeCutting through four members with unknown forces.

    InsteadA section gives only three equations. Cut through at most three unknowns, or use joints first.

  • MistakeRemoving members that show zero force.

    InsteadZero-force members brace compression members and carry load under other load cases.

  • MistakeApplying uniformly distributed roof load to the truss directly.

    InsteadConvert it to joint loads using tributary lengths; design the chord for local bending if loads land between joints.

Summary and key terms

  • Truss members are two-force members carrying axial force when loads act at pinned joints.
  • A plane truss is determinate if \(b + r = 2j\) and it is stable.
  • The method of joints uses two equations per joint; start where there are at most two unknowns.
  • Two simple rules identify zero-force members, which must still be kept.
  • The method of sections uses three equations on one side of a cut through at most three unknown members.
  • Chord forces resist moment (≈ M/d) and web members resist shear.
Truss
A triangulated assembly of straight members loaded at pinned joints.
Panel point
A joint where a truss receives load.
Chord
The top or bottom longitudinal member of a truss.
Web member
A diagonal or vertical member between the chords.
Method of joints
Truss analysis by equilibrium of forces at each joint.
Method of sections
Truss analysis by equilibrium of a portion of the truss cut by a section.
Zero-force member
A member that carries no force under a particular loading.
Simple truss
A truss built from a triangle by adding two members and a joint at a time.

Practice problems

Work each problem on paper first, then reveal the answer to check.

  1. A truss has 11 members, 7 joints and 3 reactions. Classify it.

    Show answer

    \(b + r = 14 = 2j\): determinate if stable.

  2. Two non-collinear members meet at an unloaded joint. What are their forces?

    Show answer

    Both are zero.

  3. A diagonal rises 7 ft over a 10 ft run and carries 20 kips tension. Find its components.

    Show answer

    Length 12.21 ft; horizontal \(20(10/12.21) = 16.4\ \text{kips}\), vertical \(20(7/12.21) = 11.5\ \text{kips}\).

  4. Why are Pratt truss diagonals in tension under gravity load?

    Show answer

    They slope down toward midspan, so their vertical components resist the shear in tension.

  5. A parallel-chord truss 8 ft deep has a moment of 800 kip·ft at a section. Estimate the chord forces.

    Show answer

    \(800/8 = 100\ \text{kips}\): top chord compression, bottom chord tension.

  6. When is the method of sections more convenient than the method of joints?

    Show answer

    When you need forces in a few members far from the supports.

Lesson quiz · 5 questions

Score 60% or more to complete this lesson.

Take the quiz