FEA Wrench Design main image

Summary

The final project in the MAE 3270: Mechanics of Materials course was to identify a wrench design and material that could meet a series of safety factor constraints, including yield strength, fracture toughness, and cyclic loading. After chosing a design, students had to CAD the model and test its performance in ANSYS Static Structural. Comparing FEA results to simplified hand-calculations, students got a better understanding of where the assumptions made in simplified equations were valid or not.

Identifying Design Range

Safety factor

  • \(X_0\) = 4 for yield or brittle failure, depending on the material.
  • \(X_K\) = 2 for crack growth with an assumed 0.04 in crach length.
  • \(X_S\) = 1.5 for fatigue stress at 1,000,000 cycles.
% --- Ti-6Al-4V ---
E        = 16.3e6;   % Young's modulus (psi)
nu       = 0.332;   % Poisson's ratio (not used directly here)
su       = 114e3;  % tensile (or yield) strength (psi)
KIC      = 94.2e3;   % fracture toughness (psi*sqrt(in))
sfatigue = 88.9e3;  % fatigue strength for 10^6 cycles (psi)
a0       = 0.04;   % assumed crack depth (in)
Y        = 1.12;   % geometry factor for surface crack


% Safety factor requirements
Xo = 4.0;   % strength safety factor
XK = 2.0;   % fracture (K) safety factor
XS = 1.5;   % fatigue safety factor

%% ---- Design variable ranges ----
L = M / F;
fprintf("Wrench Length: %.2f in\n", L);
h_vec = linspace(0.25, 4, 5000);
b_vec = linspace(0.25, 4, 1000);

nh = numel(h_vec);
nb = numel(b_vec);

% Logical array of acceptable designs
ok = false(nh, nb);

% Optional: store SFs and output for plotting / inspection
SF_strength = zeros(nh, nb);
SF_crack    = zeros(nh, nb);
SF_fatigue  = zeros(nh, nb);
output_mVV  = zeros(nh, nb);

%% ---- Sweep over h, b ----

% End load P that gives torque M = P*L
P       = M / L;
M_fixed = M;             % max bending moment at drive (for failure)
M_gauge = P * (L - c);   % bending moment at gauge (for output)

for ih = 1:nh
    h = h_vec(ih);
    for ib = 1:nb
        b = b_vec(ib);

        % Section properties
        I = b * h^3 / 12;

        % ---- Stresses at fixed end (for failure checks) ----
        sigma_max = 6 * M_fixed / (b * h^2);  % psi

        % Strength safety factor
        SFs = su / sigma_max;

        % Fracture safety factor
        KI  = Y * sigma_max * sqrt(pi * a0);  % psi*sqrt(in)
        SFk = KIC / KI;

        % Fatigue safety factor (fully reversed)
        SFf = sfatigue / sigma_max;

        % ---- Gauge strain and output (at gauge location) ----
        sigma_g = 6 * M_gauge / (b * h^2);  % psi at gauge
        eps_g   = sigma_g / E;              % strain at gauge
        out     = 1e3 * eps_g;              % mV/V for half bridge with GF ≈ 2

        SF_strength(ih, ib) = SFs;
        SF_crack(ih, ib) = SFk;
        SF_fatigue(ih, ib) = SFf;
        output_mVV(ih, ib) = out;

        % ---- Acceptable design check ----
        ok(ih, ib) = (SFs >= Xo) && ...
            (SFk >= XK) && ...
            (SFf >= XS) && ...
            (out >= 1.0);   % >= 1.0 mV/V
    end
end