黑油模型和组分模型数值模拟入门指南之合订本

更新时间:2023-07-17 12:02:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

黑油模型数值模拟入门指南

作者:gulfmoon79

整理:HenryLi

精准石油论坛

PrecisionPetroleumForum

二零零八年八月

gulfmoon79提供.版权所有

TheFollowingContentisPresentedbygulfmoon79@PrecisionPetroleumForum.

AllRightReserved

黑油模型数值模拟入门指南

作者:gulfmoon79

第一:从掌握一套商业软件入手..............................................................................................1

第二:做油藏数值模拟都需要准备什么参数..........................................................................2

第三:如何准备各部分参数......................................................................................................3

1.油藏模型...............................................................................................................................3

2.流体PVT参数.....................................................................................................................53.相渗和毛管压力曲线...........................................................................................................7

4.分区设置...............................................................................................................................8

5.模型初始化...........................................................................................................................96.生产历史拟合.....................................................................................................................10

7.如何最快完成历史拟合.....................................................................................................11

8.模型重启计算.....................................................................................................................13

9.产量预测.............................................................................................................................13

10.如何加快数模计算以及如何解决数模计算的收敛性问题?......................................15

11.结束语...............................................................................................................................18

HenryLi整理于2008-08-22

黑油模型数值模拟入门指南

Gulfmoon79

记得上大学最早学围棋时总感觉无从入手,看身边的朋友下棋时学着聂卫平从容入定,潇洒自如的样子,很是羡慕。后来从书店买来围棋入门指南,夜深人静时照着指南慢慢学如何吃子,如何做眼,什么是打劫,怎么样布局。掌握了一点基本知识以后开始找水平最差的下,输了一定不能弃擂,脸皮要厚,缠着对方接着下。赢了水平最差的人后去找中等水平的人下。这样经过一年半载,再看以前那些学着聂卫平从容入定,潇洒自如下棋的同学,心想他们原来不过如此,赶老聂差十万八千里哪。在这里也有许多人把我叫大师,专家,如果哪一天你觉得其实我的水平也很一般,那你就到了专业段位了。

市场上有不少关于油藏数值模拟的书,但好像没有类似围棋入门指南那样从基础开始一步一步介绍的书。我收到不下二十个问油藏数值模拟如何入门的问题。我尝试写一写油藏数值模拟入门指南,希望对那些刚刚开始进入油藏数值模拟领域的工作者有所帮助。

第一:从掌握一套商业软件入手

我给所有预从事油藏数值模拟领域工作的人员第一个建议是先从学一套商业数值模拟软件开始。起点越高越好,也就是说软件功能越强越庞大越好。现在在市场上流通的ECLIPSE,VIP和CMG都可以。如果先学小软件容易走弯路。有时候掌握一套小软件后再学商业软件会有心里障碍。

对于软件的学习,当然如果能参加软件培训最好。如果没有机会参加培训,这时候你就需要从软件安装时附带的练习做起。油藏数值模拟软件通常分为主模型,数模前处理和数模后处理。主模型是数模的模拟器,即计算部分。这部分是最重要的部分也是最难掌握的部分。它可以细分为黑油模拟器,组分模拟气,热采模拟器,流线法模拟器等。数模前处理是一些为主模拟器做数据准备的模块。比如准备油田的构造模型,属性模型,流体的PVT参数,岩石的相渗曲线和毛管压力参数,油田的生产数据等。数模后处理是显示模拟计算结果以及进行结果分析。

以ECLIPSE软件为例,ECLIPSE100,ECLIPSE300和FrontSim是主模拟器。ECLISPE100是对黑油模型进行计算,ECLISPE300是对组分模型和热采模拟进行计算,FrontSim是流线法模拟器。前处理模块有Flogrid,PVTi,SCAL,Schedule,VFPi等。Flogrid用于为数值模拟建立模拟模型,包括油田构造模型和属性模型;PVTi用于为模拟准备流体的PVT参数,对于黑油模型,主要是流体的属性随地层压力的变化关系表,对于组分模型是状态方程;SCAL为模型准备岩石的相渗曲线和毛管压力输入参数;Schedule处理油田的生产数据,输出ECLIPSE需要的数据格式(关键字);VFPi是生成井的垂直管流曲线表,用于模拟井筒管流。ECLIPSEOFFICE和FLOVIZ是后处理模块,进行计算曲线和三维场数据显示和分析,ECLIPSEOFFICE同时也是ECLIPSE的集成平台。

对于初学者,不但要学主模型,也需要学前后处理。对于ECLISPE的初学者,应该先从ECLISPEOFFICE学起,把ECLISPEOFFICE的安装练习做完。然后再去学Flogrid,Schedule和SCAL。PVTi主要用于组分模型,做黑油模型可以不用。

第二:做油藏数值模拟都需要准备什么参数

在照着软件提供的安装例子做练习时经常遇到的问题是:虽然一步一步按照手册的说明做,但做的时候不明白每一步在做什么,为什么要这么做。这时候的重点在于你要知道你一开始做的工作都是为数值模拟计算提供满足软件格式要求的基础参数。有了这些基础参数你才能开始进行模拟计算。这些基础参数包括以下几个部分:

1.模拟工作的基本信息:设定是进行黑油模拟,还是热采或组分模拟;模拟采用的单位制

(米制或英制);模拟模型大小(你的模型在X,Y,Z三方向的网格数);模拟模型网格类型(角点网格,矩形网格,径向网格或非结构性网格);模拟油藏的流体信息(是油,气,水三相还是油水或气水两相,还可以是油或气或水单相,有没有溶解气和挥发油等);模拟油田投入开发的时间;模拟有没有应用到一些特殊功能(局部网格加密,三次采油,端点标定,多段井等);模拟计算的解法(全隐式,隐压显饱或自适应)。

2.油藏模型:模型在X,Y,Z三方向的网格尺寸大小,每个网格的顶面深度,厚度,孔隙度,

渗透率,净厚度(或净毛比)。网格是死网格还是活网格。断层走向和断层传导率。

3.流体PVT属性:油,气,水的地面密度或重度;油,气的地层体积系数,粘度随压力变

化表;溶解油气比随压力的变化表;水的粘度,体积系数,压缩系数;岩石压缩系数。如果是组分模型,需要提供状态方程。

4.岩石属性:相对渗透率曲线和毛管压力曲线。如果是油,气,水三相,需要提供油水,油

气相对渗透率曲线和毛管压力曲线(软件会自动计算三相流动时的相对渗透率曲线);如果是油,水两相或气,水两相,只需要提供油水或气水两相相对渗透率曲线和毛管压力曲线。

5.油藏分区参数:如果所模拟的油田横向或纵向流体属性,岩性变化比较大,或者存在不同

的油水界面,这时需要对模型进行PVT分区(不同区域用不同的PVT流体参数表),岩石分区(不同区域用不同的相对渗透率曲线和毛管压力曲线)或者平衡分区(不同平衡区用不同的油水界面)。另外如果想掌握油藏不同断块的储量或采收率,可以对模型进行储量分区(不同储量区可以输出不同的储量,产量,采收率,剩余储量等)。

6.初始化计算参数:油藏模型初始化即计算油藏模型初始饱和度,压力和油气比的分布,从

而得到油藏模型的初始储量。这部分需要输入模型参考深度,参考深度处对应的初始压力,油水界面以及气水界面;油气比或饱和压力随深度的变化;如果是组分模型,需要输入组分随深度的变化。

7.输出控制参数:即要求软件在计算时输出哪些结果参数。比如要求输出模型计算油田的

油,气,水产量变化曲线;油田压力变化曲线;单井油,气,水产量变化曲线;单井井底压力变化曲线;单井含水,油气比变化曲线等。

8.生产参数:对于已开发油田,这部分的数据量非常大。包括油田每口井的井位,井轨迹,

井的射孔位置,井的生产或注入历史(油,气,水产量,注入量,井底压力,井口压力等),井的作业历史等。

第三:如何准备各部分参数

上面介绍了做油藏数值模拟所需要的参数,那么这些参数是如何得来的?又应该如何输入到数模模型中哪?下面具体介绍各部分数据的来源即处理办法。

1.油藏模型

大多数油公司现在都在采用一体化工作流程,数模工程师不再需要自己去建立油藏模型。地质学家对油田进行详细的油藏描述工作,基于地震解释数据,测井解释数据,岩芯数据以及结合地质家对油田的认识建立三维地质模型。根据数模工程师的要求,地质家对三维地质模型进行粗化处理,可以直接为数模工程师输出符合数模工程师需要的油藏模拟模型。

如果你不幸工作在一个没有很好地采用一体化工作流程的油公司或学校,那你就需要自己建立油藏模拟模型了。这时你需要用到数模软件的前处理建模模块(比如Flogrid).如果你从地质家处拿到的是三维地质模型,你的工作量还不是很大,主要是采用前处理建模模块对地质模型进行粗化,生成数值模拟模型。如果你拿到的是两维数据体,那你的工作量就要大的多。首先你要确定你必须要得到以下几方面的两维数据体:

每层的顶面深度每层的厚度每层的孔隙度分布每层的渗透率分布每层的净厚度或净毛比分布断层数据

还有更不幸的情况,你有可能工作在软硬件环境都很落后的油田(比如国内的四川油田),你根本连两维数据体也拿不到,你能拿到的只是一张一张的等值线图,或者只是单井井点数据,这时候你首先需要做的是将这些等值线图件用数值化仪数值化为两位数据体,或者根据井点数据生成等值线,然后再建三维模型。

你在开始建三维数模模型时首先需要确定你的模型应该采用什么样的网格类型。目前数值模拟软件常用的网格有正交网格,角点网格,径向网格,非结构化网格(比如PEBI)和动态网格等。你需要知道这些网格的不同之处及其优缺点:

A:正交网格有了这些数据体,你就可以在前处理建模模块中建立三维数值模拟模型。

正交网格是最常见网格,也是最早用来描述油藏的网格类型,目前仍然被广泛应用。由于其计算速度快的特点,一些大型油气田经常采用此网格类型.有研究认为正交网格计算结果比其他网格精确.

正交网格的数学描述也比较简单。以ECLISPE为例,TOPS描述油藏顶部深度,DZ描述油藏每层厚度,DX描述每个网格X方向长度,DY描述每个网格Y方向长度。

B:角点网格

角点网格的特点是网格的走向可以延着断层线,边界线或尖灭线,也就是说网格可以是扭曲的。这样角点网格克服了正交网格的不灵活性,可以用来方便地模拟断层,边界,尖灭。但由于角点网格网格之间不正交,这种不正交一方面给传导率计算带来难度,增加模拟计算时间,另一方面也会对结果的精度有影响。

角点网格的数学模型很复杂,必须由前处理软件来生成。以ECLISPE为例,COORD用来描述模型网格的顶底坐标线(X,Y,Z),ZCORN描述每个网格八个角点的深度。

C:径向网格

径向网格比较简单,主要用于单井模拟。径向网格可以更合理的描述井附近流体的径向流动。

D:非结构网格(PEBI网格)

PEBI网格源于1908年就产生的Voronoi网格。起主要特点是灵活而且正交.PEBI网格体系提供了方便的方法来建立混合网格,比如模型整体采用正交网格,而对断层,井,边界等采用径向,六边型或其他网格。网格间的传达率可以自动计算.PEBI网格的灵活性对模拟直井或水平井的锥进问题非常有用。另外PEBI网格可以用来精确模拟试井问题。还有PEBI网格降低了网格走向对结果的影响。PEBI网格的缺点是矩阵比其他网格要复杂的多,需要更加有效的解法。

E:动态网格

动态网格是指网格可以随时间而改变.通常用于动态网格加密或动态粗化。比如说在井生产时采用局部加密而当井关闭时则采用正常网格。

有时候建立全油田整体模型后,对于压力及饱和度变化快的区域,常常需要进行局部网格加密。采用局部加密可以准确的描述井附近流体的细微变化。网格局部网格可以是正交网格,或是径向网格。Aziz认为(JPT1993年)在正交网格中进行正交网格局部加密,有时并不会对结果有改善。他建议采用混合网格,及在正交网格内采用径向网格加密,这样可以精确地模拟含水和气油比的变化规律。

知道了这几种网格类型,那么在你建立模型时应该选择什么网格类型哪?你在建立网格时又应该注意些什么哪?

A:在条件许可情况下尽量采用正交网格,而且尽量使网格保持均匀.尽量避免大网格直接连接小网格,这样会带来严重的收敛问题。如果你的模型很大,最好采用正交网格。

B:角点网格已经非常成熟,但在建立角点网格时不要过分扭曲网格,要尽量保持模型的正交性。如果你的边界与你的主断层相对平行,那么建立的网格系统正交性会比较好。你在建立网格后可以用前处理软件计算模型正交性。

C:目前PEBI网格在解法上还不成熟,应避免使用。但相信在五年内它会成为主导网格。

D:使用局部网格加密要小心,最小的网格不能小于井半径。而且局部网格加密部分要覆盖饱和度变化大的网格。如果是水平井,局部网格加密要覆盖水平段。

E:网格越多模拟结果就越精确的概念是不对的。可以建立单井模型研究多大网格尺寸足够描述地质上的非均质性。

F:网格走向会影响计算结果。在天然裂缝油气藏,要使网格走向与主裂缝方向一致。

G:DX/DY应接近于1,不要大于3。

H:井之间应有不少于三个网格。

I:模型的属性分布也很重要。尤其是数模人员自己插值,属性分布经常不合理。我见过许多模型,井只是穿过单个的网格,井穿过网格的附近却全是死网格,这时模型计算根本不能收敛。数模人员如果需要自己建模,最好要找地质人员参谋,或者自己有很好的地质背景。

初学者还有几个基本概念需要掌握:

A:网格的I,J,K

在做模拟时你需要知道每个网格的位置。模型每个网格的位置用网格的I,J,K表示。在ECLISPE软件中,左上角的第一个网格为(1,1,1),在X方向的第二个网格为(2,1,1),在Y方向的第二个网格为(1,2,1),在Z方向的第二个网格为(1,1,2)。其他类推。

B:死网格

死网格是模型中不参予流动计算的网格。通常把模型中的泥岩设为死网格。模型自动会把孔隙度和净厚度为0的网格设为死网格。如果你的油藏水体很大,你也不需要把水体都建在模型中。你可以把水体部分设为死网格,然后用解析水体模拟油藏水体的贡献。

C:在数值模拟模型中如何正确应用有效孔隙度,净毛比?要明确区分定义.

总孔隙度:孔隙体积占总体积的百分数。有效孔隙度:连通孔隙体积占总体积的百分数。毛有效孔隙度:平均有效孔隙度。(泥质含量截至值)净有效孔隙度:产层平均有效孔隙度(渗透率截至值)净毛比:净厚度(渗透率截至值)与总厚度之比。

数值模拟模型中要用净有效孔隙度和净毛比,这样模型的体积计算是正确的。

2.流体PVT参数

我们前面讲过,数值模拟模型包括黑油模型,组分模型和热采模型。对不同的模型类型需要用不同的模拟器。这些模型类型的区别主要就是在流体的PVT描述方面采用的方法不同。

对黑油模型,流体的PVT属性描述方法是你直接给模型提供油,气,水PVT属性表(油气体积系数,粘度,压缩系数随压力的变化;溶解油气比随压力的变化;水在参考压力下的体积系数,压缩系数,粘度;岩石在参考压力下的压缩系数)。模型在计算过程中对每一个网格,根据当前时间步的网格压力来查你提供的表得到每个网格当前的PVT属性。

组分模型要复杂的多。你不是提供PVT表,而是提供状态方程(EOS)参数(每个组分的临界温度,临界压力,临界Z因子,分子量,偏心因子等),模型通过闪蒸计算来得到每个网格

当前的油气PVT属性(粘度,体积系数,压缩系数,溶解油气比)。另外水和岩石的属性还需要单独提供。

黑油模型和组分模型都假定油藏的温度在开采过程中是常数,不随时间变化。如果油藏温度发生了变化,就需要用热采模型。对热采模型,最重要的流体属性变化是流体粘度随温度的变化,即大家常说的粘温曲线。

那么你的模型应该采用哪种模型类型?这一方面取决于你拿到的PVT实验报告,如果你的油藏是凝析气藏,挥发油藏,即你的油藏流体组分在生产过程中会发生明显变化,那你应该用组分模型。另外如果你的油藏将来会考虑注气混相驱,那你也应该用组分模型。

重油热采用热采模型,其他大多数油气藏都可以用黑油模型。本部分只介绍黑油模型的PVT属性,对组分和热采模型,希望以后有机会再介绍。

对于黑油模型,在PVT部分需要提供的参数包括:

油,气,水的地面密度或重度。油的体积系数,粘度,溶解油气比随压力的变化。气的体积系数,粘度随压力的变化。参考压力下水的粘度,压缩系数,体积系数。参考压力下岩石的压缩系数。

如果你的油藏在不同部位流体属性不同,那你需要提供多个PVT表,每个表对应于模型的某一部分。在后面的分区部分我还要做详细介绍。

对于黑油模型,根据不同的流体属性,可以分为以下四种类型:

死油油藏:油藏在整个开发阶段压力一直保持在泡点压力以上,在油藏中不会发生脱气。生产油气比是常数(脱气发生在井筒或地面)。活油油藏:油藏在开发阶段压力会降到泡点压力以下,在油藏中发生脱气,溶解油气比降低,生产油气比增加(自由气会生产出来)。干气藏:气藏压力在生产过程中不会穿过露点线,气藏中没有挥发油产生。湿气藏:气藏压力在生产过程中会穿过露点线,气藏中产生挥发油。

对不同的黑油流体,PVT描述方法也不同,比如对死油油藏,溶解油气比(RS)是常数,不随压力变化而变化。而对活油油藏,RS随压力降低而降低(泡点压力以下)。

在我平时回答大家的问题时我发现许对人下面油的PVT定义不理解或理解的不对:

溶解油气比泡点压力体积系数粘度

0.2754001.131.17/

0.93820001.1621.11/

1.536001.2430.95

40001.2380.95

44001.2330.95

48001.2280.95

52001.2230.95

56001.2180.95/

1.7244001.2540.94

48001.2660.92

52001.260.92

56001.250.92/

许多人问这个表里面为什么有这么多泡点压力,究竟那个是油藏的泡点压力?油藏应该只有一个泡点压力,怎么会这么多?为什么有多条未饱和压力曲线?

其实这比较好理解,油藏开发过程类似于实验室的差异分离实验,你把这个表用差异分离实验来理解。在开发过程中,当压力低于泡点压力后,有溶解气释放出来,RS降低,油藏由未饱和状态进入饱和状态。这时在饱和状态下油气分离(相当于差异分离实验中将气派出),此时的油应该理解为与原始的油已经不同,如果此时发生压力增加,由于没有气可以溶进去(油气已经分离),油会进入此时(RS)下的未饱和状态。以上表为例,如果油藏的泡点压力为4400,对应的RS为1.72.当压力由5600下降到4400过程中,油藏在未饱和状态,没有气的析出,RS不变。当压力低于4400以后,有气体析出,RS降低,假设当RS降到1.5时压力增加,由于此时油气已经分离,没有气能够溶解到油中,在RS=1.5出的油的泡点压力为3600,PVT变化会沿着RS=1.5的曲线变化。

那么在这个表中究竟那个是我们通常意义上的泡点压力?是不是最后一个?答案是不是。ECLIPSE软件泡点压力在初始化部分用RSVD或RBVD定义。(各个软件不同)。

另外在提供上面这个表时注意压力和溶解油气比要覆盖整个油藏压力和溶解油气比的变化过程,即不要让软件来进行外插,否则模型计算会不收敛。

另外一个重要的问题是在你为模型提供PVT参数时,应该如何用实验室的报告。你不能直接用实验室的差异分离实验数据,你应该对差异分离实验体积系数数据进行分离器校正。校正方程为:

Bo=Bod*(Bofb/Bodb)

Bo:模型体积系数

Bod:差异分离实验的体积系数

Bofb:分离器实验的体积系数

Bodb:差异分离实验泡点压力下的体积系数

溶解油气比校正方程:

Rs=Rsfb-(Rsdb-Rsd)Bofb/Bodb

Rsfb:分离器溶解油气比

Rsdb:差异分离实验泡点压力下的溶解油气比

Rsd:差异分离实验溶解油气比

3.相渗和毛管压力曲线

这部分你需要提供油水,油气相对渗透率和毛管压力曲线。

实验室有时为你提供的是压汞曲线,你需要用界面张力计算出油水,油气相对渗透率和毛管压力曲线。比如毛管压力转换方程为:

(Pc)res=(Qres/Qlab)×(Pc)lab

(Pc)res:油藏条件下的毛管压力。

Qres:油藏流体的界面张力。

Qlab:试验室流体界面张力。

(Pc)lab:试验室毛管压力。

通常你提供的都是两相的相对渗透率曲线。油水相对渗透率曲线是油水两相流动时的相对渗透率,油气相对渗透率是油气两相在束缚水条件下的相对渗透率。实验室一般不测量油,气,水三相流动时的相对渗透率曲线,你的模型中如果存在三相流动,软件会根据你定义的STONE1或STONE2方法计算三相流动时的相对渗透率。

你提供的油水,油气相对渗透率和毛管压力曲线在模型中起两方面作用。首先模型应用你提供的油水,油气相对渗透率和毛管压力曲线进行初始化,计算模型初始的油,水,气饱和度和压力分布。我将在模型初始化部分详细介绍。另一方面是应用于流动计算。

在你提供的油水,油气两相相对渗透率曲线时要保证两条曲线的端点值要匹配。在你提供的曲线中有八个端点值,他们是:

1.束缚水饱和度:最小含水饱和度

2.临界含水饱和度:水开始流动是的含水饱和度

3.最大含水饱和度:曲线中含水饱和度的最大值

4.束缚气饱和度:最小含气饱和度

5.临界含气饱和度:水开始流动是的含气饱和度

6.最大含气饱和度:曲线中含气饱和度的最大值

7.油水两相残余油饱和度:油水两相曲线中的含油饱和度最小值

8.油气两相残余油饱和度:油气两相曲线中的含油饱和度最小值

在你提供的表中,要满足以下端点值一致性:

束缚水饱和度处对应的水相相对渗透率为0最大含水饱和度对应的油相相对渗透率为0束缚气饱和度处对应的气相相对渗透率为0最大含气饱和度对应的油相相对渗透率为0束缚水饱和度和束缚气饱和度对应的油相相对渗透率相等最大含气饱和度应该等于1-束缚水饱和度束缚气饱和度通常为0

模型中应用的通常是驱替毛管压力和相对渗透率曲线,模型初始化肯定需要用驱替曲线。如果你还想用自吸曲线,你可以用软件的溶湿滞后功能。

如果你有毛管压力的J函数曲线,在模型中你也可以用J函数,这样你的毛管压力大小与模型的地质属性分布(孔隙度,渗透率)有关。

当然如果你的模型不同区域岩性不同,你可以在不同岩性区赋不同的相对渗透率和毛管压力曲线。这部分在分区部分我会详细介绍。

4.分区设置

前面我们说了,你的油藏不同部位可能有不同的流体属性,比如不同断块的油密度,粘度不同,或你的油藏岩性在纵向或垂向有变化,那你就需要在你的模型中设置流体或岩性分区。通常你可以在你的模型中根据需要设置以下几种分区:

储量分区:如果你想输出模型不同部位的储量,你需要设置储量分区流体分区:如果你的模型不同部位流体PVT属性不同,你需要设置流体分区岩性分区:如果你的模型不同部位岩性不同,需要用不同的相渗曲线和毛管压力曲线,你需要设置岩性分区。平衡区分区:如果你的模型有不同的油水或油气界面,你需要设平衡区分区。

那么软件如何将你的模型分区与你的属性数据关联起来哪?我们假设你的模型有东西两个断块,两断块被封闭断层分割。东断块的油比西断块的油密度重,在你提供油藏流体PVT表时你需要提供两个表,一个是密度重的PVT表,另一个是密度轻的PVT表。在你的分区部分将东断块的流体分区值设为1,将西断块流体分区值设为2。软件在计算东断块的流体流动时将自动用第一个PVT表(密度重的PVT表),在计算西断块流体流动时用第二个PVT表(密度轻的PVT表)。

5.模型初始化

模型初始化就是建立在初始状态(油田还未投入开发)下油田压力和饱和度的分布,原始溶解油气比分布,以及初始泡点压力或露点压力分布。这部分你需要提供的参数包括:

参考点的深度在此参考点对应的压力油水界面油气界面油水界面和油气界面处的毛管压力饱和压力(泡点压力或露点压力)随深度变化或溶解油气比随深度变化

参考点深度和对应压力你可以由RFT,DST,MDT测试结果得到。油气界面和油水界面通常由地质人员提供,数据来源于测井分析。油水界面和油气界面处的毛管压力是指你提供的界面是自由水面还是油水界面,如果是自由水面,界面处毛管压力为0。如果你的油藏有多个油水或油气界面,或多个压力系统,则需要进行平衡区分区。饱和压力(泡点压力或露点压力)随深度变化或溶解油气比随深度变化由流体实验得到。

软件初始化计算的步骤是这样的:

(1)计算过渡带高度。由油水界面和油气界面深度以及相渗曲线提供的最大毛管压力计

算。

(2)计算每一个网格初始的油相,水相,气相压力分布。首先将在流体属性部分提供的

油,气,水地面密度折算为地下密度。基于参考点的深度和对应压力以及油水界

面,油气界面深度,过渡带高度,结合油,气,水地下密度计算其他深度处的油,

气,水相压力。

(3)由每个网格的油,气,水压力计算油水和油气毛管压力。

(4)计算饱和度分布。这部分计算主要用你提供的相渗曲线端点值。将油水界面以下的

含水饱和度设为你在油水相渗曲线中提供的最大含水饱和度,通常为1。将油气界

面以上的含气饱和度设为你提供的油气相渗曲线的最大值。油气界面以上的含水饱

和度为束缚水饱和度。在油区的含油饱和度为1减束缚水饱和度。在过渡带的含油

和含水饱和度由你提供的毛管压力曲线得到。

(5)计算初始溶解油气比或泡点压力的分布。

初始化计算结束后你就应该已经可以得到你的油田储量了。你的油储量应该等于模型每个网格的孔隙体积乘以含油饱和度之和。如果你想与地质模型的储量进行拟合,你首先需要拟合孔隙体积(DX*DY*DZ*PORO*NTG),然后拟合含油饱和度的分布。

有的人喜欢直接把地质模型的含水饱和度分布赋予数模模型,这样当然可以,但你需要进行端点标定来保证模型初始的稳定性,(关于如何进行端点标定,我以后看会不会有时间专门写)要保证模型初始是稳定的,即在初始状态下流体不发生流动。检查模型是否初始平衡的办法很简单,让模型在没有任何井的情况下计算10年,检查在这十年中模型的压力和饱和度是否发生变化。

6.生产历史拟合

历史拟合的过程实际上是验证模型的过程。也就是说验证你上面建的模型能不能重现油田的生产过程。你需要对你的模型进行一系列的调整使其计算结果与你的实际生产数据(产量,压力,饱和度等)相符合。这个调整过程就是历史拟合。这就好比天气预报一样。假如你建立了一个大气流动模型来预测未来的天气情况,你需要先用你的大气模型算一算过去的天气变化,看能不能算的对,通过对模型进行怎么样的调整你才能先把过去的天气算对,然后你才有信心用此模型来预测未来天气。记住你做数模的目的也是为了预测未来。其实算命先生很懂得此道理。你去算命的化他或她先不会算你的未来,而是先告诉你过去你或你家人发生过什么,如果他或她说的碰巧是对的,那你对他或她对你未来的预测也就会深信不疑。我相信我们的天气预报和数模对未来的预测绝对比算命先生的预测成功率要高的多,但离完全可靠还有很大差距。(另外你需要记住的是你的历史拟合结果不是唯一的,对不同参数的调整可以达到同样的历史拟合结果。)

生产历史拟合需要进行的数据准备工作量很大,你需要数模前处理软件来帮你完成这部分工作(比如ECLIPSE中的SCHEDULE模块)。在这部分你需要准备以下数据:

生产井和注水井的井口坐标生产井和注水井的井轨迹生产井和注水井的完井数据(井半径,射孔深度,污染系数,D因子等)生产井的生产历史(油,气,水产量,井口压力,井底压力)注入井的注入历史(气,水注入量,井口压力,井底压力)修井数据(压裂,酸化等)井的垂直管流表(用于计算井筒内的流动)

然后前处理模块会帮你生成数模软件所需要的数据格式。有几个问题你需要清楚:

(1)产量数据是井口产量(组分模型不同,以后单独讲)

(2)产量数据是日产量或月,季,年平均产量,而不是对应于某一时间步时的产量。

(3)如果用了时率的化一定要小心,要保证累积产量是正确的。累积产量很重要,你在拟合时一定要拟合累积产量。因为只有累积产量正确,才能保证物质平衡正确。产量拟合好并不能保证累积产量也拟合好。

(4)在拟合井底压力时你需要知道你的井底压力对应的深度。在ECLISPE软件中你可以在WELSPECS中提供井底压力(WBHP)对应的深度,在缺省情况下井底压力对应的深度是井最上面的射孔网格中部深度。

(5)垂直管流表对应的深度最好接近井的参考深度。

(6)在ECLIPSED软件中静压(WBP,WBP4,WBP5,WBP9)是井连接网格和附近网格的井连接系数(CCF)的加权平均,如果你想把孔隙体积加权平均也考虑进去,你可以用WPAVE来修改。

(7)??

(8)所谓井连接系数(CCF)就是井与所在网格间的传导率。这个值对产量影响很大。在前处理过程中可以选择是否输出此值(在ECLIPSE软件中此值在COMPDAT的第八项),如果CCF没有提供,运行模型时会计算,如果提供了CCF,模型直接用CCF来计算产量。许多人遇到过在历史拟合时虽然修改了渗透率,但对产量影响很小,这是因为模型用了你提供的CCF来计算产量。此时你可以缺省CCF或用前处理软件重新计算修改后的CCF.

(9)另外一个非常重要的概念是生产指数。数模模型通常用压力平衡半径(PEACEMAN半径)来替代实际的驱替半径,这样数模计算结果与实际生产情况会有误差。所以在历史拟合时首先应该调整生产指数(在ECLIPSE中用WPIMULT)来做初步拟合。WPIMULT=(WBP9-WBHP)/(WBP-WBHP).

(10)如果井由生产井转为注入井,可以先把井关掉然后直接定义井的注入控制(WCONINJH)

(11)如果井进行了补孔或重新射孔,可以重新定义井的射孔信息(COMPDAT)

(12)如果井进行了作业,可以重新定义井的射孔信息(COMPDAT或WPIMULT)

7.如何最快完成历史拟合

A:首先要知道模型中哪些参数是不够精确,哪些是比较精确的.

不确定性参数:渗透率,传导率,孔隙体积,垂向水平渗透率之比,相对渗透率曲线,水体.比较精确参数:孔隙度,地层厚度,净厚度,构造,流体属性,岩石压缩性,毛管力,参考压力,原始流

体界面.

B:模型局部影响参数和整体影响参数

局部影响参数:空隙度,渗透率,厚度,传导率,井生产指数整体影响参数:饱和度,参考压力,垂向水平渗透率之比,流体,岩石压缩系数,相对渗

透率,毛管压力,油水,油气界面。

C:实测数据误差分析

对油田来说,产油量的测量是精确而且系统的。含水的测量是稳定可靠的,但产气量的测量是不够精确的。对气田而言,产气量的测量是精确的。注水量或注气量的测量是不够精确的,一方面是由于测量误差,另一方面是由于一些不可测量因素,比如流体在套管或断层的漏失。试井结果是可靠的,尤其是压力恢复结果。RFT和PLT的测量是可靠的,井口压力的测量也是可靠的。储量拟合:软件一体化对储量拟合带来巨大方便,许多油公司地质模型与油藏模型采用统

一软件平台,油藏工程师主要只需要检查在由地质模型通过网格合并生成油藏模型过程中造成的计算误差。通常孔隙度的合并计算是准确的,但渗透率的合并计算要复杂的多,采用流动计算合并渗透率比较精确。净毛比也是要考虑的主要因数,请参照第N问题关于如何在模型中处理净毛比与孔隙度部分。关于网格合并,请参照第N问题。影响数模模型储量的因素有:孔隙体积,净毛比,毛管压力,相对渗透率曲线端点值,油水界面,气油界面,油水界面和气油界面处的毛管压力(计算自由水面)。D:如何进行历史拟合

测井曲线拟合:数模前处理软件(比如Schlumberger的Flogrid)可以基于初始化后的模型

对每口井生成人工测井曲线,通过拟合人工生成测井曲线与实际测井曲线,一方面可以检查地质模型建立以及网格合并过程中可能存在的问题,另一方面可以检查数模模型中输入井的测量深度与垂直深度是否正确。数模模型中井的垂直深度应该是TVDSS,即减去补心后的深度。错误的深度会导致射孔位置发生偏差。

RFT与PLT拟合:勘探井和重点井通常都有RFT与PLT测量数据,这部分拟合可以帮助

认识储层垂向非均质性,对勘探井RFT数据的拟合可以帮助检查数模模型压力初始化是否正确。

全油田压力拟合:定油藏亏空拟合压力,软件可以通过用户输入的油,气,水地面产量计

算油藏亏空。要检查油藏亏空是否正确,是否存在井产不够或注不够的情况,否则需要调整生产或注入指数。检查全油田压力水平,调整孔隙体积或水体来拟合全油田压力。

单井压力拟合:全油田压力拟合后拟合单井压力,可以通过调整井附近孔隙体积或水体来实现拟合。含水拟合:定产油量拟合含水。油水粘度比,相对渗透率,渗透率,网格分布和网格大小

都会影响含水。油水粘度比和相对渗透率曲线会影响含水上升规律,相对渗透率端点值,渗透率,网格分布和网格大小会影响见水时间。

井底压力拟合:调整PI,表皮系数,KH。井口压力拟合:检查VFP表,VFP表对气井会很精确,但油井的VFP会误差很大。所以

井口压力拟合应针对气井。

E:历史拟合经验:

模型计算压力太大:检查孔隙体积,减小水体,检查储量,气顶大小,参考面压力与深度

是否对应。

见水时间过早:增加临界含水饱和度,降低水平渗透率,检查水体,检查射孔位置以及油水界面,检查隔层,断层传导率,检查垂向渗透率,网格方向即网格大小影响。含水上升太快:油水粘度比,相对渗透率曲线,水体大小。井底压力太大:增加表皮,减小KH,CCF,减小PI,减小传导率。

8.模型重启计算

在你对模型历史拟合比较满意以后你就可以开始进行模型预测计算。在你进行预测的时候你当然不想把历史阶段再重新计算一遍,那样太浪费计算时间。你肯定希望从历史拟合结束时间进行预测计算。重启计算就是模型记录历史拟合结束时模型场数据的分布(包括模型饱和度,压力,油气比,井的控制及流量等),然后从此时间往后进行预测计算。

要进行重启计算,首先在你的历史拟合模型中要要求输出重启文件(例如ECLIPSE软件用RPTRST控制重启文件的输出),然后应用此文件进行预测计算。重启计算并不是只可以从历史拟合结束开始,你可以从任何报告步开始进行重启计算。这样你可以分阶段进行历史拟合。

9.产量预测

历史拟合的目的是为了用于预测以制定未来开发或调整方案。

在数值模拟软件中,对于产油井或产气井,你可以采用以下几种产量控制方式:

(1)定油量生产

(2)定水量生产

(3)定气量生产

(4)定液量生产

(5)定油藏产液量

(6)定井底压力

(7)定井口压力

(8)受井组产量控制

这里产量设定是最大值,压力设定是最小值。而且你提供的每一个值都会起控制作用。还是以ECLIPSE软件为例。关键字WCONPROD用来设定井的产量控制。比如:

WCONPROD

A1OPENORAT1002003*300/

在这个例子中,设定了三个控制值,及最大产油量100,最大产水量200和最低压力300。井A1初始定油量(ORAT)生产,产油量为100,在井的生产过程中,产水量可能在上升,井底压力在下降,当井底压力下降到300时,压力不再下降,井将转为定井底压力300生产。这时产水量仍然可能上升,油量下降,当产水量达到200时,井转为受产水量控制。压力可能会上升,油量下降。

对于注水井或注气井,你可以采用以下几种注入控制方式:

(1)定地面注入量

(2)定油藏注入量

(3)井井底压力

(4)定进口压力

(5)受井组注入控制

这里注入量和压力的设定都是最大值。与生产控制相类似,所有设定项都会起控制作用。对于生产井,可以设定以下经济极限控制。

(1)最小产油量

(2)最小产气量

(3)最大含水

(4)最大油气比

(5)最大气水比

当井的生产违背了经济极限控制的化,你可以要求:

(1)关井

(2)封层

(3)修井

(4)开新井

(5)测试

(6)气举

(7)减产

(8)换油管

对于井组或油田,你可以采用以下生产控制方式:

(1)定井组或油田油量生产

(2)定井组或油田水量生产

(3)定井组或油田气量生产

(4)定井组或油田液量生产

(5)定井组或油田油藏产液量

在进行井组或油田生产控制时,单井的产量可以有以下几种操作方式:

(1)根据每口井的产能进行分配

(2)为每口井提供参考产量,井组根据井的参考产量值进行匹配

(3)优先设定,优先值大的井先生产,当这些井不能满足井组产量,再生产优先值低的

井。

(4)自动钻新井,当井不能满足井组产量,自动钻新井。

对于井组生产也可以设定井组的经济极限控制:

(1)井组最小产油量

(2)井组最小产气量

(3)最大含水

(4)最大油气比

(5)最大气水比

当井组的生产违背了经济极限控制的化,你同样可以要求:

(1)关井

(2)封层

(3)修井

(4)开新井

(5)测试

(6)气举

(7)减产

(8)换油管

井组的注入方式可以有以下几种控制方式:

(1)地面注气量或注水量

(2)油藏注气量或注水量

(3)地面注采比

(4)油藏注采比

如果你想保持油藏压力水平,你还可以设定油藏压力水平,这时模型可以自动调整:

(1)井组油藏产量

(2)井组油藏注水量

(3)井组油藏注气量

(4)井组地面注水量

(5)井组地面注气量

10.如何加快数模计算以及如何解决数模计算的收敛性问题?

在了解收敛性之前,应该首先了解几个基本概念:

(1)报告步:一个数模作业包括多个报告步,报告步是用户设置要求多长时间输出运行报

告,比如可以每个月,每季度或每年输出运行报告,运行报告包括产量报告和动态场

(重启)报告。

(2)时间步:一个报告步包括多个时间步,时间步是软件自动设置,即通过多个时间步的计

算来达到下一个报告步,以ECLIPSE为例,假如报告步为一个月,在缺省条件下,

ECLISPE第一个时间步取一天,然后以三倍增加,即第二个时间步取三天,然后取九

天,下一个时间步是17天来达到30天的报告步,然后会以每30天的时间步来计算。

时间步可以通过TUNING关键字来修改。

(3)非线形迭代:一个时间步包括多次非线形迭代。在缺省情况下,ECLIPSE如果通过12

次的非线形迭代没有收敛,ECLIPSE将对时间步减小10倍。比如下一个时间步应该是

30天,如果通过12次的迭代计算不能达到收敛,ECLIPSE将把时间步缩短为3天。下

一个时间步将以1.25倍增长,即3.75天,4.68天,。。。。如果在计算过程中经常发

生时间步的截断,计算将很慢。

(4)线形迭代:一个非线形迭代包括多次线形迭代。线形迭代是解矩阵。

在ECLIPSE输出报告PRT文件中可以找到时间步,迭代次数的信息,比如:STEP10TIME=100.00DAYS(+10.0DAYSREPT5ITS)(1-FEB-2008)

“STEP10”:说明这是第10个时间步。

“TIME=100.00DAYS”:说明现在模拟到第100天。

“+10.0DAYS”:说明这个时间步是10天。

“REPT":说明为什么选10天做为时间步,REPT是指由于到了下一个报告步。

“5ITS":说明此10天时间步需要5次非线形迭代。

”(1-FEB-2008)“:现在的模拟时间。

模拟计算的时间取决于时间步的大小,如果模型没有发生时间步的截断而且能保持长的时间步,那表明该模型没有收敛性问题,反之如果经常发生时间步截断,那模型计算将很慢,收敛性差。时间步的大小主要取决于非线形迭代次数。如果模型只用一次非线形迭代计算就可以收敛,那表明模型很容易收敛,如果需要2到3次,模型较易收敛,如果需要4到9次,那模型不易收敛,大于10次的化模型可能有问题,如果大于12次,时间步将截断。

模型不收敛的原因很多,网格参数,属性参数,流体PVT参数,岩石相渗曲线,毛管压力曲线,相渗曲线端点标定,初始化,井轨迹,垂直管流表都会造成模型不收敛,下面分别介绍各部分如何造成不收敛及如何解决。

(1)网格部分

网格正交性差和网格尺寸相差太大是导致不收敛的主要原因之一。正交性差会给矩阵求解带来困难,而网格尺寸相差大会导致孔隙体积相差很大,大孔隙体积流到小孔隙体积常会造成不收敛。

解决办法:

网格正交性差通常是在建角点网格时为描述断层或裂缝的走向而造成的。在此情况

下,最好能使边界与主断层或裂缝走向平行,这样一方面网格可以很好地描述断层

或裂缝,另一方面正交性也很好。

在平面上最好让网格大小能够较均匀,在没有井的地方网格可以很大,但最好能够

从大到小均匀过渡。纵向上有的层厚,有的薄,最好把厚层能再细分。在检查模型

时应该每层每层都在三维显示中检查。

(2)属性参数

不合理的插值计算会导致属性分布很差,如果是从地质模型粗化为数模模型,通常问题不大,只是有时候数模人员自己插值时会有问题。

解决办法:有可能尽量用地质模型的数据,自己插值时可以加一些控制点使属性合理分布。X,Y方向的渗透率最好相等或级差不大。在井连通网格的Z方向渗透率不要设为0,如果想控制垂向流动,可给一个很小的值。

(3)流体PVT参数径向局部网格加密时里面最小的网格不要太小。在ECLIPSE里用MINPV关键字可以把小于设定孔隙体积的网格设为死网格,这样通常会有用。

流体PVT参数会有两种可能的问题,一是数据不合理导致了负总压缩系数,二是压力或气油比范围给的不够导致模型对PVT参数进行了外插。

解决办法:检查PRT文件中的WARNING信息,如果在油藏压力范围内有负总压缩系数的警告,应该修改PVT参数,否则的化会有收敛性问题。如果负总压缩系数是在油藏压力范围之外,可以忽略该警告。此部分的修改主要可以小规模修改油和气的FVF和RS。

(4)岩石相渗曲线和毛管压力曲线

通常的问题有:

饱和度和相对渗透率的数据位数过多。

饱和度值太接近,导致相渗曲线的倾角变化很大。

饱和度有很小变化但相对渗透率发生了很大变化。

解决办法:

饱和度和相对渗透率最多给两位小数就够了。检查相渗曲线的导数(可以应用ECLIPSE中的SCAL模块),导数要光滑。临界饱和度和束缚饱和度设为不同的值。

在应用端点标定时,有时标定完后的相渗曲线倾角很大,标定后的毛管了很大。

解决办法:

在三维显示中检查标定完的PCW,可以给PCW一个最大值来控制毛管压力。输出每个网格标定后的相渗曲线进行检查。

初始化最容易发生的问题是在初始时模型不稳定,流体在初始条件下就会发生流动,这也会导致模型不收敛。造成模型初始不稳定的主要有:(5)端点标定(6)初始化

手工通过网格饱和度和压力值。

拟合初始含水饱和度。

解决办法:

尽量不要直接为网格赋压力和饱和度值,尽量由模型通过油水界面及参考压力来进行初始

化计算。

要想拟合地质提供的初始含水饱和度分布,应该进行毛管压力的端点标定,这样毛管压力

会稳住每个网格的水,在初始条件下不会流动。

可以通过让模型在没有任何井的情况下计算十年来检查初始条件下模型是否稳定,如果10

年的计算模型压力和饱和度都由说明变化,说明模型初始是稳定的。

(7)井轨迹

在进行井处理时井可能以之字型在网格中窜过,有可能发生井的实际窜过方向与模型关键字定义的方向不符,这也会导致不收敛。

解决办法:

在三维显示中检查井轨迹。

如果井已经关掉,在模拟时不要给零产量,要用关键字把井关掉。

检查井射孔,井不要射在孤立的网格上。

(8)垂直管流曲线

有了垂直管流曲线很容易导致模型不收敛,这有两种可能:

曲线有交叉。曲线发生了外插。

解决办法:

用前处理软件(ECLIPSE中的VFPi)检查曲线。在ECLIPSE中加EXTRAPMS关键字可以要求输出如果发生VFP插值后的警告信息。曲线应该覆盖所有井口压力,含水,油气比及产量。

11.结束语

黑油模型数值模拟入门指南先写到这里,其实还有许多没有写道。以后有时间可以再补充。下一步计划写一写组分模型入门指南。组分比黑油要复杂的多。当然关键是状态方程,希望可以早日动手。

本文来源:https://www.bwwdw.com/article/lva1.html

Top