TMM4175 Polymer Composites

Home About Python Links Next Previous Table of Contents

Maximum strain criterion

The Maximum strain criterion follows the same principle as the Maximum stress criterion, where strain components are compared to corresponding failure strains. When assuming linear relations between stresses and strains, the criteria can be expressed as

\begin{equation} f = max\Big( -\frac{\varepsilon_1}{X_C/E_1}, \frac{\varepsilon_1}{X_T/E_1}, -\frac{\varepsilon_2}{Y_C/E_2}, \frac{\varepsilon_2}{Y_T/E_2}, -\frac{\varepsilon_3}{Z_C/E_3}, \frac{\varepsilon_3}{Z_T/E_3}, \frac{|\gamma_{12}|}{S_{12}/G_{12}}, \frac{|\gamma_{13}|}{S_{13}/G_{13}}, \frac{|\gamma_{23}|}{S_{23}/G_{23}}\Big) \tag{1}\end{equation}

A function for the stress exposure factor $f_E$:

In [1]:
def fE_maxstrain(s,m):
    s1,s2,s3,s23,s13,s12=s[0],s[1],s[2],s[3],s[4],s[5]
    XT,YT,ZT,XC,YC,ZC,S12,S13,S23 = m['XT'],m['YT'],m['ZT'],m['XC'],m['YC'],m['ZC'],m['S12'],m['S13'],m['S23']
    E1,E2,E3,v12,v13,v23,G12,G13,G23=m['E1'],m['E2'],m['E3'],m['v12'],m['v13'],m['v23'],m['G12'],m['G13'],m['G23']
    e1=   (1/E1)*s1 + (-v12/E1)*s2 + (-v13/E1)*s3
    e2=(-v12/E1)*s1 +    (1/E2)*s2 + (-v23/E2)*s3
    e3=(-v13/E1)*s1 + (-v23/E2)*s2 +    (1/E3)*s3
    e23,e13,e12 = s23/G23, s13/G13, s12/G12
    f=max( e1/(XT/E1),-e1/(XC/E1),e2/(YT/E2),-e2/(YC/E2),e3/(ZT/E3),-e3/(ZC/E3),
           abs(e12/(S12/G12)),abs(e13/(S13/G13)),abs(e23/(S23/G23)) )
    return f

Example:

In [2]:
import matlib
m1=matlib.get('Carbon/Epoxy(a)')
stress1, stress2, stress3, stress4 = (150, 0, 0, 0, 0, 0) , (-120,-60,0,0,0,0) , (1000,60,0,0,0,0) , (0,0,0,0,0,150)
print()
fE1=fE_maxstrain(stress1,m1)
fE2=fE_maxstrain(stress2,m1)
fE3=fE_maxstrain(stress3,m1)
fE4=fE_maxstrain(stress4,m1)
print('Exposure factor for case stress1: ',fE1)
print('Exposure factor for case stress2: ',fE2)
print('Exposure factor for case stress3: ',fE3)
print('Exposure factor for case stress4: ',fE4)
Exposure factor for case stress1:  0.08333333333333333
Exposure factor for case stress2:  0.8146153846153846
Exposure factor for case stress3:  0.9615384615384615
Exposure factor for case stress4:  2.142857142857143

Failure envelope, $\sigma_1$ versus $\sigma_2$:

In [3]:
import matplotlib.pyplot as plt
%matplotlib inline
fig,ax = plt.subplots(figsize=(8,4))

# empty list of normal stresses in the 1-2 plane:
s1,s2=[],[]

# sweeping 0-3600 points

from math import cos,sin,radians

for a in range(0,3600):
    s1i=cos(radians(a/10))
    s2i=sin(radians(a/10))
    fe=fE_maxstrain((s1i,s2i,0,0,0,0),m1)
    # then scaling by the load-proportionality ratio (1/fE):
    s1.append(s1i/fe)
    s2.append(s2i/fe)

ax.plot(s1,s2,'--',color='blue',linewidth=1)
#Making axes through the origo:
ax.plot((0,),(0,),'+',color='black',markersize=50)

ax.set_xlabel(r'$\sigma_1$',fontsize=14)
ax.set_ylabel(r'$\sigma_2$',fontsize=14)

ax.grid(True)

plt.tight_layout()

Failure envelope, $\sigma_2$ versus $\sigma_3$:

In [4]:
fig,ax = plt.subplots(figsize=(6,6))
# empty list of normal stresses in the 1-2 plane:
s2,s3=[],[]

# sweeping 0-3600 points:

from math import cos,sin,radians

for a in range(0,3600):
    s2i=cos(radians(a/10))
    s3i=sin(radians(a/10))
    fe=fE_maxstrain((0,s2i,s3i,0,0,0),m1)
    # then scaling by the load-proportionality ratio (1/fE):
    s2.append(s2i/fe)
    s3.append(s3i/fe)
    
ax.plot(s2,s3,'--',color='blue',label='Maximum strain',linewidth=1)
ax.plot((0,),(0,),'+',color='black',markersize=50)
ax.legend(loc='best')

ax.set_xlabel(r'$\sigma_2$',fontsize=14)
ax.set_ylabel(r'$\sigma_3$',fontsize=14)

ax.grid(True)

plt.tight_layout()

The 3-dimensional maximum strain criterion produces a few highly inconsistent results, one of them shows up in the last envelope where apparantly a basic strength parameter has changed... To be discussed in lectures

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.