韓 放,郭杏林,高海洋
(大連理工大學(xué) 工業(yè)裝備結(jié)構(gòu)分析國家重點實驗室,大連 116023)
確定轉(zhuǎn)子系統(tǒng)的未知參數(shù)是一項非常復(fù)雜的工作,對于具有非線性剛度和碰摩特性的轉(zhuǎn)子系統(tǒng)來說,由于碰摩力的間斷性使得參數(shù)的識別變得更加的困難。目前,優(yōu)化算法越來越多的用來求解機械系統(tǒng)的反問題當(dāng)中[1],從而也為參數(shù)識別提供了一個有效的替代方法[2]。近年來,人們從仿生學(xué)的機理中受到啟發(fā),提出了許多用于求解優(yōu)化問題的智能方法,如模擬退火算法[3]、遺傳算法[4]、蟻群算法[5]等,雖然在求解中不需要任何的梯度信息,但由于智能算法是一種基于全局的優(yōu)化算法,因此時間消耗比較大,為了能夠降低搜索時間提高搜索能力,許多學(xué)者提出了改進(jìn)方法,如局部搜索算法與遺傳算法相結(jié)合的提高算法[6-7],GASA算法[8],GA 與 AA 的混合算法[9],融合粒子群和局部搜索的優(yōu)化算法[10],遺傳算法與神經(jīng)網(wǎng)絡(luò)的混合算法[11]等。
本文在多種智能算法的啟發(fā)下,試圖探尋一種較好的平衡方法。在對多種經(jīng)典算法進(jìn)行研究和對比后,設(shè)計了一種改進(jìn)遺傳蟻群算法(GAAC)與局部鄰域搜索(local Neighborhood-searching,LNeS)相結(jié)合的新算法(Ne-GAAC)。以考慮非線性剛度和碰摩特性的單盤轉(zhuǎn)子模型為對象進(jìn)行仿真分析,討論了Ne-GAAC方法在識別非線性轉(zhuǎn)子系統(tǒng)若干參數(shù)的有效性和可行性。
遺傳算法(Genetic Algorithm,GA)具有快速全局搜索能力,但對于系統(tǒng)中的反饋信息沒有利用,往往導(dǎo)致無為的冗余迭代,求解效率低。蟻群算法(Ant Colony Algorithm,ACA)是通過信息素的累積和更新而收斂于最優(yōu)路徑,具有分布、并行、全局收斂能力,但是其缺點是初期信息素匱乏,求解速度較慢。本文算法吸取了GA和AC的優(yōu)點,首先形成改進(jìn)的GAAC算法,具體步驟如下:
(1)進(jìn)行遺傳算法編碼、選擇、交叉、變異運算,形成蟻群算法的新的尋優(yōu)區(qū)[Pmin,Pmax]和初始化參數(shù),將初始化參數(shù)分配給相應(yīng)的螞蟻,并將多態(tài)蟻群算法中對偵查螞蟻獲得的偵查素的定義運用到遺傳算法率先得到的初始元素的信息量中,生成額外的信息素分布:
式中:dij表示由遺傳算法得到的元素j所對應(yīng)的目標(biāo)函數(shù)值,表示由遺傳算法得到的所有元素所對應(yīng)的目標(biāo)函數(shù)最小值[12]。定義蟻群算法中元素的信息量初值為τC,因此集合Ici(1≤i≤M)(M為待識別參數(shù)量)中的元素j的信息素初值重新設(shè)置為[9]:
螞蟻的數(shù)目為s,全部置于蟻巢,設(shè)置最大迭代次數(shù)NCmax。
(2)啟動所有螞蟻,每只螞蟻從集合Ici開始,根據(jù)概率pj用輪盤賭法依次在每個集合中選擇若干元素,直到蟻群全部到達(dá)食物源,螞蟻的轉(zhuǎn)移概率為:
(3)當(dāng)所有螞蟻在每個集合中都選擇了一定數(shù)量的元素后,計算用各螞蟻所選元素做樣本的輸出誤差,記錄當(dāng)前所選參數(shù)中的最優(yōu)解,并保留。對所有集合Ici(1≤i≤2)中各元素的信息素按下式做調(diào)節(jié)
其中,參數(shù)0≤ρ≤1表示信息素的持久性,即殘余信息素的保留部分。
式中:Δτj(Ici)表示在本次循環(huán)中第k只螞蟻在:
式中:Ici的第j個元素上留下的信息素,如式(6)所示,集合Q是常數(shù),用來表示螞蟻完成一次循環(huán)后所釋放的信息素總量。它用于調(diào)節(jié)信息素的調(diào)整速度;Lm是以螞蟻k選擇的元素作為樣本時的輸出誤差。
在改進(jìn)的GAAC算法中,每次循環(huán)結(jié)束時求出最優(yōu)解,將其保留并與之前迭代后的最優(yōu)解比較,當(dāng)搜索到最優(yōu)解可能出現(xiàn)的區(qū)域后,就需要一種搜索機制進(jìn)行精細(xì)的局部搜索,準(zhǔn)確的定位最優(yōu)解的位置。本文設(shè)計出一種局部鄰域搜索機制,用于Ne-GAAC中的局部搜索。
為了明確Ne-GAAC中的局部鄰域搜索設(shè)計,首先需要定義幾個相關(guān)的概念[10]:
局部鄰域搜索啟動臨界值:預(yù)先設(shè)定的一個值,當(dāng)GAAC搜索到的某一個解的適應(yīng)值與目標(biāo)值相等時,Ne-GAAC算法以GAAC搜索到的這個解為初始值啟動一個局部鄰域搜索。在D維空間中一點X(x1,x2,x3,…,xd),若存在一個正數(shù),稱任意一維上(xi-δ,xi+δ)為該維度上的鄰域,則X所有維度上鄰域構(gòu)成的集合稱為X基于維度的鄰域,簡稱X的鄰域,記為U(X,δ)。
禁忌鄰域:記錄在禁忌列表中的鄰域稱為禁忌鄰域。對于禁忌鄰域內(nèi)的點,GAAC不進(jìn)行搜索,任何進(jìn)入禁忌鄰域區(qū)的螞蟻,自動重新分布。
基于以上的定義,可以設(shè)計Ne-GAAC中的局部鄰域搜索算法:
(1)產(chǎn)生一個初始解,并將初始解置為當(dāng)前解;
(2)產(chǎn)生當(dāng)前解的基于維度的鄰域,在該鄰域內(nèi)隨機產(chǎn)生m個衍生解,評價這些解的適應(yīng)值;
(3)若某個衍生解優(yōu)于當(dāng)前解,將該衍生解置為當(dāng)前解,算法結(jié)束,否則轉(zhuǎn)下一步;
(4)所有衍生解均劣于當(dāng)前解時,轉(zhuǎn)(2);若重復(fù)操作若干次后仍未尋找到比當(dāng)前解更優(yōu)的解,表明該處極有可能是局部優(yōu)化區(qū),結(jié)束該局部鄰域搜索區(qū)的搜索,算法結(jié)束。
(1)Ne-GAAC算法啟動,經(jīng)過遺傳算法迭代形成蟻群算法初始參數(shù)及尋優(yōu)區(qū)間,運行蟻群算法,設(shè)置最大迭代次數(shù)。
(2)判斷是否達(dá)到最大迭代次數(shù),若是,算法結(jié)束;否則,轉(zhuǎn)下一步;
(3)GAAC迭代,在每次循環(huán)結(jié)束時求出最優(yōu)解,將其保留并與之前迭代后的最優(yōu)解比較,若多次尋優(yōu)中出現(xiàn)了停滯和陷入局部最優(yōu)問題,則滿足局部鄰域搜索啟動條件,將這個解傳遞給LNeS作為初始解,把初始解置為當(dāng)前解,設(shè)置m值和δ值,初始化一個局部鄰域搜索,將初始解的鄰域記入禁忌鄰域,然后轉(zhuǎn)下一步。
(4)根據(jù)當(dāng)前解和當(dāng)前m值、δ值,按照局部鄰域搜索算法依次進(jìn)行一次迭代。若搜索到比當(dāng)前解更優(yōu)的解,將該解置為當(dāng)前解,轉(zhuǎn)(2);若既未搜索到滿足誤差條件的解,也未搜索到比當(dāng)前解更優(yōu)的解,則按給定條件重復(fù)搜索直到得到滿足條件的解,結(jié)束該鄰域搜索,然后轉(zhuǎn)(2),否則,保持當(dāng)前解不變,然后轉(zhuǎn)(2)。
流程圖如圖1所示:
圖1 Ne-GAAC算法流程圖Fig.1 Flowchart of Ne-GAAC
考慮 Duffing系統(tǒng)[13]:
利用本文方法識別系統(tǒng)進(jìn)入混沌運動時參數(shù)a,b的取值見表1。
表1 a、b的識別結(jié)果Tab.1 Identification results of a,b
通過表1可以看出,利用本方法識別非線性系統(tǒng)中的參數(shù)可以取得較好的識別結(jié)果。
具有非線性剛度和碰摩的轉(zhuǎn)子系統(tǒng)模型如圖2所示,對于具有非線性剛度的轉(zhuǎn)子系統(tǒng),其非線性剛度可以采用振動位移或速度的多項式函數(shù)形式表示,根據(jù)文獻(xiàn)中實驗結(jié)果,以線性項和立方項之和來表示源于中性軸伸長和對稱的轉(zhuǎn)軸材料物理非線性因素,其非線性應(yīng)力—應(yīng)變關(guān)系為[14]:
圖2 單盤轉(zhuǎn)子模型Fig.2 Model of rotor system
其對應(yīng)的轉(zhuǎn)軸彈性力可以表示為:
式中:k和kc分別為轉(zhuǎn)軸材料的線性和非線性剛度項系數(shù)。
轉(zhuǎn)子和定子間發(fā)生碰摩如圖3所示,在x-y坐標(biāo)系中碰摩力化為:
圖3 碰摩力模型Fig.3 Model of rub-impact
忽略兩端支承的振動,不考慮轉(zhuǎn)軸的質(zhì)量,則具有非線性剛度和線性阻尼的碰摩轉(zhuǎn)子系統(tǒng)動力學(xué)方程如下:
利用四階龍格庫塔法求解。
4.3.1 參數(shù)設(shè)置
表2給出了Ne-GAAC方法的參數(shù)選取,本文識別的參數(shù)為非線性碰摩轉(zhuǎn)子的碰摩剛度kr,非線性剛度kc和摩擦系數(shù)f,參數(shù)范圍分別為kr∈(1.0e5,1.0e7),kc∈(1.0e12,1.2e14),δ∈(1.0e-4,1.0e-6)。
表2 Ne-GAAC方法的參數(shù)選取Tab.2 Control parameters of Ne-GAAC
4.3.2 目標(biāo)函數(shù)選擇
在工程優(yōu)化問題中,目標(biāo)函數(shù)的選擇也是非常重要的,本文選用公式(12)-(14)三種不同形式的目標(biāo)函數(shù),通過對比得到最適宜求解非線性轉(zhuǎn)子系統(tǒng)的目標(biāo)函數(shù)。
其中,U為響應(yīng)值,X和A分別為仿真和分析結(jié)果,j為計算節(jié)點的位移向量,t為迭代時間。
當(dāng)ω=400,1 100,1 250 rad/s(單周期,雙周期,混沌)情況下,三個參數(shù)的識別結(jié)果見表3。
表 3 ω =400,1 100,1 250 rad/s(單周期、雙周期、混沌)識別結(jié)果Tab.3 Identification results when ω =400,1 100,1 250 rad/s
表3為不存在噪聲時單周期、雙周期、混沌狀態(tài)下的識別結(jié)果,對于三種形式的目標(biāo)函數(shù),識別值與參考值一致。
表4~表6為具有高斯白噪聲(0,0.01)時,取20組隨機樣本的識別結(jié)果,由表格中的數(shù)據(jù)可以看出,轉(zhuǎn)子系統(tǒng)由穩(wěn)定向不穩(wěn)定過渡的過程中,采用f1形式的目標(biāo)函數(shù)識別結(jié)存在的誤差較大,采用f2、f3兩種形式的目標(biāo)函數(shù)進(jìn)行識別均能得到滿意的識別結(jié)果。
表4 ω=400 rad/s時(單周期)具有高斯噪聲下的識別結(jié)果Tab.4 Identification results with Gaussian noise when ω=400 rad/s
表5 ω=1 100 rad/s時(雙周期)具有高斯噪聲下的識別結(jié)果Tab.5 Identification results with Gaussian noise when ω=1 100 rad/s
表6 ω=1 250 rad/s時(混沌)具有高斯噪聲下的識別結(jié)果Tab.6 Identification results with Gaussian noise when ω=1 250 rad/s
當(dāng)ω=1 250 rad/s并含有噪聲(0,0.01)時,考慮目標(biāo)函數(shù)為f2的形式時非線性剛度kc尋優(yōu)區(qū)間的優(yōu)化過程,如圖4所示,由圖4可以看出經(jīng)過遺傳算法優(yōu)化后區(qū)間范圍明顯縮小,從而可以很好的提高蟻群算法的運算速度。圖 5給出了非線性剛度kc的識別過程,其中1代表改進(jìn)的GAAC算法,2代表鄰域搜索算法,當(dāng)GAAC達(dá)到給定的條件后進(jìn)入局部鄰域搜索,經(jīng)過改進(jìn)的GAAC和鄰域搜索算法的循環(huán)迭代,最終得到了非線性剛度的識別結(jié)果。
表7通過Ne-GAAC、ACA、GA三種算法的對比可以看出,本文所提出的Ne-GAAC方法在非線性轉(zhuǎn)子系統(tǒng)的參數(shù)識別中具有收斂速度快、運算效率高的優(yōu)點。
表7 ω=400 rad/s不含有噪聲時Ne-GAAC、ACA、GA算法數(shù)據(jù)比較Tab.7 Comparison of identification results for Ne-GAAC、ACA、GA without Gaussian noise when ω =400 rad/s
本文從智能優(yōu)化算法出發(fā),考慮了遺傳算法和蟻群算法的不同特點,形成了改進(jìn)的GAAC算法,有效的彌補了兩種算法的不足,同時為了能夠更精確的定位最優(yōu)解,將鄰域搜索機制與改進(jìn)的GAAC算法相結(jié)合,形成了Ne-GAAC算法,通過算例驗證充分說明了本算法在不含有噪聲的非線性轉(zhuǎn)子系統(tǒng)參數(shù)識別中能夠準(zhǔn)確的識別非線性參數(shù),當(dāng)該系統(tǒng)存在噪聲時,在不同非線性特性下也能得到較好的識別結(jié)果。三種目標(biāo)函數(shù)的結(jié)果對比,也可以得到在非線性轉(zhuǎn)子系統(tǒng)的參數(shù)識別中應(yīng)采用f2形式的目標(biāo)函數(shù),能夠獲得最為滿意的識別結(jié)果,最終通過三種算法的對比更加充分的是說明Ne-GAAC算法在非線性轉(zhuǎn)子系統(tǒng)的參數(shù)識別方面具有收斂速度快、運算效率高的優(yōu)點。
[1]Assis E G,Steffen J R V.Inverse problem techniques for the identification of rotor-bearing systems[J].Inverse Problems in Engng,2003,11(1):39–53.
[2]盧文秀,褚福磊,郭 丹.基于遺傳算法的碰摩位置辨識[J].清華大學(xué)學(xué)報(自然科學(xué)版),2005,45(2):208-211.
[3]Kirkpatric S.Optimization by simulated annealing[M].Science,1983,220(320):671-680.
[4]周 明,孫樹棟.遺傳算法原理及應(yīng)用[M],國防工業(yè)出版社,1999:18-64.
[5]Dorigo M,Maniezzo V,Colorni A.Ant System:Optimization by a Colony of Cooperating Agents[J].IEEE Transactions on Systems,Man,and Cybernetics-PartB:Cybernetics,1996,26(1):29-41.
[6]Hagemana J A,Wehrens R,Van Sprang H A,et al.Hybrid genetic algorithm-tabu search approach for optimising multilayer optical coatings[J].Analytica Chimica Acta,2003,490:211-222.
[7]Hsiao C T,Chahine G,Gumerov N.Application of a hybrid genetic algorithm/Powell algorithm and a boundary element method to electrical impedance topography[J].Journal of Computational Physics,2001,173:433 454.
[8] Renders J M,F(xiàn)lasse S P.Hybrid methods using genetic algorithms for global optimization[J].IEEE Trans Syst Man Cybern Part B,1996,26(2):243-258.
[9]楊劍峰.基于遺傳算法和螞蟻算法求解函數(shù)優(yōu)化問題[J].浙江大學(xué)學(xué)報(工學(xué)版),2007,41(3):427-430.
[10]吳 亮,蔣玉明.融合粒子群和局部鄰域搜索的優(yōu)化算法[J].計算機工程與設(shè)計,2010,31(7):1557-1557.
[11] Kim Y H,Yang B S,Tan A C C.Bearing parameter identification of rotor-bearing system using clustering-based hybrid evolutionary algorithm[J].Struct Multidisc Optim,2007,33:493-506.
[12]段海濱.蟻群算法原理及其應(yīng)用[M].北京:科學(xué)出版社,2005:136-139.
[13]劉秉正.非線性動力學(xué)與混沌基礎(chǔ)[M].長春:東北師范大學(xué)出版社,1995:139-148.
[14]羅躍綱.轉(zhuǎn)子系統(tǒng)故障的若干非線性動力學(xué)問題及智能診斷研究[D].沈陽:東北大學(xué),2002.