☰
离散裂隙网络建模:FracMan水力压裂与油藏数模全流程解析
2026/10/14 23:35:06 网站建设 项目流程

做油气藏数值模拟这几年,FracMan这套软件在我手里的使用频率相当高。尤其是碰到页岩、致密砂岩这类低孔低渗储层时,天然裂缝系统的分布几乎决定了水力压裂能不能打出理想的复杂缝网,也直接关系到后期产量能不能稳得住。这里面的核心逻辑其实很简单:先把地下那些看不见的裂缝“摸清楚”——它们朝哪个方向走、密度多大、尺寸多长、彼此怎么连接,然后用离散裂隙网络建模(DFN)把这套东西显式表达出来,再把它接到水力压裂设计和油气藏数值模拟里去,用来判断产能、优化布井、预测可采储量。这篇文章围绕这条完整链路展开,适合刚开始接触裂缝建模的油藏工程师,也适合那些做数模做得久了、总觉得等效连续介质“差点意思”的朋友。

1. 为什么天然裂缝系统要单独建模:从连续介质到DFN的思维切换

1.1 连续介质模型处理天然裂缝的硬伤

传统油气藏数值模拟里,我们习惯把储层简化成一套孔隙度、渗透率、饱和度场,相当于把复杂的岩石体“平均”成一块性质均匀的海绵。这个思路在孔隙型砂岩储层里非常成熟,也经过了大量实践检验,但一碰到天然裂缝发育的储层就开始露怯。

原因在于裂缝在空间上是不连续的,而且强各向异性。一条裂缝的渗透率和基质渗透率可能差三四个数量级,局部高渗通道对整个渗流场的控制作用远远超过它的体积占比。如果你把裂缝“磨平”进网格,用网格单元里的平均值来表达,真实裂缝的连通性就丢了。最典型的例子是同一个区块里,相邻两口井,一口高产一口低产,用均质模型解释不了,只有当你承认地下存在一条或者一组高导流裂缝通道时,动态数据才对得上。

另一个麻烦是方向性。天然裂缝往往沿某个优势方向发育,导致渗透率主方向和坐标轴不重合,渗流呈现明显的各向异性。连续介质模型里即使给了各向异性渗透率张量,也表达不了“这条缝和那条缝到底交不交”这样的拓扑关系。而在地下流体流动里,连通与否往往是第一位的。

1.2 DFN到底在建模什么:一组参数说清楚

DFN的核心思想是把每条裂缝当成三维空间里一个离散的平面圆盘或者多边形,显式地放进模型里。每一条裂缝都带着自己的属性:位置、产状(走向和倾角)、尺寸、开度、粗糙度。它不做“平均”,而是把裂缝之间的相交关系完整保留下来。

打个比方,这就像画电路图,一条裂缝就是一根导线,导线连不连、连接到哪、导通截面积多大,决定了电流走哪条路。你用区域内的“平均电阻”是很难准确预测一个复杂电路的电流分布的,必须把导线一根根摆出来看拓扑。

在FracMan里描述一套裂隙系统,最常用的参数就这几个:

  • 裂隙组:把产状和成因相近的裂缝归成一组,一般至少分2到3组,多的时候能到5组以上。
  • 产状分布:常用来拟合每组裂缝法向方向,最常见的是Fisher分布,用一个离散系数κ表达方向集中程度。
  • 尺寸分布:裂缝尺寸(直径/长度)通常用截断幂律分布描述,幂指数和尺寸上下限是关键。
  • 密度:三维建模最常用P32,也就是单位体积内的裂缝面积,单位是m²/m³。
  • 开度:裂缝面之间的空隙宽度,它的取值对渗透率影响极端敏感。

这几个参数组合起来,就能把地下非常复杂的裂缝网络系统还原成一个可以计算、可以统计、可以验证的随机几何模型。

1.3 FracMan这类工具的价值定位

FracMan这个软件的价值不在于画图好看,而在于把事情做成了闭环。它能从露头统计、岩心描述、成像测井、微地震监测等多源数据里反演裂隙分布参数,能在三维空间里生成符合这些参数的随机裂隙网络,能对网络做连通性分析和渗透率张量计算,还能把结果输出给水力压裂仿真和油气藏数值模拟器使用。

它内置了不少统计工具,比如裂隙组自动聚类、小圆误差分析、Bootstrap置信区间估算。对一个实际项目来说,DFN模型靠不靠谱,不能靠肉眼看三维图来拍板,而是要靠这些统计量把关。我自己的习惯是,每生成一个DFN实现,先看统计指标,再看可视化效果,顺序反了容易被“看起来挺漂亮”的假象带偏。

2. 整体工作流与技术选型:一条链路走通裂缝建模与压裂模拟

2.1 一套完整的工作流:从数据到数模一共六步

就我实际接触的项目而言,用FracMan做天然裂缝建模,再衔接水力压裂和油气藏数值模拟,大体上分六步。

第一步是收集并整理资料。一般包括成像测井解释成果(识别天然裂缝的产状和密度)、岩心描述记录(裂缝宽度、充填程度、倾角)、岩石力学实验数据(杨氏模量、泊松比、抗拉强度、断裂韧性)、地震属性数据(大尺度裂缝和断层的指示),以及压裂施工后的微地震事件数据。

第二步是划分裂隙组并做统计分析。把方向相近的裂缝归成一组,通常借助等面积投影图、玫瑰图来观察极点云的分布,然后用聚类算法自动分组。每一组再用Fisher分布拟合平均法向方向,并给出离散系数。

第三步是密度标定。把测井的线密度、岩心的面密度换算成三维体积密度,这一步是整个DFN建模里最关键的环节,后面的参数敏感性基本都从这里影响全局。

第四步是确定尺寸分布。给定一个尺寸范围,例如最小3米、最大80米,再给定一个幂律指数,通常在2.0到2.8之间,就可以准备生成DFN了。

第五步是在FracMan里生成三维裂隙网络,并做连通性分析和渗透率张量计算。如果多组裂隙发育,算出来的张量往往有明显的非对角项,说明渗流主方向不在坐标轴上,这会直接影响后续压裂方案和数模网格方向。

第六步是把DFN结果输给压裂模拟或油藏数值模拟。压裂模拟看的是裂缝扩展与天然裂隙的交互作用,数模则更关心不同尺度裂缝的等效参数。

2.2 必须用DFN的环节:压裂设计绕不开的段簇决策

有人会问,最后数模都要等效成网格,为什么不直接给一个各向异性渗透率场就算了,何必费劲建DFN?这是因为压裂方案设计绕不开“段簇位置”这个决策。你决定在哪个深度射孔,本质上是在赌那个位置有多少天然裂缝能和你压出来的人工缝串起来。DFN能告诉你当前深度上天然裂缝和人工裂缝的夹角关系、密度关系,这个信息是均值渗透率替代不了的。另一个场景是历史拟合。同一个平台上的井,产量差异很大,用均质模型经常怎么调都拟合不上,而用DFN的连通率来解释邻井差异就顺理成章。所以我的观点很明确:DFN不是锦上添花,而是复杂裂缝储层精细化描述的必要手段。

2.3 压裂模拟方案怎么选:三条路线各有适用场景

DFN建出来后,最核心的应用方向是水力压裂模拟。结合这些年做项目的经验,常见路线大致有三条。

第一条是等效连续缝网。把DFN的裂缝密度和渗透率直接折算成缝网渗透率场,再用常规网格类压裂模拟器算缝长、导流能力。这个方案基于平面裂缝假设,运算快,方案周期短,适合做大批量扫描,但表达复杂缝网的能力有限。

第二条是离散裂缝显式耦合。把DFN导到力学仿真平台上,用有限元或离散元做流固耦合计算,同时考虑应力阴影、裂缝转向、天然裂缝剪切滑移这些机制。这个方案能模拟复杂缝网的真实生长过程,但计算量大,参数需求密集,单个方案跑一两个月很正常。

第三条是用DFN做“统计等效”水力裂缝单元,嵌入油藏数值模拟器。也就是说把DFN粗化后得到每个网格的等效渗透率、双重介质参数,例如裂缝孔隙度、裂缝渗透率、基质-裂缝形状因子,然后输出给商业数模软件做产量预测和生产动态研究。这条路线在开发阶段用得最广。

实际项目里,我的做法是三条路线配合着用:前期用方案一快速扫参,筛出可能有价值的段簇位置;对候选位置用方案二做精细验证,搞清楚复杂缝网到底能不能长出来;最后用方案三做区块产能预测,给开发决策提供依据。

2.4 数据流才是真正的主角

工具选型定下来之后,数据流比模型本身更容易出问题。FracMan通常有两个出口:一个给压裂分析,输出DFN几何和裂隙力学属性;另一个给数模软件,输出粗化后的网格属性和双重介质参数。

这个环节最常遇到的坑是文件量级。一个高密度DFN模型的三角面数量可以到百万甚至千万级,普通工作站的显存和内存直接爆掉。我一般会在导出前做三步处理:剔重、删掉孤立的微小裂缝、把短小裂缝合并成等效裂缝,然后用更大的粗化网格去吸收那些对小尺度渗流影响不大的细节。这样既保证了裂缝网络的主要拓扑特征,又能让后续数模软件跑得动。

3. 实操过程:从裸数据到能算的模型

这一章没有实际操作过的人很容易觉得简单,但真正做起来会发现每一步都有讲究。我按照自己习惯的推进顺序来写。

3.1 数据准备与裂隙组划分

数据准备这一步没什么捷径,但有一个容易忽略的细节:成像测井能解释出来的裂缝,分辨率通常在毫米到厘米级,而天然裂缝的尺寸动辄几米到几十米,也就是说测井解释结果只是“冰山一角”。直接把测井解释的裂缝条数当成DFN的全部输入,一定会低估地下裂缝密度。所以实际工作中,测井统计结果通常要结合露头统计、岩心统计来修正,不能拿来就用。

裂隙组划分在FracMan里操作起来比较直观。先把所有裂缝法向投到单位球上,用等面积投影看极点云分布。如果明显聚成一团或者几团,就可以用聚类算法自动分组。分组的基本原则是,每组之间夹角大于15度、成因体系不同,就拆成两组。

分组完成后,对每组做小圆误差分析,判断数据是否集中在某条小圆带内,再决定用Fisher分布还是用Bingham分布来拟合。一组好的拟合,Fisher分布的κ值通常落在5到20之间。κ值太小说明产状太离散,大概率是合并了本不该合并的组;κ值太大又不符合地质实际,因为地下天然裂缝极少有绝对同向的,κ超过30的组大多数情况下值得怀疑。

3.2 参数定标:从P10到P32的换算,坑全在这里

密度定标是DFN建模里最折磨人的环节。测井资料给的是P10,也就是每米井段遇到的裂缝条数;岩心描述给的是P20或者P21,单位面积或单位体积上的裂缝信息;而DFN和渗透率计算真正需要的密度指标是P32,单位体积内的裂缝面积。这三个口径完全不一样,直接拿P10填进模型,相当于拿着秒表去量长度,单位都不对。

一个简单做法是先给P10乘一个标定系数换算成P32,但这个系数跟裂缝尺寸、井筒与裂缝面的夹角都有关,没有一个万能值。更可靠的做法是“正向标定”:先在FracMan里生成一版DFN,然后在模型里放一条虚拟井,统计虚拟井每米遇到多少条裂缝,拿这个统计值和实测P10对比。如果差太多,就调整密度参数,重新生成,反复迭代,直到虚拟井统计和实测数据吻合。这个过程在FracMan里做起来不算麻烦,却是验证DFN密度参数最可靠的手段,比任何经验公式都让人放心。

开度参数同样关键。没有岩心实测时,常用经验幂律关系通过裂缝尺寸估算开度,再换算成裂缝渗透率。这里必须特别提醒:裂缝渗透率和开度近似是三次方关系,开度差0.5倍,渗透率可能差8倍。这个敏感性足以颠倒一个模型的结论,所以开度取值一定要有据可依,或者在报告中明确标注为高敏感假设参数。

3.3 生成离散裂隙网络:随机种子和边界效应必须处理

参数定好之后,就可以在FracMan里生成网络了。实际操作中我习惯在目标区外面加一层“皮肤区”,目的是避免边界上的裂缝被截断得太严重。中心思想是:只在目标区内做统计和计算,边界外通过扩展网络来保证边界附近裂缝的连通性不受截断影响。

生成时的核心参数包括裂隙组、尺寸分布、密度和随机种子。随机种子这一点要专门讲一下:DFN本身是一个随机几何实现,单次生成的结果不能代表整体水平。我一般会生成10到20个实现,统计所有实现的渗透率均值和标准差。如果标准差偏大,说明当前参数体系下模型对随机性过于敏感,这时候不能急着选一个“看着像样”的实现交付,而要回头检查密度和尺寸分布是否定得合理。

生成完还要做一个质量检查:统计每个裂隙组实际生成的P32是否和目标值一致,裂缝数量级是否合理,边界上有没有畸形长裂缝,网络连通性是不是高得异常。如果连通性好到边界内外完全没有阻碍,大量裂缝连成了超大连通体,就要考虑是不是密度给大了,或者幂律尺寸指数太缓把大裂缝比例抬得太高了。

3.4 等效渗透率与网格粗化:怎么把DFN变成数模能吃的参数

把DFN变成数模能用的参数,最常规的操作是网格粗化。在FracMan里对目标区做规则六面体网格剖分,然后逐个网格计算等效渗透率张量、裂缝孔隙度,以及双重介质形状因子。

渗透率计算有两条路。一种是流量法,直接从裂缝连通关系出发,通过裂缝网络上的流量分配求解等效渗透率,计算速度快,但在低连通区域容易低估渗透率。另一种是数值流法,在每个网格内取代表性体积元,做流动模拟来求等效渗透率,结果更准确,但计算成本高。实际项目里我习惯两种方法都跑一遍,对结果做交叉验证,差异超过一个量级的网格要重点检查是不是局部连通性异常。

粗化网格尺寸的选择是一个权衡问题。网格太粗,强裂缝带会被平均掉,精细的DFN描述等于白做;太细,数模时间步长和总网格数会拖垮计算。我的经验是先用裂缝尺寸分布的中位数作为网格尺寸下限,再结合数模软件能承受的网格总数做折中。

3.5 水力压裂与油气藏数值模拟的耦合实现

DFN在水力压裂模拟里通常扮演两个角色。第一个角色是提供天然裂缝系统背景,压裂液滤失、裂缝扩展路径、复杂缝网能不能形成,都和天然裂缝的分布以及力学性质直接相关。第二个角色是提供压裂后复杂缝网的等效参数,也就是把压裂改造区的缝网融入到数模网格里。

如果做压裂机理分析,需要把DFN和应力模型耦合,判断裂缝起裂方位和扩展方向。判断过程中有一个很实用的经验指标:当水平主应力差较小(一般认为小于1.5到2MPa),且天然裂缝方位与最大主应力方向夹角处在一个有利于剪切滑移或张开的区间时,比较容易形成复杂的体积缝网。这个“有利区间”不是一个固定角度,大致上讲,夹角过小时裂缝趋向于直接张开,夹角过大时天然裂缝难以激活,真正形成复杂缝网通常需要天然裂缝和人工裂缝在某个中等夹角区间内相互沟通。

如果做油气藏数值模拟,就把DFN粗化后的双孔双渗参数写入数模网格。还需要根据水力压裂的施工数据给网格赋SRV属性:压裂改造缝网范围内,裂缝渗透率放大、形状因子调整;缝网范围外,维持天然裂缝属性。这一步是从“静态建模”走向“动态验证”的分界线。产量历史拟合时,主要通过调节缝网半径、主缝导流能力、基质-裂缝交换系数来逼近生产数据。部分项目还会把DFN面片上标定的内聚力参数直接输出给离散元软件做起裂扩展分析,这要求DFN在建模时就携带力学属性,属于工作流前期的规划问题。

4. 常见问题与排查心得

4.1 裂隙密度标定的口径混淆

这个坑我踩过不止一次。测井统计的是“可识别裂缝条数”,建模时填的却是“单位体积裂缝面积”,两者没有直接换算关系。如果拿P10糊弄着填进P32的位置,最终生成的裂缝总数可能差出一个数量级,渗透率自然也完全失真。排查方式我推荐一个正向标定,在FracMan里把DFN和虚拟井结合,反复迭代匹配实测P10。这个过程虽然多跑几次模型,但能让密度参数从“猜”变成“标定”,后面所有计算才有底气。

4.2 渗透率虚高问题

DFN生成后渗透率虚高也是一个经典问题。原因通常有两个:一是开度取得太乐观,二是尺寸分布下限取得偏大,导致大裂缝占比太高。排查思路是看裂缝数量-渗透率敏感性曲线,然后重点检查开度取值和最小尺寸截断值。如果怀疑是网络连通性异常导致的,就把每个裂隙组逐个“关掉”跑一遍渗透率,看谁的贡献最大,再针对性调整那一组的参数。

4.3 随机种子与边界效应

随机种子和边界效应通常一起讨论。DFN是随机生成结果,单次生成只是无限多种可能里的一种,拿单次结果当结论,等于拿一次抽签当统计规律。边界上的裂缝截断又会让渗透率被低估。解决方法是加皮肤区、多次实现取均值,同时在报告里把“实现的置信区间”写清楚。模型可靠性的表达方式应该是“这个区块的渗透率范围是X到Y”,而不是“这个区块的渗透率是某个值”。

4.4 压裂扩展“偏了”的排查思路

做水力压裂模拟时,模拟缝长和微地震事件展布差异很大,这种情况很常见。排查时要按顺序检查几个方向:压裂液滤失系数是不是设置得偏低,天然裂缝密度是不是偏小导致滤失被低估,最小主应力方向有没有在模型里输反。

还有一点容易被忽略:微地震事件并不只来自裂缝张开的物理体积,压裂液的滤失波及和裂缝面的剪切滑移也会产生微地震事件。如果直接拿微地震展布长度当主裂缝半长来拟合产量,就会把缝长参数标定到一个错误的量级,后期预测自然不可靠。

4.5 参数敏感性:先调谁,后调谁

历史拟合阶段如果把每个参数都调一遍,是灾难级的做法,模型会变成一个没有约束的大杂烩。我习惯有一个明确的优先级:天然裂缝密度、裂缝开度导流能力、压裂改造半径、基质渗透率、形状因子。实际项目里经常只调前两三个参数就能把产量历史拟合得相当不错,其余的保持在地质上合理的固定值。这样既省时间,又能保证最终模型参数仍然能被地质认识解释。

个人体会比较深的一点是,判断DFN模型的优劣,不在于三维图看起来多精致,而在于它能不能解释动态数据、能不能预测未见钻区域的产能。有微地震数据时,一定要用它校核一次DFN;没有微地震时,至少要拿产量数据做一次闭环匹配。一个能预测趋势、能解释邻井差异的DFN,比一个看起来复杂但和实测格格不入的精致模型有用得多。

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

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

立即咨询