陶澤南
(陸軍軍事交通學院學員五大隊,天津300161)
粒子群算法(particle swarm optimization, PSO)是一種基于鳥群覓食的啟發式算法。它與其他智能優化算法相比,具有收斂迅速、原理簡單、操作可靠、便于實現等優點,目前已被廣泛應用于工程領域。
圓柱齒輪減速器是一種相對精密的機械,使用它的目的在于降低轉速,增加轉矩。在減速器的設計中,如果能在保證齒輪強度的前提下,縮小減速器的體積,減輕減速器的重量,將對機械設備的制造具有重要意義。本文采用的粒子群算法,為圓柱齒輪減速器的體積優化提供了一種新思路。

圖1 圓柱齒輪減速器的結構
圓柱齒輪減速器的結構如圖1所示, 輸入軸上的小齒輪與輸出軸上的大齒輪相嚙合, 使減速器起到減速增扭的作用。 影響減速器體積的因素[1]主要有齒輪厚度b, 小齒輪的齒數z1, 齒輪模數m, 減速箱的寬度l1, 小齒輪軸孔徑ds1, 大齒輪軸孔徑ds2, 因此可以設計變量[b,z1,m,l1,ds1,ds2]=[x1,x2,x3,x4,x5,x6]。 減速器的體積可近似看成齒輪和軸的體積之和, 其目標函數為

式中:輸入軸伸出長度l2為25 cm;輸出軸伸出長度l3為30 cm;d1、d2、c分別為小齒輪的分度圓直徑、大齒輪分度圓直徑、頂隙,其大小與設計變量有關。
對于圓柱齒輪減速器來說,其約束條件如下。
1)齒面接觸強度條件
σH-[σH]≤0
式中:齒輪的許用接觸應力[σH]為855 MPa;載荷系數K為1.3;彈性模量ZE為189.8 MPa;節點區域系數ZH為2.5;σH為齒輪的實際接觸應力;T1為小齒輪傳遞的轉矩;u為大齒輪與小齒輪的齒數比。
2)小齒輪的直徑約束條件
d1≤32 cm
3)為保證齒輪的可靠性,要求輪齒具有一定的承載能力,其齒寬系數條件為
4)根據結構關系,軸的支撐跨距應滿足
l1≥b+0.2ds2+4
5)齒根彎曲強度條件
式中:齒輪的許用彎曲應力[σF1]為261 MPa,[σF2]為213 MPa;σF2、σF1分別為大、小齒輪的實際彎曲應力;YF為對應齒輪的齒形系數。
6)軸的彎曲強度條件
式中:軸的許用彎曲應力[σb]為55 MPa;T為軸所受轉矩,且大齒輪T為5T1;應力校正系數α為0.59;σb為軸的實際彎曲應力;σb2、σb1分別為大、小齒輪軸的實際彎曲應力;M為軸所受的彎矩;W為軸的抗彎剖面系數。
根據上述目標函數和約束條件,可建立如下數學模型,其中f(x)是優壓減速箱體積的目標函數,gi(x)是圓柱齒輪減速器的約束條件。

g2(x)=x2x3-32≤0
g5(x)=x1+0.5x6-x4+4≤0
上述數學模型可簡潔地表示為
粒子群算法屬于進化算法的一種,它是從隨機解出發,通過迭代尋找最優解。本節首先介紹了基本粒子群算法的原理,然后對處理約束條件的懲罰函數法進行介紹,最后將二者結合,研究了動態改變懲罰系數的改進粒子群算法,為下一節減速器優化的實例提供理論基礎。
粒子群算法也叫鳥群覓食算法,科學家從鳥群捕食的現象中得到啟發,假設了這樣一個場景:一群鳥聚集在一片區域中尋找食物,它們都不知道食物的具體位置,但是知道自身距離食物有多遠。也就是說每一個體都有一個大概的搜索范圍。為了最快地找到食物,它們會追隨離食物最近的那只鳥去搜索,這就大大節約了時間,提高了效率。上述思想體現了群體間的交流協作,鳥群除了要記錄自身找到的最佳位置外,還要依靠群體間的信息共享使群體發生由無序到有序的轉變。
在上述場景中,每一只鳥代表一個粒子,鳥的數量就是參與尋優過程的粒子規模。食物的位置代表整體最優值,是機械優化設計中的最佳方案。在應用基本粒子群算法時,首先賦予每個粒子一組初始解(包括位置和速度),然后粒子們會依據適應度值調整自己的飛行狀態,以保證向靠近食物的位置飛行。假設粒子們都具有記憶能力,它們可以記錄自己的當前位置、自身經歷過的最好位置(個體極值),以及種群中的最好位置(種群極值)。每迭代一次,個體極值和種群極值更新一次,通過前后極值的對比不斷調整運動方向,以接近食物位置[4]。
粒子i在ts和 (t+1) s的速度、位置關系為:
vi(t+1)=wvi(t)+c1r1(pi(t)-xi(t))+
c2r2(pg(t)-xi(t))
(1)
xi(t+1)=xi(t)+vi(t+1)
(2)
式中:w為慣性權重,代表粒子對當前速度繼承的比重;c1和c2為學習因子,作用是控制粒子向群體最優值接近,其值越大算法越易收斂,通常取值為2;r1和r2為0到1之間的隨機數;pg(t)表示種群中的最優位置;pi(t)表示粒子經歷過的最優位置。
速度更新公式由3部分組成。第一部分決定了粒子的先前速度,代表對原有速度的繼承。慣性權重的大小對粒子的全局搜索能力具有一定影響,一般設定慣性權重在迭代過程中由大到小線性遞減,以滿足粒子在前期廣泛搜索和后期精細搜索的需要[5]。第二部分表示粒子向自身學習的過程,也叫自我學習能力。第三部分表示粒子向群體學習的過程,也叫群體學習能力。
一般的機械優化問題多為約束條件下的尋優,如何處理約束條件成為解決優化問題的關鍵步驟。懲罰函數法的基本原理,就是將約束條件進行加權轉化后與目標函數結合,形成新的目標函數,該新函數也稱為適應度函數,其值就是粒子的適應度值,并以此來尋找全局最優解[6]。
優化問題的一般形式為:
minf(x)x=[x1,x2,…xn]∈Rn
(3)
式中,p、q分別為約束條件gi(x)、hi(x)的個數。
建立懲罰函數的目的,在于對不滿足條件的粒子進行懲罰,篩選出滿足條件的粒子,并在這些粒子中尋優。可以把懲罰函數值作為適應度值,適應度值較大說明粒子所受懲罰較嚴重,不是滿足條件的解,應舍棄,適應度值較小說明粒子能較好地滿足約束條件,應保留。基于這個思想,建立的懲罰函數。
設H(x)是懲罰項,定義為
(4)
式中:Φ(φi(x))是多級分配函數;θ(φi(x))是懲罰函數的級數,其中φi(x)=max(0,gi(x))i=1,2,…,p或φi(x)=|hi(x)|i=p+1,p+2,…,q。
懲罰函數定義為
F(x)=f(x)+μ(k)H(x)x∈Rn
(5)
式中μ(k)是懲罰系數。
懲罰函數的級數參數設置如下:
1)若φi(x)<1,則θ(φi(x))=1;
2)若φi(x)≥1,則θ(φi(x))=2;
3)若φi(x)<0.001,則Φ(φi(x))=5;
4)若0.001≤φ1(x)<0.1,則Φ(φi(x))=20;
5)若0.1≤φi(x)<1,則Φ(φi(x))=100;
6)若φi(x)≥1,則Φ(φi(x))=500。
懲罰系數影響著粒子群算法的收斂速度,如果懲罰系數設置過大,會導致算法過早收斂,難以搜索到最優解;懲罰系數設置過小,會因為懲罰力度不夠而失效,導致增加運算量,所以設計一種能自適應調節懲罰系數的改進粒子群算法(DPPSO算法),以期能較快收斂。該算法在前期將懲罰系數設定得較小,以滿足快速全局搜索的需要,在每次迭代后,如果通過計算適應度值發現相鄰兩代粒子無明顯的差值,說明尋優過程陷入了局部最優解,需要增大懲罰系數。程序框圖如圖2所示。

圖2 DPPSO算法的基本框圖
具體步驟如下:
1)定初值:在D維空間內,通過賦值函數隨機初始化粒子的速度和位置;
2)設置懲罰系數:在前期設定一個較小的懲罰系數μ(0);
3)建立評價機制:通過適應度函數計算每個粒子的適應度值,適應度值的大小代表了粒子的尋優結果;
4)分類存儲:以適應度值為指標,將各粒子當前找到的最好位置存儲在個體極值中,將全局的最好位置存儲在種群極值中;
5)動態改變懲罰系數:在前n次迭代中,懲罰系數μ=μ(0);n+1次迭代以后,如果相鄰兩代粒子無明顯的適應度差值,則將懲罰系數調整為原來的m倍;
6)更新粒子:根據式(1)、(2)更新粒子;
7)再次分類存儲:比較前后兩次適應度值,將結果較好的位置作為當前位置,并存儲在個體極值和種群極值中;
8)判斷條件:設定迭代次數,當粒子更新的次數大于迭代次數時,更新停止,輸出結果;若小于等于迭代次數時,返回步驟5繼續搜索。
設某減速器的輸入功率為P=280 kW,傳動比i=5。利用粒子群算法進行優化計算時,其參數設置為:粒子的種群規模N=40,維數D=2,學習因子c1=c2=2,慣性權重w=0.5,最大迭代次數M=300,n=50,m=1.5 cm,初始懲罰系數μ(0)=0.1。經MATLAB編程,得出收斂曲線,如圖3所示。

圖3 函數的迭代曲線
分析圖3可知,粒子在迭代到50~150次時,陷入了局部最優解。這時通過增大懲罰系數,粒子在迭代到180次時開始收斂于某一固定值,該值即為全局最優解。優化前后的參數見表1。

表1 優化結果對比表
將編程得到的結果進行標準化處理后得z1=10,b=4.5 cm,m=7.5 cm,l1=11 cm,ds1=18 cm,ds2=8 cm。原減速器的體積為f0=2.431 5×105cm,優化后減速器的體積為f1=1.769 6×105cm3。
本文基于優化設計思想,建立了減速器的數
學模型,并在經典PSO算法的基礎上,重點研究了自適應調節的DPPSO算法。通過動態改變懲罰系數,較好地解決了PSO算法中收斂速度慢、易陷入局部最優解的缺點,并將該算法應用在減速器體積優化中。從優化前后的結果看,優化后的減速器體積為1.769 6×105cm3,體積減輕了27.2%,在實際加工中節約了成本,具有一定的經濟效益。