馬棟梁,王德禹
(上海交通大學(xué) 海洋工程國家重點實驗室,上海 200240)
由于船舶具有裝載量大、運費低廉等優(yōu)點,其在全球貿(mào)易中充當(dāng)著重要角色。工業(yè)革命以來,隨著鋼鐵冶煉技術(shù)的發(fā)展,船舶由木質(zhì)時代進入了鋼質(zhì)時代。船舶在生產(chǎn)和服役過程中,焊接、腐蝕和疲勞會引起裂紋的產(chǎn)生[1-3]。而且隨著高強度鋼的大量使用,裂紋的出現(xiàn)更是不可避免[4]。在循環(huán)載荷的作用下,裂紋會發(fā)生擴展,使得結(jié)構(gòu)的承載能力降低,當(dāng)裂紋擴展到一定程度,結(jié)構(gòu)會發(fā)生脆斷,最終會導(dǎo)致結(jié)構(gòu)發(fā)生災(zāi)難性的破壞[5]。為了能夠及時發(fā)現(xiàn)結(jié)構(gòu)的損傷,保證結(jié)構(gòu)的健康程度,許多研究者提出了多種損傷檢測方法,其中較為成熟且大規(guī)模使用的損傷檢測方法包括超聲波檢測方法、熱檢測方法[6]、磁粉檢測方法和射線檢測方法[7]。這些傳統(tǒng)方法在先進設(shè)備的幫助下能夠?qū)Y(jié)構(gòu)表面及內(nèi)部缺陷的類型、數(shù)量、位置、形狀、分布及尺寸進行檢測,并有很好的檢測效果。但是對于越來越大型的船舶結(jié)構(gòu)而言,這些無損檢測方法耗時長且依賴于檢測人員的主觀性,并且檢測過程需要船舶停航,無法實現(xiàn)實時在線監(jiān)測。
為了能夠更加有效地對結(jié)構(gòu)損傷進行檢測,許多研究者將基于數(shù)據(jù)驅(qū)動的機器學(xué)習(xí)(machinelearning,ML)方法應(yīng)用在結(jié)構(gòu)損傷檢測中。機器學(xué)習(xí)已經(jīng)被成功應(yīng)用于多個領(lǐng)域,如模式識別、數(shù)據(jù)挖掘、統(tǒng)計學(xué)習(xí)、計算機視覺、自然語言處理、語音識別與圖像識別。這種技術(shù)具有較強的學(xué)習(xí)能力,能夠推理、聯(lián)想記憶和處理強非線性問題。它的并行處理能力、魯棒性和容錯能力也得到了證明[8]。Diao 等[9]提出了一種使用模態(tài)參數(shù)的基于ANN 的海洋平臺三步損傷檢測方法,取得了不錯的損傷檢測效果。Samanta 等[10]發(fā)現(xiàn),當(dāng)使用遺傳算法優(yōu)化分類器參數(shù)時,ANN 分類器比支持向量機(support vector machine,SVM)分類器具有更好的損傷檢測性能。Palomino 等[11]使用概率神經(jīng)網(wǎng)絡(luò)和模糊聚類分析來識別和定位裂縫。Gordan 等[12]提出使用數(shù)據(jù)挖掘框架、ANN 和帝國(imperial)競爭算法混合的方法檢測I型梁的單點損傷情況。該方法以固有頻率和對應(yīng)的振型作為輸入,證明了其性能優(yōu)于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)方法。雖然人工神經(jīng)網(wǎng)絡(luò)在損傷檢測上取得了一定的成功,但是其性能嚴(yán)重依賴于輸入特征,比如噪聲的存在將會大大影響神經(jīng)網(wǎng)絡(luò)的性能[13]。
隨著計算機計算能力的提升以及數(shù)據(jù)規(guī)模的增加,深度學(xué)習(xí)(deep learning,DL)引起了很多學(xué)者的關(guān)注并被應(yīng)用到了結(jié)構(gòu)健康監(jiān)測領(lǐng)域?;谏疃葘W(xué)習(xí)的損傷檢測方法可以自動學(xué)習(xí)損傷特征,相比于傳統(tǒng)的損傷檢測方法具有更好的損傷識別能力。作為一種強大的深度學(xué)習(xí)算法,卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)能夠很好地對時序數(shù)據(jù)進行處理[14]。李雪松等[15]使用IASC-ASCE SHM Benchmark 第一階段的模擬數(shù)據(jù)對CNN 在自動學(xué)習(xí)特征方面的性能進行了研究,與小波包頻帶能量特征和前五階本征模態(tài)函數(shù)能量特征在同一分類器下的精度進行比較,證明了CNN 方法具有更優(yōu)的特征提取性能。Abdeljaber 等[16]提出了一個基于緊湊一維CNN 的方法用于識別、定位、量化滾動軸承損傷。該方法將傳統(tǒng)損傷檢測方法的特征提取和分類過程融合到一起,避免了由于手工選擇或設(shè)計特征而產(chǎn)生的計算負(fù)擔(dān)和信息丟失。羅雨舟等[17]利用基于CNN 的方法對梁損傷進行了研究,采用加速度響應(yīng)作為CNN 的輸入,并分析了風(fēng)激勵、隨機正弦激勵、以及白噪聲激勵對CNN 的影響。結(jié)果表明,激勵類型對CNN 性能的影響較小且在不同程度的噪聲情況下CNN 均能很好地對梁損傷進行識別。Ding等[18]提出了一種基于小波包能量(wavelet packet energy,WPE)圖像和深度卷積網(wǎng)絡(luò)的能量波動多尺度特征挖掘方法用于軸承故障診斷。其中小波包能量圖像作為輸入用于訓(xùn)練深度卷積網(wǎng)絡(luò)。此外,為了同時保留局部和整體信息,該方法在其多尺度層中融合了最后一個卷積層和最后一個池化層的數(shù)據(jù)。
綜上所述,雖然基于CNN的損傷檢測方法得到了廣泛的研究,但是對鋼板裂紋損傷檢測的研究較少,而且有的采用基于視覺的方法,難以在船舶的整個生命周期中對損傷進行監(jiān)測。此外,傳感器技術(shù)以其低廉的成本和便捷的操作也為損傷檢測提供了更多的選擇。因此本文的主要目的是設(shè)計一個基于CNN的船體板裂紋損傷檢測方法,該方法采用板的加速度響應(yīng)作為輸入數(shù)據(jù),將特征提取和損傷分類融合到一起,實現(xiàn)對船體板裂紋的實時檢測。
本文采用的邊界條件為四邊簡支,如圖1(b)所示。在實際工程中,作用在船體結(jié)構(gòu)上的載荷是復(fù)雜、隨機并且難以獲取的。高斯白噪聲是均值為零的平穩(wěn)遍歷隨機過程,其任意兩個值都是獨立的,而且其功率譜密度在頻域上是均勻的,可以激發(fā)結(jié)構(gòu)的多個模態(tài)[20]。因此本文采用高斯白噪聲模擬板結(jié)構(gòu)受到的動態(tài)激勵。本文施加的面外均布高斯白噪聲動態(tài)激勵如圖1(b)所示,其均值為零,標(biāo)準(zhǔn)差為0.01 MPa,對應(yīng)于一個低載荷水平,此外施加頻率為10 000 Hz,共施加4 s。在實際工程中,環(huán)境載荷的頻譜寬度是有限的,因此采用截止頻率為512 Hz 的巴特沃斯濾波器對該激勵進行濾波。為了生成足夠的樣本供CNN 進行訓(xùn)練以及解決數(shù)據(jù)的平衡性問題,本文生成了40個激勵用于有損傷板的有限元分析,80個激勵用于無損傷板的有限元分析。
考慮到貫穿裂紋比較簡單,也是最惡劣的情況,因此本文選擇這種情況作為示范研究,但本文的方法對于非貫穿裂紋也是適用的。本文研究的裂紋方向為縱向,亦即裂紋方向和板長方向相同[5]。為了研究CNN 方法在裂紋定位及裂紋長度分類上的性能,設(shè)置了五種裂紋位置及三種裂紋長度。裂紋位置中心如圖1(a)中的等距分布的紅點所示。設(shè)置的三種裂紋長度(L1)分別為100 mm、200 mm 和300 mm,對應(yīng)于三種裂紋損傷程度。為了方便網(wǎng)格劃分,本文采用菱形裂紋,且最大裂紋寬度為0.2 mm,如圖1(c)所示。有限元網(wǎng)格尺寸為25 mm,單元類型為S4R。裂紋位于1 號位置且裂紋長度為100 mm的有損板有限元模型如圖1(b)所示。
圖1 鋼板的數(shù)學(xué)模型Fig.1 Mathematical model of steel plate
本文設(shè)置了11 個加速度采集點,如圖1(d)所示。為了減小自由振動對分析結(jié)果的影響,對無損板的自由振動進行了分析。圖2 展示了無損板中心點的自由振動衰減曲線,可以看出在1 s時自由振動得到了很大程度的衰減,因此可以認(rèn)為1 s后的加速度數(shù)據(jù)受自由振動的影響較小。本文以采樣頻率為512 Hz 對1~4 s 的加速度數(shù)據(jù)進行了采集,最后采集到的每個樣本的數(shù)據(jù)形狀為1×1536×11(本文采用二維卷積神經(jīng)網(wǎng)絡(luò),第一個維度表示數(shù)據(jù)的高度,第二個維度表示數(shù)據(jù)的寬度,第三個維度表示數(shù)據(jù)的深度,對應(yīng)于數(shù)據(jù)采集點數(shù)目)。
圖2 無損板中點自由振動衰減曲線Fig.2 Free vibration curve at the center point of an intact plate
圖3 顯示了用于CNN 訓(xùn)練和測試的訓(xùn)練集、驗證集和測試集的生成流程。首先把從有限元分析中得到的樣本按照7:1:2 的比例生成訓(xùn)練集、驗證集和測試集,然后對三個數(shù)據(jù)集分別進行高斯歸一化,最后通過數(shù)據(jù)裁剪技術(shù)生成足夠的樣本進行CNN的訓(xùn)練和測試[20]。
圖3 數(shù)據(jù)集生成流程Fig.3 Dataset generation
本文采用的數(shù)據(jù)裁剪技術(shù)分為非隨機裁剪和隨機裁剪,且遵循兩個原則:(1)裁剪后每個樣本的數(shù)據(jù)寬度為512;(2)隨機裁剪按照數(shù)據(jù)批次的大小重復(fù)多次進行。非隨機裁剪作用在高斯歸一化后的數(shù)據(jù)集上并將數(shù)據(jù)集中的每個樣本平均分為3 個部分放入到擴充數(shù)據(jù)集中。隨機裁剪的原理是從高斯歸一化的數(shù)據(jù)集中隨機選擇n個樣本(n為數(shù)據(jù)批次大小),然后在每個樣本上隨機裁剪出寬度為512 的數(shù)據(jù)片段作為樣本放入到擴充數(shù)據(jù)集中。最后得到的每個擴充數(shù)據(jù)集中樣本的數(shù)據(jù)形狀為1×512×11.
為了保證每種損傷情況在數(shù)據(jù)集中的平衡性,本文單獨對無損傷板執(zhí)行了圖3所示的流程,最后得到的擴充數(shù)據(jù)集中,無損樣本占比約為六分之一。在實際工程中,由于工作環(huán)境的復(fù)雜性,結(jié)構(gòu)響應(yīng)不可避免地會受到噪聲的影響、干擾損傷的識別,因此必須分析所提出的CNN 方法對噪聲的魯棒性。本文采用均值為零,標(biāo)準(zhǔn)差為0.5 的高斯白噪聲來模擬噪聲,并將其直接加到擴充后的數(shù)據(jù)集中生成噪聲數(shù)據(jù)集。
1.3.1 提出的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
本文的主要目的是使用CNN 方法對板裂紋損傷進行檢測。提出的CNN 方法主要由輸入層、卷積層、池化層、全連接層和輸出層組成。為了研究不同CNN 結(jié)構(gòu)對裂紋損傷檢測的影響,本文設(shè)計了6種不同的網(wǎng)絡(luò)結(jié)構(gòu),如表1 所示。各種結(jié)構(gòu)的不同之處主要在于卷積層和池化層的數(shù)量以及連接形式。為了詳細說明提出的卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),本小節(jié)以一個具有三層卷積層和兩層池化層的卷積神經(jīng)網(wǎng)絡(luò)模型進行說明,其結(jié)構(gòu)如圖4所示。其中池化層是在第一層和第三層卷積層之后使用的,并且在池化層前面的卷積層中,亦即是第一層和第三層卷積層中采用了批標(biāo)準(zhǔn)化函數(shù)用于加速計算以及避免過擬合。三層卷積層的卷積核數(shù)量依次為32、64和64。在第二層池化層的后面連接一個扁平化層,其在保持批次大小不變的情況下將池化層的輸出扁平化處理后輸入到全連接層中。在扁平化層之后是兩層全連接隱藏層,且神經(jīng)元數(shù)量分別為256和64。輸出層與最后一層全連接隱藏層相連,并且輸出層的神經(jīng)元數(shù)量與研究的裂紋損傷類型數(shù)相同。此外,本文采用的卷積核和池化核的尺寸分別為1×3和1×8。
圖4 提出的一種卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)Fig.4 Architecture of one proposed CNN
1.3.2 損傷檢測策略
本文對CNN 方法在板裂紋位置和長度檢測上的性能均進行了研究。在本文中,板裂紋位置和長度檢測屬于監(jiān)督學(xué)習(xí)問題,因此每個樣本需要設(shè)置一個標(biāo)簽。
在板裂紋位置檢測中,本文采用的標(biāo)簽形式為由0 和1 表示的具有6 個元素的向量,其中每個元素對應(yīng)一種損傷位置情況,第一個元素表示無損傷情況。比如[0,0,1,0,0,0]表示裂紋在2號位置點。對于裂紋長度檢測,由于本文研究了三種裂紋長度,因此其標(biāo)簽形式為由0 和1 表示的具有4 個元素的向量,其中每個元素對應(yīng)于一種損傷長度,第一個元素對應(yīng)于無損傷情況。如[0,0,1,0]表示裂紋長度為200 mm。此外,在本研究中,裂紋位置和長度檢測均屬于多分類問題,因此采用的分類函數(shù)和損傷函數(shù)分別為Softmax函數(shù)和交叉熵函數(shù)[17]。
此外,本文采用的優(yōu)化函數(shù)為Adam,學(xué)習(xí)率為指數(shù)衰減形式且初始學(xué)習(xí)率為1×10-3。訓(xùn)練期次數(shù)為60,數(shù)據(jù)批次大小為64。此外,本文提出的CNN 方法是在一臺裝有Windows 7 系統(tǒng),具有兩個Intel Xeon e5-1620 v4@3.5 GHz處理器且運行內(nèi)存為32 GB的工作站上進行訓(xùn)練和測試的。
為了驗證設(shè)計的CNN 方法在裂紋損傷檢測上的性能,本文采用基于小波包變換的多層感知機神經(jīng)網(wǎng)絡(luò)(wavelet packet transform-based multilayer perceptron,WPT-MLP)進行對比分析[20]。小波包變換用于從獲得的響應(yīng)數(shù)據(jù)中提取裂紋損傷特征,然后將提取到的特征輸入到多層感知機進行訓(xùn)練得到裂紋損傷預(yù)測模型。在小波包變換中,本文用Db2 作為基函數(shù),分解層數(shù)為四層,最后得到輸入到多層感知機神經(jīng)網(wǎng)絡(luò)中的樣本形狀為1×176。多層感知機神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)和本文提出的CNN 方法的全連接層結(jié)構(gòu)是相同的,而且采用相同的優(yōu)化函數(shù)、分類函數(shù)和損傷函數(shù)。
本文共設(shè)計了6 種CNN 結(jié)構(gòu)形式,如表1 所示。在mC_nP 中,“m”表示卷積層的數(shù)量,“C”表示卷積層,“_”表示連接符,“n”表示池化層的數(shù)量,“P”表示池化層。比如1C_1P_2C_1P 表示CNN 結(jié)構(gòu)的連接形式為1層卷積層后連接有一層池化層,在此池化層后連接有兩層卷積層,最后一層池化層連接在最后一層卷積層的后面。在1.3.1小節(jié)中我們對本文設(shè)計的CNN的基本組成進行了介紹,并且詳細說明了1C_1P_2C_1P模型的結(jié)構(gòu)形式。各種結(jié)構(gòu)的其他說明如下:
表1 不同CNN架構(gòu)下的裂紋定位精度Tab.1 Crack localization accuracy under different CNN architectures
(1)1C_1P:一個卷積層和一個池化層,其中卷積層的卷積核個數(shù)為32。
(2)1C_1P_1C_1P:二個卷積層和二個池化層,其中卷積層的卷積核個數(shù)分別為32和64。
(3)1C_1P_2C_1P:三個卷積層和二個池化層,其中卷積層的卷積核個數(shù)依次為32、64和64。
(4)2C_1P_2C_1P:四個卷積層和二個池化層,其中卷積層的卷積核個數(shù)依次為32、32、64和64。
(5)2C_1P_3C_1P:五個卷積層和二個池化層,其中卷積層的卷積核個數(shù)依次為32、32、64、64 和64。
(6)2C_1P_2C_1P_3C_1P:七個卷積層和三個池化層,其中卷積層的卷積核個數(shù)依次為32、32、64、64、128、128和128。
不同結(jié)構(gòu)下的裂紋損傷定位精度和裂紋長度分類精度顯示在表1 中。對于裂紋損傷定位情況,在無噪聲情況下,具有不同結(jié)構(gòu)的CNN方法均能完美地對裂紋位置進行識別,體現(xiàn)出非常好的裂紋損傷定位性能。在有噪聲情況下,可以看出,2C_1P_3C_1P的結(jié)構(gòu)形式給予了較優(yōu)的裂紋定位精度。對于裂紋長度分類情況,在無噪聲情況下,2C_1P_3C_1P 的結(jié)構(gòu)形式能夠完美地對裂紋長度進行分類,而且在有噪聲情況下,也得到了較優(yōu)的長度分類精度。因此,本文選取結(jié)構(gòu)形式為2C_1P_3C_1P的卷積神經(jīng)網(wǎng)絡(luò)用于驗證CNN方法在裂紋損傷檢測上的性能。
CNN 方法和WPT-MLP 兩種方法在有噪聲和無噪聲兩種情況下對裂紋位置檢測的預(yù)測精度如表2所示。可以看出,在無噪聲情況下,CNN方法能夠完美地對裂紋位置進行識別,而WPTMLP 方法的預(yù)測精度僅為97.42%。在有噪聲情況下,CNN 方法和WPT-MLP 方法的裂紋定位精度均較無噪聲情況低,但是CNN方法的裂紋定位精度為99.41%,遠高于WPT-MLP 方法的94.16%。因此可知CNN 方法具有更好的裂紋位置分類精度,而且對噪聲的敏感程度遠低于WPT-MLP方法。
表2 裂紋位置分類精度Tab.2 Classification accuracy of crack location
為了能夠更加直觀地展示每一個裂紋位置的分類情況,本文采用了混淆矩陣的方式分析了有噪聲情況下的CNN 和WPT-MLP 方法的分類結(jié)果,分別如圖5 和圖6 所示。在此兩個圖中,矩陣的行和列分別表示真實的裂紋位置和預(yù)測的裂紋位置。從圖5 可以看出,CNN 方法對每一種裂紋位置的分類精度均高于98%,體現(xiàn)出了很好的裂紋分類性能。而且對于有損傷樣本,CNN方法能夠很好地對不同的裂紋損傷位置進行區(qū)分,即使預(yù)測錯誤的樣本的預(yù)測結(jié)果也在真實位置附近。對于WPT-MLP方法,其對每一種裂紋位置的預(yù)測精度均低于98%,而且無損情況預(yù)測精度最低為84.9%,遠遠低于CNN方法。
圖5 有噪聲情況下基于CNN方法的裂紋位置分類混淆矩陣Fig.5 Confusion matrix of crack location classification based on CNN with noise
圖6 有噪聲情況下基于WPT-MLP方法的裂紋位置分類混淆矩陣Fig.6 Confusion matrix of crack location classification based on WPT-MLP with noise
在1.1 節(jié)中提到本文研究了四種裂紋長度,包括三種損傷情況和一種無損傷情況,每一種裂紋長度為一種損傷類型。表3 顯示了CNN 方法和WPT-MLP 方法在無噪聲和有噪聲情況下的裂紋長度預(yù)測精度??梢钥闯觯跓o噪聲情況下CNN 方法的分類精度為100%,遠遠高于WPT-MLP 方法的78.3%。在有噪聲情況下,CNN方法的裂紋長度分類精度達到95.47%,而WPT-MLP 為74.49%。表明CNN方法具有更好的提取裂紋長度損傷的特征。
表3 裂紋長度分類精度Tab.3 Classification accuracy of crack length
本節(jié)同樣采用了混淆矩陣對有噪聲情況下的CNN 和WPT-MLP 方法的裂紋長度分類結(jié)果進行了分析,結(jié)果分別如圖7 和圖8 所示。從圖7 中可以看出,CNN 方法預(yù)測錯誤的樣本主要由不含損傷的樣本和真實裂紋長度為100 mm 的樣本組成。對于真實損傷情況為無損的樣本,其預(yù)測錯誤樣本的預(yù)測結(jié)果為100 mm,而對于真實損傷情況為100 mm 的樣本,其預(yù)測錯誤樣本的預(yù)測結(jié)果均為無損。由此可以認(rèn)為,無損板和裂紋長度為100 mm 的板的裂紋損傷特征最為接近。而且在噪聲的影響下,使得具有兩種損傷情況的板的裂紋損傷特征更加地接近,引起CNN方法性能的下降。由此也可以認(rèn)為,在裂紋位置分類中,分類錯誤的樣本也主要是由無損樣本和低裂紋長度的樣本組成。此外,對于有損傷情況,CNN方法能夠很好地對不同的裂紋長度進行分類,而且對于預(yù)測錯誤樣本的預(yù)測結(jié)果也在真實裂紋長度附近。對于WPT-MLP 方法,其對于各個長度樣本的預(yù)測精度均遠遠低于CNN 方法,具有較差的板裂紋長度分類性能。
圖7 有噪聲情況下基于CNN方法的裂紋長度分類混淆矩陣Fig.7 Confusion matrix of crack length classification based on CNN with noise
圖8 有噪聲情況下基于WPT-MLP方法的裂紋長度分類混淆矩陣Fig.8 Confusion matrix of crack length classification based on WPT-MLP with noise
總的來說,本文提出的CNN方法取得了非常好的裂紋位置和裂紋長度預(yù)測結(jié)果。
本文提出使用CNN方法用于船體板裂紋損傷檢測。為了更加貼合工程實際以及實現(xiàn)自動實時在線裂紋損傷檢測,本文采用加速度作為CNN 模型的輸入,通過基于Python 語言的Abaqus 二次開發(fā)技術(shù)建立分析模型并計算板的加速度響應(yīng),利用數(shù)據(jù)裁剪技術(shù)進行數(shù)據(jù)集擴充,研究了不同CNN結(jié)構(gòu)在裂紋損傷位置和裂紋損傷程度預(yù)測上的性能,選取了較優(yōu)的結(jié)構(gòu)。此外,為了驗證CNN 方法的性能,與WPT-MLP方法進行了對比,得到了以下結(jié)論:
(1)本文設(shè)計的CNN 具有更好的裂紋位置和裂紋長度損傷特征提取能力,且具有更好的抗噪聲能力。
(2)對于損傷樣本,CNN方法能夠精確地對不同的裂紋位置和裂紋長度進行分類。
(3)低損傷樣本和無損樣本具有更加接近的裂紋損傷特征。
本文主要關(guān)注CNN 方法在船體板裂紋損傷識別、定位和長度分類上的性能。標(biāo)簽及標(biāo)簽形式對CNN方法的影響以及CNN方法對其他損傷類型的檢測性能等方面可以在將來進行更深入的研究。