Assumptions: the drive shaft can be approximated to a thin-walled tube where edge effects are neglected, see the case study Thin-walled pipes.
The relation between the shear section force $N_{xy}$ and the torque $T$ is now
\begin{equation} N_{xy}=\frac{T}{2\pi R^2} \tag{1} \end{equation}Hence, the governing set of equations is:
\begin{equation} \begin{bmatrix} 0 \\ 0 \\ N_{xy} \end{bmatrix} = \begin{bmatrix} A_{xx} & A_{xy} & A_{xs} \\ A_{xy} & A_{yy} & A_{ys} \\ A_{xs} & A_{ys} & A_{ss} \end{bmatrix} \begin{bmatrix} \varepsilon_x^0 \\ \varepsilon_y^0 \\ \gamma_{xy}^0 \end{bmatrix} \tag{2} \end{equation}For a balanced laminate, the only non-trivial equation is:
\begin{equation} N_{xy}=A_{ss}\gamma_{xy}^0 \tag{3} \end{equation}From equation (1),
\begin{equation} \tau_{xy}=\frac{T}{2\pi R^2 t} \tag{4} \end{equation}The von Mises stress is now
\begin{equation} \sigma_{v}=\sqrt{3}\tau_{xy} \tag{5} \end{equation}Consider the following requirements and parameters for a steel shaft:
Computing the required thickness and resulting mass per length:
from math import pi
import numpy as np
T=5E6 #Nmm
E,v,rho = 200000, 0.3, 7800E-12
G=E/(2+2*v)
Ro=30
def misesAndMass(t):
Ri=Ro-t
R=(Ro+Ri)/2
tau=T/(2*pi*t*R**2)
mises=(3**0.5)*tau
mass=rho*pi*(Ro**2 - Ri**2)*1E6
return (mises,mass)
thi = np.linspace(2,3,10000)
for t in thi:
mises,mass_steel=misesAndMass(t)
if mises<750:
break
print('Thickness= ',round(t,3),'mm')
print('Mises stress=',round(mises,1),'MPa')
print('Mass= ', round(mass_steel,3),'kg/m')
import laminatelib
import matlib
m1=matlib.get('Carbon/Epoxy(a)')
from math import pi
def driveShaftStuff(angle,t,R,T):
layup =[{'mat':m1, 'ori':-angle, 'thi':t/2},
{'mat':m1, 'ori':+angle, 'thi':t/2}]
Ass=laminatelib.laminateStiffnessMatrix(layup)[5,5]
Nxy=T/(2*pi*R**2)
gxy0 = Nxy/Ass
deformations=np.array([0,0,gxy0,0,0,0])
res = laminatelib.layerResults(layup,deformations)
return res[0]['fail']
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
angles=np.linspace(30,60)
fE_MS = [driveShaftStuff(angle,t=1, R=30,T=5E6)['MS']['bot'] for angle in angles]
plt.plot(angles,fE_MS)
plt.show()
The optimum angle is clearly 45 degrees.
Ro=30
t=3.5
Ri=Ro-t
R=(Ro+Ri)/2
driveShaftStuff(45,t=t, R=R,T=5E6)
mass_cfrp=m1['rho']*pi*(Ro**2 - Ri**2)*1E6
print('Mass pr. meter', mass_cfrp,'kg')
mass_cfrp/mass_steel
Disclaimer:This site is about polymer composites, designed for educational purposes. Consumption and use of any sort & kind is solely at your own risk.
Fair use: I spent some time making all the pages, and even the figures and illustrations are my own creations. Obviously, you may steal whatever you find useful here, but please show decency and give some acknowledgment if or when copying. Thanks! Contact me: nils.p.vedvik@ntnu.no www.ntnu.edu/employees/nils.p.vedvik
Copyright 2021, All right reserved, I guess.