首页/文章/ 详情

接触仿真分析的基本原理是什么?(1)

1年前浏览854

论计算力学里面最技术繁复最拉拉杂杂的项目,要数接触分析。这个领域违反了有限元连续插值的本质,所以要花大量的技巧来解决几何问题并翻译成有限元问题。不幸的是,工业界接触问题无处不在。光是汽车工业的碰撞分析,滚动分析,铸造分析,零件组装分析,都是以解决接触问题为核心。从本文开始,我们来花几篇文章聊聊接触分析的基本原理。

除了到求解的阶段会有高数预警,其他时候接触问题的原理其实都很粗暴,而且这组文章性质仅仅是原理介绍, 所以我尽量用文字和图形说话。

这篇文章我们先说说接触检测(contact detection)。

这个应该算是接触技术繁复特点的浓缩。为什么?因为把接触这个现实中很直观的现象要离散化实在是很坑爹的事情。在有限元的范畴下,接触检测的最终目的是生成接触单元,而后者是传递接触边界条件的媒介。(在其他方法如离散元的范畴下,接触检测更多是通过全域搜索实现,而不是局部生成接触单元)。接触检测分两大类,一类是允许穿透,一类是通过检测域不允许穿透。允许穿透是经典的思路,其原理是后知后觉:等单元节点空间位置进入另一个单元,或者单元节点作用力突然增大的时候,程序认为两者搞在一起了。现代算法更多的是应用检测域的思路:slave节点靠近master足够近的时候,不等穿透master就说表过来。所以本质上两类方法区别无非是在小三进门后还是进门前两口子翻脸。因为现在大家都比较警觉,所以我们主要说严防进门的方法。

确定检测域的大小是门艺术,一般软件都有个选择让用户指定检测距离。这样做的问题是,距离定小了影响收敛,定大了那就变成万磁王。所以一般自动设定会以接触面单元尺寸和接触面曲率为参考。以Node-2-Surface接触为例,当slave节点进入检测域,程序就认为这些节点上会发生接触。

下一步就是找到对应的master接触面。最流行的办法是做投影。对某一slave节点(上图节点x),我们找到master上和该节点距离最近的单元面。所有这些单元面加在一起就是master接触面。问题是,这样的投影不是所有时候都找得到(下图),或者找到了投影但不唯一。单身问题总比一夫多妻问题严峻,所以有大量研究花在如何处理找不到对应Master接触面的盲点的问题上。处理手段大致有两种,一种是把潜在的master面平滑化(比如贝塞尔曲线和曲面),使单元投影面变得连续。另一种是扩大搜索域,把master投影面延伸到更远的距离。其实最粗暴也是最流行的办法,就是什么都不做,直接找一个距离slave节点最近的master节点(上图节点与y),然后用这个节点所在的某一个单元生成接触单元。这个类似于在你哥们的女友的闺蜜圈里面找女朋友。从算法的角度,因为是找最近的节点,所以这个过程应用的是搜索,常用的quick sort, heap sort和octree等在各大软件接触检测里面都有应用。


另一个接触检测的难点和重点,是自接触问题。这个常见于壳结构的失稳分析(下图)。经典的检测域方法在这里的应用困难,是分不清在壳的哪一面发生了接触。解决办法依然很粗暴:要么把检测域尺度减小到薄壳厚度一半以内,要么记录结构变形的历史以跟踪结构表面节点的可能接触面。前者的缺点是影响时间步所以求解步增多,后者的缺点是增加内存使用。

最后一个问题就是在什么时候进行接触检测。这又有两类方法:在加载步开始的时候和在迭代步开始的时候。对于前者,接触检测发生在每个荷载步更新的时候。而后者是在每个荷载步的每个牛顿迭代步都进行。二者区别最明显的自然是工作量:因为接触检测运算耗时,所以后者要比前者慢。后者另一个缺陷是稳定性不足。因为迭代步造成的几何的更新有时候会把上个迭代步检测到的节点又归到检测域以外去,造成死循环。基于迭代步的检测的最大优点是精确性高。现代接触软件两种方法都有应用。



本文转自【有限元科技】

来源:WELSIM
碰撞汽车WELSIM铸造离散元曲面
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-24
最近编辑:1年前
WELSIM
一枚搞仿真的老员工
获赞 23粉丝 63文章 253课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈