Contents

CASE STUDY 7C

% Programmer: Aaron Klapheck
% 26-Nov-08
clear, clc, home
fprintf('The date and time: %s \n \n', datestr(now))

fprintf('BendingStressSpurGear function: \n \n')
help BendingStressSpurGear
fprintf('\nSurfaceStressSpurGear function: \n \n')
help SurfaceStressSpurGear
The date and time: 29-Dec-2008 13:00:42 
 
BendingStressSpurGear function: 
 
  Calculates the bending stresses setup inside a spur gear. English Units.
 
  Synopsis: [Sigma] = BendingStressSpurGear(Qv, Vt, FW, DrivingShock, ...
     DrivenShock, size, m_b, idleness)
 
  input:    Qv = (required) Gear quality. Constant between 3 and 11.
            Vt = (required) pitch-line velocity. r cross omega.
            FW = (required) Face width factor. Number in inches.
            p_d = (required) dimetral pitch. p_d = N/d.
            DrivingShock = (required) 'Uniform', 'Light Shock', or
                'Medium Shock'.
            DrivenShock = (required) 'Uniform', 'Moderate Shock', or
                'Heavy Shock'.
            size = (required) Must be a structured array. size must contain
                    size.shape: 'rectangle', 'circle', or 'number'
                    size.rotation: 'nonrotating', 'rotating', NA
                    size.dim: 1x1 (radius of circle) or 1x2 (height (i.e. the
                    cubed value) and width); must be in inches.
                    fur number just put a number
            m_b = (required) backup ratio. m_b = t_r/h_t
            idleness = (required) 'idle' or 'non-idle'.
            J = (required) Bending strength geometry factor. See page 666 for values.
            Wt = (required) The tangential force on the tooth
 
  output:   Sigma = bending stress.
 
  Warning: Error most likely due to the interpolation of Km.
 
  All values must be constants, no matricies allowed. Use the following to
  get around this rule though:
  
  use matix for Qv, Vt, or other variable, for example:
 
  Quality = [5, 6, 7, 8];
  len = length(Quality);
  Sigma = ones(1,len);
  for coun = 1:len
    Qv = Quality(coun);
    Sigma(coun) = = BendingStressSpurGear(Qv, Vt, FW, p_d, DrivingShock, ...
     DrivenShock, size, m_b, idleness, J, Wt);
  end

    showdemo BendingStressSpurGear
      

SurfaceStressSpurGear function: 
 
  Calculates the surface stresses setup between two spur gears. English Units.
 
  Synopsis: [Sigma] = SurfaceStressSpurGear(Qv, Vt, FW, DrivingShock, ...
     DrivenShock, size, I, Cp, surf, Wt, d)
 
  input:    Qv = (required) Gear quality. Constant between 3 and 11.
            Vt = (required) pitch-line velocity. r cross omega.
            FW = (required) Face width factor. Number in inches.
            DrivingShock = (required) 'Uniform', 'Light Shock', or
                'Medium Shock'.
            DrivenShock = (required) 'Uniform', 'Moderate Shock', or
                'Heavy Shock'.
            size = (required) Must be a structured array. size must contain
                    size.shape: 'rectangle', 'circle', or 'number'
                    size.rotation: 'nonrotating', 'rotating', NA
                    size.dim: 1x1 (radius of circle) or 1x2 (height (i.e. the
                    cubed value) and width); must be in inches.
                    fur number just put a number
            I = (required) Surface geometry factor. See page 673 for values.
            surf = (required) should equal 1. If surface is very rough then
                    the value can be increased.
            Wt = (required) The tangential force on the tooth
            d = (required) diameter of smaller gear
 
  output:   Sigma = surface stress.
 
  Warning: Error most likely due to the interpolation of Km.
 
  All values must be constants, no matricies allowed. Use the following to
  get around this rule though:
  
  use matix for Qv, Vt, or other variable, for example:
 
  Quality = [5, 6, 7, 8];
  len = length(Quality);
  Sigma = ones(1,len);
  for coun = 1:len
    Qv = Quality(coun);
    Sigma(coun) = SurfaceStressSpurGear(Qv, Vt, FW, DrivingShock, ...
     DrivenShock, size, I, Cp, surf, Wt, d);
  end

    showdemo SurfaceStressSpurGear
      

Given and Assumes

% Given
m_G = 2.5;
omega_g = 1500*(2*pi/60); % rad/s. gear (output) angular speed.
PA = 20;        % degrees. Pressure angle. For both gears
AGMA = 'Full-Depth'; % For both gears.
Loading = 'HPSTC'; % Loading conditions for all three gears.
x_p = 0;        % Elongation: because of full-depth. 25% would be 0.25.
phi = PA*(2*pi/360);   % rad
J_p = 0.34;     % Obtained from PA, AGME, and Loading values.
J_g = 0.40;     % Obtained from PA, AGME, and Loading values. Interpolated.
T_max = 585;     % lbf in
T_min = -175;    % lbf in

E = 30E6; % psi
v = 0.28;

reliab = 99; % percent.
Hardness = 250; % HB.
HB_p = 250;
HB_g = 250;
temp = 200; % Degrees F.
N = 3750.*(60*2080).*10; % Number of cycles

% Data for K values.
DrivingShock = 'Light Shock';
DrivenShock = 'Heavy Shock';
idleness_p = 'non-idle';
idleness_g = 'non-idle';
m_b = 3; % Solid gears, so make sure that m_b > 1.2.
size.shape = 'number'; size.dim = 1;

% Assumptions
Qv = 10;
N_p = 20;
d_p = 4; % in.
d_g = 10; % in.

surf = 1;

Solution

% Get diametric pitch.
N_g = N_p.*m_G;      % teeth
p_d = N_p./d_p;      % diametric pitch. The same for both gears.

% Assume:
FW = 12/p_d; % Face width nominal value (12)

% Tangential load applied to both gears.
Wt_max = T_max./(d_g./2);   % lbf

% Tooth velocity
omega_p = 2.5.*omega_g; % Angular velocity of teeth on pinion.
Vt = d_p./(2*12).*omega_p.*60 % ft/min.
Vt =

  3.9270e+003

Bending Stresses

% Bending stresses for pinion:
[Sigma_bending_p] = BendingStressSpurGear(Qv, Vt, FW, p_d, DrivingShock, ...
    DrivenShock, size, m_b, idleness_p, J_p, Wt_max) % psi.

% Bending stresses for gear:
[Sigma_bending_g] = BendingStressSpurGear(Qv, Vt, FW, p_d, DrivingShock, ...
    DrivenShock, size, m_b, idleness_g, J_g, Wt_max) % psi.
Sigma_bending_p =

  2.8275e+003


Sigma_bending_g =

  2.4034e+003

Surface Stresses

%%%%% Surface Geometry Factor for pinion gear pair %%%%%
C_pg = (d_p + d_g)./2;
% external gear teeth.
rho_p = sqrt((d_p./2 + (1 + x_p)./(p_d)).^2-(d_p./2.*cos(phi)).^2)-(pi/p_d).*cos(phi);
rho_g = C_pg.*sin(phi) - rho_p;
I_pg = cos(phi)./((1/rho_p + 1/rho_g).*d_p);


Cp = sqrt(1./(pi.*( ((1 - v.^2)./(E)) + ((1 - v.^2)./(E)))));


[Sigma_surface_pg] = SurfaceStressSpurGear(Qv, Vt, FW, DrivingShock, ...
     DrivenShock, size, I_pg, Cp, surf, Wt_max, d_p)
Sigma_surface_pg =

  4.9920e+004

Fatigue Bending Strength

S_fb_prime = -274 + 167.*Hardness - .152.*Hardness.^2;

%%%% Temperature %%%%%
if temp <= 250
    Kt = 1;
else
    Kt = (460 + Tf)./(620);
end


%%%% Reliability %%%%%
if reliab == 90;
    Kr = 0.85;
elseif reliab == 99;
    Kr = 1;
elseif reliab == 99.9;
    Kr = 1.25;
elseif reliab == 99.99;
    Kr = 1.5;
elseif reliab == 1; % Special case where C_reliab is given as 1.
    Kr = 1;
else
    fprintf('Error: reliab must use only the accepted values.');
    Kr = 1;
end


%%%% Life %%%%%
Kl = 1.3558.*(N).^(-0.0178);


%%%% Solution %%%%
S_fb = Kl./(Kt.*Kr).*S_fb_prime
S_fb =

  2.9167e+004

Fatigue Surface Strength

S_fs_prime = 26000 + 327.*Hardness;

%%%% Temperature %%%%%
if temp <= 250
    Kt = 1;
else
    Kt = (460 + Tf)./(620);
end


%%%% Reliability %%%%%
if reliab == 90;
    Kr = 0.85;
elseif reliab == 99;
    Kr = 1;
elseif reliab == 99.9;
    Kr = 1.25;
elseif reliab == 99.99;
    Kr = 1.5;
elseif reliab == 1; % Special case where C_reliab is given as 1.
    Kr = 1;
else
    fprintf('Error: reliab must use only the accepted values.');
    Kr = 1;
end


%%%% Life %%%%%
Cl = 1.4488.*(N).^(-0.023);


%%%% Hardness Ratio %%%%%
if HB_p/HB_g < 1.2
    A = 0;
elseif HB_p/HB_g <= 1.7
    A = 0.00898.*HB_p/HB_g - 0.00829;
else
    A = 0.00698;
end
m_G = N_g./N_p;
Ch = 1 + A.*(m_G -1);


Ct = Kt; Cr = Kr;
%%%% Solution %%%%
S_fs = (Cl.*Ch)./(Ct.*Cr).*S_fs_prime
S_fs =

  9.3543e+004

Safty Factors

% Bending SF
SF_bend_pinion = S_fb./Sigma_bending_p
SF_bend_gear = S_fb./Sigma_bending_g

% Surface SF
SF_surf_pg = (S_fs./Sigma_surface_pg).^2
SF_bend_pinion =

   10.3153


SF_bend_gear =

   12.1357


SF_surf_pg =

    3.5113