竇益華 張佳強(qiáng) 李國亮 韋 亮 曹銀萍
(1.西安石油大學(xué)機(jī)械工程學(xué)院 2.中國石油西部鉆探公司試油公司)
與傳統(tǒng)作業(yè)方式和設(shè)備相比,連續(xù)管作業(yè)具有作業(yè)安全、操作方便、節(jié)約成本等優(yōu)點(diǎn)。目前,連續(xù)管已廣泛應(yīng)用于測井、完井及修井等作業(yè)中。然而,連續(xù)管在作業(yè)中容易發(fā)生變形和失效,主要原因是內(nèi)壓與反復(fù)的塑性彎曲[1]。纏繞在滾筒上的連續(xù)管在1個(gè)完整的起下過程中需要經(jīng)過6次塑性變形,反復(fù)的塑性變形將對連續(xù)管的疲勞壽命產(chǎn)生不利影響,因此預(yù)測連續(xù)管的疲勞壽命非常必要。
目前僅有少數(shù)學(xué)者通過人工神經(jīng)網(wǎng)絡(luò)開展連續(xù)管研究。李繼紅等[2]通過BP神經(jīng)網(wǎng)絡(luò)預(yù)測連續(xù)管TIG焊接頭薄弱區(qū)的力學(xué)性能。彭嵩等[3]基于LMBP神經(jīng)網(wǎng)絡(luò)預(yù)測連續(xù)管疲勞壽命。于桂杰等[4]建立了RBF與SOFM混合神經(jīng)網(wǎng)絡(luò)的連續(xù)管疲勞壽命預(yù)測模型。
為了避免標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)預(yù)測連續(xù)管疲勞壽命時(shí)容易陷入局部極小值和訓(xùn)練時(shí)間過長的問題,本文通過MATLAB編寫程序,利用有動(dòng)量的梯度下降法、擬牛頓算法和一步正割算法分別優(yōu)化標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)[5-8],選擇優(yōu)化后網(wǎng)絡(luò)性能最佳的網(wǎng)絡(luò)模型以預(yù)測連續(xù)管疲勞壽命,并提出了連續(xù)管區(qū)間壽命預(yù)測方法。所得結(jié)果可為連續(xù)管的壽命預(yù)測提供參考。
人工神經(jīng)網(wǎng)絡(luò)通過模擬生物神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對外界輸入信息進(jìn)行處理并得出結(jié)果。BP神經(jīng)網(wǎng)絡(luò)作為一種多層向前型神經(jīng)網(wǎng)絡(luò),在輸入向前傳播的同時(shí)也能使輸出誤差不斷向后反向傳播以提高預(yù)測精度,是目前應(yīng)用非常廣泛的神經(jīng)網(wǎng)絡(luò)模型[9-11]。BP神經(jīng)網(wǎng)絡(luò)主要由輸入層、隱含層和輸出層構(gòu)成。圖1為BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖。其中X、Xi和Xn代表學(xué)習(xí)樣本,Q1、Qi和Qm代表預(yù)測目標(biāo),W、i和j代表神經(jīng)網(wǎng)絡(luò)的閾值與權(quán)值。
圖1 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖Fig.1 Schematic structure of BP neural network
BP神經(jīng)網(wǎng)絡(luò)構(gòu)建步驟如下。
(1)數(shù)據(jù)集劃分。將疲勞試驗(yàn)裝置獲得的連續(xù)管疲勞壽命數(shù)據(jù)作為樣本合集,劃分樣本訓(xùn)練集與測試集。
(2)訓(xùn)練樣本歸一化。連續(xù)管疲勞壽命的各項(xiàng)參數(shù)指標(biāo)之間存在較大差異,為加快網(wǎng)絡(luò)學(xué)習(xí)速率需要對數(shù)據(jù)進(jìn)行歸一化處理,通過MATLAB中的Mapminmax函數(shù)將數(shù)據(jù)集歸一化,依據(jù)激活函數(shù)值域,將其歸一化至[-1,1]之間。
(3)構(gòu)建BP神經(jīng)網(wǎng)絡(luò)。確定網(wǎng)絡(luò)層數(shù)與各層節(jié)點(diǎn)數(shù)[12-14],初始化各層權(quán)值與閾值。構(gòu)建3層BP神經(jīng)網(wǎng)絡(luò),其中輸入層節(jié)點(diǎn)數(shù)為4,分別代表連續(xù)管外徑、壁厚、彎曲半徑以及內(nèi)壓。
(4)網(wǎng)絡(luò)參數(shù)配置。確定網(wǎng)絡(luò)學(xué)習(xí)訓(xùn)練次數(shù)、學(xué)習(xí)速率以及訓(xùn)練目標(biāo)最小誤差。
(5)計(jì)算網(wǎng)絡(luò)各層輸出向量與網(wǎng)絡(luò)誤差。網(wǎng)絡(luò)第k層神經(jīng)元j具有下式輸入輸出關(guān)系[3]:
NPj=∑(WjiQPi-bj)
(1)
Qpi=fj(NPj)
(2)
式中:P為輸入樣本;Wji為k-1層的第i個(gè)神經(jīng)元到神經(jīng)元j的連接權(quán)值;bj為初始的閾值;fj為傳遞函數(shù),采用purelin函數(shù),選取梯度下降法訓(xùn)練。
(3)
式中:x為連續(xù)管因素歸一化后的列向量與閾值整合后的結(jié)果。
(6)樣本實(shí)際輸出與期望值誤差Ei計(jì)算。Ei計(jì)算式為:
(4)
(7)誤差反向傳遞與權(quán)值、閾值修正。對比期望值與網(wǎng)絡(luò)實(shí)際輸出值誤差,BP神經(jīng)網(wǎng)絡(luò)通過損失函數(shù)LOSS將誤差反向傳播到網(wǎng)絡(luò)中,對各層連接權(quán)值與閾值進(jìn)行調(diào)整。權(quán)值與閾值更新公式為:
(5)
(6)
式中:W1和b1分別為更新后權(quán)值和閾值;η為學(xué)習(xí)率,取η=0.01。
(8)循環(huán)步驟(7)與步驟(3)進(jìn)行更新反饋,直至達(dá)到訓(xùn)練要求。
標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)容易陷入局部極小值且訓(xùn)練時(shí)間過長[15-16]。優(yōu)化BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法可避免此類問題。BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練優(yōu)化方法與對應(yīng)訓(xùn)練函數(shù)如下:有動(dòng)量的梯度下降法(Traingdm)、自適應(yīng)lr梯度下降法(Traingda)、彈性梯度下降法(Trainrp)、擬牛頓算法(Trainbfg)、一步正割算法(Trainoss)及Levenberg-Marquardt(Trainlm)法。本文選用有動(dòng)量的梯度下降法、擬牛頓算法與一步正割算法作為BP神經(jīng)網(wǎng)絡(luò)優(yōu)化方法。
通過文獻(xiàn)調(diào)研,將文獻(xiàn)[4]與文獻(xiàn)[6]學(xué)習(xí)樣本中部分標(biāo)準(zhǔn)試驗(yàn)機(jī)獲得的連續(xù)管疲勞試驗(yàn)數(shù)據(jù)進(jìn)行匯總,匯總后的20組數(shù)據(jù)如表1所示。將樣本編號(hào)為3、8、9和15的數(shù)據(jù)組作為預(yù)測樣本,其余數(shù)據(jù)組作為學(xué)習(xí)樣本。
表1 連續(xù)管疲勞數(shù)據(jù)匯總Table 1 Fatigue data collection of coiled tubing
連續(xù)管外徑、壁厚、彎曲半徑[17]以及內(nèi)壓是影響其疲勞壽命的主要因素,構(gòu)建3層BP神經(jīng)網(wǎng)絡(luò),其中輸入層節(jié)點(diǎn)數(shù)為4,分別代表連續(xù)管外徑、壁厚、彎曲半徑以及內(nèi)壓。輸出層節(jié)點(diǎn)數(shù)為1,代表連續(xù)管疲勞壽命。隱含層節(jié)點(diǎn)數(shù)應(yīng)在保證精度的前提下盡量使網(wǎng)絡(luò)結(jié)構(gòu)緊湊。先用經(jīng)驗(yàn)公式確定隱含層的節(jié)點(diǎn)數(shù),具體如下:
(7)
式中:n1為隱含層節(jié)點(diǎn)數(shù);n為輸入層節(jié)點(diǎn)數(shù);m為輸出層節(jié)點(diǎn)數(shù);c為常數(shù),取值范圍[1,10]。
在經(jīng)驗(yàn)確定隱含層節(jié)點(diǎn)數(shù)的基礎(chǔ)上,通過實(shí)際訓(xùn)練再次確定。通過實(shí)際訓(xùn)練確定隱含層節(jié)點(diǎn)數(shù)時(shí),先預(yù)設(shè)一個(gè)較小隱含層節(jié)點(diǎn)數(shù),依次遞增節(jié)點(diǎn)數(shù)直至滿足訓(xùn)練要求,此時(shí)對應(yīng)節(jié)點(diǎn)數(shù)為隱含層最佳節(jié)點(diǎn)數(shù)。
本文對BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中隱含層節(jié)點(diǎn)數(shù)確定時(shí),依據(jù)式(7)求得對應(yīng)節(jié)點(diǎn)數(shù)理論區(qū)間為[3,12],預(yù)設(shè)隱含層節(jié)點(diǎn)數(shù)為3,依次增加節(jié)點(diǎn)數(shù)開始訓(xùn)練網(wǎng)絡(luò),直至滿足訓(xùn)練要求。當(dāng)網(wǎng)絡(luò)結(jié)構(gòu)中隱含層節(jié)點(diǎn)數(shù)為4時(shí),BP神經(jīng)網(wǎng)絡(luò)在訓(xùn)練第10輪獲得最佳驗(yàn)證性能(第4輪均方誤差為0.001 352 9),且測試集預(yù)測值與實(shí)際值誤差較小,滿足預(yù)測精度要求。訓(xùn)練結(jié)果如圖2所示。
圖2 隱含層節(jié)點(diǎn)數(shù)為4時(shí)的網(wǎng)絡(luò)訓(xùn)練結(jié)果Fig.2 Network training results when the number of hidden layer nodes is 4
確定優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)為4-4-1。優(yōu)化后網(wǎng)絡(luò)參數(shù)為:隱含層節(jié)點(diǎn)數(shù)4,傳遞函數(shù)為Tansig函數(shù)與Purelin函數(shù);訓(xùn)練方法為:有動(dòng)量的梯度下降法、擬牛頓算法與一步正割算法。設(shè)置網(wǎng)絡(luò)最大訓(xùn)練次數(shù)為2 000次,學(xué)習(xí)速率為0.01,訓(xùn)練精度為0.001。
按照BP神經(jīng)網(wǎng)絡(luò)參數(shù)構(gòu)建BP神經(jīng)網(wǎng)絡(luò)模型,利用有動(dòng)量的梯度下降法、擬牛頓算法和一步正割算法[18]優(yōu)化BP神經(jīng)網(wǎng)絡(luò),考慮連續(xù)管外徑、壁厚、彎曲半徑以及內(nèi)壓為連續(xù)管疲勞壽命主要影響因素,得到如圖3所示的BP神經(jīng)網(wǎng)絡(luò)測試集的預(yù)測值與實(shí)際值對比圖。圖3中紅色線條代表BP神經(jīng)網(wǎng)絡(luò)的連續(xù)管疲勞壽命預(yù)測曲線,黑色線條為試驗(yàn)得到的連續(xù)管疲勞壽命曲線,藍(lán)色點(diǎn)對應(yīng)樣本值代表連續(xù)管疲勞壽命預(yù)測值與試驗(yàn)結(jié)果的誤差。
圖3 不同優(yōu)化方法下網(wǎng)絡(luò)訓(xùn)練結(jié)果對比圖Fig.3 Comparison of network training results under different optimization methods
對比圖3中有動(dòng)量的梯度下降法、擬牛頓算法和一步正割算法優(yōu)化后BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果,計(jì)算不同優(yōu)化方法下BP神經(jīng)網(wǎng)絡(luò)測試集的預(yù)測值與實(shí)際值誤差,并計(jì)算6組樣本數(shù)據(jù)中的預(yù)測平均誤差,結(jié)果如表2所示。6組樣本數(shù)據(jù)中,利用有動(dòng)
表2 不同優(yōu)化方法下網(wǎng)絡(luò)訓(xùn)練結(jié)果誤差Table 2 Error in network training results under different optimization methods
量的梯度下降法、擬牛頓算法和一步正割算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)預(yù)測連續(xù)管疲勞壽命平均誤差分別為24.00%、9.58%和22.74%。據(jù)此,得出3種優(yōu)化方法的性能為:擬牛頓算法最優(yōu),一步正割算法其次,有動(dòng)量的梯度下降法最差。
分析結(jié)果表明,擬牛頓算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)具有最佳性能,確定通過擬牛頓算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)預(yù)測連續(xù)管疲勞壽命,預(yù)測結(jié)果如表3所示。由表3可知,預(yù)測最大相對誤差率為3.6%,滿足工程精度要求,此誤差也小于文獻(xiàn)[3]中4.84%的最大相對誤差,證明了通過擬牛頓算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)預(yù)測連續(xù)管疲勞壽命的優(yōu)越性。
表3 連續(xù)管單層疲勞壽命預(yù)測結(jié)果Table 3 Single layer fatigue life prediction results of coiled tubing
前文通過優(yōu)化后BP神經(jīng)網(wǎng)絡(luò)對連續(xù)管疲勞壽命進(jìn)行了預(yù)測。為豐富連續(xù)管疲勞壽命研究,本節(jié)開展了連續(xù)管疲勞壽命區(qū)間預(yù)測。連續(xù)管疲勞壽命區(qū)間預(yù)測可實(shí)現(xiàn)連續(xù)管疲勞壽命范圍性預(yù)測,預(yù)測出連續(xù)管疲勞壽命的上、下限。
基于前文已有擬牛頓算法優(yōu)化后BP神經(jīng)網(wǎng)絡(luò)預(yù)測連續(xù)管疲勞壽命結(jié)果,提出優(yōu)化后BP神經(jīng)網(wǎng)絡(luò)預(yù)測連續(xù)管疲勞壽命區(qū)間。預(yù)測前,先依據(jù)已有數(shù)據(jù)獲得連續(xù)管疲勞壽命區(qū)間預(yù)測樣本數(shù)據(jù),其函數(shù)表達(dá)如下:
(8)
式中:α和β分別為連續(xù)管疲勞壽命區(qū)間上限與下限;randi是均勻分布的隨機(jī)整數(shù)函數(shù)。
依據(jù)式(8)生成連續(xù)管疲勞壽命區(qū)間訓(xùn)練樣本,如表4所示。
表4 連續(xù)管疲勞壽命區(qū)間訓(xùn)練樣本Table 4 Fatigue life interval training samples of coiled tubing
預(yù)測連續(xù)管疲勞壽命區(qū)間時(shí)依據(jù)式(7)重新調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)。確定BP神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)為4-8-2。通過擬牛頓算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)預(yù)測表4中的預(yù)測樣本壽命區(qū)間,預(yù)測結(jié)果如表5所示。預(yù)測結(jié)果表明,所有預(yù)測樣本都落在合理預(yù)測范圍之內(nèi)。
(1)擬牛頓算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)預(yù)測連續(xù)管疲勞壽命時(shí),預(yù)測最小相對誤差率為1.7%,最大相對誤差率為3.6%,滿足工程精度要求。
(2)基于擬牛頓算法優(yōu)化改進(jìn)后BP神經(jīng)網(wǎng)絡(luò),提出連續(xù)管疲勞壽命區(qū)間預(yù)測,預(yù)測結(jié)果滿足工程精度要求,豐富了連續(xù)管疲勞壽命預(yù)測方法。
(3)與標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)相比,擬牛頓算法優(yōu)化后BP神經(jīng)網(wǎng)絡(luò)預(yù)測連續(xù)管疲勞壽命時(shí),訓(xùn)練高效且預(yù)測精準(zhǔn),避免了容易陷入局部極小值和訓(xùn)練時(shí)間過長的問題。