油藏数值模拟原理 黑油模型
本帖最后由 西元前 于 2013-7-1 16:38 编辑黑油模型简介
黑油模型是指油质较重性质的油藏类型。
黑油模型是最完善、最成熟,也是应用最为广泛的模型。
是油藏数值模拟的基础,其它模型大都是黑油模型的扩展。
目的:软件这样一个“黑箱”是如何操作的,以便指导我们更好地去应用软件。
黑油模型简介
黑油模型的基本假设
单相渗流黑油模型基本微分方程
三维三相黑油模型基本微分方程
初边值条件
5. 网格系统
6. 黑油模型的差分方程
7. 差分方程的线性化
8. 线性代数方程组的求解
9. 黑油模型的主要数据流
1 、黑油模型基本假设
(1) 油藏中的渗流是等温渗流。
(2) 油藏中最多只有油、气、水三相,每一相均遵守达西定律。
(3)油藏烃类只含有油、气两个组分。在油藏状态下,油气两组分可能形成油气两相,油组分完全存在于油相内,气组分则可以以自由气的方式存在于气相中,也可以以溶解气的方式存在于油相中,所以地层内油相为油组分和气组分的某种组合。在常规油田中,一般不考虑油组分向气组分挥发的现象。
(4)油藏中气体的溶解和逸出是瞬间完成的,即认为油藏中油气两相瞬时达到相平衡状态。
(5)油水之间不互溶;天然气也假定不溶于水。
2.单相渗流基本微分方程
2. 单相渗流基本微分方程
渗流速度是一个空间向量,用分量表示为:
── 渗流速度矢量;──压力; ──势函数
── 绝对渗透率; ──重力加速度常数;
──粘度; ── 垂向坐标; ── 密度;
Reservoir Simulation III
2.单相渗流基本微分方程
根据物质守恒原理,在单位时间内
流入单元内的流体质量-流出单元的流体质量
=单元内流体质量的变化
取渗流场中一个微小六面体体积单元来研究
2.单相渗流基本微分方程
该六面体单元的中心点坐标为(x,y,z),其
每一侧面的质量流速均以其侧面的中心点的质量
来代替。
方向流入质量=
方向流出质量=
方向流入质量=
方向流出质量=
方向流入质量=
方向流出质量=
单元体内流体质量的变化=
2.单相渗流基本微分方程
根据物质守恒定律:
将上式两边同除以 ,
2.单相渗流基本微分方程
并令 , ,
把源汇项(井)加入到方程中,得到
单相渗流连续性方程 :
2.单相渗流基本微分方程
用Hamilton算子 表示,并将达西公式代入,得
到,单相渗流微分方程(流动方程):
生产井
注入井
关 井
2.单相渗流基本微分方程
这就是地下流体所遵循的渗流规律。
总之,渗流基本微分方程包含三部分内容:
流动项、源汇项以及累积项
渗流基本微分方程由两个定律控制:
达西定律与物质守恒定律
压力场和饱和度场的分布是流体流动的结果,流
动规律由达西定律来确定,流量由物质守恒来确
定,这两个规律是数值模拟的关键所在。
3. 三维三相渗流基本微分方程
将单相渗流达西定律推广到多相渗流中,得到
三相流动达西公式:
式中,w,o,g——水、油、气诸相下标。
── 相对渗透率;
3. 三维三相渗流基本微分方程
对油、水、气三相,每一相运用物质守恒定律,可以建立以下连续性方程
3. 三维三相渗流基本微分方程
把达西公式代入连续性方程,得到
三维三相渗流基本微分方程
3. 三维三相渗流基本微分方程
令
3. 三维三相渗流基本微分方程
上述T的物理意义是反映相邻网格间的流动性,又叫传导率(transmissibility)
3. 三维三相渗流基本微分方程
3. 三维三相渗流基本微分方程
还要补充一些方程
饱和度 :
油水毛管力:
油气毛管力:
相对渗透率和毛管力是饱和度函数:
3. 三维三相渗流基本微分方程
Stone公式:
式中,—— 束缚水饱和度
——油水两相流动时油相相对渗透率
——油气两相流动时油相相对渗透率
3. 三维三相渗流基本微分方程
流体PVT性质
水相:
气相: (Z)
油相:随压力变化,相态会发生变化。
三相状态:
两相状态:
岩石的高压物性
相渗曲线以及流体PVT性质,以表格形式给出,
称为静态数据。
3. 三维三相渗流基本微分方程
实际求解变量
初始化输入数据ljfinit.txt
3. 三维三相渗流基本微分方程
产量项(作源汇项处理)(动态数据)
3. 三维三相渗流基本微分方程
其中,
—— 在井基准面深度 上的井底压力。
—— 节点等效泄油半径。
—— 井筒半径。
△X,△Y,△Z—— 网格节点x,y和z方向步长
PI叫采油指数, 通常写成KH,可以直接输入
4 .初边值条件
4 .初边值条件
外边界
封闭边界:尖灭、断层、圈闭
流动边界:边、底水
内边界,即井的生产条件
定产边界条件(rate constraint):给定产液量、产油量、产气量、注水量、注气量
定压边界条件(pressure constraint):给定井底流压
4 .初边值条件
5.网格系统
5.网格系统
在一般情况下流动方程求不出解析解,只能用离散化方法求数值解。
离散化方法,首先要把求解区域按一定的网格系统进行剖分。网格剖分方法有很多,像直角坐标网格、径向网格、角点网格、PEBI网格等。目前,商用软件中大都采用矩形网格系统。离散化方法主要有:有限差分(Finite Difference)、有限元(Finite Element)以及流线法(Stream Line)。比较成熟的是有限差分方法。有限差分方法大多空间变量采用网格块中心(Block Center)差分, 时间变量按向前差分方法。
5.网格系统:矩形网格
5.网格系统:径向网格系统
5.网格系统:角点网格
块中心网格与角点网格的比较
5.网格系统:块中心网格的数据结构
模型被分为20×5×10个网格区域。
网格从(1,1,1)开始向下倾斜。
各网格块在X方向上是300ft,在Y方向上是1000ft。
层厚度从上至下分别是32,22,20,4,32,4,26,26,4,28ft
5.网格系统:块中心网格的数据结构
--前20个TOPS定义网格 (1, 1, 1) 到 (20, 1, 1)
6855.000 6865.000 6875.000 6885.000 6895.000
6905.000 6915.000 6925.000 6935.000 6945.000
7005.000 7015.000 7025.000 7035.000 7045.000
7055.000 7065.000 7075.000 7085.000 7095.000
--下面20个TOPS定义网格 (1, 2, 1) 到 (20, 2, 1)
6930.000 6940.000 6950.000 6960.000 6970.000
6980.000 6990.000 7000.000 7010.000 7020.000
7080.000 7090.000 7100.000 7110.000 7120.000
7130.000 7140.000 7150.000 7160.000 7170.000
--下面20个TOPS定义网格 (1, 3, 1) 到 (20, 3, 1)
7030.000 7040.000 7050.000 7060.000 7070.000
7080.000 7090.000 7100.000 7110.000 7120.000
7180.000 7190.000 7200.000 7210.000 7220.000
7230.000 7240.000 7250.000 7260.000 7270.000
--下面20个TOPS定义网格 (1, 4, 1) 到 (20, 4, 1)
7130.000 7140.000 7150.000 7160.000 7170.000
7180.000 7190.000 7200.000 7210.000 7220.000
7280.000 7290.000 7300.000 7310.000 7320.000
7330.000 7340.000 7350.000 7360.000 7370.000
--下面20个TOPS定义网格 (1, 5, 1) 到 (20, 5, 1)
7205.000 7215.000 7225.000 7235.000 7245.000
7255.000 7265.000 7275.000 7285.000 7295.000
7355.000 7365.000 7375.000 7385.000 7395.000
7405.000 7415.000 7425.000 7435.000 7445.000
/ 这完成了第一层TOPS的定义
角点网格的数据结构
--COORD
--此关键字定义坐标线
--X1 Y1 Z1 X2 Y2 Z2
0. 0. 6825.000 0. 0. 7023.000
300.0000 0. 6835.000 300.0000 0. 7033.000
600.0000 0. 6845.000 600.0000 0. 7043.000
900.0000 0. 6855.000 900.0000 0. 7053.000
1200.000 0. 6865.000 1200.000 0. 7063.000
..........
/对于20 * 10 的网格模型, 需要21*11 条坐标线,即 231条。-每一条坐标线都用6个数来定义,所以关键字COORD包含有1386个数。
ZCORN
--这个关键字定义网格拐点的深度,数据按照X (或 R) 方向循环最快,然后是Y (或 THETA) 方向,最后是Z方向的顺序排列。
6825.000 6835.000 6835.000 6845.000 6845.000
6855.000 6855.000 6865.000 6865.000 6875.000
6875.000 6885.000 6885.000 6895.000 6895.000
6905.000 6905.000 6915.000 6915.000 6925.000
6975.000 6985.000 6985.000 6995.000 6995.000
7005.000 7005.000 7015.000 7015.000 7025.000
7025.000 7035.000 7035.000 7045.000 7045.000
7055.000 7055.000 7065.000 7065.000 7075.000
.......................
/ 对于1000个网格,需要 8000 个ZCORN值
--这些只是角点网格模型的数据体中很少的一部分
块中心网格与角点网格的比较
非结构网格技术
传统的结构网格--即规则矩形剖分的网格,具有如下不足:
存在较严重的网格取向效应
不能保证每口井都在网格中心
不能很好地描述油藏形态
粗细网格间的过渡衔接性差
研究新的网格技术势在必行.
非结构网格技术
非结构网格技术(Unstructured Grids)
常用的非结构网格
各网格中心之间连线构成三角网
PEBI网格(又叫垂直平分网格Perpendicular Bisectors):各三角形边的垂直平分线构成网格边界
CVFE网格--控制体有限元网格(Control volume finite element):各三角形边的中点与重心的连线构成网格边界
待解决的问题
非结构网格条件下代数方程组的快速求解
5.网格系统: PEBI网格
unstructured PEBI grids
Advanced Fault Modeling
非结构网格技术 Channels can be modelled
2. 非结构网格技术(complex) faults
局部网格加密(Local Grid Refinement)
1.概述
局部网格加密(Local Grid Refinement,简称LGR)技术主要分:
静态局部网格加密(Static Local Grid Refinement)局部加密区域在整个计算过程中固定不变的,常用于断层、尖灭、裂缝以及井附近的加密。该技术已经成熟,在多加软件公司的软件产品中都有这一功能。
动态局部网格加密(Dynamic Local Grid Refinement)局部加密区域在整个计算过程中随流体的运动位置而变化,主要用于追踪驱替前缘。该方法在研究之中,最早是Heinemann将动态局部网格用于水驱油藏数值模拟 。
局部网格加密技术
局部网格加密技术
化学驱驱替前缘动态追踪数值模拟研究
1.3 动态局部网格加密技术(注化学剂时的So)
杂交网格技术(HybridGrid Refinement)
开窗技术(Windowing Technique)
开窗技术
Automatically and implicitly calculated
in/out-flux will be used as a ‘von Neumann‘ boundary condition
开窗技术
6.差分方程(Difference Equations)
差分方程
6.差分方程
6.差分方程
该差分方程组无论是左端还是右端都是非线性的,是一组非线性代数方程组。非线性最强的参数是相对渗透率和毛管力。这两个参数在时间方面的处理不同,对计算的稳定性以及计算结果影响最大,也是形成形形色色解法的关键所在。
根据隐式程度的不同,数值模拟的算法有IMPES (Implicit Pressure Explicit Saturation) 方法、半隐式(Semi-Implicit Method)方法和全隐式方法(Fully Implicit Method )。
IMPES:隐式求解压力显式求解饱和度。对流度中与时间有关的量均取上一时间步的值。
6.差分方程
IMPES方法的优点是速度快,缺点是稳定性差,尤其是锥进问题以及过泡点问题不能很好解决。因此时间步长不能太大。目前,IMPES方法在化学驱模型,尤其是流线法中发挥着作用。
全隐式方法主要采用了Newton--Raphson迭代技术, 对方程中各项系数,包括井系数全部隐式处理。全隐式方法较之半隐式方法,具有更好的稳定性,时间步长更长,彻底解决了过泡点问题,是八十年代数值模拟技术走向成熟的关键技术,也是大型油藏数值模拟的主流方法。
6.差分方程
全隐式方法和半隐式方法的根本差别在于:
半隐式方法是将非线性方程直接线性化形成
线性代数方程组,来求解n+1时刻的值。
全隐式方法采用Newton-Raphson方法,迭
代地求解非线性方程组,得到n+1时刻的变量。
用一维非线性方程表示: 给定初始近似
对函数 在点处 进行一阶泰勒展开, 可近
似地表示为
6.差分方程
半隐式:
全隐式方法:
6.差分方程
下面介绍全隐式方法。为了减小计算机舍入误
差的影响, 模型中不直接求压力和饱和度,而是求其增量。
其中:x代表求解变量
n——时间迭代步
——牛顿迭代步
6.差分方程
求解变量: , ,
对于二相状态:
对于三相状态:
7.差分方程的线性化
对方程组进行线性化处理。对所有变量进行Taylor展开,保留线性部分。变量进行运算后也保留线性部分,舍去高阶项。形成线性代数方程组。
7.差分方程的线性化
全隐式方法形成的线性代数方程组的结构
8. 线性代数方程组的求解
油藏数值模拟的线性代数方程组是大型稀疏矩阵,其求解效率在油藏数值模拟计算中举足轻重。因为,其计算量占整个计算量约70%~80%。因此,研制快速求解大型稀疏矩阵的新方法成为油藏数值模拟发展的一个重要方向。
线性代数方程组的求解方法主要有三类:
1)直接法:Gauss消元、D4排序的Gauss消元
2)迭代法:SOR(松弛迭代法)
3)共轭梯度类法、预处理共轭梯度类法(PCG方法)
8. 线性代数方程组的求解
目前最先进的方法是预处理共轭梯度类方法。BO软件中采用RSVP方法。该方法计算快,精度高。
二、黑油模型简介
黑油模型油藏数值模拟器流程
8.黑油模型数据流
8.黑油模型数据流
黑油模型输入数据:
主要数据流
9.黑油模型数据流
一、初始化数据主要有:
1.PVT数据包括流体性质常数,高压物性试验数据和平衡区数据。主要是:
(1)油、气、水的地面密度和比重等常数,以及计算地层水性质的有关参数。
(2)平衡区数据,如油水界面、油气界面。
(3)油PVT表,气PVT表。
9.黑油模型数据流
2.岩石数据包括油水系统和油气系统的相对渗透率曲线和毛管压力曲线数据,以及其它的岩石性质数据。主要是:
(1)输入岩石压缩系数及其参考压力。
(2)油水系统以及油气系统的相对渗透率曲线和毛管压力曲线数据。
(3)毛管压力端点值与束缚水饱和度关系。
9.黑油模型数据流
3.网格属性数据是用数组表述的属性数据,主要来自地质建模,它们是:
(1)油层深度数据
(2)孔隙度数据
(3)渗透率数据
(4)厚度数据
(5)有效厚度
9.黑油模型数据流
初始化程序输入以下几类卡片:
(1) NIT卡
(2) 一般描述卡片
(3) PVT数据卡片
(4) 岩石类型数据卡片
(5) 数组数据
(6) END卡
每一类型卡片有引领关键字,标志者该类数据开始输入。INIT卡必须放在卡片叠的第一张,END放在卡片叠的最后一张,数组数据放在其它输入数据的后面。
ljfinit.txt
9.黑油模型数据流
二、动态模型数据主要有:
1. 模型控制数据:
(1)离散方程求解控制参数
(2)线性代数方程组解法控制参数
(3)时间步长控制参数
2. 输出控制参数:
(1)控制井资料报告
(2)控制全油田、分区及分层报告
(3)控制数据场报告:压力、饱和度
9.黑油模型数据流
3. 井数据:
(1)井位数据及射孔数据
(2)井的分类及生产方式
ljfmodel.txt
学习下看
页:
[1]