Contents

CASE STUDY 7B

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

fprintf('CorrectedStrengthEnglish function: \n \n')
help CorrectedStrengthEnglish
fprintf('\n')
The date and time: 29-Dec-2008 12:44:55 
 
CorrectedStrengthEnglish function: 
 
  Calculates correction factors and uses these vaues to find the corrected
  strength (yeild or endurance).
 
  Synopsis: [S] = CorrectedStrength(load, size, surf, temp, reliab,
  S_prime)
 
  input:    load = (required) 'bending' or 'axial'. Must be a string. Use
                    bending case for all cases that are non-axial.
            size = (required) Must be a structured array. size must contain
                    size.shape: 'rectangle' or 'circle'
                    size.rotation: 'nonrotating' or 'rotating'
                    size.dim: 1x1 (radius of circle) or 1x2 (height - the
                    cubed length, and width); must be in inches.
            surf = (required) 'ground' or 'machined' or 'hot-rolled' or
                    'as-forged' or 1.
            temp = (required) 0 to 1020 degrees F
            reliab = (required) 50, 90, 99, 99.9, 99.99, or 
                    99.999 percent
            mat = (required) 'steel', 'iron', or 'aluminum'. Must be a
                   sting.
            S_ut = (required) The ultamate tensile strength. Must be in
                    kpsi.
 
  output:   S = corrected strength value in kpsi.
 
  Note: For the following variables 1 can be assigned to them:
        load, surf, temp, and reliab. When this occurs the C value for
        theses variables is simply made equal to one.
 
 
  All values must be constants, no matricies allowed. Use the following to
  get around this rule though:
  
  use matix for the size, mat, or other variable, for example:
 
  Reliability = [50, 90, 99];
  len = length(Reliability);
  S = ones(1,len);
  for coun = 1:len
    reliab = Reliability(coun);
    S(1,coun) = CorrectedStrengthEnglish(load, size, surf, temp, reliab, mat, S_ut);
  end


Given and Assumes

% given
fprintf('----- Given Data: ----- \n \n')
fprintf('d_p, diameter of pinion (in)')
d_p = 4            % in
fprintf('T_max, maximum Torque (lb*in)')
T_max = 800        % lb*in
fprintf('T_min, minimum Torque (lb*in)')
T_min = -250       % lb*in
fprintf('Sut, ultamate tensile strength (psi)')
Sut = 64*1000      % psi
S_ut = 64;          % kpsi
fprintf('Sut, yield strength (kpsi)')
Sy = 54            % kpsi
fprintf('Nsf, safety factor')
Nsf = 3

fprintf('PA, pressure angle (degrees)')
PA = 20        % degrees. Pressure angle. For all three gears
AGMA = 'Full-Depth'; % For all three gears.
Loading = 'HPSTC'; % Loading conditions for all three gears.

Phi = PA*(pi/180);  % rad


% Correction factors
fprintf('load, type of load applied')
load = 'bending'
size_o.shape = 'circle';
size_o.rotation = 'rotating';
size_o_dim = [1:0.0001:1.5]; %  Know that radius will be in this range.
fprintf('size_o.shape, shape of cross section for output shaft \n')
size_i.shape = 'circle';
size_i.rotation = 'rotating';
size_i_dim = [0.7:0.0001:1]; ; %  Know that radius will be in this range.
surf = 'machined'
fprintf('temp, temperature (degrees F)')
temp = 70;          % degrees F
fprintf('reliab, reliability (percent)')
reliab = 50;        % percent
fprintf('mat, material used')
mat = 'steel';      % SAE 1018

% Assumptions
Kt = 3;
r_g = 5.000;        % in
----- Given Data: ----- 
 
d_p, diameter of pinion (in)
d_p =

     4

T_max, maximum Torque (lb*in)
T_max =

   800

T_min, minimum Torque (lb*in)
T_min =

  -250

Sut, ultamate tensile strength (psi)
Sut =

       64000

Sut, yield strength (kpsi)
Sy =

    54

Nsf, safety factor
Nsf =

     3

PA, pressure angle (degrees)
PA =

    20

load, type of load applied
load =

bending

size_o.shape, shape of cross section for output shaft 

surf =

machined

temp, temperature (degrees F)reliab, reliability (percent)mat, material used

Solution

% Tangential Forces
fprintf('----- Calculation of Tangential Forces: ------ \n \n')
fprintf('Ft_max = T_max / r_g')
Ft_max = T_max / r_g   % lbf
fprintf('Ft_min = T_min / r_g')
Ft_min = T_min / r_g   % lbf

% Total Forces
fprintf('----- Calculation of Total Forces: ------ \n \n')
fprintf('F_max = Ft_max / cos(Phi)')
F_max = Ft_max / cos(Phi) % lbf
fprintf('F_min = Ft_min / cos(Phi)')
F_min = Ft_min / cos(Phi) % lbf

% Moments
fprintf('----- Calculation of Moments: ------ \n \n')
fprintf('M_max = F_max * (d_p/4)')
M_max = F_max * (d_p/4) % lbf in
fprintf('M_min = F_min * (d_p/4)')
M_min = F_min * (d_p/4) % lbf in

% Mean/Aplitude Moments
fprintf('----- Calculation of Mean/Aplitude Moments: ------ \n \n')
fprintf('Mm = (1/2) * (M_max + M_min)')
Mm = (1/2) * (M_max + M_min)  % lbf in
fprintf('Ma = (1/2) * (M_max - M_min)')
Ma = (1/2) * (M_max - M_min)  % lbf in

% Mean/Aplitude Torques
fprintf('----- Calculation of Mean/Aplitude Torques: ------ \n \n')
fprintf('Tm = (1/2) * (T_max + T_min)')
Tm = (1/2) * (T_max + T_min)  % lbf in
fprintf('Ta = (1/2) * (T_max - T_min)')
Ta = (1/2) * (T_max - T_min)  % lbf in


% Output Endurance Limit
  len = length(size_o_dim);
  Se_o = ones(1,len);
  for coun = 1:len
    size_o.dim = size_o_dim(coun);
    Se_o(1,coun) = CorrectedStrengthEnglish(load, size_o, surf, temp, reliab, mat, S_ut);
  end

% Input Endurance Limit
  len = length(size_i_dim);
  Se_i = ones(1,len);
  for coun = 1:len
    size_i.dim = size_i_dim(coun);
    Se_i(1,coun) = CorrectedStrengthEnglish(load, size_i, surf, temp, reliab, mat, S_ut);
  end


Se_i = Se_i.*1000; % psi
Se_o = Se_o.*1000; % psi

% Notch Sensitivity
r = 0.01;   % in
a = 0.10^2;  % in
q = 1 / (1 + sqrt(a/r));

r = 0.01;   % in
a = 0.075^2;  % in
qs = 1 / (1 + sqrt(a/r));

% Stress Consentration Factors
Kf = 1 + q*(Kt - 1);
Kfs = 1 + qs*(Kt - 1);

Kfsm = Kfs
Kfm = Kf


% Output Shaft Diameter
d_output = (((32.*Nsf)./pi).* ...
    ((sqrt((Kf.*Ma).^2 + (3/4).*(Kfs.*Ta).^2)./Se_o) + ...
    (sqrt((Kfm.*Mm).^2 + (3/4).*(Kfsm.*Tm).^2)./Sut))).^(1/3); % in

diff_o = abs(d_output - size_o_dim);

Tmin = 0.4 * Tm;     % lbf in
Tain = 0.4 * Ta;     % lbf in

% Input Shaft Diameter
d_input = (((32.*Nsf)./pi).* ...
    ((sqrt((Kf.*Ma).^2 + (3/4).*(Kfs.*Tain).^2)./Se_i) + ...
    (sqrt((Kfm.*Mm).^2 + (3/4).*(Kfsm.*Tmin).^2)./Sut))).^(1/3); % in

diff_i = abs(d_input - size_i_dim);
----- Calculation of Tangential Forces: ------ 
 
Ft_max = T_max / r_g
Ft_max =

   160

Ft_min = T_min / r_g
Ft_min =

   -50

----- Calculation of Total Forces: ------ 
 
F_max = Ft_max / cos(Phi)
F_max =

  170.2684

F_min = Ft_min / cos(Phi)
F_min =

  -53.2089

----- Calculation of Moments: ------ 
 
M_max = F_max * (d_p/4)
M_max =

  170.2684

M_min = F_min * (d_p/4)
M_min =

  -53.2089

----- Calculation of Mean/Aplitude Moments: ------ 
 
Mm = (1/2) * (M_max + M_min)
Mm =

   58.5298

Ma = (1/2) * (M_max - M_min)
Ma =

  111.7387

----- Calculation of Mean/Aplitude Torques: ------ 
 
Tm = (1/2) * (T_max + T_min)
Tm =

   275

Ta = (1/2) * (T_max - T_min)
Ta =

   525


Kfsm =

    2.1429


Kfm =

     2

Graph Difference vs. Guessed Output Diameter

plot(size_o_dim, diff_o), xlabel('Guessed Diameter (in)'), ...
    ylabel('Difference'), grid, ...
    title('Difference of Diameters vs. Guessed Output Diameter')

fprintf('Output diameter is about 1.14 \n')
Output diameter is about 1.14 

Graph Difference vs. Guessed Input Diameter

plot(size_i_dim, diff_i), xlabel('Guessed Diameter (in)'), ...
    ylabel('Difference'), grid, ...
    title('Difference of Diameters vs. Guessed Input Diameter')

fprintf('Input diameter is about 0.86')
Input diameter is about 0.86