梁 鑫,張著洪
(1.貴州大學(xué)大數(shù)據(jù)與信息工程學(xué)院,貴州 貴陽 550025; 2.貴州省系統(tǒng)優(yōu)化與科學(xué)計算特色重點實驗室,貴州 貴陽 550025)
油井供液能力評估一直是石油行業(yè)關(guān)注的重要話題,也是涉及石油勘測設(shè)備維護和井下油量估算的科學(xué)問題,因此開展油井的動液面位置估計和深度計算研究,對采油企業(yè)自身的發(fā)展具有重要的現(xiàn)實意義[1]。已有5種方法常被用于動液面位置標(biāo)定,即浮筒法[2-3]、壓力計探測法、泵功圖法[4-5]、軟測量法[6-7]與聲波法[8-12]。前2種方法因設(shè)備工藝復(fù)雜、成本高、使用和維護時需要現(xiàn)場操作、性價比低等原因,已經(jīng)逐漸被淘汰。泵功圖法是一種依據(jù)地面示功圖及抽油系統(tǒng)的動力學(xué)模型獲取泵功圖,進而依據(jù)凡爾開閉點及相關(guān)模型確定動液面位置;該方法因泵在井下的工況復(fù)雜,導(dǎo)致基于泵功圖的液面檢測誤差大,較難獲得液面的準(zhǔn)確位置。軟測量法主要是利用油井參數(shù)來建立度量液面位置的數(shù)學(xué)模型,但采油的工藝較復(fù)雜,加之各種地質(zhì)參數(shù)常因環(huán)境的變化而動態(tài)變化,且數(shù)據(jù)采集難度大,故該方法的應(yīng)用需求較少。聲波法是一種具有重要應(yīng)用價值的動液面深度計算方法,其依據(jù)聲波在井下傳播形成的節(jié)箍波曲線,通過高通、低通濾波獲取高頻、低頻信號,進而確定液面位置和聲波轉(zhuǎn)播的平均速度。該方法涉及人工檢測和聲波幅值檢測2種類型,但由于油井的氣壓及節(jié)箍表層被雜質(zhì)污染,導(dǎo)致聲波曲線受噪聲干擾較嚴(yán)重,進而造成波形嚴(yán)重失真,影響液面位置確定的精度和平均聲速的計算準(zhǔn)確度。為此,吳進峰[13]、吳新杰等[14]基于人工神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò),研究動液面的標(biāo)定方法,力求從采集的聲波信號中提取原始聲波信號,但其實際的應(yīng)用受限;周家新等[11]提出一種基于短時能量及過零率函數(shù)的液面位置檢測方法,其能檢測出動液面位置,但參數(shù)設(shè)置較為困難,實用性有待增強。
綜上,由于油井地質(zhì)復(fù)雜,加之井下節(jié)箍受地下環(huán)境污染嚴(yán)重以及受油井作業(yè)時混合氣流的影響,油井供液能力研究尚未取得突破性進展。為了探究一套簡單可行的算法來檢測動液面位置和解算液面深度,本文針對常規(guī)短時能量函數(shù)及短時能量過零函數(shù)用于確定油井液面位置時,易于導(dǎo)致獲得的聲波信號出現(xiàn)短時能量較大和短時過零率較低的問題,提出更能有利于確定液面位置的改進型短時能量過零函數(shù);針對削波函數(shù)作用于B通道節(jié)箍波信號時,導(dǎo)致節(jié)箍位置較難確定,使得回聲波的平均聲速計算較難準(zhǔn)確計算,在此提出一種改進型削波函數(shù),并用其刻畫抽油桿節(jié)箍的位置特征。進而,將獲得的改進型函數(shù)作用于A、B兩通道的聲波信號,獲得融合多種候選液面位置的液面深度計算算法。最后,利用此算法獲得的液面位置和平均聲速,以及實測的液面深度建立樣本集,探討一種基于長短時記憶神經(jīng)網(wǎng)絡(luò)的動液面深度預(yù)測模型。實驗結(jié)果表明,獲得的液面深度計算方法能有效確定液面位置,得到的預(yù)測模型對動液面深度預(yù)測具有一定的參考價值。
聲波法測井是通過聲波發(fā)射裝置向油井發(fā)射聲波脈沖信號,然后在井口處用微音器接收回波信號,進而借助帶通濾波和自適應(yīng)濾波將回波信號分解為A通道低頻信號和B通道高頻信號;最后,依據(jù)相關(guān)的信號處理方法,確定動液面的位置和回波的平均聲速,并通常經(jīng)由下式計算液面的深度:
(1)
式中,LDepth表示液面深度,v表示聲波的平均傳播速度,t表示聲波從井口到液面后再返回井口的時間。由于A、B通道獲得的高、低頻信號因環(huán)境噪聲的干擾,尚不能直接由此來研究動液面位置與聲速的變化特性,因此本文將此兩通道的信號作進一步處理,即首先將卡爾曼濾波模型[15-16]中當(dāng)前的估計狀態(tài)用鄰近的k步估計狀態(tài)的均值取代,然后將獲得的卡爾曼濾波對此兩通道的信號作濾波處理。
短時能量法(Short Term Energy, STE)[17-19]是語音信號處理中常用的時域分析法,其本質(zhì)上刻畫了信號的幅值變化。語音信號處理中的時間序列信號的短時能量常由下式度量:
(2)
或
(3)
其中,h(n-k)表示窗函數(shù),h(n-k)=g2(n-k),x(k)表示語音信號。式(3)表明,信號的短時能量就是信號x2(n)經(jīng)過沖擊響應(yīng)h(n)濾波后的結(jié)果;與此同時,若將信號時間序列減去均值后再作歸一化處理,則得到的時間序列的無關(guān)信號集中在0附近,且由式(3)得到的能量能刻畫時間序列在波形較高位置處的能量幅值大小??墒?,該式僅能刻畫波形的幅值特征,不能表征波形穿過橫軸(零電平)的頻率特性。為此,引入過短時幅值和短時過零函數(shù)[19]來刻畫波形的特征,即短時幅值、短時過零函數(shù)分別由下式定義:
(4)
(5)
式中,sgn(·)為符號函數(shù)。綜合式(4)與式(5),文獻[11]提出短時能量過零函數(shù)(Short-term Energy Crossing Zero Function, STECZF),即:
(6)
其中,m表示幀數(shù),a、b、β、γ需依據(jù)油井的特性而定。由于聲波的發(fā)射和接收的設(shè)備不同,導(dǎo)致式(6)較難被用于刻畫回聲波的波形特征,加之其包含的3個待確定參數(shù)在實際應(yīng)用中較難確定。為此,依據(jù)式(4)~式(6),提出如下改進型短時能量過零函數(shù):
(7)
相比于式(6),式(7)僅有1個待定參數(shù),此不僅能刻畫時間序列的波形幅值變化特征,而且也能刻畫波形的過零率特征。
雖然式(7)能有效刻畫A、B通道信號的動液面波形特征,并能確定液面的位置,但不能刻畫節(jié)箍波的周期信號特征,并因此不能獲得回聲波的平均傳播速度。為此,引入基于三電中心削波函數(shù),并設(shè)計改進型三電中心削波函數(shù)。
削波器[19]可應(yīng)用于語音信號波形的整形、變換等,其僅保留超過削波電平的語音信號。常用的削波器有三電中心削波函數(shù)C[xi(n)],即:
(8)
式中,xi(n)是信號分幀后的第i幀信號,CL是削波電平,一般取一幀信號的最大幅度的60%~70%。結(jié)合油井聲波信號的特性,將聲波信號時間序列的最小值引入式(8)中,獲得如下改進型三電中心削波函數(shù),即:
C[xi(n)]=
(9)
其中,CL是在0.3~0.5之間取值的常數(shù)。
改進型三電中心削波函數(shù)較適合于B通道的信號速度檢測。其與第1.1節(jié)獲得的動液面位置結(jié)合,可獲得如下算法來計算動液面深度。
圖1 STEZFBLDCA算法流程圖
液面深度計算需經(jīng)由2步完成。首先,依據(jù)A、B通道信號確定液面位置,其次依據(jù)B通道信號計算聲波的平均傳播速度。在此,利用改進型短時能量過零函數(shù)和A、B通道信號確定動液面的位置。對于回聲波的平均傳播速度計算,將以上改進型三電中心削波函數(shù)作用于B通道信號后,獲得具有明顯周期性特征的時間序列信號;然后,從第m個數(shù)據(jù)點開始,連續(xù)選取p個數(shù)據(jù)點,計算相鄰2個波谷點之間的平均時間tB,進而借助相鄰2個節(jié)箍點之間的長度計算回聲波的平均傳播速度。于是,基于改進型短時能量過零函數(shù)的液面深度計算算法(Short-term Energy Zero-crossing Function Based Liquid Depth Computation Algorithm, STEZFBLDCA)的算法流程如圖1所示,算法描述如下:
算法1STEZFBLDCA。
步驟1參數(shù)設(shè)置:式(7)中的參數(shù)a,油井回聲波離散信號{xk,1≤k≤N},以及信號的幀長L。
步驟2利用帶通濾波器將回聲波信號轉(zhuǎn)換為A、B通道信號。
步驟3利用卡爾曼濾波對A、B通道信號分別進行濾波。
步驟4依據(jù)幀長L,將A、B通道信號分別劃分為M幀:XA,n,XB,n,1≤n≤M。
步驟5液面位置確定:
步驟5.1由式(3)計算A、B通道的每幀短時能量:EA,n,EB,n,1≤n≤M。
步驟5.2由式(7)計算A、B通道的每幀短時能量過零函數(shù)值:KA,n,KB,n,1≤n≤M。
步驟5.3依據(jù)A通道確定液面的候選位置:
(10)
步驟5.4經(jīng)由B通道確定液面的候選位置:
(11)
步驟5.5經(jīng)由下式確定液面位置:
(12)
其中,round(·)為取整函數(shù)。
步驟6將改進型三電中心削波函數(shù)作用于B通道信號,獲得回聲波的平均傳播速度vB。
步驟7經(jīng)由下式計算液面的深度:
(13)
其中Ts表示回聲波離散信號的采樣時間。
步驟8輸出液面深度LD。
以上算法將短時能量函數(shù)及改進型短時能量過零函數(shù)作用于A、B通道信號,獲得4個候選液面位置,進而將其取均值便可獲液面位置,以及利用改進型三電中心削波函數(shù)確定回聲波的平均傳播速度。進而,由此液面位置、平均速度及液面深度計算公式,可得到液面的深度。該算法的可調(diào)參數(shù)少,且由多途徑確定液面的候選位置,因而可有效標(biāo)定液面位置。
長短時記憶(Long Short-term Memory, LSTM)[20-22]神經(jīng)網(wǎng)絡(luò)是一種適用于時序信號分析與預(yù)測的深度學(xué)習(xí)模型,其結(jié)構(gòu)如圖2所示。
圖2 LSTM神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)示意圖
LSTM由多個記憶塊依次連接而成,每個記憶塊主要有遺忘門、輸入與輸出門和一個記憶單元(cell)。它借助時序樣本點,利用前向傳播過程獲得各功能模塊的輸出,進而通過誤差反向傳播更新網(wǎng)絡(luò)的權(quán)值,其遺忘門與輸入門的輸出分別經(jīng)由下式計算:
ft=σ(Wf·[ht-1,xt]+bf)
(14)
it=σ(Wi·[ht-1,xt]+bi)
(15)
記憶單元的輸出經(jīng)由下式計算:
Ct=ft×Ct-1+it·tanh(WC·[ht-1,xt]+bC)
(16)
輸出門的計算如下:
ot=σ(Wo·[ht-1,xt]+bo)
(17)
其中ht=ot·tanh(Ct)。
給定油井樣本集為Ω,其容量為q,第i個樣本點表示為(xi,hi),在此xi表示油井i的回聲波信號構(gòu)成的向量,信號長度為N,hi表示油井i在回聲波信號下的實際液面深度。將樣本集Ω中聲波信號集{x1,x2,…,xq}中每個信號xi依次代入以上算法1中,經(jīng)由下式確定由A、B通道獲得的液面位置:
(18)
進而將如下集合Σ作為LSTM的訓(xùn)練樣本,即:
Σ={(nA,i,nB,i,vB,i;hi)|1≤i≤q}
(19)
其中,(nA,i,nB,i,vB,i)為LSTM的第i個輸入,hi為其相應(yīng)的期望輸出。由此,基于LSTM的液面深度計算算法(LSTM-Based Liquid Depth Computation Algorithm, LSTMBLDCA)的算法流程如圖3所示,其描述如下:
算法2LSTMBLDCA。
步驟1參數(shù)設(shè)置:式(7)中參數(shù)a,幀長L,幀數(shù)M。
步驟2輸入回聲波信號及對應(yīng)的實際液面深度構(gòu)成的集合{(xi,hi)|1≤i≤q}。
步驟3依據(jù)式(18)與式(19)獲如上所述訓(xùn)練樣本Σ。
步驟4利用樣本Σ訓(xùn)練LSTM,獲得液面深度預(yù)測模型。
步驟5輸入油井的測試樣本。
步驟6輸出油井的液面預(yù)測深度LD。
圖3 LSTMBLDCA的流程圖
算法2利用算法1獲得的候選液面位置及油井液面實測深度訓(xùn)練LSTM的網(wǎng)絡(luò)參數(shù),可獲得油井的液面深度預(yù)測模型。
在Windows 10 (CPU/i5-4210 2.60 GHz, RAM/4 GB) 、 MATLAB 2019a環(huán)境下展開數(shù)值實驗。
為測試STEZFBLDCA的液面深度計算效果,將短時能量函數(shù)、短時能量過零函數(shù)分別與常規(guī)的削波函數(shù)結(jié)合,獲得的油井液面深度計算方法依次記作STE和STECZF,并與STEZFBLDCA進行比較。另外,選取含有連續(xù)20次回聲波的油井的前16次回聲波訓(xùn)練LSTM,并用后4次回聲波檢測LSTMBLDCA的預(yù)測效果。設(shè)置a=3, LSTM網(wǎng)絡(luò)的輸入神經(jīng)元個數(shù)為3,隱藏層為20,輸出神經(jīng)元個數(shù)為1,迭代次數(shù)為600。測試實例為15口油井的液面計算問題,且所用數(shù)據(jù)為每口油井的聲波時序信號和對應(yīng)的實測液面深度。
1)液面深度的計算誤差比較。
選取STE、STECZF和文獻[11]中的方法與STEZFBLDCA進行比較。此4種方法作用于15口油井中每口油井的1次回聲波信號,并以每種算法獲得的15口井液面深度與實際液面深度的絕對誤差、相對誤差序列為基礎(chǔ)數(shù)據(jù),各算法計算得到的誤差統(tǒng)計值如表1所示。
表1 算法獲得的與實測的液面深度誤差統(tǒng)計量比較
經(jīng)由表1可知,各算法獲得的誤差統(tǒng)計值存在明顯的差異。文獻[11]方法的絕對誤差的均值和方差分別為42.92 m和1864.99,相對誤差的均值和方差分別為4.37%和0.18%,其與其它3種方法獲得的相應(yīng)值相比,均較大,因此文獻[11]的方法應(yīng)用于油井的液面深度估計,易導(dǎo)致估算精度較低。STE和STECZF的絕對誤差的均值分別為19.09 m及10.92 m,它們的相對誤差均值分別為1.57%和2.73%。因此,如此2種方法的液面深度計算效果沒有明顯差異。另外,STECZF的液面深度方差比STE、STEZFBLDCA的均要大,因此其液面深度計算結(jié)果的穩(wěn)定性較差。相比于STE及STECZF,STEZFBLDCA的計算精度明顯較高,且對各油井的液面深度計算的穩(wěn)定性也較好。由此,STEZFBLDCA更適合于油井的液面深度計算。
2)油井液面深度預(yù)測。
根據(jù)合作方提供的15口油井?dāng)?shù)據(jù),油井01的數(shù)據(jù)中含有20次回聲波信號。將前16次回聲波信號及油井實際液面深度作為LSTMBLDCA的訓(xùn)練樣本。進而,將得到的預(yù)測模型作用于第17~20次的回聲波信號。模型訓(xùn)練后的液面深度計算值與液面深度預(yù)測值如表2所示。
表2 LSTMBLDCA的模型計算與預(yù)測動液面深度值(LD)(油井編號01)
經(jīng)由表2獲知,LSTM利用第1~16次回聲波數(shù)據(jù)和實測數(shù)據(jù)訓(xùn)練后,獲得的模型的液面深度與實測深度較為接近,其導(dǎo)致絕對誤差的均值為3.9300 m,標(biāo)準(zhǔn)差為2.7501,同時導(dǎo)致相對誤差的均值為-0.00017以及標(biāo)準(zhǔn)差為0.0017,因此模型的訓(xùn)練效果較為理想。進一步,該模型經(jīng)由第17~20次回聲波預(yù)測的液面深度分別為2947.44 m、2921.23 m、2923.14 m、2904.69 m,此與實測液面深度極為接近,其預(yù)測液面深度與實際液面深度的絕對誤差均值為0.7613 m,標(biāo)準(zhǔn)差為1.7281;與此同時,其產(chǎn)生的相對誤差均值為-0.00016,標(biāo)準(zhǔn)差為0.0013。因此,得到的預(yù)測模型具有一定的預(yù)測能力,預(yù)測精度高。這也表明,借助算法1獲得的液面位置以及LSTM建立液面深度計算預(yù)測模型有一定的合理性,但由于回聲波的形成受油井地質(zhì)狀況的影響較大,從而導(dǎo)致液面深度預(yù)測仍具有一定的挑戰(zhàn)性。
油井動液面深度計算一直是油田行業(yè)中極為困難的工程問題,也是算法研究的重要學(xué)術(shù)性問題。本文通過深入分析刻畫液面位置特性、節(jié)箍波形特征的短時能量、短時能量過零函數(shù)、削波函數(shù)的性能特性,獲得改進型短時能量過零函數(shù)和削波函數(shù),并依據(jù)此函數(shù)提出油井液面深度計算算法(STEZFBLDCA)。進而,將此算法獲得的液面位置和平均聲速作為LSTM的輸入,得到可以預(yù)測油井動液面深度的算法(LSTMBLDCA)。比較性的實驗結(jié)果表明,STEZFBLDCA比STE及STECZF獲得的液面深度誤差小,液面深度計算效果的穩(wěn)定性較好,具有一定的應(yīng)用潛力;同時,LSTMBLDCA預(yù)測的液面深度與實際液面深度的偏差較小,具有較好的預(yù)測能力。但是,由于實際條件的限制,本文所用樣本容量較小,導(dǎo)致LSTMBLDCA的性能測試有待進一步研究。