📦 5 Parts + Conclusion
👉 滑动
PART 01
4 个真凶
排查顺序
PART 02
侵彻负体积
JC 与侵蚀准则
PART 03
跌落沙漏
沙漏能与穿透
PART 04
关键字速查
按求解流程排
PART ///
写在最后
资料领取
凌晨 2 点 14 分,d3hsp 里跳出那行红字
negative volume in solid element 10432
那一刻我知道,今晚又白干了。
这两年我接的 LS-DYNA 单子,客户一半以上是在读研究生和高校老师。处境几乎一模一样:试验设备排不上队、论文 deadline 在逼近、模型算到一半崩了,或者算完了发现和文献差 40%。最难受的是报错信息永远只有那几行英文,搜出来的答案还互相打架。
这篇文章不推导公式。我把 3 个亲手处理过的工况拆开,按 现象、排查、根因、改法、结果 走一遍,用到的关键字和参数量级都标出来。
先打个预防针:下面的参数是按典型工况给的参考量级,不是万能值。真做项目,材料参数必须拿自己的试验数据标定。
01
PART
FOUR KILLERS · 排查顺序
这个排查顺序是我自己排的,遇到崩模型就从上往下过一遍,能省掉一半的无效熬夜。
负体积(negative volume):单元畸变到 Jacobian 为负,求解器直接终止
沙漏(hourglass):单点积分单元的零能模式,结果不崩但全是假的
接触失效:穿透、主从面反了、罚刚度不够
时间步长失控:最小单元尺寸和材料声速决定 Δt,一步错,全线崩
第 1 类和第 4 类会报错,好发现。真正坑人的是第 2 类:模型跑完了,云图看起来很漂亮,能量平衡一查,沙漏能占了 30%,整篇论文的数据全是废的。
02
PART
CASE 01 · PENETRATION
PROJECTILE vs STEEL PLATE
工况
某高校靶场试验的对标项目。直径 12.7mm 的弹体,800 m/s 正侵彻 10mm 厚钢板。学生用 SOLID164 划分六面体网格,全局尺寸 2mm,材料直接给了弹性。
现象
算到 60μs 左右,弹靶接触区刚起屑,求解器终止。d3hsp 里报 negative volume,指向接触区的几个单元。
排查
我把 GLSTAT 调出来看,发现两个问题。
一是材料只定义了弹性,没有塑性、没有失效准则。单元被压到极致也不会删除,只能靠无限畸变来扛。二是 d3hsp 里的初始时间步长是 3.2e-4 ms,看着挺稳,但变形中后段单元被压扁,特征长度 L 急剧下降,Δt 跟着塌,模型里没有任何保护措施。
根因
高速侵彻下材料要经历瞬态高压、高应变率和大变形三重考验。缺少状态方程和失效准则,单元只能靠畸变来吸收变形,Jacobian 变负只是时间问题。
改法,按层拆
材料层
换 *MAT_JOHNSON_COOK(MAT_015),配 *EOS_GRUNEISEN 描述体积响应。以 4340 钢为例,JC 参数典型量级:A=792 MPa,B=510 MPa,n=0.26,C=0.014,m=1.03;Gruneisen 取 C=4569 m/s,S1=1.49,γ0=2.17。这些是文献公开值,实际项目必须按你自己的材料标定。
失效层
加 *MAT_ADD_EROSION,用最大主应力 SIGP1 或最大主应变 MXEPS 控制单元删除。失效阈值要做网格尺寸敏感性分析,同一套参数换网格就失效,是最常见的翻车点。
接触层
从普通面面接触换成 *CONTACT_ERODING_SURFACE_TO_SURFACE。普通接触在单元被删除后不会更新接触面,碎屑会直接穿过去。
时间步层
在 *CONTROL_TIMESTEP 里设 DT2MS 为负值,比如 -1e-7。负值代表只给时间步小于该值的单元加质量,属于选择性质量缩放。正值是对全局统一时间步,会把整体质量一起改掉,慎用。
网格层
侵彻区局部加密到 0.5mm,远离区保留 2mm 做过渡。
!踩坑提示 🕳
我对质量缩放一直很保守。加了质量就等于改了物理模型,d3hsp 里那行 added mass 是我每次必看的,很多学生算了半年都没打开过这个文件。
改完之后
全程跑通,剩余速度与靶场数据差 6%
03
PART
CASE 02 · DROP TEST
工况
某便携设备 1.5m 六面跌落,外壳用壳单元,内部有 PCB 和支架。研究生跑完很兴奋地发图给我,说结果很合理。
现象
我打开 d3plot,第一眼就觉得不对:外壳皱得像一张纸,局部有自穿透,内部零件直接嵌进壳里去了。
排查
调 GLSTAT 看能量,hourglass energy / internal energy = 31%。
这个数一出来,整个模型的刚度就不可信了。带学生最容易漏的就是这一步:算完只看云图漂不漂亮,从不看能量平衡。
沙漏是单点积分单元(ELFORM=2,Belytschko-Tsay)的零能模式,网格在没受力的方向上可以任意扭动,云图上表现为不真实的褶皱,物理上表现为偏软。接触穿透是另一件事:主从面设反了,硬的外壳被设成了从面,而且是默认罚刚度。
改法,按层拆
沙漏
*CONTROL_HOURGLASS 里把 IHQ 从默认的 1(粘性型)改成 4 或 5(刚度型),配合 *HOURGLASS 单独给关键 part 指定控制方式和 QM 系数。对刚度要求高的核心件,*SECTION_SHELL 改用 ELFORM=16 全积分壳,代价是计算量上升、更容易出现体积锁定。
监控
*CONTROL_ENERGY 里 HGEN=2,让沙漏能计入能量平衡并在 GLSTAT 里输出。
接触
换 *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE,SOFT=1 打开软约束。主从面按粗面为主、细面为从,软面为主、硬面为从重排。*CONTROL_CONTACT 里 ISLCHK=1 打开初始穿透检查,接触定义里 IGNORE=1 处理已有的初始穿透,再用 SLSFAC 微调罚刚度缩放。
判据
hourglass energy / internal energy 要压到 5% 以内,最多不超过 10%。
改完之后
沙漏能降到 2.7%,穿透消失
跌落峰值加速度回到与实测同一量级
04
PART
CASE 03 · CRUSHING
工况
一位老师的课题,铝合金薄壁方管轴向压溃吸能,要对标一篇 SCI 论文的力位移曲线。
现象
模型能算,也能收敛,但峰值力比文献高 35%,折叠模式从论文的渐进折叠变成了整体欧拉屈曲。
排查,三个问题叠在一起
网格尺寸 5mm,论文用的是 2mm。模型没有引入初始几何缺陷,几何上是一根完美直管,理论上只会发生整体屈曲。材料曲线用的是静态拉伸数据,MAT_024 里 VP(应变率开关)没打开。
改法,按层拆
网格敏感性
做 4mm / 2mm / 1mm 三组对比,看峰值力和折叠数是否收敛。这一步本身就是论文里可以写的一节。
初始缺陷
先用隐式做特征值屈曲,取一阶模态,按壁厚的 1% 到 5% 缩放后叠加到节点坐标(可用 *INITIAL_IMPERFECTION 或直接改节点)。没有这一步,折叠模式几乎不可能对上。
应变率
*MAT_PIECEWISE_LINEAR_PLASTICITY(MAT_024)里 VP=1 打开 Cowper-Symonds,填 C 和 P,数值以 SHPB 试验数据为准。铝合金对应变率并不敏感,钢和高分子材料必须开。
薄壳与自适应
*CONTROL_SHELL 里检查壳单元理论和厚度更新选项,压溃过程中厚度变化对吸能量影响很直接。大变形区可以开 *CONTROL_ADAPTIVE 做网格细分,代价是计算时间和重启动管理。
改完之后
峰值力误差降到 8%,折叠数与论文一致
这一章最后进了 SCI
05
PART
ENERGY BALANCE · GLSTAT
老师投稿、学生答辩,被问得最多的一句是你这个结果可信吗。我回答这个问题时习惯先甩两张能量图,答案都在 GLSTAT 和 MATSUM 里。
总能量曲线应该平直,不应该单调增长
沙漏能占内能比例控制在 5% 以内
滑移界面能(sliding interface energy)要小,异常大说明接触在漏能
质量缩放增加的附加质量,在 d3hsp 里检查,占总质量不宜超过 5%
MATSUM 用来逐个 part 查内能,哪个部件能量异常,问题就在哪个部件。
06
PART
KEYWORDS · 按求解流程排序
这一节建议收藏。下面按求解流程分组,每组都是实际建模中真会用到的卡。
求解控制
单元与材料
接触、载荷与输出
多物理场与高级功能
两个最容易忽略的底层问题
单位制
LS-DYNA 没有内置单位系统,全靠自己自洽。常用的 mm-kg-ms 体系下,钢的密度取 7.85e-6,弹性模量取 210,800 m/s 的速度写成 0.8 mm/ms。密度和模量差一个数量级,冲击响应会完全变形。
时间步 CFL
Δt ≤ L / c,L 是单元特征长度,c 是材料声速。想加快计算,加密局部网格和减小 TSSFAC 是两条路,加质量是第三条,但每加一次都要回头检查附加质量占比。
///
LAST
SUMMARY · 资料领取
这 3 个案例的共同点在于,问题都出在建模时对物理过程做的假设上,软件只是如实把结果报出来了。
材料在高应变率下怎么响应,接触在单元删除后怎么更新,几何上到底有没有缺陷,这三件事想清楚,报错会少掉一大半。剩下那一小半,交给我这样的老倒霉蛋就行。