秦宏偉,黨瑞榮,黨 博,曹 峰
(西安石油大學(xué)陜西省油氣井測(cè)控技術(shù)重點(diǎn)實(shí)驗(yàn)室,陜西西安 710065)
隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,云服務(wù)器實(shí)時(shí)存儲(chǔ)數(shù)據(jù)成為網(wǎng)絡(luò)環(huán)境的核心部件[1-2],此技術(shù)在數(shù)字油田的井口多相流檢測(cè)中成為研究重點(diǎn),云服務(wù)器技術(shù)廣泛應(yīng)用于智能油田。
物聯(lián)網(wǎng)技術(shù)在數(shù)字化油田的應(yīng)用已經(jīng)成為趨勢(shì),國(guó)內(nèi)大多數(shù)油田井況的實(shí)時(shí)檢測(cè),數(shù)據(jù)采集工作都只是注重現(xiàn)場(chǎng)采集和本地存儲(chǔ),實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)[3]的匱乏,沒(méi)有成熟的三相流檢測(cè)儀器與云服務(wù)器數(shù)據(jù)存儲(chǔ)系統(tǒng)相結(jié)合,現(xiàn)有的三相流檢測(cè)儀器與物聯(lián)網(wǎng)技術(shù)是獨(dú)立的,設(shè)備產(chǎn)生的相關(guān)數(shù)據(jù)只能存在本地,而且存儲(chǔ)量少,數(shù)據(jù)收集不全面[4]。文中研究井口三相流相含量檢測(cè)系統(tǒng),以達(dá)到對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)采集、集中處理、實(shí)時(shí)發(fā)送、規(guī)范存儲(chǔ)[5]、預(yù)測(cè)未來(lái)井口流量的相關(guān)參數(shù),方便科學(xué)的服務(wù)于油田,使其更適應(yīng)信息化網(wǎng)絡(luò)化時(shí)代發(fā)展的需要[6-7]。
在國(guó)內(nèi)石油的不斷開(kāi)采過(guò)程中,注水井?dāng)?shù)量每年都在增加。不斷的注水導(dǎo)致生產(chǎn)井的含水率偏高,總產(chǎn)量較低,因此本文采用熱式流量計(jì)的恒溫差法[8]進(jìn)行低產(chǎn)量測(cè)量。研發(fā)新型三相流檢測(cè)儀器,將測(cè)量到的流量、原油含水率與原油含氣率等重要參數(shù)通過(guò)4G網(wǎng)絡(luò)上傳云服務(wù)器,作為重要參數(shù)存入檔案庫(kù),供石油工程師分析資料使用。
油田井口三相流檢測(cè)系統(tǒng)主要包括后臺(tái)儀器組件的硬件部分、數(shù)據(jù)上傳字段格式[9]的合理定義、利用TCP協(xié)議和socket編程原理完成服務(wù)器端解析程序的設(shè)計(jì)、提出新的流量檢測(cè)算法和數(shù)據(jù)存入My SQL數(shù)據(jù)庫(kù)[10]的方法等。設(shè)計(jì)合理的數(shù)據(jù)查詢(xún)功能,供用戶隨時(shí)查看歷史數(shù)據(jù),為進(jìn)一步優(yōu)化油井注水配比、油井定期維護(hù)等工作提供依據(jù)。
圖1為井口三相流檢測(cè)系統(tǒng)總體方案設(shè)計(jì)框圖,井口三相流檢測(cè)系統(tǒng)主要由后臺(tái)儀器組件和云端服務(wù)器組件組成,中間通過(guò)無(wú)線傳輸層連接。后臺(tái)儀器組件包括一系列測(cè)量電路,主要由傳感器部分、前級(jí)放大電路、信號(hào)調(diào)理電路、數(shù)據(jù)采集電路、ARM電路和LoRa無(wú)線傳輸模塊[11],以及圖1中未畫(huà)出的電源部分組成。后臺(tái)儀器組件主要將管線中流體各參數(shù)的原始數(shù)據(jù)提取,由無(wú)線LoRa傳輸模塊與網(wǎng)關(guān)組成后臺(tái)無(wú)線發(fā)送節(jié)點(diǎn),通過(guò)4G網(wǎng)絡(luò)上傳云端服務(wù)器,云端服務(wù)器需要解析由后臺(tái)上傳的原始數(shù)據(jù),在得到原始數(shù)據(jù)之后,在云端服務(wù)器構(gòu)建模型,算出流量、溫度、壓力和含水率等重要參數(shù)。
圖1 數(shù)據(jù)檢測(cè)系統(tǒng)總體方案設(shè)計(jì)
云端服務(wù)器的數(shù)據(jù)解析后,需要建立測(cè)量模型、優(yōu)化模型,精準(zhǔn)計(jì)算所測(cè)參數(shù)后保存到My SQL數(shù)據(jù)庫(kù)供客戶端需求,數(shù)據(jù)庫(kù)的整理、維護(hù)至關(guān)重要,可以為后續(xù)提取資料。
從目前的油田需求角度考慮,并結(jié)合實(shí)際測(cè)量的指標(biāo),主要定義的字段包括儀器編號(hào)、實(shí)時(shí)溫度、實(shí)時(shí)壓力、瞬時(shí)流速、瞬時(shí)流量、累計(jì)流量、瞬時(shí)含水率、全天含水率和瞬時(shí)含氣率等。
實(shí)時(shí)溫度可以通過(guò)溫度傳感器直接測(cè)量,溫度與熱式探頭上的電壓有唯一單調(diào)的函數(shù)關(guān)系,得知熱式探頭的電壓值即可計(jì)算出實(shí)時(shí)溫度;同理,實(shí)時(shí)壓力也可通過(guò)壓力傳感器測(cè)出。
瞬時(shí)流速的計(jì)算,是通過(guò)溫度傳感器的傳熱效應(yīng),對(duì)流換熱原理[12],通過(guò)油管中流體流速與熱式探頭阻值變化的唯一單調(diào)的函數(shù)關(guān)系,最后確定流速,也可通過(guò)式(1)計(jì)算瞬時(shí)體積流量,式(2)可計(jì)算瞬時(shí)質(zhì)量流量,通過(guò)累加可確定某一時(shí)間段內(nèi)的累計(jì)流量。
Qv=S·v
(1)
Qm=S·v·ρ
(2)
式中:S為管道截面積;v為瞬時(shí)流速;ρ為流體的混合密度。
含水率檢測(cè)是將接觸式射頻天線插入管線中,通過(guò)電磁輻射原理,利用電磁波在損耗媒質(zhì)中的傳輸理論,通過(guò)外加振蕩器賦予射頻天線時(shí)諧的電流激勵(lì),此時(shí)天線被激發(fā)的電磁場(chǎng)特性隨著均勻油水比例的不同而變化[13]。根據(jù)對(duì)其電場(chǎng)特性的分析,標(biāo)定出含水率與電場(chǎng)幅度唯一且單調(diào)的函數(shù)關(guān)系,即可測(cè)量實(shí)際原油瞬時(shí)含水率,全天含水率可以通過(guò)瞬時(shí)含水率疊加得知。
含氣率的檢測(cè)是利用壓電陶瓷片的逆壓電效應(yīng)[14],超聲波的發(fā)射換能器A通過(guò)發(fā)射電路激勵(lì)后發(fā)射信號(hào),此信號(hào)通過(guò)管道流體,到達(dá)換能器B時(shí)可以測(cè)量此時(shí)的信號(hào)幅度以及A到B信號(hào)傳輸時(shí)間,由于含氣率不同,發(fā)射信號(hào)的幅度衰減程度也不同,可以通過(guò)信號(hào)幅度的衰減程度與含氣率成唯一函數(shù)關(guān)系確定實(shí)際含氣率。還可以通過(guò)硬件芯片捕獲A到B的時(shí)間Δt,實(shí)際含氣率與Δt有唯一單調(diào)的函數(shù)關(guān)系,可以確定實(shí)際含氣率。
從圖2數(shù)據(jù)上傳字段定義格式可以看出,根據(jù)常規(guī)定義方法,字段1和字段11為數(shù)據(jù)包頭和校驗(yàn)字節(jié),以16進(jìn)制表示。字段2為儀器編號(hào),多臺(tái)儀器的編號(hào)都是正整數(shù),所以采用16進(jìn)制轉(zhuǎn)換10進(jìn)制的方式命名,字段3~字段10是需要測(cè)量的物理量,所以采用IEEE754標(biāo)準(zhǔn)(4字節(jié))的字節(jié)數(shù)據(jù)和浮點(diǎn)數(shù)之間的轉(zhuǎn)化方式表示,可以精確表示實(shí)際物理量。
圖2 數(shù)據(jù)上傳格式字段定義格式
圖3 32 bit浮點(diǎn)數(shù)規(guī)范化表示方法
服務(wù)器解析程序設(shè)計(jì)需要設(shè)定解析規(guī)則,本次設(shè)計(jì)采用IEEE754標(biāo)準(zhǔn)下的16進(jìn)制和10進(jìn)制浮點(diǎn)數(shù)的相互轉(zhuǎn)換方法提取原始數(shù)據(jù)。由于儀器編號(hào)字段采用簡(jiǎn)單的16進(jìn)制轉(zhuǎn)換為10進(jìn)制的方式,這里不再贅述。通過(guò)字段2的實(shí)時(shí)溫度分析IEEE754標(biāo)準(zhǔn)下的16進(jìn)制和10進(jìn)制浮點(diǎn)數(shù)解析規(guī)則。
例如,實(shí)時(shí)溫度的字節(jié)流3F 8C CC CD表示為如圖3所示的形式,4字節(jié)數(shù)據(jù)流有32位,其中最高位為符號(hào)位,高8位為階碼,低位為尾數(shù),即為小數(shù)。在精度要求的情況下,尾數(shù)的死區(qū)問(wèn)題可以忽略不計(jì)。
一個(gè)規(guī)范化的32位浮點(diǎn)數(shù)x的真值可用式(3)表示。
x=(-1)S×(1+M)×2E-127
(3)
此時(shí)的符號(hào)位為31 bit且值為0表示為真,用字母S表示;高8位30 bit~23 bit用字母E表示,此時(shí)的E表示10進(jìn)制為127;低23位為22 bit~0 bit用M表示,M表示小數(shù)為0.000 110 011 001 100 110 1,此時(shí)小數(shù)位的10進(jìn)制形式可表示為0.100 000 023 841 857 91;最后把S,M,E帶入式(3)中表示為
x=(-1)0×(1+0.100 000 023 841 857 91)×2(127-127)=1.1
(4)
從式(4)中可以看出,3F 8C CC CD在IEEE 754標(biāo)準(zhǔn)下的16進(jìn)制和10進(jìn)制浮點(diǎn)數(shù)的相互轉(zhuǎn)換方法表示下的形式為1.1,說(shuō)明此時(shí)的解析是成功的,也符合設(shè)計(jì)需求。
由于后臺(tái)儀器的硬件CPU是用C/C++語(yǔ)言在ARM平臺(tái)下編寫(xiě)的,但是服務(wù)器解析程序是用Java語(yǔ)言編寫(xiě),因此這里的C/C++與Java互通是此次解析的關(guān)鍵。后端儀器將原始數(shù)據(jù)傳給云服務(wù)器時(shí),會(huì)將類(lèi)似于0x400CCCCD這樣的數(shù)據(jù)流上傳,由于服務(wù)器的解析程序是用Java,Java采取big endian方式[15]存儲(chǔ)數(shù)據(jù),這時(shí)會(huì)將接受到的數(shù)據(jù)流解析為0xCDCC0C40,因此C/C++程序與Java互通之前必須進(jìn)行字節(jié)序的轉(zhuǎn)換,確保數(shù)據(jù)傳輸?shù)恼_性。在idea環(huán)境中主要編寫(xiě)TcpClient函數(shù)與TcpServer函數(shù),將解析代碼寫(xiě)入相應(yīng)的函數(shù)中時(shí),即可測(cè)試數(shù)據(jù)傳輸?shù)恼`。
圖4是通過(guò)TCP串口轉(zhuǎn)網(wǎng)口調(diào)試工具測(cè)試的結(jié)果,當(dāng)虛擬串口發(fā)送圖2所示的字段時(shí),服務(wù)器端接受到相應(yīng)的float型數(shù)字,說(shuō)明解析程序已經(jīng)成功。
圖4 服務(wù)器解析程序成功獲取
云服務(wù)器解析到后臺(tái)儀器采集的原始數(shù)據(jù)后,需要進(jìn)行建模分析,溫度和壓力都存在唯一單調(diào)的函數(shù)關(guān)系,只需通過(guò)函數(shù)關(guān)系式即可得出結(jié)果。含水率與含氣率是通過(guò)現(xiàn)場(chǎng)標(biāo)定得出函數(shù)關(guān)系,但是總流量的測(cè)量不僅需要實(shí)驗(yàn)室提前標(biāo)定,還要通過(guò)相應(yīng)的模型建立,模型的優(yōu)化會(huì)提高測(cè)量的精度,最后將高精度的測(cè)量值存入數(shù)據(jù)庫(kù)。
某油田通過(guò)長(zhǎng)期的現(xiàn)場(chǎng)標(biāo)定以及現(xiàn)場(chǎng)取樣,提取真實(shí)的實(shí)際參考值去驗(yàn)證此次模型的正誤。圖5為1 d檢測(cè)流量的原始物理量變化曲線,可以看出黑色密集曲線為采樣的原始數(shù)據(jù),采用滑動(dòng)平均濾波算法濾波后,白色曲線為濾波后的多項(xiàng)式擬合曲線。24 h每4.5 s采樣1個(gè)點(diǎn),共計(jì)19 200個(gè)采樣點(diǎn)。圖5中采樣點(diǎn)數(shù)為4 000時(shí),出現(xiàn)空抽時(shí)間段,原始數(shù)據(jù)出現(xiàn)斷崖式下降,通過(guò)空抽的數(shù)據(jù)即可判斷空抽時(shí)間段,但是流體流量的計(jì)算只在實(shí)抽的情況下可以計(jì)算,因此必須考慮空抽時(shí)間段,防止空抽對(duì)流量計(jì)算的誤判,導(dǎo)致測(cè)量結(jié)果的錯(cuò)誤。
圖5 有空抽時(shí)流量原始數(shù)據(jù)變化曲線
圖6為實(shí)抽時(shí)的原始數(shù)據(jù)變化曲線,需要根據(jù)原始數(shù)據(jù)變化情況去判斷流量的起伏變化。由圖5所示判斷出是否有空抽時(shí)間后,即可計(jì)算流量的大小。例如在圖6所示的情況下計(jì)算流量大小,如果連續(xù)一段時(shí)間內(nèi)無(wú)空抽,此時(shí)即可建立模型計(jì)算流量,初次模型是根據(jù)擬合曲線與坐標(biāo)軸所圍成的面積求積分來(lái)判斷流量的大小。模型公式可用式(5)表示。
(5)
式中:H為擬合曲線與坐標(biāo)軸所圍面積;n為采樣時(shí)間。
圖6 實(shí)抽時(shí)的流量起伏變化原始數(shù)據(jù)曲線
式(5)中,右邊第1項(xiàng)表示物理量電壓值變化起伏過(guò)程與坐標(biāo)軸圍成的面積,第2項(xiàng)表示空抽部分電壓值與坐標(biāo)軸所圍成的面積。當(dāng)采樣時(shí)間間隔較大時(shí),式(5)也可以表示成離散形式,連續(xù)的時(shí)間轉(zhuǎn)換成離散的采樣點(diǎn)數(shù),同理可求出H值。
現(xiàn)場(chǎng)標(biāo)定的流量Q與面積H存在唯一單調(diào)的函數(shù)關(guān)系,通過(guò)函數(shù)關(guān)系即可求出流體總流量,由于恒溫差法測(cè)流量的范圍有限,當(dāng)流量到達(dá)極致時(shí),面積H變化比較緩慢,曲線不再是線性關(guān)系,所以經(jīng)過(guò)大量數(shù)據(jù)擬合,得出Q與H關(guān)系為
Q=aH2+bH+c
(6)
式中a、b、c都是比例系數(shù)。
當(dāng)連續(xù)時(shí)間段內(nèi)沒(méi)有空抽時(shí)間點(diǎn)時(shí),結(jié)合式(5)與式(6),可以得出流量Q與采樣時(shí)間的關(guān)系為
(7)
三相流檢測(cè)數(shù)據(jù)存入開(kāi)源My SQL數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)中的數(shù)據(jù)需要使用Navicat for My SQL訪問(wèn)。在存入數(shù)據(jù)前,需要在Navicat中建立自身需要的My SQL數(shù)據(jù)庫(kù),用自己的服務(wù)器IP、端口號(hào)、用戶名和密碼連接即可匹配成功。My SQL數(shù)據(jù)庫(kù)中新建獨(dú)立“表”,表可以實(shí)現(xiàn)數(shù)據(jù)共享、降低冗余度、加強(qiáng)數(shù)據(jù)獨(dú)立性、實(shí)現(xiàn)數(shù)據(jù)統(tǒng)一管理。表中定義如圖2所示的字段,每個(gè)字段也要選擇匹配的類(lèi)型、字長(zhǎng)等參數(shù)。圖7為數(shù)據(jù)庫(kù)創(chuàng)建成功界面顯示,最后只需將經(jīng)過(guò)模型計(jì)算的導(dǎo)出物理量存入庫(kù)中即可。
圖7 數(shù)據(jù)庫(kù)創(chuàng)建成功界面
經(jīng)過(guò)前期的一系列模型數(shù)據(jù)處理后,需要將定義的字段數(shù)據(jù)存入數(shù)據(jù)庫(kù),作為歷史資料保存并提供給客戶端。在idea平臺(tái)下,使用Java編寫(xiě)程序最后將數(shù)據(jù)存入My SQL數(shù)據(jù)庫(kù)。
My SQL數(shù)據(jù)庫(kù)存入成功的界面如圖8所示,此時(shí)第1列是累計(jì)流量,后2列是瞬時(shí)含水率與小時(shí)含水率。經(jīng)過(guò)測(cè)試10 d的數(shù)據(jù),每天同一時(shí)間上傳1次,服務(wù)器能夠成功的接受并且將導(dǎo)出物理量數(shù)據(jù)成功存入數(shù)據(jù)庫(kù),說(shuō)明此次流程已經(jīng)打通,數(shù)據(jù)存儲(chǔ)問(wèn)題已經(jīng)解決。
圖8 經(jīng)過(guò)模型之后數(shù)據(jù)成功存入數(shù)據(jù)庫(kù)界面
為油田維護(hù)人員提供查詢(xún)功能,可以在指定時(shí)間段查詢(xún)某一時(shí)間段內(nèi)的數(shù)據(jù),方便對(duì)油井井況的管理。圖9所示為一個(gè)查詢(xún)數(shù)據(jù)的My SQL示例代碼,其中meterdatastorage為獨(dú)立表的名稱(chēng),后面緊跟的是字段。between A and B是指具體的查詢(xún)時(shí)間段,A為起始時(shí)間,B為結(jié)束時(shí)間。在Navicat平臺(tái)下隨時(shí)隨地查詢(xún)數(shù)據(jù),達(dá)到設(shè)計(jì)的目標(biāo)。從圖9中可以明顯看出某一天查詢(xún)成功,顯示“OK”與查詢(xún)時(shí)間,說(shuō)明查詢(xún)數(shù)據(jù)設(shè)計(jì)合理。
圖9 指定時(shí)間段數(shù)據(jù)查詢(xún)成功界面
通過(guò)前期的分析可知,本文實(shí)現(xiàn)了原始數(shù)據(jù)上傳格式設(shè)計(jì)、服務(wù)器端解析程序設(shè)計(jì)和模型建立,將管道流體相含量的占比數(shù)據(jù)、其他相關(guān)參數(shù)存入到數(shù)據(jù)庫(kù)。在油氣水三相流檢測(cè)方面,將井口三相流測(cè)量數(shù)據(jù)上傳服務(wù)器,解決了油田井口數(shù)據(jù)匱乏的問(wèn)題。
油田井口三相流檢測(cè)系統(tǒng)已在某油田投入使用,云服務(wù)器運(yùn)行數(shù)據(jù)庫(kù)時(shí),油田工程師可以隨時(shí)調(diào)取數(shù)據(jù)分析油井狀況,并預(yù)測(cè)未來(lái)的油氣水的分布狀況,確定是否需要繼續(xù)注水,確定是否有繼續(xù)開(kāi)采的價(jià)值,尤其在三相流相含量檢測(cè)方面具有應(yīng)用價(jià)值。