双重介质模型在COMSOL瓦斯抽采中的应用与解析
comsol瓦斯抽采-双重介质模型
地下矿井的瓦斯抽采是个技术活,尤其是遇到煤岩双重介质的情况。前几天在COMSOL里折腾了个双重孔隙模型,今天把关键代码和踩坑经验整理出来。所谓双重介质,说白了就是瓦斯既存在煤基质微孔里,又沿着裂隙网络流动,这俩系统还得互相交换物质。
先搞个简单几何模型:用矩形域代表抽采区域,中间画几条交叉线段模拟天然裂隙。重点在于物理场的设置,得同时建立两个PDE接口——分别对应基质和裂隙的压力场。这里用系数型偏微分方程最灵活:
% 裂隙系统方程设置 model.physics('pde1').feature('cfeq1').set('da', 'epsilon_f'); model.physics('pde1').feature('cfeq1').set('beta', '1/eta_f'); model.physics('pde1').feature('cfeq1').set('gamma', '-K_f*grad(p_f)'); % 基质系统方程设置 model.physics('pde2').feature('cfeq2').set('da', 'epsilon_m'); model.physics('pde2').feature('cfeq2').set('f', '-alpha*(p_m - p_f)');这段代码里的epsilon代表弹性储容系数,eta是黏滞系数,K是渗透率。注意裂隙方程比基质多了个gamma项,这是裂隙系统需要考虑达西渗流的关键。那个alpha参数控制着基质向裂隙的窜流速度,实测时需要根据煤样实验数据标定。
comsol瓦斯抽采-双重介质模型
耦合项的处理最考验人。两个压力场之间得通过质量交换项连接,这里用延迟评估函数最保险。在裂隙系统的源项里加入:
model.physics('pde1').feature('cfeq1').set('f', 'alpha*(p_m - p_f) + q_well');q_well代表抽采钻孔的汇项,用点源函数表示。这时候要注意单位一致性,特别是当几何模型尺度相差较大时,容易出量纲混乱的bug。
求解器设置有个小技巧:先稳态求解初始压力分布,再转瞬态模拟抽采过程。初始条件别直接用常数,建议:
% 裂隙初始压力(考虑重力影响) p_f_init = p0 - rho*g*y; % 基质初始压力(滞后于裂隙) p_m_init = p_f_init * 0.98;跑完仿真后,在裂隙末端位置的压力曲线应该会出现明显双下降段——先是裂隙快速泄压,接着基质缓慢补给。用派生值功能提取流量时,记得把裂隙和基质的流量矢量叠加:
Q_total = integrate( (K_f*grad(p_f) + K_m*grad(p_m)) , 'Surface' );遇到过最坑的问题是网格划分不当导致质量不守恒。后来在裂隙附近加了边界层网格,基质区域改用自由四面体,总算把质量误差控制在5%以内。后处理时用切片图同时显示两个压力场,能直观看到裂隙像血管一样把基质里的瓦斯"抽"出来。
最后说个实测验证方法:在距钻孔不同距离布置虚拟压力传感器,对比现场实测数据。调整窜流系数alpha时,远场压力恢复曲线的形态变化最敏感,这个参数调准了模型就成功大半。
