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) $$
Sample problem: b = 64 mm, c = 0 mm, e = 64 mm, and L = 110 mm
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,
)
-
And because Excel is as opaque as it gets with formulae hidden in cells. ↩
-
RH Kapp, “Yield line analysis of a web connection in direct tension”, AISC Engineering Journal, Vol. 11, No. 2, pp. 38-41, 1974. ↩