劉昱晟,李國軍,周軍,余春昊,余衛東
?
基于Qwt框架的壓汞資料分析軟件的開發與應用
劉昱晟,李國軍,周軍,余春昊,余衛東
設計和開發了一套壓汞資料分析軟件,利用Qwt框架提供的便捷友好的統計圖繪制接口,對毛管壓力曲線、J函數曲線和原始含油飽和度曲線進行計算與繪制并導出油藏高度模型,根據油藏高度模型,計算出區塊內指定井的相應層位的含油飽和度曲線。使用實際巖心資料進行軟件應用的結果表明:設計的軟件能夠對實際的測井數據和巖心數據進行壓汞資料分析并得到準確的模型參數,同時具有操作簡單,可移植性強等優勢,因此有著很好的應用前景。
巖心數據;毛管壓力;J函數;油柱高度;Qwt
油藏多孔介質中毛管壓力和濕相飽和度的關系曲線被稱為毛管壓力曲線。通過毛管壓力曲線可以得到儲層的潤濕性、孔隙結構和束縛水飽和度等參數,是儲層孔隙結構研究的一種重要手段。
目前,國內的測井解釋人員主要使用Microsoft Excel建立毛管壓力資料的解釋模型。Microsoft Excel是微軟公司開發的辦公軟件Microsoft Office的重要組件之一,提供了各種強大的數據處理、統計分析和輔助決策功能,但對于壓汞資料分析來說,其操作過于復雜,數據的導入、數據的處理以及解釋成果的導出等等功能都需要繁瑣的操作來實現,這樣,一方面增加了解釋人員進行解釋的時間開銷,另一方面增加了解釋過程中產生錯誤的風險。因此,開發一套壓汞資料分析組件是十分必要的。
Qwt(Qt Widgets for Technical Applications)是基于Qt開發的一個工具庫,它為具有技術專業背景的程序提供GUI組件和一組實用類,其主要功能是以二維的形式對數據進行展示,可輸出曲線、柱狀圖、散點圖等各種統計圖,非常適合進行壓汞資料分析軟件的開發,因此,本文選擇使用Qwt工具庫進行軟件的設計與開發。
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.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-),男,中國石油集團測井有限公司,高級工程師,碩士,研究方向:測井處理解釋軟件開發工作,西安,710077

3 實例應用







4 總結
參考文獻: