CMG软件组分模型操作手册.docx

上传人:b****7 文档编号:8707643 上传时间:2023-02-01 格式:DOCX 页数:206 大小:140.27KB
下载 相关 举报
CMG软件组分模型操作手册.docx_第1页
第1页 / 共206页
CMG软件组分模型操作手册.docx_第2页
第2页 / 共206页
CMG软件组分模型操作手册.docx_第3页
第3页 / 共206页
CMG软件组分模型操作手册.docx_第4页
第4页 / 共206页
CMG软件组分模型操作手册.docx_第5页
第5页 / 共206页
点击查看更多>>
下载资源
资源描述

CMG软件组分模型操作手册.docx

《CMG软件组分模型操作手册.docx》由会员分享,可在线阅读,更多相关《CMG软件组分模型操作手册.docx(206页珍藏版)》请在冰豆网上搜索。

CMG软件组分模型操作手册.docx

CMG软件组分模型操作手册

 

组分模型用户指南和相态平衡计算

 

 

组分模型GEM使用指南

 

前言

GEM是CMG的高级通用状态方程组分模拟器,它包括诸如状态方程、双孔、CO2、混相气、挥发油、凝析气、水平井、井的管理、复杂相态等等选择。

GEM用来模拟一次和二、三次采油过程的油藏流体组分效果。

该用户手册介绍了注气机理、方程和求解技术。

该手册面向油藏工程师,帮助设计二、三次采油的注气过程,它需要油藏工程的一些基本知识,也需要对数值模拟有一些了解。

GEM概述

在提高采收率项目,包括注气或注溶解剂中,其过程可以混相或者非混相,它取决于入流体和油藏油的组成,还取决于油藏压力和温度。

例如,富气驱、高压气驱、CO2驱和凝析气藏的循环注气。

其模拟需要热力学和流体流动的特殊处理。

GEM是一有效的多维状态方程组分模拟器,它可模拟全部混相注气的重要机理,即油的蒸发和膨胀、气凝析、粘度和界面张力降低,通过多次接触形成混相溶解剂段塞。

自适应隐式公式

GEM可以显式、全隐式和自适应隐式三种方式运行。

在大多数情形下,只有很少量的网格需要全隐式求解。

大多数网格可以显式求解。

自适应隐式方法在计算中动态选择网格的隐式度,它对于井筒附近的锥进,或非常薄层的层状油藏非常有用。

使用自适应隐式方式,可以比全隐式节约三分之一到一半计算时间,而时间步可以和全隐式方法一样长。

用户选择全隐式格块,GEM然后进一步动态选择隐式格块。

双孔隙度/双渗透率

双孔模型将裂缝油藏的孔隙空间分为两部分:

主孔隙和次孔隙。

主孔隙(基岩)表示岩块基质中小的粒间孔隙,次孔隙(裂缝)由裂缝、结点、孔洞组成。

双孔模型以一个油藏体积由两种介质表示为特征。

具有较大存贮性的裂缝,是流体流动的主要通道,而基质则为存贮空间。

在GEM中,可指定简单的双孔模型。

每个单元都分一基质和裂缝形状因子。

在这种情况下,基质和裂缝之间的交换项处于半稳态流动。

除双孔模型以外,还可指定双渗模型,该模型假定相邻基岩块之间存在流体流动。

在基质、基质之间质量交换不能忽略的情况下有用,例如气油重力驱占主要地位的情况。

状态方程

GEM使用Peng-Robinson或Soave-Redlich-Kwong状态方程预测油相和气相的相平衡组成和密度,应用Jossi,Stiel和Thodos方程预测油和气的粘度。

闪蒸计算

拟牛顿逐次替换法QNSS用于求解闪蒸计算的非线性方程,以Gibbs能量分析为基础的稳定性测试监测单相状态。

复杂油藏

油藏定义关键字用来描述油藏,网格可以是可变厚度—可变深度型,也可以是角点类型,断层也是可以定义的。

可支持笛卡尔坐标和径向网格。

拟组分选择

拟组分(流动组分)可有效模拟一次接触混相过程和其它单相流体系统。

全隐式井

井可以完善的方式求解,井底流压和完井段的格块变量以全隐式方式求解。

如果完井段不止一个层,其井底流压以完全对耦的方法求解,即考虑所有完井段。

这个可以解决典型层状油藏中多完井段井的收敛问题。

而且在GEM中,复杂的井控制性能是千变万化的。

可输入各种约束条件(最大井底或井口压力、最小井底和井口压力、最大产量、最小产量、最大气油比、最小气油比等)。

当违反其中一条约束条件时,用户可指定另一新的约束条件。

气循环选择允许对组分进行剥离,可附加补充气到循环气流中。

矩阵求解方法

GEM使用AIMSOL,它是一优秀的线性求解程序,基于不完全高斯消去法。

AIMSOL尤其针对自适应隐式雅可比矩阵而开发。

油藏初始比

初始油藏条件可给定气油和油水界面深度。

流体组成可随深度而改变,油藏温度也可随深度呈线性变化。

水区模型

水层可以另增加仅有水的边界单元,或使用Carter—Tracy水层模型模拟。

前者用于水体大小和位置已知,而附加的水体网格又相对小的情况。

后者一般用于水体较大或未知,

希望近似计算水侵量,而附加水体网格不可行的情况。

单位:

SI或矿场单位

模拟结果文件

GEM产生SRF格式,第二代模拟结果文件*IRF和*MRF文件。

结果文件可用于二维和三维可视化软件,也可用于动态曲线图输出。

 

GEM入门

概述

+---------+

||------->.OUT(输出)

||

||------->.IRF(索引)

数据文件--->|GEM|

||------->.MRF(主)

||

||------->.RRF(可回绕)

+---------+(可选择)

如果希望重启,需要其它几个存在的文件,同时产生另外三个文件,如下:

+---------+

数据文件--->||------->.OUT(输出)

||

INPUT.IRF-->||------->.IRF(索引)

|GEM|

INPUT.MRF-->||------->.MRF(主)

||

INPUT.RRF-->||------->.RRF(可回绕)

(可选择)+---------+(可选择)

关键字输入部分数据组

a)七个不同组

b)数据组应遵循确定的顺序

I/O控制

油藏描述

组分特性

岩石—流体数据

初始条件

数值方法控制

井数据和循环数据

怎样建立数据文件注释

a)*TITLE1

b)*TITLE2

c)*TITLE3

d)*CASEID

这四个关键字都必须在输入/输出控制部分。

这四个关键字是可选的,并可以去掉。

但是,它们对于辨别不同数据文件很有用。

至少应使用一行标题。

全部标题和标识必须包含在单引号之内。

*TITLE1和*CASEID均在模拟结果文件中使用,该文件用来产生模拟的图形。

*TITLE1可以有40个字符,*TITLE2和*TITLE3每个可有80个字符。

*CASEID最多8个字符。

也可使用两个关键字标识符即‘**’插入注释,注释可以出现在数据文件任何地方。

例:

*TITLE1

‘SimulationRun#1—1989—01—23’

*TITLE2

‘DualporosityproblemusingtheMINCoption’

*TITLE3

‘Thisisa12×12×10Cartesiangridsystem’

*CASEID‘Run1’

**注释部分

怎样重启

什么是重启文件?

重启文件是一个二进制文件,初始数据和主要变量按用户指明频率写入,写重启文件是可选择的。

为什么需要重启?

有以下几点理由:

a)做敏感性分析或历史模拟

b)修改井定义

c)在运行一大的长作业之前,做一短的模拟运行,看结果是否满意。

d)在随后的运行中节约运行时间。

例如,当完成一模拟运行而且初步结果看起来不错,则需做预测运行。

因为已经由前次运行创建一重启文件,则可以选取一中间时间步重启运行。

模拟器不需从初始日期启动运行,可以在选择的时间步继续运行。

怎样做一重启?

重启记录是可选的。

如果需要做重启运行,则要在前次运行时产生。

使用*WRST或*RESTART创建重启文件,它们必须位于输入/输出控制部分。

然而,当井工作制度改变时*WRST可出现在井数据部分,*WRST指示写重启记录的频率。

*RESTART表示当前模拟运行是一重启运行。

如希望在最后一个时间步开始,则*RESTART后留空,这是缺省值,否则,输入时间步数。

例:

*RESTART30

*WRST10

当做重启时:

a)不改变原始油藏数据,但在输入/输出控制部分加一*RESTART关键字。

b)增加最大时间步数,如果必要,删除*MAXSTEPS。

c)需要附加输入文件:

输入重启文件和输入模拟结果文件。

这些文件在前次运行期间产生。

d)需要新的一组输出文件名。

控制输出打印文件内容

控制输出打印文件内容,使用:

a)*WPRN

b)*OUTPRN

这些关键字可以出现在输入/输出控制部分,其参数也可在随后井数据部分修改。

*WPRN表示写网格块数据、井数据和数值方法控制数据的频率。

如果不希望输出网格或井数据,则频率置零。

例如:

*WPRN*WELL0

*WPRN*GRID0

如果将这两个关键字删除,其缺省选择为每一次井变化时打印。

这种打印控制会产生一个非常大的输出打印文件,会很快占满计算机的可用空间。

*OUTPRN限制打印什么样的油藏信息和井信息。

详细的网格信息和流体性质数据可使用*OUTPRN*RES产生。

控制模拟结果文件内容

模拟结果文件(SRF)是模拟运行期间产生的数据文件。

SRF文件由图形和控制系统读入,产生绘图输出。

为控制SRF的内容,使用:

a)*WSRF

b)*OUTSRF

这两个关键字一般首次出现在输入/输出控制部分。

*WSRF表示写网格数据和井数据的频率。

如果不希望网格数据或井数据输出,则输出频率置零。

网格系统描述

描述网格系统,使用:

a)*GRID

b)*KDIR

描述网格长度,使用

c)*DI

d)*DJ

e)*DK

描述油藏深度和倾角,使用

f)*DEPTH

g)*DIP

h)*DTOP

在以上关键字中,只有*KDIR和*DIP完全可选,并可以从数据集中删除。

上述列出的关键字必须在油藏描述部分。

*GRID必须是这一部分的第一个关键字。

*GRID表示网格系统类型,有四种选择:

直角坐标、变深度/变厚度、径向井筒和角点网格。

其中每个均要求I,J,K方向网格块数目:

例如:

*GRID*CART10106

*GRID*VARI10106

*GRID*RADIAL10115

*GRID*CORNER10106

第一个为标准直角坐标10×10×6,第二个为变深度/变厚度网格10×10×6,第三个为径向网格,最后一个为角点网格。

*KDIR定义Z轴的方向,缺省值为*UP,第一层为最底层。

死结点

定义死结点有两种方法

a)*NULL

b)*POR

两种关键字都必须出现在油藏描述部分。

在数据集中必须有*POR,但*NULL可选。

当用*NULL关键字表示无效网格时,0表示无效网格,1表示有效网格,例如:

*NULL*IJK

1∶101∶101∶31

1∶41∶31∶30

第二行覆盖第一行。

*NULL是可选的,如果不出现,则假定全部网格均为有效网格。

*NULL关键字覆盖*POR关键字。

即使给一网格赋予非零孔隙度,而在*NULL关键字中赋给零值,则该网格在流动计算中也不予考虑。

上述例子也可以下列形式表示:

例如:

*POR*IJK

1∶101∶101∶30.3

1∶41∶31∶30.0

双孔隙度/双渗透率

调用双孔/双渗选择,可以使用(只能选一个):

a)*DUALPOR

b)*DUALPERM

除裂缝介质标准网格信息外,还需输入:

c)*DIFRAC

d)*DJFRAC

e)*DKFRAC

f)*TRANSFER

在组分性质部分,还可以指定:

g)*DIFFUSION

孔隙度值需要对基质和裂缝输入

例:

*POR*MATRIX*IJK

1∶101∶101∶310.3

1∶41∶31∶30.0

*POR*FRACTURE*IJK

1∶101∶101∶30.0

87∶91∶20.4

*MOD

87∶81=0.45

水层选择

水层模型如下:

a)*AQUIFER

b)*AQPROP

c)*AQFUNC

步长过小或运行时间过长问题

收敛失败可能由于:

a)内迭代收敛失败;

b)牛顿收敛失败导致时间步截短;

c)物质平衡误差。

如果在输出文件中发现“迭代不收敛”频繁出现,那么可以:

1减小时间步长。

将*DTMAX改小,或用*NORM*PRESS和*NORM*SATUR减小每个时间步的改变量。

2用关键字*ITERMAX增加迭代次数。

3使用*SDEGREE增加因子分解度。

注意:

这个方法增加了存贮需求。

如果问题原因是最大改变量,则若出现不频繁,问题不大。

如果时间步大量重复出现,那么,应采取以下措施:

4检查岩石和PVT曲线是否出现非线性,该曲线应当平滑。

5检查网格和其他性质。

6检查井的限制。

一个有效的办法是对每一注入井总是指定一最大井底压力,对每一生产井总是指定一最小井底压力。

7如果不收敛由于超过最大牛顿迭代次数引起,使用关键字*NEWTONCYC,增加牛顿循环次数。

如果由于最大改变量振荡引起,达到最大迭代次数,那么,使非线性段平滑,或减小时间步长是最好的解决办法。

8油藏是否在迭代之间出现在单相油和单相气之间浮动。

如果出现浮动,设置适当的*PHASEID或*REFDEN。

9置油藏的某些区域或整个油藏为全隐式。

缺省开关符,*AIM*STAB检查网格的显式隐式开关,仅当该网格是一隐式格块的相邻格块。

如果某些油藏区域变量发生剧烈变化,并且不是井的毗邻区域,或流体前沿运动太快,而在一个时间步扫过两个格块,那么置这些区域为隐式。

例如如下情况:

a)当不使用垂向平衡初始化时。

在某些情况下,这可能引起初始压力和饱和度发生大的改变,即使全部井关井。

当该情况发生时使用全隐式。

b)当出现气顶时。

如果出现较强的指进,置气顶的底层为隐式,至少在指进出现的区域。

c)在具有极端高渗透率的格块,压力的微小改变可能引起饱和度很大变化。

在这些区域,置格块为全隐式。

物质平衡误差可能由收敛容许误差超过设定的改变量而引起。

在大多数情况下,*NORM和*Converge的缺省值足够。

然而,当模拟裂缝油藏或使用裂缝代表水平井时,推荐使用较小的值。

对锥进问题,推荐使用小值。

模拟一单相油藏

有两种主要方法模拟气水两相的干气,单相气藏或一次接触混相溶解剂注入。

A)使用饱和压力

使用关键字*PSAT置饱和压力为一很小的值,

例如,-1。

在这种情况下,所有油藏流体是欠饱和的,并跳过每个格块的闪蒸计算。

所有流体性质仍然使用状态方程计算。

*PSAT不影响井流动计算。

B)使用拟组分选择

1使用*PSEUDO。

一般来说,置油藏油为一拟组分,每个注入流体作为不同的单个拟组分。

2用*PHASEID将单相标为‘油’或‘气’。

一般建议用‘油’,从而流体相对渗透率依据油水相对渗透率曲线计算。

该方法也不做网格闪蒸计算。

另外,GEM还将单个组分流动方程分组为较小数目的拟组分流动方程。

这个可以大大减少每个网格方程的数目。

水平井

水平井可作为一线源(注入井)或汇(生产井)。

GEM使用Aziz等流动图计算液体滞留量,同时也计算井筒摩擦压力降。

注意,当前方法并不能解决回流问题。

垂向平衡计算

*VERTICAL控制垂向平衡计算。

处理垂向平衡计算时,使用下列几种方法:

A)*VERTICAL*ON

同时使用下列关键字

*DWOC,

*REFDEPTH,

*REFPRES,

*ZGLOBALand

*SWOC

B)*VERTICAL*GASCAP及

*DWOC

*DGOC

*REFDEPTH

*REFPRES

*ZOIL

*ZGAS

*SWOC

C)*VERTICAL*COMP及

*DWOC

*REFDEPTH

*REFPRES

*SWOC

*CDEPTH

*ZDEPTH

这些关键字必须位于初始条件部分。

*VERTICAL*ON主要用于欠饱和油藏,而*VERTICAL*GASCAP可用于饱和油藏,也可用于欠饱和油藏。

对于*VERTICAL*ON,用重力—毛管压力平衡计算全部格块压力和水饱和度。

当网格包含油相和气相时,不做特殊处理。

因此,在第一个时间步可能出现剧烈的流体变化。

*VERTICAL*GASCAP是更一般的选择。

假定气顶与油区处于平衡状态,用重力—毛管压力平衡计算全部网格压力和油、气、水饱和度。

闪蒸计算用于确定油相和气相组成。

油相和气相依饱和度混合,然后计算网格总的组成。

因此,油藏中总的组成可能随深度变化。

*VERTICAL*COMP与用户指定的随深度变化的组成一起,用于欠饱和油藏或者饱和油藏的重力初始化。

这时,要指定水油界面深度及参考深度下的参考压力。

用户必须输入总的组成与深度表。

用户还必须输入临界深度。

在临界深度以下,单烃相网格为油网格,而在临界深度以上,单烃相网格为气相网格。

如果不做垂向平衡计算,输入

*VERTICAL*OFF及

*PRES

*SW

*ZGLOBAL

下述第一个例子表示对一饱和油藏做垂向平衡计算的初始条件数据:

*INITIAL

*VERTICAL*GASCAP

*REFDEPTH900.0

*REFPRES3000.0

*DWOC1250.0

*DGOC788.0

*ZOIL0.300.100.200.300.120.08

*ZGAS0.780.190.030.00.00.0

*SWOC1.0

第二个例子表示不使用垂向平衡计算的数据:

*INITIAL

*VERTICAL*OFF

*PRES*CON3400.0

*SW*CON0.2

*GLOBAL*CON

0.300.100.200.300.120.08

井的定义

*井使用以下关键字定义,注意严格按照关键字排序

*WELL井号‘井名’

井类型定义

*Producer井号

或者

*INJECTOR井号

或者

*CYCLPROD井号

在井类型以下,输入:

*PWELLBORE(如果需要计算井筒压力,需要井筒数据)

或*IWELLBORE

*INCOMP(如果定义了注入井时需要,紧接着*INJECTOR)

*OPERATE(至少定义一个工作限制)

*MONITOR(监视限制任选)

定义井的位置和射孔,使用:

*GEOMETRY(可选的,在完井卡之前)

*PERF(必需)

这些关键字必须位于井数据部分。

怎样关井?

怎样重新打开井?

在关井之前:

(1)该井必须用以下方式完全定义:

(a)工作约束和任意监视约束

(b)完井关键字

在完全定义一口井以后,该井可以在使用TIME或DATE关键字的任一时间关闭。

在关井之后任一时间可打开一口关闭的井。

*WELL1′waterinjector′

*WELL2′producer′

*WELL3′Solventinjector′

**全部井具有相同的几何因子

**

**

**radgeofacwfracskin

*GEOMETRY*K0.250.341.00.0

两口注入井初始关井,只有生产井开井。

这种工作制度持续两年。

*INJECTOR1

*INCOMP*WATER

*OPERATE*MAX*STW12000.0

*OPERATE*MAX*BHP10000.0

*PERF*GEO1

**ifjfkfff

1131.0

**关1号井

*SHUTIN1

*PRODUCER2

*OPERATE*MAX*STO12000.0

*OPERATE*MIN*BHP1000.0

*MONITOR*GOR10000.0*STOP

*MONITOR*WCUT0.8330002*STOP

*PERF*GEO2

**ifjfkfff

7711.0

*INJECTOR3

*INCOMP*SOLVENT

0.780.190.030.00.00.0

*OPERATE*MAX*STG1.2E7

*OPERATE*MAX*BHP10000.0

*PERF*GEO3

**ifjfkfff

1131.0

**3号井和1号井在相同网格射孔

**关3号井

*SHUTIN3

*TIME730.000

*OPEN1**打开注水井

*TIME1095.0

**在这个方案中,注水和注溶解剂井在同一网格定义;在打开第二个以前,关闭第一个。

*SHUTIN1**关注水井

*OPEN3**开注溶解剂井

*TIME14600

*SHUTIN3**关注溶解剂井

*OPEN1**打开注水井

*TIME18250

*SHUTIN1**关注水井

*OPEN3**开注溶解剂井

井筒模型

说明井筒模型时,需要:

*PWELLBORE用于生产井,*IWELLBORE用于注入井,位于井类型卡之后。

当要求井口压力时需要使用井筒模型,用于:

a)仅是一种信息;

b)当井口压力作为一个约束条件时。

例如:

对2号注入井建立井筒模型

*INJECTOR2

*IWELLBORE

**wdepthlengthroughwhtempbhtempwr

1100.1100..1365200.3490.0.33

工作和监视约束

*OPERATE和*MONITOR说明一给定井的约束条件。

至少要求一个工作约束,监视约束是可选的。

每一口井引入一新的未知变量Pbh(井底流压),要求一约束方程确定该变量。

在工作和监视约束表中第一个工作约束条件为主工作约束。

模拟器首先在主工作约束下运行,同时监视其它约束条件。

当监视约束之一违反,而且使用CONT关键字,则该约束变为工作约束。

如果不止一个工作约束违反,那么使用第一个工作约束:

生产井

对一生产井,应当:

a)在产量约束下生产(主工作约束)

b)在最小井底流压约束下生产。

如果生产井为产油井,则选一油产量约束。

如果生产井为产气井,则选一气产量约束。

对一生产井使用的约束可以是一最小产量。

例如:

*PRODUCER1

*OPERATE*MAX*STO12000.0*CONT

*OPERATE*MIN*BHP1500.0*CONT

这个例子表明:

a)使用油产量作为油井的主约束

b)使用井底流压作为从约束

如果

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1