Showing posts with label Machine Design. Show all posts
Showing posts with label Machine Design. Show all posts

Saturday, 5 April 2025

Design of a Circular Flat Plate Cover for Vacuum Chamber using Acrylic Material

Topic: Flat Plate & Maximum Principal Stress Theory
Subject: Machine Design
Tool: QCAD & Scilab

By: Gani Comia, Apr. 2025

  • Circular Flat Plate Application

This topic will present the solution for the design of an acrylic material used as a cover in the vacuum chamber. Figure 1 illustrates an application wherein the thickness of circular plate cover is calculated for the considerable factor-of-safety in order to overcome the induced stress from a vacuum pressure.

Figure 1. Vacuum Chamber with Circular Plate Cover Application.

For a circular plate under uniform load and simply supported at the edge, the maximum stress at the center is

$$\sigma = \frac{3\,(3 + \nu)\,p \,r^2 }{8\,t^2} \tag{1}$$

Where:
\(\sigma\) – maximum bending stress at the center, \(MPa\)
\(\nu\) – Poisson’s ratio of the material
\(p\) - uniform load or pressure, \(MPa\)
\(r\) - radius of circular plate, \(mm\)
\(t\) – thickness of plate, \(mm\)

  • Maximum Principal Stress Theory

This failure theory is accredited to W.J.M. Rankine. It gives good predictions and often used for brittle materials. It presumes that when the maximum principal stress exceeds a certain limiting value, for this case the ultimate strength, \(\sigma_u\), for brittle materials failure occurs. This design stress for uniaxial load with shear is given by the Equation (2)

$$\sigma_d = \frac{\sigma}{2} + \sqrt{\left( \frac{\sigma}{2} \right)^2 + \tau^2} \tag{2}$$

Where:
\(\sigma_d\) – design stress, \(MPa\)
\(\sigma\) – normal stress, \(MPa\)
\(\tau\) – shear stress, \(MPa\)

The normal stress from Equation (2) is the maximum bending stress, \(\sigma\), as in this case of circular plate cover. Shear stress, \(\tau\), is calculated from the force due to the difference between atmospheric pressure and vacuum acting on the area around the chamber opening circumference with the given thickness of the cover plate. Shear stress is defined as

$$\tau = \frac{F}{A}, \quad F = \pi\,r^2\,p, \quad A = 2\,\pi\,r\,t \tag{3}$$

Where:
\(F\) – induced force due to pressure difference, \(N\)
\(A\) – area under shear at the cover around the circumference of vacuum chamber, \({mm}^2\)

For a static loading of a brittle material the limiting stress is taken as the ultimate strength and the design stress is expressed as

$$\sigma_d = \frac{\sigma_u}{N} \tag{4}$$

Where:
\(\sigma_u\) – ultimate strength, \(MPa\)
\(N\) – factor-of-safety

Our objective for the design is to determine the thickness of the circular plate cover which will give a considerable factor-of-safety while addressing other factors such as stress concentration due to the effect of attaching vacuum fittings or other devices and the availability of material based on standard or off-the-shelf thickness.  

  • Scilab Script

// Copyright (C) 2025 - Gani Comia
// Date of creation: 2 Apr 2025
// Circular Plate, Uniform Load, Simply Supported Edge
clear;clc;
// module or functions
// (1) maximum stress at the center due to pressure
function sigma_fp=flatPlate(p, r, t, nu)
    // calculate the stress on the flat plate.
    // input argument:
        // p - MPa or N/mm^2, uniform load
        // r - mm, radius of circular plate
        // t - mm, plate thickness
        // nu - Poisson's ratio
    // output argument:
        // sigma_fp - MPa, maximum principal stress at the center
    sigma_fp = (3*(3+nu).*p.*r.^2)./(8*t.^2);
endfunction

// (2) maximu shear stress at the chamber opening
function tau_fp=shearPlate(p, r, t)
    // calculate the shear at the plate around the chamber opening.
    // input argument:
        // p - MPa or N/mm^2, uniform load
        // r - mm, radius of circular plate
        // t - mm, plate thickness
    // output argument:
        // tau_fp - MPa, maximum shear stress    
    c = 2*%pi*r;            // mm, circumference
    a_shear = c.*t;         // mm^2, area under shear
    a_normal = %pi*r.^2;    // mm^2, area perpendicular to pressure
    F = p.*a_normal;        // N, force due to pressue
    tau_fp = F./a_shear;
endfunction

// (3) maximum principal stress theory
function sigma_d=max_Pst(sigma, tau)
    // calculate the design stress based on max principal stress theory
    // input argument:
        // sigma - MPa, principal stress (uniaxial)
        // tau - MPa, shear stress
    // output argument:
        // sigma_d - MPa, design stress based on MPST
    sigma_d = (sigma/2)+sqrt((sigma/2).^2 + tau.^2);
endfunction

// (4) factor of safety
function N=FoS(sigma_d, sigma_u)
    // calculate the factor of safety for brittle material
    // input argument:
        // sigma_d - MPa, design stress
        // sigma_u - MPa, ultimate strength
    // output argument:
        // N - no unit, factor-of-safety 
    N = sigma_u./sigma_d;   
endfunction

// main function
// (5) primary parameters
p_atm = 760;                // Torr, atmospheric pressure
p_vac = 0.001;              // Torr, vacuum pressure
r = 500/2;                  // mm, radius of flat circular cover
nu = 0.35;                  // Poisson's ratio of acrylic or
                            // polymethyl methacrylate of PMMA
sigma_u = 75;               // MPa, ultimate tensile strength of PMMA

// (6) secondaty parameters
p_eqv = p_atm-p_vac;            // Torr, equivalent pressue
p_eqv = p_eqv*0.000133322;      // MPa, equivalent pressure

// (7) thickness domain under examination
t = linspace(1,75,200)

// (8) calculation
sigma_fp = flatPlate(p_eqv,r,t,nu)
tau_fp = shearPlate(p_eqv,r,t)
sigma_d = max_Pst(sigma_fp,tau_fp)
N = FoS(sigma_d,sigma_u)

// (9) visualization of results
clf;
fig = gcf()
fig.figure_size = [700,700];

plot(t,N,"b-","linewidth",3.5)
title("Thickness of Vacuum Chamber Cover","fontsize",4.5)
xlabel("Design Thickness (t), mm","fontsize",4)
ylabel("Factor-of-Safety (N)","fontsize",4)
xgrid(3,0)
note="$\LARGE N = f(t),\quad\text{with Max Principal Stress Theory}$"
legend(note,with_box = %F)
xstring(50,53,"https://gani-mech-toolbox.blogspot.com")

// (10) plot of standard thickness and factor-of-safety
std_thk = [25 50 75]
Nstdthk = length(std_thk)
format(5)

for i = 1:Nstdthk
    N(i) = interp1(t,N,std_thk(i))
    vLx = [std_thk(i) std_thk(i)]; vLy = [0 N(i)];
    hLx = [0 std_thk(i)]; hLy = [N(i) N(i)];
    plot(vLx,vLy,"r--")
    plot(hLx,hLy,"r--")
    plot(std_thk(i),N(i),"marker","o","markerFaceColor","red")
    xstring(5,N(i),["$\large N = $",string(N(i))])
    xstring(std_thk(i)+3.5,0,["$\large t = $",string(std_thk(i))],-90)
end

ax = gca()
ax.data_bounds = [0 0; 80 60];

  • Scilab Output (Figure 2)

Figure 2. Factor-of-Safety as a function of thickness for the design of vacuum chamber cover.

A vacuum chamber cover with the thickness of \(\text{50 mm}\) would be reasonable enough for the consideration such that its weight will provide an initial compression set for gasket in between the chamber and the cover, but a toggle clamp or any clamping mechanism is still necessary for a leak free sealing, and the provision of fittings for inlet/outlet vacuum port and instruments at the chamber cover leads to an increase in stress concentration that in effect reduce the factor-of-safety.

Feel free to comment for inquiry, clarification, correction or suggestion for improvement. Drop your email to make a request to the author.

References

  1. M.F. Spotts. Design of Machine Elements. 6th Ed. Englewood Cliffs, N.J. 07632. Prentice-Hall, Inc. 1985.
  2. Virgil Moring Faires. Design of Machine Elements. 4th Ed. The Macmillan Company, New York. 1968. 

Friday, 7 March 2025

Bearing Selection using Static, Dynamic Load Rating, Rating Life, and Survival Rate

Topic: Rolling Contact Bearings

Subject: Machine Design

Tool: Scilab & QCAD

By: Gani Comia, Mar. 2025

Let us use an illustrated problem shown in Figure 1 to demonstrate the basic process of selecting an appropriate deep groove ball bearing that satisfy the minimum requirements for an application. The design on Figure 1 requires a deep groove ball bearing with a fixed bore diameter, \(d\), subjected to a pure constant and steady radial load, \(F_r\). The assembly requires the outer ring of the bearing to rotate at 1200 \(rpm\).

Figure 1. Deep Groove Ball Bearing Sample Design Requirements.

For the application with a simple pure radial load, a deep groove ball bearing will be used. For this example, a Timken brand will be chosen to select an appropriate bearing number that will satisfy requirements for static, dynamic load rating and bearing rating life.

  • Static Load Rating

The basic static load rating, \(C_{0r}\), is based on a maximum contact stress within a non-rotating bearing at the center of the most heavily loaded rolling element and raceway contact. Equation (1) is the requirement for the static load rating.

$$C_{0r} > P_r \tag{1}$$

Where:
\(C_{0r}\) – static load rating, \(kN\)
\(P_r\) – equivalent radial load, \(kN\)

The equivalent radial load is defined in Equation (2)

$$P_r = C_1 V_1 F_r \tag{2}$$

Where:
\(C_1\) – shock and impact factors, \(C_1 = 1.0\) for a constant and steady load
\(V_1\) – race rotation factor, \(V_1 = 1.0\) for inner ring rotation and \(V_1 = 1.2\) for outer ring rotation

Calculating the equivalent radial load of the given design problem will arrived at

$$P_r = (1) (1.2) (1\;\text{kN}) = 1.2 \; \text{kN}$$

From the given \(P_r\), a bearing with static load rating, \(C_{0r}\), is chosen together with the information of bore diameter, \(d = 10 \; mm\). In reference to Timken’s catalog for deep groove ball bearing, there are three possible bearing numbers that satisfy the two requirements and they are Bearing no. 6000, 6200, and 6300 as shown in Table 1.

Table 1. Basic Information of Timken Bearing no. 6000, 6200, and 6300.

  • Dynamic Load Rating and Rating Life

Dynamic load rating, designated as \(C\), is defined as the radial load under which a population of bearings will achieve an \(L_{10}\) life of one million revolutions. Bearing life is defined as the length of time, or number of revolutions, until a fatigue spall of \(6 \; {mm}^2\) develops. The rating life, \(L_{10}\), is the life that 90 percent of a group of identical bearings will complete or exceed before a fatigue spall develops. The \(L_{10}\) life is associated with 90 percent reliability for a single bearing under a certain load. It has been calculated using the dynamic equivalent radial load, \(P_r\), and the dynamic load rating, \(C\), based on one million cycles.

$$L_{10} = \left(\frac{C}{P_r}\right)^e \; \left(\frac{1\, \times \,{10}^6}{60 \, n} \right) \tag{3}$$

Where:
\(L_{10}\) – rating life, \(hr\)
\(C\) – dynamic load rating, \(kN\)
\(P_r\) – equivalent radial load, \(kN\)
\(n\) – bearing’s inner or outer race rotation, \(rpm\)
\(e\) -constant, \(e = 3\) for ball bearings and \(e = 10/3\) for roller bearings

Using the rating life defined in Equation (3), the appropriate bearing number can be selected based on the number of hours it can be run until it completes or exceeds the fatigue limit. Below is the calculation for the illustrated problem with the use of Scilab script.

  • Scilab Script

// Copyright (C) 2025 - Gani Comia
// Date of creation: 5 Mar 2025
// Deep Groove Ball Bearing Selection
clear;clc;
// (1) static load rating calculation
// (1-1) equivalent radial load function
function Pr=eqRadLoad(Fr)
    C1 = 1.0;                   // constant and steady load factor
    // V1 = 1.0;                // inner ring rotation factor
    V1 = 1.2;                   // outer ring rotation factor
    Pr = C1.*V1.*Fr;            // kN, equivalent radial load
endfunction

Fr = 1;                         // kN, pure radial load
Pr = eqRadLoad(Fr);             // kN, equivalent radial load
mprintf("Equivalent Radial Load, Pr = %3.2f kN\n", Pr);
mprintf("Required Static Load Rating, Cor > %3.2f kN\n", Pr);

// (1-2) design decision
// for the given d = 10 and equivalent radial load for
// deep groove ball bearing, 6000, 6200 and 6300 can be used since
// their static load rating, Cor > Pr.

// (2) dynamic load rating and bearing life calculation
// bearing life, L10 (hrs) as a function of dynamic load ratings
function L10=bLife(Cr, Pr, n)
    e = 3.0;                    // for ball bearings
    L10 = ((Cr./Pr).^e).*(1e6/(60*n));
endfunction

// (2-1) dynamic load ratings for Bearing No. 6000, 6200, and 6300
Cr = [4.60 5.10 8.10];          // kN, dynamic load ratings                 
nCr = length(Cr);               // number of bearing samples
Pr = 0.1:0.005:2.0;             // domain of equivalent radial load
n = 1200;                       // rpm, design rotation

// (2-2) calculation and plot
clf;
f = gcf();
f.figure_size = [700,700];

// (2-3) calculation of bearing life, L10
for i = 1:nCr
    L10(i,:) = bLife(Cr(i),Pr,n);    
end

// (2-4) plot of L10 and Pr
plot("nl",Pr,L10(1,:),"b-","linewidth",3);
plot("nl",Pr,L10(2,:),"r-","linewidth",3);
plot("nl",Pr,L10(3,:),"m-","linewidth",3);
title("Timken Deep Groove Ball Bearing","fontsize",4.0);
xlabel(["$\mathbf{P_r}$",",Equiv Radial Load, kN"],"fontsize",3.5);
ylabel(["$\mathbf{L_{10}}$",",Bearing Life, hr"],"fontsize",3.5);
note1 = "$\Large\text{Bearing no. 6000}$";
note2 = "$\Large\text{Bearing no. 6200}$";
note3 = "$\Large\text{Bearing no. 6300}$";
legend([note1,note2,note3],with_box=%F);
xgrid(3,0);

// (2-5) plot of L10 for Prad = 1.2 kN for 3 bearing nos.
Prad = 1.2;                     // kN, equivalent radial load
for j = 1:nCr
    L10(j) = bLife(Cr(j),Prad,n);
end

// (2-5-1) vertical line or Prad
vX = [Prad Prad]; vY = [1e2 L10(3)];
plot(vX,vY,"k--");
// (2-5-2) horizontal line for L10 for 3 bearing nos.
for k = 1:nCr
    hX = [0 Prad]; hY = [L10(k) L10(k)];
    plot(hX,hY,"k--");
    plot(Prad,L10(k),"marker","o","markerFaceColor","black");
end
// (2-5-3) L10 labels
format(7);
xstring(0.1,L10(1)-375,["$\large \mathbf {L_{10}=}$",string(L10(1))]);
xstring(0.1,L10(2),["$\large \mathbf {L_{10}=}$",string(L10(2))]);
xstring(0.1,L10(3),["$\large \mathbf {L_{10}=}$",string(L10(3))]);
xstring(1.4,1e6,["@ n = ", string(n), "rpm"]);
xstring(0.4,5e6,"https://gani-mech-toolbox.blogspot.com");
mprintf("Bearing no. 6300 has L10 = %6.1f hrs\n", L10(3));

  • Scilab Output (Figure 2)

Figure 2. Bearing’s Rating Life for an Equivalent Radial Load.

Though the three bearing numbers satisfy the bore dimensions and static load rating, the suitable bearing can be further trimmed down on the requirements of applicable rating life as shown in Figure 2.

  • Bearing Survival

If the machine is assembled with a total number of \(N\) bearings and each has the same reliability, \(R\), then the reliability of the group of bearings or assembly is

$$R_N = R^N \tag{4}$$

Where:
\(R_N\) – reliability of the group of \(N\) bearings
\(R\) – reliability of each bearing, for \(L_{10}\), \(R = 0.90 \;\; \text{or} \;\; 90\,\text{%}\)
\(N\) – total number of bearings in the assembly

Let us assume that there are two similar bearings in the machine assembly, then its reliability is

$$R_N = (0.9)^2 = 0.81 \;\; \text{or} \;\; 81\,\text{%}$$

The presented factors as basis for bearing selection are some of the important considerations. Actual design might need to take additional considerations into account and it is encouraged the reader to refer to the rolling contact bearing manufacturers information for more details.

Feel free to comment for inquiry, clarification, or suggestion for improvement. Drop your email to request the soft copy of the code.

References

  1. Timken Engineering Manual, Catalog No. 10424.
  2. Timken Deep Groove Ball Bearing, Catalog No. 10857.
  3. M.F. Spotts. Design of Machine Elements. 6th Ed. Englewood Cliffs, N.J. 07632. Prentice-Hall, Inc. 1985.
  4. J.E. Shigley and C.R. Mischke. Mechanical Engineering Design. 5th Ed. New York, New York 10020. McGraw-Hill Publishing Company. 1989.

Sunday, 23 February 2025

Shaft-Hub Assembly Press or Shrink Fit Axial Force and Torque

Topic: Thick-Wall Theory for Cylinders

Subject: Machine Design

Tools: Scilab and QCAD

By: Gani Comia, Feb. 2025


  • Interfacial or Contact Pressure

The contact pressure in a press or shrink fit of the shaft and hub assembly due to interference fit is used to calculated the axial force to disassemble the hub in the direction of the shaft. Likewise, it is used to calculate the torque to rotate the hub around the shaft axis as well. Figure 1 shows the forces and torque in a shaft-hub assembly of machine elements.

Figure 1. Pressure, Force, and Torque in the Shaft-Hub Assembly

This article presents the equations for calculating interfacial pressure between the surface of the shaft and the hub and apply it to solve for axial force and torque. Let us define and illustrate the problem using Figure 2.

Figure 2. Sample Shaft-Hub Assembly and Parameters

The contact pressure, \(p\), between the internal surface of the hub and outer surface of the shaft can be expressed as a function of interference as shown in Equation (1).

$$p = \left[ \frac{1}{K_h + K_s} \right] \frac{\delta_{total}}{R} \tag{1}$$

Where:
\(K_h\) – constant for outside member or the hub
\(K_s\) – constant for inside member or the shaft
\(\delta_{total}\) – total radial interference
\(R\) – mean radius at the interface of contacting surface

The constants for the outside (hub) and inside (shaft) members are defined as,

$$K_h = \frac{1}{E_h} [C_h + \nu_h], \quad C_h = \frac{\zeta_h^2 + 1}{\zeta_h^2 - 1}, \quad \zeta_h = \frac{r_h}{R} \tag{2}$$

$$K_s = \frac{1}{E_s} [C_s - \nu_s], \quad C_s = \frac{\zeta_s^2 + 1}{\zeta_s^2 - 1}, \quad \zeta_s = \frac{R}{r_s} \tag{3}$$

For the solid shaft where the inside radius is

$$r_s = 0 , \quad \zeta_s = \frac{R}{r_s} = \infty , \quad C_s = 1 \tag{4}$$

Then the constant for the inside member or the shaft becomes,

$$K_s = \frac{1}{E_s} [1 - \nu_s] \tag{5}$$

Where:
\(E_h\) and \(E_s\) – modulus of elasticity of the hub and shaft respectively
\(\nu_h\) and \(\nu_s\) – Poisson ratio of the hub and shaft respectively
\(r_h\) – outside radius of the hub
\(r_s\) – inside radius of the shaft
\(\zeta_h\) and \(\zeta_s\) – ratio of the radius defined in Equations (2) and (3)
\(C_h\) and \(C_s\) – geometric constant


  • Radial Force

$$F_r = 2 \pi R L p \tag{6}$$

Where:
\(F_r\) – radial force
\(L\) – length of contact


  • Tangential Force

$$F_t = f F_r \tag{7}$$

Where:
\(F_t\) – tangential force


  • Torque

$$T = 2 \pi R^2 L f p \tag{8}$$

Where:
\(T\) – torque
\(f\) – coefficient of static friction

Below is the application of the equations presented to calculate for the solution of the illustrated problem with the use of Scilab script.

  • Scilab Script

// Copyright (C) 2025 - Gani Comia
// Date of creation: 28 Feb 2025
// Shaft-Hub Press or Shrink Fit Assembly Calculation
clear;clc;
// (1) --- methods or functions ---
// (1-1) interfacial pressure between shaft-hub assembly
function p=cP(Kh, Ks, radInt, R)
    p = (1/(Kh+Ks)).*(radInt./R);
endfunction

// (1-2) hub, K-constant
function Kh=kHconst(E_h, nu_h, r_h, R)
    zeta = r_h./R;
    C_h = (zeta.^2 + 1)./(zeta.^2 - 1);
    Kh = (1/E_h).*(C_h + nu_h);
endfunction

// (1-3) shaft, K-constant
function Ks=kSconst(E_s, nu_s)
    C_s = 1;
    Ks = (1/E_s).*(C_s - nu_s);
endfunction

// (1-4) radial force due to interfacial pressure
function fRad=radialF(p, R, L)
    fRad = p.*2*%pi.*R.*L./9.8;
endfunction

// (1-5) tangential force due to radial force
function fTan=tangentF(f, fRad)
    fTan = f.*fRad;
endfunction

// (1-6) torque at interference surface
function T=torque(fTan, R)
    T = fTan.*R./1000;
endfunction

// (2) --- main function ---
// (3) hub parameters, steel with the following properties
id_h = [50.280 50.300];     // mm, hub ID
od_h = 100.0;               // mm, hub OD
or_h = od_h./2;             // mm, hub outside rad         
E_h = 213e3;                // MPa (N/mm^2), modulus of elasticity
nu_h = 0.295;               // poisson ratio
L =  25.0;                  // mm, length of contact
f = 0.1;            // coefficient of static friction steel-to-steel

// (4) shaft parameter, steel with the following properties
od_s = [50.350 50.370];     // mm, shaft OD
id_s = 0;                   // mm, shaft ID
E_s = 205e3;                // MPa (N/mm^2), modulus of elasticity
nu_s = 0.28;                // poisson ratio

// (5) derived parameters
format(7);
// (5-1) mean radius at the interface
R = (1/2)*[(od_s(1)+id_h(2))/2 , (od_s(2)+id_h(1))/2];
// (5-2) total radial interference
radInt = (1/2)*[(od_s(1)-id_h(2)) , (od_s(2)-id_h(1))];
// (5-3) diametral interference
diaInt = 2*radInt;
mprintf("Dia Inter (mm): min:%4.3f & max:%4.3f\n",diaInt(1),diaInt(2));

// (6) calculation
for i = 1:2
    Kh(i) = kHconst(E_h,nu_h,or_h,R(i));
    Ks(i) = kSconst(E_s,nu_s);   
    p(i) = cP(Kh(i),Ks(i),radInt(i),R(i));
    fRad(i) = radialF(p(i),R(i),L);
    fTan(i) = tangentF(f,fRad(i));
    T(i) = torque(fTan(i),R(i));
end

mprintf("Axial Force (kgf): min:%5.0f & max:%5.0f\n",fTan(1),fTan(2));
mprintf("Torque (kgf-m): min:%4.0f & max:%4.0f\n",T(1),T(2));

// (7) plot calculation results
clf;
fig = gcf()
fig.figure_size = [800,600]

subplot(1,2,1);

// (7-1) Fa = f(delta) relationship 
m_a = diff(fTan)/diff(diaInt);
b_a = fTan(1) - m_a.*diaInt(1);
x_a = linspace(0.040,0.100,50);
y_a = m_a.*x_a + b_a;

// (7-2) plot of axial force - diametral interference
plot(x_a,y_a,"b-","linewidth",3);
title(["$\Large Fa = f(\delta)$","for","$\Large f_s=0.1$"],"fontsize",3.5);
xlabel(["$\large \delta$",", Dia Interference, mm"],"fontsize",3.25)
ylabel(["$\large Fa$",", Axial Force, kgf"],"fontsize",3.25);
xgrid(3,0);
mprintf("Line Prop: m=%6.1f and b=%3.1e\n",m_a,b_a);
legend("$\LARGE F_a = 62726.3\;\delta$",with_box=%F);
xstring(0.045,7000,"https://gani-mech-toolbox.blogspot.com");
ax = gca()
ax.data_bounds = [0.040 2000; 0.100 8000];

format(6)
// (7-3) axial force @ min diametral interference
for j = 1:2
    v_x = [diaInt(j) diaInt(j)]; v_y = [2000 fTan(j)];
    plot(v_x,v_y,"m--","linewidth",1.5);
    h_x = [0.04 diaInt(j)]; h_y = [fTan(j) fTan(j)];
    plot(h_x,h_y,"m--","linewidth",1.5);
    plot(diaInt(j),fTan(j),"s","markerFaceColor","magenta");
    xstring(diaInt(j)-0.001,fTan(j),["Fa = ",string(fTan(j))],-40);
end

subplot(1,2,2);

// (7-4) T = f(delta) relation ship
m_t = diff(T)/diff(diaInt);
b_t = T(1) - m_t.*diaInt(1);
x_t = linspace(0.040,0.100,50);
y_t = m_t.*x_t + b_t;

// (7-5) plot of torque - diametral interference
plot(x_t,y_t,"r-","linewidth",3);
title(["$\Large T = f(\delta)$","for","$\Large f_s=0.1$"],"fontsize",3.5);
xlabel(["$\large \delta$",", Dia Interference, mm"],"fontsize",3.25);
ylabel(["$\large T$",", Torque, kgf-m"],"fontsize",3.25);
xgrid(3,0);
ax = gca()
ax.data_bounds = [0.040 60; 0.100 180];
mprintf("Line Prop: m=%6.1f and b=%3.1e\n",m_t,b_t);
legend("$\LARGE T = 1578.4\;\delta$",with_box=%F);
xstring(0.045,160,"https://gani-mech-toolbox.blogspot.com");

format(5);
// (7-6) torque @ min & max diametral interference
for k = 1:2
    v_x = [diaInt(k) diaInt(k)]; v_y = [60 T(k)];
    plot(v_x,v_y,"m--","linewidth",1.5);
    h_x = [0.04 diaInt(k)]; h_y = [T(k) T(k)];
    plot(h_x,h_y,"m--","linewidth",1.5);
    plot(diaInt(k),T(k),"s","markerFaceColor","magenta");
    xstring(diaInt(k)-0.001,T(k),["T = ",string(T(k))],-42);
end

  • Scilab Output (Figure 3)


Figure 3. Axial Force and Torque in relation to Diametral Interference

For the cylinder to be considered to follow the thick-walled theory, the ratio of thickness over diameter should be \(t\,/\,D > 0.1\), giving rise to tangential and radial stresses within the wall.

It is encouraged the reader to refer to the book Mechanical Engineering Design, 7th edition text by Joseph Edward Shigley, Charles R. Mischke and Richard G. Budynas for the detailed discussion of the subject.

Feel free to comment for inquiry, clarification, or suggestion for improvement. Drop your email to request the soft copy of the file. 

Reference
  1. J.E. Shigley, C.R. Mischke, and R. Budynas. Mechanical Engineering Design. 7th Ed. McGraw-Hill Publishing Company. 2003.

C++ and Python for Numerical Solution to Spring-Mass-Damper Model

Topic: SDOF Spring-Mass-Damper System Subject: Numerical Methods & Mechanical Vibration Tools: C++, CodeBlocks, GitHub Copilot, LabP...