显式动力学 ·
显式动力学一个时间步如何计算:
从节点加速度到内力回传
显式积分按严格的数据依赖推进位移、速度、加速度、应力和内力。以 56 km/h 刚性壁碰撞和顶压强制位移为例,可以把这条计算链与整车模型中的初始条件、接触和反力对应起来。
显式求解在推进什么
求解器在节点自由度上推进运动。位移 u 表示节点的位置,速度 v 表示位移的变化率,加速度 a 由节点受到的合力决定。对常见的集总质量显式算法,节点层面的关系可以写成:
这里的 M 通常采用对角化后的集总质量矩阵。每个节点可以直接用自身的合力除以自身质量求出加速度,不需要在每一步求解完整刚度矩阵。这种直接更新让显式算法适合处理高速冲击、接触切换和大变形,也让稳定时间步成为核心约束。
物理时间如何随循环推进
求解从物理时间 t = 0 开始。每一轮显式循环,求解器先根据当前模型状态选出一个全局时间增量 Δtn,然后用这段时间更新节点运动、接触状态、单元积分点应力和材料历史。第 n 轮结束后,物理时间从 tn 走到 tn+1:
tn 表示当前累计物理时间,Δtn 表示这一轮计算跨越的时间长度。时间步不变时,才可写成 tn = nΔt。在 LS-DYNA 显式计算中,实际时间步通常会随循环改变。*CONTROL_TERMINATION 中的 ENDTIM 定义分析停止的物理时间;*CONTROL_TIMESTEP 中的 TSSFAC、DT2MS 等控制会影响求解器采用的稳定时间步。最小单元、材料波速、单元畸变、接触与质量缩放状态变化后,后续的 Δtn 也可能变化。
以下碰撞示例采用常见的 mm–ms 时间单位,所有输入和输出时间都写成 ms。1 ms = 1000 μs;括号中的微秒只用于说明物理量级。
数值例:一枚壳单元如何控制时间步。假设当前全模型的最小允许时间步由前纵梁区域一枚壳单元控制。该单元当前特征长度为 4.82 mm。为说明计算过程,取 E = 210 kg/(mm·ms²)(即 210 GPa)、ρ = 0.00000785 kg/mm³、ν = 0.30,并取 TSSFAC = 0.90。
本例从初始时刻开始。t0 = 0 ms;u0 和 v0 分别为模型的初始位移与初始速度;a0 由初始时刻的节点合力求得。下标 0 标识初始状态,不表示“第 0 次”。Δt0 是第一轮积分采用的时间长度,用于将模型从 t0 推进到 t1。
计算壳单元的材料波速。壳单元面内波速的简化表达及本例代入结果为:
计算该壳单元的临界时间步。
施加时间步安全系数。
它表示第一轮积分跨越的物理时间:求解器从 t0 出发,经过节点运动、接触和材料响应更新,到达 t1。在这段时间内,壳单元中的波传播距离为:
全模型在该轮使用同一个 Δt0。
用 Δt0 执行第一轮积分。求解器先由 t0 的节点合力求得 a0,再按中央差分更新半步速度与位移:
新位移形成单元应变、应力和节点内力,并更新接触状态。至此完成从 t0 = 0 ms 到 t1 = 0.000800 ms 的推进。
第二轮积分前重新计算时间步。求解器以 t1 的新几何、材料和接触状态重新评估最小允许时间步。若该壳单元畸变使特征长度降到 3.615 mm:
上例用壳单元的 Δtcrit ≈ Lchar/c 说明“单元尺寸变小,时间步随之变小”的机制。LS-DYNA 实际会按单元类型、单元公式、体黏性、材料状态和几何状态计算各单元的 Δte,再取全模型最小值。后文的实体、壳和梁单元表格给出这些差异。
Δtn 是全模型一次显式时间积分跨越的时间长度,不是有限元单元的空间积分长度。常规显式分析采用一个全局时钟:每个单元先给出自身允许的 Δte,求解器取最严格的限制后,让所有活动单元和节点用同一个 Δtn 更新。单元积分点在这段时间内根据位移增量更新应变、应力和材料历史。
空间积分是另一件事。积分点、权重 w 和雅可比行列式 J 用于把单元内的应力积分为节点内力;单元特征长度 Le 用于评估应力波在空间中传播的稳定限制。它们影响允许的 Δtn,但不等于时间步本身。
上一节的两条中心差分式为说明推导,按恒定 Δt 书写。实际求解中应把它理解为当前循环的局部时间增量;LS-DYNA 在内部处理变时间步的更新。d3plot 不能还原每一个计算循环的 Δtn。运行信息、d3hsp 和求解过程监视会给出循环、物理时间与时间步摘要;若必须按循环追踪,部分 ASCII 数据库支持负 DT,以“每 −DT 个时间步”输出。将其设为 −1 会产生很大的文件,通常只用于短时排查。
从起算时刻看第一步:已知 u0、v0 和由初始受力得到的 a0 后,中央差分构造 v−1/2 = v0 − 0.5a0Δt0,再求 v1/2 与 u1。56 km/h 刚性壁模型若初始无接触、无预载,则 a0 ≈ 0,第一步的车辆运动接近初始速度乘以 Δt0;前端接触建立后,加速度和后续时间步随当前状态更新。
d3plot 输出间隔与计算时间步
*DATABASE_BINARY_D3PLOT 中的 DT 定义的是结果状态的输出间隔,不是求解器用于积分的计算时间步。两者都使用相同的物理时间单位,但职责不同:Δtn 决定求解器每一循环推进多远;d3plot 的 DT 决定隔多久保存一次用于后处理的模型状态。
以 mm–ms 单位制为例,整车碰撞的 ENDTIM 常设在 120–180 ms。若 d3plot DT = 1.0 ms,后处理文件按 1 ms 间隔记录状态;若该阶段的计算时间步约为 0.001 ms(1.0 μs),求解器在相邻两帧之间仍会完成约 1000 个积分循环。把 d3plot DT 设为 1 ms 不会让求解器改用 1 ms 的计算时间步,也不会放宽稳定条件。
输出间隔过大时,快速接触建立、局部屈曲、失效时刻和部件分离可能落在相邻两帧之间;间隔过小时,d3plot 文件和写盘开销会明显增加。输出频率应由你需要分辨的物理过程决定。若不同阶段需要不同间隔,可用关键字支持的输出间隔曲线控制,而不要用输出间隔替代时间步控制。
为什么采用中央差分与半步速度
显式动力学已经在 tn 得到节点合力和加速度 an。时间积分需要把这个加速度转换为速度和位移。中央差分把位移与加速度存放在整时间步,把速度存放在两个整时间步之间:
将第一式整理后,得到 vn+1/2 = vn−1/2 + anΔt;将第二式整理后,得到 un+1 = un + vn+1/2Δt。当前加速度只使用当前时刻已知的力场,更新过程不需要预先求解 tn+1 的位移或建立切线刚度矩阵。这一性质构成显式时间积分的计算基础。
半步速度不是额外的物理变量,也不表示结构在半个时间步才具有速度。它是数值时间网格上的存储位置。把速度置于 tn ± Δt/2,可以用当前加速度在两个相邻速度之间作中心差分,并用更新后的速度推进位移。
中央差分的取舍:在光滑线性响应中,该离散具有二阶时间精度;采用集总质量后,每步可逐节点更新。它属于条件稳定算法,时间步必须受临界稳定时间步限制。接触切换、材料失效和单元删除会使整体响应精度同时受这些算法影响。
一次时间步的六个动作
下面以中央差分为例。记号 n 对应时刻 tn。本文将循环序号写在右下角:vn−1/2 表示位于 tn 前半个时间步的速度。程序内部可能把部分单元计算放在循环开头或结尾,但数据依赖保持一致。
由当前力场推进到下一组位移
每次循环都把已知状态推到下一时刻,并为下一次求加速度准备新的节点内力。
- 保留当前状态
un与vn−1/2初始位移和初始速度来自边界条件或前一个时间步。这里的半步速度只用于中央差分的内部时间布置;单元的材料历史、接触状态和载荷曲线仍以
tn为基准。 - 汇总当前节点力
程序读取外载、约束、接触和阻尼贡献,并用当前位移对应的结构内力,形成节点合力
Rn。 - 由合力求节点加速度
an对每个自由节点直接计算
an = M−1Rn。集总质量让这一步变成逐节点更新。 - 更新半步速度
vn+1/2vn+1/2 = vn−1/2 + anΔt。半步速度连接当前加速度和下一步位移。 - 更新下一时刻位移
un+1un+1 = un + vn+1/2Δt。节点位置更新后,单元几何和接触搜索才能进入下一状态。 - 用新位移更新单元并组装
Fint,n+1求解器在积分点计算应变和应力,再把应力贡献回传到节点,得到下一时刻的内部节点力。随后时间推进到
tn+1。
后处理中常显示整步速度。它通常由相邻半步速度插值得到,因此曲线的显示时刻和程序内部存储时刻不必完全相同。
例 1:56 km/h 整车刚性壁碰撞
设整车以 56 km/h = 15.56 m/s = 15.56 mm/ms 沿车辆纵向撞向固定刚性壁。分析开始时,车身、动力总成、悬架和其他随车运动部件获得相同的初始纵向速度;刚性壁的位移和速度均为零。若模型不含重力、预应力或初始接触,接触前结构内力和接触力接近零,车辆节点以初始速度平移。
定义初始状态。在 mm–ms 单位制中,车辆初始纵向速度为 15.56 mm/ms,刚性壁保持固定。初始速度属于模型的初始状态,不是持续施加在车身上的外力。
接触力进入节点合力。前保险杠或吸能盒与壁障产生接触后,接触算法把法向力分配到接触节点。该力与单元内力共同使车辆节点出现反向加速度。
位移驱动应力更新。节点减速并产生相对位移,薄壁件在积分点形成应变、屈服、屈曲和塑性应变;积分点应力组装为内部节点力,再参与下一步的加速度计算。
响应来自同一条力链。车辆质心减速度、B 柱或座椅导轨加速度、前端截面力和壁障反力都来自接触力与结构内力的时程。不同测点的加速度曲线还会受测点位置、采样间隔和滤波规范影响。
对车辆自由节点,碰撞期间仍遵循 an = M−1Rn。程序没有向车辆施加一个“减速度载荷”。壁障接触、结构压溃和材料响应共同形成合力,合力改变速度,速度再推进位移。碰撞脉冲由这条演化链产生。
例 2:顶压中的强制位移
顶压模型常把刚性压头或刚性壁的参考节点设为受控自由度,并按给定曲线向下运动。设压头从初始位置开始,在总时长 T 内完成位移 D,则边界条件直接给定压头的运动学量:
p 表示压头参考节点。求解器从边界曲线读取其位移和速度,而不通过节点合力决定该自由度的运动。压头受控自由度与车身自由节点的处理不同。对压头,程序已知 up(t)、vp(t),必要时也已知 ap(t);它不使用 M−1R 去决定压头下一步走多远。约束和接触计算反而给出维持该运动所需的反力。工程上通常在压头参考节点读取反力,得到力位移曲线。
指定压头运动。程序在 tn+1 赋予压头目标位移,压头位置由位移曲线控制。
建立接触约束。压头接近顶盖外板后,接触算法计算法向接触力,并把该力传递给车身接触节点。
更新车身自由节点。车身节点仍从合力求加速度,随后更新半步速度和位移。顶盖弯曲、连接件载荷传递和局部屈曲由单元积分点状态决定。
输出反力与位移。压头参考节点的约束反力或接触合力对应结构抗力;压头位移来自输入曲线。二者组成顶压的力位移响应。
顶压若以显式方式逼近准静态过程,加载时长 T 不能仅按计算成本设定。压头速度应采用平滑爬升,避免起步瞬间引入冲击波;还要比较不同加载时长下的力位移曲线、局部变形模式和动能相对内能的水平。加载速率改变后这些结果仍保持稳定,才能说明惯性没有主导结论。
积分点应力怎样变成节点内力
内力不是节点上凭空出现的一组力。单元先根据节点位移计算积分点应变,再让材料模型给出积分点应力。虚功原理把这组应力换算为对各节点自由度的等效力。
位移到应变。在积分点用形函数导数构造应变位移矩阵 B,计算 ε = B · unodes。
应变到应力。材料本构读取当前应变增量和历史变量,计算应力。在线弹性示意下可写为 σ = C · ε;塑性、损伤和应变率效应会让这一步依赖更多状态变量。
应力到节点内力。对各积分点求和:Fint = Σ BT · σ · w · J。w 是积分权重,J 是雅可比行列式,承担单元几何映射和变形的影响。
这条链解释了网格、积分公式、材料卡和单元畸变为何都会影响节点力。你在时程曲线上看到的截面力、接触后的载荷传递和加速度脉冲,最终都要经过积分点应力到节点内力的回传。
为什么内力和位移看起来错开一拍
显式循环不是在同一个物理时刻里先做完所有量,再一次性提交。当前加速度使用当前力场,速度跨过半个时间步,位移到达下一时刻;新位移随后产生新的应变、应力和内部节点力,供下一轮计算加速度。
数据关系应按时间阅读:un 形成 Fint,n,它参与求 an;an 更新 vn+1/2 和 un+1;un+1 再形成 Fint,n+1。
不要把这条链简化成“先有力还是先有位移”。每个量都有自己的存储时刻。分析接触突然建立、材料失效或时间步急降时,先确认你查看的是哪一时刻的位移、应力和力,判断会更可靠。
时间步如何由不同单元控制
显式更新不在每一步迭代消除数值误差,因此时间增量必须小于临界稳定时间步。LS-DYNA 在每个循环评估单元时间步,并以其中最小值乘安全系数作为下一循环的计算时间步:
a。常用默认值为 0.90;实际受控时间步还会受到质量缩放与其他活动控制的影响。这一步先由每个单元给出候选时间步,再取全局最小值。模型不会让壳单元、实体单元和梁各自使用不同的物理时间增量异步前进。不同单元的特征长度和波速定义不同,因此不存在覆盖全部单元的一条完整时间步公式。下表给出常见结构单元的控制关系;确切表达式还取决于单元公式、材料模型、体黏性和所用版本。
| 单元族 | 特征长度的典型定义 | 稳定时间步的工程表达 |
|---|---|---|
| 8 节点实体 | Le = Ve / Aemax,即当前单元体积除以最大面的面积。 | Δte = Le / [Q + √(Q² + c²)]。Q 包含压缩状态下的体黏性贡献,c 为绝热声速。 |
| 4 节点四面体 | 单元从任一节点到对面的最小高度。 | 采用实体单元的波传播控制关系。薄小四面体容易成为全模型时间步控制源。 |
| 壳与四边形 | 由面积、边长和对角线构造的特征长度。 | 可理解为 Δte ∼ Lchar / c;壳单元公式、厚度、剪切与材料特性会改变精确计算式。 |
| 梁 | 梁单元轴向长度。 | 可理解为 Δte ∼ Lbeam / c。短梁、刚度很高的连接梁或局部畸变都可能压低时间步。 |
这也是质量缩放必须放在第二层讨论的原因。它通过改变局部质量来抬高允许时间步,同时改变惯性项。先确认最小时间步是否来自不合理网格、初始穿透、失效后的畸变或无意义的小单元,再决定是否使用质量缩放。
建模与结果审查该看什么
- 先确认节点力来源。把外载、接触力、约束反力、阻尼力与结构内力分开看。合力异常时,不要直接从加速度曲线推断材料问题。
- 把单元状态与节点响应连起来。关键位置同时查看应力、塑性应变、失效状态、接触力和加速度,判断载荷路径是否连贯。
- 追踪时间步控制源。确认是哪个零件、单元类型和物理状态压低了时间步。小时间步既可能来自必要的细网格,也可能暴露建模错误。
- 用能量和动量复核时间推进。动能、内能、接触能、沙漏能和总动量应与工况相符。只有变形云图不足以说明计算过程可信。
参考与适用边界
本文以常见结构单元和中央差分时间积分说明数据依赖。接触算法、单元公式、材料更新、约束处理和输出时刻会改变局部实现,阅读模型时仍应以所用版本的理论手册与关键字手册为准。