多次爆破是矿山开采、隧道掘进和城市地下空间施工中非常常见的工况。单次爆炸的应力波传播规律很多资料都有,但真正到了工程上,岩体往往要承受几十次甚至上百次循环爆破荷载,振动损伤是逐次累积的。如果只按单次爆炸评估稳定性,很容易低估围岩的劣化程度。
LS-DYNA 做爆炸冲击分析的能力很强,但很多人卡在建模环节:Hypermesh 老版本的教程到处都是,换了新界面之后,菜单、面板、材料设置的位置全都变了,一时不知道从哪里下手。这篇文章就围绕“Hypermesh 新界面 + LS-DYNA”这条技术路线,完整梳理多次爆破岩体振动损伤累积分析的建模、材料参数、求解控制和后处理流程,同时把网格质量检查、单位制设置、节点显示异常等高频问题一并讲清楚。
全程有操作思路、有关键字卡片示例、有排查清单,新手可以按步骤搭建模型,有基础的工程师也可以直接对照检查自己的建模流程。
1. 背景:多次爆破振动损伤为什么不能按单次算
1.1 什么是“全时域振动损伤累积响应”
爆破产生的应力波进入岩体后,会经历传播、反射、透射和衰减。单次爆破时,如果峰值振动速度(PPV,Peak Particle Velocity)控制在安全阈值以内,岩体通常不会发生明显的宏观破坏。但在多次爆破工况下,岩体内部的原生裂隙會反复张开、扩展,微损伤不断累积,即使单次振速不超标,多次之后也可能出现贯通裂隙或者岩体力学参数劣化。
“全时域”的含义,是指分析的时间范围要覆盖所有爆破载荷序列的完整过程,而不是只取其中一次爆破单独计算。比如一组掏槽孔分 5 段起爆,每段之间的延迟可能是 25ms 或 50ms,分析模型需要把这一段完整的载荷序列全部施加到同一套岩体网格上,才能真实反映损伤叠加效应。
从数值实现上看,有两种思路:
| 实现方式 | 说明 | 适用场景 |
|---|---|---|
| 单模型多载荷步 | 一个有限元模型,在时间轴上依次加载多次爆破载荷 | 炮孔距离相对固定、网格不变 |
| 重启分析 | 第一次求解完成后,读取 d3dump 文件继续计算 | 需要插入新的损伤数据或改变计算策略时 |
对岩体这类连续介质问题,如果每次爆破的网格和材料模型不变,优先用第一种方式,也就是在同一个求解任务里连续施加多次爆破荷载,让单元损伤状态自然累积。
1.2 Hypermesh 新界面和 LS-DYNA 的分工
Hypermesh 在前处理阶段的优势在于网格划分和对大规模模型的处理能力。LS-DYNA 负责求解。后处理可以使用 LS-PrePost 或 HyperView。
所谓“新界面”,指的是 HyperMesh 自 2021 版本之后逐步推进的现代 Ribbon 界面风格。老版本那种菜单树模式逐渐被选项卡式的面板替代。如果你之前习惯用 HyperMesh 12.0、14.0 或者 2019 的经典界面,切到新界面之后,最直接的感受是:
- 工具栏按功能分区,不再是以“宏菜单”为主。
- Model Browser 成为模型管理的中心。
- 材料、属性、载荷等通过模型树右键或特性面板设置。
- 不少命令支持搜索定位,按快捷键
F12之类仍有保留,但部分功能入口位置有变化。
在后续第 3 章和第 4 章中,我会把新界面下容易混淆的操作单独拎出来说明。
2. 环境准备与版本说明
2.1 软件环境
本文示例以常见配置为例:
- 前处理工具:HyperMesh 新界面版本(2021 及以上)
- 求解器:LS-DYNA(MPP 版本或单机 SMP 版本均可)
- 后处理工具:LS-PrePost 或 HyperView
- 操作系统:Windows 10/11 或 Linux 均可
- 硬件建议:内存 32GB 以上,多核 CPU,SSD 硬盘
具体版本号需要根据你的 License 和项目实际情况调整。不同版本的 LS-DYNA 对部分关键字(比如 *LOAD_BLAST_ENHANCED、*MAT_272 等)支持程度不同,提交求解前最好用当前版本的关键字手册核对一遍。
2.2 单位制统一
这是最容易翻车的地方。Hypermesh 里几何模型可能是按毫米建模的,也可能按米建模,而 LS-DYNA 本身不识别单位,所有数据全靠数值一致。
常用的两组单位制如下:
| 单位制 | 长度 | 质量 | 时间 | 应力结果 |
|---|---|---|---|---|
| kg-m-s | m | kg | s | Pa(N/m²) |
| g-cm-μs | cm | g | μs | 10⁵ MPa(Mbar) |
| kg-mm-ms | mm | kg | ms | GPa(kN/mm²) |
岩体动力分析常用 kg-m-s 或 g-cm-μs。选择了哪套单位制,后续所有输入值都必须换算到这套单位制下:
- 密度:kg/m³ 或 g/cm³
- 弹性模量:Pa 或 Mbar
- 抗压强度:Pa 或 Mbar
- 时间步长:s 或 μs
- 载荷曲线时间轴:s 或 μs
很多人在 Hypermesh 的 materials 面板里设置材料时,直接照搬论文里面的数值,忽略了单位制换算,结果弹性模量差 10⁶ 倍,计算出来的波速完全不对。第 3.3 节会给出具体的换算处理建议。
2.3 多次爆破分析的文件组成
一个完整的 Hypermesh + LS-DYNA 爆破分析案例,通常涉及以下文件:
| 文件类型 | 说明 |
|---|---|
| .hm | HyperMesh 模型文件,保存几何和网格 |
| .k / .key | LS-DYNA 关键字文件,求解器直接读取 |
| .d3plot | 二进制结果文件,包含应力和损伤历史 |
| .d3dump | 重启动文件,用于重启分析 |
| .glstat / .matout | ASCII 格式的全局统计和材料输出 |
| .binout | 二进制时间历程输出 |
Hypermesh 导出关键字文件后,可以直接用 LS-DYNA 提交计算,也可以手动编辑 .k 文件补充求解控制关键字。对于多次爆破的复杂载荷序列,我倾向于在 Hypermesh 里完成网格和材料定义,再用文本编辑器统一管理载荷曲线和求解控制卡片,这样更容易检查。
3. Hypermesh 新界面网格建模与质量检查
3.1 新界面下建模的基本流程
新界面 HyperMesh 的基本流程依然是“几何准备 → 网格划分 → 材料属性 → 载荷边界 → 导出求解文件”,但操作入口更集中。
- 导入几何模型:通过 File → Import 导入 CAD 几何或已有的 FE 模型。
- 几何清理:删除重复面、补孔、压缩短边。
- 创建 2D 网格:在 Mesh 模块下使用 Automesh。
- 生成 3D 网格:使用 Solid Map 或 Tetramesh 生成六面体或四面体网格。
- 设置材料与属性:在 Model Browser 中右键创建 Material 和 Property。
- 施加边界和载荷:通过 Analysis 面板创建约束、载荷、曲线。
- 导出 .k 文件:File → Export → LS-DYNA。
新界面里,Model Browser 左侧会列出 Component、Material、Property、LoadCollector 等对象。你可以理解为一切“看不见的模型数据”都挂在模型树上,右键即可创建和编辑。
3.2 如何检查 3D 网格质量
爆破分析中网格质量直接影响应力波传播的准确性,尤其是爆炸近区。Hypermesh 中检查 3D 网格质量可以使用“Mesh Check”或“Check Elements”功能。不同版本菜单位置略有差异,但通用指标一致。
需要重点检查的质量参数包括:
| 检查项 | 建议阈值 | 说明 |
|---|---|---|
| Aspect Ratio(长宽比) | ≤ 5:1,爆炸近区尽量 ≤ 3:1 | 过长单元会降低波前精度 |
| Jacobian(雅可比) | ≥ 0.6,近区 ≥ 0.7 | 畸形单元会导致负体积 |
| Warpage(翘曲度) | ≤ 15° | 翘曲过大影响单元刚度 |
| Skew(偏斜) | ≤ 45° | 偏斜严重时计算不稳定 |
| Taper(锥度) | ≤ 0.6 | 锥度过大降低精度 |
| Min Length(最小边长) | 按网格尺寸设定 | 过小单元会缩小时间步长 |
检查步骤大致是:
- 选中需要检查的 3D 单元。
- 打开 Check Elements 面板。
- 选择 3D 单元检查类别。
- 设置阈值后点击 Check。
- 不合格单元会在图形区高亮显示。
对于爆破分析,网格尺寸还要考虑应力波频率。通常要求网格尺寸满足最高频率对应的波长至少有 6~10 个单元。也就是说,单元太大会过滤高频波动,太小则时间步长很短、求解代价极大。一般在爆破近区加密,远区逐步过渡放大。
3.3 材料的 materials 设置里怎么处理单位
新界面下,材料的创建路径通常是 Model Browser → 右键 → Create → Material,然后选择 LS-DYNA 材料类型。
这里最容易出问题的不是材料本构怎么选,而是单位制换算。Hypermesh 只是图形界面,它不会帮你做单位换算。比如你选择 *MAT_PLASTIC_KINEMATIC(材料编号 003),界面里会要求填写:
- RO:质量密度
- E:弹性模量
- PR:泊松比
- SIGY:屈服应力
- ETAN:切线模量
如果你在 Hypermesh 里创建材料时输入的数值,与 .k 文件中其他关键字(比如节点坐标、时间、载荷曲线)不属于同一套单位制,整个计算就是错的。
一个稳妥的做法是:在建模一开始就确定单位制,然后把所有材料参数统一换算后填入。例如采用 kg-m-s 单位制:
| 参数 | 实际值(国际单位) | 输入值 |
|---|---|---|
| 密度 | 2650 kg/m³ | 2650 |
| 弹性模量 | 40 GPa | 4.0E+10 |
| 抗压强度 | 100 MPa | 1.0E+8 |
| 泊松比 | 0.25 | 0.25 |
如果模型几何按 mm 导入,而你想用 kg-mm-ms 单位制,那弹性模量输入 40(GPa),密度输入 2.65E-9(t/mm³),时间单位变成 ms,重力加速度和速度边界条件都要对应的换算。因此,不要在材料设置这一步才开始思考单位,必须在几何导入时就确定。
3.4 边界条件与节点集合
爆破分析中经常要对不同位置施加不同的边界条件,比如:
- 模型外边界设置无反射边界,模拟无限岩体。
- 对称面设置法向约束。
- 监测点设置节点集合,用于输出振动速度时程。
在 Hypermesh 新界面里,创建节点集合的方法是:
- 在 Model Browser 中右键 → Create → Entity Set。
- 选择类型为 Node。
- 在图形区框选或按 ID 选择监测点。
- 命名后保存。
如果是通过 Component 管理网格,建议把爆破近区、远区、监测区分别放在不同 Component 中,便于后续在 LS-DYNA 中通过*SET_PART或*SET_NODE引用。
4. LS-DYNA 多次爆破分析的核心设置
4.1 爆破载荷的三种表达方式
在 LS-DYNA 中模拟爆破载荷,常见做法有三种:
| 方法 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| 流固耦合 + 高能炸药 | 用 ALE 网格模拟炸药和空气,与岩体流固耦合 | 最接近真实爆源 | 建模复杂,计算量大 |
| CONWEP 经验载荷 | 通过 *LOAD_BLAST_ENHANCED 施加爆炸荷载 | 简单,适合远区 | 难以模拟炮孔内爆源 |
| 压力时程曲线直接施加 | 把实测或经验爆压曲线加载到炮孔壁面 | 容易控制,适合多次爆破 | 依赖载荷数据 |
对于“多次爆破全时域累积”这类研究,如果关注的是岩体远区的累积损伤,而非爆源近区的爆炸破碎过程,第三种方法更实用。你可以把每一次爆破等效成一个压力时程载荷,在时间轴上依次加载。
如果关注近区岩体破碎形态,就必须使用高能炸药材料(比如 *MAT_HIGH_EXPLOSIVE_BURN)配合 JWL 状态方程,让爆轰产物和岩体发生流固耦合。
4.2 材料模型与损伤累积模拟
岩体在 LS-DYNA 中有多种材料模型可选,不同模型对“损伤累积”的表达能力不同。
- *MAT_PLASTIC_KINEMATIC(003):适合金属或简化岩体,支持应变率相关和塑性硬化,但损伤表达较粗。
- *MAT_JOHNSON_HOLMQUIST_CONCRETE(111,简称 HJC):适合混凝土和岩体,包含压力相关强度、损伤累积和应变率效应,是目前爆破分析中用得较多的模型。它通过损伤变量 D 来描述材料在拉压作用下的劣化。
- *MAT_RHT(272):相比 HJC,对拉伸损伤、残余强度描述更精细,适合多次循环荷载下的岩体损伤累积研究。
- *MAT_DRUCKER_PRAGER:适合描述岩体的剪胀和压力相关性,本构参数相对容易从试验标定。
在多次爆破模拟中,选择材料模型时要注意:模型自带的“损伤变量”是否在卸载后保留。如果每次爆破之后把应力归零,损伤应该保留,单元刚度要相应折减,这才是“累积”的含义。HJC 和 RHT 模型都可以在计算过程中保存损伤历史,但参数需要针对你的岩石类别重新标定,不能直接照搬混凝土参数。
4.3 全时域控制与多次载荷步
多次爆破全时域分析的关键,是把时间轴上的载荷序列写进同一个输入文件。
在 LS-DYNA 关键字文件中,一般通过:
*CONTROL_TERMINATION:设置总计算时间。*CONTROL_TIMESTEP:控制时间步长。*DEFINE_CURVE:定义不同时段的压力-时间曲线。*LOAD_SEGMENT或*LOAD_BLAST_ENHANCED:把压力加载到单元面上。
假设有 3 次爆破,第 1 次在 0.000s 起爆,第 2 次在 0.500s 起爆,第 3 次在 1.000s 起爆,每次爆破载荷持续 0.050s,那么总计算时间至少设置为 1.200s。三条 *DEFINE_CURVE 的时间横坐标需要分别在各自时间段内有值,其他时间取零。
4.4 关键字卡片示例
下面给出一个多次爆破加载的最小关键字示例。
*CONTROL_TERMINATION $ ENDTIM ENDCYC DTMIN ENDNEG ENDMAS 1.2 0 0 0 0 *CONTROL_TIMESTEP $ DTINIT TSSFAC ISDO TSLIMT DT2MS LCTM ERODE MS1ST 0.0 0.6 0 0.0 0.0 0 0 0 *DEFINE_CURVE $ LCID SIDR SFA SFO 1 0 1.0 1.0 $ A1 O1 0.000 0.0 0.001 1.000E7 0.010 2.000E7 0.050 0.0 0.500 0.0 1.200 0.0 *DEFINE_CURVE $ LCID SIDR SFA SFO 2 0 1.0 1.0 $ A1 O1 0.000 0.0 0.500 0.0 0.501 1.000E7 0.510 2.000E7 0.550 0.0 1.200 0.0 *DEFINE_CURVE $ LCID SIDR SFA SFO 3 0 1.0 1.0 $ A1 O1 0.000 0.0 1.000 0.0 1.001 1.000E7 1.010 2.000E7 1.050 0.0 1.200 0.0*LOAD_SEGMENT的关键字如下,需要把载荷曲线施加到爆破孔壁的段集上。
*LOAD_SEGMENT $ LCID SF AT 1 1.0 0.0 $ N1 N2 N3 N4 101 102 103 104这里 LCID=1 表示施加第一条曲线。第二、第三次爆破时,需要另外两个 *LOAD_SEGMENT 分别引用曲线 2 和曲线 3,并施加到对应段上。
需要提醒的是:*LOAD_SEGMENT的压力符号和方向取决于段的外法线方向,在 Hypermesh 中导出时务必检查段的方向,不然压力会变成拉力。
如果采用 *LOAD_BLAST_ENHANCED,则每次爆破需要定义独立的爆炸工况:
*LOAD_BLAST_ENHANCED $ BID SURFACE_TYPE CHARGE_MASS CHARGE_CENTER 1 2 25.0 0 $ CENTX CENTY CENTZ 10.0 0.0 1.0 $ LOADBLASTID PTIME 1 0.0CHARGE_CENTER 表示爆心坐标,SURFACE_TYPE 表示载荷作用方式。具体参数需要查阅对应版本关键字手册。
4.5 损伤输出的设置
要让计算结果能查看损伤累积,需要在求解控制中输出相关变量。
以下关键字用于将历史变量输出到 d3plot 文件中:
*DATABASE_HISTORY_SOLID $ ID1 ID2 ID3 ID4 1 0 0 0 *DATABASE_BINARY_D3PLOT $ DT/CYCLE LCDT BEAM NPLTC PSETID 0.005 0 0 0 0 *DATABASE_EXTENT_BINARY $ NEIPH NEIPS MAXINT STRFLG SIGFLG EPSFLG RLTFLG ENGFLG 8 8 3 1 1 1 1 1NEIPS表示每个实体的历史变量个数,如果材料模型需要输出损伤变量 D,需要保留足够的 extra history variables。HJC 模型通常可以通过 history variable #1(或对应索引)查看损伤变量 D,RHT 模型则对应不同的历史变量编号。具体编号以你所用版本的 LS-DYNA 手册为准。
建议在求解前做一个小尺寸试算,先在 LS-PrePost 中查看 d3plot 的历史变量,确认损伤变量写入正确,再开始大规模计算。
5. 完整实战流程:从网格到全时域求解
下面给出一个完整的操作流程,假设模型尺寸为 50m × 50m × 50m 的岩体,炮孔位于中心附近,采用 kg-m-s 单位制。
5.1 创建几何与网格
在 Hypermesh 中导入或创建岩体几何体。为了节省计算量,可以只建立四分之一模型,并在对称面设置对称边界,但要注意多次爆破的炮孔布置如果不对称,就不能使用对称模型。
如果建立全模型,推荐:
- 爆破近区(距炮孔 1m 内)单元尺寸 5~10cm。
- 中区(1m~10m)单元尺寸 10~30cm。
- 远区(10m~50m)单元尺寸 30~100cm。
网格划分操作示意如下:
- 在 Mesh 模块中创建六面体或四面体网格。
- 对炮孔附近区域局部细化。
- 用 Check Elements 检查质量。
- 将不同区域网格分别放入不同 Component。
四面体网格 (Tetramesh) 虽然自动化和适应性好,但爆炸冲击分析中容易产生沙漏和体积锁死问题,建议优先使用六面体网格。如果几何复杂,可以先用四面体粗算摸底,再用六面体精确计算。
5.2 材料、单元、截面设置
在 Model Browser 中创建以下材料:
| 部件 | 材料模型 | 用途 |
|---|---|---|
| 岩体近区 | *MAT_RHT(272) | 模拟爆破近区的损伤累积 |
| 岩体远区 | *MAT_PLASTIC_KINEMATIC(003) | 简化计算,观察波动 |
| 空气(若有) | *MAT_NULL(009) | ALE 流固耦合时使用 |
注意:同一个模型里不同材料模型的参数单位必须一致。对 *MAT_RHT,除了密度、弹性模量外,还要填初始孔隙率、失效强度等参数,这些参数很难从常规试验直接获得,需要通过 SHPB 等冲击试验标定。如果只是技术验证,可以先使用 HJC 模型并参考公开文献中的岩体参数,但要注意文献中参数是否为同一单位制。
创建单元属性时,在 Property 中设置单元公式。LS-DYNA 中六面体单元常用 ELFORM=1(默认),四面体常用 ELFORM=13。爆炸冲击问题如果使用缩减积分单元,容易出现沙漏,可以在 *CONTROL_HOURGLASS 中设置沙漏控制。
5.3 载荷与边界条件
对于单次或多次爆破载荷,在炮孔壁面定义压力段,并在外边界定义无反射边界。
无反射边界在 LS-DYNA 中通过 *BOUNDARY_NON_REFLECTING 实现:
*BOUNDARY_NON_REFLECTING $ SSD TS 0 0选中模型外边界的所有单元面即可。这个关键字会抑制边界处的反射波,模拟无界岩体的效果。
在模型底边或侧边施加必要的固定约束,但要注意固定边界会反射应力波,干扰监测点的振动信号。更好的做法是尽量使用无反射边界,而非固定约束。
5.4 求解控制与输出
在 Hypermesh 的 Analysis 面板中设置或直接编辑 .k 文件。关键控制卡片包括:
*CONTROL_SOLUTION*CONTROL_TERMINATION*CONTROL_TIMESTEP*CONTROL_HOURGLASS*CONTROL_ENERGY
其中沙漏控制建议使用:
*CONTROL_HOURGLASS $ IHQ QH 4 0.05IHQ=4 是 Flanagan-Belytschko 刚度形式,适合高速冲击和爆炸问题。
同时要定义全局能量输出:
*DATABASE_GLSTAT $ DT 0.01 *DATABASE_MATSUM $ DT 0.01这样可以在计算结束后检查模型总能量守恒是否合理,如果沙漏能超过内能的 10%,结果可信度就比较低。
5.5 运行求解与后处理
在 Windows 命令行中提交求解:
cd C:\simulation\blast_case "C:\Program Files\LSTC\LS-DYNA\ls-dyna_smp_s_R13_0.exe" i=blast.k ncpu=8 memory=200mLinux 环境下类似:
cd /home/user/blast_case /opt/lsdyna/ls-dyna_mpp_s_R13_0 i=blast.k ncpu=16 memory=400m求解结束后,用 LS-PrePost 打开 d3plot:
- 查看损伤变量云图:Fringe → History Var。
- 查看振动速度时程:通过 History → Node 选取监测点。
- 对比不同次数爆破后损伤变量分布,观察损伤累积范围是否扩展。
如果你设置了节点集合输出,还可以在binout或 ASCII 文件中提取指定节点的振速时程,画成曲线用于与现场爆破振动监测数据对比。
6. 常见问题与排查思路
在 Hypermesh + LS-DYNA 多次爆破建模过程中,下面这些问题是高频出现的。
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| Hypermesh 图形区所有节点都不显示 | 显示配置中关闭了节点显示,或者当前 Component 为空 | 在显示控制面板中打开节点显示;检查当前 Component 的网格是否存在 |
| 节点不显示小球 | 节点显示样式被设置为不显示符号 | 将节点显示模式改为 “Marker” 或 “Ball” |
| 材料设置后导出 .k 文件报错 | 材料参数不完整,某些必要字段为空 | 回到 Material 面板逐项核对必填项 |
| 计算结果总能量不守恒 | 沙漏能过大或时间步长过大 | 启用 IHQ=4 沙漏控制,减小 TSSFAC |
| 负体积(negative volume) | 网格畸变严重,材料参数不当 | 检查近区网格质量,改用全积分单元,调整材料参数 |
| 计算时间过长 | 网格过细,或载荷曲线时间步长过小 | 适当加大远区网格尺寸,检查 *CONTROL_TIMESTEP 设置 |
| 监测点振动速度异常偏大 | 无反射边界未设置或边界反射干涉 | 检查模型外表面是否施加 *BOUNDARY_NON_REFLECTING |
| 载荷方向不对,表现为拉应力 | *LOAD_SEGMENT 段法线方向错误 | 在 Hypermesh 中检查段方向,必要时翻转法线 |
| 多段爆破只有一个载荷生效 | 曲线定义的时间区间重叠,或 *LOAD_SEGMENT 引用错误 | 检查每条曲线的载荷段时间窗口,确认对应关系 |
| 重启分析后损伤变量不连续 | 重启动关键字或 d3dump 文件不完整 | 确认输出 d3dump 的频率并检查重启动流程 |
单独说两个最容易忽略的问题。
第一,关于“节点不显示”。新界面中,如果节点显示被关闭,或者显示模式设置成了“不显示节点”,你会在图形区只能看到单元边线而看不到节点。解决办法是查看显示控制面板里的 node 显示状态,打开节点标记。如果是模型树中某些 Component 被隐藏,节点当然也不显示。
第二,关于“材料单位”。很多新手在 Hypermesh 的 materials 设置里填材料参数时,不看单位制,密度填 2650,弹性模量也填 2650,这显然不对。所有单位必须和几何、时间统一。建议在建模文件开头用注释写好单位制,并建立单位换算表,防止隔几天后忘记。
7. 工程实践与结果可靠性建议
7.1 网格尺寸与计算资源平衡
爆破分析的计算规模取决于网格数量和时间步长。岩体的弹性波速通常在 2000~4000 m/s 左右,如果网格尺寸为 0.1m,时间步长会远小于 0.01ms,计算一步就需要很小的时间增量。如果模型总体网格过密,求解时间会呈指数增长。
经验做法是:
- 先做二维轴对称近似试算,快、省资源。
- 三维模型只在爆炸近区细化。
- 远区使用逐渐过渡的粗网格,配合无反射边界。
7.2 材料参数的试验标定
多次爆破损伤累积分析的可信度,很大程度上取决于材料参数。HJC、RHT 模型的参数多且不易获得,以下参数对结果影响最大:
- 密度
- 弹性模量
- 抗压强度
- 抗拉强度
- 损伤参数(如 HJC 中的 D1、D2)
- 应变率参数
如果项目允许,应取样做 SHPB 或霍普金森压杆试验,标定关键参数。如果条件不具备,至少要做参数敏感性分析,确认关键参数对振动响应和损伤范围的影响程度。
7.3 阻尼与边界设置
岩体本身存在一定阻尼,多次爆破振动传播时高频成分会快速衰减。LS-DYNA 中通过 *DAMPING_GLOBAL 或材料阻尼来模拟。完全不设置阻尼时,远区振动响应可能偏大。
边界条件方面,固定约束和对称约束会反射应力波,导致后续载荷振动叠加偏大。多次爆破模拟尽量使用无反射边界,并把监测点放在与边界保持一定距离的区域。
7.4 数据管理与批量计算
多次爆破分析可能产生大量 d3plot 和 binout 文件。建议按以下方式组织目录:
blast_case/ ├── model/ │ └── blast.hm ├── solver/ │ ├── blast.k │ ├── blast_d3plot/ │ └── blast_binout/ ├── material/ │ └── rht_parameter.md └── result/ └── report/如果需要对多组参数进行批量计算,可以写一个简单的批处理脚本,批量修改 .k 文件中的材料参数并依次提交求解。
#!/bin/bash # 批量计算脚本示例 for a in case1 case2 case3; do cp blast_base.k ${a}.k sed -i "s/PARAM_A/${a}/g" ${a}.k ls-dyna_mpp_s i=${a}.k ncpu=16 memory=400m done注意:批量修改 .k 文件之前,请先备份原始基础文件,并且对脚本生成的每个模型做一次单独试算检查。
8. 后续学习建议
如果是从零开始跑通一次 Hypermesh + LS-DYNA 的爆破分析,建议按下面的顺序推进:
- 先用单次爆破、简单立方体模型跑通流程。
- 验证无反射边界和沙漏控制。
- 再用压力时程加载实现多次爆破。
- 然后替换为 HJC 或 RHT 材料模型,对比损伤累积分布。
- 最后加入监测点、能量守恒检查和参数敏感性分析。
另外要养成查阅 LS-DYNA 关键字手册的习惯。不同版本对材料模型和 *LOAD_BLAST_ENHANCED 的支持有差异,网上教程里的参数不一定适用于你的版本。每次动手前,先在手册中确认关键字格式。
多次爆破岩体振动损伤累积是一个需要数值分析、爆破工程和岩石力学交叉理解的问题,本文只是把 Hypermesh 新界面 + LS-DYNA 的建模求解路线整理出来。实际项目中建议把数值模拟和现场爆破振动监测相结合,用监测数据验证数值模型,再基于模型优化爆破参数,这样更可靠。