孫北奇,于曉凱,楊虎,徐俊,屈馳飛
(洛陽軸研科技股份有限公司,河南 洛陽 471039)
在科學技術和工程應用中,如機械設計、固體計算力學、天氣預報及控制領域等非線性方程組的求解仍是難題之一[1]。N-R算法存在收斂性依賴于初值,不適的初值將導致算法失效;N-R的修正形式雖擴大了收斂范圍,但慣性因子難以選取,往往收效甚微;非線性方程組的區間Newton算法雖然具有收斂性不依賴初值,較點Newton算法具有更好的全局收斂性,且具有事后誤差的估計功能,但區間迭代程序的計算量要比點迭代大很多,實用效果不好。
為此,需要找到一種應同時具有全局收斂性和收斂性不依賴于初值特性的算法。以往的研究中,將粒子群算法與混沌計算相結合[2],或應用遺傳算法[3]進行了廣泛研究并取得了很多成果。但是,以上各種算法僅適用于求解一般的非線性方程組,而在求解根差異大(如x=[10 000,2,0.03])的非線性方程組時,各種微粒群算法均存在種群多樣性及早熟問題,特別是在求解大根差異的高速球軸承非線性方程組時更是如此。因此,探索微粒群算法在大根差異高速球軸承非線性方程組的改進形式具有重要意義。
下文把非線性方程組轉化為智能優化問題后,通過尺度變換保持了極小值點在新坐標系中的相對位置,改變了群體的期望輸出,從而徹底改善了微粒群算法在種群多樣性不適時易陷入早熟的問題。
設優化問題表述為
minf(x)=f(x1,x2,…,xn) ,
(1)
其中,x∈S?Rn,(S為約束域;R為n維有理數集合)。
微粒群算法(PSO)[4]是通過某種群體搜索現象的簡化模擬而設計的,每個微粒的學習進程由個體認識和社會認識兩部分組成。當每個微粒在個性和社會性之間達到一定的平衡時,每個微粒才能不斷從群體環境中獲取足夠多信息來調整自身的行為[5]。因此,如果想從根本上改善微粒群算法的性能,就應當從個體認識和社會認識去考察算法模型。考慮到優化問題,則可以將目標問題的全局解視為群體系統的期望輸出:一是希望群體在尋優過程中具有個性,以較大概率收斂于目標問題的全局解;二是希望每個微粒不脫離群體,具有一定的社會性,即每個微粒從群體感知有效的群體狀態信息并正確調整自身的行為。
根據上述分析,對于函數形式f(x,y)=x2+(y-25 000)2,x,y∈[-50,100 000](此函數在[x,y]=[0,25 000]時取得最小值),由于目標函數的期望輸出為[0,25 000],從根本上決定了算法在搜索過程中每個個體的差異性過大,種群多樣性過高,使每個微粒不能從群體中感知有效的群體信息來調整自己,導致算法不能較好地收斂于極小值點。
為此,應改善種群多樣性,提高每個微粒的個體認識和社會認識,以提高算法的收斂性。
尺度變換技巧能顯著地改進幾乎所有極小化方法的收斂性質[6]。對于一般的優化問題
minf(x)=f(x1,x2,…,xn),s.t.x∈S?Rn。如果進行尺度變換x←x′β,其中
則在新的坐標系中,原優化問題可轉化為
minf(x)=minf(x′β)=ming(x′),
s.t.x′∈S?Rn。
尺度變換沒有改變極小值點在新坐標系中的相對位置,因此這種轉換是等價轉換。這樣的變換可以改變群體的期望輸出,從根本上改變群體在進化過程中種群的多樣性。
應用上述方法時,需先將非線性方程組轉化為智能優化問題。
考慮含n個未知量n個方程的非線性方程組一般形式是
(2)

將a=(a1,a2,…,an)T作為非線性方程組(1)的一組解。構造優化問題的目標函數為
(3)
其中,x=(x1,x2,…,xn)T。
將求解非線性方程組轉化為求解目標函數極小值。給定目標函數收斂停止標準,在求解區域內搜索a=(a1,a2,…,an)T,使得Φ(a)<ε,則a是(2)式的一組近似解。
針對上述優化問題,變尺度微粒群優化算法的主要步驟為:
(1)調整種群期望輸出,利用目標函數的信息,選取尺度變換矩陣β,將群體期望輸出X轉變為X′,優化函數轉換為g(X′);

(3)計算各微粒的適應值g(X′);
(4)對于每個微粒,將其適應值與所經歷過的最好位置Pi的適應值進行比較,若較好,則將其作為當前最好位置;
(5)對每個微粒,將其適應值與全局所經歷的最好位置Pg的適應值進行比較,若較好,則將其作為當前的全局最好位置;
(6)根據標準微粒群算法進化方程,對微粒的速度和位置進行進化;
(7)如未達到收斂標準,則返回第2步繼續計算;
(8)利用尺度變換矩陣β進行矩陣反變換,得出原優化問題的解。
為了驗證上述方法的有效性,以下面幾個根差異較大的非線性方程組為例,通過計算機仿真評價比較微粒群算法和變尺度微粒群算法的可靠性。
例1:
例2:

以上兩組非線性方程組的根差異性較大,例1的精確解x=[10 000,2],例2的精確解x=[10 000,1]。不同方法求解得到的成功率(ε<10-6,算法求解成功)的對比情況見表1。

表1 收斂可靠性對比 %
以上結果表明,在求解根差異較大的高速球軸承非線性方程組時,變尺度微粒群算法要比基本微粒群算法和擬Newton算法的成功率高很多,這主要是變尺寸改善了微粒群的種群差異性,增強了每個微粒的搜索能力。
高速球軸承的受載變形(微米級)量和軸承幾何參數(厘米級)屬于典型的大根差異問題,其參數相互耦合且數量與球數成正比,應用傳統的Newton法與粒子群算法求解均不能得到較好的收斂效果,進而對軸承關鍵參數,如內、外接觸角的計算造成困難。高速球軸承往往用于軸向受載的工況,其計算式[7]為
(A1-X1)2+(A2-X2)2-[(fi-0.5)Dw+δi]2=0,
式中:A1為內、外圈溝道溝曲率中心間的軸向距離,A1=(fe+fi-1)Dwsinα+δi,mm;A2為內、外圈溝道溝曲率中心間的徑向距離,A2=(fe+fi-1)Dwcosα,mm;X1為球心終位置與外圈溝道溝曲率中心在x軸方向的投影,mm;X2為球心終位置與外圈溝道溝曲率中心在y軸方向的投影,mm;fi為內圈溝道溝曲率(無量綱)系數;fe為外圈溝道溝曲率(無量綱)系數;Dw為鋼球直徑,mm;δi為內圈與鋼球中心之間的變形量,mm;δe為外圈與鋼球中心之間的變形量,mm;Mg為鋼球的陀螺力矩,N·mm;Fa為軸承所受的軸向載荷,N;Ki,Ke為載荷-位移常數;λ為套圈控制系數,對于外溝道控制,取λi=0,λe=2,否則取λi=λe=1。其中A1,A2,X1,X2,δi和δe為未知數,其他參數可由軸承結構參數直接得到或根據轉速等條件求得。
利用文中所述方法對B218軸承的接觸角進行求解計算,結果如圖1所示。該結果與文獻[7]中的數據完全一致,其收斂可靠性達到96%。

圖1 軸向受載高速球軸承的計算結果
在綜合分析考慮微粒群算法與變尺度的各自特點后,將變尺度的方法引入到微粒群算法中,增強了算法的優化性能,并用以求解非線性方程組,克服了初始點難確定的弊端,同時提高了算法的收斂可靠性與求解精度,經典型方程和典型工程實際問題的求解驗證,證實了該方法的正確性和有效性。