Contents
CASE STUDY 7C
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
m_G = 2.5;
omega_g = 1500*(2*pi/60);
PA = 20;
AGMA = 'Full-Depth';
Loading = 'HPSTC';
x_p = 0;
phi = PA*(2*pi/360);
J_p = 0.34;
J_g = 0.40;
T_max = 585;
T_min = -175;
E = 30E6;
v = 0.28;
reliab = 99;
Hardness = 250;
HB_p = 250;
HB_g = 250;
temp = 200;
N = 3750.*(60*2080).*10;
DrivingShock = 'Light Shock';
DrivenShock = 'Heavy Shock';
idleness_p = 'non-idle';
idleness_g = 'non-idle';
m_b = 3;
size.shape = 'number'; size.dim = 1;
Qv = 10;
N_p = 20;
d_p = 4;
d_g = 10;
surf = 1;
Solution
N_g = N_p.*m_G;
p_d = N_p./d_p;
FW = 12/p_d;
Wt_max = T_max./(d_g./2);
omega_p = 2.5.*omega_g;
Vt = d_p./(2*12).*omega_p.*60
Vt =
3.9270e+003
Bending Stresses
[Sigma_bending_p] = BendingStressSpurGear(Qv, Vt, FW, p_d, DrivingShock, ...
DrivenShock, size, m_b, idleness_p, J_p, Wt_max)
[Sigma_bending_g] = BendingStressSpurGear(Qv, Vt, FW, p_d, DrivingShock, ...
DrivenShock, size, m_b, idleness_g, J_g, Wt_max)
Sigma_bending_p =
2.8275e+003
Sigma_bending_g =
2.4034e+003
Surface Stresses
C_pg = (d_p + d_g)./2;
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;
if temp <= 250
Kt = 1;
else
Kt = (460 + Tf)./(620);
end
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;
Kr = 1;
else
fprintf('Error: reliab must use only the accepted values.');
Kr = 1;
end
Kl = 1.3558.*(N).^(-0.0178);
S_fb = Kl./(Kt.*Kr).*S_fb_prime
S_fb =
2.9167e+004
Fatigue Surface Strength
S_fs_prime = 26000 + 327.*Hardness;
if temp <= 250
Kt = 1;
else
Kt = (460 + Tf)./(620);
end
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;
Kr = 1;
else
fprintf('Error: reliab must use only the accepted values.');
Kr = 1;
end
Cl = 1.4488.*(N).^(-0.023);
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;
S_fs = (Cl.*Ch)./(Ct.*Cr).*S_fs_prime
S_fs =
9.3543e+004
Safty Factors
SF_bend_pinion = S_fb./Sigma_bending_p
SF_bend_gear = S_fb./Sigma_bending_g
SF_surf_pg = (S_fs./Sigma_surface_pg).^2
SF_bend_pinion =
10.3153
SF_bend_gear =
12.1357
SF_surf_pg =
3.5113