
切缝药包的k文件我前前后后调了一个多月中间踩了不少坑也把LS-DYNA里和爆破相关的关键字基本翻了个遍。最近刚好有人问起切缝药包聚能爆破的模拟怎么做索性把这套东西系统整理出来从k文件结构到材料参数再到调试心得一次说清楚。首先要明确一个概念我们说的切缝药包聚能爆破和普通装药爆破最大的区别在炮孔装药结构上。普通药包爆炸后应力波沿径向均匀传播两孔之间容易形成应力叠加区但同时孔壁四周都有损伤炸药能量分散裂纹方向不可控。切缝药包则是在药卷外面套一个带切缝的管壳一般是PVC管或者钢管切缝宽度通常在3~10mm之间炸药起爆后爆生气体和冲击波优先从切缝方向流出在这个方向上形成集中的拉伸应力波从而定向起裂。另一边因为管壳阻挡孔壁损伤被抑制。这就实现了“定向致裂”的效果在预裂爆破、光面爆破、定向断裂控制爆破里应用非常广泛。我在做这类模拟时用LS-DYNA写k文件重点要解决几个问题一是如何准确表达切缝管的几何和材料特性二是如何设置炸药、空气、岩石的材料模型和状态方程三是如何处理爆炸冲击波在切缝处的传播和岩石的裂纹扩展。下面我把整个项目的思路和k文件细节逐步拆开说。1. 项目整体设计与模拟思路1.1 切缝药包爆炸作用的物理过程先想清楚切缝药包在炮孔中爆炸时发生了什么这样设置模型才有的放矢。炸药在切缝管内起爆后瞬间产生高温高压的爆轰产物压力可达数十GPa。这个压力通过两种方式作用于岩石一是爆轰波和冲击波的动态加载二是爆生气体的准静态膨胀压裂作用。对于切缝药包情况更微妙一些。在切缝方向爆轰产物通过切缝口高速喷出形成聚能射流效应冲击压力集中作用于切缝方向的孔壁而在非切缝方向爆生气体被管壳约束传递给孔壁的压力被显著降低。换句话说切缝管本身就像一个“能量整流器”——它把炸药释放的各向同性能量变成了优先沿切缝方向释放的定向能量。搞清楚这个物理背景模拟的重点就很清楚了我们要在模型里再现管壳对爆生气体的约束和释放作用而不只是简单地把炸药和岩石建出来。很多初学者在这一步容易犯的错误是把切缝管当成普通弹性体来处理结果管壳在爆炸瞬间被整体压溃根本起不到聚能作用。实际上切缝管在爆炸中的响应非常剧烈涉及大变形、破裂、飞散等一系列非线性过程材料模型和单元算法的选择就变得至关重要。1.2 为什么所有逻辑都集中在k文件里接触过LS-DYNA的人都清楚它的求解器不依赖图形界面所有计算所需的模型信息、材料参数、接触定义、载荷条件和求解控制都被组织在一个文本文件里这就是k文件。k文件之于LS-DYNA就像源代码之于程序——你写什么求解器就算什么。用k文件做切缝药包模拟有一个巨大的优势修改参数极其方便。我在调试阶段经常需要一口气对比好几组切缝宽度、管壳厚度、装药结构的方案如果用前处理软件建模每次重新点击操作效率会非常低。直接在k文件里改几个数字然后批量提交计算一天可以跑十几个工况。这一点在研究切缝参数对定向致裂效果的影响规律时特别有用因为本质上这就是一个参数优化问题。当然k文件也有缺点就是肉眼排查错误比较费劲尤其是关键字格式、单位、参数卡片对齐这些问题。后文我会专门讲调试技巧。1.3 模拟维度选择二维还是三维切缝药包聚能爆破从机理上说是一个三维问题因为切缝方向、炮孔轴向、爆生裂纹的起裂和扩展存在空间耦合。但在实际工程模拟中二维平面应变模型用得非常多至少我自己的前期方案筛选阶段基本都用二维。为什么因为爆炸冲击波和应力波在岩石中的传播是一个超短历时的过程毫秒量级。三维模型动辄几百万单元就算LS-DYNA的算法效率再高一个工况也要算好几天。而二维模型可以在几十分钟内完成一次计算足以反映切缝方向的应力集中和裂纹扩展趋势用于方案对比绰绰有余。当然如果需要研究炮孔轴向的裂纹扩展形态或者切缝与轴向有一定夹角的情况那必须上三维模型。我自己的做法是先用二维模型快速扫参数找出最优的切缝宽度、管壳厚度范围再对最优方案做一次三维验证。这样既保证了效率又不牺牲最终结果的可靠性。2. k文件核心关键字与参数详解2.1 k文件整体结构一份完整的切缝药包爆破k文件基本骨架如下*KEYWORD *TITLE $ 切缝药包聚能爆破二维模型 *CONTROL_TERMINATION *CONTROL_TIMESTEP *DATABASE_BINARY_D3PLOT *DATABASE_EXTENT_BINARY *PART *SECTION_SHELL / *SECTION_SOLID *MAT_HIGH_EXPLOSIVE_BURN *MAT_NULL *MAT_PLASTIC_KINEMATIC / *MAT_JOHNSON_HOLMQUIST_CONCRETE *EOS_GRUNEISEN / *EOS_JWL *INITIAL_DETONATION *BOUNDARY_NON_REFLECTING *END各关键字的作用分别说一下*CONTROL_TERMINATION设置计算结束时间。爆破模拟通常设置500~2000微秒具体视裂纹扩展范围而定。*CONTROL_TIMESTEP时间步控制。爆破问题必须用变时间步LS-DYNA会根据最小单元尺寸和波速自动调整时间步。*DATABASE_BINARY_D3PLOT输出结果文件的频率也就是多少微秒保存一个状态。输出太密会导致文件巨大太疏则捕捉不到裂纹扩展的关键时刻。*PART把单元、材料、截面属性关联起来相当于给每个部件发一个身份证。*INITIAL_DETONATION定义起爆点位置和起爆时间。2.2 炸药材料模型与JWL状态方程炸药在LS-DYNA里通常用MAT_HIGH_EXPLOSIVE_BURN配合EOS_JWL来描述。JWL状态方程是目前工程爆破模拟中最常用的炸药爆轰产物状态方程公式为P A(1 - ω/R₁V)e^(-R₁V) B(1 - ω/R₂V)e^(-R₂V) ωE/V其中V是爆轰产物的相对体积E是内能密度A、B、R₁、R₂、ω是材料常数。A和B是压力项系数R₁、R₂控制高压段和低压段的衰减行为ω决定等熵膨胀末期的行为。用手头的2号岩石乳化炸药举例我常用的参数是参数数值密度ρ (g/cm³)1.10爆速D (m/s)3600爆压P_CJ (GPa)5.8A (GPa)214.4B (GPa)0.182R₁4.2R₂0.9ω0.15E₀ (J/m³)4.2×10⁹这几个参数不完全是“查表”来的有一部分是根据炸药的爆速和密度做了标定调整。需要注意一个细节JWL参数经常会出现“压力对不上”的情况——用上述参数算出来的CJ压力如果和理论值偏差太大爆轰波的传播行为会失真。一个简单验证方法是先做一维爆轰测试计算对比爆速和CJ压力是否落在合理区间。2.3 岩石材料模型的选择岩石材料模型的选择直接关系到裂纹扩展的形态是否可信。在LS-DYNA里常见的岩石材料模型有几个选择*MAT_PLASTIC_KINEMATIC率无关的理想弹塑性模型参数少、收敛快适合方案对比。*MAT_JOHNSON_HOLMQUIST_CONCRETEHJC考虑了大应变、高应变率和高压效应专为冲击和爆炸问题设计需要定义超过20个参数。*MAT_RHT比HJC更完备涉及拉伸损伤和残余强度的描述更细腻但参数标定更麻烦。我个人的经验是如果只是研究不同切缝参数下的应力场分布和裂纹起裂方向用带*MAT_ADD_EROSION的塑性模型就能得到很直观的结果。但如果你要定量研究破碎区范围、裂纹扩展速度、损伤分布这些更细的指标建议直接上HJC模型并且花时间把参数标定扎实。这里用HJC模型的参数组做一个示例说明各参数的含义参数含义典型值ρ密度2.6 g/cm³G剪切模量14.8 GPafc单轴抗压强度48 MPaT抗拉强度4.8 MPaA, B强度参数0.79, 1.6C应变率系数0.007N压力硬化指数0.61注意HJC模型的参数初值一般参考同类型岩石的文献但实际计算前一定要做单轴压缩、单轴拉伸的单元测试确认模型响应符合预期。这一步很多人偷懒跳过后来算出的裂纹形态乱七八糟又找不到原因。2.4 切缝管的材料与失效切缝管的模拟是切缝药包数值模拟成功与否的关键之一。管壳材料目前常见的有PVC、纸管和钢管每种材料的力学行为差异很大。PVC管的弹性模量一般在2~3GPa抗拉强度40~50MPa破坏应变较大而钢管的弹性模量超过200GPa强度高很多。由于切缝管在爆炸驱动下必然产生大变形和断裂我建议用*MAT_PLASTIC_KINEMATIC并配合失效准则来描述。这个模型用Cowper-Symonds本构关系考虑应变率效应σ_y [1 (ε/ C)^(1/P)](σ₀ βE_pε_p^eff)其中σ₀是初始屈服应力E_p是塑性硬化模量ε_p^eff是有效塑性应变C和P是应变率参数。钢材的C通常取40/sP取5。关键的一点*MAT_PLASTIC_KINEMATIC里有一个FS失效应变参数这个值非常敏感。如果设置过小切缝管在爆炸瞬间就碎成渣失去聚能约束作用如果设置过大管壳又不容易裂开爆生气体被完全约束切缝处无法形成射流。我根据实际标定经验PVC管的FS取0.5~0.8钢管的FS取0.15~0.25比较合理。但这不是通用值需要根据你的管壳材料和单元尺寸微调。2.5 空气模型爆炸模拟中炮孔内除了炸药以外还有空气间隙爆生气体也要在空气中膨胀传播所以空气材料必须定义。空气用MAT_NULL配合EOS_GRUNEISEN描述就够用关键在于空气的材料密度和状态方程参数。标准做法是密度设1.29×10⁻³ g/cm³GRUNEISEN状态方程参数中C₀取344 m/sS₁取1.35γ₀取0.35初始内能E₀设为2.5×10⁵ J/m³。这里有一个很多人容易忽略的问题空气的初始内能不是随便给的它决定了空气的初始压力状态。如果E₀给太小空气会出现负压力影响爆生气体膨胀波的传播计算稳定性如果给太大又会相当于给炮孔预加了一个压力场干扰爆破结果。3. 实操过程与k文件实现3.1 几何建模与网格划分要点切缝药包二维模型的几何分区比较清晰最外层是岩石区域往内是切缝管壁再往内是炸药和空气的混合物区域切缝处是管壁断开的口子。为了简化模型二维建模里把炮孔轴向方向看作无限长用平面应变单元模拟单元类型选SECTION_SHELL的2D solid或者直接用SECTION_SOLID的平面应变单元。网格划分是整个模拟中另一个容易被忽视的环节。爆炸冲击波的传播要求在炸药和近区岩石处有足够密的网格。根据经验应力波的最高频率成分和单元尺寸要匹配最小单元尺寸建议控制在1~2mm。更大的单元会把冲击波抹平导致峰值应力偏低切缝方向的裂纹长度被严重低估。一个我常用的技巧是对炮孔近区1.0m×1.0m的范围内使用细网格过渡区使用渐变网格边界区域用粗网格。这样既保证了爆炸近区的计算精度又避免整体网格数量爆炸式增长。过渡区单元尺寸变化率不要超过1.5倍否则容易出现应力波在网格界面上的虚假反射。3.2 起爆点设置与时间步控制切缝药包的起爆方式通常是轴向起爆在二维模型里简化为在炸药区域中心设置一个起爆点。用*INITIAL_DETONATION关键字定义起爆位置坐标和起爆时间例如*INITIAL_DETONATION $ x y z LT 0.0 0.0 0.0 0.0这里的LT是起爆时间取0.0表示从计算开始瞬间起爆。实际工程中可能有毫秒延时起爆的情况需要按实际设计填入延时时间。时间步控制方面因为爆炸波速很高即使岩石中纵波波速也有4000~6000m/s为了保证计算稳定LS-DYNA要求时间步Δt必须小于单元特征长度除以波速的最小值。在k文件里可以通过*CONTROL_TIMESTEP的DT2MS参数来控制。我通常将DT2MS设为负值让LS-DYNA基于刚度进行质量缩放计算时间步这样可以避免极小单元拖慢整体计算速度。但注意质量缩放比例不要超过10%否则会引入过多虚假质量影响冲击波传播的准确性。3.3 边界条件无反射边界的重要性爆破模拟最怕的就是人为边界反射。你的岩石区域不可能建得无限大但截断边界上如果没有任何处理应力波传播到边界后会被反射回模型内部和真实的爆生裂纹叠加在一起导致结果完全失真。这个问题在二维模型里尤其突出因为模型四周都是边界。解决办法是在模型外边界设置*BOUNDARY_NON_REFLECTING。这个关键字的作用是让应力波到达边界时“透射”出去不产生反射。但使用它有讲究无反射边界基于粘性边界理论对于冲击波以较大角度入射的情况效果会大打折扣。所以即便设置了无反射边界模型尺寸也不能太小。我一般会保证从爆源到边界的最小距离是预期裂纹最大扩展长度的1.5倍以上在这个前提下无反射边界的吸收效果才够用。3.4 后处理中如何观察切缝聚能效果计算完成后LS-PrePost打开d3plot文件最常用的几个观察指标一是压力云图。看不同时刻压力在切缝方向和径向的分布直观感受聚能效果。正常情况下能明显看到切缝方向形成细长的集中高压区。二是有效应力云图和损伤分布。裂纹扩展过程中有效应力超过岩石抗拉强度的区域会形成损伤。通过观察损伤云图的扩展方向判断是否实现了定向致裂。三是通过历史变量输出指定位置的压力时程曲线。这个做法非常有用在切缝方向和垂直切缝方向的孔壁附近各取几个特征点输出它们的压力-时间曲线定量对比两个方向的载荷差异。好的切缝药包应该表现出显著的方向性差异切缝方向的峰值压力可能是垂直方向的3~5倍。一个关键判断技巧观察裂纹的扩展加速度。切缝方向的裂纹应该在起爆后很快起裂并在爆生气体压力下持续稳定扩展如果裂纹延迟起裂或者扩展速度忽快忽慢说明切缝结构的聚能效果没有被正确模拟这时优先回查切缝管的材料参数和失效应变设置。4. 常见问题与调试技巧4.1 单元出现负体积负体积是爆炸模拟中最常见的问题。正常表现为LS-DYNA计算中断提示某个单元负体积。原因通常是该单元在极端压缩下发生畸变单元体积变为负值。在切缝药包模型中最常出现在炸药区域或者切缝口附近的高速射流区。解决办法分几个层面第一检查网格质量。切缝口附近单元尺寸是否足够均匀是否存在尖锐的畸形单元这些区域需要重新划分。第二适当调整*CONTROL_TIMESTEP。负体积往往发生在时间步过大时减小时间步能有效改善。第三给材料增加体积粘性。在LS-DYNA中可以通过*CONTROL_BULK_VISCOSITY设置体积粘性参数默认值Q11.5、Q20.06一般在多数情况够用但如果负体积持续出现可以适当增大Q1。第四对炸药材料本身可以考虑用MAT_ELASTIC_PLASTIC_HYDRO等更复杂的模型替代MAT_HIGH_EXPLOSIVE_BURN。后者在爆轰产物极度压缩时有时会因为状态方程在高压段的数值行为不稳定导致负体积。4.2 沙漏变形与能量不守恒使用单点积分单元计算时沙漏模式会严重影响结果。典型表现是模型出现“棋盘格”状变形或者能量曲线中沙漏能占到总能量的10%以上。爆炸问题中冲击波传播剧烈沙漏问题尤其突出。对策有三个方向通过*CONTROL_HOURGLASS设置全局沙漏控制类型。标准算法IHQ1对爆炸问题适用性一般可以选择IHQ4或6这类基于刚度的方法效果更稳定。在*PART里单独为炸药和切缝管材料设置沙漏控制参数。不同材料响应差异大统一设定并不科学。最直接的办法提高网格密度。沙漏能和单元尺寸高度相关加密网格后沙漏现象会显著缓解。我自己的标准是计算结束后检查glstat文件如果沙漏能与内能之比超过5%这个工况的结果就要打问号了优先排查沙漏问题。4.3 计算时间过长怎么办爆破模拟的时间成本确实让人头疼。二维模型相对还好三维模型常常要跑几天。几个时间优化手段首先用质量缩放。*CONTROL_TIMESTEP里DT2MS设为负值允许LS-DYNA通过调整单元密度来达到稳定时间步。这个方法对缩短计算时间立竿见影但要控制缩放比例一般不超过10%。其次调整输出频率。D3PLOT文件不需要每一步都输出可以根据关注的物理过程调整输出间隔。比如早期冲击波传播阶段需要高频输出而后期裂纹扩展慢可以降低输出频率。第三合理使用对称性。如果切缝药包模型具有对称性比如切缝是轴对称的岩石是均匀的可以只建1/2甚至1/4模型在对称面上设置BOUNDARY_SPC或BOUNDARY_SYMMETRY_PLANE。这样单元数量直接减半计算速度接近翻倍。我用对称模型跑过大量参数工况结果和全模型几乎一致可靠性完全没有问题。4.4 参数不匹配导致结果异常最后集中说一下参数一致性问题。爆破模拟中最麻烦的不是k文件写不出来而是参数之间“打架”。最典型的情况是单位制混乱——cm-g-μs单位制里密度单位是g/cm³应力单位是Mbar10¹¹ Pa如果某一个材料密度写成kg/m³的量级整个模型就毁了。我的一个笨办法但非常有效在写完k文件后对所有材料参数做一次“量纲体检”。分别列出每个参数的数值和单位检查同一量级内是否协调。比如2号岩石乳化炸药密度1.10g/cm³如果误写成1100那计算出来的爆压会离谱到没法看。还有炸药JWL参数和初始体积分数的问题。在建模时如果炸药不能完全填满炮孔实际中通常有一定的空气间隙那要在建模阶段就把炸药区域的几何按实际装药结构画对而不是在k文件里改某个参数来“修正”。k文件里没有简单的装药不耦合系数可以直接设置它反映的是几何事实。5. 一次完整的调试案例复盘用一个实际案例来说明整套流程怎么走。之前做过一组对比切缝宽度为4mm、6mm、8mm的三种工况看哪个切缝宽度下岩石定向裂纹扩展长度最理想。建模思路是二维平面应变模型岩石区域1.5m×1.5m炮孔直径40mm药卷直径32mm切缝管外径36mm管壳厚度2mm岩石采用HJC模型切缝管用考虑失效的塑性模型炸药用2号岩石乳化炸药参数。计算完8mm切缝工况后我发现一个问题岩石裂纹沿着切缝方向几乎没怎么扩展反而在非切缝方向出现了大范围损伤区。这个结果和实验规律完全不符说明模型有问题。排查过程花了大半天。先看压力云图发现爆炸后压力在非切缝方向依然很强切缝管几乎没有起到约束作用。继续查发现切缝管的失效应变设成了0.05爆炸瞬间就被整体破坏了。PVC管的实际失效应变在0.5以上修正参数后重新计算得到的裂纹扩展形态就和实验现象基本吻合了。这个案例说明一个道理爆破模拟虽然是“数值实验”但它对材料参数的敏感性非常高特别是像切缝管这样的关键结构件参数的微小偏差就可能让整个模拟失真。所谓“garbage in, garbage out”在爆破模拟中体现得淋漓尽致。还有一次调试岩石模型用HJC时总是不开裂。后来发现是抗拉强度T的值给大了明明实际岩石的抗拉强度只有几个MPa初值却用了实验室完整试件的数据结果爆炸应力根本拉不坏岩石单元。把T值从8MPa降到4.5MPa后裂纹起裂和扩展的形态才恢复正常。这说明材料参数的取值一定要结合你模拟的问题场景去审视不能机械照搬文献值。6. 优化与扩展方向6.1 从二维到三维的扩展二维模型完成参数筛选后对于最终选定的方案建议做一次三维模型验证。三维模型中炮孔轴向的切缝方向、装药结构都能真实反映出来。三维建模的一个常见问题是单元数量大所以优化策略通常采用过渡网格或者在远离爆源区域使用*PART_COMPOSITE等简化手段。三维工况下特别值得关注的是沿炮孔轴向的裂纹扩展形态。切缝药包聚能爆破在三维中的表现并不完全等同于二维的简单拉伸还伴随着轴向裂纹的竞争扩展。这时候观察d3plot的剖面云图能发现很多二维模拟看不到的有趣现象。6.2 与SPH、FEM-SPH耦合等方法结合对于切缝口处爆生气体的高速射流和大变形传统的拉格朗日单元经常因为过度畸变导致计算中断。这种情况下可以考虑把炸药和切缝管近区改为SPH粒子岩石仍然用FEM单元两者之间设置耦合。SPH方法本质上无网格能天然处理大变形和物质飞散问题对切缝口射流模拟的精度有显著提升。但SPH也不是万能的它的计算效率比FEM低且粒子分布密度直接影响精度。所以一般只在关键局部区域使用SPH其他区域仍保持FEM做到精度和效率的平衡。6.3 参数敏感性分析思路切缝药包的参数空间挺大的切缝宽度、切缝条数、切缝管壁厚、管壳材料、装药直径、不耦合系数、岩石强度等等都影响最终爆破效果。做参数敏感性分析时建议用控制变量法一次只变化一个参数在统一的后处理标准下对比结果指标。结果指标的选取要量化。我常用的几个指标定向裂纹扩展长度切缝方向裂纹长度与垂直方向裂纹长度之比、切缝方向孔壁峰值压力、破碎区面积、非切缝方向损伤深度。用这几个指标综合评估比单纯肉眼看云图靠谱得多。在参数扫描的后期可以引入简单的代理模型来辅助分析。比如先用正交试验设计或拉丁超立方设计安排少量工况再用回归分析建立参数与响应之间的近似关系找到最优参数区间的方向。这一步虽然多花一点时间但能让“参数调试”从经验驱动变成数据驱动少走不少弯路。7. 写在最后切缝药包聚能爆破的LS-DYNA模拟本质上是一个“用数值手段再现定向断裂控制机理”的过程。k文件是这个过程中最核心也是最后一个环节——前面所有对工程问题的理解、对材料行为的认识、对模型的简化处理最终都要凝练成k文件里的几十行关键字和上百个参数数字。我调整这套模型最大的体会是k文件的书写本身不难难的是判断计算结果是否正确。爆炸模拟的结果不像静力分析那样有明确的位移、应力可以参考而是要结合物理规律、工程经验、甚至实验现象去综合判断。一个参数不合理的模型计算可以正常跑完云图看起来也“很漂亮”但可能得到的是完全错误的结论。所以在自己做切缝药包模拟时我强烈建议配着实验数据一起做。哪怕只有一两组切缝宽度下的爆破实验结果也能成为校准模型的重要标尺。模型标定好了以后再去系统扫参数得到的趋势性结论才真正有工程参考价值。如果你也是做爆破数值模拟的同行希望这份k文件层面的经验梳理能帮你少踩几个坑。后续有机会的话我可以把三维模型的切缝管建模细节、SPH与FEM耦合的具体设置再单独写一篇那些坑更多但也更有意思。