经常会有一些群友问这个问题:“为什么计算应力比屈服强度还高?”,这是由于大家弹性力学学的还好,知道应力不会超过屈服面,但思维不够发散,对有限元求解过程又不那么熟悉导致的问题,这里我归纳了两种可能的原因:
比如积分点应力才是数值求解计算的准确值,节点应力是插值并平均化处理得到的;以平面二维单元为例,不同单元类型对应节点和积分点分布如下图所示,其中,小圆点是单元节点;×为积分点。
有限元微分方程求解首先获得节点处的位移,再通过几何方程求解获得应变,由本构方程获得单元积分点应力,因此求解获得的场输出中,有些量位于节点上,比如位移;有些量位于积分点上,比如应力应变。
不管是节点上,还是积分点上,这些数据均是离散的,需要获得连续的云图,势必就要进行插值计算,如果场量数据位于节点上,只需对场量进行内插值,即可保证云图连续;但当场量位于积分点上,则势必进行单元内的外插值获得节点上的数据,如果这个节点被多个单元共用,就会有多个数值,这样云图就会不连续,这是用户不喜欢看到的,如下图左侧所示。
为了解决这个问题,也就有了很多云图处理手段,这里我们来介绍一下ABAQUS中默认采用的平均值处理方法,使用应力平均算法有以下几个前提:
1)场量位于积分点上,并单元插值获得节点数值;
2)节点周边单元获得节点数值不同;
3)节点周边单元的Section(截面属性)一致;
4)节点的数值状态满足设定的公式,计算公式如下,默认阀值为75%:
即:(节点最大数值-节点最小数值)/(域内最大数值-域内最小数值)。
了解了应力云图的计算过程,再回到我们的问题:“为什么计算应力比屈服强度还高?”,当我们提取的应力位置不当:位于节点上时,也就可能高于屈服应力。
另外对于一阶减缩积分单元只有一个积分点,节点应力等于积分点应力,通常不会因为插值而超出屈服强度的情况;而完全积分单元或更高阶单元,在一个维度上有两个或多个积分点,在外插值过程中,得到节点应力也就可能高于屈服值,因此提取节点应力或查看云图时,经常会遇到应力值高于材料的屈服强度。
大多数金属材料的屈服强度都是静水压力无关的,其中静水压力为单元三个主应力的平均值;但大多数岩土材料的强度却是静水压力相关的,因此很多岩土材料模型也会考虑到这一点,比如CDP(混凝土塑性损伤模型)、DP准则、MC(摩尔库伦)准则等。
其中比较容易被忽略的就是ABAQUS CDP模型的静水压力相关特性,因此也有很多混凝土结构分析的同学会问我:“为什么提取的混凝土应力会比混凝土强度还要高?”,其实就是因为CDP的屈服函数是静水压力相关的。
可能会有人继续追问:“我的模型是单轴加载,何来静水压力?”,这是因为将模型的围压和单元的静水压力混为一谈,试件在单轴加载下,内部单元的相互挤压、边界条件的约束等都可能引起局部单元产生静水压力。
如果要测试某个材料本构的加载规律是否符合预期设定,尽量只对一个单元进行加载,并且防止单元过约束而产生静水压力。推荐使用二维单元的加载方式如下图所示,其中一个角点完全约束,另一个角点约束加载方向,剩下的两个角点采用位移约束进行加卸载,不宜采用力的加载方式:
行文匆匆,如有错误或不完善的地方还请批评指正,也欢迎指出更多的可能原因。