☰
COMSOL巷道钻孔瓦斯抽采模拟:采动应力与渗透率模型耦合实战
2026/10/10 13:30:00 网站建设 项目流程

做瓦斯抽采模拟这几年,COMSOL是我用得最多的工具。不是因为它“高端”,而是因为煤岩这类材料,应力场、渗流场耦合在一起,数学上折腾起来非常头疼,COMSOL的模块化思路和自定义方程接口恰好能把问题拆分得很清楚。

你看到的这个项目——“巷道钻孔瓦斯抽采”,核心就一句话:在采动应力影响下,巷道周围的煤体经历卸压、损伤、渗透率变化,然后钻孔怎么把这个区域的瓦斯高效抽出来。标题里提到的“采动应力下渗透率模型”和“煤岩软化模型”,是这类模拟的灵魂。没有它们,你就是拿一个恒定的渗透率值去算扩散,算出来只能看个趋势,跟现场实测数据对不上。

这篇文章把我做这个模拟的完整思路、模型方程、参数标定、网格处理和收敛调试经验都写出来,从物理机制到COMSOL实操细节,尽量让一个只有本科力学底子的工程师也能照着把模型搭起来。如果你是做瓦斯治理、矿井通风、或者煤层气开发数值模拟的,这篇文章应该能帮你少走不少弯路。

1. 模拟目标与整体设计思路

1.1 我在模拟什么,模拟结果要回答什么问题

煤矿巷道开挖后,巷道周围岩体应力重新分布。巷道壁面附近形成卸压区,再往深部是应力集中区,更远处逐渐恢复到原岩应力。这个应力变化不是闹着玩的——煤体是孔隙裂隙双重介质,渗透率对应力极其敏感。卸压区裂隙张开,渗透率可能增大几个数量级;应力集中区裂隙被压密,渗透率急剧下降。

于是出现一个很有意思的现象:你想抽瓦斯,按理说钻孔布置在渗透率越高的地方越好,但高渗透率区域往往就在巷道壁面附近,而这个区域瓦斯可能已经大量释放到巷道里了,剩余的可抽瓦斯量不高。再往深走,渗透率低了,瓦斯又抽不出来。这就是巷道周围瓦斯抽采的核心矛盾。

这个模拟最初要回答的问题是:

  • 巷道开挖后,围岩应力场怎么变化,卸压范围和应力集中区具体在哪里;
  • 渗透率在空间上怎么重新分布,高渗区和低渗区的位置、范围、数值;
  • 布置一个特定参数的抽采钻孔,连续抽采不同时间后,巷道周围的瓦斯压力如何演化,钻孔的抽采影响半径能到多大;
  • 如果改变钻孔长度、直径、负压,抽采效果能提升多少,存在什么样的收益递减关系。

带着这些问题去建模,才不会把模拟做成“为了出云图而出云图”。

1.2 为什么选用双模型耦合,而不是传统固定渗透率

很多初学COMSOL的人,拿到瓦斯抽采问题,第一反应是直接开“多孔介质流”或者“达西定律”模块,给煤层一个均匀渗透率,然后算负压抽采。这种做法不是不对,而是适用条件极其有限。

现场实测数据反复证明一件事:抽采钻孔的流量曲线通常不是简单的指数衰减,经常出现先下降、后回升、再衰减的波动,原因就是应力重新分布和煤体损伤演化在起作用。如果我们把渗透率设成常数,永远解释不了这个现象。

所以这个项目一开始就定了基调:把“采动应力-裂隙演化-渗透率动态变化-气体解吸渗流”这条链走通。具体拆成两块:

  • 采动应力场使用弹塑性力学模型,引入煤岩软化来描述峰值后的应变软化行为;
  • 渗透率不是常数,而是应力和损伤的函数,它随采动应力演化实时更新,再反馈到瓦斯流动场。

这样的耦合模型虽然搭建起来费工夫,但结果的价值完全不同。它能回答“巷道周围哪个位置的钻孔最有效”“深部钻孔为什么抽不出量”“卸压区重叠怎么影响抽采效率”这类有工程意义的问题。

1.3 模拟场景的技术边界

建模之前必须明确边界,不然模型会无限膨胀。我这次的模拟范围假定为:

  • 巷道断面为直墙半圆拱,掘进后围岩处于稳定状态,不模拟掘进时的动态损伤过程;
  • 钻孔为水平孔,沿巷道帮部打入,孔口接抽采管路,孔内负压恒定;
  • 煤层视为均质连续介质,裂隙场通过渗透率模型做等效表征,不做离散裂隙网络;
  • 瓦斯流动为单相气体渗流,不考虑水-气两相流。

这套假设和现场有一定差距,但对评价钻孔参数的影响规律、对比不同方案,精度足够了。如果你追求精细到单条裂隙的模拟,建议换离散裂隙网络软件,COMSOL更适合“场”层面的分析。

2. 控制方程与模型构建细节

2.1 采动应力场计算

应力场计算采用岩石力学中最常见的平衡方程。你可别小看这一步,COMSOL里应力场算得准不准,直接决定后面渗透率场的可靠性。

基本控制方程为:

[ \nabla \cdot \boldsymbol{\sigma} + \rho \mathbf{g} = 0 ]

其中 (\boldsymbol{\sigma}) 为总应力张量,通过有效应力原理和本构关系与应变联系起来。我选用的是应变软化本构模型——它和理想弹塑性模型的区别在于:当应力达到峰值强度后,粘聚力和内摩擦角随塑性应变增加而逐渐衰减,而不是保持常数。

这个软化行为对巷道围岩极其重要。煤体和岩石是有峰后残余强度的材料,峰值后承载能力下降但不至于瞬间丧失。如果忽略软化,算出来的塑性区分布会偏小,渗透率变化范围也会跟着偏小,最后抽采半径的预测就不准。

COMSOL里实现应变软化,我用的是“固体力学”模块配合自定义材料函数:

  • 定义等效塑性应变作为内变量;
  • 粘聚力 (c) 和内摩擦角 (\varphi) 写成等效塑性应变的函数,比如线性软化到残余值;
  • 屈服准则选摩尔-库仑或德鲁克-普拉格,两者在巷道围岩问题里差别不算特别大,但摩尔-库仑在拉压区过渡更容易收敛,建议优先试它。

举个例子,峰值粘聚力1.2 MPa,残余值0.6 MPa,软化起点等效塑性应变0.002,到达残余时塑性应变0.01。这个参数不要拍脑袋定,最好用三轴压缩实验曲线反演,没有实测数据就用文献中相近煤层的参考值。

2.2 瓦斯渗流过程

瓦斯在煤层中的流动,一般用达西定律描述就够了。压力比较高的深部煤层用达西定律有一定争议,但工程尺度上误差在可接受范围。

控制方程是质量守恒加达西定律:

[ \frac{\partial (\phi \rho_g)}{\partial t} + \nabla \cdot \left( -\frac{k}{\mu_g} \rho_g \nabla p \right) = Q_m ]

气体密度 (\rho_g) 用理想气体状态方程关联压力;(\phi) 是孔隙率,也是应力状态的函数;(k) 是渗透率,由渗透率模型给出;(\mu_g) 是甲烷动力粘度。源项 (Q_m) 代表吸附态瓦斯解吸成游离态的补给速率。

吸附解吸这块,煤层瓦斯普遍用朗格缪尔方程描述:

[ V = \frac{V_L p}{p_L + p} ]

这里的 (V_L) 是朗格缪尔体积,(p_L) 是朗格缪尔压力,(p) 是孔隙气体压力。抽采过程中孔隙压力下降,吸附态瓦斯不断解吸,相当于给流动方程提供了一个源源不断的补给源,而且这个补给是瞬时的——准静态朗格缪尔模型,没有解吸时间滞后。如果做高精度瞬态模拟,建议加上解吸扩散时间常数,模拟会更贴近现场。

2.3 渗透率模型选型与分析

渗透率模型是整个项目中我花时间最多的地方。现在文献里渗透率模型多得吓人,各说各话,选错了模型,后面的结果全是误导。

我把常用模型分成三类:

  • 应力类模型:把渗透率写成有效应力的指数或幂函数,形式简单、容易标定,但没有考虑塑性损伤引起的残余渗透率升高。
  • 应变类模型:基于裂隙宽度对应变敏感,用体积应变或裂隙应变表达渗透率变化,适合卸压区大变形。
  • 损伤耦合模型:把塑性应变或损伤变量直接嵌入渗透率表达式,巷道围岩这种峰后大变形区域用这种最合理。

考虑到巷道周围煤体必然经历塑性破坏和高渗化,我选择的方案是:弹性阶段用有效应力指数模型,塑性阶段引入损伤变量修正,让渗透率在软化区显著增大。

[ k = k_0 \exp \left[ -C_{\sigma}(\sigma_m - \sigma_{m0}) \right] + \xi (\varepsilon_{vp}) \cdot k_r ]

第一项是应力敏感性项,(\sigma_m) 是平均有效应力,(C_{\sigma}) 是应力敏感系数;第二项是塑性损伤附加渗透率,(\varepsilon_{vp}) 是等效塑性应变,(\xi) 是放大系数。这个表达式的好处是既能反映应力集中区的渗透率降低,又能反映卸压损伤区的高渗特征,跟实测渗透率剖面长得比较像。

参数标定是重点。我一般先用实验室稳态法测不同围压下的渗透率,拟合出 (k_0) 和 (C_{\sigma});再结合现场测压孔数据和抽采初始流量反演 (k_r)。如果实验室数据缺失,退一步用经验公式:(\xi) 取10到100倍,塑性应变达到0.01时渗透率大概提升两个数量级。

3. COMSOL实操建模全流程

3.1 几何建模

模型范围我取巷道中心往外延伸20米,高度取15米,这样才能保证边界条件不影响巷道周围的应力重分布。如果你取的范围小了,边界上的应力扰动会“传导”到关注区,结果就没有参考价值。

COMSOL里建几何分三步走:

  1. 先用矩形把整个计算域框起来;
  2. 画出巷道断面,直墙半圆拱,我取断面宽度5米、墙高2米、拱高2.5米;
  3. 在巷道帮部按设计角度画钻孔,孔径108 mm,长度30米,跟巷道轴向有个小角度上仰。

钻孔一定要画成独立几何域,后面才能单独赋予边界条件。不然你后面想加负压边界,会发现选不中孔壁面。

这里有个细节:钻孔如果水平通长延伸,三维模型其实做成长条状边界层控制区域更好;但为了计算效率,我这次用的是二维剖面模型,看的是巷道横截面上的瓦斯压力和应力分布,钻孔的影响通过一个局部源汇项或细长椭圆孔来近似。这个简化做规律性分析足够,做精确的单孔流量预测需要用三维模型。

3.2 网格划分

网格是COMSOL模拟里最容易翻车的地方。巷道周围应力梯度大,钻孔附近压力梯度大,两个地方都必须局部加密。

我的划分策略:

  • 巷道壁面一圈设置边界层网格,第一层厚度0.05米,增长率1.3,共6层;
  • 钻孔孔壁同样加边界层,保证孔壁附近压力梯度的分辨力;
  • 巷道周围5米范围内使用自由三角形网格,最大单元尺寸0.3米;
  • 离巷道较远的区域用粗网格,最大单元尺寸2米,减少计算量。

网格数量控制在8万到12万之间,这个规模在普通工作站上跑稳态计算只要十几分钟,跑瞬态模拟要留足时间步数量,但也不至于到跑不动的地步。

网格质量一定要检查,COMOSOL里看最小单元质量,低于0.3就调整局部细化参数。劣质网格不仅在应力集中区产生伪应力,还会让渗透率模型插值出负值,直接导致后续计算发散。

3.3 材料参数表

这部分我把一组典型参数列出来,你可以直接拿去当初始值试算。注意:这组参数来自我接触过的中硬煤层,不同矿区差异很大,务必用自己矿的实验数据替换。

参数数值单位
煤体弹性模量2.8GPa
泊松比0.32无量纲
初始粘聚力1.2MPa
残余粘聚力0.5MPa
初始内摩擦角28度
残余内摩擦角22度
初始渗透率(5\times10^{-17})m²
初始孔隙率0.06无量纲
甲烷动力粘度(1.08\times10^{-5})Pa·s
朗格缪尔体积28m³/t
朗格缪尔压力3.6MPa
原岩应力(垂直)12MPa
原岩应力(水平)7.2MPa

参数之间是有逻辑关系的,不是随便填。原岩应力取12 MPa,大概对应当量埋深450米;水平应力取垂直应力的0.6倍,符合有些矿区侧压系数的常见范围。初始粘聚力1.2 MPa对应中硬煤,你换成软煤就降到0.6 MPa以下。

3.4 边界条件设置与加载顺序

边界条件设置要跟着模拟阶段走。我的做法分两步加载:

第一步,先算巷道开挖后的应力重分布。计算域外边界给位移约束,顶部通过应力边界条件施加原岩应力,巷道壁面设为自由边界。这模拟的是开挖卸荷的最终状态。

第二步,在应力场基础上激活瓦斯渗流场。巷道壁面压力设为0.1 MPa(近似大气压),钻孔孔壁设为0.08 MPa(抽采负压约20 kPa),外边界设定为原煤瓦斯压力1.0 MPa或2.0 MPa,取决于煤层的瓦斯赋存参数。

顺序耦合是我在这个项目里采用的方案,意思是先算稳态应力场,再算瞬态渗流场。这样做的好处是:巷道开挖后的应力调整在时间尺度上比瓦斯抽采快得多,分开处理逻辑清晰,而且避开了两个高度非线性场同时求解的巨大收敛压力。

如果你非要做双向全耦合,注意时间步长必须取得极小,计算时间可能翻十倍以上,而且应力场的塑性应变积累很容易让渗透率突变,导致压力场震荡。

4. 结果解读与参数反演

4.1 应力场和塑性区分布怎么看

巷道开挖后,应力分布最直观的特征是“三区”结构:

  • 卸压区:紧贴巷道壁面,平均应力明显低于原岩应力;
  • 应力集中区:距离壁面大约3至8米范围,切向应力升高,峰值接近原岩应力的1.5至2倍;
  • 原岩应力区:再往深处,应力恢复到原始状态。

塑性区位置和范围可以从等效塑性应变云图直接读出来,通常分布在巷道两帮和底角附近。这个位置的塑性应变越大,后面瓦斯抽采模拟里渗透率的增强区就恰好在那里。

我把应力场结果和现场实测的破坏特征对比过几次。模式比较一致,但数值上有个规律:二维平面应变模型算出的塑性区范围通常比三维模型略大,主要因为三维模型中钻孔和巷道轴向的约束效应更明显。做工程设计时,建议在二维结果基础上适当折减。

4.2 渗透率重分布对抽采的决定性影响

渗透率云图是这个项目最核心的输出图。你会看到巷道周围渗透率呈现“井”字形分布——两帮和顶底板的卸压区渗透率显著增大,部分区域可以从初始值 (5\times10^{-17}) m² 升到 (3\times10^{-15}) m² 以上,而应力集中区渗透率则下降到 (10^{-18}) m² 数量级,差了不止一个数量级。

瓦斯抽采钻孔最怕什么?最怕它的整个孔段全打在低渗透应力集中区,那样流量小得可怜。最理想的情况是钻孔横穿卸压区,把高渗区里的瓦斯直接抽走。这个判断完全依赖渗透率模型,这也是为什么我们要做采动应力耦合而不是用固定渗透率的原因。

实际操作中,我会在COMSOL后处理里画一条沿钻孔方向渗透率的变化曲线,看看钻孔哪些段落在高渗区、哪些落在低渗区。如果高渗段占比太低,就要调整钻孔倾角、长度或者位置,这个反馈优化流程对现场设计具有很强的指导意义。

4.3 瓦斯压力与抽采影响半径

瓦斯压力云图的演化过程特别有意思。抽采一开始,钻孔周围压力快速下降,形成一个局部低压区;接着低压区沿高渗带向巷道壁面和远处扩展。抽采30天后,你会发现压力影响范围沿着渗透率增大的卸压带拉长,形成一个不规则的椭球,而不是各向同性的圆形。

影响半径怎么定?我习惯用“压力降到0.74 MPa以下”这个标准来圈定,因为《煤矿安全规程》里把0.74 MPa视作突出危险临界值。从这个指标算出的影响半径和现场实测比较吻合。

瞬态分析过程中,如果发现压力云图在某一个时间点后不再变化,说明达到了准稳态,后续抽采只能靠深部瓦斯的缓慢解吸和补给来维持,流量进入长期缓慢衰减阶段。这个时候再去调整负压意义不大,重点要转向增透改造。

5. 求解设置与收敛性调优经验

5.1 物理场耦合方式的选择

直接双向耦合看起来“高大上”,但你在COMSOL里一旦启动“固体力学+达西定律”的全耦合,就会意识到什么是真正的折磨。塑性软化造成的应力场不光滑,渗透率随应力突变,压力方程在这种材料参数剧烈变化的背景下很容易出现网格依赖性震荡。

我在这个项目里用的是顺序耦合:

  • 第1步:用稳态分析求解开挖卸压后的应力场和塑性区;
  • 第2步:冻结应力场,把塑性应变作为已知空间分布映射到渗透率模型;
  • 第3步:激活达西定律做瞬态压力场求解。

理由很朴素:巷道开挖的应力调整在工程时间尺度上几天内基本完成,而抽采要持续几十天到上百天,两者时间尺度差着数量级,没必要做同步耦合。顺序耦合计算效率高,结果稳定,和全耦合的差异通常在可接受范围内。

5.2 时间步长与求解器设置

瞬态求解我用的是BDF(向后差分公式),容差因子默认值1会偏紧,有时候算到一半就提示“无法求解”。我给到3,相对容差1e-3,绝对容差1e-5,收敛性立刻好很多。

时间步长建议采用自适应:初始步长0.001天,后期逐步放大到1天。因为抽采初期的压力梯度变化剧烈,步长太大会吞掉局部特征;到了后期场分布稳定,小步长纯粹浪费计算时间。

我给一组比较稳的求解设置参考:

  • 求解器:PARDISO直接求解器;
  • 非线性最大化迭代次数:25;
  • 阻尼因子:0.9;
  • 随机初值:关闭。

如果你用专业版自带的“全耦合”求解器遇到不收敛,换成“分离式”求解器,手动指定解耦顺序,成功率会高很多。

5.3 常被忽略的网格依赖问题

网格依赖是煤岩软化模型的天生毛病。塑性应变在软化区高度集中,再叠加渗透率突变,网格粗细会明显影响塑性区的大小和渗透率的分布。这是物理模型的问题,不是网格设置的问题,前提是你的网格已经收敛。

我自己做网格敏感性测试的方法是:把最大单元尺寸从0.5米改变到0.2米,比较巷道两帮的塑性区宽度和钻孔流量的变化。偏差在5%以内就认为网格收敛了。不要指望结果对网格不敏感,那在煤岩软化这种非线性问题上不现实,重点是把偏差控制到工程可接受范围。

6. 常见报错与避坑实录

6.1 “找不到一致初始值”报错

这是COMSOL做塑性问题最常跳出的报错,通常在第一次求解时就出现。原因基本是初始应力状态设置与边界条件不一致。

我排查的经验:检查初始应力是否通过“初始应力与应变”节点赋入了,而不是只加边界载荷;另一个常见坑是塑性学参数没有定义软化起始值,导致材料一进入加载就立刻软化,整个刚度矩阵退化。

解决方法是先把软化模型关掉,跑一遍线弹性分析作为初值,再激活塑性软化继续计算。这个技巧几乎每次都能救场。

6.2 达西方程发散

压力场求解发散,最常见原因是渗透率出现负值或过小值。软化区的塑性应变如果局部分布过于集中,渗透率放大系数 (\xi) 又取得太大,局部渗透率能达到初始值的千倍以上,压力方程变得刚性,矩阵条件数急剧恶化。

我的修复办法:给渗透率设置上限,比如最多放大500倍。这样虽然稍微压低了理论渗透率,但换来的数值稳定性非常值。另一个办法是使用对数渗透率变量,让渗透率跨越多个数量级时梯度变化更平滑。

6.3 计算时间爆炸

如果你做三维模型,网格数轻松突破百万单元,计算时间会从分钟级跳到小时级。这时候别硬算,先做数值降阶:

  • 用二维代表性剖面替代三维域;
  • 考虑对称性,只仿真四分之一域;
  • 把钻孔影响等效成汇项,不显式建模钻孔几何。

我用二维剖面模型跑了足够多方案,规律性结论完全够用。三维模型只留在最终汇报方案时用来出图展示。

6.4 单位制混乱

COMSOL默认单位制是SI,但工程上常常混用MPa、cm、mD。一不留神把渗透率写成达西单位,结果差了9个数量级,整个压力场全是乱的。

我给自己立过规矩:几何用米,压力用Pa,渗透率用m²,动力粘度用Pa·s,全部跟COMSOL默认保持一致。原始数据从文献里拿到的mD,直接用换算表换成m²,比如1 mD约等于 (9.87\times10^{-16}) m²。做完换算写进参数表,再检查一遍量纲。

6.5 结果与实测偏差大

模拟结果和现场数据对不上,十有八九是参数选取问题,不是模型框架问题。尤其是渗透率放大系数和软化参数,这两个参数不确定度最大。

我建议的做法:把抽采流量曲线当反演目标,实测一段时间的流量数据,用试算法调整渗透率模型参数,使模拟流量和历史流量吻合。这一步做完,模型的预测能力才真正可信,评委和现场工程师也才认可你的结果。

7. 钻孔布置优化的几个延展思路

模拟做完不是终点,用模型去指导布孔方案才是价值所在。基于我多次跑模型的经验,有几点特别值得做的延展分析:

第一,钻孔长度优化。长度增加初期流量增加明显,但超过卸压区边界以后,新增孔段全部位于低渗透率区,边际收益锐减。用模型算一下“临界孔长”,比凭经验定尺寸靠谱得多。

第二,负压敏感性分析。负压从10 kPa增加到30 kPa,流量提升显著;再往上加负压,流量提升有限,反而有漏风风险。可以用模型做个负压-流量曲线,确定合理的工作负压区间。

第三,钻孔间距优化。多孔抽采时,两个孔的抽采影响区域重叠,存在一个经济合理的间距。用模型模拟不同间距下的总抽采量,绘制“间距-抽采效率”曲线,找拐点。

第四,卸压区重叠增透。巷道周围卸压区渗透率高,但相邻巷道或采动引起的叠加卸压能够进一步扩展高渗区范围。模型可以预判高渗区的空间形态,把钻孔布置在渗透率最优“通道”上,这个思路对地面井和井下钻孔联合布置特别有用。

我在实际项目里把第四点试过一次,模拟结果表明钻孔仰角调整为顺层穿越损伤卸压带后,单孔流量提升了约1.6倍。这是固定渗透率模型永远算不出来的结果,也是这类耦合模拟最大的价值所在。

最后再分享一个实用的小技巧:不要只输出COMSOL默认的物理场云图,把渗透率场、塑性应变场和瓦斯压力场做“组合切片”,叠在同一个模型空间里观察,高渗区、损伤区和低压瓦斯区的空间重合关系一目了然。这个图拿到现场讨论方案时特别有说服力。模拟本身只是工具,真正有价值的是你借助它看懂巷道周围煤体里到底发生了什么。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询