一种页岩气井数值模拟的求解方法与流程

文档序号:11234297阅读:347来源:国知局
一种页岩气井数值模拟的求解方法与流程

本发明涉及油气藏数值模拟技术领域,具体的说,涉及一种页岩气井数值模拟的求解方法。



背景技术:

在目前国内外页岩气资源开发过程中,数值模拟手段被广泛应用。数值模拟在页岩气井上的应用不仅能够对页岩气井以往生产数据进行历史拟合、获取页岩储层各区域物性参数和导流能力,亦能够计算页岩气井储层中流体的物性参数、并对储层的动态物性以及长期产能表现做出预测。因其适用性广、对储层动态描述具体、预测精确等特点,此类手段在页岩气井的动态描述以及产能预测上得到普遍应用。

在页岩气资源开发过程中,需要对页岩气井流体动态及储层产能进行高效、精确的预测。然而,目前在页岩气井数值模拟过程中,由于页岩气储层非均质性强、数据量大,传统的数值求解方法(如差分法)无法准确、高效的对页岩气储层模型的系统方程进行线性化和求解,而解析求解法因编程工作量大、应用灵活性差无法被实际应用到数值模拟运算中。

因此,亟需一种能够对于页岩气储层模型的系统方程进行高效且精确的线性化和求解的页岩气井数值模拟的求解方法。



技术实现要素:

本发明的目的在于提供一种页岩气井数值模拟的求解方法,以解决传统的页岩气井数值模拟的求解方法误差大、效率低的技术问题。

本发明提供一种页岩气井数值模拟的求解方法,该方法包括:

获取页岩气井模型的数值模拟参数;

根据数值模拟参数形成对应参数的运算向量,所述运算向量中包括:参数值部分和参数值的导数部分;

将页岩气井模型中各数值模拟参数的运算向量带入页岩气井模型的系统方程进行计算,根据所述参数值部分获得系统方程的值,根据所述参数值的导数部分获得系统方程的线性化结果;

根据所述系统方程的值和线性化结果计算获得系统方程的解。

在形成运算向量的步骤中包括:

根据所述数值模拟参数形成状态向量,所述状态向量为所述运算向量中的参数值部分;

将所述状态向量对自身各元素进行求导计算得到状态向量的导数矩阵,所述状态向量的导数矩阵为所述运算向量中的参数值的导数部分。

在形成状态向量的步骤中包括:

对页岩气井模型中所述数值模拟参数在各个网格内的数值根据预设排布顺序进行排序形成所述状态向量。

在所述将运算向量带入页岩气井模型的系统方程进行计算的步骤中包括:

将所述运算向量中的状态向量带入所述系统方程的对应参数位进行计算,获得系统方程的值向量,将所述运算向量中的状态向量的导数矩阵带入所述系统方程的对应参数位进行计算,获得系统方程的导数矩阵计算结果;

根据预设顺序对所述系统方程的导数矩阵计算结果进行排序,获得所述系统方程的线性化结果矩阵。

所述在获得系统方程的解的步骤中包括:

将所述系统方程的值向量与所述系统方程的线性化结果矩阵相除获得系统方程求解过程中每一步迭代计算的误差向量。

所述在获得系统方程的解的步骤中还包括:

计算获得的所述误差向量的模;

检验所述误差向量的模是否满足定义的收敛条件,若满足,则本次迭代计算的结果为系统方程的真实解,若不满足,则继续进行迭代计算,直至所述误差向量的模满足所述定义的收敛条件。

在形成运算向量的步骤中还包括:

根据所述系统方程定义所述导数矩阵的运算公式;

在所述将导数矩阵带入所述系统方程的对应参数位进行计算的步骤中包括:

根据所述定义的运算公式进行导数矩阵带入系统方程的运算。

本发明实施例提供的页岩气井数值模拟的求解方法,考虑到页岩储层的数值模拟涉及到的复杂非线性函数,在线性化系统方程时,将复杂的系统方程运算拆分成有限的基本运算,从而实现了通过基本运算对任意的复杂方程实施线性化过程。与此同时,考虑到在求解页岩储层系统方程时需要针对系统状态向量线性化各方程,在计算系统方程时,将各状态向量的线性化结果与其数值定义到同一变量中,再用定义的变量进行系统方程的运算,因此线性化与数值计算可同时进行,从而减少计算量并得到精确的导数表达。本发明实施例提供的页岩气井数值模拟的求解方法克服了传统数值求解方法不能快速处理大型数据、线性化结果误差大等弱点,能够快速的对储层系统方程进行线性化并提高系统方程收敛速度。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

为了更清楚的说明本发明实施例中的技术方案,下面将对实施例描述中所需要的附图做简单的介绍:

图1是本发明实施例提供的页岩气井数值模拟的求解方法的流程图;

图2是本发明实施例提供的形成运算向量的流程示意图;

图3是本发明实施例提供的比较算例中两种方法的求解时间的示意图。

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。

本发明提供一种页岩气井数值模拟的求解方法,如图1所示,该求解方法包括:步骤101、步骤102、步骤103和步骤104。在步骤101中,获取页岩气井模型的数值模拟参数,数值模拟参数包括储层压力、各相饱和度等物性参数在页岩气井模型各网格的分布数据。

在步骤102中,根据数值模拟参数形成对应参数的运算向量,运算向量中包括:参数值部分和参数值的导数部分。在本步骤中,对页岩气井模型的物性参数分布数据进行处理,对应每一种参数形成一个运算向量。

如图2所示,步骤102具体包括如下步骤201至步骤204。其中,在步骤201中,定义运算向量的函数类型,使运算向量包含值部分以及导数部分两类内容。

在步骤202中,根据所述数值模拟参数形成状态向量,将状态向量中各元素的值赋值到运算向量函数的值部分的内容中,使所述状态向量成为所述运算向量中的参数值部分。在获取的页岩气井模型中的多个参数中,对应每一种参数形成一个状态向量,对一种参数在各个网格内的数值根据预设排布顺序进行排序形成该种参数的状态向量,即将状态向量定义为页岩气井模型中各个网格的该参数(压力、饱和度等属性)的顺序排布,将页岩气井模型的数值模拟参数转化为向量形式。如一个3×3×3的网格模型,共27个网格,网格按照预设顺序标号后,若考虑数值模拟参数中包含压力初始值和饱和度初始值两个参数,则该模型的状态向量为压力向量和饱和度向量,压力向量和饱和度向量各为一个27行1列的列向量,每行分别对应网格内的压力和饱和度初始值。

在步骤203中,按照预设顺序读取状态向量,将读取的状态向量对自身各元素进行求导计算得到状态向量的导数矩阵,将得到的导数矩阵赋值到运算向量函数的导数部分的内容中,使状态向量的导数矩阵成为所述运算向量中的参数值的导数部分,从而形成参数的运算向量,完成对于运算向量的初始化。状态向量的读取没有固定顺序,该顺序由用户预先设置。

进一步的,在步骤204中,根据系统方程定义导数矩阵的运算公式,在本步骤中根据系统方程的结构形式确定任一运算向量在带入系统方程后,其导数部分需要进行的运算方式,根据确定的需要进行的运算方式,在本步骤中,定义该运算向量导数部分的运算公式(加、减、乘、除、指数函数、三角函数等),以便于在将运算向量带入系统方程后进行运算时,可以直接调用需要的运算公式。

下面以一个包括三个网格的数值模拟模型为例对本发明提供的求解方法进行说明。定义压力参数的运算向量包括:压力向量和压力向量对自身求导所得导数矩阵。在压力向量中,包含三个网格的压力值,压力向量表示为:

其中,p1、p2、p3分别为三个网格的压力值。压力向量对自身的求导则可以表示为一个3×3的矩阵,第1行第1列的数值为p1对p1的求导,第1行第2列的数值为p1对p2的求导,以此类推,得到压力向量对自身求导所得导数矩阵

将压力向量和导数矩阵赋值到压力的运算向量中,得到压力的运算向量为:

其中,为压力的运算向量的值,为压力的运算向量的导数。

然后,根据系统方程定义导数矩阵的运算公式。例如,若系统方程需要对压力参数进行加法运算,则在本步骤中定义运算向量的导数的加法运算公式:

在步骤103中,将页岩气井模型中各数值模拟参数的运算向量带入页岩气井模型的系统方程进行计算,根据所述参数值部分获得系统方程的值,根据所述参数值的导数部分、获得系统方程的线性化结果。

系统方程包括各相态的物质平衡方程,以及系统的边界方程,在本发明实施例中,为了更为清楚的阐释本发明提供的方法,系统方程以r1=p2+s为例来进行说明,其中r1为系统方程,p为压力参数,s为饱和度参数。通过本发明的步骤101和步骤102形成的形成的状态向量为:

形成的运算向量为:

其中,为压力向量,为饱和度向量,p1、p2、p3分别为三个网格的压力值,s1、s2、s3分别为三个网格的饱和度值,为压力的运算向量,为饱和度的运算向量。

将参数的运算向量带入到系统方程中,使运算向量所含的值部分和导数部分分别带入到系统方程中的对应参数进行计算。将所述运算向量中的状态向量带入所述系统方程的对应参数位进行计算,获得系统方程的值向量,完成系统方程的数值计算。将所述运算向量中的状态向量的导数矩阵带入所述系统方程的对应参数位进行计算,进行系统方程的线性化,获得系统方程的导数矩阵计算结果。导数部分根据在步骤205中定义的导数运算公式参与系统方程运算。

如下式所示,将压力的运算向量值部分带入系统方程压力系数p,将饱和度的运算向量值部分带入系统方程饱和度系数s,计算系统方程的值,同时,将压力的运算向量导数部分带入系统方程压力系数p,将饱和度的运算向量导数部分带入系统方程饱和度系数s,对系统方程进行线性化。

然后,如下式所示,根据预设顺序对系统方程的导数矩阵计算结果进行排序并组合,获得系统方程的线性化结果矩阵r1.jac,该预设顺序与状态向量的读取顺序相同。

系统方程数值计算结果组成系统方程的值向量r1.val。

在步骤104中,根据所述系统方程的值和线性化结果计算获得系统方程的解。在本步骤中,采用迭代法对系统方程求解,如下式所示,根据步骤103所得的系统方程的值向量r1.val及系统方程的线性化结果矩阵r1.jac进行矩阵运算,用数值向量r1.val与线性化结果的矩阵r1.jac相除得到对系统方程求解过程中每一步迭代计算的误差向量δu。

式中,δu为本步迭代计算得到的系统方程的解(向量p和向量s)与上一步迭代计算的解的误差向量。

在本发明实施例中,计算误差向量δu的模|δu|,若|δu|满足设定的收敛条件,则本步计算的结果为系统方程的真实解;若不满足收敛条件,则将本步计算得到的向量p和向量s带入系统方程进行迭代计算,重复上述计算步骤,直到|δu|满足设定的收敛条件,实现对于系统方程收敛程度的检验。

分别利用本发明实施例提供的求解方法和传统差分逼近法进行示例函数方程对变量向量x的偏微分计算,变量向量x的元素个数从1到2000依次增加,每次分别记录两种方法计算所用的时间,根据时间的大小来评价两种方法的线性化的效率,示例函数方程为:

在本比较算例中,如图3所示的变量向量元素个数与两种方法的计算时间的关系,变量向量的元素个数较少的时候,本发明提供的求解方法的线性化时间略大于有限差分逼近法的线性化时间,差距不大。但随着变量向量的元素个数增加,有限差分逼近方法线性化时间快速增加,但本发明提供的求解方法线性化时间基本稳定,变量向量的元素个数越多,本发明提供的求解方法线性化时间相对于有限差分线性化时间的优势越明显。传统有限差分方法的求导需要进行变量元素个数平方次的运算,而本发明提供的求解方法相比于有限差分方法的优势主要来源于系统方程计算过程中的求导只需进行变量元素个数次的运算,节省了运算次数。

本发明实施例提供的页岩气井数值模拟的求解方法,考虑到页岩储层的数值模拟涉及到的复杂非线性函数,在线性化系统方程时,将复杂的系统方程运算拆分成有限的基本运算,从而实现了通过基本运算对任意的复杂方程实施线性化过程。与此同时,考虑到在求解页岩储层系统方程时需要针对系统状态向量线性化各方程,在计算系统方程时,将各状态向量的线性化结果与其数值定义到同一变量中,再用定义的变量进行系统方程的运算,因此线性化与数值计算可同时进行,从而减少计算量并得到精确的导数表达。本发明实施例提供的页岩气井数值模拟的求解方法克服了传统数值求解方法不能快速处理大型数据、线性化结果误差大等弱点,能够快速的对储层系统方程进行线性化并提高系统方程收敛速度。

虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1