褚浩元, 張傲雪, 李情霞, 黃曉東, 李喧喧, 趙巖龍*
(1.中國石油天然氣股份有限公司新疆油田分公司工程技術研究院(監理公司), 克拉瑪依 834000; 2.中國石油大學(北京)克拉瑪依校區, 克拉瑪依 834000; 3.中國石油天然氣股份有限公司新疆油田分公司陸梁油田作業區, 克拉瑪依 834000)
有桿采油系統在中國各油田中一直占據主導地位,該系統通過電機連接抽油桿柱上下運動,將地面能量傳遞給柱塞式抽油泵以及井下流體,從而進行采油[1-3]。然而,由于抽油機井工況復雜多變,加上砂、蠟、水、氣等外界因素的影響,生產中各類故障頻發,其中包括井下結垢、結蠟,抽油桿及油管的腐蝕、偏磨,抽油桿的疲勞斷裂等,需要長期維修作業[4-5]。頻繁的停井、修井作業嚴重影響生產效率及經濟效益,如何準確預測抽油機井故障,降低故障率,成為了國內外采油領域的研究熱點[6]。常用的抽油機井故障診斷方法有地面示功圖法,井下示功圖法,專家系統法,人工神經網絡法[7]等。早期的人工識別示功圖法在診斷時效性和準確度上仍有待提高;20世紀90年代時,專家系統法成為抽油機井故障診斷的主流方法;目前,結合大數據和深度學習等技術對抽油機井故障進行智能預警已成為發展趨勢。
近年來,大數據和深度學習等新興技術的出現,為解決抽油機井故障智能預警問題提供了新的解決思路[8-12]。其中,長短期記憶神經網絡在故障診斷等變量預測領域展示出良好的應用前景[13-14]。長短期記憶神經網絡是一種改進的循環神經網絡,在循環神經網絡的基礎上通過分析長時記憶序列可在海量數據中淘汰掉無用信息,突出有效信息,連接遠程記憶,還能有效避免循環神經網絡在反向傳播中產生的梯度消失等問題,適用于解決序列化問題[15],與油田生產數據相結合,可有效提高抽油機井故障預測準確率。
現基于長短時記憶神經網絡模型,通過對新疆油田某區塊內各種抽油機井故障的大數據進行分析,利用小波去噪技術降低數據噪聲比例,訓練出一個可以預測抽油機井故障類型的神經網絡模型。通過油井故障的準確預警,為抽油機井檢修和維護提供先期指導,對減少油井生產故障、提高油田生產效益具有現實意義。
長短期記憶神經網絡(long short-term memory networks, LSTM)是一種改進的循環神經網絡(recurrent neural network, RNN),在循環神經網絡的基礎上增加了細胞狀態和一系列門結構等,可以在一定程度上解決傳統的循環神經網絡在長時序列中梯度消失的問題[16]。
傳統的RNN結構單一,在短期記憶序列中展示了良好的學習能力,但接收長時依賴信息較為困難。
其常搭配使用來訓練RNN的反向傳播算法(back propagation through time,BPTT),通過誤差反饋隨時間反向傳播梯度,沿著待優化參數的梯度下降方向不斷尋找更優點直至收斂[17]。在此過程中,梯度逐層傳播更新同時會累計誤差,隨記憶序列的增長而減慢,導致收斂速度降低,當傳播梯度降低至近似于零時,訓練時間被無限延長,產生梯度消失或者梯度彌散現象[18-19]。這種結構上的缺陷導致RNN很難連接起遠程的記憶,極大地限制了其使用范圍,為解決RNN長時記憶問題,LSTM模型應運而生。
LSTM模型結構在RNN的基礎上引入了兩個傳輸狀態:細胞狀態(cell state)Ct和隱藏狀態(hidden state)ht,細胞狀態可以像傳送帶一樣將連續信息傳送給下個單元,可以用來儲存長期記憶,隱藏狀態主要儲存短期記憶。LSTM層由多個記憶單元鏈接而成,各單元內部按功能可分為遺忘門、輸入門和輸出門,單元內部結構如圖1所示。

圖1 LSTM單元內部結構Fig.1 The internal structure of LSTM
遺忘門(forget gate)ft,決定保留還是丟棄前一單元的狀態信息,篩選重要信息流入下一單元。相關計算公式為
ft=σ(Wf[ht-1,xt]+bf)
(1)
式(1)中:Wf、bf為遺忘門權重和偏置項;σ為sigmoid激活函數;[ht-1,xt]為上一時刻的輸出信息ht-1和當前時刻的輸入的信息xt組成的矩陣。
輸入門(input gate)it,用于對短期記憶單元的信息進行更新,記憶前一單元和當前單元狀態重要信息。相關計算公式如下。
it=σ(Wi[ht-1,xt]+bi)
(2)

(3)

經過遺忘門和輸入門之后,更新細胞狀態,相關計算公式為
(4)
式(4)中:Ct-1為上一時刻的單元狀態;Ct為當前的單元狀態。
輸出門(output gate)ot,經過狀態更新以后,確定輸出信息。相關計算公式為
ot=σ(Wo[ht-1,xt]+bo)
(5)
ht=ottanh(Ct)
(6)
式中:Wo為輸出的權值;bo為輸出偏置值;ht為當前時刻的輸出矢量。
基于LSTM的抽油機井故障預測具體流程包括:數據預處理、LSTM模型訓練、故障識別測試。
(1)通過對原始數據進行預處理,以提高數據有效性與訓練效果,保障模型預測精度;為了減小過擬合等問題的影響,訓練模型前將數據集按照合理比例劃分為訓練集和測試集。
(2)構建的故障預測模型是一個三層的LSTM序列分類模型,包含30個隱藏單元,以此可學習到序列數據在規定時間步內的變化情況,模型通過Softmax層和分類層的全連接層來劃分五種故障類型。
(3)最后將測試集輸入到訓練好的LSTM模型中,分析故障預測的準確性。
據新疆油田某區塊的實際生產數據統計顯示,結垢、結蠟、桿管腐蝕、桿管疲勞、桿管偏磨5種故障占全部故障的90%左右,是油井維護作業的主要原因。故障原因分類統計情況如圖2所示:結垢、結蠟、桿管腐蝕、桿管疲勞、桿管偏磨分別占所有故障原因的31.4%、25.6%、15%、14.4%、13.6%。選取了該區塊500口因上述5種原因導致修井作業的油井作為研究對象,逐天統計每口井的數據,數據共計46 376條,包括氯離子濃度、碳酸氫根濃度、硫酸根濃度、總礦化度、地層原油密度、地層原油黏度、日產液、日產油、含水度、泵掛深度、油管壓力、套管壓力、沖程、沖次,共計14種特征信息。

圖2 5種故障原因占比Fig.2 Proportion of five fault causes
油田原始生產數據通常會存在有缺失值、重復值等干擾信息,這些冗余信息會降低訓練結果的準確性,在模型訓練前,需要對獲得的數據進行清洗,突出不同特征數據之間相互關聯的有效信息。數據處理的方式因不同的需求和數據集屬性各有差異,在去除唯一屬性、缺失值處理、特征編碼進行數據預處理的基礎上,利用小波去噪方法降低數據噪聲比例,最后將數據標準化。
一般情況下,數據的唯一屬性并不會對樣本分布規律及特征關聯產生影響,但在訓練LSTM模型的過程中,存在部分特征的數據始終為常數但影響到最終訓練結果的情況。為了避免此類情況,刪除了此類數據項。
缺失值可以按照缺失的分布類型分為完全隨機缺失、隨機缺失、非隨機缺失3種。缺失值會直接導致系統丟失大量有用信息,并且不完全變量會使訓練過程陷入混亂甚至無法進行,這將降低系統所表現出來的確定性成分比例,增大誤差。通常可以直接刪除含有缺失值的樣本或利用插值填充的方法進行缺失值處理,由于獲取的抽油機井數據中僅有少量缺失,這里選擇將缺失數據的井剔除,不參與訓練,同時也需要把過小和過大的數據剔除掉,從而減少誤差。
當學習的特征中帶有非數字的特殊符號時,需要對特征進行編碼來量化。特征值不多的情況下,為了直觀地區分這非數值特征,通常采取獨熱編碼(one-hot encoding)。獨熱編碼又稱為一位有效編碼,它用N位的寄存器來對N個狀態進行編碼,用1和0表示對應狀態的真假,在任意時刻只有一位有效。將統計得到的抽油機井發生故障的五大原因:結垢、結蠟、腐蝕、偏磨、疲勞,分別編碼為10000、01000、00100、00010、00001。
統計數據時不同單位存在差異,如果直接使用單位不統一的數據,數值量級大的數據就會占據主導地位,降低迭代速度,影響預測結果。為了使訓練過程穩定高效,采用了標準分數法來統一處理數據。
先期模型測試表明將獲取的數據在處理唯一值、缺失值、標準化后直接訓練,訓練模型的預測準確率普遍較低,僅為50%左右。為了提高模型預測準確率,對前文得到的數據集進一步去噪。在信號處理方面,小波去噪技術應用廣泛且效果較好[20-21],這里采用應用較成熟、計算速度較快的小波閾值去噪法對數據去噪。小波閾值去噪需要根據數據集的特性選擇合適的小波基和分解層數,設定閾值及閾值函數,并對小波系數進行處理,重構信號,降低噪聲比例,達到突出數據有效信息的目的。統計數據中共包含14個特征量,每一個樣本中最多保留60條數據,圖3為同一樣本的其中一種特征數據去噪前和去噪后的對比曲線。

圖3 小波處理前后的特征曲線對比Fig.3 Comparison of characteristic curves before and after wavelet processing
采用db3小波基函數,其中db代表所屬多貝西小波(Daubechies wavelet),數字3表示消失矩,小波濾波器的長度為該值的兩倍,消失時刻越大,小波越光滑。通過小波函數將原始數據分解,時間步過短的特征無法分解,會被跳過。時間步的選擇會導致得到的數據集樣本數不一樣,最終選擇以10為閾值,去除存在較多缺失值和時間步太短的數據,最終剩下464個樣本。選擇了啟發式閾值原則(heursure),作為無偏似然估計原則(SURE threshold)和固定閾值估計原則(sqtwolog)的折中方法,啟發式閾值原則將根據信號信噪比大小來判斷采用無偏似然估計規則還是固定閾值規則,計算公式如下。

(7)

(8)

(9)
式中:n為待估計小波系數向量的長度;λ1為固定閾值原則計算的閾值;λ2為無偏似然估計原則計算的閾值。
根據相關研究[20]及測試分析發現軟閾值的去噪性能優于硬閾值,因此選擇使用軟閾值函數對參數閾值化進行處理。已去除唯一屬性、處理缺失值的數據經過小波降噪后,再進行標準化處理,輸出為最終數據集。
數據預處理篩選后獲得數據集共計464組,每個數組代表一口井。將數據集劃分為訓練集和測試集,其中370組為訓練集(占總數據集的80%),94組為測試集(占總數據集的20%)。通過獲取訓練集數據里不同故障類別樣本中同一特征的序列,可給出同一特征序列圖。以氯離子含量為例,圖4為以氯離子含量為特征參數并經過標準化處理后的各類故障特征曲線,圖像表明各類故障下氯離子含量隨時間步的變化規律差異較大,說明氯離子含量可作為故障預測的特征參數。同一個樣本里所有特征序列隨時間步的變化曲線如圖5所示。

圖4 同一標準化特征值序列圖(氯離子含量)Fig.4 Sequence diagram of the same feature with chloride ion concent as an example

圖5 訓練集中同一樣本特征序列圖Fig.5 Feature sequence diagram of the same sample in training set
采用自適應矩估計(adaptive moment estimation,ADAM)優化器進行訓練,共進行100輪訓練,每輪迭代2次,總計進行了200次迭代。為了避免梯度爆炸,將梯度閾值設置為1。初始學習率為0.01,會分段調整學習策略。何時降低學習率由學習率下降周期決定,將其設置為20,即每迭代40次便會降低一次周期。按上述模型參數設置訓練LSTM網絡,訓練結果較好,如圖6所示。

圖6 訓練過程及結果Fig.6 Training process and results
圖7給出了訓練過程中損失函數變化、精度變化和學習率變化曲線。損失函數可以度量模型的預測值與真實值的差異程度,函數值越低,預測值與真實值的差異越小。損失函數值往往隨著訓練的進行逐步降低,最終趨于收斂。由圖7(a)可知,訓練初始損失值約為1.6,隨后迅速下降,在時間步20處下降到0.4左右,短暫波動后并于時間步40處降到0.1左右,之后趨于收斂,預測的效果較好。

圖7 訓練損失函數、訓練精度變化、訓練學習率Fig.7 Training loss function, training accuracy change, training learning rate
由圖7 (b)可知,開始訓練時精度在20%左右,隨后迅速提高,在時間步20處已達到80%以上,最后訓練精度將近97%,說明該模型分類精度較高。該模型中訓練損失函數的計算方法與分類精度類似,所以兩種函數的趨勢基本一致,但隨著函數選擇的不同二者可能會產生不同的趨勢。由圖7 (c)可知訓練初始學習率為0.01,每迭代40次降低一次學習率,學習率下降因子為0.1。
圖8給出了測試集中同一樣本特征序列圖,由圖可知氯離子、碳酸氫根、硫酸根、總礦化度、密度、黏度的曲線基本重合。利用模型讀取測試數據并對每個時間步的故障進行分類,將各個參數輸入到分類函數輸出結果。圖9給出了LSTM模型故障預測結果與實際結果對比曲線,由圖可知兩條曲線高度重合,所選的94口測試井的測試結果有91口井與實際結果相同,預測準確率為96.81%,測試效果較好。

圖8 測試集中同一樣本特征序列圖Fig.8 Feature sequence diagram of the same sample in the test set

圖9 預測結果與實際結果對比Fig.9 Comparison of predicted results with actual results
為了減小測試集隨機性對預測精度帶來的影響,利用預測分數進一步評價模型預測效果。預測分數的數值代表被預測成這類故障的概率,每一口測試井的5類故障的預測分數之和都為1,如圖10所示,絕大多數的測試井中都有一類故障的預測分數接近1,這說明模型預測結果的隨機性小,具有一定的泛化能力。

圖10 預測分數Fig.10 Predicted scores
(1)針對新疆油田某區塊的抽油機井故障情況,統計了500口油井的生產數據,明確了結垢、結蠟、桿管腐蝕、桿管疲勞、桿管偏磨5種引發抽油機井故障的主因,篩選出影響油井故障的 14 種特征參數。
(2)在標準化數據預處理的基礎上,利用小波去噪技術,通過設定閾值及閾值函數對小波系數進行處理并重構信號,能夠降低數據噪聲比例,突出有效特征,提高故障預測的準確率。
(3)借助優化算法,構建了一個基于長短時記憶神經網絡的抽油機井故障診斷模型,測試表明模型對測試集的預測準確率較高,能夠為抽油機井檢修和維護提供先期指導。