做冲击动力学,最头疼的就是LS-DYNA里的结构损伤和裂纹扩展。选错方法,算出来的裂纹要么乱飞,要么根本裂不开。最近在复现白金泽书里的案例,把目前主流的6种失效模拟方法梳理了一遍,希望能帮你少走弯路。
第一种是CONSTRAINED_TIED_NODES_FAILURE。这方法思路很暴力:先把本来共节点的网格强行离散开,然后用约束把它们“粘”起来。当受力超过阈值,约束断开,裂纹就产生了。
操作有多反人类?
你必须用LS-PrePost或者ANSA,把接触面上的节点一一配对,生成节点集。以前我做过一个鸟撞机翼的案例,光是处理这个节点集就花了3天。还得写个小程序(Matlab或Python)来自动识别重合节点。
优点: 裂纹路径非常清晰,物理意义明确。
缺点: 前处理工作量巨大,不适合复杂模型。除非你对裂纹路径有极其精确的强迫症,否则不建议在2026年还用这招。
这是目前的主流,尤其是MAT_ADD_EROSION(材料侵蚀模型)。
在LS-DYNA 971 R4版本之前,这玩意儿是个“残废”,只支持单点积分的实体单元。但现在R5及以后版本,它强得离谱。不仅支持3维壳单元,还能定义初始损伤值。
实战技巧:
比如做金属切削仿真。给工件赋予*MAT_PLASTIC_KINEMATIC,再叠加*MAT_ADD_EROSION。设置失效判据为最大主应变(Max Principal Strain)达到0.3。一旦单元应变超标,单元直接消失(侵蚀),裂纹就出来了。
如果你用的材料本构自带失效(比如*MAT_024),就不需要额外加侵蚀模型了。如果不带,就用这招,或者自己去写用户自定义材料(UMAT)。
第三种方法有点取巧。如果你提前知道裂纹会在哪里发生,比如预制的焊缝或者缺口。
用CONTACT_TIED_SURFACE_TO_SURFACE_FAILURE。这本质是一种带失效条件的绑定接触。当两个接触面之间的应力超过了你设定的剪切力或拉力,接触断开,裂纹显现。
还有一种是用弹簧单元(Beam或Spring)连接两个节点。给弹簧设定一个力-位移曲线,拉断了就算裂纹。这种方法在模拟螺栓断裂或者点焊失效时很好用,但用来模拟连续体的自由裂纹,总觉得差点意思。
有些材料模型生来就是为了“碎”的。
比如MAT_120 (Gurson模型)。它是用来模拟多孔金属材料损伤的。它不直接显示裂纹,而是通过计算孔洞的聚集和长大(Damage Value)来预测失效。你看着云图里损伤值达到1的地方,那就是裂纹要断的地方。
还有MAT_96 (Brittle Damage),专门对付玻璃、陶瓷这种脆性材料。做子弹打防弹玻璃的仿真,用这个准没错。它基于微裂纹密度演化,比单纯的侵蚀模型更符合物理机理。
最后说说LS-DYNA重点发展的无网格法(EFG)和扩展有限元法(XFEM)。
这是目前学术界最火的方法。不需要预设裂纹路径,也不需要网格重划分,裂纹可以穿过单元内部。
EFG (Element Free Galerkin): 适用于4节点积分的实体单元。它的优点是精度高,缺点是计算量巨大,是传统有限元的5-10倍。
XFEM: 只适用于2D平面应变和壳单元。它是把裂纹面作为附加自由度引入方程。
2026年的建议:
如果你的模型不大,且对裂纹尖端应力强度因子要求极高,用XFEM。如果模型很大,还是老老实实用材料侵蚀法。毕竟,老板要的是结果,不是论文。

怎么选?给你个速查表:
| 场景 | 推荐方法 | 理由 |
|---|---|---|
| 金属切削、冲压 | MAT_ADD_EROSION | 计算快,参数好调 |
| 玻璃破碎、陶瓷撞击 | MAT_96 (Brittle) | 物理机理匹配 |
| 复合材料分层 | CONTACT_TIED_FAILURE | 层间失效模拟精准 |
| 学术科研、裂纹尖端 | XFEM / EFG | 精度高,无需重划分 |
| 复杂整机冲击 | 材料自带失效 | 稳定性最好,不易报错 别迷信新算法。很多时候,简单的应变失效(Strain Failure)就能解决80%的工程问题。把时间花在调材料参数上,比纠结用什么算法更有性价比。 |
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks 等。