《Mechanics of Solid Polymers》5.3.8 Yeoh超弹模型
5.3.8Yeoh模型Yeoh模型是基于Helmholtz自由能,这个自由能表达为关于I₁的三阶多项式,且不依赖于I₂。由于包含了更高阶的I₁项,该模型能够提供比NH模型更准确的预测,同时可能避免Mooney-Rivlin模型的一些稳定性问题。对于Yeoh模型的可压缩版本,一种便捷的方法来表示单位参考体积的Helmholtz自由能如下:该模型需要四个材料参数: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.17Treloar[16]的实验数据与不可压缩Yeoh模型预测结果的对比则是C₁₀为正值,C₂₀≈-0.01C₁₀,以及C₃₀≈-0.01C₂₀。对于不可压缩单轴加载,Yeoh材料模型可以使用以下Python代码实现:Python代码:"Yeoh_incompressible_uniaxial.py"frompylabimport*defYeoh(strain,params):"""Yeoh超弹性模型。不可压缩单轴加载。此函数使用真实应力和应变"""C10=params[0]C20=params[1]C30=params[2]lam=exp(strain)I1=lam**2+2/lamreturn2*(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):"""Yeoh3D加载由拉伸指定。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"frompylabimport*fromPolymer_Mechanics_Chap05import*trueStrain=linspace(0,0.8,100)trueStress=uniaxial_stress(Yeoh_3D,trueStrain,\[1.0,-0.01,1e-4,100])plot(trueStrain,trueStress,'r-')xlabel('TrueStrain')ylabel('TrueStress(MPa)')grid('on')show()Python代码创建的图:来源:ABAQUS仿真世界