该模型需要四个材料参数:C₁₀、C₂₀、C₃₀和κ。需要注意的是,一些有限元程序还使用更高阶项来表示体积变形的能量。正如在2.2.9节中讨论的那样,这些高阶项在模型预测的精度中很少起作用。
Yeoh模型的主要动机之一是,对于大多数弹性体而言,Helmholtz自由能对第一不变量I₁的依赖性比对I₂的依赖性强得多[24-26]。此外,实验上很难确定Helmholtz自由能对I₂项的依赖关系。基于这些论点,Yeoh [24]建议可以合理地忽略对I₂的依赖。还有研究表明,通过忽略I₂的依赖性,可以更容易地确保超弹性模型是Drucker稳定的[24](参见5.8.2节)。
使用方程(5.41),可以证明可压缩Yeoh模型的Cauchy应力由下式给出:
对于不可压缩Yeoh模型版本,单轴、平面和等双轴变形的Cauchy应力由以下表达式给出:
Yeoh模型预测弹性体行为的准确性如图5.17中所示。这张图表明,对于不同的加载模式,Yeoh模型能够改进NH模型的预测结果,特别是在大变形情况下。对于许多弹性体材料,已有研究[27]表明,一个选择材料参数的经验法
图5.17 Treloar[16]的实验数据与不可压缩Yeoh模型预测结果的对比
from pylab import *
defYeoh(strain, params):
"""Yeoh 超弹性模型。
不可压缩单轴加载。
此函数使用真实应力和应变"""
C10 = params[0]
C20 = params[1]
C30 = params[2]
lam = exp(strain)
I1 = lam**2 + 2/lam
return2 * (lam*lam - 1/lam) * (C10 + 2*C20*(I1-3) + 3*C30*(I1-3)**2)
strain = linspace(0, 0.8)
params = [1.0, -0.1, 0.01]
stress = Yeoh(strain, params)
plot(strain, stress, 'r-')
show()
以下代码示例展示了如何实现可压缩单轴加载的Yeoh材料模型:
defYeoh_3D(stretch, param):
"""Yeoh 3D加载由拉伸指定。
param: [C10, C20, C30, kappa]。返回真实应力。"""
L1 = stretch[0]
L2 = stretch[1]
L3 = stretch[2]
F = array([[L1,0,0], [0,L2,0], [0,0,L3]])
J = det(F)
bstar = J**(-2.0/3.0) * dot(F, F.T)
devbstar = bstar - trace(bstar)/3 * eye(3)
I1s = trace(bstar)
return2/J*(param[0] + 2*param[1]*(I1s-3) + \
3*param[2]*(I1s-3)**2)*devbstar + param[3]*(J-1) * eye(3)
Python代码:"Yeoh_compressible_uniaxial.py"
from pylab import *
from Polymer_Mechanics_Chap05 import *
trueStrain = linspace(0, 0.8, 100)
trueStress = uniaxial_stress(Yeoh_3D, trueStrain, \
[1.0, -0.01, 1e-4, 100])
plot(trueStrain, trueStress, 'r-')
xlabel('True Strain')
ylabel('True Stress (MPa)')
grid('on')
show()
Python代码创建的图: