约束是有限元仿真建模的基础,很多同学都觉得约束设置没有什么值得思考的,但是仔细推敲实际上并不简单。还是拉杆问题,一根直径为0.06m,长0.5m的杆件,受拉力100000N,如下图所示。
图1拉杆简图
够简单吧,一般的同学可能直接约束底面的六个自由度,在workbench中就是Fixedsupport。然后计算的结果如下。
图2应力云图
从云图上看最大应力62.5MPa,比理论计算值35.3MPa大了将近77%。而且应力分布也不正常,底面周围应力值很大,中间应力值小,按理论分析应力应该是均匀的才对。
为什么会造成这种计算结果?主要是因为受拉杆件的截面是会收缩的,而Fixedsupport将底面的所有节点的的所有自由度都置零。这样底面就无法收缩,在底面的周围就会产生较大应力。
如果采用displacement将底面的轴向的自由度置零,看下仿真结果。
图3应力云图
图4应力云图
可以看出和displacement约束下的计算结果相同,这个结果看似正确,但仔细推敲下,还是里面还有值得思考的问题。
笔者我以前认为remotepoint是将底面所有节点通过刚体单元连接到一个参考点上,但如果是这样应该和图2显示的计算结果是一样的。
图5约束
得到底面应力云图如下所示。
图6应力云图
计算结果如下。
图8应力云图
计算结果和图2一致。总结下仿真计算结果,如下表所示。
Workbench采用Fixsupport约束
Workbench采用displacement约束
Workbench采用remotepoint,behavior设置成deformable
Workbench采用remotepoint,behavior设置成rigid
Hyperworks采用rb2耦合底面自由度
理论计算值
最大应力
62.5MPa
35.4MPa
47.6MPa
35.3MPa
误差
77%
0.3%
34%
0
可以看出当采用remotepoint耦合底面节点的自由度时,并且将behavior设置rigid,这样就和用hyperworks的rb2单元一样,将每个节点和参考点耦合起来,用参考点自由度代替底面的自由度,学过理论力学同学对这个描述应该不陌生,刚体运动就是这么定义的,因此将remotepoint的behavior设置成rigid,就会使被耦合的面变成刚体。
如果设置成deformable,参考点和被耦合面之间采用rbe3单元,这样被耦合面就是弹性体。当在remotepoint添加约束时,软件就会在被耦合面的节点上施加相应的反力作为约束。这样不同约束条件会造成不同计算结果,可见当约束设置的不合理,计算结果会产生较大误差。
笔者在平时工作中,经常遇到这样的问题,在箱体的平板上安装着一些尺寸较小的盒体,计算模态或者应力什么的,为了减小计算的规模,经常利用质量单元来代替这些盒体。大家觉得这里应该没什么坑?但其实这里面还是有玄机的。
计算平板模态问题,问题描述如下所示。
图9问题描述
模态计算结果如下所示。
图10模态振型图
得到一阶固有频率为5.53Hz。
使用pointmass,进行简化,计算得到结果如下。
图11模态振型图
可以看出pointmass连接采用类似remotepointe的形式,behavior为deformable,这样连接单元就为rbe3,再看pinballregion为all,这样设置之后,实际上是将pointmass的质量平均分配到整个平面的节点上,通过hyperworks软件仿真验证下,这个假设是否成立。在每个节点上布置一个质量单元,如下图所示。
图13质量分布图
计算结果如下所示。
图14模态振型图
一阶固有频率为6.07Hz,和图11计算的结果6.25Hz相比,相差为2.9%,认为pointmass采用如图设置之后,实际上就是讲质量平均分配到pinballregion的每个节点上。因此,我们将pinballregion改小,计算结果如下。
图15模态振型图
得到一阶固有频率为5.43Hz,和图10计算结果相比只减小了1.8%,但是为什么计算结果小于原模型计算结果呢?这主要是因为behavior为deformable,pointmass就不会提供任何刚度。
如果将behavior设置为rigid,计算结果如下。
图16模态振型图
得到一阶固有频率为6.16Hz,和图10计算结果相比变大11%,这主要是因为behavior设置为rigid后,被耦合区域类似于刚体,这样整体刚度就提高了,导致计算结果偏大。
总结一下计算结果,如下表所示。
无简化模型计算
Pointmass简化,behavior为deformable,pinballregion为all
Pointmass简化,behavior为deformable,pinballregion减小
Pointmass简化,behavior为rigid,pinballregion减小
一阶固有频率计算结果
5.53Hz
6.25Hz
5.43Hz
6.16Hz
/
13%
1.8%
11%
1、Fixsupport将一定区域的所有节点的所有自由度置为0,这样有可能导致过约束情况产生,最终导致计算误差。
2、Displacement可以约束一定区域的所有节点的部分自由度,具体问题需要具体分析
3、Remotepoint可以看出当采用remotepoint耦合底面节点的自由度时,并且将behavior设置rigid,这样就和用hyperworks的rb2单元一样,将每个节点自由度和参考点耦合起来,用参考点自由度代替底面的自由度,被耦合的面就会变成刚体,如果设置成deformable,参考点和被约束面之间采用rbe3单元,这样被耦合面就是弹性体。
4、Pointmass和Remotepoint类似,将behavior设置rigid,被耦合的面就会变成刚体,将behavior设置deformable,被耦合面是弹性体,质量会平均分配到被耦合的节点上。