3. 接触类型与关键字入门

在 LS-DYNA 中,接触并不是一个“开关”,而是一整套由关键字卡片描述的算法族。选择接触类型,本质上是在回答三个问题:谁和谁可能接触、用什么算法检测穿透、接触力如何分配。本节先把最常用的五类接触讲清楚,再拆解 CONTACT 关键字的基本结构,让你能独立写出第一段可运行的接触定义。

一、五类接触的适用场景

单面接触(Single Surface)是最“省心”的一类。它不需要指定接触对,程序会自动搜索模型中所有外表面之间的穿透,包括同一部件自身的自接触。典型场景是薄壁结构压溃、气囊展开、碎片飞散。关键字为 *CONTACT_AUTOMATIC_SINGLE_SURFACE。它的代价是搜索量大、计算成本高,且容易把本不该接触的邻近表面误判为接触。

面面接触(Surface to Surface)需要明确指定主面(master)和从面(slave),适用于两个已知会相互作用的部件,例如冲头压入板料、刚性墙撞击梁。关键字为 *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE。主从面的选择有讲究:通常把网格较粗、刚度较大、曲率较小的一侧设为主面,从面网格更细,这样穿透检测更稳定。

点面接触(Nodes to Surface)只检查从节点是否穿透主面,计算量最小,适合一个物体的节点可能接触另一个物体表面的情况,例如子弹头部节点撞击靶板。关键字为 *CONTACT_AUTOMATIC_NODES_TO_SURFACE。它不检查主节点对从面的穿透,因此主从关系不能随意颠倒。

自动接触(Automatic)并不是独立的一类,而是上述接触的“增强版”。它自动处理壳单元两侧的接触方向,无需用户指定壳的法向,还能在计算中动态更新接触厚度。工程中绝大多数接触都建议加 AUTOMATIC 前缀,尤其是壳单元和实体单元混合的模型。

通用接触(General / Eroding)面向极端变形问题,如侵彻、爆炸、破碎。关键字 *CONTACT_ERODING_SINGLE_SURFACE 或 *CONTACT_ERODING_SURFACE_TO_SURFACE 能在单元被删除后继续追踪新暴露的表面,避免因单元消失导致接触失效。

五类接触的检测对象与关键字对照 单面接触 所有外表面 ↔ 自身/彼此 AUTOMATIC_SINGLE_SURFACE 面面接触 主面 ↔ 从面(需指定) 主面 从面 AUTOMATIC_SURFACE_TO_SURFACE 点面接触 从节点 → 主面 主面 AUTOMATIC_NODES_TO_SURFACE 自动接触(AUTOMATIC 前缀) 自动判断壳单元两侧接触方向 动态更新接触厚度,无需手动指定法向 壳/实体混合模型首选 通用/侵蚀接触(ERODING) 单元删除后继续追踪新暴露表面 适用于侵彻、爆炸、破碎 避免单元消失导致接触失效 CONTACT 关键字基本结构 *CONTACT_类型 SSID / MSID FS / FD / DC SFS / SFM / SST 从面/主面集ID → 摩擦系数 → 接触厚度缩放 → 可选卡片(可选 A/B/C/D/E/F)

二、CONTACT 关键字的基本结构

所有 CONTACT 关键字都遵循同一套骨架:第一行定义接触类型和参与对象,后续可选卡片定义摩擦、厚度、阻尼等参数。以面面接触为例,最简写法如下:

*CONTACT_AUTOMATIC_SURFACE_TO_SURFACE
$#   SSID      MSID     SSTYP     MSTYP    SBOXID    MBOXID       SPR       MPR
         2         1         0         0         0         0         0         0
$#     FS        FD        DC        VC        VDC       PENCHK        BT        DT
       0.2       0.2       0.0       0.0       0.0         0       0.0     1e20
$#    SFS       SFM       SST       MST       SFST       SFMT       FSF       VSF
       1.0       1.0       0.0       0.0       1.0       1.0       1.0       1.0

第一行中,SSID 和 MSID 分别是从面集和主面集的 ID,通常由 *SET_SEGMENT 或 *SET_PART 预先定义。SSTYP 和 MSTYP 指定集合类型:0 表示段集合,1 表示部件集合,2 表示节点集合。第二行的 FS 和 FD 是静摩擦和动摩擦系数,DC 是衰减系数,VC 是粘性阻尼系数。PENCHK 控制是否检查初始穿透,设为 1 时程序会在计算前报告穿透量。

第三行的 SFS 和 SFM 是从面和主面的厚度缩放因子,默认 1.0。SST 和 MST 是接触厚度,设为 0 时程序自动取单元厚度的 0.5 倍。SFST 和 SFMT 是接触刚度缩放因子,当出现明显穿透或接触振荡时,可以适当调大这两个值。

对于壳单元,接触厚度默认取壳厚度的 0.5 倍。如果壳很薄(如 1 mm),接触厚度只有 0.5 mm,容易发生穿透。此时可将 SST 或 MST 显式设为壳厚度的 1.0~1.5 倍,或把 SFS/SFM 调大。

三、主从面选择与常见错误

面面接触中,主从面选反是新手最常见的错误。判断原则有三条:网格粗的一侧做主面,因为主面节点不参与穿透检测,粗网格做主面可减少漏检;刚度大的一侧做主面,刚性墙、刚体通常做主面;曲率小的一侧做主面,平面比曲面更适合做主面。如果两侧条件接近,可以交换主从做一次对比计算,观察接触力曲线是否更平滑。

另一个常见问题是接触集定义不完整。例如用 *SET_PART 定义部件集时,如果部件内部存在自接触,面面接触不会检测同一部件内部的穿透,此时应改用单面接触或补充自接触定义。对于壳单元,还要注意 *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE 默认只检测壳的一侧,如果壳两侧都可能接触,应使用 *CONTACT_AUTOMATIC_SINGLE_SURFACE 或设置 SPR/MPR 为 1 开启两侧检测。

四、参数速查与调试建议

参数含义典型取值调试方向
FS / FD静/动摩擦系数0.1~0.3(钢-钢)摩擦过大导致能量异常,过小导致滑移
DC摩擦衰减系数0 或 0.1高速滑动时用指数衰减
SFS / SFM厚度缩放因子1.0薄壳穿透时调至 1.5~2.0
SFST / SFMT刚度缩放因子1.0接触振荡时调至 0.5~2.0
PENCHK初始穿透检查1建模后首次计算建议开启

调试接触时,优先看两个输出:glstat 中的接触能量和rcforc 中的接触力。接触能量应远小于内能(通常小于 5%),如果接触能量异常增大,说明存在严重穿透或接触刚度不足;接触力曲线出现高频振荡,则可能是接触刚度太大或时间步长与接触频率不匹配。此时可先降低 SFST/SFMT,再检查网格质量和初始穿透。

不要为了“让计算跑通”而盲目调大接触刚度或摩擦系数。接触参数必须与材料、网格、加载速度匹配。建议先用默认参数计算 10~20 个时间步,观察接触能量和穿透量,再决定是否调整。