李旭貞
(上海電子工業(yè)學(xué)校,上海 200240)
自1995年Kenney和Eberhard提出粒子群優(yōu)化算法(Particle Swarm Optimization,PSO)以來,該算法引起了專家學(xué)者的廣泛關(guān)注,逐漸應(yīng)用于多目標(biāo)優(yōu)化、非線性規(guī)劃和系統(tǒng)辨識等諸多領(lǐng)域[1]。該算法是一種集群優(yōu)化方法,具有高度的并行機制,可以用來解決復(fù)雜環(huán)境下的優(yōu)化問題,與其他算法相比,具有簡單和易于實現(xiàn)的優(yōu)點,特別是在求解復(fù)雜約束優(yōu)化問題上效率更高[2]。因此,本文提出了一種基于粒子群優(yōu)化算法的行星齒輪傳動設(shè)計方法,利用相關(guān)理論建立了行星齒輪傳動優(yōu)化數(shù)學(xué)模型,采用MATLAB語言實現(xiàn)算法,并用此方法解決行星齒輪傳動中的體積優(yōu)化設(shè)計問題。
粒子群優(yōu)化算法針對自然界生物行為的基本特征,利用普遍的、簡單的生存規(guī)則,采用當(dāng)代先進的計算機科學(xué)技術(shù),將這些特征、規(guī)則轉(zhuǎn)換成計算機語言,從而達(dá)到模擬生物個體的行為、解決實際復(fù)雜問題的目的。
每個優(yōu)化問題的潛在解為搜索空間中的一個粒子,這個粒子有一個由優(yōu)化函數(shù)決定的適應(yīng)度(Fitness Value),每個粒子由自己的速度保證它飛翔的方向與每一步的步長。特定周期后粒子們就追隨當(dāng)前的最優(yōu)粒子在解空間中搜索。這個速度需要根據(jù)各個粒子的經(jīng)驗并參考其他粒子的搜尋經(jīng)驗進行適時調(diào)整。每個粒子會記錄自己發(fā)現(xiàn)的最佳位置解(Particle Best,即Pbest),同時存儲當(dāng)前粒子群體搜索到的局部最優(yōu)解(Global Best,即PGbest)。然后,粒子群中的各個粒子通過當(dāng)前位置、當(dāng)前速度、當(dāng)前位置與本粒子當(dāng)前最佳位置解的距離和本粒子與當(dāng)前粒子群最佳位置解的距離來改變自己當(dāng)前的位置。粒子群優(yōu)化搜索就是這樣,利用群體隨機產(chǎn)生的初始化粒子群,以迭代的方式反復(fù)搜索,最終得到全局最優(yōu)解。
粒子群優(yōu)化算法(PSO)運行中,各個粒子在特定的l維搜索空間內(nèi)運動,假設(shè)粒子群的初始種群粒子數(shù)是n,每個粒子的位置代表這個空間中的一個解,第i個粒子的當(dāng)前空間位置為Xi=(xi1,xi2,xi3,…,xil),i=1,2,3,…,n;第i個搜索得到的最優(yōu)解Pbesti=(pbesti1,pbesti2,pbesti3,…,pbestil);粒子的速度為vi=(vi1,vi2,vi3,…,vil)。整個粒子群經(jīng)歷的最優(yōu)位置PGbest=(PGbest1,PGbest2,PGbest3,…,PGbestl),也被稱為最優(yōu)粒子、領(lǐng)導(dǎo)或領(lǐng)導(dǎo)粒子。粒子的位置和速度滿足下式:
Xi(t+1)=Xi(t)+vi(t+1).
(1)
vi(t+1)=wvi(t)+a1b1(Pbesti-Xi(t))+a2b2(PGbest-Xi(t)).
(2)
其中:a1、a2為學(xué)習(xí)因子,取a1=a2=2;b1、b2為[0,1]之間的隨機數(shù);w為慣性因子,取w=0.8[3]。
由式(2)明顯看出,PSO速度更新由3部分組成,vi(t)代表粒子i在t時刻的速度,vi(t)越大,粒子動能越大,越容易避免陷入局部最優(yōu)解,擴大搜索的范圍,進行全局搜索,反之,則易陷入局部最優(yōu)解,利于局部搜索,所以我們可以通過參數(shù)(a1、a2、b1、b2、w)控制其大小,用以滿足特定的搜索需要。a1b1(Pbesti-Xi(t))被稱為粒子的學(xué)習(xí)項,表征的是粒子自身經(jīng)驗對搜索的線性吸引程度,受a1b1調(diào)整,利用了粒子經(jīng)驗;a2b2(PGbest-Xi(t))被稱為粒子群的群體學(xué)習(xí)項,表征單個粒子受到群體的影響程度,受a2b2隨機調(diào)整。
適應(yīng)度函數(shù)為:
(3)
其中:X為相關(guān)變量組成的矩陣;μ為懲罰系數(shù);gi(X)為第i(1≤i≤n,n取整數(shù))個約束函數(shù)。
由式(3)可知,滿足約束時適應(yīng)度函數(shù)值小,反之,函數(shù)值大。如此,通過對適應(yīng)度函數(shù)值大小的判斷,可以剔除非優(yōu)秀解,保證得到更優(yōu)秀解。
式(2)的速度更新是根據(jù)粒子當(dāng)前的速度、當(dāng)前的位置和個體最佳位置與群體最佳位置通過系數(shù)a1、a2、b1、b2隨機加以調(diào)整。當(dāng)粒子移動到一個新的位置,此位置當(dāng)前的好壞程度將由定義好的一個適應(yīng)度函數(shù)來評價,這個函數(shù)與最終需要解決的問題直接相關(guān)。具體執(zhí)行過程如下:
(1) 初始化,確定粒子群規(guī)模以及每個粒子的位置、速度和適應(yīng)度。
(2) 根據(jù)適應(yīng)度函數(shù)計算每個粒子的當(dāng)前適應(yīng)度值。
(3) 每個粒子當(dāng)前的適應(yīng)度值與此粒子以前的Pbest比較,得出新Pbest并存儲。
(4) 將每個粒子的Pbest與粒子群當(dāng)前的PGbest比較,得出新的PGbest并存儲。
(5) 根據(jù)式(1)、式(2)更新粒子的位置和速度。
(6) 轉(zhuǎn)跳到第(2)步循環(huán)運行,反之,若滿足終止條件則終止程序,輸出結(jié)果。
粒子群優(yōu)化算法參數(shù)的設(shè)置主要依據(jù)相關(guān)經(jīng)驗,設(shè)置如下:
(1) 學(xué)習(xí)因子a1、a2:a1、a2是用來調(diào)節(jié)粒子自身記憶與群體其他同伴之間記憶的影響系數(shù),合適的選擇可以大大減少搜索的時間,避免陷入局部最優(yōu)解。研究表明取a1=a2較好。
(2) 群體規(guī)模n和維數(shù)l:一般n不會取幾十個左右,對于較復(fù)雜的問題可取100個~200個,l由優(yōu)化問題決定。
(3) 最大速度vmax:vmax決定粒子單步移動的范圍,其代數(shù)值大小一般不超出粒子活動的設(shè)定步長值,過大容易錯過最優(yōu)解,反之,則可能陷入局部最優(yōu)。
(4) 慣性因子w:w用以控制粒子當(dāng)前速度對下一步速度的影響,其大小直接影響粒子的全局或局部搜索能力,取較大值時,有利于全局搜索,較小則利于局部搜索,用以調(diào)節(jié)粒子群搜索能力的導(dǎo)向,合適的w可以減少迭代次數(shù)而獲得全局最優(yōu)解[4]。研究發(fā)現(xiàn)w在[0.8~1.2]之間時,具有較好的搜索能力。并且隨著搜索的進行,取w由大變小可能具有更好的搜索性能,主要因為初始較大的w可以較快速地找到比較好的范圍,隨著搜索的進行,較小的w可以增強其在局部找到最優(yōu)解的能力。
(5) 中止條件:一般當(dāng)搜索達(dá)到最大迭代次數(shù)時或滿足誤差精度要求時,搜索停止。
本文用粒子群算法對某水泥球磨機用二級NGW型行星齒輪減速器進行優(yōu)化求解。圖1為2K-H型行星傳動機構(gòu)簡圖,已知條件如下:輸入功率為2 000 kW,輸入轉(zhuǎn)速為590 r/min,輸出轉(zhuǎn)速為16.5 r/min,單向連續(xù)運行,負(fù)載較平穩(wěn),設(shè)計壽命不少于15年;太陽輪和行星輪的材料均為20CrNi2MoA,內(nèi)齒輪為42CrMb;低速級傳動比為5,高速級傳動比為7.052,高、低速級結(jié)構(gòu)基本相同。本設(shè)計僅以低速級為例進行優(yōu)化求解。低速級采用3個均布的行星輪,內(nèi)齒輪固定,太陽輪輸入,轉(zhuǎn)臂輸出。
本文根據(jù)設(shè)計需要要求設(shè)計的行星齒輪體積最小,目標(biāo)函數(shù)為[5]:
(4)
其中:Zb為內(nèi)齒圈齒數(shù),Zb=(iaH-1)Z1,iaH為低速級傳動比,Z1為太陽輪齒數(shù);m為齒輪模數(shù);b為齒寬。
圖1 2K-H型行星傳動機構(gòu)簡圖
根據(jù)行星齒輪的幾何尺寸、物理屬性和力學(xué)性能,取太陽輪齒數(shù)Z1、齒輪模數(shù)m及齒寬b為設(shè)計變量,即:
X=[Z1,b,m]T.
(5)
機械設(shè)計中的約束條件主要包括性能和幾何兩個方面,關(guān)鍵是確保設(shè)計結(jié)果滿足實際使用的需要。本文優(yōu)化設(shè)計的約束條件如下:
(1) 齒面接觸疲勞強度條件為:
Z1m2bk≥AH·Ta·u/(u-2).
(6)
其中:AH=8003KAKH/[δH]2,KA、KH分別為工況系數(shù)和載荷不均勻系數(shù),[δH]為許用應(yīng)力;Ta為輸入轉(zhuǎn)矩;k為行星輪數(shù);u=zg/Z1,zg為行星齒輪齒數(shù)。
由此得約束函數(shù)為:
g1(X)=AH·Ta·u/(u-2)-Z1m2bk≤0.
(7)
(2) 齒根彎曲疲勞強度條件為:
Z1bm2k≥AF·Ta·(4.69-0.63lnZ1).
(8)
其中:AF=133KAKF/[δF],KF為載荷不均勻系數(shù)[6],[δF]為許用強度。
由此得約束函數(shù):
g2(X)=AF·Ta·(4.69-0.63lnZ1)-Z1bm2k≤0.
(9)
(3) 行星輪鄰接條件為:
[iaHsin(π/k)-iaH+1]Z1-2≥0.
(10)
由此得約束函數(shù):
g3(X)=2-[iaHsin(π/k)-iaH+1]·Z1≤0.
(11)
(4) 由本設(shè)計可得邊界約束條件為:
Z1-17≥0.
(12)
b-10≥0.
(13)
m-2≥0.
(14)
b-5m≥0.
(15)
7m-5b≥0.
(16)
在MATLAB編程環(huán)境下,以目標(biāo)函數(shù)和約束條件共同轉(zhuǎn)化而成的函數(shù)作為粒子群優(yōu)化算法的數(shù)學(xué)模型,根據(jù)粒子群優(yōu)化算法計算流程編程求解,方便快捷[7]。采用粒子群優(yōu)化算法得到的行星齒輪的優(yōu)化結(jié)果和傳統(tǒng)設(shè)計結(jié)果[8]對比如表1所示。由表1可知,粒子群法優(yōu)化設(shè)計結(jié)果優(yōu)于前兩者,表現(xiàn)出了更好的全局尋優(yōu)能力。
根據(jù)行星齒輪的設(shè)計要求,本文運用粒子群優(yōu)化算法完成了對其體積目標(biāo)優(yōu)化。顯然,根據(jù)優(yōu)化結(jié)果與傳統(tǒng)設(shè)計的比較,采用本文的方法設(shè)計可以提高設(shè)計效率,獲得很好的經(jīng)濟效益,與傳統(tǒng)設(shè)計方法相比,具有明顯的優(yōu)越性。
表1 不同設(shè)計方法下行星齒輪傳動優(yōu)化結(jié)果