-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathenduranceLimit.m
103 lines (94 loc) · 2.71 KB
/
enduranceLimit.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
function [Se] = enduranceLimit(Sut,a,b,Se_ideal,d,T_F,r,kt,kts)
% This function calculates the endurance limit given Sut (min tensile strength, a (surface parameter, b (surface exp. param.), Se_ideal (ideal endurance limit),
% d (diameter), T_F (temperature), r (notch radius), kt (stress conc. factor), kts (stress conc. factor shear).
% Enter Sut in MPa, T_F in Fahrenheit
ka = a*Sut^b;
prompt = 'Axial, Torsional, or Bending A/T/B : ';
stress = input(prompt,'s');
% Axial Stress
if stress == 'A'
kb = 1;
kc = 0.85;
if Sut >= .050 && Sut <= .250
sa = 0.246-3.08*(10^-3)*Sut+1.51*(10^-5)*Sut^2-2.67*(10^-8)*Sut^3;
elseif Sut >= 340 && Sut <= 1700
sa = 1.24-2.25*(10^-3)*Sut+1.60*(10^-6)*Sut^2-4.11*(10^-10)*Sut^3;
else
message = 'Sut not in range';
disp(message)
end
% Torsional Stress
elseif stress == 'T'
if d < 0.3
kb = 1;
kc = 0.59;
elseif d >= 0.3 && d <= 2
kb = 0.879*d^(-0.107);
kc = 0.59;
elseif d > 2 && d <= 10
kb = 0.91*d^(-0.157);
kc = 0.59;
elseif d >= 7.62 && d <= 51
kb = 1.24*d^(-0.107);
kc = 0.59;
elseif d >= 51 && d <= 254
kb = 1.51*d^(-0.157);
kc = 0.59;
else
message = 'Error: Invalid d';
disp(message)
end
if Sut <= 0.050 && Sut <= 0.220
sa = 0.190-2.51*(10^-3)*Sut+1.35*(10^-5)*Sut^2-2.67*(10^-8)*Sut^3;
elseif Sut >=340 && Sut <= 1500
sa = 0.958-1.83*(10^-3)*Sut+1.43*(10^-6)*Sut^2-4.11*(10^-10)*Sut^3;
else
message = 'Sut not in range';
disp(message)
end
% Bending Stress
elseif stress == 'B'
if d < 0.3
kb = 1;
kc = 1;
elseif d >= 0.3 && d <= 2
kb = 0.879*d^(-0.107);
kc = 1;
elseif d > 2 && d <= 10
kb = 0.91*d^(-0.157);
kc = 1;
elseif d >= 7.62 && d <= 51
kb = 1.24*d^(-0.107);
kc = 1;
elseif d >= 51 && d <= 254
kb = 1.51*d^(-0.157);
kc = 1;
else
message = 'Error: Invalid d';
disp(message)
end
if Sut >= .050 && Sut <= .250
sa = 0.246-3.08*(10^-3)*Sut+1.51*(10^-5)*Sut^2-2.67*(10^-8)*Sut^3 ;
elseif Sut >= 340 && Sut <= 1700
sa = 1.24-2.25*(10^-3)*Sut+1.60*(10^-6)*Sut^2-4.11*(10^-10)*Sut^3;
else
message = 'Sut not in range';
disp(message)
end
else
message = 'Error, Invalid input';
disp(message)
end
kd = 0.98 + 3.5*(10^-4)*T_F-6.3*(10^-7)*T_F^2;
%standard deviation
% sd = 0.08
% x = ;
% mu_x = ;
% za = (x-mu_x)/sd);
% ke = 1 - 0.08*za;
% Assuming 99 percent reliability
ke = 0.814;
kf = 1 + (kt-1)/(1+sa/sqrt(r));
kfs = 1 + (kts-1)/(1+sa/sqrt(r));
Se = ka*kb*kc*kd*ke*kf*kfs*Se_ideal;
end