Tøyning er en representasjon av deformasjon. For små tøyninger bruker vi ingeniørtøyninger på følgende form i et koordinatsystem $x,y$ og $z$
\begin{equation} \begin{aligned} &\varepsilon_x=\frac{du}{dx} && \varepsilon_y=\frac{dv}{dy} && \varepsilon_z=\frac{dw}{dz} \\ &\gamma_{xy}=\frac{du}{dy}+\frac{dv}{dx} && \gamma_{xz}=\frac{du}{dz}+\frac{dw}{dx} && \gamma_{yz}=\frac{dv}{dz}+\frac{dw}{dy} \end{aligned} \tag{1} \end{equation}hvor $u,v$ og $w$ er forskyvinger i $x,y$ og $z$ retning.
Eksempel: Tøyning i $x$-$y$-planet som illustrert i figuren under:
$$\varepsilon_x = \frac{du}{dx} = \frac{\Delta X}{X_0} = \frac{X-X_0}{X_0}$$ $$\varepsilon_y = \frac{dv}{dy} = \frac{\Delta Y}{Y_0} = \frac{Y-Y_0}{Y_0}$$ $$\gamma_{xy}=\frac{du}{dy}+\frac{dv}{dx} = \frac{a}{Y_0}+\frac{0}{X_0} = \frac{a}{b}$$Merk at for en liten vinkel er
$$\frac{a}{b}=\text{tan}(\gamma_{xy}) \approx \gamma_{xy}$$For store tøyninger er det hensiktsmessig å bruke logaritmisk tøyning, eller sann tøyning, noe vi kun kommer til å bruke i en dimensjon:
Fra ligning (1) med kun normaltøyning i x-retning kan vi utrykke ingeniørtøyning som
$$\varepsilon_x=\frac{du}{dx} \Rightarrow \varepsilon = \frac{X-X_0}{X_0} = \frac{L-L_0}{L_0} = \frac{dL}{L_0}$$Logaritmisk (eller sann) tøyning av tilsvarende tilstand er
$$\varepsilon_{sann} = \text{ln}\bigg(\frac{L}{L_0}\bigg)$$Sammenhengen mellom sann tøyning og ingeniørtøyning er:
$$\varepsilon_{sann} = \text{ln}\bigg(\frac{L}{L_0}\bigg) = \text{ln}\bigg(\frac{L_0+dL}{L_0}\bigg) = \text{ln}(1+\varepsilon)$$For små tøyninger er det minimal forskjell mellom ingeniørtøyning og sann tøyning:
from math import log
print('Ingeniørtøyning Sann tøyning')
for ing_toyning in [0.0001,0.001,0.01, 0.1, 1]:
print(' {:.5f} {:.5f}'.format(ing_toyning, log(ing_toyning+1) ))
Tøyning ved elastisk grense for eksempelvis vanlig konstruksjonsstål er rundt 0.002, som betyr at det er absolutt ingen signifikant forskjell mellom ingeniørtøyning og sann tøyning i det elastiske området i dette tilfellet.
Grafiske eksempler for ingeniørtøyning i x-y planet:
import numpy
import matplotlib.pyplot as plt
%matplotlib inline
def illustrerToyning(ex,ey,exy,skalering):
x=numpy.array([-0.5,0.5,0.5,-0.5,-0.5])
y=numpy.array([-0.5,-0.5,0.5,0.5,-0.5])
ux=(ex*x+0.5*exy*y)*skalering
uy=(ey*y+0.5*exy*x)*skalering
xd=x+ux
yd=y+uy
fig,ax=plt.subplots(figsize=(4,4))
ax.set_xlim(-1,1)
ax.set_ylim(-1,1)
ax.set_axis_off()
ax.set_title('Skaleringsfaktor='+str(skalering))
text=r'$\varepsilon_x=$'+str(ex)+'\n'+r'$\varepsilon_y=$'+str(ey)+'\n'+r'$\gamma_{xy}=$'+str(exy)
ax.text(0,0,text, ha='center',va='center')
ax.plot(x,y,'--',color='lightgreen')
ax.plot(xd,yd,'-',color='darkgreen')
ax.arrow(-0.9, -0.9, 1.0, 0.0, head_width=0.05, head_length=0.05, fc='black', ec='black')
ax.arrow(-0.9, -0.9, 0.0, 1.0, head_width=0.05, head_length=0.05, fc='black', ec='black')
ax.text(0.2,-0.9,'x')
ax.text(-0.9,0.2,'y')
illustrerToyning( ex=0.005, ey=-0.002, exy=0, skalering=100)
illustrerToyning( ex=0.0, ey=0.0, exy=0.01, skalering=100)
illustrerToyning( ex=0.003, ey=0.0, exy=0.003, skalering=100)