装配体分析中,零件之间的接触是最常见的非线性来源之一。与材料非线性、几何非线性相比,接触的特点是边界状态会在计算中不断变化:两个面何时贴合、何时分离、是否发生滑移,都要在迭代中逐步确定。这也是接触分析容易出现不收敛、结果异常的原因。
遇到接触问题时,很多人的第一反应是调整求解器选项,比如增加迭代次数、减小载荷步长。但在实际工作中,问题往往出在接触定义本身:接触类型选得不对、接触范围设得不合理、初始间隙没有处理好、摩擦和刚度参数取值不当。这些问题不解决,调整求解器选项只能缓解症状。本文梳理非线性结构分析中接触设置的六类常见问题,并给出不收敛时的排查顺序。
本文要点
- 只在需要考察的界面上使用非线性接触,其余连接按实际情况简化。
- 先区分初始穿透是物理的还是非物理的,再决定建模方式。
- 罚刚度一般保留默认值,收敛后仍要检查穿透量和接触状态。
- 螺栓先预紧、锁定长度,再施加外载荷。
- 不收敛时由简到繁排查,最后才调整求解参数。
不同求解器对同一概念的叫法并不统一。本文使用通用的中文说法,并在首次出现时注明常见的软件术语,例如 Simcenter Nastran 中的源区域与目标区域,在 Simcenter OptiStruct 中称为从面与主面。
一、接触类型选择不当
接触类型决定了两个面之间允许发生什么样的相对运动。常见的接触类型及适用情况如下:
| 接触类型 | 行为 | 适用情况 |
|---|---|---|
| 绑定(Tie,Nastran 中常称为 Glue) | 两个面之间无相对运动,既不分离也不滑移 | 焊接、胶接等确实连成一体的界面,或网格不连续部件之间的连接 |
| 冻结(Freeze) | 保持初始间隙,不发生滑移,接触面无论开合都不改变状态 | 与绑定类似、同样不允许滑移,但需要保留几何上初始间隙的界面 |
| 无摩擦滑移(Sliding) | 法向可分离,切向自由滑移 | 摩擦影响可以忽略、主要关注是否贴合的界面 |
| 粘滞(Stick) | 接触闭合后不允许滑移 | 接触后不应发生相对滑动的界面 |
| 摩擦接触(Frictional) | 法向可分离,切向按摩擦系数决定粘滞或滑移 | 螺栓连接面、配合面、压装等需要考虑摩擦的界面 |
选型时最常见的两类错误:
该用分离型接触的地方用了绑定
绑定把本应能够张开的界面强行连在一起,会高估整体刚度,掩盖界面张开、局部翘曲等真实行为,计算容易收敛,但结果偏离实际。
该用绑定的地方用了摩擦接触
在确实连为一体的界面上设置摩擦接触,会无谓地引入非线性,增加计算量和不收敛的风险。
只在需要考察的界面上使用非线性接触,其余连接按实际情况用绑定或其他简化方式处理。接触对越多,接触状态的组合越复杂,收敛难度也越大。
二、接触范围与主从面设置
接触范围设得过大或过小,都会带来问题:
- 范围过大:把实际不会接触的面也纳入接触对,既增加计算量,也可能在不该接触的位置误判为接触,导致结果异常或收敛困难。
- 范围过小:漏掉实际会接触的区域,零件之间发生穿透,或者因缺少约束而出现刚体位移。
与接触范围相关的另一个参数是搜索距离:求解器只在这个距离内寻找可能接触的点和面。搜索距离过小,会漏判实际会接触的区域;过大则可能把不相关的面配成接触对。
主从面的设置会影响接触计算的精度和稳定性。点对面(N2S)接触中,从面上的节点不允许穿透主面,而主面上的节点可以穿入从面,因此主从面选反时,可能出现主面节点明显嵌入从面的现象。常用的选择原则是:
- 网格较细的一侧作为从面(Nastran 中的源区域),网格较粗的一侧作为主面(目标区域);
- 网格密度相近时,可将刚度较小、曲率较大的一侧作为从面;
- 主面包裹从面、几何关系复杂时,可以尝试交换主从面,或把一个接触对拆分为多个。
离散方式也需要按情况选择。点对面(N2S)计算效率较高,适合从面网格较细、接触区域含有棱角的情况;面对面(S2S)通常能得到更平滑的接触压力分布,但计算时间和内存消耗更大。关注接触压力分布的分析,宜优先考虑面对面接触。此外,当接触面之间的相对滑移量较大时,例如压装、插入或凸轮类机构,应选择支持大滑移的接触算法;按小滑移假设计算时,接触点的配对关系不随滑移更新,结果会出现偏差。
无论采用哪种方式,接触区域的网格都应足够细,尤其是曲面接触:网格过粗时,离散后的曲面会出现棱角,接触压力随之出现不真实的波动。
三、初始间隙、穿透与刚体位移
理论上贴合的两个面,在有限元模型中往往并不严格贴合。CAD 模型的公差、曲面离散成网格后的偏差,都会造成微小的初始间隙或初始穿透,它们是接触分析中最常见的不收敛原因之一。壳单元模型还要特别注意板厚:壳单元以中面建模,如果接触计算没有计入壳厚,两块本应贴合的板会在模型中出现间隙或穿透。初始间隙和穿透的影响主要有两方面:
- 初始穿透:计算一开始就有较大的接触力,造成局部应力虚高,或导致第一个载荷步就难以收敛。
- 初始间隙:如果某个零件只靠接触来约束,在间隙闭合之前它处于无约束状态,求解器会因刚体位移而报错或发散。
处理之前,首先要区分穿透是物理的还是非物理的。过盈配合中的过盈量是真实的设计意图,应当作为过盈问题专门建模,通常分步逐渐施加;由网格离散、几何公差造成的微小穿透则是非物理的,应予以消除。求解器的输出文件一般会给出初始穿透量,可以据此判断属于哪种情况。
消除非物理的间隙和穿透,常见有两种思路,效果不同:
| 处理方式 | 做法 | 特点 |
|---|---|---|
| 调整节点位置(如 OptiStruct 的 ADJUST) | 计算开始前,把从面节点移动到主面上 | 直接消除间隙或穿透,但会轻微改变几何 |
| 设定间隙值(如 OptiStruct 的 CLEARANCE) | 不移动节点,直接指定两个面闭合所需的距离 | 几何不变,但需要配合搜索距离仔细设置 |
Simcenter Nastran 的多步非线性求解同样提供了相应选项,可以把微小的非物理初始穿透调整为无应力的初始接触状态。
对于只靠接触约束、容易出现刚体位移的零件,可以采用以下方法:
- 消除初始间隙,让接触在计算开始时就处于闭合状态;
- 使用接触稳定化(如 OptiStruct 的 CNTSTB),在接触建立之前提供少量阻尼,帮助模型稳定,接触建立后其影响应逐步消失;
- 增加刚度很小的辅助约束或弹簧,抑制刚体位移,并确认它们传递的力可以忽略。
使用稳定化或辅助弹簧后,应检查它们吸收的能量或传递的力是否远小于结构本身的响应,否则会影响结果的真实性。
四、法向行为与罚刚度
多数求解器默认采用罚函数法处理接触:在接触面之间设置刚度很大的“弹簧”,用来阻止穿透。这意味着接触闭合时会存在少量穿透,穿透量大小取决于罚刚度。罚刚度的取值需要在两个方向上权衡:
罚刚度过大
刚度矩阵病态,接触状态容易在开合之间反复跳变,迭代难以收敛。
罚刚度过小
穿透量过大,接触压力和结构刚度被低估,结果失真。
大多数求解器会根据接触面附近单元的刚度自动计算罚刚度,一般情况下保留默认值即可。只有在出现明显的收敛问题,或者检查发现穿透量过大时,才需要调整。判断穿透是否合理,可以查看求解器输出的穿透量,与单元尺寸和结构变形量相比,应当足够小。
除了标准罚函数法,常见的还有两类做法:
- 增广拉格朗日法:在罚函数法的基础上迭代修正接触力,可以用较小的刚度得到较小的穿透量,兼顾精度和收敛性。
- 拉格朗日乘子法:精确满足不穿透条件,但会增加求解变量,对收敛性要求更高。不同求解器对它的支持范围不同,例如 OptiStruct 中基于 MPC 的拉格朗日乘子法只适用于绑定接触。
此外,有的求解器提供平滑的非线性罚刚度曲线,让接触力随间隙变化更平缓,也有助于改善收敛。
五、摩擦参数
摩擦接触在法向接触的基础上,又增加了切向的粘滞与滑移判断,是接触设置中最容易引起收敛困难的部分。常见问题有三类:
摩擦系数取值没有依据
摩擦系数与材料配对、表面粗糙度、润滑状态都有关,手册中的数值本身就有一定分散。当结果对摩擦系数比较敏感时,例如螺栓连接面是否滑移、压装力大小,应在合理范围内做敏感性分析,或采用测试数据,而不是只取一个数值。
只有无摩擦滑移,切向缺少约束
如果某个零件在切向只靠无摩擦接触约束,它在切向就处于自由状态,会因刚体位移而无法求解。此时应检查约束是否完整,必要时设置少量摩擦,或在合理的位置补充约束。
粘滞与滑移状态反复切换
库仑摩擦在粘滞和滑移之间是突变的,接触点的状态在迭代中来回变化,容易导致不收敛。多数求解器会用弹性滑移等方式对这种突变做平滑处理,一般保留默认设置即可;同时可以减小载荷步长,让接触状态逐步变化。
另外需要注意,摩擦会使刚度矩阵变得不对称。部分求解器需要开启非对称求解选项才能准确考虑摩擦的影响,使用前应确认所用求解器的相关设置。
六、螺栓预紧与分步加载
螺栓连接是装配体接触分析中最典型的场景,也是最容易出错的地方。核心原则是:先施加预紧,再施加外载荷,两者不应在同一个载荷步中同时施加。
推荐的加载顺序如下:
- 建立接触如果存在初始间隙或零件仅靠接触约束,可以先设置一个让接触稳定建立的步骤,必要时在这一步使用稳定化。
- 施加螺栓预紧在螺栓上施加预紧力,使被连接件压紧。
- 锁定螺栓长度预紧完成后,将螺栓的伸长量固定,使后续步骤中螺栓按真实的连接刚度参与受力,而不是维持一个恒定的力。
- 施加外载荷在预紧状态的基础上施加工作载荷,并在这一步关闭稳定化,避免人为阻尼影响结果。
Simcenter Nastran 的多步非线性求解(SOL 401/402)支持在不同子工况中按顺序施加载荷、并分别设置求解参数,适合这种分步加载的方式。
螺栓本身的建模方式需要和分析目的匹配:
| 建模方式 | 特点 | 适用情况 |
|---|---|---|
| 梁单元螺栓 | 建模简单,计算量小 | 关注连接整体刚度和受力,不关心螺栓本身的应力分布 |
| 实体单元螺栓 | 可以得到螺栓及孔周的详细应力 | 需要评估螺栓、螺纹附近或孔周应力 |
用降温收缩来模拟预紧的方法也能实现预紧效果,但设置相对繁琐,不如直接施加预紧力的方式直观。在现在的主流求解器中,梁单元和实体单元螺栓都可以直接定义预紧力。
此外,载荷步长也要合适。接触状态在刚开始建立时变化最剧烈,初始增量宜取小一些,再由自动步长控制逐步放大。
七、不收敛时的排查顺序
接触分析不收敛时,建议按照由简到繁的顺序排查,而不是一开始就修改求解器参数:
- 读报错信息查看求解器输出文件中的报错和警告,确认是刚体位移、初始穿透过大,还是迭代不收敛,先定位问题类型。
- 检查约束是否完整确认每个零件在接触尚未建立时,是否已有足够的约束,排除刚体位移。
- 检查初始状态查看初始穿透量和初始间隙,判断是否需要调整或设定间隙值。
- 简化接触后逐步恢复先把所有接触设为绑定,确认模型能够正常求解;再逐个改回非线性接触,找出导致不收敛的那一个。
- 检查接触定义针对出问题的接触对,核对接触类型、接触范围、搜索距离和主从面设置。
- 查看接触结果在能求解的步数内,查看接触状态、接触压力和穿透量,观察接触是否在合理的位置建立、是否出现反复开合。
- 最后调整求解参数在接触定义确认无误后,再考虑减小载荷增量、使用稳定化,必要时检查收敛准则设置是否合理。
其中第 4 步非常实用:把复杂的装配体问题拆成一次只看一个接触对,往往能很快找到症结所在。
八、常见误区
- 误区一:不收敛就加大迭代次数、减小步长。求解参数只能缓解症状,接触定义本身的问题不解决,模型仍然难以收敛,或者收敛到错误的结果。
- 误区二:能用绑定就全用绑定。绑定容易收敛,但会掩盖界面张开、滑移等真实行为,需要考察的界面应使用相应的非线性接触。
- 误区三:计算收敛了,结果就是对的。收敛只说明数值上达到了平衡,还应检查接触状态、接触压力和穿透量是否合理,稳定化和辅助弹簧的影响是否足够小。
- 误区四:罚刚度越大越准确。罚刚度过大会导致刚度矩阵病态、接触状态反复跳变,一般保留求解器的默认值,确有需要时再调整。
- 误区五:预紧力和外载荷可以同时施加。预紧应在单独的步骤中先行施加并锁定螺栓长度,再施加外载荷,否则无法得到正确的连接受力状态。
结语
接触分析的难点,很少在于求解器本身,更多在于接触定义是否贴近真实的物理状态:该分离的界面能否分离,该滑移的界面能否滑移,初始状态是否干净,加载顺序是否合理。把接触类型、范围、初始状态、刚度、摩擦和加载顺序逐项理顺,再配合由简到繁的排查方法,大多数接触收敛问题都能找到原因。在此基础上得到的结果,才能真正支撑工程判断。