Web plate connection in direct tension

Not long ago, a colleague asked me to assist in checking some calcs concerning a base plate yield line. To do this, I thought a readable script would be helpful.1 The check was supposed to be specific about the plate thickness, its yield strength, and applied load, but I got carried away, and made it address a bunch of plate thicknesses and a range of yield strengths instead.

The relationship between the total ultimate tension $P_u$ and thickness — for a web plate with fixed ends is given by (RH Kapp 2):

$$ P_{u,\text{fixed}} = \frac{F_y t_w^2}{e b} \left( 2b^2 + 2e^2 + cb + Le \right) $$

And for a web plate with supported (but not fixed) ends, it is given by:

$$ P_{u,\text{supported}} = \frac{F_y t_w^2}{e b} \left( 2b^2 + e^2 + cb + \frac{Le}{2} \right) $$

Web plate parameters (courtesy: RH Kapp)
Web plate parameters (courtesy: RH Kapp)

Sample problem: b = 64 mm, c = 0 mm, e = 64 mm, and L = 110 mm

Pu versus t (fixed ends)
Pu versus t (fixed ends)
Pu versus t (supported ends)
Pu versus t (supported ends)

It is interesting that up to, say, 8 mm, the separation between $P_u$ is not that pronounced between yield strengths, and becomes marked as plate thickness increases. Of course, the use of mild steel in structural applications has dropped off, and may even be slightly expensive today than the standard grade high strength steel.

Plot code
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Plate size check using yield line theory
2024 ckunte
"""

import numpy as np
import matplotlib.pyplot as plt


def plot_plate_capacity(title, filename, coeffs, t, b, c, e, L, fy_values):
    """
    Plot Pu versus plate thickness t.

    coeffs = (a, d, l)
    Formula (where Pu is in metric tonne):
        Pu = ((Fy * t²) / (e * b)) *
             (2*b² + a*e² + c*b + l*L*e) / (1000 * 9.81)
    """
    a, l = coeffs

    for fy in fy_values:
        pu = (
            (fy * t**2) / (e * b)
            * (2 * b**2 + a * e**2 + c * b + l * L * e)
            / (1000 * 9.81)
        )

        plt.plot(t, pu, label=f"Fy = {fy:.0f} MPa")

    plt.xlabel("t (mm)")
    plt.ylabel("Pu (tonne)")
    plt.title(f"{title}\n(b={b:.0f} mm, c={c:.0f} mm, e={e:.0f} mm, L={L:.0f} mm)")
    plt.legend()
    plt.grid(True)

    plt.savefig(filename, transparent=True)
    plt.close()


if __name__ == "__main__":

    # Plate thickness range (mm)
    t = np.arange(4.0, 20.0, 0.1)

    # Plate dimensions (mm)
    b = 64.0
    c = 0.0
    e = 64.0
    L = 110.0

    # Steel yield strengths (MPa)
    fy_values = [240.0, 275.0, 320.0, 345.0]

    # Fixed edges
    plot_plate_capacity(
        title="Min. web plate size for fixed edges",
        filename="Pvt_fixed_ends.svg",
        coeffs=(2, 1),   # e² multiplier, Le multiplier
        t=t,
        b=b,
        c=c,
        e=e,
        L=L,
        fy_values=fy_values,
    )

    # Supported edges
    plot_plate_capacity(
        title="Min. web plate size for supported edges",
        filename="Pvt_supported_ends.svg",
        coeffs=(1, 0.5),
        t=t,
        b=b,
        c=c,
        e=e,
        L=L,
        fy_values=fy_values,
    )

  1. And because Excel is as opaque as it gets with formulae hidden in cells. 

  2. RH Kapp, “Yield line analysis of a web connection in direct tension”, AISC Engineering Journal, Vol. 11, No. 2, pp. 38-41, 1974.