3. LS-DYNA求解器界面与文件体系

在汽车碰撞安全仿真中,LS-DYNA 的“界面”并不是一个传统意义上的图形窗口,而是一套以关键字(Keyword)为核心的输入文件体系。理解这套体系,是保证模型能被求解器正确读取、计算并输出可解读结果的前提。本节围绕 Keyword 文件结构、常用关键字分类、求解提交方式,以及 d3plot 与 binout 两类核心结果文件的解读展开。

一、Keyword 文件的基本结构

LS-DYNA 的输入文件通常以 .k 或 .key 为扩展名,本质是纯文本文件。它由若干“关键字块”顺序组成,每个块以 * 开头,例如 *NODE、*ELEMENT_SHELL、*MAT_ELASTIC、*CONTROL_TERMINATION。一个块内部通常包含一行关键字标题,随后是若干数据行;数据行按固定字段宽度或逗号分隔填写,字段顺序由关键字定义决定,不能随意调换。

文件整体遵循“先定义、后引用”的逻辑:节点与单元先建立几何与拓扑,材料与属性再赋予单元,接触、边界、载荷与求解控制最后设置。若引用顺序颠倒,求解器会在初始化阶段报错或产生警告。常见的组织方式是按功能分段,例如:

*KEYWORD
*NODE
*ELEMENT_SHELL
*PART
*SECTION_SHELL
*MAT_PIECEWISE_LINEAR_PLASTICITY
*CONTACT_AUTOMATIC_SINGLE_SURFACE
*BOUNDARY_SPC_SET
*INITIAL_VELOCITY
*CONTROL_TERMINATION
*DATABASE_BINARY_D3PLOT
*END

其中 *KEYWORD 与 *END 界定文件范围,*PART 把单元、截面和材料组合成可管理的部件,是模型组织的核心。对于整车碰撞模型,PART 数量往往达到数百个,因此命名与编号规范直接影响后续排错效率。

二、常用关键字分类

按功能可将常用关键字分为六类,便于快速定位与检查:

  • 几何与网格类:*NODE、*ELEMENT_SHELL、*ELEMENT_SOLID、*ELEMENT_BEAM,定义节点坐标与单元连接。
  • 部件与属性类:*PART、*SECTION_SHELL、*SECTION_SOLID,定义厚度、积分点等截面属性。
  • 材料类:*MAT_ELASTIC、*MAT_PLASTIC_KINEMATIC、*MAT_PIECEWISE_LINEAR_PLASTICITY、*MAT_RIGID,描述金属、塑料、刚性体等力学行为。
  • 接触类:*CONTACT_AUTOMATIC_SINGLE_SURFACE、*CONTACT_AUTOMATIC_SURFACE_TO_SURFACE,控制部件间碰撞与穿透。
  • 边界与载荷类:*BOUNDARY_SPC_SET、*INITIAL_VELOCITY、*LOAD_BODY_Z,施加约束、初速度与重力。
  • 控制与输出类:*CONTROL_TERMINATION、*CONTROL_TIMESTEP、*DATABASE_BINARY_D3PLOT、*DATABASE_ASCII_*,决定计算时长、时间步与结果输出频率。

在汽车碰撞中,材料与接触关键字对结果影响最大。例如车身用钢常采用 *MAT_PIECEWISE_LINEAR_PLASTICITY,需给出密度、弹性模量、泊松比和真实应力—塑性应变曲线;焊点常用 *MAT_SPOTWELD 或梁单元模拟。接触若设置不当,会出现初始穿透或能量异常,因此 *CONTROL_CONTACT 中的 PENOPT、SLSFAC 等参数需要结合模型尺度调整。

LS-DYNA 输入文件 → 求解 → 结果文件 数据链 Keyword 输入文件 (.k) 几何与网格 *NODE / *ELEMENT_SHELL 部件与截面 *PART / *SECTION_SHELL 材料模型 *MAT_PIECEWISE_LINEAR… 接触定义 *CONTACT_AUTOMATIC… 边界与初速度 *BOUNDARY_SPC / *INITIAL_VELOCITY 控制与输出 *CONTROL_TERMINATION / *DATABASE LS-DYNA 求解器 显式时间积分 接触搜索 / 沙漏控制 质量缩放 / 时间步 dyna.exe i=model.k 读取 结果文件 d3plot(二进制图形) 节点位移 / 速度 / 加速度 单元应力 / 应变 / 塑性应变 变形动画 / 云图 / 时间历程 由 *DATABASE_BINARY_D3PLOT 控制 输出间隔 DT 决定帧数 binout(二进制数据) glstat:能量 / 时间步 / 质量 matsum:材料能量汇总 rcforc:接触界面力 nodout / elout:节点与单元响应 由 *DATABASE_ASCII / BINARY 控制 写出 求解提交 dyna.exe i=model.k o=out.log memory=200m ncpu=4(SMP)

三、求解提交与运行监控

Keyword 文件准备完成后,通过命令行提交求解。Windows 下典型命令为:

dyna.exe i=car_crash.k o=car_crash.log memory=300m ncpu=4

其中 i= 指定输入文件,o= 指定屏幕输出日志,memory= 设置内存,ncpu= 指定 SMP 并行线程数。提交后应首先查看日志开头的“单元总数、节点总数、初始时间步”等信息,确认模型规模与预期一致。计算过程中,日志会周期性输出时间步、当前时间、剩余时间与能量比。若出现负体积、节点速度异常或能量比超过 1.0,说明模型存在网格畸变、接触穿透或沙漏失控,需要回到关键字层面排查。

对于整车碰撞,常用质量缩放控制最小时间步。例如通过 *CONTROL_TIMESTEP 设置 DTINIT 与 TSSFAC,并配合 *CONTROL_TERMINATION 的 ENDTIM 设定 0.12 s 左右的碰撞时长。质量缩放会增加非物理惯性,因此需监控 glstat 中的“added mass”比例,一般建议控制在总质量的 1% 以内。

四、d3plot 与 binout 的解读

d3plot 是二进制图形结果文件,供 LS-PrePost 等后处理器读取,用于查看变形、应力云图、动画和时间历程曲线。它按帧存储,帧间隔由 *DATABASE_BINARY_D3PLOT 中的 DT 决定。例如 DT=0.002、总时长 0.12 s,则约输出 60 帧。帧数过少会漏掉峰值响应,过多则文件庞大,通常整车碰撞取 0.001~0.002 s 一帧较为合适。

binout 是二进制数据文件,通常与 d3plot 配套生成,包含 glstat、matsum、rcforc、nodout 等子文件。glstat 记录全局能量、时间步、质量变化,是判断计算是否稳定的首要依据;matsum 汇总各材料能量,可用于检查沙漏能与内能比例;rcforc 记录接触界面力,用于评估假人约束系统与车体接触力。解读时重点关注:总能量是否守恒、沙漏能是否低于内能的 5%、接触力是否出现异常尖峰。

建议在提交前用 LS-PrePost 打开 .k 文件做一次“Keyword 检查”,确认无重复节点、无孤立单元、无未定义材料引用,可显著减少求解中断。
若日志出现 “negative volume” 或 “out-of-range velocities”,不要直接调大时间步或忽略警告,应先定位对应 PART 与单元,检查网格质量、材料失效应变与接触厚度,否则结果不可信。