基于Qwt框架的压汞资料分析软件的开发与应用
2016-10-14刘昱晟李国军周军余春昊余卫东
刘昱晟,李国军,周军,余春昊,余卫东
基于Qwt框架的压汞资料分析软件的开发与应用
刘昱晟,李国军,周军,余春昊,余卫东
设计和开发了一套压汞资料分析软件,利用Qwt框架提供的便捷友好的统计图绘制接口,对毛管压力曲线、J函数曲线和原始含油饱和度曲线进行计算与绘制并导出油藏高度模型,根据油藏高度模型,计算出区块内指定井的相应层位的含油饱和度曲线。使用实际岩心资料进行软件应用的结果表明:设计的软件能够对实际的测井数据和岩心数据进行压汞资料分析并得到准确的模型参数,同时具有操作简单,可移植性强等优势,因此有着很好的应用前景。
岩心数据;毛管压力;J函数;油柱高度;Qwt
0 引言
油藏多孔介质中毛管压力和湿相饱和度的关系曲线被称为毛管压力曲线。通过毛管压力曲线可以得到储层的润湿性、孔隙结构和束缚水饱和度等参数,是储层孔隙结构研究的一种重要手段。
目前,国内的测井解释人员主要使用Microsoft Excel建立毛管压力资料的解释模型。Microsoft Excel是微软公司开发的办公软件Microsoft Office的重要组件之一,提供了各种强大的数据处理、统计分析和辅助决策功能,但对于压汞资料分析来说,其操作过于复杂,数据的导入、数据的处理以及解释成果的导出等等功能都需要繁琐的操作来实现,这样,一方面增加了解释人员进行解释的时间开销,另一方面增加了解释过程中产生错误的风险。因此,开发一套压汞资料分析组件是十分必要的。
Qwt(Qt Widgets for Technical Applications)是基于Qt开发的一个工具库,它为具有技术专业背景的程序提供GUI组件和一组实用类,其主要功能是以二维的形式对数据进行展示,可输出曲线、柱状图、散点图等各种统计图,非常适合进行压汞资料分析软件的开发,因此,本文选择使用Qwt工具库进行软件的设计与开发。
1 压汞资料分析基本理论
1.1 J函数的定义
J函数[1][2]可以定义如公式(1):
1.2 J函数曲线的平均化
廖敬等[3]提出了一种计算平均J函数曲线的方法,通过对数据点用最小二乘法进行拟合,将J函数拟合为公式(3):
其中,a为J函数无因次排驱压力;b为J函数曲线指数。
这种处理方法存在以下两个问题:
J函数的曲线形态不是简单的形如式3的幂函数形式,拟合出的曲线与原曲线有一定差别;
拟合处理方法与目前解释人员采用的处理方法不一致。
针对上述问题,本文选择使用目前解释人员常用的并且也更高效的算术平均法,如公式(4):
求出了每个恒定压力下的平均J函数后,对其进行样条插值,即可得到平均J函数曲线。
1.3 实际油藏条件下毛管压力曲线的求取
由于在实际中,在室内测定毛管压力曲线的测定条件与实际油藏条件存在偏差,因此在使用毛管压力曲线资料前,必须将实验室测量得到的结果进行转换。
通过公式推导,可以得到实际油藏条件下毛管压力与压汞法得到的毛管压力之间的关系[4]如公式(5):
其中,以ow为下标的参数为实际油藏中油水的毛管压力参数,以Hg为下标的参数为压汞法所得的毛管压力参数。
1.4 油柱高度的计算
在实际情况中,油藏的油水或油气间存在着一个过渡带,而不是明显的分界面。通过对毛管压力值进行换算,可以将其转换为相应的油柱高度如公式(6):
2 软件设计
2.1 软件流程设计
软件的整体流程如图1所示:
图1 毛管压力数据分析流程图
为了利用Qt框架对压汞资料进行毛管压力数据分析,将软件流程设计如下:
读取压汞资料数据;
从数据中选择参与分析的岩心数据;
绘制出各岩心的毛管压力曲线;
根据岩心的毛管压力计算并绘制出J函数曲线;
以J函数曲线为依据对岩心进行分类[5];
对每个岩心分类建立原始含油饱和度与油柱高度之间的关系模型,并绘制出原始含油饱和度曲线;
导出油藏高度模型;
根据油藏高度模型,在井数据中进行油藏含油饱和度计算,生成原始含油饱和度曲线。
2.2 软件功能设计
2.2.1 毛管压力曲线和J函数曲线的生成
通过对压汞资料的读取和解析,可以绘制出毛管压力曲线。由于使用C++开发图形程序周期较长,在进行交会图开发时,选用了基于Qt的Qwt工具库缩短开发周期。Qwt库提供了快速生成各类统计图的接口,具体代码如下:
QwtPlot*pPlot = new QwtPlot;
QwtPlotCurve *pCurve = new QwtPlotCurve;
QwtSplineCurveFitter *pCurveFitter = new QwtSplineCurveFitter;
pCurveFitter->setFitMode(QwtSplineCurveFitter::ParametricSpline);
pCurve->setCurveFitter(pCurveFitter);
QPolygonFpoints;
for(...)
points< pCurve->setSamples(points); pCurve->attach(pPlot); 其中,QwtPlot为二维图形绘图部件,QwtPlotCurve为曲线类,QwtSplineCurveFitter用于对QwtPlot进行插值,产生平滑的曲线,QPolygonF用于存储曲线所需的全部结点。绘制的毛管压力曲线图如图2所示: 图2 毛管压力曲线 通过对毛管压力曲线进行定性特征及定量的特征分析,可以对岩样储集性能、孔渗性和产油能力等指标进行评价。 J函数曲线由毛管压力数据计算得到,其形态类似于毛管压力曲线。通过J函数曲线可以获得同一类型岩样的毛管压力曲线的平均资料以及不同类型岩样的岩石物性特征。一般不同储层其J函数曲线不同,因此通过J函数曲线可以辅助进行储层划分。 2.2.2 原始含油饱和度—油柱高度关系曲线的生成及油藏高度模型的建立 根据1.2节、1.3节中介绍的公式,可以将由2.2.1节得到的每一类岩样求取其平均J函数曲线,并将其转换为平均地层毛管压力曲线,对平均地层毛管压力曲线中的每一个结点,使用式6计算出其油柱高度,根据平均地层毛管压力各结点的原始含油饱和度与计算得到的油柱高度即可建立原始含油饱和度—油柱高度关系曲线,再结合岩样的分类信息,即可得到油藏高度模型。 Qwt提供了符号类QwtSymbol,通过QwtSymbol可以对曲线的结点样式进行定制,代码如下: QwtSymbol *symbol = new QwtSymbol(QwtSymbol::Style(QwtSymbol::Ellipse), QBrush(Qt::red), QPen(Qt::black, 0), QSize(8, 8)); pCurve->setSymbol(symbol); 建立的原始含油饱和度—油柱高度关系曲线如图3所示: 图3 原始含油饱和度—油柱高度关系曲线 通过对结点样式的设置,程序使用不同的颜色和形状区分不同的分类曲线。 2.2.3 原始含油饱和度曲线的生成 在获取到油藏高度模型后,即可使用该模型对邻井相应层位区间进行建模,形成原始含油饱和度曲线。 以使用渗透率为分类标准进行岩样分类为例,首先,获取到待生成原始含油饱和度曲线的深度区间及自由水平面深度,并从井数据的渗透率曲线中获取深度区间对应的所有深度点的渗透率数据;然后,对每一个深度点,通过其垂深与自由水平面之差计算出该深度点的油柱高度;最后,通过该深度点的渗透率数值在油藏高度模型中检索到相应的原始含油饱和度—油柱高度曲线结点数组,使用该深度点的油柱高度在结点数组中检索出与其最相近的两个结点,通过插值的方式确定出其实际的原始含油饱和度数值。将每个深度点获取到的原始含油饱和度数值及其深度信息写入到井数据中,即形成了该井在指定深度区间内的原始含油饱和度曲线。 为验证本文所设计软件的有效性,使用XXX井区X层位的实际岩心数据对软件进行了验证。首先,加载井区的所有岩心数据,并以J函数曲线形态为参考,根据渗透率对岩心数据进行了分类,具体分类方式如图4所示: 图4 曲线分类界面 根据实际岩心数据及分类方式,即可以不同的图例表示绘制出各岩心的毛管压力曲线和J函数曲线,如图5及图6所示: 图5 XXX井区X层位岩心数据的毛管压力曲线 图6 XXX井区X层位岩心数据的J函数曲线 根据每一个分类区间,将区间内所有岩心的毛管压力数据转换为油藏高度模型,形成原始含油饱和度曲线图,并将测井所得到的含油/含水饱和度数据导入图中,对计算出的曲线进行验证。计算原始含油饱和度和油柱高度的关系曲线的公式参数设置窗口如图7所示: 图7 原始含油饱和度曲线公式设置窗口 绘制出的曲线图如图8所示: 图8 XXX井区X层位岩心数据的原始含油饱和度曲线 在完成油藏高度的建立后,可将油藏高度模型导出为模型文件。对于井区内的X-X-X井,使用该模型文件,在指定层位的深度区间内,使用导出的油藏高度模型,计算出原始含油饱和度曲线。原始含油饱和度曲线计算模块如图9所示: 图9 原始含油饱和度计算模块界面 计算得到的原始含油饱和度曲线如图10所示: 图10 原始含油饱和度计算模块界面 本文利用Qwt工具库专业的统计图绘制模块及良好的跨平台特性,设计并开发了一套压汞资料分析软件,并以实际井资料对软件进行了有效性测试。 实验证明,本文实现的软件填补了国内毛管压力数据分析软件的空白,提高了解释人员对毛管压力数据解释分析的效率,因此具有非常广阔的前景。 [1] Leverret M C. Capillary Behavior in Porous Solids[J]. Trans AIMME, 1941, 142: 151-169. [2] Rose W R, Bruce W A. Evaluation of Capillary Character in Petroleum Reservoir Rock[J]. Trans AIMME, 1949, 186: 127-142. [3] 廖敬, 彭彩珍, 吕文均. 毛管压力曲线平均化及J函数处理[J]. 特种油气藏, 2008, 15(6): 73-75. [4] 何更生. 油层物理[M]. 北京: 石油工业出版社. 2011. [5] 基于毛细管压力曲线储层自动分类及测井评价[J]. 测井技术, 2013, 37(6): 653-657. Development and Application of Mercury Data Analysis Software Based on Qwt Framework Liu Yusheng, Li Guojun, Zhou Jun,Yu Chunhao,Yu Weidong (China Petroleum Logging Co., Ltd., Xi’an 710077, China) A set of mercury data analysis software is designed and developed in this paper, the convenient and user-friendly 2D plot drawing interface provided by the Qwt framework is used to display and calculate capillary pressure curve, J function curve and original oil saturation curve and export reservoir height model, then it calculates the oil saturation curve of corresponding layer of specific well in the block. Through actual test using core data, the experimental results show that the software can be used to do mercury analysis using actual log data and core data and obtain accurate model parameters, while the module is operated easily and transplanted conveniently, therefore it has better application prospect. Core Data; Capillary Pressure; J Function; Oil Column Height; Qwt 1007-757X(2016)04-0005-04 TP274 A (2015.08.14) 国家科技重大专项:一体化网络测井处理解释软件平台(2011ZX05020-007) 刘昱晟(1987-),男,中国石油集团测井有限公司技术中心,助理工程师,硕士,研究方向:测井软件开发和方法研究,西安,710077 李国军(1974-),男,中国石油集团测井有限公司,高级工程师,硕士,研究方向:测井处理解释软件开发工作,西安,710077 周 军(1976-),男,中国石油集团测井有限公司,高级工程师,硕士,研究方向:测井处理解释软件开发工作,西安,710077 余春昊(1974-),男,中国石油集团测井有限公司,高级工程师,硕士,研究方向:测井处理解释软件开发工作,西安,710077 余卫东(1968-),男,中国石油集团测井有限公司,高级工程师,硕士,研究方向:测井处理解释软件开发工作,西安,7100773 实例应用
4 总结
参考文献: