Solid Mechanics & Structural Design
Secant Formula for Eccentrically Loaded Column Stress
Compute nonlinear P-Delta maximum compressive stress sigma_max = (P/A) * (1 + (e*c/r^2) / COS((L_eff/(2*r)) * SQRT(P/(E*A)))) and guard against Euler buckling.
Why linear superposition P/A + M*c/I fails in eccentrically compressed columns
When axial compression P acts at eccentricity e from a column’s centroid, lateral deflection y_max amplifies the bending moment from P * e to P * (e + y_max)! Solving the beam-column differential equation yields the Secant Formula: sigma_max = (P / A) * (1 + ec_r2 / COS(u_rad)), where ec_r2 = (e * c) / r_gyr^2 is the eccentricity ratio and u_rad = (L_eff / (2 * r_gyr)) * SQRT(P / (E * A)). Because P sits inside COS(u_rad), doubling P more than doubles sigma_max — and as u_rad approaches PI()/2 (Euler critical load P_cr), COS(u_rad) -> 0!
Verify on a steel column (L_eff = 2,000 mm in B2, radius of gyration r_gyr = 20 mm in B3 -> L/r = 100; area A = 1,000 mm^2 in B4; E = 200,000 MPa in B5; eccentricity ratio ec_r2 = 0.40 in B6): at P = 20,000 N, u_rad = 0.5000 rad and sigma_max = 29.1160 MPa. Quadruple load to P = 80,000 N (B7) and u_rad = 1.0000 rad (< PI()/2), pushing sigma_max to 139.2261 MPa (well above 4 * 29.1160 = 116.4640 MPa and naive 80 * 1.40 = 112.0000 MPa)!
| Axial Load Regime (L/r = 100, ec/r^2 = 0.40) | Angle u_rad | Secant Max Stress sigma_max |
|---|---|---|
| Quarter Load (P = 20,000 N) | 0.5000 rad | 29.1160 MPa |
| Design Load (P = 80,000 N) | 1.0000 rad | 139.2261 MPa (vs Naive 112 MPa) |
| Concentric Limit (ec/r^2 = 0, P = 80 kN) | 1.0000 rad | 80.0000 MPa (= P / A) |
| Above Euler Load (P = 200,000 N) | 1.5811 >= PI()/2 | Buckled: Load >= Euler Critical Load |
Secant Formula Maximum Compressive Stress sigma_max (MPa) with Euler Guard
Check u_rad >= PI() / 2 BEFORE evaluating 1 / COS(u_rad)! Without this guard, loads slightly above Euler P_cr flip COS(u_rad) negative and return a nonsensical negative or lowered stress.
=LET(l_eff, B2, r_gyr, B3, area_c, B4, e_mod, B5, ec_rat, B6, p_ax, B7, IF(OR(l_eff <= 0, r_gyr <= 0, area_c <= 0, e_mod <= 0, ec_rat < 0, p_ax < 0), "Invalid Column Input", IF(p_ax = 0, 0, LET(u_ang, (l_eff / (2 * r_gyr)) * SQRT(p_ax / (e_mod * area_c)), IF(u_ang >= PI() / 2, "Buckled: Load >= Euler Critical Load", ROUND((p_ax / area_c) * (1 + ec_rat / COS(u_ang)), 4))))))Euler Critical Buckling Load P_cr = PI()^2 * E * A / (L_eff / r_gyr)^2 Reference Formula
Display P_cr = 197,392.09 N directly above the Secant stress cell so structural reviewers see remaining buckling margin.
=LET(l_eff, B2, r_gyr, B3, area_c, B4, e_mod, B5, IF(OR(l_eff <= 0, r_gyr <= 0, area_c <= 0, e_mod <= 0), "Invalid Column Input", ROUND((PI()^2 * e_mod * area_c) / ((l_eff / r_gyr)^2), 2)))Try the example
Use the original values or change them to test your understanding.