Hypermesh+LS-DYNA多次爆破岩体振动与损伤累积仿真全流程 📅 发布时间:2026/8/31 2:16:20 👁 浏览次数: 岩体在爆破作用下出现振动和损伤是矿山、隧道和边坡工程里很常见的问题。相比单次爆破多次爆破更接近实际施工但计算设置也更麻烦每一次爆破都相当于在已经损伤的介质上继续加载振动波传播、材料刚度退化、损伤累积三者耦合在一起普通前处理流程很难一次理清。这次我们不聊概念直接说一条能落地的技术路线用 Hypermesh 新界面完成岩体三维建模和六面体网格划分导出 LS-DYNA 关键字文件然后在 LS-DYNA 里做多次爆破全时域振动响应与损伤累积计算。整套流程覆盖前处理、求解、后处理、批量计算、数据提取和排错。需要先说明一点Hypermesh 和 LS-DYNA 都是商业软件不是开源项目。本文说的“项目”是指一套工程仿真工作流。以前处理端新界面解决了旧版菜单层级深、操作路径不直观的问题在求解端LS-DYNA 的显式算法非常适合爆破这种毫秒级、强非线性的动力问题。文中所有命令和关键字结构都按通用流程给出实际使用时要结合你的软件版本、材料参数和模型规模做调整。1. 核心能力速览能力项说明工作流性质Hypermesh 新界面前处理 LS-DYNA 显式动力学求解主要功能岩体三维建模、六面体网格划分、LS-DYNA 关键字导出、多次爆破全时域振动响应与损伤累积计算前处理工具Altair HyperMesh新界面2022 及以上版本为参考求解器LS-DYNA推荐 MPP 并行版本支持平台Windows / Linux 工作站CPU 需求多核处理器核数越多越好MPP 并行对内存带宽敏感内存需求取决于单元规模三百万单元以上建议 64GB 起步显存需求Hypermesh 界面渲染需要支持 OpenGL 的显卡LS-DYNA 求解主要依赖 CPU部分版本支持 GPU 加速实际收益需按本机测试许可要求HyperMesh 和 LS-DYNA 需要商业许可证版本需要互相兼容启动方式Hypermesh GUI 建模命令行批量提交 LS-DYNA 求解API 能力LS-DYNA 没有官方 REST API但支持命令行参数和 ASCII 结果文件可封装为本地批量任务批量任务支持通过脚本批量修改关键字文件、批量提交求解、批量提取测点数据适合场景露天矿台阶爆破、隧道掘进、基坑开挖、边坡动力稳定分析、爆破方案预判核心关注点有三个一是多次爆破不是简单把爆炸荷载重复加载而是要让岩体在上一炮损伤状态基础上继续受力二是振动响应要有明确的测点输出方便和现场监测数据对比三是全时域计算时间长必须把批量任务和资源管理做好。2. 适用场景与使用边界这套流程适合解决“多次爆破作用下的累积效应”问题。典型场景包括露天矿多排孔毫秒延期爆破研究不同延期时间对边坡振动的影响隧道钻爆法施工分析相邻循环进尺对围岩损伤区的叠加影响基坑或城市地下工程控制爆破评估周边建构筑物的振动响应岩石高边坡在多次开挖爆破下的疲劳损伤与稳定性变化。LS-DYNA 做这类问题的优势是显式算法成熟、材料库丰富、接触和边界条件处理灵活能够模拟爆炸压力加载、应力波传播、岩体开裂和损伤演化。Hypermesh 新界面的价值在于几何处理、网格划分、关键字管理都集中在更现代的交互界面里特别是对复杂三维岩体模型六面体网格划分比旧版更直观。使用边界也必须说清楚。爆破数值模拟不是万能预测工具。材料本构参数、阻尼、爆炸荷载曲线都需要标定和验证。没有室内试验和现场监测数据支撑计算结果只能反映趋势不能替代安全评估。多次爆破计算中涉及的岩石损伤模型参数比如抗压强度、抗拉强度、损伤软化模量都应该来自对应的试验结果。版权和合规边界同样重要。商业软件需要合法许可模型数据、地形数据、设计图纸如果来自单位项目使用前要确认保密范围。模拟结果用于工程决策时需要由具备资质的技术人员复核现场爆破方案仍要遵守爆破安全规程和相关法规。3. 环境准备与前置条件3.1 软件版本配置Hypermesh 新界面和 LS-DYNA 的版本需要配合。建议使用相对较新的版本例如 HyperMesh 2022 及以上LS-DYNA R11 及以上。版本太老关键字导出的兼容性会变差版本太新材料关键字可能存在细微变化。更稳妥的做法是先做一个小模型从 Hypermesh 导出关键字再在 LS-DYNA 中试算确认两边兼容后再开始正式建模。3.2 硬件和系统操作系统建议使用 Windows 10/11 或 Linux。对于三维岩体模型几百万元素甚至上千万元素很常见求解阶段的瓶颈不在显卡而在 CPU 核心数、内存容量和磁盘 I/O。建议配置多核 CPU例如 16 核以上内存 64GB 起步网格越密内存需求越高NVMe SSD用于存放模型文件和结果文件独立显卡保证 Hypermesh 新界面操作流畅LS-DYNA 求解对显卡要求不高。如果使用 LS-DYNA MPP 版本需要在多台机器上并行计算时还要考虑高速网络和共享存储。3.3 许可环境LS-DYNA 求解时需要一个可用的 license。命令行提交任务前先确认 license 类型和版本。Hypermesh 同样需要许可。常见问题是Hypermesh 能打开但 LS-DYNA 提交后提示 license 错误或者两者版本不一致导致关键字不识别。建议在两个软件都激活后先用自带的 example 文件跑一遍确认求解链路正常。3.4 单位制这是 Hypermesh 和 LS-DYNA 联用时最容易出错的地方。LS-DYNA 本身不强制单位所有单位需要自己保持一致。岩体爆破分析常用 mm-kg-ms 单位制物理量单位长度mm质量kg时间ms速度mm/ms等价于 m/s加速度mm/ms^2密度kg/mm^3应力/弹性模量GPa力kN在这个单位制下一个典型岩体材料的输入大约是密度2.7e-6 kg/mm^3弹性模量50 GPa泊松比0.25单轴抗压强度120 MPa即 0.12 GPa。如果单位不一致比如把密度按 kg/m^3 输入、模量按 Pa 输入计算结果会差好几个数量级而且很难排查。4. Hypermesh 新界面岩体建模与网格质量控制4.1 新界面和传统界面的差异Hypermesh 新界面把几何、网格、材料和载荷的组织方式改成了树状模型浏览器类似主流三维软件。传统界面里藏在面板里的操作在新界面中更容易找到。对岩体爆破分析最大的好处是几何清理时可以更直观地看到自由边、重复面网格划分参数修改后网格质量刷新速度更快材料和属性可以通过右键创建不需要跳多层菜单导出 LS-DYNA 关键字时卡片操作更接近关键字原始结构。如果你之前用旧版 Hypermesh新界面确实需要适应一下主要的逻辑变化是把“面板操作”改成了“对象和属性操作”。但网格划分的核心功能没有变质量检查面板仍然保留。4.2 几何清理与模型准备岩体模型通常来自地质剖面、CAD 图纸或三维扫描数据。导入 Hypermesh 后第一步不是直接画网格而是清理几何检查是否存在重复曲面删除多余面压缩短边、填补缺失面去除对分析影响不大的细小特征检查曲面法向确保所有曲面方向一致。多次爆破分析中炮孔的位置和尺寸对结果影响很大。炮孔周围需要做局部加密因此几何建模时就要把炮孔面保留干净不要因为模型复杂而忽略。如果炮孔很多可以先用点、线控制网格种子密度再生成面网格和体网格。4.3 材料设置与单位设置在 Hypermesh 新界面里材料设置入口在 Model Browser 中右键可以创建 Materials然后在属性栏中选择 LS-DYNA 关键字类型。这里必须注意单位制Hypermesh 界面并不自动转换单位材料卡片里填什么数字导出到 LS-DYNA 就是什么数字。比如按 mm-kg-ms 单位制在 LS-DYNA 材料卡片中DENSITY 填 2.7e-6E 填 50NU 填 0.25。如果材料来自其他单位制的文献必须先换算不能直接复制数值。很多“算出来结果异常”的案例最后都定位到材料单位错误表现为振动速度数值偏大或偏小几个数量级、应力云图颜色异常、时间步长异常小。4.4 三维网格划分与质量检查岩体爆破模型推荐使用六面体网格。炮孔附近区域应力梯度大网格要加密远离炮孔的边界区域可以适当放大网格降低总单元量。Hypermesh 新界面里常见的三维网格划分方式是先画 2D 网格再通过 solid map 或 drag 生成六面体。网格划分完成后必须做质量检查。这里对应一个经常被搜索的问题Hypermesh 如何检查 3D 网格质量。操作路径在新界面中仍然可以找到选中 3D 网格打开 Check Elements 面板设置质量指标包括 Jacobian、Aspect Ratio、Warpage、Skew、Taper、Min Size、Max Size运行检查后不合格单元会在图形区高亮显示。对于 LS-DYNA 显式分析单元质量直接影响稳定时间步长。一个 Jacobian 为负的单元可能导致计算直接爆掉长宽比过大的单元会让局部时间步长急剧下降计算速度变慢。因此质量检查不是走形式而是影响计算能否跑完的关键步骤。常见指标参考值可以是Jacobian 大于 0.7Aspect Ratio 小于 5Min Size 不小于最小炮孔尺寸的 1/3 至 1/2Warpage 尽量小于 15 度。具体阈值应当根据模型尺度、材料参数和计算资源综合确定。4.5 节点显示问题很多人会遇到“Hypermesh 所有的节点都不显示”或“节点小球不显示”。这不是模型被删掉了通常是显示设置问题。新界面中可以在 View Options 或 Display 设置里开启节点显示重新设置节点大小。如果所有节点都不显示先检查当前是否在 Solid 或 Surface 显示模式下节点层是否被隐藏。打开 Entity 显示开关后注意节点尺寸太小会看不见太大又会遮挡网格。如果按了快捷键发现节点还是不出来可以重新框选模型再打开节点显示。通常情况下节点不显示不影响网格计算但会影响边界条件和测点定位所以还是要解决。4.6 载荷、边界和测点的前处理思路多次爆破分析的载荷不是简单“加一个力”。爆炸压力作用在炮孔内壁通常被处理成压力时程曲线。Hypermesh 中可以把炮孔内壁单元组成一个 Set然后在 LS-DYNA 关键字中通过 *LOAD_SEGMENT 或 *LOAD_BLAST 施加压力。更常见的做法是在 Hypermesh 里保留炮孔内壁的单元面导出的关键字里再补充 *DEFINE_CURVE。边界条件方面模型外边界通常设置无反射边界模拟无限岩体减少边界反射波对结果的影响。测点则可以在 Hypermesh 中定义节点集后续在 LS-DYNA 的 *DATABASE_HISTORY_NODE 中引用方便输出振动速度时程。5. LS-DYNA 多次爆破全时域求解设置与运行5.1 关键字主文件结构LS-DYNA 求解的核心是一个关键字文件通常以 .k 为后缀。Hypermesh 导出后文件里包含节点、单元、材料、属性、接触和边界。多次爆破分析需要额外关注的是加载曲线、求解时间、输出控制、材料损伤参数。下面给出一个关键字文件结构示例实际使用时需要按 Hypermesh 导出的内容补全节点和单元*KEYWORD *TITLE Multi-blast rock damage analysis *CONTROL_TERMINATION $ ENDTIM 0.300 *CONTROL_TIMESTEP $ DTINIT TSSFAC ISDO 0.000 0.900 0 *DATABASE_GLSTAT $ DT 0.001000 *DATABASE_NODOUT $ DT 0.000100 *DATABASE_BINARY_D3PLOT $ DT 0.000100 *DATABASE_HISTORY_NODE $ NID 100001 100010说明ENDTIM 是总计算时间多次爆破全时域分析要覆盖所有炮孔的起爆时间并保留足够的振动衰减时间DATABASE_BINARY_D3PLOT 控制后处理结果输出间隔输出间隔越小结果文件越大但能捕捉到更完整的振动波形DATABASE_HISTORY_NODE 中指定测点节点编号配合 NODOUT 输出节点位移、速度和加速度。5.2 多次爆破载荷曲线设置多次爆破可以在一个求解任务里完成只需定义多个压力时程曲线并用不同的起始时间控制每个炮孔的起爆时刻。比如三孔分段爆破炮孔 1 在 0 ms 起爆炮孔 2 在 100 ms 起爆炮孔 3 在 200 ms 起爆。在 *DEFINE_CURVE 中通过横坐标时间实现延迟曲线编号分别对应不同炮孔所在的单元组。*DEFINE_CURVE $ LCID SIDR 1 0 $ A1 O1 0.000 0.000 0.500 50.000 1.000 25.000 2.000 5.000 5.000 0.000 *DEFINE_CURVE $ LCID SIDR 2 0 $ A1 O1 100.000 0.000 100.500 50.000 101.000 25.000 102.000 5.000 105.000 0.000 *DEFINE_CURVE $ LCID SIDR 3 0 $ A1 O1 200.000 0.000 200.500 50.000 201.000 25.000 202.000 5.000 205.000 0.000压力曲线的具体数值要根据炸药类型、炮孔直径、耦合状态和爆破经验公式确定不能直接套用。模型里也可以采用等效荷载法将爆炸作用简化为压力时程避免流固耦合带来的巨大计算量。5.3 材料模型与损伤累积多次爆破损伤累积的关键在材料本构。普通的线弹性材料不会产生不可逆损伤每次爆破的振动响应是重复的。要模拟损伤累积需要选择带损伤演化的材料模型。岩体分析中可关注 *MAT_PSEUDO_TENSOR、*MAT_RHT、*MAT_DRUCKER_PRAGER 等模型。具体选择取决于材料参数可获得性、版本支持和计算复杂度。RHT 模型能够描述压缩损伤、拉伸损伤和应变率效应但参数多标定成本高PSEUDO_TENSOR 相对简洁适合趋势性研究。材料参数必须和单位制匹配。比如在 RHT 模型中密度、弹性模量、强度参数都要按 mm-kg-ms 单位制换算。材料参数偏差大损伤云图会出现异常比如整个模型全部损伤或者损伤完全不发展。5.4 命令行提交 LS-DYNA 求解Hypermesh 导出关键字后可以不在图形界面里点击计算而是打开终端提交任务。Windows 下典型命令类似mppdyna971_R13_1.exe irock_blast.k memory200m ncpu8Linux 下类似mpirun -np 16 ls-dyna irock_blast.k ncpu16这里的可执行文件名、mpirun 参数、ncpu 数量要根据实际安装版本调整。MPP 版本和 SMP 版本在参数上有区别建议先看安装目录下的说明文件。提交后观察屏幕输出确认没有报错模型开始推进计算时间步。6. 功能测试与效果验证正式计算之前建议按从简单到复杂的顺序做功能测试。6.1 空模型测试先建立一个小型长方体岩体模型网格 2 万到 5 万单元不使用爆破荷载只加一个短时间脉冲压力跑通整个流程。检查Hypermesh 导出的关键字能否被 LS-DYNA 正常读取求解能在合理时间内结束D3PLOT 文件能正常输出后处理能读取到振动速度云图。这个测试能排除 90% 的环境和建模问题。6.2 单孔爆破测试空模型通过后加入一个炮孔设置爆破压力曲线输出测点振动时程。重点观察压力波是否从炮孔向外传播测点速度峰值是否出现在合理时间峰值速度随距离是否衰减材料损伤是否集中在炮孔周围。如果单孔爆破结果异常不要继续做多孔和多炮先定位原因。6.3 多次爆破测试加入多个炮孔分别设置起爆时间模拟一次循环内的多孔分段爆破。查看不同测点的速度时程是否有多个波峰后起爆炮孔产生的振动是否受到前序炮孔损伤区域的影响损伤云图是否随爆破次数增加而扩大和累积。对“全时域振动损伤累积”建议统计每个测点的峰值质点振动速度PPV并绘制 PPV 随爆破孔数的变化。如果 PPV 逐渐下降说明前序爆破造成的损伤可能降低后续波的传播效率如果 PPV 突然增大需要检查是否出现结构局部失效或边界反射干扰。6.4 振动数据输出验证LS-DYNA 的 NODOUT 文件会输出节点历史数据。可以用文本编辑器打开检查数据行数是否完整时间间隔是否符合设置。之后再用 Python 或 Excel 处理提取每个测点的速度峰值和到达时间。判断计算是否成功的标准包括求解完成没有 negative volume 和节点速度无限大报错能量曲线平滑没有异常增大测点振动时程符合波动传播规律多次爆破后损伤区域没有异常跳跃。7. 批量任务与命令行自动化多次爆破分析经常要对比不同延期时间、不同药量、不同炮孔布置。每改一次参数就手动操作一次效率很低。LS-DYNA 没有官方 REST API但可以通过命令行和脚本实现批量计算。7.1 批量修改关键字文件可以写一个 Python 脚本将每个工况的起爆时间、压力峰值、材料参数写入模板生成多个 .k 文件。模板文件保留关键字结构用变量替换关键数值from pathlib import Path template Path(template.k).read_text() cases [ {name: delay_50ms, delay: 50.0, peak_pressure: 50.0}, {name: delay_100ms, delay: 100.0, peak_pressure: 50.0}, {name: delay_150ms, delay: 150.0, peak_pressure: 50.0}, ] for case in cases: content template content content.replace(__DELAY__, str(case[delay])) content content.replace(__PEAK_PRESSURE__, str(case[peak_pressure])) out_dir Path(cases) / case[name] out_dir.mkdir(parentsTrue, exist_okTrue) (out_dir / run.k).write_text(content) print(fgenerated {out_dir / run.k})替换时要注意关键字文件里同一位置的数字可能出现在多个地方必须精确定位。更稳妥的做法是先用占位符模板再批量生成每次生成后抽查一个文件确认数值位置正确。7.2 批量提交 LS-DYNA 任务Windows 下可以用批处理脚本循环提交也可以直接用 Python 的 subprocess。如果计算资源足够可以设置多任务排队避免同时运行过多任务导致内存不足import subprocess from pathlib import Path solver rC:\LSDYNA\mppdyna971_R13_1.exe for k_file in sorted(Path(cases).glob(*/run.k)): print(fsubmitting {k_file}) result subprocess.run( [solver, fi{k_file}, memory200m, ncpu8], cwdstr(k_file.parent), timeout3600 ) if result.returncode ! 0: print(ffailed: {k_file}) else: print(ffinished: {k_file})多任务同时运行时要确保每个任务使用独立的工作目录否则 D3PLOT 等结果文件会互相覆盖。7.3 批量提取测点振动数据LS-DYNA 计算完成后NODOUT 和 BNDOUT 是 ASCII 文件可以直接解析。下面是一个简单示例读取 nodout 中节点 100001 的速度数据import re node_id 100001 velocity [] with open(nodout) as f: lines f.readlines() reading False for line in lines: if line.strip().startswith(node) and node_id in line: reading True continue if reading: parts line.split() if len(parts) 7: try: t float(parts[0]) vx float(parts[3]) vy float(parts[4]) vz float(parts[5]) velocity.append((t, vx, vy, vz)) except ValueError: break print(ftotal points: {len(velocity)}) if velocity: peak max(velocity, keylambda x: (x[1]**2 x[2]**2 x[3]**2)**0.5) print(peak:, peak)NODOUT 的列顺序和 ls-dyna 版本有关建议先用记事本打开看表头确认哪一列是 x/y/z 速度再写解析逻辑。8. 资源占用与性能观察8.1 观察方法LS-DYNA 求解过程中可以打开任务管理器Windows或 top/htopLinux观察 CPU 和内存占用。MPP 版本会启动多个进程每个进程占用一部分内存。如果内存不足求解可能中途退出或者系统出现明显卡顿。磁盘空间也要注意D3PLOT 输出频率高时结果文件可能达到几十 GB。8.2 影响计算速度的因素单元数量模型越大每步计算量越大稳定时间步长显式计算的步长受最小单元尺寸控制一个畸形小单元会把全局时间步长拖小材料模型复杂度损伤模型、塑性模型比线弹性模型每一步计算量大输出频率D3PLOT 和 NODOUT 输出间隔越小I/O 压力越大CPU 核心数在 MPP 并行下增加核心数能提速但并行效率会随核心数增加而下降。如果模型单步计算很慢优先检查网格质量而不是盲目增加核心数。找到 Jacobian 低、长宽比大、尺寸过小的单元重新加密或清理通常能显著提升计算速度。8.3 降低计算开销的思路减少非关注区域的网格密度远离炮孔的位置可以放大网格控制 D3PLOT 输出间隔不要输出每一步结果对炮孔局部采用小尺寸其余区域用过渡单元如果只需要振动时程可以不输出单元结果只输出节点历史先用二维简化模型做参数研究确定合理参数后再跑三维全模型。9. 常见问题与排查方法问题现象可能原因排查方式解决方案Hypermesh 中所有节点都不显示节点显示被关闭或节点尺寸过小检查 View Options 中的节点显示开关调整节点大小重新打开节点显示框选模型后再设置节点小球不显示在实体或曲面显示模式下节点被隐藏切换到线框或带边显示模式开启节点显示并适当加大节点大小材料输出数值异常Hypermesh materials 设置中单位不统一检查密度、弹性模量数量级按 mm-kg-ms 单位制换算后重新填写LS-DYNA 启动后立即报错退出关键字文件缺少必要卡片或 license 异常查看求解器输出信息检查 license用 Hypermesh 重新导出或单独测试 license计算出现 negative volume网格质量差或时间步长过大检查最小单元尺寸、负雅可比单元修复网格降低 TSSFAC 或使用质量缩放测点没有振动数据没有设置 DATABASE_HISTORY_NODE或节点号错误检查关键字中测点节点编号补全历史节点输出设置损伤云图长时间不变化材料模型未包含损伤变量或荷载未达到损伤阈值检查材料状态变量输出更换损伤本构模型或增大荷载多次爆破结果和单次重复加载一样材料没有考虑不可逆损伤检查材料关键字中的损伤参数使用可累计损伤的岩体本构模型批量任务中结果文件互相覆盖多个任务在同一个目录运行查看任务工作目录每个任务使用独立文件夹排查时不要只看最终结果文件要养成查看 LS-DYNA 屏幕输出和 messag 文件日志的习惯。求解开始阶段会输出单元数量、材料信息、时间步长这些是定位问题的最快途径。10. 最佳实践与使用建议10.1 先建立一套最小可运行模型正式建模前先用规则几何形状的小模型跑通全流程。最小模型里包含一套岩体六面体网格、一种材料、一个炮孔、一条压力曲线、一个测点。模型跑通后再逐步增加炮孔数量、复杂边界和真实材料参数。这样后期排查的问题范围会小很多。10.2 统一单位制和文件目录建议所有模型统一采用 mm-kg-ms 单位制。材料输入可以在 Hypermesh 材料卡完成但导出的关键字文件里也要复核一遍。文件目录按“几何、网格、材料、工况、结果”分层管理每个批量工况使用独立文件夹避免结果文件互相覆盖。10.3 材料参数要标定不能直接照抄多次爆破损伤累积对材料参数非常敏感。抗拉强度、断裂能、损伤软化参数都会影响振动波传播和损伤范围。最好结合室内试验或文献中的标定数据先做单孔爆破验证让数值计算的 PPV 衰减趋势和现场监测吻合再应用到实际预测。10.4 结果要与现场监测对比数值模拟不是终点重点是用模拟解释现象和反演参数。每次爆破都可以在模型里设置多个测点输出 PPV 和主频。与现场爆破振动监测数据对比时如果误差在工程可接受范围内说明模型材料和荷载基本合理如果偏差很大优先检查荷载曲线和材料阻尼。10.5 多工况批量计算的可靠性修改延期时间、药量、孔距等参数时尽量使用脚本批量生成和批量提交。但每次批量前先手动跑一个工况确认占位符替换正确。批量结束后用脚本统计每个工况的求解状态、峰值速度和损伤范围不要打开几十个后处理窗口人工看。11. 总结与下一步这套流程最值得尝试的地方是把 Hypermesh 新界面的前处理效率和 LS-DYNA 的显式动力计算能力结合起来做多次爆破岩体振动损伤累积的完整分析。最先要验证的不是复杂材料模型而是单位、网格质量和振动数据输出。最容易踩的坑也集中在这三个方向。如果从一开始就建议先做一个小规模单孔爆破模型确认材料单位、网格质量、测点输出、后处理提取全链路没有问题再扩展到多孔多次爆破。这时你会发现真正耗时间的不是建模而是材料参数标定、批量任务管理和结果数据分析。下一步可以扩展的方向包括用 RHT 模型做更精细的岩体损伤演化分析通过 Python 脚本建立多组延期方案自动对比把 LS-DYNA 的输出数据和边坡稳定性计算结合起来或者基于大量工况样本训练一个快速预测 PPV 的代理模型为爆破方案设计提供更快的前期预判。