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

圖1 2K-H型行星傳動機構簡圖
根據行星齒輪的幾何尺寸、物理屬性和力學性能,取太陽輪齒數Z1、齒輪模數m及齒寬b為設計變量,即:
X=[Z1,b,m]T.
(5)
機械設計中的約束條件主要包括性能和幾何兩個方面,關鍵是確保設計結果滿足實際使用的需要。本文優化設計的約束條件如下:
(1) 齒面接觸疲勞強度條件為:
Z1m2bk≥AH·Ta·u/(u-2).
(6)
其中:AH=8003KAKH/[δH]2,KA、KH分別為工況系數和載荷不均勻系數,[δH]為許用應力;Ta為輸入轉矩;k為行星輪數;u=zg/Z1,zg為行星齒輪齒數。
由此得約束函數為:
g1(X)=AH·Ta·u/(u-2)-Z1m2bk≤0.
(7)
(2) 齒根彎曲疲勞強度條件為:
Z1bm2k≥AF·Ta·(4.69-0.63lnZ1).
(8)
其中:AF=133KAKF/[δF],KF為載荷不均勻系數[6],[δF]為許用強度。
由此得約束函數:
g2(X)=AF·Ta·(4.69-0.63lnZ1)-Z1bm2k≤0.
(9)
(3) 行星輪鄰接條件為:
[iaHsin(π/k)-iaH+1]Z1-2≥0.
(10)
由此得約束函數:
g3(X)=2-[iaHsin(π/k)-iaH+1]·Z1≤0.
(11)
(4) 由本設計可得邊界約束條件為:
Z1-17≥0.
(12)
b-10≥0.
(13)
m-2≥0.
(14)
b-5m≥0.
(15)
7m-5b≥0.
(16)
在MATLAB編程環境下,以目標函數和約束條件共同轉化而成的函數作為粒子群優化算法的數學模型,根據粒子群優化算法計算流程編程求解,方便快捷[7]。采用粒子群優化算法得到的行星齒輪的優化結果和傳統設計結果[8]對比如表1所示。由表1可知,粒子群法優化設計結果優于前兩者,表現出了更好的全局尋優能力。
根據行星齒輪的設計要求,本文運用粒子群優化算法完成了對其體積目標優化。顯然,根據優化結果與傳統設計的比較,采用本文的方法設計可以提高設計效率,獲得很好的經濟效益,與傳統設計方法相比,具有明顯的優越性。

表1 不同設計方法下行星齒輪傳動優化結果