基于MFC应用程序基本框架的CH4-H2O-NaCl体系包裹体PVTx计算软件开发
2014-11-01张家利席斌斌施伟军
张 隽,张家利,席斌斌,施伟军,蒋 宏
(1.中国石化石油勘探开发研究院无锡石油地质研究所,江苏无锡 214151;2.内蒙古自治区一一五地质矿产勘查开发院,内蒙古乌兰浩特 137400)
储层中CH4-H2O-NaCl体系包裹体广泛存在,该体系包裹体的热力学参数是了解油气成藏期次、探讨成藏过程的重要依据[1-5]。国内外学者对该体系的热力学性质以及PVTx状态方程进行了研究,基本建立了热力学模型并编制了相应的热力学计算软件[6-12]。但是由于上述热力学方程涉及的参数较多、计算过程复杂,且编制的软件难以直接利用包裹体的测温数据或激光拉曼分析数据进行计算,因而限制了这些热力学计算软件在地质应用中的推广。同时,上述包裹体热力学计算软件开发环境及开发语言多采用面向过程的程序开发模式,面对包裹体研究不断完善的热力学计算模型及日益增强的图形功能的需求,软件的升级往往“牵一发而动全身”,维护及移植性较差,使得软件体现包裹体研究的进展受限。基于此,本文在Visual Studio 2010平台上,采用面向对象的程序设计模式,利用微软的MFC类库,在迭代法计算含CH4盐水包裹体古压力的算法基础上[13],开发出了CH4-H2O-NaCl体系包裹体PVTx计算模拟软件,以期能更好、更方便地实现CH4-H2O-NaCl体系包裹体的热力学计算与地质应用。
1 计算原理及步骤
迭代法计算包裹体的PVTx性质,在CO2-H2ONaCl体系中得到了比较多的应用[14-18],但是由于CH4的临界温度(-82.6℃)远低于CO2的临界温度(31.0℃),因此无法根据部分均一温度和均一方式来计算部分均一时包裹体的一些热力学参数,故无法将CO2-H2O-NaCl体系的计算方法直接移植到 CH4-H2O-NaCl体系中。为了解决上述问题,席斌斌等[13]提出了利用室温条件下CH4的拉曼位移值与压力的关系式[19-21],来计算室温条件下CH4-H2O-NaCl体系的一些热力学参数,进而建立了迭代计算CH4-H2O-NaCl体系包裹体均一压力、组成等PVTx参数的方法。
具体的计算步骤为:(1)根据室温下CH4的拉曼位移值计算包裹体的内压;(2)利用冰点温度计算包裹体的盐度;(3)利用Duan等[8]的状态方程分别计算室温条件下包裹体中气液相的摩尔体积以及液相的组成;(4)假设室温条件下包裹体的气液比为F;(5)计算包裹体的总组成以及总摩尔体积;(6)根据均一温度以及步骤(5)中计算的包裹体总组成,利用Duan等[8]的方程计算再次包裹体的总摩尔体积;(7)若步骤(5)和(6)两次计算的总摩尔体积相等或在误差范围之内,则证明设定的F值即为包裹体的气液比,反之改变F值,重复步骤(5)、(6)直到两者相等或在误差范围之内;(8)利用Duan等[8]的方程计算包裹体均一压力。
由上述论述可知,该计算方法所需要的参数包括室温下CH4的拉曼位移、均一温度、冰点温度,上述参数均可以通过显微测微以及激光拉曼分析直接测定。除了能得到包裹体的均一压力外,还可以得到包裹体组成、摩尔体积、气液比等热力学参数。
2 开发环境及核心算法
2.1 MFC应用程序基本框架及类库
Visual Studio 2010是一个强大的软件编程平台,在其基础之上的 MFC(Microsoft Foundation Class)是微软公司提供的类库,以C++类的形式封装了Windows的API函数和控件。在程序的开发过程中,使用MFC类库可以使应用程序开发变得简单,同时提高了代码的可靠性和可移植性,在不减少编程的自由和灵活性的情况下提供了更多的支持。
基于MFC类库的应用程序可以利用App-Wi-zard(应用程序向导)快速建立起应用程序的基本框架,利用ClassWizard(类向导)快速地在应用程序框架上添加类(或子类)、成员变量及成员函数。在程序员编写代码的过程中,可以利用强大的MFC 类库,完成大多数常用的功能[22-26]。
本软件主界面程序中涉及的类主要继承于MFC的部分基类,其中CDxCalcWnd类、CDxCurveWnd类以及CPropertiesWnd类是关键的3个类,它们分别定义了软件计算面板、曲线面板以及属性面板的显示功能。MFC是一个庞大的类库,目前,大约有200多个类,且其中相当多类具不同功能。本软件用到的只是MFC应用程序框架的冰山一角。
2.2 迭代二分法
本软件算法主要根据二分迭代找到符合计算精度的数值,从而求解,即:对于给定值x,从序列的中间位置开始比较,如果当前位置值等于x,则查找成功;若x小于当前位置值,则在数列的前半段中查找;若x大于当前位置值,则在数列的后半段中继续查找,直到找到并输出为止。此算法贯穿整个软件的关键数据计算始终,诸如计算摩尔体积Vr以及包裹体气液比F。
根据室温下包裹体中气相摩尔体积Vm-v、室温下包裹体中液相摩尔体积Vm-l、室温下包裹体液相中CH4的质量摩尔浓度mCH4以及包裹体盐度mNaCl计算室温下包裹体气液比F,假设F的取值区间是[0,1],且要求计算精度为万分之一(以此确定迭代步长),那么,计算F的算法流程如图1执行。下面列举计算F的部分程序代码:
图1 迭代二分法算法流程Fig.1 Flow chart of iterative dichotomy algorithm
图2 软件功能模块Fig.2 Functional module diagram of software
3 软件开发
3.1 软件的功能模块
CH4-H2O-NaCl体系包裹体 PVTx计算模拟软件涉及一个主界面程序Bleb interface,一个动态链接库Calculate DLL(封装所有算法)和一个反注册程序(清除本软件在安装及运行时在系统注册表里写入的信息)。该软件实现了2个主要功能:一是精确计算包裹体的均一压力、气液比、CH4的摩尔含量等热力学参数;二是实现了该体系的PVTx动态曲线的模拟功能(图2)。
本软件应用程序主界面采用常规的Windows界面,包括菜单栏、工具栏、状态栏、操作区以及视图区等,该功能主要利用MFC应用程序框架向导生成(图3)。
动态链接库是为了实现多个应用程序共享数据和代码的一种数据文件访问方式。它独立于可执行文件,在程序原有函数的参数和返回值等属性不变的前提下,仅改变动态链接库中的函数或现有函数的功能即可完成对程序文件的修改,不需重新编译。本软件涉及的动态链接库Calculate DLL,封装了2个程序文件,主要是计算 CH4-H2O-NaCl体系包裹体的各类参数值,主界面在计算面板里的“计算”按钮事件以及曲线面板“拟合”按钮事件里,会调用动态链接库。
软件适用的范围为:室温T=18~30℃,均一温度Th=0~250℃,均一压力Ph=0~2 000 bar,盐度mNaCl=0~6 mol/kg。
3.2 计算功能
图3 PVTx计算模拟软件界面Fig.3 Soft ware interface of PVTx calculating simulation
图4 PVTx计算模拟软件的“计算面板”界面Fig.4 Computing interface of PVTx calculating simulation software
软件计算功能主要通过计算面板(图4)实现。计算面板主要实现从键盘输入室温T、包裹体均一温度Th、包裹体冰点温度Tice以及包裹体拉曼位移Vp的具体实验检测数据,通过多个热力学方程联立求解,计算输出CH4-H2O-NaCl体系包裹体均一压力Ph,同时,也可以得到计算过程中多个相关参数的值,包括:室温下包裹体中气相的摩尔体积Vm-v、室温下包裹体中液相的摩尔体积 Vm-l、室温下包裹体气液比F、室温下包裹体内压P、包裹体盐度mNaCl、室温下液相包裹体中CH4的质量摩尔浓度mCH4、均一温度下包裹体摩尔体积V总以及均一温度下包裹体中CH4的质量摩尔浓度mCH4。计算精度可达万分之一。
3.3 曲线拟合功能
曲线面板主要是通过曲线控件实现CH4-H2ONaCl体系包裹体的P-T-mCH4数值动态模拟功能。其中,P、T、mCH4参数之间的曲线拟合以计算面板中涉及到的热力学方程为依据,其值都是通过相关的数学函数f(P,T)=mCH4计算得到。曲线面板的主要功能包括:
(1)通过函数f(P,T)=mCH4进行二维曲线拟合,即:已知P、T、mCH4任意一个参数的数值,可以得到其他2个参数之间的二维光滑曲线关系图。
(2)曲线图可以叠加显示,图例可个性化定制,明确区分不同参数数据下的曲线特征,藉以探索P、T、mCH4参数间的关系。
(3)曲线可以任意放大缩小,且其中的参数值可以精确显示到万分之一。其工作原理是:计算机屏幕的像素是有限的,图像的显示就是把组成图像的数据按照一定的规则分割,并依次投点到对应的像素中。虽然一个像素可以包含若干个数据,但只能有一个被显示出来。假设一个屏幕像素里可以“装”X个数据,当用户在曲线面板界面控制“精度”工具时,放大一倍,实际上就是让一个像素所承载的数据减小,这样,原来一个像素“装”了10个数据,放大一倍后,一个像素只“装”了5个数据,在屏幕上,用户就比原来多看到5个数据,感觉上曲线(或图像)放大了。同理,缩小曲线(或图像),就是让一个像素“装”的数据增加。
4 计算实例
为了对软件的使用效果进行检验,对采自普光5井5 157.7 m、上二叠统长兴组的粒屑白云岩中的包裹体进行了应用。包裹体主要发育于溶孔充填的方解石中,以气液两相包裹体和富气包裹体为主,对其中一个气液两相盐水包裹体进行了显微测温以及激光拉曼分析。测试表明包裹体的均一温度为190.3℃,冰点温度为-7.6℃,室温(24℃)条件下CH4的拉曼位移为2 916.86 cm-1。将上述测试结果输入软件的计算面板进行计算,得到包裹体的均一压力为655.1 bar,包裹体中CH4的摩尔质量浓度为0.342 mol/kg,NaCl的摩尔质量浓度为2.16 mol/kg。利用曲线面板,可以得到该组成条件下,气—液饱和曲线,并能够将计算结果直观地表示在P-T相图中(图5)。
上述计算结果表明,包裹体形成于较高的温压条件下,包裹体捕获于气—水不混溶体系,该期包裹体可能代表了气藏形成时的PVTx条件。上述结果与秦建中等[27]所提出的第三期即原油和烃源岩热裂解生成干气阶段的特征基本一致,表明计算结果具有较高的可信性。
结果证明,微软的MFC类库及其应用程序框架编制的软件,计算快速准确,界面友好,拓展性强,在地质领域具有广阔的应用前景。
图5 P-T相图Fig.5 Phase diagram between pressure and temperature
[1]Lu Wanjun,Chou I-Ming,Burruss R C,et al.A unified equation for calculating methane vapor pressures in the CH4-H2O system with measured Raman shifts[J].Geochimica et Cosmochimica Acta,2007,71(16):3969-3978.
[2]Xu G J.Methane-rich fluid inclusions in the Proterozoic Zn –Pb–Ag deposit at Dugald River,NW Queensland:potential as an exploration guide[J].Applied Geochemistry,2000,15(1):1-12.
[3]殷和平,钱一雄,陈强路,等.流体包裹体主要成分及谱学特征研究:以塔河油区下奥陶统储层为例[J].石油实验地质,2009,31(3):282-286.Yin Heping,Qian Yixiong,Chen Qianglu,et al.Approaching to chemical composition and application of Raman spectrum of fluid inclusion:taking the Lower Ordovician reservoirs in Tahe as an example[J].Petroleum Geology & Experiment,2009,31(3):282-286.
[4]施伟军,蒋宏,席斌斌,等.油气包裹体成分及特征分析方法研究[J].石油实验地质,2009,31(6):643-648.Shi Weijun,Jiang Hong,Xi Binbin,et al.Studies of analysis approaches of oil-and-gas inclusion composition and characteristics[J].Petroleum Geology & Experiment,2009,31(6):643-648.
[5]刘德汉,戴金星,肖贤明,等.普光气田中高密度甲烷包裹体的发现及形成的温度和压力条件[J].科学通报,2010,55(3/4):359-366.Liu Dehan,Dai Jinxing,Xiao Xianming,et al.High density methane inclusions in Puguang gasfield:discovery and a T-P genetic study[J].Chinese Science Bulletin,2010,55(3/4):359-366.
[6]Duan Z H,M∅ller N,Greenberg J,et al.The prediction of methane solubility in natural waters to high ionic strength from 0℃to 250℃ and from 0 to 1600 bar[J].Geochimica et Cosmochimica Acta,1992,56(4):1451-1460.
[7]Duan Z H,M∅ller N,Weare J H.An equation of state EOS for CH4,CO2and H2O[J].Geochimica et Cosmochimica Acta,1992,56:2605-2618.
[8]Duan Z H,Mao S.A thermodynamic model for calculating methane solubility,density and gas phase composition of methane-bearing aqueou.s fluids from 273 to 523 K and from 1 to 2000 bar[J].Geochimica et Cosmochimica Acta,2006,70(13):3369-3386.
[9]Aasberg-Petersen K,Stenby E,Fredenslund A.Prediction of high-pressure gas solubilities in aqueous mixtures of electrolytes[J].Industrial and Engineering Chemistry Research,1991,30(9):2180-2185.
[10]Amirijafari B,Campbell J M.Solubility of gaseous hydrocarbon mixtures in water[J].Society of Petroleum Engineers Journal,1972,12(1):21-27.
[11]Ashmayan K D,Skripka V G,Namiot A Y.The solubilities of methane and nitrogen in water at high temperatures and pressures[J].Geochem Int,1984,2(4):138-139.
[12]Avlonitis D,Danesh A,Todd A C.Prediction of VL and VLL equilibria of mixtures containing petroleum reservoir fluids and methanol with a cubic EOS[J].Fluid Phase Equilibria,1994,94:181-216.
[13]席斌斌,施伟军,蒋宏.迭代法计算CH4-H2O-NaCl体系包裹体古压力及其应用[C]//第十三届全国有机地球化学学术会议.2011:774-775.Xi Binbin,Shi Weijun,Jiang Hong.Application of iterative method for calculating homogenization pressure of H2O-CO2-NaCl inclusion system[C]//The Thirteenth National Symposium of organic geochemistry.2011:774-775.
[14]宋玉财,胡文瑄,倪培,等.含CO2盐水流体包裹体摩尔体积和组分求解新方法[J].中国科学:D辑:地球科学,2007,37(3):363-369.Song Yucai,Hu Wenxuan,Ni Pei,et al.New method for solving CO2containing saline fluid inclusion molar volume and composition[J].Science in China:Series D:Earth Sciences,2007,37(3):363-369.
[15]刘斌,沈昆.流体包裹体热力学[M].北京:地质出版社,1999.Liu Bin,Shen Kun.Fluid inclusion thermodynamics[M].Beijing:Geological Publishing House,1999.
[16]刘斌,朱思林,沈昆.流体包裹体热力学参数计算软件及算例[M].北京:地质出版社,2000.Liu Bin,Zhu Silin,Shen Kun.Fluid inclusions and example calculation software[M].Beijing:Geological Publishing House,2000.
[17]Parry W T.Estimation of XCO2,P and fluid inclusion volume from fluid inclusion temperature measurements in the system NaCl-H2O-CO2[J].Economic Geology,1986,81(4):1009-1013.
[18]席斌斌,施伟军,张德会,等.迭代法计算H2O-CO2-NaCl包裹体均一压力的改进及其应用[J].矿床地质,2010,29(6):1138-1144.Xi Binbin,Shi Weijun,Zhang Dehui,et al.Improvements and application of iterative method for calculating homogenization pressure of H2O-CO2-NaCl inclusion system[J].Mineral Deposits,2010,29(6):1138-1144.
[19]Ben-Amotz D,La Plant F,Shea D,et al.Raman studies of molecular potential energy surface changes in supercritical fluids[C]//Supercritical Fluid Technology;ACS Symposium Series 488.Washington,DC:American Chemical Society,1999:18-30.
[20]Chen Y,Zhou Y Q,Liu C Y,et al.Quantitatively analyzing the homogenization process of CH4-H2O fluid inclusion by laser Raman spectroscopy[J].Earth Science Frontiers,2005,12(4):592-596.
[21]Chou I M,Sharma A,Burruss R C,et al.Diamond-anvil cell observations of a new methane hydrate phase in the 100-MPa pressure range[J].Journal of Physical Chemistry A,2001,105(19):4664-4668.
[22]侯捷.深入浅出 MFC[M].武汉:华中科技大学出版社,2000.Hou Jie.Stusy MFC[M].Wuhan:Huazhong University of Science and Technology Press,2000.
[23]谭浩强.C++面向对象程序设计[M].北京:清华大学出版社,2006.Tan Haoqiang.Object oriented programming of C++[M].Beijing:Tsinghua University Press,2006.
[24]李永中.基于VC的多线程编程技术及其实现[J].微计算机信息,2002(7):26-28.Li Yongzhong.Multi thread programming technology based on VC and its implementation[J].Micro Computer Information,2002(7):26-28.
[25]袁媛.基于MFC类设计ObjectARX应用程序界面[J].中南大学学报,2004,35(3):448-452.Yuan Yuan.MFC sequence-based design for ObjectARX application interface[J].Journal of Central South University,2004,35(3):448-452.
[26]Scot D J K,Shepherd W G.VC++6.0 技术内幕[M].北京:希望电子出版社,2000.Scot D J K,Shepherd W G.VC++6.0 technology insider[M].Beijing:Hope Electronic Press,2000.
[27]秦建中,孟庆强,付小东.川东北地区海相碳酸盐岩三期成烃成藏过程[J].石油勘探与开发,2008,35(5):548-556.Qin Jianzhong,Meng Qingqiang,Fu Xiaodong.Three hydrocarbon generation and accumulation processes of marine carbonate rocks in northeastern Sichuan Basin,China[J].Petroleum Exploration and Development,2008,35(5):548-556.