ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

COMSOL煤层瓦斯抽采多物理场仿真与注气强化抽采建模详解

COMSOL煤层瓦斯抽采多物理场仿真与注气强化抽采建模详解 刚开始做煤层瓦斯抽采仿真的时候我踩过一个大坑用单相达西渗流加一个负压边界跑了半天得到一张漂亮的压力云图拿给现场的人看人家问了一句你这个渗透率为什么是常数煤体被抽采后有效应力会变大渗透率早变了。当时我愣住了后面重新啃了两个月文献才把COMSOL里应力场—渗流场—吸附解吸这套耦合逻辑完整搭起来。这篇文章我想把这些东西系统说清楚重点围绕两个方向展开一是瓦斯抽采本身的多物理场建模思路二是注气强化抽采比如CO2/N2注入如何在COMSOL里和抽采过程放到同一个框架里求解。相信无论是做学位论文的研究生还是做瓦斯治理设计的工程师都能从这里找到可以直接落地用的建模路径和参数套路。1. 为什么瓦斯抽采不能只当作单相渗流来仿真先说一个很多新手容易忽略的事实煤层瓦斯抽采不是简单的钻孔—降压—气体流出来这么一条单向逻辑链它牵扯到煤体骨架变形、瓦斯解吸扩散、裂隙渗流三个过程同时发生任何一个过程不参与计算结果都会和现场实测对不上。1.1 煤层里的瓦斯到底是以什么形态存在的煤层瓦斯主要存在于两处一是煤基质内部的微孔隙表面以吸附态为主二是裂隙、割理系统中以自由态存在。吸附态瓦斯占绝大多数通常超过80%甚至能到90%以上它遵循Langmuir吸附规律也就是在一定温度下吸附量与气体压力之间存在一条单调上升的曲线关系。这条曲线在低压力段很陡高压段慢慢趋于饱和。这意味着什么当钻孔抽采制造出压降漏斗时基质孔隙里的吸附瓦斯会因为压力下降而解吸变成自由瓦斯自由瓦斯再沿着裂隙网络渗透进钻孔。这里面的关键时间是解吸和渗流之间存在一个扩散过程。煤基质尺度小扩散路径短但是对瓦斯产量到达峰值的时间影响非常大。在做COMSOL仿真时如果完全不考虑扩散时间你会得到一条抽采立刻出大流量的过于乐观的曲线和现场流量衰减规律完全对不上。1.2 抽采过程的真实物理链条压力降低、解吸、扩散、渗流把抽采过程拆开看它其实是一条串行的物理链条钻孔负压打破了原始煤层的气压平衡钻孔壁面附近压力降低。压力降低在裂隙网络中形成压力梯度自由瓦斯向钻孔方向渗流。裂隙压力的下降破坏了基质中吸附瓦斯的平衡状态吸附瓦斯开始解吸。解吸出来的瓦斯先通过扩散作用从基质内部运移到裂隙表面再进入裂隙参与渗流。这四个环节里裂隙压力下降和吸附瓦斯解吸之间存在一种源汇关系解吸出来的瓦斯补充到裂隙里会部分抵消钻孔负压带来的压降。所以严格讲抽采初期的瓦斯流里有一大部分来自钻孔附近一小片区域内煤基质快速解吸的贡献而到了中后期解吸前沿逐渐向深部推移流量呈现衰减。在COMSOL里实现这条链条需要三个物理场并联固体力学算煤体变形流动方程算裂隙压力场再叠加一个描述基质扩散和吸附解吸的源项。如果只用Darcy模块加一个固定解吸速率常数就忽略了压力变化对解吸速率的反馈调节模拟结果会越来越偏。1.3 应力—渗流耦合这场戏的真正主角瓦斯抽采过程中煤体孔隙压力下降按照有效应力原理煤基质骨架承受的有效应力会增大。煤层是典型的软岩孔隙、裂隙在有效应力增大时会被压缩渗透率显著下降。这个下降不是百分之几的小幅波动某些矿区实测数据表明有效应力增加一两倍渗透率可能下降一个数量级。反过来看注气过程会让煤体孔隙压力升高有效应力降低裂隙张开渗透率反弹。这种应力—渗透率的互锁效应决定了抽采钻孔的影响半径会随时间收缩也是注气井周围渗透率区分于采气井周围渗透率的核心原因。所以任何不包含应力—渗流耦合的模型本质上是拿常数渗透率去预测一个高度应力敏感的系统误差会被时间放大。这也是我为什么在COMSOL里坚持把固体力学模块和渗流场同时打开的原因。2. 注气强化抽采的物理机制一场气体之间的竞争注气的目的很单纯抽采到中后期煤层压力已经很低渗流驱动力不足自然产量进入衰减期。往煤体里注入CO2或N2能人为地再制造一次驱替过程把残余甲烷从基质表面挤下来。2.1 CO2注入为什么它能置换甲烷CO2在煤表面的吸附能力大约是CH4的2~3倍也就是说在相同温度和压力下煤基质更喜欢CO2而不是甲烷。当CO2进入裂隙系统并向基质内部扩散它会优先占据吸附位甲烷分子被置换下来从吸附态变为游离态随后被抽采钻孔带走。在COMSOL中这种竞争吸附可以用扩展Langmuir方程来描述核心是给每个组分的吸附量单独写一条Langmuir型表达同时让吸附量受另一组分分压的影响。这个方程不算复杂难度在于参数CO2和CH4的Langmuir吸附常数都要分别标定实际模拟中常用文献值有条件的话用等温吸附实验数据拟合会更可靠。2.2 N2注入分压原理与稀释效应N2和CO2的作用机制完全不同。N2在煤基质上的吸附能力比CH4还弱它不会主动去抢吸附位。它的价值在于降低裂隙系统中的CH4分压。根据Langmuir方程煤基质上甲烷的吸附量与CH4分压相关分压越低平衡吸附量越低于是原本吸附在煤表面的甲烷开始解吸出来被N2吹扫进钻孔。这两种注气方案各有适用条件。CO2置换效率高但CO2本身也被煤吸附会封存在煤储层中导致渗透率下降N2虽然置换效率低一些但能维持煤体渗透性甚至因为N2不被吸附而让裂隙气体压力更容易扩散。在COMSOL建模时CO2方案必须考虑吸附量累积对骨架体积应变的影响N2方案则要在组分输运方程里正确设置气源。2.3 把注气—抽采统一到同一个模型里的关键在COMSOL里同时做注气和抽采几何上会涉及多个钻孔注入井和抽采井都要在边界条件里体现。通常我会这样处理注入井壁面指定CO2/N2注入流量或给定注射压力抽采井壁面指定恒定负压例如0.08 MPa的绝对压力。煤体模型内部压力和组分浓度都参与流动对流—扩散方程负责把注入气体从注入井输运到抽采区域吸附源项负责组分之间的竞争与置换。这套模型里有一个容易被忽略的点——流体密度不再恒定。瓦斯和注入气组分混合后混合气密度随组分变化、随压力变化不能简单用单一气体的密度公式。在COMSOL中我给流动方程添加了一个混合气体密度依赖项尽管会引入非线性但换来的是注气量、产出气体组分构成的合理预测值得。3. COMSOL建模的完整思路从几何到耦合方程下面讲讲我在COMSOL实操中的建模组织方式不涉及具体版本但默认你用的是较新的Multiphysics版本5.6及以上最好界面和物理场接口调用逻辑变化不大。3.1 几何模型与钻孔布局瓦斯抽采三维全尺寸长壁面模型计算量过大我通常先做二维平面应变或轴对称简化。如果做单孔抽采分析用轴对称几何最方便如果做注气井—抽采井对井分析就直接建一个有厚度的二维矩形截面把钻孔简化为圆形或正方形空腔。几何尺寸上单孔抽采模型边长取10~20 m就够再大会显著增加网格量而结果差异不大。钻孔直径按现场实际取通常是75~113 mm。这里不要用真实孔径建模后直接全局划分三角形网格会在钻孔附近生成密度过高的极小单元。正确做法是先建一个直径约1 m的钻孔影响圈圈内部细网格圈外渐变网格这样钻孔壁面附近的压力梯度和应力集中才能解析出来。3.2 瓦斯渗流方程的落地用系数型PDE还是达西模块COMSOL自带的Darcys Law模块处理恒定渗透率、单相、可压缩流体的基础问题很好用但做成瓦斯抽采注气场景就显得局限它难以直接在方程里插入随有效应力动态变化的渗透率也很难在同一个求解器里和吸附源项紧耦合。我更推荐的做法是用系数型PDE接口自己写流动方程控制力反而更强。流动方程我习惯写成S(p) * ∂p/∂t ∇·(-(k(σ)/μ) ∇p) -∂q/∂t其中 (S(p)) 是综合储集系数包含裂隙压缩储气和基质解吸储气的贡献(k(\sigma)) 是随有效应力变化的渗透率(\mu) 是气体动力黏度(q) 是单位体积煤体内的吸附量。方程右边这一项就是从Langmuir吸附曲线推出来的解吸速率它是压力随时间变化的函数也是连接流动场和吸附行为的桥梁。系数型PDE接口里填系数时特别注意d 系数要填 S(p)c 系数填 k(σ)/μf 项填 -∂q/∂t符号和单位要统一不然求解器会飘掉。3.3 固体力学模块里如何把瓦斯压力变成载荷固体力学模块在COMSOL里只需要做一件事算出每个时刻煤体在孔隙压力作用下的位移和应变场。具体来说在固体力学物理场中添加一个体载荷大小等于压力梯度 (∇p) 或直接用孔隙压力贡献的有效应力增量。常用做法是把孔隙压力当作一个边界载荷施加在煤基质骨架的所有内部边界上但更标准的做法是通过多孔弹性耦合方程把压力梯度转换成一个等效体积力。这样钻孔周围的拉压状态和远场原岩应力状态就能同时被考虑。这里必须提醒一个坑COMSOL的固体力学默认位移单位是米压力的单位是Pa煤体弹性模量单位是GPa如果漏了换算体载荷数值会差到离谱。建议在参数表里统一所有量纲再开始扫参数。3.4 吸附源项与解吸速率的处理吸附量 (q) 在COMSOL里是一个额外因变量和压力、位移一起求解。Langmuir方程用来描述平衡吸附量q_e(p) VL * p / (PL p)但实际吸附过程有时间滞后不能直接认为每个时刻都处于平衡态。现场很多模拟直接令 q q_e(p)省掉了动力学过程这在慢速抽采中近似成立但在注气驱替、快速变压场景下就必须引入非平衡吸附模型即∂q/∂t (1/τ) * (q_e(p) - q)τ是吸附时间常数煤体一般是1~10天。把这个方程放进COMSOL的一个全局常微分方程或域ODE接口和流动方程联立就能得到更可信的流量变化曲线。在实际操作里我从来都是开这个非平衡项尤其是做短时间注气方案对比时它能把注气初期模拟流量偏离现场实测的那个误差压到可接受范围。4. 关键物性参数与渗透率动态模型仿真结果可信度的分水岭仿真和魔术的区别在于魔术靠障眼法仿真靠参数。COMSOL里方程本身只有一个逻辑框架结果准不准决定权在参数标定和模型选择。4.1 渗透率随应力的变化指数衰减模型实例目前工程界用得最多的渗透率动态模型之一是指数关系式k k0 * exp(-Cf * (σ_eff - σ_eff0))其中 (k0) 是初始渗透率(Cf) 是裂隙压缩系数单位Pa⁻¹(\sigma_eff) 是当前有效应力(\sigma_eff0) 是初始有效应力。实测中 (Cf) 在软煤里通常1e-7到1e-6 Pa⁻¹硬煤里小一些。这个模型的好处是形式简单COMSOL里直接写表达式就行也不会出现渗透率变为负数的尴尬。它基于一个事实裂隙开度随有效应力呈指数型衰减。很多文献还有Palmer-Mansoori模型、Shi-Durucan模型它们考虑了基质收缩、有效应力变化等多因素更精确但也更复杂。个人经验是先指数衰减模型把整套耦合逻辑跑通再根据研究深度换复杂模型不要一上来就上P-M模型调试难度会陡增。4.2 Langmuir吸附参数对解吸量的影响Langmuir曲线的两个常数 (VL) 和 (PL)决定了吸附量随压力变化的形态。(VL) 代表最大吸附量(PL) 代表吸附量达到一半时对应的压力。现场做等温吸附实验给的都是这两个数。束缚注意计算中一旦锁定这两常数就意味着假设温度恒定。瓦斯抽采和注气过程通常近似等温但还是要想清楚模型适用范围。如果某天你要做注热增产模拟Langmuir常数必须写成关于温度的函数否则压力降到一定程度吸附量预测会失真。4.3 参数表一组合格的输入数据长什么样这里给一张常用参数表是我按某典型中阶煤层条件整理的用它跑出来的趋势和各物理量量级基本符合现场数据可作调试初值。参数数值单位说明初始孔隙压力1.5MPa原始煤层气压初始渗透率1.0mD折算m²需乘9.869e-16裂隙压缩系数3.0e-71/Pa软煤略大硬煤略小初始孔隙度0.061裂隙孔隙度Langmuir体积0.028m³/kg按标况甲烷折算Langmuir压力1.8MPa对应解吸半值点煤体杨氏模量2.5GPa软煤略低泊松比0.351煤体较软气体动力黏度1.1e-5Pa·s甲烷在井温下近似值吸附时间常数3day根据扩散系数反算注意这张表只是初值。每个矿区、每个煤层的参数差异巨大直接套用现场数据前必须做敏感性分析看看结果对哪个参数最敏感然后优先标定它。5. 实测定制的坑收敛性、网格、时间步COMSOL的自适应网格和默认求解器对很多问题能一把过但多物理场强耦合的瓦斯抽采模型不会给你这种省心体验。下面这些坑我基本每个项目都踩过至少一遍。5.1 非线性迭代不收敛的排查顺序COMSOL报求解器返回在时间1处的解不收敛时不要急着调网格按顺序排查先检查渗透率表达式是否出现负值或零值。渗透率是渗透方程系数 (c) 的组成部分一旦在某个局部区域为负方程性质从椭圆型变双曲型迭代立即发散。解决给渗透率加一个下限函数比如max(k_min, k_expr)。检查体载荷符号。压降造成的等效体力方向写反位移场一定发散。调低初始时间步。抽采初始阶段压力梯度集中在钻孔壁面时间步太大会让瞬态压力场出现振荡。把严重非线性的参数如渗透率、密度改为上一时刻值通过prev或time-dependent设置先用隐式欧拉稳定求解再换成BDF提升精度。排查顺序不是乱序先解决方程性质的病态问题再解决初值问题最后才去关心精度。5.2 钻孔附近的网格处理钻孔壁是压力边界和应力集中处的双重源点这里的网格质量直接决定解的振荡幅度。我的做法是三级层次钻孔影响圈内用边界层网格第一层厚度为钻孔直径的1/10增长率1.2影响圈外围用自由三角形网格最大单元尺寸不大于抽采半径的1/5远场区域放宽到1~2 m控制总自由度。如果你做的是钻孔与割理垂直的二维截面很容易因为割理几何生成超细网格。简化处理是把割理离散化到渗透率张量的各向异性里而不是真的画出几百条裂隙线。5.3 时间步长策略与初值设定瓦斯抽采整个过程往往持续数百天而抽采开始后前几小时压降漏斗的半径扩展速度最快。用均匀时间步从头跑到尾要么前几小时步长过大导致动态不准确要么后期步长过小导致计算量浪费。推荐做法设置时间序列0, 0.001, 0.01, 0.1, 0.5, 1, 2, 5, 10, 20, 50, 100, 200, 365单位天。COMSOL会自动在这些输出点之间插值求解器内部也会自适应调整步长但输出点密集一些有利于观察早期动态。如果遇到初始发散把第一段时间步改成更小的1e-6天把 Skip from initial step 打开让求解器先找到一个稳定解再推进。5.4 单位混用的血泪教训单位问题单独拿出来说因为它太致命了。我见过不止一个同学把渗透率1 mD直接输成1m²的数值导致矩阵病态也见过把压力用MPa写进方程然后代入Pa单位的边界条件导致了几何量级的错乱。COMSOL里我习惯做一张主量纲检查表物理量主单位备注长度m几何尺寸统一用m压力Pa输入MPa时手动乘1e6渗透率m²输入mD时手动乘9.869e-16弹性模量Pa输入GPa时手动乘1e9密度kg/m³气体密度按组分算时间s输入day时手动乘86400别嫌啰嗦这一步检查省下的调试时间远远多于输入时间。6. 后处理与模型验证云图会骗人曲线不会模型跑通了、云图也画出来了只能说明数值解存在。它是不是真反映现场需要靠后处理和实测对比来回答。6.1 云图看什么、怎么截图才有说服力压力云图用连续色阶时会掩盖钻孔附近的梯度变化建议把色阶范围固定在0到原岩压力之间或者钻孔周边局部放大看等值线密度。最该关注的区域是注气井和抽采井之间的中间过渡区那里浓度梯度和压力梯度同时存在是判断注气是否有效突破的位置。位移云图别直接给总位移要看体积应变 (εv) 分布它才是和渗透率变化直接挂钩的量。体积应变出现局部过高正值膨胀或负值压缩要回到渗透率表达式中去检查是否带来了局部突变。6.2 抽出流量与实测数据拟合的思路现场瓦斯抽采流量曲线是拟合模型的黄金基准。模拟结果里的钻孔壁流量在COMSOL里可以通过边界积分算子提取。把抽采第1天、第30天、第90天、第180天的模拟流量和现场流量放在同一张双对数坐标图里对比是最直观的错误发现方式。如果模拟流量曲线整体偏高通常是渗透率给大了或者解吸时间常数给小了如果前期偏高、后期偏低说明渗透率随应力衰减的速度给慢了。这两个方向的经验规律比看拟合优度指标更直接。6.3 一个快速自检清单我在写完一组仿真后会按清单检查一遍避免低级错误混进汇报材料模型质量守恒COMSOL的质量平衡报告里进入边界气体总量是否等于域内累积量和产出量之和误差超过1%就要查边界设置。渗透率最小值是否落在物理合理范围有没有出现负值。远场边界压力是否基本保持原岩压力如果远场压力被吸动了说明模型范围不够大。网格无关性验证把钻孔影响圈网格加密一倍抽采90天流量曲线变化小于3%才算达标。这套自检做完再下结论说某个方案好、某个参数敏感才站得住脚。最后再分享一点个人体会COMSOL做瓦斯抽采和注气仿真方程不复杂复杂度在网络化知识经验上。你在文献里看到的每一个漂亮结果背后都有一堆试错调参的血泪。先把一到两个耦合物理场玩透再逐渐加组分、加非平衡吸附、加水力割缝层层递进远比一次性堆砌所有模块靠谱。愿这篇笔记能给正在这条路上摸索的人省下几个月的弯路。
返回列表