陳承濱, 余 嶺,2, 潘楚東, 陳澤鵬
(1. 暨南大學 力學與建筑工程學院,廣州 510632;2. 暨南大學 重大工程災害與控制教育部重點實驗室,廣州 510632)
結構損傷識別(Structural Damage Detection,SDD)是實施結構健康監(jiān)測[1-2](Structural Health Monitoring,SHM)的關鍵一步。近年來,采用群智能優(yōu)化算法將SDD問題轉化為數(shù)學上的約束優(yōu)化問題是SDD的一個熱門方向。從計算和優(yōu)化的角度,將結構損傷識別問題看作優(yōu)化問題,通過定義一個關于系統(tǒng)模型的目標函數(shù),利用優(yōu)化的手段實現(xiàn)對損傷參數(shù)的識別。隨著計算機和優(yōu)化思想的發(fā)展,涌現(xiàn)出大量群智能識別方法,如基于粒子群、蟻群、猴群、人工魚群和人工蜂群等方法,并已取得較好的研究成果[3-7]。但是,大多算法都存在識別精度不足和噪聲魯棒性有待提高的問題。
Mirjalili[8]提出蟻獅優(yōu)化(Ant Lion Optimizer,ALO)算法,這是一種新型元啟發(fā)式群智能算法。由于引入了隨機游走、輪盤賭策略及精英策略,使得ALO算法成為一種種群多樣、尋優(yōu)性能強、調節(jié)參數(shù)少、易于實現(xiàn)的搜索技術。近年來,ALO算法已成功應用于桿系結構優(yōu)化設計[9]、電力系統(tǒng)最優(yōu)潮流計算[10]及結構高效建模[11]等領域,表現(xiàn)出良好的尋優(yōu)能力和抗噪魯棒性,但目前尚未應用于結構損傷識別問題。
本文基于結構損傷前后模態(tài)參數(shù)建立SDD問題的目標函數(shù),同時引入跡范數(shù)約束條件[12]作為稀疏約束項,利用蟻獅優(yōu)化算法對該目標函數(shù)求解以獲得結構局部損傷。本文介紹ALO算法基本原理、引入策略及實現(xiàn)流程;給出結構損傷識別優(yōu)化問題的目標函數(shù)并建立簡支梁數(shù)值模型,并討論目標函數(shù)引入稀疏約束項的必要性;對簡支梁的局部損傷進行識別,同時添加人工噪聲,研究其對識別精度的影響;最后,利用實測的鋼管簡支梁實驗數(shù)據驗證ALO算法應用于結構損傷識別的可行性與有效性。
ALO算法核心思想是模擬蟻獅捕獵螞蟻的狩獵機制以實現(xiàn)全局尋優(yōu)。蟻獅在捕獵前會在在沙質土中利用其巨大的下顎挖出一個漏斗狀的陷阱,并藏在陷阱底部等待獵物到來。一旦隨機游走的螞蟻落入陷阱時,蟻獅迅速將其捕食,隨后重新修繕陷阱等待下一次捕獵。
ALO算法通過數(shù)值模擬實現(xiàn)螞蟻和蟻獅之間的相互作用將問題優(yōu)化:引入螞蟻的隨機游走實現(xiàn)全局搜索,通過輪盤賭策略和精英策略保證種群的多樣性和算法的尋優(yōu)性能。蟻獅相當于優(yōu)化問題的解,通過獵捕高適應度的螞蟻實現(xiàn)對近似最優(yōu)解的更新和保存。
螞蟻在自然界中隨機游走尋找食物的過程可以看作各搜索代理搜尋可行域的過程。隨機游走的過程在數(shù)學上可以表示為
X(t)=[0,cumsum(2r(t1)-1),…,
cumsum(2r(tn)-1)]
(1)
式中:X(t)為螞蟻隨機游走的步數(shù)集;cumsum為計算累加和;t為隨機游走的步數(shù)(本文取最大迭代次數(shù));r(t)為一個隨機函數(shù),定義為
(2)
式中:rand為[0,1]的隨機數(shù)。
由于可行域存在邊界,不能直接用式(1)更新螞蟻的位置。為確保螞蟻在可行域范圍內隨機游走,需根據式(3)對其進行歸一化
(3)
蟻獅制造的陷阱會影響螞蟻隨機游走的路線,為對此假設進行數(shù)學建模,提出
(4)
通過輪盤賭策略選擇某只螞蟻具體被哪只蟻獅捕食,每只螞蟻只能被一只蟻獅捕食,而適應度越高的蟻獅捕獲螞蟻的概率越大。另外,螞蟻一旦落入蟻獅制造的陷阱,蟻獅就會向陷阱邊緣拋沙以防止螞蟻逃脫。此時,螞蟻隨機游走的范圍將急劇縮小。通過下列方程模擬這種現(xiàn)象
(5)
(6)
式中:I為比例系數(shù);T為最大迭代次數(shù);v為一個隨著迭代次數(shù)增大而變化的數(shù)(本文取0.1T
當螞蟻的適應度值比蟻獅小時,則認為蟻獅將其捕獲,此時蟻獅會根據螞蟻的位置來更新位置
(7)
每次迭代后,選擇適應度最好的蟻獅作為精英蟻獅。第t只螞蟻在第t+1次迭代的位置由式(8)確定
(8)
步驟1數(shù)據初始化。確定螞蟻和蟻獅的數(shù)量以及變量維數(shù),在可行域內隨機初始化它們的位置,并計算相應的適應度值。
步驟2確定精英蟻獅。選擇初始化后蟻獅種群中適應度最好的作為精英蟻獅,本文適應度值越小越好。
步驟4每次迭代后重新計算螞蟻和蟻獅適應度值,根據螞蟻的位置和適應度更新蟻獅位置,適應度最好的位置為新精英蟻獅的位置。
步驟5判斷是否到達最大迭代次數(shù),若到達則輸出結果并結束迭代,否則重復步驟3。
本文采用單元剛度折減模擬結構的真實損傷,忽略質量變化產生的影響,則結構的整體剛度矩陣可以表示為
(9)
式中:α為結構損傷因子向量;αi即為第i個單元的損傷程度,將結構損傷因子約束在[0,0.99], 其中αi=0為單元健康,αi=0.99為單元完全失效;Ki為整體坐標下第i個單元的剛度矩陣;K(α)即損傷量為α時的剛度矩陣。
模型修正結構損傷識別方法的核心思想是尋找合適的計算模型,使計算獲得的結構特征參數(shù)與實測結構特征參數(shù)相一致。本文選取結構固有頻率與結構振型作為特征參考值,并給出描述特征相近程度的定量函數(shù)為
(10)
(11)
(12)
利用頻率與振型,可將結構損傷識別問題轉化為數(shù)學中優(yōu)化問題的形式,其目標函數(shù)為
(13)
式中:Δ1和Δ2為加權系數(shù)。在測量信息完備,忽略噪聲影響的理想情況下,利用式(13)進行結構損傷識別可得到最接近真實損傷的結果。但是,在實際工程中不存在理想條件。因此,在實際應用中通常存在兩個問題:
(1)實測模態(tài)信息有限而待識別參數(shù)過多,往往使損傷識別方程出現(xiàn)較大誤差,從而導致識別結果產生偏離,即測量數(shù)據不完備導致多識別結果[13]。例如,只利用頻率去識別簡支梁損傷的結果容易出現(xiàn)對稱單元誤判,這是由于對稱單元具有一致的損傷靈敏度。
(2)測量時存在噪聲導致識別精度降低,結構損傷識別屬于結構動力學逆問題的研究范疇,由結構特征建立的優(yōu)化問題通常呈現(xiàn)病態(tài)性,即微小的信號擾動會給識別結果帶來較大的誤差[14]。
真實損傷通常只發(fā)生在結構的局部位置,在物理空間上具有稀疏性。因此,為提高結構損傷識別的精度,本文在式(13)的基礎上,引入跡稀疏約束條件,將目標函數(shù)改寫為
(14)
式中:λ為正則化參數(shù),其數(shù)值表示參與程度大??; ‖M(α)‖*為跡范數(shù),表示計算矩陣M的奇異值之和,其中矩陣M(α)=Xdiag(α),X為設計矩陣。
本文將矩陣X設為
X=A·rand(Nele)
(15)
(16)
式(14)為跡稀疏約束條件下結構損傷識別方程,可用本文所提ALO算法進行求解。與式(13)比較,其最大的優(yōu)勢在于引入損傷變量的稀疏性約束,既有利于描述真實損傷在物理空間上的稀疏性,又利于改善原來問題的病態(tài)程度及提高識別結果的抗噪魯棒性。
上述定義的目標函數(shù)中,采用兩個加權系數(shù)Δ1和Δ2平衡來自頻率與振型的信息。 實際上,頻率和振型屬于同一結構中兩種不同類型的動力指紋。由頻率和振型分別構成函數(shù)w(α)和φ(α),在數(shù)值上可能出現(xiàn)較大的差異。
(17)
(18)
(19)
式中:αi取0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,0.99分別進行損傷識別;w(αi)j和φ(αi)j為第j個單元在損傷因子為αi時w(α)和φ(α)的數(shù)值; 計算得到Δ1和Δ2分別為0.025和0.975。
簡支梁有限元模型見圖1,梁全長為3 m,共劃分為10個單元,所用單元為2結點4自由度單元。其中圓圈內數(shù)字為單元編號,其余為節(jié)點編號。結構彈性模量Ec=210 GPa; 橫截面面積Sc=1.164×10-3m2; 截面慣性矩Ic=7.617×10-7m4; 材料密度Dc=8 590 kg/m3。損傷工況設置見表1,分別考慮單損傷、兩損傷及多損傷工況。結構損傷識別時,取結構前5階固有頻率與模態(tài)振型,其中振型只提取各單元節(jié)點的豎向自由度。同時考察噪聲對模態(tài)參量的影響,即同時對頻率和振型加噪聲,噪聲添加公式為
rn=rcal(1+LnRn)
(20)
式中:rn和rcal分別為含噪聲與不含噪聲模態(tài)參量;Ln為噪聲水平;Rn為以隨機矩陣, 表示矩陣Rn內每個數(shù)都是[0,1]的隨機數(shù)。
圖1 數(shù)值模擬簡支梁有限元模型Fig.1 Finite element model of simply-supported beam
數(shù)值模擬過程在MATLAB2016b版本環(huán)境下實現(xiàn),ALO算法參數(shù)設置為:蟻獅數(shù)量ALnum=100, 螞蟻數(shù)量Antnum=100, 變量維度dim=10, 最大迭代次數(shù)Gmax=100, 螞蟻隨機游走步長n=100, 損傷因子約束在αi∈[0,0.99],并隨機初始化種群位置。針對最小值問題,每個工況計算10次,取10次結果作為最終識別結果。
圖2為ALO算法計算本文目標函數(shù)的迭代收斂曲線圖。由于迭代次數(shù)在[80,100]收斂,故取最大迭代次數(shù)為Gmax=100次。
另外,本文對是否添加稀疏約束的問題進行了數(shù)值模擬,結果如表2所示。從表2可知,考慮稀疏約束的識別結果比不考慮稀疏約束識別結果更趨于真實值,噪聲水平越大稀疏約束起到的作用越明顯。因此,后續(xù)研究都采用添加稀疏約束方案。
表1 損傷工況及識別結果
圖2 ALO算法迭代收斂圖Fig.2 Iterative convergence curve of ALO algorithm
Tab.2 Effect of trace sparse constraint on SDD %
圖3~圖7為不同噪聲水平[15]下各工況損傷單元識別結果。可以看出ALO算法既能準確識別出損傷單元所處位置且能夠較為精確的識別出單元損傷程度;工況1出現(xiàn)的誤判最少,說明單損傷識別結果好于兩損傷及多損傷識別結果;工況4和工況5為對稱單元損傷,且對稱單元損傷識別結果有互補的趨勢,驗證了簡支梁對稱單元具有一致的損傷靈敏度結論。
在圖3~圖7中,0.15%噪聲水平和1%噪聲水平下各工況損傷識別結果表明噪聲的加入雖會使一些未損傷單元處出現(xiàn)誤判,但大部分誤判結果均較小,仍可看作無損單元。雖然在高損傷工況5情況下,有個別誤判超過5%,但是并不影響ALO算法對損傷單元真實位置及損傷真實程度的判斷。結果表明噪聲對結構損傷識別結果影響不大,即ALO算法在結構損傷識別過程中具有一定噪聲魯棒性。
圖3 不同噪聲水平工況1損傷識別結果Fig.3 SDD results in case 1
圖4 不同噪聲水平工況2損傷識別結果Fig.4 SDD results in case 2
圖5 不同噪聲水平下工況3損傷識別結果Fig.5 SDD results in case 3
圖6 不同噪聲水平工況4損傷識別結果Fig.6 SDD results in case 4
圖7 不同噪聲水平工況5損傷識別結果Fig.7 SDD results in case 5
本文實驗數(shù)據、圖8、圖9均引自文獻[16]。實驗模型為3 m長封閉鋼管簡支梁,外圍寬140 mm,高60 mm,鋼板厚度3 mm,主梁兩端底面橫橋向焊接鋼轉軸,與固定在鉸接支座上的軸承動圈固結,見圖8。
圖8 實驗設置Fig.8 Experimental setup
在結構損傷檢測前,須建立與實驗模型對應的健康結構有限元模型,由于建模存在誤差需對初始有限元模型進行修正。具體模型修正見參考Chen等的研究。
修正后的有限元模型可以作為健康結構的基準來模擬損傷情況。如圖9所示,通過減小梁的橫截面來模擬結構損傷。通過降低梁剛度百分比來估計真實損傷程度。實驗設置了4種損傷工況,見表3。切割位置選擇在距離左端支座0.4 m和2.2 m處。真實的損傷程度通過慣性矩的變化近似估算,具體計算方法以及參數(shù)見Pan等的研究。從表3可知,頻率隨著損傷程度加劇而減小,本文選取前三階測量頻率與振型進行損傷識別。
采用ALO算法計算時,基本參數(shù)為:ALnum=100,Antnum=100,dim=10,Gmax=100,n=100,損傷因子約束在xi∈[0,0.99]。每個工況計算10次,取10次結果的平均值作為最終識別結果。
圖9 實驗切割模型Fig.9 Experimental cutting model
損傷工況切割深度@位置估算損傷程度@單元測量頻率/Hz第一階第二階第三階13 mm@0.4 m70.1%@223.66386.515181.319230 mm@0.4 m95.2%@222.80478.813165.038330 mm@0.4,3 mm@2.2 m95.2%@2,70.1%@822.15475.275161.631430 mm@0.4,30 mm@2.2 m95.2%@3,95.2%@819.93867.101154.669
由圖10~圖13的損傷識別結果可知:
(1) 本文所提方法在實驗4個工況下都能夠有效地定位損傷位置且準確識別損傷程度。雖然工況4中的5號和2號健康單元出現(xiàn)了較大的SDD值,但是與真實損傷單元SDD值比較,相對較小,所以能夠從一定程度上仍能說明本文所提方法的合理性和有效性。
圖10 工況1損傷識別結果Fig.10 SDD results in case 1
圖11 工況2損傷識別結果Fig.11 SDD results in case 2
圖12 工況3損傷識別結果Fig.12 SDD results in case 3
圖13 工況4損傷識別結果Fig.13 SDD results in case 4
(2) 在2號和8號損傷單元上,損傷識別結果均要小于基于截面慣性矩變化的估算結果,主要原因是Lu等研究中所提損傷估算方法可能存在偏高估計。此外,從工況4的識別結果可以看出,2號單元和8號單元的損傷識別程度十分接近。因為兩個單元內的切割縫深度相同,在一定程度上說明了損傷識別結果的合理性。
本文提出基于蟻獅優(yōu)化算法和跡稀疏正則化的損傷識別方法。通對簡支梁單損傷、兩損傷、多損傷數(shù)值模擬以及鋼管簡支梁實驗驗證本文所提損傷識別方法的有效性和可行性。結論如下:
(1) 數(shù)值模擬與實驗結果表明本文提出的基于蟻獅優(yōu)化算法和跡稀疏正則化的損傷識別方法能夠有效識別出不同損傷工況下的結構損傷位置及損傷程度,且具有一定噪聲魯棒性。
(2) 蟻獅優(yōu)化算法各參數(shù)取值較合理,可應用于基于模型修正的結構損傷識別目標函數(shù)優(yōu)化問題。
(3) 鋼管簡支梁模型修正結果表明,蟻獅優(yōu)化算法修正的有限元模型能較好模擬實際模型。
(4) 真實損傷一般出現(xiàn)在結構局部位置,物理空間上具有稀疏性。在目標函數(shù)中添加稀疏約束有利于提取損傷識別結果的稀疏表示,既能抑制噪聲帶來的不利影響又能提高損傷識別精度。