COMSOL多物理场耦合模拟采空区阴燃:机理与工程实践

📅 发布时间:2026/10/20 17:59:19
COMSOL多物理场耦合模拟采空区阴燃:机理与工程实践
1. 这个模型到底在解决什么问题1.1 阴燃与采空区火灾藏在多孔介质里的慢反应做矿井通风安全这一行的人大概率都跟采空区阴燃打过照面。它不像明火那样一眼能看见也不会在几天内触发报警但时间一拉长高温区在采空区深处悄悄扩张一旦碰上裂隙串风、瓦斯积聚就可能演变成非常棘手的火灾事故甚至爆炸事故。我这次想聊的就是怎么用 COMSOL 把一个采空区的阴燃过程做成二维多物理场模型把速度、氧气浓度、瓦斯浓度、温度四个量同时算出来用模拟结果反推现场该在什么位置布设传感器、该往哪里注浆、注氮之后氧浓度降到什么水平才算安全。说句实话阴燃的真正难点在于“看不见”。采空区是工作面推进后留下的巨大空间顶板垮落形成不规则堆积体里面既有破碎煤块也有岩石碎块还有大大小小的空洞和裂隙。外界漏风从地表裂隙或相邻巷道进入采空区携带氧气慢慢接触高温煤体氧化产热速率超过散热速率时煤体温度就开始爬升。这个升温过程极其缓慢可能持续几十天甚至几个月初期没有任何可见火苗只有一氧化碳浓度异常、气温局部升高等细微征兆。现场人工巡检很难及时发现更别指望钻到垮落区内部去看所以数值模拟几乎是唯一能把采空区内部状态“摊开来看”的手段。为什么偏偏要同时看四个场因为阴燃不是一个孤立的化学反应它是“风—氧—煤”—“热—瓦斯”五要素联动的结果。速度场决定氧气送得进送不进氧气浓度决定氧化反应速率上限温度决定反应速率呈指数增长还是趋于窒息瓦斯浓度则决定这个体系会不会从阴燃升级为爆炸危险状态。四个变量互相缠绕任何一个单独拎出来都没法判断真实的危险级别。二维模型的定位也不是“装点门面”而是先用二维把机理跑通、把参数标定好后续再往三维扩展才有底气。1.2 为什么选 COMSOL 而不是其他软件这里我先把话说在前面我不是说其他软件不行实际上 Fluent、CFX 这类 CFD 工具在矿用通风模拟里也很常见。但采空区阴燃现象有它自己的特点这个特点决定了 COMSOL 更顺手。采空区内部的流动本质上是多孔介质渗流不是管道或开放空间里的湍流流动。Fluent 的优势在于复杂几何和高雷诺数流动但你把它拿来做采空区还得自己挂多孔介质模型写非平衡热源处理吸附扩散一套操作下来非常繁琐。COMSOL 的优势在于物理场接口天生就是“多物理场缝合”的设计思路达西定律、稀物质传递、多孔介质传热、反应动力学拖进来之后通过耦合节点自动建立关系。我不用手写一大堆离散格式和源项代码只需要把反应速率表达式填到“质量源”和“热源”里模型就能跑起来。还有一个很实际的原因COMSOL 做参数化扫描和敏感性分析太方便了。比如我想看渗透率从 1e-10 调整到 1e-8 时温度峰值怎么移动直接在“参数”表里改一个值跑一组批量求解就行。这种需求在现场咨询项目里出现频率非常高“如果注浆把高渗透区堵住50%会怎样”“如果漏风压差增加30%会怎样”这类问题如果逐个重画网格、改边界那工作量大到不现实。二维模型的意义则在计算成本和物理认识的平衡。采空区走向剖面往往是沿工作面推进方向的几公里尺度但竖向高度可能只有几十米把这样的区域建完整三维模型网格量轻松几十万甚至上百万。二维剖面能抓住关键机理包括漏风通道、氧化带、窒息带、瓦斯富集带的相对位置关系结果又足够直观适合跟现场工程人员讨论。等二维方案确定下来再针对重点高温区做局部三维加密比一上来就铺全尺寸三维要稳妥得多。2. 物理场耦合设计四套场方程怎么拧成一股绳2.1 速度场采空区的“呼吸”如何形成采空区里的气流不是均匀的这是理解阴燃的第一步。矿井通风系统在工作面附近建立了一整套风流压力分布工作面一侧是进风巷另一侧是回风巷两者之间存在压差。采空区相当于一块巨大的多孔介质夹在中间压差驱动空气从进风侧渗入采空区穿过垮落堆积体后从回风侧或漏风通道流出。这个过程在工程上叫“漏风”在数值模型里就是达西渗流。控制方程用达西定律就够了不必上完整的 Navier-Stokes。原因很真实采空区垮落带中流速普遍在每秒毫米到厘米量级雷诺数很低惯性力几乎可以忽略达西定律给出的线性渗流规律和实际观测吻合得很好。方程写出来就是u -(K / μ) ∇p其中 K 是渗透率μ 是空气动力黏度∇p 是压力梯度。这个方程在 COMSOL 中可以直接用“达西定律”接口实现我只需要给定压力边界或通量边界。需要注意的是渗透率并不是均匀的采空区不同区域的压实程度差异巨大。紧邻工作面的垮落区颗粒松散、孔隙率大渗透率可能到 1e-9 平方米而远离工作面、被顶板压实的老空区渗透率可能只有 1e-11 平方米甚至更低。这种空间差异要是不建模出来速度场就会失真后续氧气分布和温度分布全是错的。实际操作中我会用区域变量描述渗透率的分布比如把采空区分成“垮落松动区”“压实变形区”“裂隙发育区”三条条带各给一组插值函数。这样做的效果非常直接高速漏风主要集中在高渗透条带形成所谓的“漏风通道”氧气顺着通道往里钻阴燃高温区也就更容易沿这个通道发育。2.2 氧气、瓦斯与温度反应-输运-产热的循环速度场确定之后真正决定阴燃是否发生的是氧气输运和煤氧化反应之间的竞争。氧气从漏风入口随着气流进入采空区一边被流动带着往深处走一边被煤氧化反应消耗。这个过程用稀物质传递方程描述控制方程是∂c_ox / ∂t u·∇c_ox ∇·(D_eff ∇c_ox) R_ox这里的 R_ox 是反应源项通常是负值表示氧气的消耗。煤氧化的速率不是常数而是温度和氧浓度的函数。我目前用的是一级近似表达式R_ox -A · exp(-Ea / (R T)) · c_ox这个表达式在物理上非常关键活化能 Ea 控制着反应速率对温度的敏感程度。Ea 越大温度稍微升高一点反应速率就急剧上升这也是阴燃为什么常常从“温水煮青蛙”变成“星星之火”的数学原因。Ea 一般在 40 到 70 kJ/mol 之间具体数值最好用程序升温实验数据反演得到不能拍脑袋定。温度场则用多孔介质传热方程描述。这里有个容易忽略的点采空区是气固两相共存的介质空气在孔隙里流动煤和岩块组成固体骨架热量既通过固体骨架传导又被流动气体携带。工程上通常把两者等效成一个“平均温度”用等效导热系数和等效体积热容进行计算。热源项来自煤氧化反应放热我写成Q ΔH · (-R_ox)这里的 ΔH 是单位体积煤氧化放热量单位要对清楚。算出来热量之后一部分被气流带走一部分向围岩传导剩下那部分如果积攒下来温度就会一步步突破临界值。瓦斯的处理稍微复杂一些。采空区里的瓦斯并不像氧气那样主要来自边界而是分散在煤体内部的释放源。我在模型里把它处理成两类贡献的叠加一类是深部煤体持续解吸释放的瓦斯源项随温度和压力变化另一类是随气流从边界带入的背景浓度。瓦斯本身也可以参与氧化但在阴燃阶段瓦斯的消耗速率远小于煤的氧化速率大多数情况下先在风流中积累、稀释、运移等到浓度达到爆炸界限又碰上高温区才是最致命的场景。所以我倾向于在第一版模型里先不启甲烷氧化反应重点看它如何随气流分布、与高温区和氧浓度区如何重叠。2.3 控制方程与 COMSOL 接口组合理清物理过程之后COMSOL 里的接口组合就非常明确了。我通常这么配达西定律接口负责速度场和压力场入口给压力边界出口给流量边界或压力边界。稀物质传递接口两个一个算氧气浓度一个算瓦斯浓度。也可以合并在同一个接口里用多个物质但两个单独接口在调试时更直观。多孔介质传热接口负责温度场热源指向反应产热表达式。化学反应源项直接用“化学反应”节点或者“质量源”节点写入上述 Arrhenius 表达式。接口之间的耦合关系也需要说清楚。速度场影响对流传质和对流传热温度和浓度又反过来通过气体密度、黏度影响速度场。传统做法是先稳定求解达西流场再求解浓度场和温度场忽略温度对气体物性的微弱反馈这对于阴燃初期已经足够。如果想把精细度拉满可以开启 COMSOL 的非等温流动耦合让空气密度随温度变化反过来改变达西流场但代价是收敛难度显著增加。我自己的习惯是第一轮先做“单向耦合”看整体趋势第二轮再决定要不要加上双向反馈。多数案例里单向耦合得到的高温区位置和现场的早期标志物浓度异常位置已经对得上没必要一开始就给自己找麻烦。3. 参数取值与标准化建模流程3.1 几何简化与网格倾向采空区的真实几何非常粗糙夸张点说就是一堆大小不一的碎石和煤块随机堆叠。建模时显然不能逐块还原我的做法是以“采空区剖面”为单位取一个沿走向方向的纵向切面长度取 200 到 300 米高度取 30 到 80 米。区域内部用多边形把不同压实程度的条带划分开比如从工作面一侧向采空区深部依次排布“松动区—过渡区—压实区”各区之间用平滑过渡函数而不是突变边界这样渗透率和孔隙率的变化更接近真实规律也更利于数值收敛。网格尺度要先粗后细。第一轮我用自由三角形网格最大单元尺寸控制在 2 米左右重点在裂隙带和入口区加密到 0.5 米。跑通之后看浓度梯度和温度梯度如果界面区温度梯度太陡就再做一次局部加密。这个流程比一开始就全局加密快得多而且能直观判断网格误差对结果的影响。有一个网格相关的指标值得关注佩克莱数。它描述的是对流传质和扩散传质的相对强度。气体在采空区的扩散系数普遍在 1e-5 平方米每秒量级而对流速度在某些通道里可以有 0.01 米每秒网格尺寸稍大就容易出现数值震荡。保持佩克莱数小于 2 到 3通常会显著改善浓度场的平滑性。3.2 一套可直接套用的参数表下面这组参数来自我实际做过的一个类似模型可以直接作为初版参考但每个矿区都必须重新标定煤的反应动力学参数。参数符号典型取值说明孔隙率ε0.15 - 0.40松动区高、压实区低渗透率K1e-11 - 1e-9 m²按区域插值空气密度ρ_air1.2 kg/m³初始条件可设常数空气动力黏度μ1.8e-5 Pa·s常规值氧气有效扩散系数D_eff2e-6 - 8e-6 m²/s考虑曲折因子折减甲烷有效扩散系数D_ch41e-6 - 4e-6 m²/s同样做折减等效导热系数λ_eff0.3 - 1.5 W/(m·K)随孔隙率变化等效体积热容ρcp1.2e6 - 2.0e6 J/(m³·K)煤岩混合取值指前因子A1e3 - 1e4 s⁻¹需实验标定活化能Ea40 - 60 kJ/mol需实验标定氧化反应热ΔH2e7 - 4e7 J/kg-O₂煤燃烧热参考值甲烷解吸速率q_CH41e-6 - 1e-4 mol/(m³·s)深部区域源项这里我想重点说两个容易翻车的地方。第一是有效扩散系数。很多新手直接把自由空气中的氧气扩散系数填进模型出来的氧气穿透深度会比真实情况大很多。多孔介质里气体扩散要绕行于曲折孔隙通道扩散通量显著下降。COMSOL 里选 Millington 模型可以做孔隙率修正或者手动用 ε 的 1.5 到 1.7 次方做折减千万别不管。第二是活化能指前因子。这两者的组合决定了反应速率在温度升高时增长有多快哪怕取中间值不同组合出来的热点位置也能差出几十米。最可靠的做法是在实验室做一个煤样程序升温试验测出不同温度下的氧气消耗速率然后用 Arrhenius 公式拟合出 A 和 Ea。如果没有实验条件至少要做敏感性分析在报告里给出“A 加倍热点移动多少米Ea 增加 10%热点移动多少米”这样的边界否则模型结论没有说服力。3.3 边界条件与初始条件设置的细节边界条件设置是这类模型最容易产生虚假结果的环节我踩过的坑主要集中在三处。第一是速度边界。直接给入口速度看着简单但入口速度大小很难跟现场通风数据对上。更稳妥的做法是给压力边界入口取工作面进风侧的相对压力出口取回风侧或漏风通道的相对压力。压差哪怕只有几十帕在渗透率高的松动区就能驱动足够多的漏风。算完之后再看模型入口的空气流量和现场实测漏风量对比对不上就调整渗透率或压差直到匹配。第二是热边界。很多初学者习惯把上下岩层边界做成绝热方便收敛也会得到一个看起来“很漂亮”的高温区。但真实工程里围岩吸热对阴燃发展有明显的抑制作用忽略岩体吸热会把温度峰值推高到完全不符合实际的程度。我的做法是在上下边界设置一个有限厚度岩层给定岩层外侧一个恒温边界这样热量能通过岩层散失高温区的尺寸和位置才有参考价值。第三是初始条件。如果把初始温度设成室温 300K氧气浓度设为空气环境值系统会先经历一段非常缓慢的“酝酿期”如果不加任何扰动可能要模拟几百天才能看到明显升温。为了加速出结果我会在特定位置设一个小的初始高温区比如在局部设置 350K 的初始温度并将氧气浓度拉高到边界浓度这样就能在合理计算时间内观察到热点是否能够自持发展。这不是造假而是典型的模型激发手段但需要在分析结果时明确区分“人为触发源”和“自持发展的阴燃源”。4. 从建模到求解一次完整实操过程4.1 模型向导与接口配置我习惯在 COMSOL 的模型向导第一步就选择二维而不是三维。然后依次添加物理场多孔介质流动模块下的达西定律、化学物质传递模块下的稀物质传递、传热模块下的多孔介质传热。如果版本支持多物理场耦合节点我会勾选上“非等温流动”和“反应-输运耦合”但实际操作时往往只保留后者因为非等温流动会让收敛难度上一个台阶。几何建模直接用内置的矩形绘制一个大区域再用多边形工具按条带分割子域。这里有个小技巧用“几何”里的“分割面”来划分压实区边界比用多个独立的矩形拼合更干净后续赋材料属性也更方便。COMSOL 的“选择”功能可以按区域快速填充参数我通常把各条带的渗透率、孔隙率用“参数”表里的全局参数引用这样后续批量扫描时只需要改参数表。反应源项的写法也在这个环节确定。稀物质传递接口里添加“反应”子节点将氧气反应速率表达式挂上去。温度接口的热源节点引用同一个反应速率表达式。两个接口之间通过变量名共享比如在“定义”里写一个全局解析函数 f_rate(T, c_ox)物理场节点直接调用这样能避免在两处写同样的公式导致前后不一致。4.2 求解器设置和稳定求解技巧求解环节是很多人卡住的地方。我总结下来阴燃模型收敛不顺的根源几乎都是 Arrhenius 项的非线性和时间尺度跨度太大。温度从 300K 升到 600K反应速率可能增加几个数量级直接整体求解非常容易发散。我的标准操作流程是分三个步骤第一步先关掉反应源项只求解达西流场和被动输运场。这一步相当于给速度场和浓度场一个稳定的初始分布时间不长几分钟到十几分钟就能跑完。第二步把反应源项打开但将指前因子调小一个数量级让系统在温和条件下先建立温度和浓度的耦合形态。这一步可以暴露很多建模错误比如参数单位不对、边界溢出、某处网格不合理都会在这个阶段以不收敛的形式跳出来。第三步恢复真实指前因子用上一步的解作为初值开启瞬态求解。时间步长不要设成固定值让求解器自适应但一定要设一个最大步长上限。我通常设最大 1 到 2 天因为如果时间步长过大温度峰值可能在某一步内从 350K 跳到 500K虽然求解器报“已收敛”但结果已经被步长抹平失真了。还有一个细节求解器里把温度场和浓度场设置为分离式求解比全耦合稳妥。全耦合理论上同时满足所有方程但非线性太强时会反复震荡。分离式求解是交替求解浓度场、温度场、流场每一轮都做一次内部迭代从实际效果看虽然需要的迭代轮次多一些但稳定性明显更好。实测在配置普通的办公工作站上一个二维案例跑 100 天模拟时间大约需要几个小时到一晚上完全可以接受。4.3 后处理四张图怎么读后处理才是真正见功夫的地方。算完之后我通常先做四个一维截面图沿着采空区深度方向取一条中心线把速度幅值、氧气浓度、瓦斯浓度、温度画在同一张图里。这样比只看云图更有判断力因为云图上颜色分布容易被色标区间误导而剖面曲线可以精确比较峰值位置和梯度变化。评估结果时我会重点找三组关系是否合理看氧气浓度衰减位置。如果氧气在入口附近就掉到接近零说明反应源项过强如果深部还有很高氧气说明反应源项偏弱或者漏风速度过强。理想的物理图像是氧气从入口持续向深部渗透同时被逐渐消耗在氧化带边缘浓度降到低水平。看温度峰与氧气消耗区的相对位置。阴燃高温区往往在“氧气即将消耗殆尽但还没耗完”的过渡带上因为这里煤氧化反应速率还比较活跃而更深处因为没有氧气只剩缓慢散热。如果温度峰出现在氧气浓度最高的入口附近大概率是边界条件设置有问题比如入口温度偏高或反应功率过大。看瓦斯富集区与高温区、氧气区的空间重叠程度。把这三个场的叠加云图打开如果看到“瓦斯浓度进入爆炸界限、氧气浓度大于维持燃烧下限、温度高于煤体自燃临界值”三个条件在某个局部同时满足那这个区域就是最需要现场关注的靶区。后续布设监测探头时我会把这个重叠区的位置和现场巷道位置对应起来优先安排定点取样和一氧化碳传感器。5. 常见问题与排查那些真实的“翻车”现场5.1 求解器不收敛怎么处理不收敛是最常见的问题但我现在反而不太怕它因为绝大多数情况下原因都很集中。先查单位。达西定律接口和稀物质传递接口默认单位体系可能有差异尤其是浓度到底用 mol/m³ 还是 mol/L以及压力用 Pa 还是 kPa。一旦单位不匹配源项计算出来的数值会异常地大或小反应立刻发散。我的习惯是在建模初期就直接在“单位”设置里把全局单位锁定为 SI所有自定义表达式里都写成带明确单位的量比如 J/(mol·K)、Pa、mol/m³。再查网格。局部渗流速度和浓度梯度过大时二阶单元容易产生过冲。解决办法也很机械把反应剧烈的区域网格加密比如高温区附近的元素尺寸缩到原来的四分之一。加密之后发现收敛情况明显改善那就是网格问题如果加密没有用那基本可以断定是源项表达式或边界条件的问题。还要查时间步长。瞬态求解时Arrhenius 项在高温端变化极快过大的时间步会让更新后的温度落在完全错误的解分支上。将最大时间步长减小同时把求解器的相对容差从默认的 0.01 收紧到 0.001往往就能把求解器拉回正常轨道。5.2 温度爆炸式升高另一种典型失败是温度一路涨到几千K明显不符合物理。这种炸场结果十有八九是热平衡被破坏。最常见的原因是边界绝热。前面说过上下岩层如果设成绝热边界反应释放的热量根本散不出去温度自然无限攀升。解决办法是添加有限厚度的热传导岩层或者直接设置一个和空气或岩体温度挂钩的对流散热边界。第二种原因是热源和氧消耗的耦合写错。比如有人把热源写成固定产热速率不随氧气浓度变化。这样即便氧气已经耗尽热源还在加功率温度当然炸掉。正确的写法必须让热源和反应速率共用一个表达式氧气浓度低了反应速率降下来产热也跟着降。第三种原因比较隐蔽是数值阻尼不够。热源的非线性如果从某个迭代步开始被高估后续求解器可能一路追着错误解跑。我会在求解器设置里打开“非线性”辅助阻尼选项或者把指前因子临时调低半个数量级跑一遍确认趋势没问题再恢复正常值。这一招在调试阶段非常管用。5.3 浓度场出现锯齿状或不合理的尖锐锋面稀物质传递在局部对流占优时特别容易出现数值震荡浓度等值线呈锯齿状甚至出现负浓度。要处理这类问题首先看佩克莱数将网格细化到满足 Peclet 数要求。第二步如果不想全局加密导致计算量变大可以给稀物质传递接口启用“流线扩散”或“各向同性扩散”稳定化选项。COMSOL 自带这些数值稳定选项开启后浓度云图会平滑不少。但要留意过强的稳定化会人为增加扩散导致氧气穿透深度被高估。稳妥做法是先开稳定化拿到一个不震荡的结果再逐渐减小稳定化强度直到结果保持合理且不再震荡。还有一种情况来自边界上浓度突然不连续。比如入口氧气浓度直接设成 0.23 的质量分数而域内初始值是零边界处就会出现阶梯状的浓度突变。COMSOL 默认会用光滑函数过渡但如果过渡带太短依然可能在边界附近出现等值线密集甚至震荡。我的做法是给入口浓度加一个短时间斜坡函数让入口浓度在模拟开始后前几分钟内从初始值平滑升到设定值从根本上消除这个虚假锋面。5.4 与现场数据的校准方法模型跑通只是第一步能不能被现场采信是另一回事。我最常用的校准方法是拿“一氧化碳浓度变化趋势”做锚点。很多矿井已经有监测数据能看出采空区漏风出口的一氧化碳浓度随时间缓慢抬升这是阴燃早期最典型的征兆。我在模型里虽然没有直接计算一氧化碳但在计算氧消耗速率的同时可以额外输出一个一氧化碳生成速率比如按反应速率的某个比例折算成 CO 生成量。把模型算出来的 CO 浓度增长曲线和现场在巷道内测到的 CO 趋势比对如果增长速度和绝对值量级吻合说明模型参数基本可靠如果模型 CO 涨得比现场快就把反应指前因子调小如果慢太多就把活化能调低让低温段反应更活跃一些。这种对校准流程的把关很关键能避免模型变成“自说自话的数学玩具”。我实际碰到过一个案例第一版模型算出来的热点位置在深部压实区但现场一氧化碳浓度升高的风向却在靠近工作面的垮落松动区。核对后发现不是反应参数的问题而是渗透率分布把高渗条带放错位置了。把渗透率条带按照顶板垮落特征重新赋值后热点位置才调回到和现场一致模型的工程可信度才真正建立起来。6. 结果落地的思路与个人体会6.1 用模型结果指导现场监测布点模型最大的价值不在于算出几幅漂亮的云图而在于能明确指出“风险从哪里来、到哪里去、什么条件下会变成事故”。我做完一轮模拟后通常会生成一张建议布点图温度传感器优先放在高温区轮廓线前沿氧气传感器放在氧化带边界一氧化碳取样点放在漏风汇出路径上。这样布点比均匀布置探头省一半以上的成本同时能更早捕捉到阴燃加速的信号。注浆或注氮方案也能借助模型做预评估。比如在某项目里计划在采空区浅部注入阻化浆液降低渗透率。我直接在模型里把浅部条带的渗透率下调一个数量级重新跑一遍看到氧气穿透深度显著缩小、氧化带重心往入口方向回撤同时也发现瓦斯富集区有向工作面方向轻微移动的趋势。这个“次生效应”如果不跑模型根本想不到但对现场防爆措施有直接指导意义。6.2 局限性与不回避的问题必须说清楚二维模型并不是万能的。采空区实际是三维连通体漏风通道往往存在空间上的弯曲和转向二维剖面只能捕捉某个截面上的主要趋势。对于工作面推进速度较快、采空区深度较大的场景二维结果可能低估或高估局部范围内的滞留和蓄热。我曾经试过在二维结果基础上再对最危险的高温区域做局部三维扩展效果很不错既控制了计算量又拿到了更可信的空间温度分布。另外煤体反应动力学参数的非均匀性比多数人想象的大得多。同一煤层不同区域、不同粒度、不同水分含量的煤样热点温度和耗氧速率都可能有明显差异。要降低这种不确定性除了多做几组实验还可以用参数敏感性分析把“哪些参数值得花钱测”“哪些参数取经验值就行”识别出来。我在模型里专门做过一次 Morris 敏感性筛选结果活化能、渗透率、有效扩散系数排在前三煤体热容的影响相对较小。这个排序直接决定了现场取样和实验测试的优先级。6.3 写在后面我实际操作的几点体会说几个只有亲手跑过这类模型才会知道的细节。第一不要迷信高精度网格。采空区本身的参数不确定性很大把网格从 2 米加密到 0.3 米温度峰值可能只变化 10%但计算时间增加几十倍。先跑粗网格确定物理趋势再针对关键区域细化效率远高于一上来就全局拉满。第二后处理阶段要自己动手画剖面线而不是只看云图。云图色标一拉伸深浅印象很容易骗人剖面线则能让峰值位置、半宽、梯度这些真正影响决策的指标一目了然。我会在报告里大量使用剖面线和叠加裁剪图而不只是贴一张五颜六色的表面云图。第三模型结论要带“置信区间式”的表达。任何一个模型都不能只给一条预测曲线至少要给出“参数调高、调低后的上下界”。这样现场工程师才能判断如果我的实际条件偏离模型假设这个结论还有没有用。我最后提交的报告里都会附上敏感性分析表说明哪些结论稳健、哪些结论对参数敏感需要谨慎解读。阴燃模拟这事的本质是用有限的信息去推演一个极难直接观察的地下过程。模型永远不可能完全复现现场的复杂性但一个经过细致校准、充分敏感性分析的模型足以在风险分级、测点布置、治理方案比选上给出比拍脑袋可靠得多的支撑。这也是我始终愿意在这个方向持续投入时间的原因。