劉 斌,吳 偉,衛(wèi)涵典,洪詩益
(西安石油大學(xué)機械工程學(xué)院,西安 710065)
由于科技高速發(fā)展,數(shù)字化油田發(fā)展也快速提高,抽油機的工況診斷在石油開采中逐漸受到石油專家們的關(guān)注,與此同時,抽油機工況診斷技術(shù)的研究也變得炙手可熱。在過去的幾十年中,國內(nèi)外石油專家們一直在深入研究抽油機工況故障診斷技術(shù),并取得了相當(dāng)?shù)难芯砍晒?,在許多油田中得到了具體的應(yīng)用。在這些研究成果中,主要的故障診斷方法有5個:人工手動識別法、計算機診斷法、故障診斷專家系統(tǒng)、人工神經(jīng)網(wǎng)絡(luò)識別法和支持向量機識別法[1]。
這幾類方法各有利弊,而本文采用的是人工神經(jīng)網(wǎng)絡(luò)識別法,基于RBF 神經(jīng)網(wǎng)絡(luò)是一種性能良好的前饋型神經(jīng)網(wǎng)絡(luò),具有數(shù)據(jù)驅(qū)動、自主尋求數(shù)據(jù)中心的特點,被廣泛應(yīng)用于模式識別、故障診斷等眾多領(lǐng)域[2]。但是RBF 神經(jīng)網(wǎng)絡(luò)參數(shù)訓(xùn)練存在訓(xùn)練速度慢、容易陷入局部最優(yōu)值等問題[3],因此,本文提出了一種基于優(yōu)化RBF 神經(jīng)網(wǎng)絡(luò)的抽油機故障診斷方法。
RBF 神經(jīng)網(wǎng)絡(luò)是前向三層網(wǎng)絡(luò)。第一層是網(wǎng)絡(luò)輸入層,由信號源節(jié)點組成;第二層是網(wǎng)絡(luò)隱含層,隱單元的數(shù)量由所需解決的問題決定,隱單元變換函數(shù)是對中心點徑向堆成并且同時衰減的非線性非負函數(shù);第三層是網(wǎng)絡(luò)輸出層,對輸入做出相對應(yīng)的響應(yīng)[4]。由3 個不同層構(gòu)成的傳統(tǒng)RBF 神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),如圖1所示。
圖1 RBF神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)
RBF 神經(jīng)網(wǎng)絡(luò)的基本思想:用RBF 作為隱單元的“基”構(gòu)成隱含層空間,這樣就可以將輸入矢量直接映射到隱空間。當(dāng)RBF 的中心點確定后,這種映射關(guān)系也就確定了。而隱含層空間到輸出空間的映射是線性的,即網(wǎng)絡(luò)的輸出是隱單元輸出的線性加權(quán)和。
RBF 神經(jīng)網(wǎng)絡(luò)中最常用到的核心函數(shù)為高斯函數(shù),所以網(wǎng)絡(luò)的激活函數(shù)如下:
RBF神經(jīng)網(wǎng)絡(luò)的輸出為:
由式(1)~(2)可以得出,對RBF 神經(jīng)網(wǎng)絡(luò)模型性能影響的3 個初始參數(shù)有:中心點C、寬度δ以及隱含層到輸出層的權(quán)值ω。因此針對這3個參數(shù)分別提出優(yōu)化方法。
模糊C-均值聚類(FCM)是1973 年由Bezdek[5]提出的,是一種比較常用的聚類算法。通過優(yōu)化目標(biāo)函數(shù)算出每個樣本點對所包括的類中心的隸屬度,以此滿足復(fù)雜數(shù)據(jù)集間的關(guān)聯(lián)性[6]。假設(shè)n 個數(shù)據(jù)樣本為X={x1,x2,…,xn},c為類別數(shù)目,各類別的聚類中心為{v1,v2,…,vc},每個樣本屬于每一類 Ak的隸屬度組成了一個隸屬度矩陣U,U={μik}∈Rc×n,i=1,2,…,c,k=1,2,…,n,為了保證每個樣本都被劃分,應(yīng)該確保=1,則目標(biāo)函數(shù)J可以用下式表達:
式(4)~(5)分別計算樣本xi對于類Ak的隸屬度μik和c個聚類中心{vi} :
用上述所提的式(4)~(5)重復(fù)的修改數(shù)據(jù)隸屬度、聚類中心和進行分類處理,當(dāng)算法收斂時,從理論上可以得到各類的聚類中心以及各樣本對各個模式類的隸屬度,完成對樣本模糊聚類劃分。該算法步驟如下。
(1)設(shè)置迭代次數(shù)t=1、最大迭代次數(shù)tmax、終止誤差α。
(2)初始化聚類中心V0。
(3)用式(4)來更新隸屬度矩陣U。
(4)用式(5)來更新聚類中心Vc。
(5)計算目標(biāo)函數(shù)并判斷上一次結(jié)果與當(dāng)前結(jié)果的差是否小于誤差α 或者t >tmax,若是滿足其中一項,則停止循環(huán);否則t=t+1,轉(zhuǎn)至3。
粒子群算法是一種對鳥類覓食行為的研究算法,當(dāng)鳥類尋找食物時,用最簡單的方法就是尋找當(dāng)前距離食物最近的鳥的周圍地方。而在粒子群算法中,所謂“粒子” 就是每個優(yōu)化問題的可能解,而每個粒子的特征可以通過3項指標(biāo)來體現(xiàn),分別為該粒子的適應(yīng)度值、速度和位置。粒子在每次迭代過程中可以用適應(yīng)度函數(shù)來計算該粒子的適應(yīng)度值,其值的大小決定了粒子的優(yōu)劣[7],也決定了當(dāng)前解的好壞。粒子在每一次的迭代中,更新自身位置后計算自身適應(yīng)度值,并在之后用自身適應(yīng)度值與個體極值、群體極值的適應(yīng)度值作比較,從而來決定是否需要更新個體和群體極值。最終可以得到全局最優(yōu)解,也就是所求問題的最終解[8]。
設(shè)在K 維的搜索空間中,種群Q是由n 個粒子所組成,Q=(Q1,Q2,…,Qn),其中第i個粒子可以表示為一個K 維空間的向量Qi=(qi1,qi2,…,qiK)T,代表該粒子在K維空間中的位置。由目標(biāo)函數(shù)可以計算得出每個粒子位置Qi所對應(yīng)適應(yīng)度值。
速度與位置分別用下式來表達:
式中:ω 為慣性權(quán)重;k 為當(dāng)前迭代次數(shù);c1和c2作為加速度因子且是非負常數(shù);r1和r2是屬于[0,1]區(qū)間的隨機數(shù)值;Vi為第i個粒子速度;Pi為第i個粒子個體極值;Pg則為群體極值。
基本的PSO 算法存在“早熟”問題,即局部收斂不足,需要對其進行優(yōu)化處理。研究PSO 算法基本原理,根據(jù)分析得出初始的3個參數(shù)ω、c1、c2起主要作用。當(dāng)參數(shù)比較小的時候粒子搜索的空間不足,在全局收斂上并不突出,但是局部收斂性比較好,速度快;當(dāng)參數(shù)比較大的時候算法的全局收斂性比較好,但在局部收斂上不足,并且搜索精度低、速度慢[9]。為了提高算法性并能兼顧全局與局部,基于此,Y.Shi等[10]提出了基于線性下降慣性權(quán)重的粒子群算法,該方法是讓粒子群中的慣性權(quán)重因子從最大值線性減少到最小值。這種減少方式可以讓粒子在進化早期,ω 的值較大時,使其具備較好的全局搜索能力;而在進化后期,ω 的值變小時,讓其具備較強的精細局部搜索能力[11],可以兼顧到整個尋優(yōu)過程。
線性下降慣性因子的變化公式為:
式中:ωmax為慣性因子最大值,本文中ωmax=0.9 ;ωmin為慣性因子最小值,本文中ωmin=0.4 ;iter為當(dāng)前迭代次數(shù);itermax為最大迭代次數(shù)。
具體算法流程如下。
(1)設(shè)計RBF 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),本文中網(wǎng)絡(luò)輸入層節(jié)點數(shù)為6,網(wǎng)絡(luò)輸出層節(jié)點數(shù)為9。根據(jù)2.1節(jié)中心參數(shù)優(yōu)化方法,利用FCM算法進行中心c計算。
(2)初始化參數(shù),參數(shù)包括RBF 神經(jīng)網(wǎng)絡(luò)寬度δ 以及權(quán)值ω,并設(shè)定結(jié)束迭代誤差。
(3)將這些參數(shù)組合起來就構(gòu)成了粒子的位置參數(shù)。在初始化參數(shù)時,要初始化粒子數(shù)目N、粒子的位置Xid、速度Vid等,這些參數(shù)采用隨機方式賦初始值。
(4)更新粒子的速度和位置。根據(jù)式(6)和式(7)來更新粒子的速度和位置。
(5)計算粒子適應(yīng)度。用均方誤差作為RBF 神經(jīng)網(wǎng)絡(luò)的目標(biāo)函數(shù)[12],該函數(shù)即為PSO 算法的適應(yīng)度函數(shù)。
(6)更新粒子極值和全局極值。以步驟(5)計算出的適應(yīng)度值來判斷是否需要更新粒子的最優(yōu)解以及全局最優(yōu)解。
(7)判斷是否結(jié)束迭代。若均方誤差小于設(shè)定的值或當(dāng)?shù)螖?shù)等于或大于最大迭代次數(shù),滿足其中任意條件則停止迭代,否則回到步驟(4)。
(8)結(jié)束迭代。所求的解即為全局最優(yōu)解。
根據(jù)上述步驟,可以畫出RBF優(yōu)化流程圖如圖2所示。
圖2 RBF網(wǎng)絡(luò)優(yōu)化流程圖
本文實驗對9類常見抽油機工況進行診斷,具體包括:正常、固定凡爾漏失、游動凡爾漏失、桿斷、出砂、結(jié)蠟、活塞碰泵、進氣、未充滿氣,共327 組數(shù)據(jù)。其中300 組數(shù)據(jù)作為訓(xùn)練樣本,每個類型留取3個作為檢驗樣本。
首先對示工圖數(shù)據(jù)做灰度化和歸一化處理[13],提取示工圖特征值,以6個特征值作為神經(jīng)網(wǎng)絡(luò)輸入向量,而對應(yīng)的輸出值為0~8,分別對應(yīng)上述9種抽油機工況。
利用300組樣本構(gòu)成的訓(xùn)練數(shù)據(jù)集,按照第3節(jié)所述的訓(xùn)練流程對RBF 神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,設(shè)定的種群粒子數(shù)N=40,加速因子c1=c2=2[14],其中最大迭代次數(shù)設(shè)定為400次。
為了對比本文所提方法的有效性和可行性,本文對比模型為傳統(tǒng)RBF 神經(jīng)網(wǎng)絡(luò)模型和Kmeans-RBF 神經(jīng)網(wǎng)絡(luò)模型。將這3 種方法在同等條件下進行比較,對比這3 種方法的誤差率以及診斷時間。
圖3~5 分別為FCM-PSO-RBF 神經(jīng)網(wǎng)絡(luò)、Kmeans-PSO-RBF神經(jīng)網(wǎng)絡(luò)以及傳統(tǒng)梯度下降法RBF神經(jīng)網(wǎng)絡(luò)的誤差。
通過對比以上3 個圖,F(xiàn)CM-PSO-RBF 神經(jīng)網(wǎng)絡(luò)模型在50步后誤差值趨向于平穩(wěn),且誤差在0.055左右。Kmeans-PSO-RBF 神經(jīng)網(wǎng)絡(luò)模型在大概70 步后才大概趨向于平穩(wěn),且誤差值在0.055~0.060 之間,而傳統(tǒng)RBF 神經(jīng)網(wǎng)絡(luò)模型在100 步后才趨向于平穩(wěn),且誤差值在0.143左右。
圖3 FCM-PSO-RBF預(yù)測值誤差
圖4 Kmeans-PSO-RBF預(yù)測值誤差
圖5 傳統(tǒng)RBF預(yù)測值誤差
因此,由上述說明來看,改進FCM-PSO-RBF神經(jīng)網(wǎng)絡(luò)與Kmeans-PSO-RBF 算法與傳統(tǒng)RBF 神經(jīng)網(wǎng)絡(luò)的預(yù)測值誤差的差距還是比較明顯的,誤差越大則預(yù)測精度越低。這3 種模型中,以傳統(tǒng)RBF神經(jīng)網(wǎng)絡(luò)模型算法性能最低;其次為Kmeans-PSO-RBF 神經(jīng)網(wǎng)絡(luò)模型算法;而本文所提FCM-PSO-RBF 神經(jīng)網(wǎng)絡(luò)模型算法性能最好。預(yù)測結(jié)果顯示:FCM-PSO-RBF 預(yù)測正確率為84%,Kmeans-PSO-RBF 預(yù)測正確率為80%,傳統(tǒng)RBF 預(yù)測正確率為66%。
本文針對RBF 神經(jīng)網(wǎng)絡(luò)的局限性,利用FCM 算法優(yōu)化其過分依賴于隱含層數(shù)據(jù)中心的選取和改進PSO算法對影響RBF網(wǎng)絡(luò)性能參數(shù)進行優(yōu)化改進,從而在整體上改善了RBF 神經(jīng)網(wǎng)絡(luò)的性能。建立了抽油機工況診斷的RBF網(wǎng)絡(luò)模型,與其他2個網(wǎng)絡(luò)模型做對比實驗。實驗結(jié)果表明,F(xiàn)CM-PSO-RBF神經(jīng)網(wǎng)絡(luò)在性能和預(yù)測準(zhǔn)確率上優(yōu)于傳統(tǒng)RBF 神經(jīng)網(wǎng)絡(luò)和Kmeans-PSO-RBF神經(jīng)網(wǎng)絡(luò)。