邢 鑫,吳 偉,魏航信,李 博
(西安石油大學機械工程學院,西安 710065)
在石油開采行業(yè)中,抽油泵系統(tǒng)起著舉足輕重的作用。然而,惡劣的井下工作環(huán)境和復雜的工況使得抽油泵系統(tǒng)時常發(fā)生各種故障。此外,由于油井區(qū)域零散分布以及油井間的道路不便,使得油井的管理和維護成本高企??焖佟⒏咝?、扁平的故障分類模型和可視化終端的搭建顯得尤為重要。
示功圖是由功率計測得的抽油泵系統(tǒng)關于“位移-載荷”的二維曲線,示功圖的不同形狀可以簡單直觀地反映抽油泵系統(tǒng)當前的運行狀態(tài)[1-3]。因而,利用示功圖作為樣本構建抽油泵系統(tǒng)故障分類模型是當前主要的研究方向。圖1 所示為抽油泵系統(tǒng)典型工況的示功圖。
圖1 抽油泵系統(tǒng)典型工況的示功圖
圖1(a)為理論示功圖,理論示功圖曲線為平行四邊形。圖1(b)為供液不足故障的典型示功圖。供液不足是抽油泵的沉沒度不足,從而在一定時間內泵入油泵的液體無法充盈泵筒,或者是油質稠密使得液體泵入緩慢而導致的一種常見的故障。供液不足的典型特征是示功圖的右下角迅速變化。圖1(c)為正常工況的示功圖,其典型特征為示功圖曲線近似為平行四邊形。圖1(d)為抽油桿斷裂的典型示功圖。由于抽油桿斷裂后,功率計只能檢測斷裂點以上的抽油桿柱在重力和摩擦力作用下產(chǎn)生的載荷,所以示功圖曲線會失去正常工況示功圖所占據(jù)的范圍和形狀而變?yōu)槠焦鳡頪4]。圖1(e)為碰泵故障,柱塞與游動閥發(fā)生碰撞使得示功圖曲線右上角死點位置出現(xiàn)針狀。圖1(f)為漏失故障。
眾多學者利用示功圖中沖程載荷等一系列參數(shù)進行抽油泵系統(tǒng)故障分類。鐘張起等[5]對示功圖加卸比與供液能力以及泵效進行相關性定量分析;鐘張起等[6]利用示功圖載荷比表征油井當前的結蠟程度;朱春梅等[7]利用分形盒維數(shù)對抽油泵系統(tǒng)示功圖進行故障分類;鐘張起等[8]通過研究確定示功圖載荷比作為評價抽油泵系統(tǒng)當前結蠟程度的指標。Jiang等[9]使用速度、電壓、電流、油壓、動液面深度、產(chǎn)油量等參數(shù)輸入到隨機森林模型進行抽油泵系統(tǒng)故障分類;Jiang 等[10]將示功圖典型參數(shù)輸入BP 神經(jīng)網(wǎng)絡模型實現(xiàn)了抽油泵系統(tǒng)故障分類;Lv等[11]建立有桿泵的數(shù)學模型,從而得到模擬示功圖,再利用模擬示功圖訓練增量支持向量機模型從而實現(xiàn)分類;Han等[12]用Freeman鏈編碼作為示功圖的特征,使用腦風暴算法優(yōu)化聚類實現(xiàn)抽油泵系統(tǒng)故障分類。
此外,部分學者直接利用示功圖圖像實現(xiàn)抽油泵系統(tǒng)故障分類。段友祥等[13]利用Alexnet 模型實現(xiàn)示功圖的分類;仲志丹等[14]利用卷積神經(jīng)網(wǎng)絡(CNN)提取示功圖中的特征,然后使用支持向量機(SVM)實現(xiàn)示功圖分類;劉寶軍等[15]將200 口典型的抽油機示功圖作為訓練樣本輸入到卷積神經(jīng)網(wǎng)絡模型(CNN),該模型對常見故障的識別準確率89.3%。杜娟等[16]在深度分離卷積模型中引入正則化注意力模塊,使得模型在降低存儲空間的同時提高模型分類準確率,該模型的故障診斷準確率為95.1%;檀朝東等[17]使用殘差卷積神經(jīng)網(wǎng)絡模型提取結蠟故障示功圖中的特征,然后使用長短時記憶神經(jīng)網(wǎng)絡進行結蠟程度的定量預測。
本文使用Pytorch 搭建卷積神經(jīng)網(wǎng)絡模型實現(xiàn)示功圖的分類,然后通過4G模塊將不同區(qū)域油井的信息傳輸?shù)接傻谌介_源庫kivy 搭建的可視化終端實現(xiàn)油井狀態(tài)、故障類型以及處理措施等信息的顯示。同時將相關數(shù)據(jù)保存到MySQL數(shù)據(jù)庫中,以便開展后續(xù)工作。
卷積神經(jīng)網(wǎng)絡(CNN)模型架構如圖2 所示,卷積神經(jīng)網(wǎng)絡模型共分為卷積層、歸一化層和池化層以及全連接層3 個部分,預測結果中,ILS 代表供液不足故障,NOC 代表正常工況,SRB 代表抽油桿斷裂故障,SPB 代表碰泵故障,CST代表漏失故障。下面將具體介紹各個部分的數(shù)學基礎。
圖2 卷積神經(jīng)網(wǎng)絡(CNN)模型架構示意圖
尺寸為dW×dL的示功圖圖像Di作為卷積神經(jīng)網(wǎng)絡的輸入。卷積層是使用尺寸不一的卷積核與Di進行卷積運算從而實現(xiàn)從Di中提取可以有效識別Di所屬類別的特征。激活函數(shù)是將卷積運算得到的特征非線性化,從而進一步提升整個模型的非線性性和模型的泛化能力。圖像Di通過卷積層和激活函數(shù)的過程可以由下式表示:
式中:H為圖像Di經(jīng)過卷積層和激活函數(shù)后輸出的結果;Ψ為激活函數(shù);W為尺寸為dk×dk×1 卷積核對于輸入圖像描繪的權重系數(shù);b為偏置大小。
由于不同的圖像Di樣本中尺寸、特征分布大相徑庭。為了模型不受其影響,通常在卷積層后加入歸一化層從而實現(xiàn)結果H的歸一化。本文使用的是局部響應歸一化進行H的歸一化。
工程中,由于設備的計算能力有限,同時為了節(jié)省計算資源,模型在卷積層和歸一化層后會加入池化層對H進行下采樣,從而大幅降低模型計算成本。尺寸為dH×dH的圖像經(jīng)過尺寸為dP×dP的池化層后,輸出圖像尺寸變?yōu)?dH/dP)×(dH/dP)。輸入圖像Di依次經(jīng)過卷積、歸一化、池化運算后,最終獲得Q個尺寸為dO×dO,可以有效表征圖像Di的特征圖。特征圖經(jīng)過特征平鋪組成尺寸為(Q×dO×dO)×1的向量VD。
圖像Di經(jīng)過多層的卷積運算后,獲得可以表征Di的高維特征VD。VD通過全連接層進行特征融合,同時為了降低模型的過擬合概率以及提升模型的泛化能力,本文在全連接層中加入隨機失活層。最終全連接層的5 個輸出oi再經(jīng)過Softmax 函數(shù)輸出模型對輸入Di屬于各類故障的概率。該過程的數(shù)學表達為:
式中:αi為卷積神經(jīng)網(wǎng)絡模型判斷輸入圖像Di為第i類故障的概率;oi為全連接網(wǎng)絡第i個節(jié)點的輸出值。
本文從西北某油田獲取的包含正常工況、供液不足故障、漏失故障、碰泵故障、抽油桿斷裂故障5 種故障共1 000 余張示功圖。按照70∶30 的比例將示功圖樣本劃分為訓練集和測試集進行模型的訓練和模型分類性能的測試。
在該數(shù)據(jù)集中,供液不足故障和正常工況的樣本數(shù)量占據(jù)數(shù)據(jù)集的主體地位。而抽油桿斷裂故障、碰泵故障、漏失故障的樣本數(shù)小于數(shù)據(jù)集總樣本數(shù)的20%。為了模型對所有故障分類準確率的穩(wěn)定,本文使用由Lin等[186]提出的針對長尾分布數(shù)據(jù)集的損失函數(shù)。損失函數(shù)F(pi)由下式表示:
式中:γ為超參數(shù),本文中最佳的γ值為2.3;pi為輸入示功圖屬于第i類故障的概率,pi由式(4)可得:
式中:ti為輸入示功圖的真實故障分類。
卷積神經(jīng)網(wǎng)絡模型經(jīng)過5 次獨立重復實驗,最終抽油泵系統(tǒng)對各類故障的分類準確率的混淆矩陣如圖3 所示,圖中,ILS 代表供液不足故障,NOC 代表正常工況,SRB代表抽油桿斷裂故障,SPB代表碰泵故障,CST為漏失故障。由圖可知,卷積神經(jīng)網(wǎng)絡模型對抽油泵系統(tǒng)供液不足故障的分類準確率為97.92%,對正常工況示功圖的分類準確率為84.82%,對抽油桿斷裂故障的分類準確率為74.29%,對碰泵故障的分類準確率為75.0%,對漏失故障的分類準確率為83.75%。
圖3 卷積神經(jīng)網(wǎng)絡模型對抽油泵系統(tǒng)故障分類混淆矩陣
作為萬物互聯(lián)的核心器件,4G 網(wǎng)絡模塊的使用已經(jīng)遍及各行各業(yè)。此外,我國抽油井具有分布廣、油藏分布零散、產(chǎn)量不高、油井周圍環(huán)境差、開采成本高等特點。這就使得油井管理成本和維護成本高企。因此,分布在各地的抽油井的運行狀態(tài)通過傳感器進行數(shù)據(jù)采集,然后4G模塊將數(shù)據(jù)實時上傳到控制終端。工程師可以遠程監(jiān)測,及時發(fā)現(xiàn)抽油泵系統(tǒng)存在的問題,從而實現(xiàn)快速、高效、便捷、扁平的抽油泵監(jiān)測維護,進而提高抽油井生產(chǎn)效率、降低石油開采和設備維護成本。
4G 通信具有通信速度高、兼容性好等特點,其最高通信速度達100 Mb/s。本文使用的是正點原子的4G 模塊ATK-IDM750C。該4G 模塊供電電壓為12 V,通過通用異步收發(fā)傳輸器(UART)與單片機進行串口波特率為9 600 bit/s 的串口通信。4G 模塊參數(shù)配置如表1 所示。抽油泵系統(tǒng)的數(shù)據(jù)傳輸過程如圖4 所示。抽油泵系統(tǒng)中功率計等傳感器通過I2C通信將數(shù)據(jù)傳輸給單片機,單片機與4G 模塊進行UART 通信。單片機根據(jù)控制平臺的命令將數(shù)據(jù)通過4G模塊上傳到正點原子設計的原子云平臺,再通過TCP協(xié)議將數(shù)據(jù)下載到本地的數(shù)據(jù)庫進行保存。
表1 4G模塊參數(shù)配置
圖4 抽油泵系統(tǒng)數(shù)據(jù)傳輸過程圖示
本文使用數(shù)據(jù)庫為MySQL 數(shù)據(jù)庫。MySQL 屬于關系型數(shù)據(jù)庫管理系統(tǒng),它將數(shù)據(jù)保存到不同的表中,從而提高數(shù)據(jù)庫的快捷性和靈活性。
在Python 中操作MySQL 數(shù)據(jù)庫需要使用第三方庫pymysql。具體的操作流程如下。
(1)創(chuàng)建數(shù)據(jù)庫。用戶輸入主服務器的域名、端口名、用戶名和密碼等信息后,利用cursor.execute("CREATE DATABASE IF NOT EXISTS xx")函數(shù)創(chuàng)建數(shù)據(jù)庫,然后使用db.select_db("xx")函數(shù)連接創(chuàng)建好的數(shù)據(jù)庫。
(2)創(chuàng)建表。在已經(jīng)創(chuàng)建好的數(shù)據(jù)庫中創(chuàng)建表。本文數(shù)據(jù)庫中的表包含以下信息:①抽油井井號,使用VARCHAR 類型存入數(shù)據(jù)庫;②示功圖采樣時間,使用DATE 類型存入數(shù)據(jù)庫,油井井號和采樣時間的存儲是為了方便后續(xù)的數(shù)據(jù)直觀查詢;③示功圖的沖程序列,由于繪制一張示功圖所包含的沖程序列數(shù)據(jù)點較多,所以使用TEXT類型存入數(shù)據(jù)庫;④示功圖的載荷序列,同樣使用TEXT類型存入數(shù)據(jù)庫;⑤最大最小載荷、沖程、沖次等示功圖直接獲取的參數(shù),這些參數(shù)合并為一個TEXT類型存入數(shù)據(jù)庫;⑥示功圖曲線包圍的面積以及示功圖重心分割后各個子區(qū)域的面積;⑦載荷比,示功圖AC兩點連線與x軸的夾角,BD兩點與x軸的夾角,示功圖固定閥和游動閥的工作位移,加載沖程及卸載沖程;⑧示功圖AB段曲線、BC段曲線、CD段曲線、DA段曲線的信息熵,參數(shù)f、g、h、i、j、k合并為一個TEXT 類型存入數(shù)據(jù)庫;⑨示功圖圖像,使用BLOB 類型存入數(shù)據(jù)庫;⑩示功圖及其頻域圖的疊加圖像,該圖像由于數(shù)據(jù)量較大,所以使用MEDIUMBLOB類型存入數(shù)據(jù)庫。
(3)讀取示功圖,計算相關參數(shù),并使用cursor.execute("INSERT INTO func_name VALUES value")函數(shù)將相關數(shù)據(jù)插入數(shù)據(jù)庫。
(4)后續(xù)需要使用數(shù)據(jù)庫中數(shù)據(jù)時,使用cursor.execute("SELECT func_name FROM table")函數(shù)查詢table表中的func_name 數(shù)據(jù)。然后使用cursor.fetchall()函數(shù)將查詢到的數(shù)據(jù)進行保存,以便使用。
本文使用Python 的開源庫Kivy 搭建抽油泵系統(tǒng)的監(jiān)測終端。Kivy 是一種面向自然用戶界面的開發(fā)庫,它可以實現(xiàn)多點觸控應用的開發(fā)。具有簡單、高效、快捷、成本低等特點,其開發(fā)的程序可以在安卓、Linux、IOS、Windows 等多平臺運行。本文使用Kivy 中的函數(shù)如表2所示。
表2 Kivy開源庫部分函數(shù)說明
當用戶終端向控制平臺請求訪問抽油井的信息時,控制平臺在用戶信息合法的前提下通過TCP 協(xié)議向用戶終端發(fā)送相關抽油井的信息。首先用戶需要在登錄界面輸入自己的用戶名和用戶密碼。在用戶點擊登錄按鍵后,用戶輸入的數(shù)據(jù)將和數(shù)據(jù)庫中存儲的用戶數(shù)據(jù)進行比對。輸入的數(shù)據(jù)錯誤時,界面提醒相關信息輸入錯誤,并提醒用戶重新輸入信息。當輸入信息合法時,監(jiān)測終端進入如圖5(a)所示的系統(tǒng)首頁。系統(tǒng)首頁顯示控制平臺當前的時間、可以訪問的抽油井的井號以及當前與控制平臺未連接的抽油井井號。用戶僅可以點擊可以訪問的抽油井的相關信息。在用戶點擊某一油井井號按鍵后,系統(tǒng)向控制平臺發(fā)送數(shù)據(jù)傳輸請求信號,控制平臺將對用戶權限進行審核。當用戶權限不滿足要求時,監(jiān)測系統(tǒng)顯示提示信息;當用戶權限滿足要求時,控制平臺向該油井發(fā)送數(shù)據(jù)查詢命令。油井段單片機在接收到命令后,將傳感器采集到的示功圖信息通過4G 網(wǎng)絡進行上傳。控制平臺將示功圖輸入到卷積神經(jīng)網(wǎng)絡模型中預測抽油泵系統(tǒng)的故障分類,并根據(jù)分類結果在數(shù)據(jù)庫中查詢對應的處理措施。
圖5 抽油泵系統(tǒng)監(jiān)測終端界面
上述過程完成后,控制平臺通過TCP 協(xié)議將油井的示功圖信息發(fā)送到用戶終端。圖5(b)顯示油井井號為1-1,工況為正常工況的處理意見。圖5(c)顯示油井井號為1-2,工況為供液不足,處理處理意見為建議該井進行油層改造,改善抽油泵沉沒度從而提高泵效。圖5(d)顯示油井井號為2-1,工況為抽油桿斷裂,處理意見為及時更換抽油桿。圖5(e)顯示油井井號為2-2,工況為碰泵故障,處理意見為適當調整抽油泵的防沖距離。圖5(f)顯示油井井號為3-3,工況為閥門漏失,處理意見為進一步改善閥門密封性能。用戶將所有信息瀏覽完畢后,可以點擊返回按鍵返回系統(tǒng)主頁面繼續(xù)后續(xù)操作。
本文使用卷積神經(jīng)網(wǎng)絡模型實現(xiàn)抽油泵系統(tǒng)故障分類。該模型對供液不足故障的分類準確率為97.92%,對正常工況示功圖的分類準確率為84.82%,對抽油桿斷裂故障的分類準確率為74.29%,對碰泵故障的分類準確率為75.0%,對漏失故障的分類準確率為83.75%。油井示功圖信息以及模型輸出的故障分類結果通過4G模塊上傳到云端,并且使用Kivy 庫和MySQL 數(shù)據(jù)庫搭建了本地的可視化的用戶監(jiān)測終端和數(shù)據(jù)存儲平臺。本文使用卷積神經(jīng)網(wǎng)絡模型進行故障分類、Kivy 用戶終端平臺構建可視化界面以及MySQL 數(shù)據(jù)庫進行數(shù)據(jù)存儲的綜合方案對后續(xù)智慧油田建設有借鑒和指導意義。