3. LS-DYNA前后处理环境与关键字文件结构

在车辆碰撞安全仿真中,真正决定计算能否跑通、结果是否可信的,往往不是求解器本身,而是前后处理环境与关键字文件的组织方式。LS-DYNA 的输入文件(通常称为 K 文件)是一个纯文本、以关键字卡片为基本单元的“模型数据库”,它既描述几何与网格,也描述材料、接触、边界、控制参数和输出请求。理解 HyperMesh、ANSA、LS-PrePost 三者的分工与 K 文件的组织逻辑,是建立可维护碰撞模型的前提。

三种前后处理环境的定位与协作

HyperMesh 与 ANSA 属于“建模型”前处理器,强项在于几何清理、中面抽取、网格划分、连接装配与批量赋属性;LS-PrePost 属于“求解器原生型”前后处理器,强项在于关键字直接编辑、模型检查、求解监控与结果后处理。工程上常见的做法是:在 HyperMesh 或 ANSA 中完成网格与装配,导出 K 文件;在 LS-PrePost 中做关键字补全、接触与控制的精细调整,提交计算;计算完成后再回到 LS-PrePost 读取 d3plot 做动画、切片与曲线提取。

三者的数据交换核心都是 K 文件,因此“谁生成哪一部分关键字”必须有约定。例如 HyperMesh 的 LS-DYNA 模板通常负责生成 *NODE、*ELEMENT_SHELL、*PART、*SECTION_SHELL、*MAT_* 与 *SET_*;ANSA 在整车装配和焊点、粘胶建模上更高效,常输出 *CONSTRAINED_SPOTWELD、*CONSTRAINED_INTERPOLATION 等连接关键字;LS-PrePost 则适合补写 *CONTACT、*CONTROL_*、*DATABASE_* 与 *INITIAL_VELOCITY。明确分工可以避免同一关键字被两个工具重复写出而互相覆盖。

前后处理环境与 K 文件组织关系 HyperMesh 几何清理 / 中面抽取 壳网格 / 实体网格 PART / SECTION / MAT SET_NODE / SET_PART ANSA 整车装配 / 连接建模 焊点 / 粘胶 / 铰接 CONSTRAINED_SPOTWELD CONSTRAINED_INTERPOLATION LS-PrePost 关键字直接编辑 CONTACT / CONTROL DATABASE / INITIAL_VELOCITY d3plot 后处理 主 K 文件(*INCLUDE 组织) 模型 / 材料 / 接触 / 控制 / 输出 分文件管理 LS-DYNA 求解器 d3plot / d3thdt / binout 结果回读与模型修正

K 文件的组织方式

一个可维护的碰撞模型不会把所有内容堆在一个文件里。推荐用主文件加 *INCLUDE 的方式组织:主文件只保留标题、单位约定、控制卡和包含路径,各子系统分文件存放。典型结构如下:

main.k
├── *KEYWORD
├── *INCLUDE  model_nodes_elements.k   // 节点、单元、PART、SECTION
├── *INCLUDE  model_materials.k        // *MAT_* 材料卡片
├── *INCLUDE  model_connections.k      // 焊点、粘胶、铰接
├── *INCLUDE  model_contacts.k         // *CONTACT_*
├── *INCLUDE  model_control.k          // *CONTROL_*、*DATABASE_*
├── *INCLUDE  model_loads.k            // *INITIAL_VELOCITY、*LOAD_*
└── *END

这样做的好处是:材料参数更新只改一个文件,接触调整不影响网格,多人协作时冲突面小。需要注意的是,*INCLUDE 的路径建议使用相对路径,且文件名不要含空格与中文,否则在不同操作系统间迁移时容易报“找不到文件”。

常用关键字分类

LS-DYNA 关键字数量庞大,但碰撞安全仿真中高频使用的可以归为几类。第一类是模型定义类:*NODE、*ELEMENT_SHELL、*ELEMENT_SOLID、*PART、*SECTION_SHELL、*SECTION_SOLID,它们决定网格与部件属性。第二类是材料类:*MAT_024(分段线性塑性)用于车身钢件,*MAT_020(刚性体)用于不变形配重,*MAT_003(塑性随动)用于部分铝合金件,*MAT_ADD_EROSION 用于模拟断裂删除。第三类是连接与接触类:*CONTACT_AUTOMATIC_SINGLE_SURFACE 用于整车自接触,*CONTACT_AUTOMATIC_SURFACE_TO_SURFACE 用于壁障与车体,*CONSTRAINED_SPOTWELD 用于焊点。第四类是控制与输出类:*CONTROL_TERMINATION 设定终止时间,*CONTROL_TIMESTEP 控制时间步,*DATABASE_BINARY_D3PLOT 控制动画输出间隔,*DATABASE_ASCII_* 输出曲线数据。

关键字卡片对字段位置敏感,很多卡片要求“第几个字段就是第几个参数”。用 LS-PrePost 的 Keyword 面板编辑时,建议开启字段提示,避免把 TERMINATION 的终止时间误填到其他列。

一个可执行的建模检查流程

假设要做一个 50 km/h 正面刚性墙碰撞的简化模型,可按以下顺序推进。先在 HyperMesh 中建立 B 柱、前纵梁等主要吸能件的壳网格,单元尺寸取 5~8 mm,赋予 *MAT_024,密度约 7.85e-9 t/mm³,弹性模量 210 GPa,泊松比 0.3,并给出真实应力—塑性应变曲线。导出后进入 LS-PrePost,补写 *CONTROL_TERMINATION 的 ENDTIM = 0.12(单位秒),*CONTROL_TIMESTEP 的 TSSFAC = 0.9,*DATABASE_BINARY_D3PLOT 的 DT = 0.002。再添加 *INITIAL_VELOCITY,对整车节点集施加沿 X 方向 13889 mm/s 的初速度(50 km/h 换算值),并设置刚性墙 *RIGIDWALL_PLANAR。提交前用 LS-PrePost 的 Model Check 检查重复节点、负体积、未赋材料的 PART 和未定义接触的从面。

计算开始后,观察 d3plot 的生成节奏与能量曲线:总能量应基本守恒,沙漏能一般控制在总能量的 5% 以内,若明显超标,说明壳单元积分或网格质量需要调整。若出现负体积报错,优先检查接触穿透与材料失效应变设置,而不是盲目减小时间步。结果阶段重点看 B 柱侵入量、前围板侵入量和加速度曲线峰值,并与设计目标对比,判断是否需要调整材料厚度或增加吸能结构。

K 文件没有统一的“单位制”字段,LS-DYNA 只认数值。碰撞仿真常用 mm-ton-s-N-MPa 体系,一旦混用 m 与 mm,初速度、密度和时间步都会错得离谱。建议在主文件顶部用注释写明单位制,并在团队内统一。

把前后处理环境的分工、K 文件的包含式组织和关键字分类这三件事理顺之后,后续的网格质量、材料标定、接触设置和结果评价才有稳定的载体。模型文件的可读性与可追溯性,本身就是碰撞仿真质量的一部分。