T-Beam Ductility Check (Non-Iterative Method)
- Adisorn O.
- Jun 13
- 3 min read
alpsdev
1. Objective
To verify ductility compliance of a prestressed T-beam section per ACI 318-19 Section 21.2.2, by checking if the section satisfies the criterion c/dt ≤ 3/8 using a simplified non-iterative approach.
2. Section and Material Properties
Flange width (bf): 3.0 m
Flange thickness (tf): 0.25 m
Web width (bw): 2.0 m
Depth to prestressing steel (dt): 0.55 m
Concrete strength (f'c): 32,000 kPa
Prestressing steel strength (fpu): 1,860,000 kPa
Mild steel yield strength (fy): 400,000 kPa
Prestressing area (Aps): 30 × 5 × 99 mm² = 14,850 mm²
3. Methodology
1. Assume c/dt = 3/8, compute c and equivalent stress block depth a = c/β₁.2. Calculate compression force Cc based on whether a is within the flange or extends into the web: - If a ≤ tf: Cc = 0.85 f'c bf a - If a > tf: Cc = 0.85 f'c (bf tf + bw(a - tf))3. Calculate tensile force from prestressing: Tps = Aps × fps4. Compare Cc and Tps: - If Cc ≥ Tps → Section is ductile (Asc = 0) - If Cc < Tps → Add compression steel Asc = (Tps - Cc)/fy5. Practically, place equal area of tensile rebar As = Asc for balance
4. MATLAB Code Summary
A compact MATLAB function is developed to automate this check for T-beam sections.
5. Remarks
This approach is conservative, practical, and avoids iterative computation. It is especially useful in early design stages or bulk checking scenarios. When a > tf, compression force must be split between the flange and web.
6. MATLAB Code
function tbeam_ductility_check_no_iteration()
clc;
% Material properties
fc = 32000; % Concrete strength (kPa)
fy = 400000; % Mild steel yield strength (kPa)
fpu = 1860000; % Ultimate strength of prestressing steel (kPa)
% Section geometry (T-beam)
bf = 3.0; % Flange width (m)
tf = 0.25; % Flange thickness (m)
bw = 2.0; % Web width (m)
dt = 0.55; % Depth to prestress CG (m)
% Prestressing steel
Aps = 30 * 5 * 99e-6; % Area of prestress steel (m^2)
% Derived properties
h = dt + 0.05; % Total height (approximate)
rho = Aps / (bw * h + (bf - bw) * tf);
beta1 = get_beta1(fc);
fps = fpu * (1 - 0.28 / beta1 * rho * fpu / fc); % ACI effective stress
% Step 1: Assume c/dt = 3/8
c = 0.375 * dt;
a = c / beta1;
% Step 2: Compute Cc correctly
if a <= tf
Cc = 0.85 * fc * bf * a; % Flange only
else
Cc = 0.85 * fc * (bf * tf + bw * (a - tf)); % Flange + Web
end
% Step 3: Compute Tps
Tps = Aps * fps;
% Display
fprintf('Assumed c = %.2f mm (c/dt = 3/8)\n', c * 1000);
fprintf('Cc = %.2f kN, Tps = %.2f kN\n', Cc, Tps);
% Step 4: Check and compute Asc
if Cc >= Tps
fprintf('✅ Section is ductile. No compression steel required.\n');
Asc = 0;
else
Asc = (Tps - Cc) / fy;
fprintf('⚠️ Add compression steel: Asc = %.1f mm² to restore ductility.\n', Asc * 1e6);
fprintf('✅ Place equal As in tension zone to maintain balance.\n');
end
end
function beta1 = get_beta1(fc)
fc_MPa = fc / 1000;
if fc_MPa <= 28
beta1 = 0.85;
elseif fc_MPa < 56
beta1 = 0.85 - 0.05 * (fc_MPa - 28) / 7;
else
beta1 = 0.65;
end
end