接触仿真分析的基本原理是什么?
论计算力学里面最技术繁复最拉拉杂杂的项目,要数接触分析。这个领域违反了有限元连续插值的本质,所以要花大量的技巧来解决几何问题并翻译成有限元问题。不幸的是,工业界接触问题无处不在。光是汽车工业的碰撞分析,滚动分析,铸造分析,零件组装分析,都是以解决接触问题为核心。从本文开始,我们来花几篇文章聊聊接触分析的基本原理。
除了到求解的阶段会有高数预警,其他时候接触问题的原理其实都很粗暴,而且这组文章性质仅仅是原理介绍, 所以我尽量用文字和图形说话。
这篇文章我们先说说接触检测(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等在各大软件接触检测里面都有应用。
另一个接触检测的难点和重点,是自接触问题。这个常见于壳结构的失稳分析(下图)。经典的检测域方法在这里的应用困难,是分不清在壳的哪一面发生了接触。解决办法依然很粗暴:要么把检测域尺度减小到薄壳厚度一半以内,要么记录结构变形的历史以跟踪结构表面节点的可能接触面。前者的缺点是影响时间步所以求解步增多,后者的缺点是增加内存使用。
最后一个问题就是在什么时候进行接触检测。这又有两类方法:在加载步开始的时候和在迭代步开始的时候。对于前者,接触检测发生在每个荷载步更新的时候。而后者是在每个荷载步的每个牛顿迭代步都进行。二者区别最明显的自然是工作量:因为接触检测运算耗时,所以后者要比前者慢。后者另一个缺陷是稳定性不足。因为迭代步造成的几何的更新有时候会把上个迭代步检测到的节点又归到检测域以外去,造成死循环。基于迭代步的检测的最大优点是精确性高。现代接触软件两种方法都有应用。
关于我们
公司的核心技术团队有15年以上CAE领域经验,目前专注CAE工程技术。已经为航空航天与国防、船舶与海洋工程、汽车与交通运输行业、工业设备、压力容器LNG储罐、电机电磁、高科技、生命科学、建筑、工程与施工等行业的多家企事业研发机构成功完成CAE咨询项目,得到了客户的一致认可。同时也为客户提供了系统的CAE理论和软件应用培训,建立并完善了相关分析规范,使得用户真正体验到仿真驱动产品研发的价值。
- 上一篇:塑料的连接技术 2017/3/28
- 下一篇:本科学历应该从事CAE工作吗? 2017/3/27