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