gmwstrong 发表于 2009-10-26 16:36:19

abaqus节点应力是如何通过积分点插值得到的

在abaqus后处理中,看到的节点应力或应变一般是通过单元积分点相应的变量经过向外插值之后得到的,不知道使用的是什么插值函数。后处理中输出的element node 的应力分量与inp文件用命令EL PRINT输出的node应力分量不一致,不知道具体原因?不知道有没有高人了解

fuchong 发表于 2009-11-17 18:34:31

应力场是不连续的,主要是在单元边界表现的不联系
这个是在results option里面的computation》averaging下面,默认的是computing scalars before averaging,threshhold = 75%。你改成100%或者另外一种计算方法就可以消除这种应力的不连续了。

先标量再平均:得到的结果相对较大,工程中推荐
先平均再标量:得到的结果相对较小

benrock 发表于 2017-10-7 04:30:08

有限元节点处的应力是由积分点的应力外插值得到,方法类似用型函数求单元内任意处的某变量值,只不过型函数在积分点处值为1.0,就像内插是型函数值在节点处值为1.0。 这种外插求节点应力法对畸变较大的单元效果不太好。另一种平滑的方法是用最小二乘法,这种方法得到的平滑度远高与型函数外插。具体内容可参考cook 的书(第四版)和 J.E. Akin的书

宠爱二师兄 发表于 2012-7-25 15:28:39

经过鉴定,这是一个很好的技术贴了,关于节点应力值,我也遇到过楼主的问题,比如完全自由边界处,应力值竟然不等于0,看了这个贴之后我似乎有点明白了,应该是因为积分点外插值得到节点值时出现的一种数值解和物理解的不调和。

savager000 发表于 2009-10-27 22:14:48

应力和应变在单元的内部是连续的而在单元之间一般不是连续的,即在单元的边界上发生了跳跃,因此同一个节点,由围绕他的不同的单元得到的应力值和应变值通常都是不相等的。

此外在边界上应力解也是与力的边界条件不是完全相符,因此需要对计算得到的应力进行处理。

常用的处理办法:

1 取相邻的单元应力的平均值

2 取围绕节点各单元应力的平均值

此外还需要单元应力磨平,分片应力磨平,以及总体应力磨平才能得到最后显示的应力图

cdstudio 发表于 2009-10-27 22:56:06

建议计算尽量采用二次单元, 一次单元的情况下, 边界处的节点应力可以说完全错误, 二次单元的时候, 情况会好很多

sunhhu2008 发表于 2009-10-28 08:50:57

楼上的好正解

gmwstrong 发表于 2009-10-30 14:40:41

我看到了关于节点应力的帮助,说是每个单元的节点应力是根据单元积分点应力进行外插而得到,我自己手算了一下进行验证,我拿出一个四边形单元,是采用完全积分,有四个积分点,我把积分点应力输出,然后把节点应力也输出(这是只考虑这一个单元,应力没有光滑处理之前)
我计算了一下,节点应力是通过积分点应力使用形函数进行外插值计算的,
而abaqus的应力光滑是通过节点相邻单元进行平均而得到

不知道大家有没有注意到这点

rinehart1985 发表于 2009-10-31 12:33:13

由于你这里只计算了一个单元,所以你并没有发现相邻单元共用的节点的应力在不同的单元里算出来的结果一般都是不等的,(这是因为一般只有在积分点上算得的应力才是准确的,其它位置的应力都是由积分点插值得到,难免会有偏差)所以还需要进行应力的磨平,具体方法可参见相关有限元书 5# gmwstrong

gmwstrong 发表于 2009-11-17 17:04:09

现在很困惑的是,对于一个单元来说如果已知积分点应力如何外插值计算得到节点应力?在abaqus中是如何实现这点的,我查了帮助,但还是没有理解怎么得到的节点应力。有限元计算得到的位移场是连续的,而应力场是不连续的,主要是在单元边界表现的不联系,同一个节点,有不同的单元插值得到的应力是不同的。

gmwstrong 发表于 2009-11-18 14:50:41

很感谢楼上的回复,我明白你说的意思,就是针对不同单元共用节点问题,例如节点8共有4个单元共用,element1,2,3,4.
这四个单元经过有限元计算分别得到的对应共用节点4的应力应该有4个,即每个单元都经过计算得到一个应力变量,当然这些应力变量都是不相等,也就是节点应力不联系的。
而在counter中要对这些应力变量进行楼上所说的计算,默认的是computing scalars before averaging,threshhold = 75%。你改成100%或者另外一种计算方法就可以消除这种应力的不连续了。
75%的意思是由每个应力变量计算的标量值中,最大的减最小的并与最大值进行相比,如果大于75%就不平均,如果小于75%就进行应力变量的平均,然后再计算标量值。
我的疑惑时,在每个单元中是如何计算节点应力的,比如,element 1 是如何得到共用节点4的应力变量的,element 2 又是如何得到的。我查了很多帮助,说是经过每个单元积分点应力向外插值到节点得到的,我就不知道是如何插值的。对于有限元来说,通过直接积分来求单元节点应力,精度很差,一般都是先计算积分点应力,然后进行插值才得到节点应力的???

gmwstrong 发表于 2009-11-18 14:55:30

很多时候对于有限元都只是知道大致是怎么去计算的,
而具体到这个很细的问题很少有人去问,因为软件都给我们计算出来了,至于怎么来的,估计很多人都不去深究,我只是想搞明白这个问题,自己编了个有限元弹性程序,计算出了整体的位移场,可是下一步怎么去计算应力场,如果直接积分可以得到每个单元中节点的应力,但是这样的精度很差,一般都不用这样的方法,软件里到底是如何计算的,我查了很多帮助没有搞明白
希望通过这个讨论让我们更清楚这个问题

simu214 发表于 2009-12-15 14:41:29

8# fuchong
为什么先标量再平均,得到的结果偏大,能否解释一下?
另外,这个标量到底是怎么一个过程?

sp60 发表于 2010-6-1 21:31:30

回LSS的
利用mathematic的符号计算说不定可以帮上你
我就是利用这个把应变和应力计算出来的
至于单元平均之类的 只要有公式在
写成程序就好办了

jerrylee52013 发表于 2010-7-10 21:26:42

多谢楼上几位的解释,
终于知道为什么对于同一个节点输出的应力有的会是两个有的会是4个了

chentao0106 发表于 2010-8-14 15:16:29

学习了,建议大家看一下王勖成《有限单元法》p167 应力计算结果的性质和处理

DIFFERENCE 发表于 2012-2-10 10:57:24

fuchong 发表于 2009-11-17 18:34 static/image/common/back.gif
应力场是不连续的,主要是在单元边界表现的不联系
这个是在results option里面的computation》averaging下 ...

请问:"threshhold = 75%"代表什么意思?是否如9#解释的那样呢?

06124686 发表于 2012-2-10 13:04:51

真是开眼界了 谢谢大侠们的分享

sd1207465 发表于 2012-2-10 18:48:31

楼上正解

宠爱二师兄 发表于 2012-7-25 15:34:38

cdstudio 发表于 2009-10-27 22:56 static/image/common/back.gif
建议计算尽量采用二次单元, 一次单元的情况下, 边界处的节点应力可以说完全错误, 二次单元的时候, 情况会好 ...

版主,我有一次做计算时也是采用的一次单元,发现完全自由边界上的节点应力值竟然不等于0,看了这个贴我想我找到了答案了,主要是由于积分点外插值得到节点值时出现的一种误差,那么这种误差是不是在有限元计算中不可能得到调和了?

email 发表于 2012-7-25 17:18:13

cdstudio 发表于 2009-10-27 22:56 static/image/common/back.gif
建议计算尽量采用二次单元, 一次单元的情况下, 边界处的节点应力可以说完全错误, 二次单元的时候, 情况会好 ...

你说的是一阶缩减积分吧,全积分应该会好些。
页: [1] 2
查看完整版本: abaqus节点应力是如何通过积分点插值得到的