top of page

T-Beam Ductility Check (Non-Iterative Method)

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




 
 
bottom of page