ANSYS中的节点解与单元解是怎么回事?附solid186与solid185单元结果对比文档下载
有限元在求解结构问题时,最先得到的是各个节点的位移,再通过弹性力学方程得到单元的应力和应变,得到的单元应力应变实际上是一个函数,这个函数能够描述单元内所有位置处的应力场。无疑,这样没法在软件中显示结果,因此单元解需要确定一些积分点(高斯点),通过积分得到这些积分点的解,这些积分点的解代表单元解。
积分点通常和单元的节点位置不重合,因此想要得到单元节点的解,需要将积分点的解根据某种规则外推,以一种近似的方法得到单元节点的解。由于每个单元外推得到的单元节点解并不完全一致,因此,最初外推得到的单元的节点解不连续,为了让其连续,将不同单元之间的节点外推得到的节点解进行算术平均,这样在连续节点处的节点解仅有一个数值,这样便得到实际在软件中显示的节点解。
简短一点来说:单元解是积分点的解,节点解是外推后平均的解。很明显,从数值精度上来讲,单元解是高于节点解的。
采用ANSYS计算了一个简单的模型,分别采用solid185单元和solid186单元,185单元是8节点单元,186单元是20节点单元,分别计算后查询;
最终,单元总数185为256个,186为256个,单元划分一样,但是节点数不一样,185单元划分的模型节点数为459个,186单元划分的为1605个。
查看ANSYS计算输出的单元解,当单元为185时查询两个挨着的单元应力解如图1所示:
当单元为186时查询两个挨着的单元应力解如图2所示:
经过以上计算可以看出:
(1)无论是185单元还是186单元,计算后的单元解只输出8个节点的值,这个非常奇怪,因为185单元和186单元的积分点数目不一样,185为8个积分点,186为27个积分点;
(2)相邻单元的共同节点的应力值不一样,这个是合理的,因为每一个单元的节点解是根据各自的形函数计算并且外推的,有差别。
这里就留下一个问题,为什么186单元也只输出八个节点的值?
后来注意到,前一篇文章提过一个概念,缩减积分单元和完全积分单元,重新检查了一下ANSYS默认的单元设置,如图3所示,默认的单元设置是Reduced integr(缩减积分),为了查看完全积分单元输出单元解是否也还是八个节点的值,修改设置并重新计算,同样的单元的单元应力解如图4所示。
结果发现依然还是输出8个节点的值,这个和理论上的单元应力输出解不一致,按道理应该是输出27个积分点的值才对。为了证明这个结论,采用Abaqus软件计算,采用20节点完全积分单元进行计算。计算后查询某个单元的单元解,如图5所示:
图5中没有显示完全,但是输出的单元的解确实是27个。
重新采用Abaqus计算8节点完全积分单元,某个单元的单元输出解如图6所示:
正好是八个单元输出解。
再重新计算8节点缩减积分单元,输出单元的单元输出解如图7所示:
图7中只有一个单元输出解,因为采用缩减积分单元后,8节点单元只有一个积分点。
而20节点单元缩减积分后,有7个积分点,应该输出7个单元解,经过计算如图8所示:
图8正好是7个输出解。
Abaqus的计算表明单元输出解果然是输出单元积分点的值,采用完全积分和缩减积分单元输出解不一样,求解精度不一样。
那么为什么ANSYS则没有这种规律呢?
其实后台程序计算是肯定是按照理论上走的,也就是先得到节点的位移,再得到单元积分点的应力应变,再外推得到各个单元节点的应力应变,最后平均得到节点解。
ANSYS之所以显示的单元解不是单元积分点的解,而是各个节点的解,是因为ANSYS已经在得到单元积分点的解之后经过外推得到了单元各个角节点的解,但是还没有做平均。
也就是,ANSYS的单元解,其实不能完全看作单元解,笔者称之为单元角节点解。