公司动态

多次爆破岩体振动损伤累积的Hypermesh+LS-DYNA全时域仿真分析

📅 2026/8/31 9:17:01
多次爆破岩体振动损伤累积的Hypermesh+LS-DYNA全时域仿真分析
一次隧道爆破振动监测项目里现场连续五六次爆破之后原本完整的岩体开始出现明显裂隙而单次振动速度并没有超过规范限值。很多人第一次遇到这种情况都会困惑单次指标正常为什么岩体还会越炸越碎这个问题的本质就是多次爆破荷载下岩体的振动损伤累积效应。要把它讲清楚Hypermesh新界面配合LS-DYNA做全时域仿真是目前工程上常用的技术路线之一。这篇文章不打算只列操作步骤而是想把过程中的核心判断讲清楚多次爆破岩体全时域振动损伤累积响应真正难的不是“能算”而是“算得稳、算得准、算得下去”。1. 先搞清楚“全时域累积”到底在解决什么问题1.1 单次爆破模拟和多次爆破模拟不是同一件事单次爆破模拟中关注的是爆炸荷载作用后岩体的峰值振动速度、应力场、损伤范围。模型跑完就结束了不存在状态传递。多次爆破则完全不同同一轮内多个炮孔延迟起爆以及不同轮次之间重复开挖都要求岩体在上一炮结束时的应力、塑性应变、损伤变量、单元状态被完整保留。如果这些信息没有传下去这个模拟只算“多次计算”不算“累积响应”。为什么很多人做几次爆破时结果看起来不是累积因为在两次爆破之间他们把单元状态重置了或者重新划分网格了。对于小变形问题重置状态可能影响不大但对于岩体损伤这类强非线性问题状态重置等于让岩体“回到没有受过伤的状态”。一个已经产生裂纹的岩体波速降低、刚度和强度下降下一炮的响应应当更偏“软化”。如果模拟结果显示每一炮的破坏模式完全一样大概率就是历史状态没有真正被继承。1.2 损伤累积的本质不是线性叠加岩体在爆炸荷载下发生张拉破坏和剪切破坏裂纹萌生、扩展、贯通波阻抗下降。下一次爆破的应力波遇到损伤区会发生绕射、反射并可能在损伤尖端形成应力集中。这意味着损伤累积是一个高度非线性的历史相关过程不能把两次单炮计算结果做代数相加。全时域模拟正是要捕捉这个过程每一炮从起爆、传播、衰减到残余状态稳定全部被纳入同一个时间轴。这里的“全时域”不是把时间步设得小而是把整个多次荷载过程当作一次连续求解来对待不能把每一次爆破单独拎出来孤立计算。很多工程分析只关心最大振动速度所以习惯看某一个时刻的峰值云图。但损伤累积响应关注的是“那个时刻之前发生了什么、之后还会怎样”这决定了峰值之外的信息同样重要。1.3 为什么选择 Hypermesh 新界面 LS-DYNA这个组合本身不算新鲜。Hypermesh 的前处理能力在复杂岩土和结构模型里一直有优势LS-DYNA 在显式动力学、爆炸冲击和波传播问题上也很常用。真正值得说的是新界面让过去依赖大量面板操作的建模流程变得更结构化。Hypermesh 新界面把几何清理、网格、材料、模型装配和求解设置拆成更清晰的流程步骤这对多炮孔、多次爆破这类需要反复修改参数的任务尤其重要。LS-DYNA 则提供了显式求解、重启动、多种岩石类材料模型以及丰富的输出控制适合把一次爆破、一段延时、下一轮爆破按时间顺序串起来。但工具组合解决的是计算效率能不能描述损伤累积最终取决于材料模型和状态传递设置。如果模型里用的是线弹性材料那无论跑多少次爆破都不会有真正的损伤累积。如果材料模型不支持历史变量保存重启动之后第二次爆破还是会从零开始。所以理解这套方案的重点不在“怎么打开按钮”而在“每一步设置是否服务于累积分析”。2. Hypermesh 新界面下的建模准备别把时间耗在找按钮上2.1 新界面核心变化从面板驱动到流程向导用过旧版 Hypermesh 的人第一次打开新界面时最直观的感受是“找不到按钮”。旧版的建模流程更像一个个面板画网格进一个面板检查网格进另一个面板设置材料又进另一个面板。新界面则更接近“按任务组织界面”几何处理、网格生成、材料定义、载荷设置被拆成不同工作区每一步有对应的工具栏和检查入口。好处是新手可以按步骤走完大部分前处理坏处是老用户会被迫改变操作习惯。热词里高频出现的“节点不显示”“节点小球不显示”在很多情况下不是网格被删了而是显示设置变了。新界面的显示开关被重新组织需要在视图控制或显示面板里把节点显示和小球显示打开。这个细节虽然小却会让第一次转换界面的用户以为模型出了问题。我的建议是不要急着重装软件先检查显示状态再检查当前 component 是否被隐藏。更关键的是这个操作习惯调整提醒我们使用新界面时先花半小时熟悉显示控制和高频快捷键比一边建模一边找按钮更省时间。尤其在多次爆破这种反复检查模型的任务里显示操作不顺手后面每一步都会很别扭。2.2 网格质量决定损伤场真实性的第一道门槛无论几何建模多漂亮最终计算都落在单元上。爆炸冲击波在岩体中传播时应力梯度很高单元质量直接决定应力波是否被正确传递。如果存在雅可比过小、翘曲度超标、长宽比过大的单元波传过这些单元时会产生数值扰动损伤云图会出现沿网格方向的伪裂纹。检查 3D 网格质量时我一般按这个顺序看最小雅可比、翘曲度、长宽比、单元内角、三角形数量。以六面体网格为例常用经验值如下表但不要把它当成绝对的合格线不同行业和不同分析目标会不一样。检查项常见经验值说明最小雅可比六面体宜大于 0.6雅可比过小时单元形状畸变应力波容易发生数值扰动翘曲度宜小于 5 度高翘曲单元在弯曲和冲击荷载下容易产生非物理应力长宽比宜小于 5:1过大长宽比会拉长单元降低局部计算精度最小内角宜大于 45 度过小内角会让单元发生严重畸变最大内角宜小于 135 度过大的内角同样会影响Jacobian三角形单元比例越少越好四面体过渡区尽量远离高应力梯度区域还需要关注单元尺寸。爆炸近区单元要足够细远区可以逐渐放大但相邻单元尺寸梯度不能太大。否则应力波从细网格进入粗网格时会因为分辨力下降发生数值反射影响远区振动波形。对于多次累积分析这种边界处的伪反射会随着爆破次数增加最后混进损伤场。网格优化后必须重新检查网格质量最好记录关键指标方便后续对比。2.3 单位制与材料设置先统一基准再谈精确Hypermesh 的 materials 设置里“怎么设置单位”是一个很经典的问题。关键在于Hypermesh 和 LS-DYNA 都没有强制单位体系材料面板里填的只是数字。只要保证长度、质量、时间、力之间的量纲自洽即可。常见自洽单位制有基本量组合 A组合 B说明长度mmm与几何尺寸一致即可质量tkg密度填 2.7e-9 或 2700取决于单位制时间mss爆炸冲击常用 ms 级时间力NN属于导出量应力MPaPa弹性模量和强度单位跟随应力如果单位混用比如几何用 mm密度却按 kg/m³ 填写计算结果会差很多个数量级还会出现计算发散或损伤异常。更麻烦的是这种错误往往在第一炮还能勉强算出结果到第二炮才开始失控容易被误判为“重启动有问题”。材料模型选择方面如果只是定性研究振动线弹性材料可以先把流程跑通但一旦目标是损伤累积就必须选择带损伤变量的材料模型。常见做法包括使用塑性动力学模型加失效应变或者使用专门用于岩石、混凝土的脆性材料模型。关键是确认模型能否在多次重启动中保留历史变量。很多初学者把材料参数照搬论文却不知道论文中的参数率定依赖实验直接用于自己的模型结果往往不可信。材料参数应该来自岩体力学试验或文献并做敏感性分析不要只靠默认值。3. LS-DYNA 多次爆破求解从单次爆炸到“接力赛”3.1 多次爆破的两种理解标题里的“多次爆破”可能对应两种工程场景一是同一轮爆破里的多个炮孔按设定延时逐个起爆这是孔间延时二是几轮独立爆破连续施加在同一边坡或隧道围岩上比如多日开挖。两种场景都叫多次爆破但模拟组织方式不同。同一轮炮孔可以使用多个压力曲线设置不同的起爆时间在一个连续计算中完成。多轮爆破则更适合用重启动把每一轮的影响保存下来再启动下一轮。无论哪种核心都是保证上一炮状态能被下一炮看到。如果把多次爆破比作接力赛单次爆破只是跑完第一棒。LS-DYNA 的显式求解器擅长处理冲击和波传播但每次爆破之间的“交接棒”才是累积分析的关键。交接棒出问题后面每一棒的数据都不可信。3.2 材料模型选择要能存下“上一炮留下的伤”损伤累积不是把云图叠加而是材料状态变量的累积。LS-DYNA 中包含损伤概念的模型有很多它们使用损伤变量描述材料从完好到破裂的演变。对于岩体一个常见思路是选择能够描述脆性材料受拉损伤、受压损伤和应变率效应的模型并根据实际工程岩体参数标定。但这中间有一个容易被忽视的问题不是所有材料模型都可以在重启动时完整保存损伤历史。有些模型在单个连续计算里表现正常但一旦分阶段重启动历史变量可能不会完整传递。使用前要查关键字手册或者做一个成本很低的验证建一个单单元模型加载两次对比第二次开始时的应力应变响应是否反映了第一次的损伤而不是重新从零开始。如果材料模型不具备这种历史记忆能力再好的网格和求解设置也无法实现真正的损伤累积。3.3 载荷施加方式先选收敛最快的方案爆破荷载在 LS-DYNA 里的施加方式常见有三类方式优点缺点适合场景等效压力曲线建模简单计算量小稳定性好无法精细描述爆生气体和岩体耦合远区振动、损伤趋势、多轮爆破炸药单元 状态方程能模拟爆轰过程和近区压力参数敏感网格要求高计算量大近区破碎、单次爆破研究多物质 ALE / 流固耦合更接近物理过程建模复杂多轮爆破计算成本过高需要研究炸药-空气-岩体相互作用时使用从全时域多次爆破角度看我更建议先用等效压力曲线把整体流程跑通。因为多次爆破计算周期长如果炸药、空气、岩体全耦合计算规模和稳定性要求会非常高。等效压力法虽然无法精确刻画爆生气体与岩体的耦合细节但用于研究振动波传播和损伤累积趋势已经足够。等效压力曲线通常表现为升压、峰值、衰减的过程。更需要花时间的是标定曲线形状而不是直接选用一个“默认爆破压力”。不同装药量、炮孔半径、岩体波阻抗下压力曲线应该有区别。先用单炮试算把测点振动速度与经验值或现场数据对比再反推调整压力峰值和衰减时间这条路比直接套用公式更可靠。3.4 输出设置全时域不等于全程高频“全时域”会让人直觉地认为每一个时间增量都要输出。实际上如果从第一炮到第十炮时间跨度几十秒而输出步长是微秒级结果文件会大到不可用。需要区分高频输出区和低频输出区在每次爆破产生应力波的前几十到几百毫秒对关键测点输出高频振动历史在爆破间隔期可以降低输出频率重点记录损伤变量和能量变化。LS-DYNA 可以通过关键节点和单元的历史输出来指定监测点避免把所有单元的应力全部高频保存。我之前的习惯是先查看单次爆破的振动持续时间再按这个时间窗设计输出频率。这样既保留了足够信息又不会让磁盘成为瓶颈。如果一开始就不加区分地全部高频输出往往算到第二次爆破时磁盘空间先撑不住最后只能重来。不要一上来就全模型高频输出先用少量测点验证波形再决定全局输出策略。4. 最常见的几个坑伪损伤、单位、重启动和边界反射4.1 网格质量造成的伪损伤岩体损伤云图如果呈现网格方向性条纹或者远离爆源的单元出现孤立损伤点首先怀疑数值原因而不是物理原因。网格由规则的六面体组成时应力波在单元边界会发生数值色散尤其当单元质量差时伪损伤会被放大。处理方法是先修复网格再小模型试算确认损伤云图符合物理预期后再做全模型。如果模型必须用四面体过渡建议检查最小边长和雅可比并避免把四面体放在高应力梯度区。多次爆破的累积特性意味着第一次爆破里的伪损伤可能只有一小块但第二次、第三次爆破会在这块伪损伤附近继续累积最后形成一条看起来很像真实裂纹的分布。所以网格质量不是单纯的前处理问题而是会直接污染最终结论。4.2 单位和时间步看似小影响全局单位不一致会导致材料刚度和波速量级错误表现为整体响应偏大或偏小有时计算直接发散。如果第一炮结果合理但第二炮开始时间步骤减很可能是损伤单元被删除后质量分布改变或单元变形过度不一定单位问题。但单位问题依然值得单独强调因为它的排查成本很低。做网格和材料设置时把单位制写在项目说明里并在材料卡片里标注实际单位。哪怕只是自己一个人用也值得花一分钟写下来。时间步方面爆炸波速高最小单元尺寸决定稳定时间步。如果单元太小计算会非常慢如果为了提速把时间步缩放因子调得过大又容易不稳定。这种矛盾不能只靠调参数解决更该做的是重新规划网格密度让最小单元不要出现在对结果影响不大的区域。4.3 重启动后损伤清零这是多次爆破最隐蔽的问题。算完第一炮生成重启动文件第二炮读取后发现岩体像是“满血复活”。造成这种情况的原因很多重启动文件不对、模型编号变化、材料模型不支持历史变量、或者在第二个输入文件里重新定义了材料导致覆盖。排查时不要只看损伤云图还要提取重启动前后同一单元的应力、塑性应变或损伤变量值。如果这些量没有保持就说明状态传递断了。另一个陷阱是即使重启动成功某些单元可能已经被删除如果在第二次计算文件中重新生成了这些单元它们将作为新单元参与计算破坏累积逻辑。所以多轮爆破中建议尽量保持网格和零件编号不变避免重命名或重新编号这类“看起来无害”的操作。4.4 排查链路从现象回到输入、环境、参数、边界工程问题不一定有标准答案但一般都有标准排查顺序。我建议按下面的链路走先看现象是报错、发散、无输出还是结果异常再看输入几何、网格、材料、载荷曲线是否完整且匹配再看环境单元算法、时间步、边界条件、重启动文件是否正确再看参数失效阈值、损伤参数、输出频率、无反射边界参数是否合理最后再看工具边界当前材料模型是否真的适合模拟循环损伤累积重启动是否完整保存了历史变量。现象最可能原因第一步检查计算中途发散时间步过小、单元畸变、材料参数异常查看求解信息文件和网格质量损伤云图呈网格状网格质量差、单元长宽比大重新检查 3D 网格质量损伤不累积重启动状态没有保留提取前后单元历史变量对比边界附近异常损伤应力波反射检查边界条件和模型尺寸输出文件巨大输出频率太高、全局输出改关键测点历史输出这个排查框架适用于大多数 LS-DYNA 岩体动力分析。不要一遇到问题就去调材料参数先确定问题出在哪一层否则只会越调越乱。5. 落地建议先最小流程再谈参数化5.1 最小可用流程单孔试算我建议不要一开始就建整个台阶或隧道模型。先建一个相对较小的岩体块放一个炮孔跑一遍单次爆破。确认以下几点模型能否正常算完没有出现负体积或过度沙漏损伤范围是否合理没有远离爆源的伪损伤测点速度曲线是否与经验值同量级边界反射是否严重需要多大模型才能避免干扰。单孔试算的目的不是得到最终结果而是验证输入、网格、材料和边界条件。如果单孔都算不稳多孔只是把不稳定性放大。很多人会跳过这一步直接上全模型结果后面花了大量时间排查网格和参数。先花半天把单孔流程跑通、跑稳反而最省时间。先把单孔试算的每一步记录下来形成固定流程再推广到多孔或多轮爆破。5.2 多次爆破参数化组织多次爆破建模时炮孔多、起爆时序多、材料参数多。建议用文件或目录把每次爆破的载荷独立出来。比如blast_round_1.k # 第一次爆破网格、材料、边界、第一组压力曲线 blast_restart_2.k # 重启动信息、第二次爆破载荷 blast_restart_3.k # 重启动信息、第三次爆破载荷这只是一个命名和组织思路具体关键字格式要结合使用的 LS-DYNA 版本确认。重点是让每一次爆破的输入文件独立且可追溯避免在图形界面里反复修改后忘记上次用了哪些参数。如果条件允许用脚本生成不同延时方案和炮孔间距组合再批量提交。Hypermesh 新界面的流程化模块比较适合这种参数化组织但要注意每一次修改后检查边界条件、材料引用和载荷曲线名因为批量处理最容易出现“文件名没改导致两次使用同一载荷”的低级错误。5.3 结果怎么判断不要只看最后一张损伤云图损伤云图最直观但也最容易骗人。多次爆破分析建议至少追踪三类曲线损伤变量随爆破次数的变化关键测点振动速度峰值或频率随爆破次数的变化系统能量随时间的变化包括内能、动能和沙漏能。如果损伤变量只在一个小区域快速跳到最大而附近单元没有反应要检查失效准则是否设置过低或者网格是否发生畸变。如果沙漏能占总能量比例过高结果同样要谨慎。真正的损伤累积在趋势上通常表现为前期每次爆破对损伤贡献明显后期岩体逐渐破碎后波场和损伤场的分布变得更复杂单次增量不一定单调增加。如果结果出现毫无物理依据的突变优先怀疑计算设置而不是急着解释成工程现象。5.4 适用边界不是所有问题都适合用这套方案这套方案适合回答“相对趋势”问题不同孔距、延迟时间、起爆顺序对损伤累积的影响哪个方案更安全也适合对比不同支护方案的减振效果。但要说最终损伤范围和岩体破坏程度需要现场实测数据标定。模拟结果不应该代替监测而是用模拟帮我们设计监测点、识别高风险区域、理解规律。如果要做岩块破碎形态、抛掷、爆生气体劈裂等细观过程建议采用流固耦合甚至离散元方法。不是工具不够好而是用连续介质方法分析非连续破坏本身有边界。另外如果模型尺寸过大、爆破次数很多、又没有足够的材料试验数据盲目追求精细只会让计算时间和参数不确定性同时失控。这种情况下缩减目标、聚焦关键测点、做参数敏感性分析比堆模型规模更有效。回到开头那个问题。连续爆破后岩体出现裂隙而单次振动速度没有超限这不是规范失效也不是现场测量错误而是我们过去习惯了用单次峰值指标评价动态损伤。Hypermesh 新界面和 LS-DYNA 的组合让我们有机会把多次爆破过程完整地放上时间轴看清岩体状态的逐炮变化。但工具再强也取决于你把自己的流程管到什么程度。下一次遇到节点不显示、网格质量不合格、单位没统一或重启动后损伤清零不用急着怀疑软件先回到流程里看是哪一层断了。能跑通一次算例只是起点能稳定复现、能解释、能对比才是这套方案真正值钱的地方。