韓錕,楊廣為,黃澤帆,鮑天哲
(1.中南大學(xué)交通運輸工程學(xué)院,湖南長沙,410075;2.利茲大學(xué)電子電氣學(xué)院,英國利茲,LS2 9JT)
機車輪(軸)重分配不均會使機車運行時輪軸間傳遞的最大切向力減小,造成機車牽引力下降,甚至?xí)?dǎo)致空轉(zhuǎn)打滑、車輪踏面剝離、車軸斷裂等事故,是影響行車安全的重要隱患[1]。對具有兩系懸掛結(jié)構(gòu)的機車,通過加墊調(diào)節(jié)一、二系彈簧的變形量以改善輪(軸)重分配(以下簡稱調(diào)簧),是減小甚至消除輪(軸)重分配偏差的有效方法[2]。傳統(tǒng)的人工調(diào)簧方法完全依賴經(jīng)驗判斷,調(diào)整結(jié)果難以滿足GB/T 3317—2016 規(guī)定的輪(軸)重分配允許偏差要求。針對調(diào)簧這一復(fù)雜的多變量優(yōu)化問題,在優(yōu)化模型的表達方面,CURTIS 等[3]采用試驗法,通過試驗測試得到加墊高度與彈簧載荷分布間的關(guān)系,作為計算加墊高度的依據(jù)。該方法易于實現(xiàn),但計算結(jié)果的準確性過度依賴試驗數(shù)據(jù),不具有通用性。潘迪夫等[4]基于經(jīng)典力學(xué)理論,得到了描述二系彈簧加墊高度與彈簧載荷分布間映射關(guān)系的調(diào)簧理論模型,具有一定的通用性。在此基礎(chǔ)上,韓錕等[5]提出了帶誤差補償?shù)幕旌夏P停M一步完善了調(diào)簧理論模型,使模型包含了機車彈性懸掛結(jié)構(gòu)中非線性因素對彈簧載荷分布的影響。上述成果為調(diào)簧提供了重要的理論依據(jù)。在優(yōu)化模型的求解方面,近年來,各種智能優(yōu)化方法如遺傳算法、SUMT算法、人工魚群算法、模擬退火算法等不斷應(yīng)用于調(diào)簧領(lǐng)域[6?8],這些算法理論上可以求解,但通常存在計算時間長、求解精度低等問題。為此,韓錕等[9?10]提出了改進遺傳算法,在一定程度避免了遺傳算法早熟收斂的問題,求解精度有所提高。此外,潘迪夫等[11?12]提出了多目標遺傳算法以及免疫優(yōu)化算法,在提高算法魯棒性的同時,有效控制了加墊總高度,但算法復(fù)雜度也隨之提高。針對上述問題,本文提出一種具有3 層遞階結(jié)構(gòu)的改進粒子群算法(improved particle swarm optimization,IPSO),在充分利用粒子群算法參數(shù)設(shè)計簡單、收斂速度快等優(yōu)點的基礎(chǔ)上對粒子的更新機制加以改進,通過引入維變異算子和煙花爆炸機制增加粒子的多樣性,通過引入擾動因子避免算法因陷入局部搜索而進行大量冗余迭代,從而在提高算法全局搜索能力的同時加快算法的收斂速度,使調(diào)簧精度和效率共同提高。
粒子群算法是20世紀末KENNEDY等[13?14]受鳥群合作覓食啟發(fā)提出的一種智能進化算法。該算法通過模擬鳥群個體間對食物信息的共享,利用不斷圍繞距離食物最近的飛鳥展開搜索,逐漸縮小信息范圍直到發(fā)現(xiàn)食物。粒子群算法原理簡單,參數(shù)設(shè)置簡單,收斂速度快。與遺傳算法復(fù)雜的編碼解碼過程相比,粒子群算法更易實現(xiàn),并具有良好的通用性和魯棒性,已逐漸成為人們的研究熱點。但傳統(tǒng)粒子群算法容易發(fā)生早熟現(xiàn)象,其收斂精度還有待提高。為此,本文提出一種具有3層架構(gòu)的分層遞階改進粒子群算法,如圖1所示:底層是基礎(chǔ)層,是改進算法的基本框架,其本質(zhì)是加入了維變異算子的粒子群算法;中間層是融合層,在粒子群算法中引入煙花算法(fireworks algorithm,F(xiàn)WA)[15?16]的爆炸機制,將粒子群算法中適應(yīng)度較高的粒子作為煙花算法的爆炸煙花,以此增加粒子群算法的種群多樣性,擴大搜索范圍,提升算法的全局搜索能力,防止粒子群算法陷入局部最優(yōu),提高算法的收斂精度;頂層為擾動層,對粒子中的個體極值和全局極值施加擾動因子,避免算法因陷入局部搜索而進行大量冗余迭代,進一步加快收斂速度,提高算法效率。
圖1 改進粒子群算法總體架構(gòu)Fig.1 Framework of improved particle swarm optimization
粒子群算法(particle swarm optimization,PSO)沒有充分的精英機制,在淘汰迭代中產(chǎn)生劣解時,算法收斂速度會減慢。本文參考文獻[17],引入帶維變異算子的PSO作為IPSO算法的基本框架,其變異策略為:在粒子群所在的D維搜索空間中,引入?yún)?shù)lcon(n)(n∈[1,D])表示各個粒子在第n維的當前位置xi,n(i=1,2,…,N,N為粒子群中的粒子總數(shù))到粒子群在第n維上的質(zhì)心Dn到的距離總和,可用下式表示:
lcon(n)描述了粒子群在第n維上的收斂程度,其值越小,表示粒子群在該維上的收斂程度越大。在粒子群算法的每一次迭代過程中,計算每個維度上的lcon(n),找到這D個lcon(n)中最小值所在的維d,并對各個粒子在該維的當前位置xi,d以一定的概率按下式進行變異操作,使讓所有粒子在該維上的位置重新均勻分布:
式中:α為(0,1)區(qū)間的隨機數(shù);xmax為所有粒子在d維的位置最大值。
為進一步提高全局和局部搜索能力,IPSO算法構(gòu)建了融合煙花算法的中間層,對煙花算法的爆炸機制加以改進,用于更新粒子。在煙花算法中,每一個煙花個體都代表優(yōu)化問題的1個候選解,算法在執(zhí)行爆炸尋優(yōu)操作時,以每個煙花作為爆炸中心,通過特定的爆炸策略生成子代火花,并在其中挑出優(yōu)解作為下一代的候選解。IPSO算法參考文獻[18-19],改進的煙花爆炸機制如下。
在以煙花個體xi為中心,半徑為r的超立方體(D維空間)中隨機產(chǎn)生Mg個火花的過程中,xi先按式(3)進行處理:
式中:R為爆炸半徑在坐標軸上的投影值;β為服從[0,1]均勻分布的隨機數(shù);bk為方向向量。
從式(3)可以看出,改進后的爆炸機制使煙花不再僅沿坐標軸以固定半徑爆炸,而且其爆炸方向和爆炸半徑均隨隨機數(shù)β而變化,如圖2所示。由圖2可見:改進的爆炸機制豐富了由煙花爆炸得到的火花的多樣性,使算法的搜索路徑得到改善,不再僅沿坐標軸方向搜索,而且可以沿著任意角度搜索,拓展了算法在設(shè)計區(qū)間的搜索范圍。
圖2 改進爆炸機制前后煙花爆炸結(jié)果示意圖Fig.2 Diagram of fireworks explosion before and after improving explosion mechanism
煙花算法的爆炸強度即產(chǎn)生的新火花的數(shù)目與煙花適應(yīng)度緊密聯(lián)系,通過控制爆炸強度使適應(yīng)度高的煙花爆炸而生成更多新火花,可以提高尋優(yōu)效率。減小爆炸幅度(爆炸半徑)可以縮小煙花的爆炸范圍,加快算法收斂。煙花算法是通過計算每個煙花個體的適應(yīng)度函數(shù)值確定爆炸強度和爆炸幅度,計算方法如下:
式中:Si為第i個煙花爆炸產(chǎn)生的火花數(shù)量;Ai為第i個煙花的爆炸半徑;ymax和ymin分別為當前煙花種群適應(yīng)度的最大值和最小值;f(xi)為適應(yīng)度函數(shù),i=1,2,…,N;N為種群規(guī)模;A為最大爆炸半徑;M為常數(shù),用于控制N個煙花爆炸產(chǎn)生的火花總數(shù)。為避免在特殊情況下存在分母為0的可能,引入極小常數(shù)ε進行約束。
為了避免適應(yīng)度高的煙花爆炸強度過大,產(chǎn)生壓倒性的影響,通過下式對煙花爆炸產(chǎn)生的火花數(shù)量進行約束:
式中:為約束后第i個煙花爆炸產(chǎn)生的火花數(shù)量;a和b為常數(shù);round為取整函數(shù)。
如前所述,IPSO算法以帶維變異算子的粒子群算法作為算法主體。但隨著迭代次數(shù)增加,帶維變異算子的粒子群算法會因粒子貧化而導(dǎo)致搜索能力下降,故IPSO算法在每次迭代過程中進行粒子更新操作時,引入1.3節(jié)所述的改變爆炸方式的煙花算法,將帶維變異算子的粒子群算法更新得到的每個粒子個體極值作為煙花算法中的煙花個體,按式(3)給出的爆炸機制進行操作,以期增強IPSO算法在迭代過程中的種群多樣性,提高算法全局搜索能力。爆炸操作中每個煙花個體產(chǎn)生的火花數(shù)量Si和爆炸半徑Ai分別按式(7)和式(8)計算:
式中:為第i個粒子第t次迭代時的個體極值的適應(yīng)度;和分別為所有煙花個體中的適應(yīng)度最大值和最小值。
最后,在IPSO算法中引入擾動因子,防止算法在尋優(yōu)過程中因陷入局部搜索而出現(xiàn)扎堆現(xiàn)象,從而加快收斂速度。在第t次迭代過程中,對個體極值,全局極值以及迭代更新后粒子位置xti+1加入擾動因子,即
其中:α,β和δ為條件隨機函數(shù);tp和tg分別為個體極值和全局極值迭代停滯的次數(shù);tx為對粒子位置進行擾動的次數(shù);為更新后的粒子速度;Tp,Tg和Tx分別為個體極值、全局極值和粒子位置擾動的限界值。
由式(12)~(16)計算得t+1次迭代更新后d維粒子的速度和位置。設(shè)為迭代次數(shù)t時的d維第i個粒子的個體極值,為迭代次數(shù)t時的d維第i個粒子的全局極值,t為迭代次數(shù),T為最大迭代次數(shù),wt為第t次迭代時的慣性權(quán)重,wmax和wmin分別為wt的最大值和最小值,c1和c2為學(xué)習(xí)因子(取值不大于2),vmax和vmin分別為粒子的速度最大值和最小值,xmax和xmin分別為位置上、下限,有
IPSO算法的具體流程如下。
Step 1:設(shè)定種群規(guī)模、迭代次數(shù)、慣性系數(shù)、速度位置等算法參數(shù)。
Step 2:初始化粒子的速度和位置。
Step 3:計算粒子的適應(yīng)度f(xi),再求出個體極值對應(yīng)煙花算法的適應(yīng)度。
Step 4:令t=t+1,開始迭代更新粒子的速度和位置。按照式(13)~(16)更新粒子的速度,再由速度更新位置。
Step 5:加入維變異算子,對粒子進行變異,計算適應(yīng)度函數(shù),依據(jù)種群粒子信息更新。
Step 6:將Step 5 更新得到的作為煙花算法中的煙花個體,并對其進行爆炸操作,計算f(xi),并更新。
Step 7:根據(jù)與更新全局極值。
Step 8:引入擾動因子,計算適應(yīng)度函數(shù)值,并再次更新。
Step 9:若t 為了驗證IPSO算法的性能,將IPSO算法和遺傳算法(GA)、粒子群算法(PSO)及煙花算法(FWA)進行比較。選取3個最小值唯一且都為0的標準測試函數(shù)對算法性能進行測試。其中,F(xiàn)1(x)為Rosenbrock函數(shù),它是一個結(jié)構(gòu)特征酷似峽谷的單峰函數(shù),其全局最小值位于綿長且平坦的谷底,該函數(shù)可用于測試算法的全局搜索能力。 F2(X)為Rastrigin函數(shù),是1個局部極小值較多的多峰函數(shù),可以測試算法跳出局部最優(yōu)的能力: F3(X)為Ackleys函數(shù),用來測試算法全局收斂速度: 為了比較算法的性能優(yōu)勢,IPSO,GA,PSO和FWA 算法中均取最大迭代次數(shù)T=500,種群規(guī)模N=100。Rosenbrock 函數(shù)對應(yīng)維度為D=10,其他2種函數(shù)對應(yīng)維度D=35。圖3所示為各算法迭代過程中最佳適應(yīng)度收斂曲線。 圖3 4種算法對基準測試函數(shù)的收斂曲線Fig.3 Convergence curves of four algorithms running on benchmark function 從圖3可見:在這4種算法中,IPSO算法的搜索能力最強,收斂速度最快。這是因為IPSO算法充分利用了煙花算法的爆炸機制來增強種群多樣性,降低了算法限入局部極值的概率;同時,引入的擾動因子避免了IPSO算法在局部極值區(qū)域的冗余迭代,加快了算法收斂速度。 為進一步驗證算法的魯棒性,這4種算法分別獨立運行50 次,得到的最優(yōu)解、最差解、最優(yōu)適應(yīng)度均值、方差如表1所示。 表1 表明:在用4 種算法對3個測試函數(shù)分別進行尋優(yōu)運算的實驗中,IPSO算法所得到的500次獨立運行結(jié)果中的最優(yōu)解、最差解,以及500次求解結(jié)果的均值和方差等均低于GA,PSO和FWA算法相應(yīng)的求解結(jié)果,表明IPSO算法具有更強的全局搜索能力和魯棒性。 本文實驗平臺為實驗室自主研發(fā)設(shè)計的大功率機車車體稱重調(diào)簧試驗臺[4],本實驗所有數(shù)據(jù)均來源于現(xiàn)場采集,試驗臺為車體提供12個支承點,通過液壓系統(tǒng)控制支承點抬升來模擬各二系彈簧處的加墊操作。試驗臺的位移控制精度達0.1 mm,足以保證試驗的可靠性。 軸式為C0?C0的電傳動機車二系支承結(jié)構(gòu)的簡化模型見圖4。此模型只考慮二系彈簧垂向載荷分布,將車體視為一個整體,總重力為P,ex和ey分別為車體重心在X和Y方向的偏移量,a和b分別為沿X和Y方向距離車底中心O的距離,S1和S2為同一轉(zhuǎn)向架同側(cè)的二系彈簧橫向間距,F(xiàn)1~F12分別為12個二系彈簧對車體的支承力。 文獻[5?6]針對機車二系彈簧載荷分布建立了基于傳統(tǒng)機理模型的優(yōu)化模型,具體形式為 式中:目標函數(shù)J表示二系彈簧載荷分布均方差,J越小,表示載荷分布越均勻;F0j和Fj分別為加墊調(diào)整前后第j個二系彈簧的載荷;-F為所有二系彈簧的載荷平均值;n為機車二系彈簧數(shù)目,從圖4可知n=12;kij為加墊引起載荷變化的增載系數(shù);Δhi為第i個彈簧對應(yīng)的加墊高度;ΔHmax為常數(shù),為試驗允許的最大加墊高度。 以大功率HXD1D型機車為試驗對象,根據(jù)現(xiàn)場實測數(shù)據(jù)結(jié)合IPSO算法開展調(diào)簧仿真實驗。為避免參數(shù)選擇的盲目性,利用遺傳算法對IPSO算法的參數(shù)進行全局優(yōu)化,綜合考慮計算復(fù)雜度和參數(shù)可靠度,得出一組最優(yōu)參數(shù)組合:種群規(guī)模N=60,迭代次數(shù)G=200 次,慣性權(quán)重最大值wmax=0.9,慣性權(quán)重最小值wmin=0.4,學(xué)習(xí)因子c1=c2=2,最大允許加墊高度ΔHmax=10 mm。4 種算法仿真實驗過程中的迭代收斂曲線如圖5所示。 表1 4種算法獨立運行50次的測試結(jié)果Table 1 Test results of four algorithms running independently 50 times 圖4 C0?C0軸式機車二系支承結(jié)構(gòu)簡化模型Fig.4 Simplified geometry model of secondary suspension system of C0?C0 locomotive 圖5 4種算法的迭代收斂曲線Fig.5 Convergence curves of four algorithms 由圖5 可知:在迭代前期,IPSO算法的收斂速度明顯比GA,PSO和FWA這3種算法的快;隨著迭代次數(shù)增加,PSO和FWA算法趨于早熟收斂,而IPSO算法在迭代超過60次以后載荷方差還有明顯下降,表明將粒子群算法與煙花算法相結(jié)合的IPSO算法很好地克服了傳統(tǒng)算法早熟的問題;同時,在相同種群規(guī)模下,IPSO算法的收斂精度最高,具有較強的全局搜索能力。 HXD1D 型機車共有12個二系支承點,IPSO算法優(yōu)化前后,各支承點處二系彈簧的載荷分布情況和相應(yīng)的加墊高度如表2所示。由表2 可知:通過IPSO算法優(yōu)化后,二系彈簧載荷分布方差由初始的1.300 降低到0.507,減小了61%;12個二系彈簧載荷的最大差值也由2.68 kN 減小到2.03 kN,減小了24.3%。實驗結(jié)果驗證了IPSO算法優(yōu)化二系彈簧載荷分布均勻性的有效性。 表2 HXD1D型機車初始二系載荷分布及優(yōu)化結(jié)果Table 2 Initial distribution and optimization results of secondary spring load of locomotive HXD1D 為了進一步驗證IPSO算法在機車二系彈簧載荷分布優(yōu)化中的有效性和魯棒性,將其與遺傳算法、粒子群算法、煙花算法進行比較,4種算法在種群規(guī)模為60,迭代次數(shù)為200次的條件下獨立運行50次的結(jié)果見表3。從表3可以看出:IPSO算法的平均運行時間比GA 略短,比PSO和FWA 耗時要長;但IPSO算法50次求解得到的二系彈簧載荷分布方差的平均值為0.507 8,較PSO算法的0.744 9 減小了31.8%,較FWA 算法的0.633 5 減小了19.8%,較GA 算法的0.644 9 減小了21.3%,在求解精度上具有顯著優(yōu)勢;IPSO算法50次求解得到的二系彈簧載荷分布方差的標準差僅為3.113 5×10?4,50次求解得到的二系彈簧載荷分布方差的最優(yōu)解與最差解僅相差0.001 2,顯示了良好的魯棒性;與GA 算法相比,IPSO算法在求解精度、求解效率、魯棒性等方面均具有一定優(yōu)勢。 表3 4種算法獨立運行50次的結(jié)果對比Table 3 Results comparison of four algorithms independently running 50 times 圖6 4種算法50次獨立運行結(jié)果分布的箱式圖Fig.6 Box-plot of four algorithms PSO,F(xiàn)WA,GA和IPSO算法分別獨立運行50次所得結(jié)果分布的箱式圖見圖6。圖6中每個箱體的高度在一定程度上反映了50 次結(jié)果數(shù)據(jù)的波動程度,箱體上方和下方的線段代表了該組數(shù)據(jù)的最大值和最小值,箱體內(nèi)部的線代表該組數(shù)據(jù)中位數(shù)的值,箱子外部的點為數(shù)據(jù)中位于箱體外面且距離相應(yīng)邊界大于1.5 倍箱體高度的“異常值”。從圖6可以直觀地看出:描述IPSO算法50次運行結(jié)果分布的箱體高度最小,表明該算法多次運行結(jié)果的波動遠比其他3 種算法的小,且50 次運行結(jié)果中沒有“異常值”,具有很好的魯棒性;IPSO算法50次運行結(jié)果的中位數(shù)值在所有算法中最小,表明該算法求解精度最高。 1)提出了一種采用分層遞階結(jié)構(gòu)的改進粒子群算法IPSO,算法底層為基礎(chǔ)層,通過在粒子群算法中加入維變異算子,避免算法早熟收斂;中間層為融合層,融入煙花算法,采用改進的煙花爆炸機制進行粒子更新,充分利用煙花算法的優(yōu)勢平衡IPSO算法的全局和局部搜索能力;頂層為擾動層,在一定條件下對每次迭代過程中得到粒子的個體極值和全局極值進行加入擾動因子,以避免算法在局部極值區(qū)域進行冗余迭代,提高算法效率。 2)IPSO算法在全局搜索能力、求解精度、魯棒性等方面的綜合性能明顯優(yōu)于其他幾種優(yōu)化算法。 3)經(jīng)過IPSO算法優(yōu)化后的載荷均方差相較于原始值減小了61%,改進效果明顯;在算法獨立運行50 所得二系彈簧載荷分配方差的平均值與遺傳算法、煙花算法和粒子群算法相比,分別減小21.3%,19.8%和31.8%,且50 次運行結(jié)果的波動幅度遠小于這些算法,充分證明了IPSO算法在求解機車二系彈簧載荷分配優(yōu)化問題的有效性和可靠性。2 算法性能測試
3 IPSO算法在機車二系調(diào)簧中的應(yīng)用
3.1 機車二系支承結(jié)構(gòu)幾何模型
3.2 目標函數(shù)
3.3 仿真試驗結(jié)果
4 結(jié)論