凌 曉,徐魯帥,梁 瑞,郭 凱,崔本廷,岳守體
(1.蘭州理工大學 石油化工學院,甘肅 蘭州 730050;2.太原衛星發射中心 山西 太原 030027)
近年來,隨著輸油管道長時間且不間斷的運行,管道事故發生頻率不斷增加[1-2]。根據行業統計分析,由于管道運行環境復雜惡劣、管道本體潛在缺陷等問題的存在,管道腐蝕一直是引起管道失效的主要源頭[3-4]。管道腐蝕失效會引發重大安全事故,造成巨大的經濟損失[5]。因此研究輸油管道腐蝕狀態,對保障居民安全、社會及企業穩定發展具有重大意義。
張河葦等[6]基于互信息理論方法,建立了管道腐蝕等級與各相關因素之間的關聯模型,確定了影響管道腐蝕速率的主要因素;王天瑜等[7]應用改進灰色關聯分析和熵權法相結合的土壤腐蝕性評價方法分析了土壤對埋地管道的腐蝕情況;Senouci等[8]使用神經網絡模型對管道的內外監測數據進行分析,預測管道腐蝕狀態以及管道衰退情況;章玉婷等[9]提出了基于BPNN模型對長輸管道的內腐蝕速率進行預測,但由于標準的BPNN模型具有易陷入局部最優的缺陷,因此預測誤差相對較大。
本文引入改進的PSO算法優化BPNN模型[10],改進的PSO算法提升了自身搜索到全局最優的能力,可為BPNN提供最優初始權值和閾值,從而有效避免了BPNN易陷入局部最優的問題發生。利用優化后的BPNN模型進行訓練及驗證,預測結果較為精確。
BPNN模型根據已知數據類型與預期輸出數據類型確定輸入層和輸出層節點個數[11]。輸入層將數據信號傳輸給神經網絡中間的隱藏層,隱藏層學習并處理數據,將處理后的信號結果傳輸給輸出層[12]。如果輸出的結果與期望輸出值不一致,便將誤差反向傳播給隱藏層,并對隱藏層的權值和閾值進行修正,迭代此過程,直到輸出結果與期望輸出值相符為止[13]。在使用BPNN模型分析預測時,一般采用三層網絡拓撲結構,如圖1所示,其中輸入層節點數為m;隱藏層節點數為l;輸出層節點數為n。

圖1 BPNN模型網絡拓撲Fig.1 Network topology of BPNN model
隱藏層和輸出層的輸入、輸出滿足以下公式[14]:
(1)
aj=f(sj)
(2)
(3)
tk=f(pk)
(4)
式中:xi(i=1,2,…,m)為BPNN模型的輸入值;sj為隱藏層第j個節點的輸入值;aj為隱藏層第j個節點的輸出值;wij為輸入層到隱藏層的權值;bj為隱藏層的閾值;pk為輸出層第k個節點的輸入值;tk為輸出層第k個節點的輸出值;wjk為隱藏層到輸出層的權值;bk為輸出層的閾值;f(x)為BPNN模型的激勵函數。
根據上式對輸入層的輸入數據進行相應處理,最后由神經網絡的輸出層輸出處理后的數據信號,這個過程為神經網絡的正向輸入過程;將神經網絡輸出的結果誤差大小反向修正各個節點權值和閾值的數值,這個過程為神經網絡的反向傳播過程。誤差函數Ep及權閾值修正系數如下[14]:
(5)
(6)
(7)
(8)
(9)
式中:yk為期望輸出值;tk為實際輸出值;η為學習速率系數;Δwjk為隱藏層到輸出層的權值修正系數;Δwij為輸入層到隱藏層的權值修正系數;Δbk為輸出層的閾值修正系數;Δbj為隱藏層的閾值修正系數。
BPNN模型的正向信號輸入,誤差反向傳播的過程不斷地進行迭代,直到輸出值滿足期望輸出。將BPNN模型用于輸油管道腐蝕內速率預測,將管道的內檢測數據作為輸入層的輸入信號,并將管道腐蝕速率作為輸出層的輸出信號,不斷比較BPNN模型輸出的管道腐蝕速率預測值與期望輸出值之間的誤差,當滿足誤差精度要求時或達到預設最大迭代次數后終止訓練,再用測試數據集對該BPNN模型進行驗證測試。
隱藏層節點數對管道腐蝕速率預測有重要影響。如果隱藏層節點數過少,則在神經網絡預測過程中獲取的有效信息較少,致使其難以達到準確的預測。但如果隱藏層節點數過多,會使神經網絡的訓練時間加長、容錯性變差、泛化能力下降。所以隱藏層節點數的選擇是BPNN模型建立的重要一步。
設某一BPNN模型為三層網絡結構中輸入節點數為m,即輸入向量可表示為X=(x1,x2,…,xm)T∈Rm,輸出層節點數為n個,神經網絡的隱藏層節點數l個。其中隱藏層的節點數主要由經驗公式(10)確定[15]。
(10)
式中:a為1~10的常數。
隱藏層節點數確立步驟為:1)依據式(10)確定隱藏層節點數的取值區間;2)將區間內的整數作為BPNN模型中隱藏層節點的個數,訓練樣本;3)記錄每次訓練結果的誤差,誤差最小時所對應的隱藏層節點個數便為最終確定的BPNN模型中隱藏層節點數。
標準的PSO算法是隨機初始化一群無體積和質量的粒子,每個粒子對應1個可行解,且都具有1個適應度值,并通過速度變量來確定其位置和方向[16]。PSO算法通過跟蹤個體極值(pbest)和群體極值(gbest)進行粒子群的速度和位置更新。粒子的速度和位置根據式(11)和式(12)更新:
(11)
xi,j(t+1)=xi,j(t)+vi,j(t+1)
(12)
式中:vi,j(t+1)為第i個粒子在t+1次迭代中第j維上的速度;xi,j(t+1)為第i個粒子在t+1次迭代中第j維上的位置;c1和c2為學習因子;r1和r2是在[0,1]的2個隨機數;w是慣性權重;pi,j為第i個變量個體極值的第j維;pg,j為全局最優解的第j維。
標準的粒子群算法,w按式(13)更新,學習因子為常數,一般取值為2。
(13)
式中:t為當前迭代次數;tmax為最大迭代次數;wmax為慣性權重的初值;wmin為慣性權重的終值。
標準PSO算法的慣性權重計算公式如式(13),該算法收斂速度隨迭代次數的增加而減慢,降低了PSO算法跳出局部最優的幾率。其次,標準的PSO算法在使用較大的常數學習因子時極易跳過最優解使算法不能收斂[17]。因此文中引入改進的PSO算法[10]加快迭代后期的收斂速度,增大了PSO算法收斂到全局最優解的幾率。
1)對粒子群中粒子進行混沌初始化,使粒子分布更均勻,保持粒子的多樣性,本文采用典型的混沌序列,其數學模型[18]可表示為:
zn+1=rzn(1-zn)
(14)
式中:zn為第n個節點的混沌變量;zn+1為第n+1個節點的混沌變量;r為混沌吸引子,當r=4時,系統處于完全混沌狀態,此時zn+1∈(0,1)。
2)將粒子按適應度值區分為2部分,通過比較單個粒子適應度值和粒子群的平均適應度值,劃分單個粒子質量的優劣,根據式(15)~(16)調整粒子的搜索能力w和學習能力c1和c2,保證粒子群快速收斂。
(15)
(16)
式中:w0為慣性權重初值,且0 改進的PSO-BPNN模型流程如圖2所示。 圖2 改進的PSO-BPNN流程Fig.2 Procedure of improved PSO-BPNN 利用改進的PSO算法優化BPNN模型的初始權值和閾值,再利用優化后的BPNN模型對輸油管道內腐蝕速率進行預測,其主要步驟為: 1)初始化PSO算法,確定算法中各初始值和取值區間,如種群規模,最大迭代次數,w0,c10,c20,k1,k2以及k3的初始值,學習因子、速度及位置的取值區間等。按照式(17)計算初始粒子的適應度值。 (17) 2)確定BPNN模型網絡層數及各層節點數。將BPNN模型中的初始權值和閾值作為PSO算法中的粒子,并通過各層節點數確定粒子的維數N: N=N0×N1+N1×N2+N1+N2 (18) 式中:N0為BPNN模型中輸入層的節點個數;N1為BPNN模型中隱藏層的節點個數;N2為BPNN模型中輸出層的節點個數。 3)根據步驟1)中各粒子的適應度值計算結果,把粒子自身的位置設為個體極值pbest,整個粒子群中粒子的最優位置設為群體極值gbest。 4)根據式(1)~(2)計算更新w,c1,c2的值,粒子的速度和位置根據式(3)~(4)計算更新。按照式(17)計算新粒子的適應度值,按照步驟3)的方式更新粒子群的pbest和gbest。 5)當PSO算法的迭代到最大次數或輸出值滿足預設誤差精度時,迭代終止,否則返回步驟4)。迭代終止后,將得到的最優粒子解碼賦值給BPNN模型的初始權值和閾值,使用優化后的BPNN模型對輸油管道內腐蝕速率進行預測。 數據來源于某輸油管道[19],管道材質為20#鋼,于1990年建成投產,運行壓力為1.0~5.0 MPa。采集了含硫量、PH值、溫度、流速、壓力5種管道腐蝕速率主要影響參數。采集數據集共25組,選取其中15組作為BPNN模型及PSO-BPNN模型的訓練集,具體管道參數見表1。剩余10組為2種機器學習算法的測試集,以對比其預測的準確性。 表1 輸油管道檢測數據Table 1 Inspection data of oil pipeline 為驗證模型預測效果,本文對比選用均方根誤差(RE)、相對誤差(S)和平均相對誤差(SA)指標來評價模型的準確性和優劣性,計算公式如下: (19) (20) (21) BPNN模型的輸入變量為影響管道腐蝕速率的5個主要參數,輸出值為輸油管道的內腐蝕速率。選用三層網絡的BPNN模型,輸入層節點為5個,分別對應5個主要影響參數(硫含量、KOH酸值、溫度、流速、壓力)。輸出層節點數為1個,對應管道的內腐蝕速率。用MATLAB編程確定隱藏層節點數的預測圖如圖3所示,由圖3可知BPNN模型預測結果的均方差隨隱藏層節點數的增加而減小。當隱藏層節點數為10時,BPNN模型預測結果的均方差最小,為0.033 3,所以本文中BPNN隱藏層節點數確定為10。 圖3 平均相對誤差與隱含層節點關系Fig 3 Relationship between average relative error and hidden layer nodes BPNN模型中隱藏層和輸出層的激勵函數分別選用Logsig函數和Purelin函數,其表達式分別為: (22) f(x)=x (23) 式中:x為節點輸入值;f(x)為節點輸出值。 BPNN模型的最大迭代次數為300,訓練誤差目標為10-6。在現有網絡結構下,利用PSO算法對BPNN模型進行優化。標準的PSO參數設置:種群規模為60,進化迭代次數為300,訓練目標為10-6。粒子群維度根據式(18)確定為71;學習因子c1和c2為2,wmin為0.1,wmax為0.9;粒子位置的取值區間為[-4,4],速度的取值區間為[-1,1]。 優化的PSO算法參數設置:種群規模為60,進化迭代次數為300,訓練目標為10-6。粒子群維度為71;w0=0.6,c10=c20=1.6,k1=0.3,k2=k3=0.5;慣性權重的區間為[0.2,0.9],加速因子的區間為[1.2,2.5];粒子位置的取值區間分別為[-4,4],速度的取值區間為[-1,1]。 檢驗集10組數據的腐蝕預測結果對比如圖4所示。PSO-BPNN模型與BPNN模型預測的相對誤差見表2。 從表2可知,BPNN模型預測結果較差,遠高于PSO-BPNN模型和優化的PSO-BPNN模型。BPNN模型預測的最高相對誤差達24.49%,平均相對誤差為11.13%,這是因為標準的BPNN模型陷入了局部最優所導致的。相對于BPNN模型,PSO-BPNN模型的預測精度有了較大幅度的提高,最大相對誤差僅為11.29%,平均相對誤差為7.68%,預測精度比較符合實際需求。PSO-BPNN模型預測精度的提高是因為PSO算法優化了BPNN模型的初始權值和閾值,提高了神經網絡的訓練能力和預測精度。優化的PSO-BPNN模型預測精度最高,其最大相對誤差為10.34%,平均相對誤差為5.57%。改進PSO-BPNN模型預測精度提高是因為優化后的PSO算法在后期更容易跳出局部最優,有利于其在全局范圍內搜索最優解。因此,改進PSO-BPNN模型的預測結果更為準確可靠。 圖4 腐蝕速率預測對比Fig.4 Comparison on prediction results of corrosion rate 表2 模型預測誤差Table 2 Errors of prediction by different models 1)本文使用改進的PSO算法優化BPNN模型的初始權值和閾值,避免了標準的BPNN模型容易陷入局部最優問題的發生,有效提升了模型的預測精度。 2)將該算法應用于輸油管道腐蝕速率預測中,使用優化的PSO-BPNN模型預測結果的最大相對誤差為10.34%,平均相對誤差為5.57%,明顯優于標準的BPNN模型預測的最大相對誤差24.49%和平均相對誤差7.68%。 3)使用優化的PSO-BPNN模型預測輸油管道的腐蝕速率可為管道的檢測維修提供可靠的理論和技術支撐。3 改進的PSO-BPNN模型構建


4 預測實例及分析
4.1 數據來源

4.2 預測性能評價指標

4.3 預測模型構建

4.4 預測結果分析


5 結論