劉芑辰 馮子明 蔣國斌 孫桐建 李琦
1. 東北石油大學機械科學與工程學院;2. 中國石油大慶油田有限責任公司采油工程研究院
采油工業(yè)中抽油井數(shù)量大、分布廣,人工監(jiān)測油井工況所需人力成本高,需要一種自動化診斷方法,以提高人工檢修效率,避免日常維護作業(yè)的盲目性。1988 年,Derek 等[1]研制出有桿抽油井故障診斷專家系統(tǒng),通過將地面實測的示功圖轉(zhuǎn)換成井下示功圖,然后與標準示功圖進行比較以判斷故障類型。1990 年,Rogers 等[2]將人工神經(jīng)網(wǎng)絡(luò)理論引入示功圖識別領(lǐng)域,應(yīng)用誤差反向傳播學習算法訓練神經(jīng)網(wǎng)絡(luò),能夠識別出所學習的15 類示功圖。但神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)較為簡單,使用效果并不理想。2008 年,楊洋[3]應(yīng)用灰色理論成功提取示功圖特征,并實現(xiàn)示功圖分類識別。但由于求取灰度矩陣所需計算量較大、花費時間較長,使得灰色理論在實際應(yīng)用中受到一定限制。2016 年,文必龍等[4]使用模糊神經(jīng)網(wǎng)絡(luò)解決抽油機故障診斷問題,由于模糊理論的診斷方法需要先建立隸屬函數(shù),而隸屬函數(shù)建立方法并未明確,限制了這一方法的廣泛應(yīng)用。近年來相關(guān)研究進一步完善,Bezerra 等[5]將前饋神經(jīng)網(wǎng)絡(luò)用于診斷示功圖,準確率達98%以上,但受限于神經(jīng)網(wǎng)絡(luò)隱含層數(shù)限制,導致無法對更復雜的函數(shù)進行擬合,因此對實際工況的刻畫能力有限。2017 年,段友祥[6]應(yīng)用簡化Alexnet 模型實現(xiàn)了對故障示功圖的識別,但分類僅為4 類,無法滿足實際使用需求。
基于卷積神經(jīng)網(wǎng)絡(luò)模型提出一種有桿抽油系統(tǒng)的智能故障診斷方法。根據(jù)卷積神經(jīng)網(wǎng)絡(luò)模型構(gòu)建分析模型對抽油機懸點示功圖進行分類,對抽油機運行工況進行自動判斷。抽油設(shè)備運行工況有多種類型,不同工況具有各自的特征數(shù)據(jù),因此設(shè)備工況可以被識別并區(qū)分。以大慶油田生產(chǎn)數(shù)據(jù)為例,應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)建立診斷模型進行工況分析。
收集大慶油田故障診斷數(shù)據(jù)5 053 組,數(shù)據(jù)包含正常、上碰、下碰、嚴重供液不足、泵漏失、抽油桿斷脫、氣影響等共37 種類型。根據(jù)數(shù)據(jù)類型對生產(chǎn)數(shù)據(jù)進行篩選,將同類型生產(chǎn)數(shù)據(jù)不足10 組的類型歸類為其他,假設(shè)剩余數(shù)據(jù)類型為實際生產(chǎn)中主要故障類型,筆者主要考慮生產(chǎn)實際中主要工況共15 種。將存在缺陷的數(shù)據(jù)(如數(shù)據(jù)缺失、未解讀、明顯錯誤等)進行清洗后,有效數(shù)據(jù)共3 502 組分類存放。根據(jù)生產(chǎn)數(shù)據(jù)繪制示功圖如圖1 所示。
圖 1 示功圖示例Fig. 1 Example of indicator diagram
卷積神經(jīng)網(wǎng)絡(luò)是一類包含卷積計算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),是深度學習的經(jīng)典算法之一。由于卷積神經(jīng)網(wǎng)絡(luò)仿造生物視知覺進行構(gòu)建,其內(nèi)含的卷積層能夠以較小的計算量對圖片特征進行描述,因此其具有穩(wěn)定的運行效果且不需要進行額外的特征工程[7]。卷積神經(jīng)網(wǎng)絡(luò)由輸入層、隱含層和輸出層構(gòu)成。以Le-Net 為例,數(shù)據(jù)經(jīng)篩選后進入輸入層,由輸入層進行預處理將所有數(shù)據(jù)轉(zhuǎn)化為統(tǒng)一格式。將預處理完成的圖片輸入卷積層、池化層進行特征提取,經(jīng)由卷積層、池化層的計算分析將待分類圖片轉(zhuǎn)化為特征圖,經(jīng)過全連接層進行匹配,最終輸出目標值[8]。卷積神經(jīng)網(wǎng)絡(luò)的輸入層可以依據(jù)結(jié)構(gòu)接收一維至四維數(shù)組,在學習數(shù)據(jù)輸入隱含層之前需對數(shù)據(jù)進行歸一化,歸一化的數(shù)據(jù)可以提升算法準確率以及運行效率。
卷積神經(jīng)網(wǎng)絡(luò)算法隱含層由卷積層、池化層和全連接層3 種結(jié)構(gòu)構(gòu)成,在更復雜的算法中還包括Inception 模塊和殘差塊等結(jié)構(gòu)[9]。其中卷積層是對輸入數(shù)據(jù)進行特征提取,以筆者使用的二維卷積為例可表示為[7]
式中,S為特征系數(shù);矩陣X為輸入矩陣;矩陣W為卷積核;(i, j)為變量在特征矩陣中的位置;(m, n)為卷積核元素的位置。
卷積層內(nèi)部包含多個卷積核,類似于前饋神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元。卷積層參數(shù)包括卷積核大小、步長和填充,三者共同決定了卷積層輸出特征圖的尺寸,卷積層中包含激勵函數(shù)以協(xié)助表達復雜特征。池化層是在卷積層進行特征提取后將特征圖進行特征選擇與過濾。通過預先設(shè)定的池化函數(shù)將特征圖中單個點的結(jié)果替換為其相鄰區(qū)域特征圖統(tǒng)計量。以混合池化為例,其一般形式可表示為[10]
式中,s0為步長;A為輸出值;f為池化層大?。籶為可選系數(shù),p=1時,A(i,j)的值記作L1(A)稱均值池化;p=∞時,A(i,j)的 值記作L∞(A)稱為極大池化;μ為運行系數(shù),取值由模型運行情況決定;l為回層位置;k為技術(shù)通道位置;式(3)即為混合池化。
卷積神經(jīng)網(wǎng)絡(luò)的全連接層與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中的隱含層結(jié)構(gòu)相同,位于卷積神經(jīng)網(wǎng)絡(luò)的隱含層末端,將特征圖展開為向量并經(jīng)過激活函數(shù)傳入下一層。全連接層對所提取特征進行非線性組合,利用所提取的高階特征進行學習。
根據(jù)卷積神經(jīng)網(wǎng)絡(luò)方法的原理,首先進行數(shù)據(jù)預處理,再根據(jù)數(shù)據(jù)集大小、形態(tài)確定各層結(jié)構(gòu),選擇激活函數(shù),確定學習次數(shù),進而輸入數(shù)據(jù)集進行訓練。實現(xiàn)過程如圖2 所示。
圖 2 診斷模型建立過程Fig. 2 Establishment process of diagnosis model
將已初步分類的示功圖存于同一文件夾,并為文件夾內(nèi)所有分類分配索引,如表1 所示。
表 1 標簽索引分配結(jié)果Table 1 Distribution result of label index
加載圖片后將圖片解碼為圖片張量,調(diào)整大小并進行歸一化處理。隨機抽取20%作為測試集數(shù)據(jù),剩余80%作為訓練集。分割完成后將示功圖數(shù)據(jù)與標簽打包得到訓練用數(shù)據(jù)集。根據(jù)數(shù)據(jù)量將數(shù)據(jù)集進行分割,確保隱含層有序讀入數(shù)據(jù)避免占用內(nèi)存過大,輸入數(shù)據(jù)集前充分打亂數(shù)據(jù)順序。
參照圖2 結(jié)構(gòu),建立深度為7 層的卷積神經(jīng)網(wǎng)絡(luò)。其中5 層為提取圖片特征的單層卷積神經(jīng)網(wǎng)絡(luò),2 層全連接層將圖片特征與類別標簽對應(yīng)。該模型的輸入量格式為(192,192,3)的圖片,模型的輸出量為一維向量。
筆者使用TensorFlow 開源機器學習平臺進行基于Le-Net 模型的示功圖分類識別實驗,實驗中使用的模型訓練數(shù)據(jù)為含有15 類共3 502 張圖片的有桿泵示功圖。為避免過擬合現(xiàn)象,采取減小訓練次數(shù)的措施,訓練模型100 次。卷積層激活函數(shù)選擇ReLU 函數(shù)以分散神經(jīng)活躍度、簡化運算過程降低運算成本。全連接層激活函數(shù)使用ELU 函數(shù),以加速學習速度,由于ELU 函數(shù)存在負值使其能夠像批標準化一樣使激活單元值接近于0,有利于梯度計算。函數(shù)圖像如圖3 所示,ReLU 函數(shù)和ELU函數(shù)表示為[11]
圖 3 激活函數(shù)圖像Fig. 3 Image of activation function
式中,x為神經(jīng)網(wǎng)絡(luò)輸入?yún)?shù); α為ELU 函數(shù)參數(shù)取值自擬,α >0。
于全連接層中添加dropout 層,以避免過擬合現(xiàn)象。設(shè)置初始學習率為0.001,隨訓練次數(shù)增加而縮小學習率,每30 次縮小為原學習的1/10,以避免陷入局部最優(yōu)。確定卷積神經(jīng)網(wǎng)絡(luò)各參數(shù)后,對網(wǎng)絡(luò)進行訓練。將訓練集15 類示功圖隨機打亂劃分為100 組輸入隱含層進行訓練,記錄每次訓練過后訓練集、驗證集準確率。根據(jù)驗證集準確率調(diào)整模型參數(shù),最終得到收斂速度較快且準確率較好的模型。
訓練結(jié)果得到分類模型,訓練集圖片分類準確率最高可達93.59%,輸出損失為0.219。訓練過程如圖4 所示,可以看出,隨著模型訓練次數(shù)增加,訓練集與驗證集準確率不斷上升。準確率隨訓練次數(shù)增加呈穩(wěn)定上升趨勢并逐步趨于穩(wěn)定,在第90 次訓練后準確率不再明顯上升進入穩(wěn)定區(qū)間,此時分類模型準確率達到峰值并保持在92%以上。驗證集準確率趨勢基本與訓練集一致,準確率穩(wěn)定于90%以上。訓練結(jié)束后,使用測試集進行測試準確率可達92.53%,滿足油田生產(chǎn)的實際要求。
圖 4 訓練集、驗證集收斂曲線Fig. 4 Convergence curve of training set and verification set
通過查閱文獻,得到不同模型對示功圖識別的結(jié)果。段友祥[6]應(yīng)用簡化Alexnet 模型實現(xiàn)了對故障功圖分類,李鈺[12]基于Alexnet 模型進行改進得到示功圖識別模型。如表2 所示,其中包括收斂步數(shù)、測試集準確率和分類情況。
表 2 模型性能對比Table 2 Model performance comparison
在對于模型的測試中可知,VGGNet 識別模型的準確率較高,但計算成本相較于Alexnet 模型更高、耗時更長;Alexnet 模型能較好解決少分類數(shù)問題,但對于多分類問題準確率明顯下降。由對比可知,較于先前模型,筆者所使用的基于Le-Net 識別模型收斂速度明顯高于傳統(tǒng)模型,同時使用ELU 函數(shù)作為激活函數(shù)以及dropout 層的設(shè)置,避免了過擬合現(xiàn)象。該模型能夠較好地處理多分類問題,能夠彌補數(shù)據(jù)不平衡的缺陷,基本滿足實際使用要求。同時筆者的驗證集準確率與測試集準確率均處于較好水平,證明筆者建立模型具有良好的泛化性,可以應(yīng)對實際生產(chǎn)中不同工況。從收斂速度來看該模型計算成本較低,利于實際使用。
(1)實驗研究模型借鑒了Le-Net 模型思想,以簡化結(jié)構(gòu)完成分類任務(wù)。利用測試集數(shù)據(jù)對訓練所得模型進行檢驗,結(jié)果基本符合預期。模型準確率隨訓練次數(shù)增加而穩(wěn)定上升,隨后維持于一定水平。從訓練結(jié)果可以看出,模型具有良好的穩(wěn)定性,能夠針對現(xiàn)場多種的工況進行分類,隨著數(shù)據(jù)不斷收集,該模型可以進一步完善。
(2)與其他分類方法相比,筆者建立的基于Le-Net 的卷積神經(jīng)網(wǎng)絡(luò)模型能夠較好地完成多種類(15 種)的示功圖分類,準確率基本符合使用要求,準確率達到92%以上。簡化模型訓練時間縮短,并且計算成本相對較低,較實用。
(3)所建的卷積神經(jīng)網(wǎng)絡(luò)預測效果滿足油田實際生產(chǎn)的要求,隨著數(shù)據(jù)收集、完善模型準確率可進一步提升。不同研究人員收集數(shù)據(jù)途徑、處理數(shù)據(jù)的方法不同,訓練所得模型可能不同;卷積神經(jīng)網(wǎng)絡(luò)內(nèi)部結(jié)構(gòu)復雜,內(nèi)部參數(shù)的選擇不同可能出現(xiàn)差異。