馬棟梁,王德禹
(上海交通大學 海洋工程國家重點實驗室,上海 200240)
由于船舶具有裝載量大、運費低廉等優點,其在全球貿易中充當著重要角色。工業革命以來,隨著鋼鐵冶煉技術的發展,船舶由木質時代進入了鋼質時代。船舶在生產和服役過程中,焊接、腐蝕和疲勞會引起裂紋的產生[1-3]。而且隨著高強度鋼的大量使用,裂紋的出現更是不可避免[4]。在循環載荷的作用下,裂紋會發生擴展,使得結構的承載能力降低,當裂紋擴展到一定程度,結構會發生脆斷,最終會導致結構發生災難性的破壞[5]。為了能夠及時發現結構的損傷,保證結構的健康程度,許多研究者提出了多種損傷檢測方法,其中較為成熟且大規模使用的損傷檢測方法包括超聲波檢測方法、熱檢測方法[6]、磁粉檢測方法和射線檢測方法[7]。這些傳統方法在先進設備的幫助下能夠對結構表面及內部缺陷的類型、數量、位置、形狀、分布及尺寸進行檢測,并有很好的檢測效果。但是對于越來越大型的船舶結構而言,這些無損檢測方法耗時長且依賴于檢測人員的主觀性,并且檢測過程需要船舶停航,無法實現實時在線監測。
為了能夠更加有效地對結構損傷進行檢測,許多研究者將基于數據驅動的機器學習(machinelearning,ML)方法應用在結構損傷檢測中。機器學習已經被成功應用于多個領域,如模式識別、數據挖掘、統計學習、計算機視覺、自然語言處理、語音識別與圖像識別。這種技術具有較強的學習能力,能夠推理、聯想記憶和處理強非線性問題。它的并行處理能力、魯棒性和容錯能力也得到了證明[8]。Diao 等[9]提出了一種使用模態參數的基于ANN 的海洋平臺三步損傷檢測方法,取得了不錯的損傷檢測效果。Samanta 等[10]發現,當使用遺傳算法優化分類器參數時,ANN 分類器比支持向量機(support vector machine,SVM)分類器具有更好的損傷檢測性能。Palomino 等[11]使用概率神經網絡和模糊聚類分析來識別和定位裂縫。Gordan 等[12]提出使用數據挖掘框架、ANN 和帝國(imperial)競爭算法混合的方法檢測I型梁的單點損傷情況。該方法以固有頻率和對應的振型作為輸入,證明了其性能優于傳統的神經網絡方法。雖然人工神經網絡在損傷檢測上取得了一定的成功,但是其性能嚴重依賴于輸入特征,比如噪聲的存在將會大大影響神經網絡的性能[13]。
隨著計算機計算能力的提升以及數據規模的增加,深度學習(deep learning,DL)引起了很多學者的關注并被應用到了結構健康監測領域。基于深度學習的損傷檢測方法可以自動學習損傷特征,相比于傳統的損傷檢測方法具有更好的損傷識別能力。作為一種強大的深度學習算法,卷積神經網絡(convolutional neural network,CNN)能夠很好地對時序數據進行處理[14]。李雪松等[15]使用IASC-ASCE SHM Benchmark 第一階段的模擬數據對CNN 在自動學習特征方面的性能進行了研究,與小波包頻帶能量特征和前五階本征模態函數能量特征在同一分類器下的精度進行比較,證明了CNN 方法具有更優的特征提取性能。Abdeljaber 等[16]提出了一個基于緊湊一維CNN 的方法用于識別、定位、量化滾動軸承損傷。該方法將傳統損傷檢測方法的特征提取和分類過程融合到一起,避免了由于手工選擇或設計特征而產生的計算負擔和信息丟失。羅雨舟等[17]利用基于CNN 的方法對梁損傷進行了研究,采用加速度響應作為CNN 的輸入,并分析了風激勵、隨機正弦激勵、以及白噪聲激勵對CNN 的影響。結果表明,激勵類型對CNN 性能的影響較小且在不同程度的噪聲情況下CNN 均能很好地對梁損傷進行識別。Ding等[18]提出了一種基于小波包能量(wavelet packet energy,WPE)圖像和深度卷積網絡的能量波動多尺度特征挖掘方法用于軸承故障診斷。其中小波包能量圖像作為輸入用于訓練深度卷積網絡。此外,為了同時保留局部和整體信息,該方法在其多尺度層中融合了最后一個卷積層和最后一個池化層的數據。
綜上所述,雖然基于CNN的損傷檢測方法得到了廣泛的研究,但是對鋼板裂紋損傷檢測的研究較少,而且有的采用基于視覺的方法,難以在船舶的整個生命周期中對損傷進行監測。此外,傳感器技術以其低廉的成本和便捷的操作也為損傷檢測提供了更多的選擇。因此本文的主要目的是設計一個基于CNN的船體板裂紋損傷檢測方法,該方法采用板的加速度響應作為輸入數據,將特征提取和損傷分類融合到一起,實現對船體板裂紋的實時檢測。

本文采用的邊界條件為四邊簡支,如圖1(b)所示。在實際工程中,作用在船體結構上的載荷是復雜、隨機并且難以獲取的。高斯白噪聲是均值為零的平穩遍歷隨機過程,其任意兩個值都是獨立的,而且其功率譜密度在頻域上是均勻的,可以激發結構的多個模態[20]。因此本文采用高斯白噪聲模擬板結構受到的動態激勵。本文施加的面外均布高斯白噪聲動態激勵如圖1(b)所示,其均值為零,標準差為0.01 MPa,對應于一個低載荷水平,此外施加頻率為10 000 Hz,共施加4 s。在實際工程中,環境載荷的頻譜寬度是有限的,因此采用截止頻率為512 Hz 的巴特沃斯濾波器對該激勵進行濾波。為了生成足夠的樣本供CNN 進行訓練以及解決數據的平衡性問題,本文生成了40個激勵用于有損傷板的有限元分析,80個激勵用于無損傷板的有限元分析。
考慮到貫穿裂紋比較簡單,也是最惡劣的情況,因此本文選擇這種情況作為示范研究,但本文的方法對于非貫穿裂紋也是適用的。本文研究的裂紋方向為縱向,亦即裂紋方向和板長方向相同[5]。為了研究CNN 方法在裂紋定位及裂紋長度分類上的性能,設置了五種裂紋位置及三種裂紋長度。裂紋位置中心如圖1(a)中的等距分布的紅點所示。設置的三種裂紋長度(L1)分別為100 mm、200 mm 和300 mm,對應于三種裂紋損傷程度。為了方便網格劃分,本文采用菱形裂紋,且最大裂紋寬度為0.2 mm,如圖1(c)所示。有限元網格尺寸為25 mm,單元類型為S4R。裂紋位于1 號位置且裂紋長度為100 mm的有損板有限元模型如圖1(b)所示。


圖1 鋼板的數學模型Fig.1 Mathematical model of steel plate
本文設置了11 個加速度采集點,如圖1(d)所示。為了減小自由振動對分析結果的影響,對無損板的自由振動進行了分析。圖2 展示了無損板中心點的自由振動衰減曲線,可以看出在1 s時自由振動得到了很大程度的衰減,因此可以認為1 s后的加速度數據受自由振動的影響較小。本文以采樣頻率為512 Hz 對1~4 s 的加速度數據進行了采集,最后采集到的每個樣本的數據形狀為1×1536×11(本文采用二維卷積神經網絡,第一個維度表示數據的高度,第二個維度表示數據的寬度,第三個維度表示數據的深度,對應于數據采集點數目)。

圖2 無損板中點自由振動衰減曲線Fig.2 Free vibration curve at the center point of an intact plate
圖3 顯示了用于CNN 訓練和測試的訓練集、驗證集和測試集的生成流程。首先把從有限元分析中得到的樣本按照7:1:2 的比例生成訓練集、驗證集和測試集,然后對三個數據集分別進行高斯歸一化,最后通過數據裁剪技術生成足夠的樣本進行CNN的訓練和測試[20]。

圖3 數據集生成流程Fig.3 Dataset generation
本文采用的數據裁剪技術分為非隨機裁剪和隨機裁剪,且遵循兩個原則:(1)裁剪后每個樣本的數據寬度為512;(2)隨機裁剪按照數據批次的大小重復多次進行。非隨機裁剪作用在高斯歸一化后的數據集上并將數據集中的每個樣本平均分為3 個部分放入到擴充數據集中。隨機裁剪的原理是從高斯歸一化的數據集中隨機選擇n個樣本(n為數據批次大小),然后在每個樣本上隨機裁剪出寬度為512 的數據片段作為樣本放入到擴充數據集中。最后得到的每個擴充數據集中樣本的數據形狀為1×512×11.
為了保證每種損傷情況在數據集中的平衡性,本文單獨對無損傷板執行了圖3所示的流程,最后得到的擴充數據集中,無損樣本占比約為六分之一。在實際工程中,由于工作環境的復雜性,結構響應不可避免地會受到噪聲的影響、干擾損傷的識別,因此必須分析所提出的CNN 方法對噪聲的魯棒性。本文采用均值為零,標準差為0.5 的高斯白噪聲來模擬噪聲,并將其直接加到擴充后的數據集中生成噪聲數據集。
1.3.1 提出的卷積神經網絡結構
本文的主要目的是使用CNN 方法對板裂紋損傷進行檢測。提出的CNN 方法主要由輸入層、卷積層、池化層、全連接層和輸出層組成。為了研究不同CNN 結構對裂紋損傷檢測的影響,本文設計了6種不同的網絡結構,如表1 所示。各種結構的不同之處主要在于卷積層和池化層的數量以及連接形式。為了詳細說明提出的卷積神經網絡的結構,本小節以一個具有三層卷積層和兩層池化層的卷積神經網絡模型進行說明,其結構如圖4所示。其中池化層是在第一層和第三層卷積層之后使用的,并且在池化層前面的卷積層中,亦即是第一層和第三層卷積層中采用了批標準化函數用于加速計算以及避免過擬合。三層卷積層的卷積核數量依次為32、64和64。在第二層池化層的后面連接一個扁平化層,其在保持批次大小不變的情況下將池化層的輸出扁平化處理后輸入到全連接層中。在扁平化層之后是兩層全連接隱藏層,且神經元數量分別為256和64。輸出層與最后一層全連接隱藏層相連,并且輸出層的神經元數量與研究的裂紋損傷類型數相同。此外,本文采用的卷積核和池化核的尺寸分別為1×3和1×8。

圖4 提出的一種卷積神經網絡的結構Fig.4 Architecture of one proposed CNN
1.3.2 損傷檢測策略
本文對CNN 方法在板裂紋位置和長度檢測上的性能均進行了研究。在本文中,板裂紋位置和長度檢測屬于監督學習問題,因此每個樣本需要設置一個標簽。
在板裂紋位置檢測中,本文采用的標簽形式為由0 和1 表示的具有6 個元素的向量,其中每個元素對應一種損傷位置情況,第一個元素表示無損傷情況。比如[0,0,1,0,0,0]表示裂紋在2號位置點。對于裂紋長度檢測,由于本文研究了三種裂紋長度,因此其標簽形式為由0 和1 表示的具有4 個元素的向量,其中每個元素對應于一種損傷長度,第一個元素對應于無損傷情況。如[0,0,1,0]表示裂紋長度為200 mm。此外,在本研究中,裂紋位置和長度檢測均屬于多分類問題,因此采用的分類函數和損傷函數分別為Softmax函數和交叉熵函數[17]。
此外,本文采用的優化函數為Adam,學習率為指數衰減形式且初始學習率為1×10-3。訓練期次數為60,數據批次大小為64。此外,本文提出的CNN 方法是在一臺裝有Windows 7 系統,具有兩個Intel Xeon e5-1620 v4@3.5 GHz處理器且運行內存為32 GB的工作站上進行訓練和測試的。
為了驗證設計的CNN 方法在裂紋損傷檢測上的性能,本文采用基于小波包變換的多層感知機神經網絡(wavelet packet transform-based multilayer perceptron,WPT-MLP)進行對比分析[20]。小波包變換用于從獲得的響應數據中提取裂紋損傷特征,然后將提取到的特征輸入到多層感知機進行訓練得到裂紋損傷預測模型。在小波包變換中,本文用Db2 作為基函數,分解層數為四層,最后得到輸入到多層感知機神經網絡中的樣本形狀為1×176。多層感知機神經網絡的網絡結構和本文提出的CNN 方法的全連接層結構是相同的,而且采用相同的優化函數、分類函數和損傷函數。
本文共設計了6 種CNN 結構形式,如表1 所示。在mC_nP 中,“m”表示卷積層的數量,“C”表示卷積層,“_”表示連接符,“n”表示池化層的數量,“P”表示池化層。比如1C_1P_2C_1P 表示CNN 結構的連接形式為1層卷積層后連接有一層池化層,在此池化層后連接有兩層卷積層,最后一層池化層連接在最后一層卷積層的后面。在1.3.1小節中我們對本文設計的CNN的基本組成進行了介紹,并且詳細說明了1C_1P_2C_1P模型的結構形式。各種結構的其他說明如下:

表1 不同CNN架構下的裂紋定位精度Tab.1 Crack localization accuracy under different CNN architectures
(1)1C_1P:一個卷積層和一個池化層,其中卷積層的卷積核個數為32。
(2)1C_1P_1C_1P:二個卷積層和二個池化層,其中卷積層的卷積核個數分別為32和64。
(3)1C_1P_2C_1P:三個卷積層和二個池化層,其中卷積層的卷積核個數依次為32、64和64。
(4)2C_1P_2C_1P:四個卷積層和二個池化層,其中卷積層的卷積核個數依次為32、32、64和64。
(5)2C_1P_3C_1P:五個卷積層和二個池化層,其中卷積層的卷積核個數依次為32、32、64、64 和64。
(6)2C_1P_2C_1P_3C_1P:七個卷積層和三個池化層,其中卷積層的卷積核個數依次為32、32、64、64、128、128和128。
不同結構下的裂紋損傷定位精度和裂紋長度分類精度顯示在表1 中。對于裂紋損傷定位情況,在無噪聲情況下,具有不同結構的CNN方法均能完美地對裂紋位置進行識別,體現出非常好的裂紋損傷定位性能。在有噪聲情況下,可以看出,2C_1P_3C_1P的結構形式給予了較優的裂紋定位精度。對于裂紋長度分類情況,在無噪聲情況下,2C_1P_3C_1P 的結構形式能夠完美地對裂紋長度進行分類,而且在有噪聲情況下,也得到了較優的長度分類精度。因此,本文選取結構形式為2C_1P_3C_1P的卷積神經網絡用于驗證CNN方法在裂紋損傷檢測上的性能。
CNN 方法和WPT-MLP 兩種方法在有噪聲和無噪聲兩種情況下對裂紋位置檢測的預測精度如表2所示。可以看出,在無噪聲情況下,CNN方法能夠完美地對裂紋位置進行識別,而WPTMLP 方法的預測精度僅為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 方法的分類結果,分別如圖5 和圖6 所示。在此兩個圖中,矩陣的行和列分別表示真實的裂紋位置和預測的裂紋位置。從圖5 可以看出,CNN 方法對每一種裂紋位置的分類精度均高于98%,體現出了很好的裂紋分類性能。而且對于有損傷樣本,CNN方法能夠很好地對不同的裂紋損傷位置進行區分,即使預測錯誤的樣本的預測結果也在真實位置附近。對于WPT-MLP方法,其對每一種裂紋位置的預測精度均低于98%,而且無損情況預測精度最低為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 節中提到本文研究了四種裂紋長度,包括三種損傷情況和一種無損傷情況,每一種裂紋長度為一種損傷類型。表3 顯示了CNN 方法和WPT-MLP 方法在無噪聲和有噪聲情況下的裂紋長度預測精度。可以看出,在無噪聲情況下CNN 方法的分類精度為100%,遠遠高于WPT-MLP 方法的78.3%。在有噪聲情況下,CNN方法的裂紋長度分類精度達到95.47%,而WPT-MLP 為74.49%。表明CNN方法具有更好的提取裂紋長度損傷的特征。

表3 裂紋長度分類精度Tab.3 Classification accuracy of crack length
本節同樣采用了混淆矩陣對有噪聲情況下的CNN 和WPT-MLP 方法的裂紋長度分類結果進行了分析,結果分別如圖7 和圖8 所示。從圖7 中可以看出,CNN 方法預測錯誤的樣本主要由不含損傷的樣本和真實裂紋長度為100 mm 的樣本組成。對于真實損傷情況為無損的樣本,其預測錯誤樣本的預測結果為100 mm,而對于真實損傷情況為100 mm 的樣本,其預測錯誤樣本的預測結果均為無損。由此可以認為,無損板和裂紋長度為100 mm 的板的裂紋損傷特征最為接近。而且在噪聲的影響下,使得具有兩種損傷情況的板的裂紋損傷特征更加地接近,引起CNN方法性能的下降。由此也可以認為,在裂紋位置分類中,分類錯誤的樣本也主要是由無損樣本和低裂紋長度的樣本組成。此外,對于有損傷情況,CNN方法能夠很好地對不同的裂紋長度進行分類,而且對于預測錯誤樣本的預測結果也在真實裂紋長度附近。對于WPT-MLP 方法,其對于各個長度樣本的預測精度均遠遠低于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方法取得了非常好的裂紋位置和裂紋長度預測結果。
本文提出使用CNN方法用于船體板裂紋損傷檢測。為了更加貼合工程實際以及實現自動實時在線裂紋損傷檢測,本文采用加速度作為CNN 模型的輸入,通過基于Python 語言的Abaqus 二次開發技術建立分析模型并計算板的加速度響應,利用數據裁剪技術進行數據集擴充,研究了不同CNN結構在裂紋損傷位置和裂紋損傷程度預測上的性能,選取了較優的結構。此外,為了驗證CNN 方法的性能,與WPT-MLP方法進行了對比,得到了以下結論:
(1)本文設計的CNN 具有更好的裂紋位置和裂紋長度損傷特征提取能力,且具有更好的抗噪聲能力。
(2)對于損傷樣本,CNN方法能夠精確地對不同的裂紋位置和裂紋長度進行分類。
(3)低損傷樣本和無損樣本具有更加接近的裂紋損傷特征。
本文主要關注CNN 方法在船體板裂紋損傷識別、定位和長度分類上的性能。標簽及標簽形式對CNN方法的影響以及CNN方法對其他損傷類型的檢測性能等方面可以在將來進行更深入的研究。