导读:前不久,我在这里分享了一篇《有限元仿真分析误差来源之材料参数设置,小心为妙》的文章,引发了同行们的关注和讨论。在此感谢仿真秀平台讲师们的批评和指正,一起认真交流技术和进步。今天我将继续带来关于边界条件设置相关讨论,希望能够抛砖引玉,激发大家的学习兴趣。
由于边界条件需要注意的点比较多,因此,我打算分多次来说明,这篇文章就从约束和point mass的角度来分析有限元计算误差来源。
约束是有限元仿真建模的基础,很多同学都觉得约束设置没有什么值得思考的,但是仔细推敲实际上并不简单。还是拉杆问题,一根直径为0.06m,长0.5m的杆件,受拉力 100000N,如下图所示。
图 1拉杆简图
够简单吧,一般的同学可能直接约束底面的六个自由度,在workbench中就是Fixed support。然后计算的结果如下。
图 2应力云图
从云图上看最大应力62.5MPa,比理论计算值35.3MPa大了将近77%。而且应力分布也不正常,底面周围应力值很大,中间应力值小,按理论分析应力应该是均匀的才对。
为什么会造成这种计算结果?主要是因为受拉杆件的截面是会收缩的,而Fixed support将底面的所有节点的的所有自由度都置零。这样底面就无法收缩,在底面的周围就会产生较大应力。
如果采用displacement将底面的轴向的自由度置零,看下仿真结果。
图 3应力云图
从云图上看结果和理论计算一致为35.3MPa,应力分布也是均匀的。还有一种约束形式workbench中的remote point,翻译过来可以叫远点约束,可以用remote point关联相关节点的自由度,并将该节点的六个自由度置0,计算结果如下。
图 4应力云图
可以看出和displacement约束下的计算结果相同,这个结果看似正确,但仔细推敲下,还是里面还有值得思考的问题。
笔者我以前认为remote point是将底面所有节点通过刚体单元连接到一个参考点上,但如果是这样应该和图2显示的计算结果是一样的。
我们用hyperworks来试验下。将底面的节点使用rb2也就是刚体单元,连接到一个参考点上,将该参考点的六个自由度都置0,如下所示。
图 5约束
得到底面应力云图如下所示。
图 6应力云图
底面应力分布和图2基本一致,也呈现出周围比中间高的情况。我们看看remote point的相关菜单,我们将remote point的behavior改成rigid。
图 7remote point相关菜单
计算结果如下。
图 8应力云图
计算结果和图2一致。总结下仿真计算结果,如下表所示。
Workbench 采用Fix support约束 | Workbench 采用displacement约束 | Workbench 采用remote point ,behavior设置成deformable | Workbench 采用remote point ,behavior设置成rigid | Hyperworks采用rb2耦合底面自由度 | 理论计算值 | |
最大应力 | 62.5MPa | 35.4MPa | 35.4MPa | 62.5MPa | 47.6MPa | 35.3 MPa |
误差 | 77% | 0.3% | 0.3% | 77% | 34% | 0 |
可以看出当采用remote point耦合底面节点的自由度时,并且将 behavior设置rigid,这样就和用hyperworks的rb2单元一样,将每个节点和参考点耦合起来,用参考点自由度代替底面的自由度,学过理论力学同学对这个描述应该不陌生,刚体运动就是这么定义的,因此将remote point的behavior设置成rigid,就会使被耦合的面变成刚体。
如果设置成deformable,参考点和被耦合面之间采用rbe3单元,这样被耦合面就是弹性体。当在remote point添加约束时,软件就会在被耦合面的节点上施加相应的反力作为约束。这样不同约束条件会造成不同计算结果,可见当约束设置的不合理,计算结果会产生较大误差。
笔者在平时工作中,经常遇到这样的问题,在箱体的平板上安装着一些尺寸较小的盒体,计算模态或者应力什么的,为了减小计算的规模,经常利用质量单元来代替这些盒体。大家觉得这里应该没什么坑?但其实这里面还是有玄机的。
计算平板模态问题,问题描述如下所示。
图 9问题描述
模态计算结果如下所示。
图 10模态振型图
得到一阶固有频率为5.53Hz。
使用point mass,进行简化,计算得到结果如下。
图 11模态振型图
得到一阶固有频率为6.25Hz,和原模型相比有13%的偏差,明显是不正常的。我们来看看point mass的相关菜单。
图 12point mass相关菜单
可以看出point mass连接采用类似remote pointe的形式,behavior为deformable,这样连接单元就为rbe3,再看pinball region为all,这样设置之后,实际上是将point mass的质量平均分配到整个平面的节点上,通过hyperworks软件仿真验证下,这个假设是否成立。在每个节点上布置一个质量单元,如下图所示。
图 13质量分布图
计算结果如下所示。
图 14模态振型图
一阶固有频率为6.07Hz,和图11计算的结果6.25Hz相比,相差为2.9%,认为point mass采用如图设置之后,实际上就是讲质量平均分配到pinball region的每个节点上。因此,我们将pinball region改小,计算结果如下。
图 15模态振型图
得到一阶固有频率为5.43Hz,和图10计算结果相比只减小了1.8%,但是为什么计算结果小于原模型计算结果呢?这主要是因为behavior为deformable,point mass就不会提供任何刚度。
如果将behavior设置为rigid,计算结果如下。
图 16模态振型图
得到一阶固有频率为6.16Hz,和图10计算结果相比变大11%,这主要是因为behavior设置为rigid后,被耦合区域类似于刚体,这样整体刚度就提高了,导致计算结果偏大。
总结一下计算结果,如下表所示。
无简化模型计算 | Point mass简化,behavior为deformable,pinball region为all | Point mass简化,behavior为deformable,pinball region减小 | Point mass简化,behavior为rigid,pinball region减小 | |
一阶固有频率计算结果 | 5.53 Hz | 6.25Hz | 5.43Hz | 6.16 Hz |
误差 | / | 13% | 1.8% | 11% |
边界条件是有限元仿真建模的关键步骤,错误的边界条件设置会导致本来要解决甲问题但计算的却是乙问题。约束和point mass是边界条件设置中经常遇到的,本文将一些相关经验总结如下:
1、Fix support将一定区域的所有节点的所有自由度置为0,这样有可能导致过约束情况产生,最终导致计算误差。
2、Displacement可以约束一定区域的所有节点的部分自由度,具体问题需要具体分析
3、Remote point可以看出当采用remote point耦合底面节点的自由度时,并且将 behavior设置rigid,这样就和用hyperworks的rb2单元一样,将每个节点自由度和参考点耦合起来,用参考点自由度代替底面的自由度,被耦合的面就会变成刚体,如果设置成deformable,参考点和被约束面之间采用rbe3单元,这样被耦合面就是弹性体。
4、Point mass和Remote point类似,将 behavior设置rigid,被耦合的面就会变成刚体,将 behavior设置deformable,被耦合面是弹性体,质量会平均分配到被耦合的节点上。