陶澤南
(陸軍軍事交通學(xué)院學(xué)員五大隊,天津300161)
粒子群算法(particle swarm optimization, PSO)是一種基于鳥群覓食的啟發(fā)式算法。它與其他智能優(yōu)化算法相比,具有收斂迅速、原理簡單、操作可靠、便于實現(xiàn)等優(yōu)點,目前已被廣泛應(yīng)用于工程領(lǐng)域。
圓柱齒輪減速器是一種相對精密的機(jī)械,使用它的目的在于降低轉(zhuǎn)速,增加轉(zhuǎn)矩。在減速器的設(shè)計中,如果能在保證齒輪強(qiáng)度的前提下,縮小減速器的體積,減輕減速器的重量,將對機(jī)械設(shè)備的制造具有重要意義。本文采用的粒子群算法,為圓柱齒輪減速器的體積優(yōu)化提供了一種新思路。
圖1 圓柱齒輪減速器的結(jié)構(gòu)
圓柱齒輪減速器的結(jié)構(gòu)如圖1所示, 輸入軸上的小齒輪與輸出軸上的大齒輪相嚙合, 使減速器起到減速增扭的作用。 影響減速器體積的因素[1]主要有齒輪厚度b, 小齒輪的齒數(shù)z1, 齒輪模數(shù)m, 減速箱的寬度l1, 小齒輪軸孔徑ds1, 大齒輪軸孔徑ds2, 因此可以設(shè)計變量[b,z1,m,l1,ds1,ds2]=[x1,x2,x3,x4,x5,x6]。 減速器的體積可近似看成齒輪和軸的體積之和, 其目標(biāo)函數(shù)為
式中:輸入軸伸出長度l2為25 cm;輸出軸伸出長度l3為30 cm;d1、d2、c分別為小齒輪的分度圓直徑、大齒輪分度圓直徑、頂隙,其大小與設(shè)計變量有關(guān)。
對于圓柱齒輪減速器來說,其約束條件如下。
1)齒面接觸強(qiáng)度條件
σH-[σH]≤0
式中:齒輪的許用接觸應(yīng)力[σH]為855 MPa;載荷系數(shù)K為1.3;彈性模量ZE為189.8 MPa;節(jié)點區(qū)域系數(shù)ZH為2.5;σH為齒輪的實際接觸應(yīng)力;T1為小齒輪傳遞的轉(zhuǎn)矩;u為大齒輪與小齒輪的齒數(shù)比。
2)小齒輪的直徑約束條件
d1≤32 cm
3)為保證齒輪的可靠性,要求輪齒具有一定的承載能力,其齒寬系數(shù)條件為
4)根據(jù)結(jié)構(gòu)關(guān)系,軸的支撐跨距應(yīng)滿足
l1≥b+0.2ds2+4
5)齒根彎曲強(qiáng)度條件
式中:齒輪的許用彎曲應(yīng)力[σF1]為261 MPa,[σF2]為213 MPa;σF2、σF1分別為大、小齒輪的實際彎曲應(yīng)力;YF為對應(yīng)齒輪的齒形系數(shù)。
6)軸的彎曲強(qiáng)度條件
式中:軸的許用彎曲應(yīng)力[σb]為55 MPa;T為軸所受轉(zhuǎn)矩,且大齒輪T為5T1;應(yīng)力校正系數(shù)α為0.59;σb為軸的實際彎曲應(yīng)力;σb2、σb1分別為大、小齒輪軸的實際彎曲應(yīng)力;M為軸所受的彎矩;W為軸的抗彎剖面系數(shù)。
根據(jù)上述目標(biāo)函數(shù)和約束條件,可建立如下數(shù)學(xué)模型,其中f(x)是優(yōu)壓減速箱體積的目標(biāo)函數(shù),gi(x)是圓柱齒輪減速器的約束條件。
g2(x)=x2x3-32≤0
g5(x)=x1+0.5x6-x4+4≤0
上述數(shù)學(xué)模型可簡潔地表示為
粒子群算法屬于進(jìn)化算法的一種,它是從隨機(jī)解出發(fā),通過迭代尋找最優(yōu)解。本節(jié)首先介紹了基本粒子群算法的原理,然后對處理約束條件的懲罰函數(shù)法進(jìn)行介紹,最后將二者結(jié)合,研究了動態(tài)改變懲罰系數(shù)的改進(jìn)粒子群算法,為下一節(jié)減速器優(yōu)化的實例提供理論基礎(chǔ)。
粒子群算法也叫鳥群覓食算法,科學(xué)家從鳥群捕食的現(xiàn)象中得到啟發(fā),假設(shè)了這樣一個場景:一群鳥聚集在一片區(qū)域中尋找食物,它們都不知道食物的具體位置,但是知道自身距離食物有多遠(yuǎn)。也就是說每一個體都有一個大概的搜索范圍。為了最快地找到食物,它們會追隨離食物最近的那只鳥去搜索,這就大大節(jié)約了時間,提高了效率。上述思想體現(xiàn)了群體間的交流協(xié)作,鳥群除了要記錄自身找到的最佳位置外,還要依靠群體間的信息共享使群體發(fā)生由無序到有序的轉(zhuǎn)變。
在上述場景中,每一只鳥代表一個粒子,鳥的數(shù)量就是參與尋優(yōu)過程的粒子規(guī)模。食物的位置代表整體最優(yōu)值,是機(jī)械優(yōu)化設(shè)計中的最佳方案。在應(yīng)用基本粒子群算法時,首先賦予每個粒子一組初始解(包括位置和速度),然后粒子們會依據(jù)適應(yīng)度值調(diào)整自己的飛行狀態(tài),以保證向靠近食物的位置飛行。假設(shè)粒子們都具有記憶能力,它們可以記錄自己的當(dāng)前位置、自身經(jīng)歷過的最好位置(個體極值),以及種群中的最好位置(種群極值)。每迭代一次,個體極值和種群極值更新一次,通過前后極值的對比不斷調(diào)整運動方向,以接近食物位置[4]。
粒子i在ts和 (t+1) s的速度、位置關(guān)系為:
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為慣性權(quán)重,代表粒子對當(dāng)前速度繼承的比重;c1和c2為學(xué)習(xí)因子,作用是控制粒子向群體最優(yōu)值接近,其值越大算法越易收斂,通常取值為2;r1和r2為0到1之間的隨機(jī)數(shù);pg(t)表示種群中的最優(yōu)位置;pi(t)表示粒子經(jīng)歷過的最優(yōu)位置。
速度更新公式由3部分組成。第一部分決定了粒子的先前速度,代表對原有速度的繼承。慣性權(quán)重的大小對粒子的全局搜索能力具有一定影響,一般設(shè)定慣性權(quán)重在迭代過程中由大到小線性遞減,以滿足粒子在前期廣泛搜索和后期精細(xì)搜索的需要[5]。第二部分表示粒子向自身學(xué)習(xí)的過程,也叫自我學(xué)習(xí)能力。第三部分表示粒子向群體學(xué)習(xí)的過程,也叫群體學(xué)習(xí)能力。
一般的機(jī)械優(yōu)化問題多為約束條件下的尋優(yōu),如何處理約束條件成為解決優(yōu)化問題的關(guān)鍵步驟。懲罰函數(shù)法的基本原理,就是將約束條件進(jìn)行加權(quán)轉(zhuǎn)化后與目標(biāo)函數(shù)結(jié)合,形成新的目標(biāo)函數(shù),該新函數(shù)也稱為適應(yīng)度函數(shù),其值就是粒子的適應(yīng)度值,并以此來尋找全局最優(yōu)解[6]。
優(yōu)化問題的一般形式為:
minf(x)x=[x1,x2,…xn]∈Rn
(3)
式中,p、q分別為約束條件gi(x)、hi(x)的個數(shù)。
建立懲罰函數(shù)的目的,在于對不滿足條件的粒子進(jìn)行懲罰,篩選出滿足條件的粒子,并在這些粒子中尋優(yōu)??梢园褢土P函數(shù)值作為適應(yīng)度值,適應(yīng)度值較大說明粒子所受懲罰較嚴(yán)重,不是滿足條件的解,應(yīng)舍棄,適應(yīng)度值較小說明粒子能較好地滿足約束條件,應(yīng)保留?;谶@個思想,建立的懲罰函數(shù)。
設(shè)H(x)是懲罰項,定義為
(4)
式中:Φ(φi(x))是多級分配函數(shù);θ(φi(x))是懲罰函數(shù)的級數(shù),其中φi(x)=max(0,gi(x))i=1,2,…,p或φi(x)=|hi(x)|i=p+1,p+2,…,q。
懲罰函數(shù)定義為
F(x)=f(x)+μ(k)H(x)x∈Rn
(5)
式中μ(k)是懲罰系數(shù)。
懲罰函數(shù)的級數(shù)參數(shù)設(shè)置如下:
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。
懲罰系數(shù)影響著粒子群算法的收斂速度,如果懲罰系數(shù)設(shè)置過大,會導(dǎo)致算法過早收斂,難以搜索到最優(yōu)解;懲罰系數(shù)設(shè)置過小,會因為懲罰力度不夠而失效,導(dǎo)致增加運算量,所以設(shè)計一種能自適應(yīng)調(diào)節(jié)懲罰系數(shù)的改進(jìn)粒子群算法(DPPSO算法),以期能較快收斂。該算法在前期將懲罰系數(shù)設(shè)定得較小,以滿足快速全局搜索的需要,在每次迭代后,如果通過計算適應(yīng)度值發(fā)現(xiàn)相鄰兩代粒子無明顯的差值,說明尋優(yōu)過程陷入了局部最優(yōu)解,需要增大懲罰系數(shù)。程序框圖如圖2所示。
圖2 DPPSO算法的基本框圖
具體步驟如下:
1)定初值:在D維空間內(nèi),通過賦值函數(shù)隨機(jī)初始化粒子的速度和位置;
2)設(shè)置懲罰系數(shù):在前期設(shè)定一個較小的懲罰系數(shù)μ(0);
3)建立評價機(jī)制:通過適應(yīng)度函數(shù)計算每個粒子的適應(yīng)度值,適應(yīng)度值的大小代表了粒子的尋優(yōu)結(jié)果;
4)分類存儲:以適應(yīng)度值為指標(biāo),將各粒子當(dāng)前找到的最好位置存儲在個體極值中,將全局的最好位置存儲在種群極值中;
5)動態(tài)改變懲罰系數(shù):在前n次迭代中,懲罰系數(shù)μ=μ(0);n+1次迭代以后,如果相鄰兩代粒子無明顯的適應(yīng)度差值,則將懲罰系數(shù)調(diào)整為原來的m倍;
6)更新粒子:根據(jù)式(1)、(2)更新粒子;
7)再次分類存儲:比較前后兩次適應(yīng)度值,將結(jié)果較好的位置作為當(dāng)前位置,并存儲在個體極值和種群極值中;
8)判斷條件:設(shè)定迭代次數(shù),當(dāng)粒子更新的次數(shù)大于迭代次數(shù)時,更新停止,輸出結(jié)果;若小于等于迭代次數(shù)時,返回步驟5繼續(xù)搜索。
設(shè)某減速器的輸入功率為P=280 kW,傳動比i=5。利用粒子群算法進(jìn)行優(yōu)化計算時,其參數(shù)設(shè)置為:粒子的種群規(guī)模N=40,維數(shù)D=2,學(xué)習(xí)因子c1=c2=2,慣性權(quán)重w=0.5,最大迭代次數(shù)M=300,n=50,m=1.5 cm,初始懲罰系數(shù)μ(0)=0.1。經(jīng)MATLAB編程,得出收斂曲線,如圖3所示。
圖3 函數(shù)的迭代曲線
分析圖3可知,粒子在迭代到50~150次時,陷入了局部最優(yōu)解。這時通過增大懲罰系數(shù),粒子在迭代到180次時開始收斂于某一固定值,該值即為全局最優(yōu)解。優(yōu)化前后的參數(shù)見表1。
表1 優(yōu)化結(jié)果對比表
將編程得到的結(jié)果進(jìn)行標(biāo)準(zhǔn)化處理后得z1=10,b=4.5 cm,m=7.5 cm,l1=11 cm,ds1=18 cm,ds2=8 cm。原減速器的體積為f0=2.431 5×105cm,優(yōu)化后減速器的體積為f1=1.769 6×105cm3。
本文基于優(yōu)化設(shè)計思想,建立了減速器的數(shù)
學(xué)模型,并在經(jīng)典PSO算法的基礎(chǔ)上,重點研究了自適應(yīng)調(diào)節(jié)的DPPSO算法。通過動態(tài)改變懲罰系數(shù),較好地解決了PSO算法中收斂速度慢、易陷入局部最優(yōu)解的缺點,并將該算法應(yīng)用在減速器體積優(yōu)化中。從優(yōu)化前后的結(jié)果看,優(yōu)化后的減速器體積為1.769 6×105cm3,體積減輕了27.2%,在實際加工中節(jié)約了成本,具有一定的經(jīng)濟(jì)效益。