李春林,龐曉平,張 果
(重慶大學 機械工程學院,重慶 400044)
航空發動機的諸多性能與航空發動機的裝配質量,裝配效率密切相關[1]。裝配是發動機制造過程中最為重要的環節之一[2],航空發動機裝配成本占發動機成本的40%,裝配工作量占整體工作量的50%[3]。選擇裝配法能夠在零部件按照經濟精度加工時,仍然可以獲得較高的裝配精度,因此成為航空發動機等精密復雜機械的常用裝配方法。所謂選擇裝配是指通過檢測和挑選待裝零配件,有選擇性地進行裝配,以達到較高裝配精度的一種裝配方法。在航空發動機等一些高精度裝配體上,存在多個需要同時保證的裝配功能要求,稱為多質量要求[4]。因此,航空發動機選擇裝配往往是一個多目標優化問題,與單目標優化結果不同的是多目標優化希望獲得的是一組豐富度高,分布均勻的解。
第二代帶精英保留策略的NSGA2(non-dominated sorting genetic algorithm2) 快速非支配排序算法,基于擁擠距離的分布性方法和精英保留策略,憑借簡單、高效等優點,在多目標優化領域中得到廣泛的應用。張守京等[5]提出基于擁擠度的自適應交叉算子,引進競爭選擇機制,保證解集的多樣性;Bin等[6]采用自適應交叉和變異的方法,提高了算法的收斂速度和搜索能力;Xu等[7]采用正交設計和累積排序策略改進了NSGA2算法,并以尾燈支架裝配為例,證明改進的NSGA2算法具有明顯的優化效果;Baviskar等[8]提出兩種基于漸進式步長機制的算法,并與現有非支配排序遺傳算法的搜索方式相結合,通過控制步長和分割數目,在下一代中產生更好的染色體,實現快速收斂。張曉娟[9]提出一種鏈式智能體遺傳算法CAGA(chainlike agents genetic algorithm),通過引入動態鄰域競爭、鄰域正交交叉、自適應變異等提高了算法的收斂速度。
以上研究在一定程度上改善了NSGA2算法的優化性能,但依然存在一些不足。在航空活塞發動機活塞與缸體的選擇裝配過程中,由于部分零部件的尺寸數據一致,必然存在相同的選配結果。相同個體經基因重組后不會改變基因結構,從而產生大量的重復個體。筆者針對NSGA2算法的精英保留策略無法抑制個體大量重復,造成解集多樣性降低這一缺陷,提出一種基于擁擠度與種群豐富度相結合的子代精英保留策略。在零件裝配中,由于零件尺寸不能更改的限制,本文提出僅在鄰域圓環上的近鄰搜索方式,提高了非支配解集的收斂性能,探究出一種適合航空活塞發動機選擇裝配的NSGA2算法。
假設有一批零部件進行裝配,裝配完畢之后有n組零部件裝配合格,則裝配合格數為n。
零件的裝配精度以田口質量損失來度量,裝配的質量損失常采用具有望目特性的田口質量損失模型,具有望目特性的田口質量損失模型可以保證配對公差是否落在設計公差帶以內,對于滿足設計公差的配對,理論上越靠近理想配合值的配對擁有更好的穩定性,對產品造成的質量損失也會最小[10-12]。田口質量損失模型如下:
(1)
式中:T示公差帶寬度,y表示實際配合公差,o表示最佳配合值,λ∈[0,1]表示配合值處于設計公差帶邊緣的可接受程度,[o-αT,o+βT]表示設計公差帶的范圍。
在某航空活塞發動機中,設計要求缸體與活塞間隙范圍為0.11~0.13 mm,取中間值0.12 mm為最佳配合o值,則α=β=0.5,公差帶寬度T為0.02 mm,λ取1。在本文中以裝配合格的零部件的平均質量損失來表征裝配精度。
在航空活塞發動機裝配中,只需考慮裝配合格部分的平均裝配精度q1(X):
(2)
式中:X表示一批零部件的某一選配組合,N表示參與裝配的零件組數,n表示裝配合格的零件組數。因此q1(X)越小,X的裝配精度越高。由式(1)(2)以及裝配合格數n建立多目標化模型:
minF(X)=min[n(X),q1(X)],
(3)
其中,X∈Ω,Ω表示解空間。
NSGA2算法基于非支配排序[13-14]將種群個體進行分層,對每層個體進行適應度分配,第一支配層級的適應度最高,然后依次降低,從而保證下一子代的優良性,提高算法進化效率。同時,采用外部存檔機制的精英保留策略,結合擁擠度和支配層級篩選個體,具有良好的收斂性,得到的非支配解集分布也較為均勻。算法操作細節如下:
1)構造初始種群S0,設置算法控制參數(交叉概率Pc,變異概率Pm,最大進化代數g1,初始進化代數g=0,初始種群個體數目L),清空外部存檔種群S1。
2)計算初始種群每個個體的裝配合格率η和裝配合格個體平均質量損失q,利用Pareto支配原理進行分層。
3)對每層個體賦予適應度值P(i),非支配層級高的適應度大,低的適應度小。
4)根據適應度值選擇個體,對選擇的個體進行交叉和變異,再次計算每個個體的裝配合格數n和裝配合格個體平均質量損失q,利用Pareto支配原理進行分層F1,F2,…,Fm。基于個體的支配層級和擁擠度選擇個體。
5)將篩選出的個體存入外部種群S1,作為下一代親代繼續進化。
6)判斷是否達到最大進化代數g1,如果沒有,返回第(2)步,如果達到最大進化代數,則輸出種群中最高支配層級F1的所有相異個體。

圖1 NSGA2算法流程圖Fig. 1 Flow chart of NSGA2 algorithm
適應度函數構造的基本準則是非支配層級高的個體適應度大,被選中的概率高,所有非支配層級的適應度值的和為1。因此以某一大于1的正整數a為底,非支配層級i為指數的指數函數來構造適應度函數P(i)。
(4)
式中m表示種群總層級數。由公式(4)可知,a越大非支配層級高的個體被選中的概率就越高,算法進化速度就越快,但是不利于種群多樣性的維護,算法易陷入局部收斂,因此a的取值不宜過大。當初始種群規模為50時,a取不同的值非支配解集中相異個體的數量如表1所示。

表1 a的取值對非支配解集中相異個體數量的影響
因此存在個體重復現象且重復個體處于較高支配層級時,a的取值應盡可能小,這里取a=2。
NSGA2的精英保留策略如圖2所示。

圖2 NSGA2 子代產生原理Fig. 2 Principle of NSGA2 generation
如圖2所示,將親代Pt與子代Qt合并得到Rt,應用Pareto支配原理將Rt中的個體分為m層,即F1,F2,…,Fm,每層包含的個體數量為n1,n2,…,nm,顯然有n1+n2+…+nm=N,其中N表示Rt中的所有個體的數量。由于支配層級高,處于第一和第二支配層級的所有個體F1,F2全部存入外部存檔種群Pt+1,然后再在第三支配層中利用擁擠度比較選出N/2-n1-n2個個體加入外部存檔種群,其中N/2表示外部存檔種群Pt+1的數量。
下面給出NSGA2精英保留策略中常用的兩個基本定義。
定義1(個體擁擠度)為了測算某點附近其他個體的聚集程度,定義變量idistance(擁擠度),表示覆蓋個體i但不覆蓋其他點的矩形面積,而同一支配層級首尾兩端個體的擁擠度定義為無窮大。如圖3[9]所示。
定義2(擁擠度比較算子)擁擠度比較算子,用于搜尋分布均勻的個體,兩個體i和j的比較邏輯如下[9]。
i (5) 式中irank表示個體i的非支配等級。 圖3 擁擠度原理Fig. 3 Principle of crowding degree 由圖3可知,計算擁擠度時非支配解集是以第一目標值f1按升序進行排列,因此當兩個非支配解的擁擠度相等時會優先選擇第一目標值大的個體,這就導致種群中第一目標值較大的個體數量過多。隨著迭代的進行,非支配解集在第一目標值較小的部分逐漸缺失,不能完整地填充整個解空間。而基于種群均勻度和擁擠度相結合的子代精英保留策略則能夠彌補這一缺陷。 以種群均勻度和擁擠度相結合的子代精英保留策略如圖4所示。 圖4 改進后的NSGA2 算法子代精英保留Fig. 4 Improved NSGA2 algorithm for elite preservation 2.2.3 解集評價指標 采用多目標優化結果常見的評價指標:解集收斂性測度、豐富度測度,以及本文中提出的種群均勻度。 1)收斂性測度。設X1,X2為2種算法獲得的非支配解集,則收斂度計算公式為[15]: (6) 式中|.|表示集合中的元素個數,x1≥x2表示個體x1支配x2。如果C(X1,X2)=1,則表示X2中的個體均被X1所支配,反之,如果C(X1,X2)=0,則表示X2中的個體均不被X1所支配。同樣的方法計算C(X2,X1),如果C(X1,X2)>C(X2,X1),則表明X1在種群收斂性測度方面優于X2。 2)豐富度測度。種群的豐富度測度以種群中相異個體的數量m表示。 3)種群均勻度。由于在種群中某一個體的大量存在,相異個體數量分布不均,導致種群豐富度降低,目前的評價指標中忽略了這一影響,這里提出種群均勻度的概念可以抑制這一影響,提高種群豐富度。具體定義如下: 假設一個種群有N個個體,其中相異個體有m個,它們的數量分別為n1,n2,…,nm,有n1+n2+…+nm=N,則種群均勻度H的定義為 (7) 式中n0=(n1+n2+…+nm)/m,可見當種群內的個體都是相異個體時,種群均勻度H最大為1,相同個體數量分布越不均勻,種群均勻度就越低。 以某型號航空活塞發動機缸體與活塞的裝配為例,發動機缸體與活塞的裝配間隙是極為重要的技術參數,裝配間隙對發動機整機裝配尺寸和裝配質量影響很大,間隙的合格范圍是0.11~0.13 mm,因此缸體內徑與活塞外徑尺寸精度也比較高,將151組缸體與活塞的尺寸數據按照升序排序如表2所示。 表2 缸體與活塞尺寸數據 缸體與活塞的配合為孔軸配合,封閉環即配合間隙為缸體內徑與活塞外徑的差值。為了更好地檢驗改進的子代精英保留策略對輸出結果的影響,需要排除遺傳算法交叉、變異環節的隨機性,將改進前后的算法設立為并行的方式。采用直接編碼的方式,以序號和對應的尺寸組成一個不可分割的基因位,將151組數據隨機排列構成一個染色體,染色體的每一列表示一組缸體與活塞的裝配,如表3所示。 表3 染色體結構 重復隨機排列50次,得到初始種群S1,即初始種群的個體數是50,每個染色體表示一種選擇裝配方式。復制該初始種群,得到與S1完全相同的初始種群S2。將S1和S2在同一隨機序列下進行交叉和變異,在同一分層機制下分層。子代精英保留方面,S1采用原始算法的子代精英保留策略,S2在此基礎之上結合種群均勻度最大策略選擇個體。 2個種群在相同的算法控制參數下運行,得到的非支配解集分布如圖5所示。 圖5 改進前后非支配解集分布對比Fig. 5 Comparison of non-dominated solution set distribution before and after improvement 星號點表示S2得到的非支配解集,菱形點表示S1得到的非支配解集。S1的非支配解集中非支配解有86個,S2有79個。S2非支配解集中相異個體有27個,S1僅僅只有17個,對2個解集的相異非支配解進行編號,統計各自數量,如圖6所示。 圖6 兩組非支配解集相異個體數量分布對比Fig. 6 Comparison of the number distribution of different individuals in two groups of non-dominated solution sets 圖中空心柱表示S1非支配解集相異個體數量分布,實心柱S2表示非支配解集相異個體數量分布。可以看出S2的非支配解集中個相異個體數量分布更加均勻,沒有出現某一個體大量重復的情況。 將兩組非支配解集進行收斂性測度、豐富度測度和種群均勻度檢驗,令S2的非支配解集為X2,S1的非支配解集為X1,計算結果如表4所示。 表4 非支配解集性能比較 由表4可知:C(X1,X2)>C(X2,X1),表明引進種群豐富度之后得到的非支配解集在收斂性測度方面并沒有得到提高。這是因為在計算個體擁擠度時,首先以第一子目標(合格數)升序排列,當兩個體擁擠度相等時,合格數較大個體更容易保留下來,因而導致合格數較大的非支配個體在種群中大量存在,在后續的變異中有更大的概率獲得更加優異的非支配解。在豐富度測度方面和均勻度方面有:m(X1) 結合2組非支配解集,找出所有的非支配解,如圖7所示。 圖7 兩組非支配解集合并后非支配解分布Fig. 7 Distribution of non-dominated solutions after merging two sets of non-dominated solutions 針對引進種群均勻度的精英保留策略會降低非支配解集收斂性,導致算法進化速度減慢這一缺陷,引進近鄰搜索算子。近鄰搜索能夠提高多目標優化遺傳算法的收斂速度,彌補引進種群均勻度后非支配解集收斂性測度降低的不足。所謂近鄰搜索指的是在某一范圍內算法往某一特定的方向進化[16]。文獻[16]提出的近鄰搜索是在整個近鄰圓內進行鄰域搜索,如圖8所示。 圖8中圓心點表示經交叉變異后獲得的非支配解,星號點表示在圓心點附近的最優解,由于NSGA2的交叉變異環節具有隨機性,局部搜索能力不足,很難得到最優解。 在整個近鄰圓內的鄰域搜索范圍表達式如下[16]: R=X±ρ。 (8) 由于染色體的基因位是由零件尺寸和序號組成,是一一對應關系,不能更改。為了滿足這一約束條件,重新定義搜索半徑和搜索范圍。任意交換2對基因位,交換之后的染色體與之前的染色體的歐式距離定義為搜索半徑ρ1。 若個體X1=(x1,x2,x3,x4,…,xn)交換兩對基因位之后變為X2=(x2,x1,x4,x3,…,xn),則對X1局部搜索的搜索半徑ρ1表示為: (9) 因此,每個非支配解的搜索半徑是不相等的,若對m個非支配解進行近鄰搜索,搜索半徑向量為: ρ=(ρ1,ρ2,…ρm), (10) 則搜索范圍表示為: R=X+ρ。 (11) 近鄰搜索的示意圖如圖9所示。 圖8 在整個近鄰圓內進行鄰域搜索Fig. 8 Neighborhood search in the whole neighborhood circle 圖9 在圓環上進行鄰域搜索Fig. 9 Neighborhood search on a ring 圓心表示原始非支配解,星號點表示更優異的非支配解。可以看出近鄰搜索并非是在整個鄰域范圍內進行搜索,由于零件尺寸不能更改的限制,鄰域搜索只是在以非支配點為圓心,搜索半徑為圓的圓環上進行,每個點的搜索半徑由于交換基因位的隨機性是不相等的。 顯然,若只對一個點進行近鄰搜索是很難得到更優的非支配解,但是同時對所有的非支配解進行鄰域搜索,隨著迭代的進行,搜索到最優的非支配解的概率會大幅提升。與標準的NSGA2多目標遺傳算法不同之處在于,引進了近鄰搜索后,算法對每次進化得到外部存檔種群中所有個體進行近鄰搜索,若在搜索圓環上存在更優異的非支配解,即X2≥X1,那么就用X2替換X1。為了排除交叉變異環節的隨機性,采取程序并行的方式,2個相同的初始種群S1和S2在相同的算法控制參數下運行,星號點表示改進后,菱形點表示改進前,輸出結果如圖10所示。 圖10 引進鄰域搜索前后非支配解集的分布Fig. 10 Distribution of non-dominated solution set before and after introducing neighborhood search 令引進近鄰搜索后的非支配解集為X2,引進之前為X1,計算結果如表5所示。 表5 引入鄰域搜索后兩組非支配解集性能對比 兩組非支配解集性能計算可以得知,引進鄰域搜索以后,得到的非支配解集在收斂性測度優于之前的非支配解集。但近鄰搜索并不能夠使非支配解集的豐富度和均勻度增加,即近鄰搜索并不能夠消除種群中個體大量重復的現象。 由2.3和2.4兩小節得到的結果可知,單獨引進種群均勻度和近鄰搜索在提高算法某一方面性能的同時,另一方面算法的性能卻并沒有得到提高。因此,同時引入近鄰搜索和種群均勻度,對算法進行綜合優化,仍然采用程序并行的方式,星號點表示改進后得到的非支配解集,菱形點表示標準NSGA2算法得到的非支配解集,兩個相同的初始種群在相同的算法控制參數下運行,改進前后的非支配解集如圖11所示。 圖11 綜合改進前后非支配解集的分布Fig. 11 Distribution of non-dominated solution set before and after comprehensive improvement 令改進之后的非支配解集為X2,改進之前為X1,計算結果如表6所示。 表6 綜合改進后兩組非支配解集性能對比 因此,2個方面同時可進行改進后,非支配解集的收斂性和豐富度測度均得到了提高,算法的綜合性能得到改進。將改進前后2組解在同一合格數下的平均質量損失進行對比,如表7所示。 表7 綜合改進前后兩組解同一合格數下的平均質量損失對比 由表7可知,算法經過綜合改進之后,同一合格數的選擇裝配方案,改進后評價質量損失降低了10.9%到22.2%之間,這表明改進后的選擇裝配方案裝配精度更高,裝配質量更好。 1)當種群存在重復個體時,種群的均勻度和豐富度是正相關關系,均勻度越大,種群中相異個體數量也隨之越大。以種群均勻度和擁擠度相結合的子代精英保留策略會抑制個體大量重復,提高非支配解集的豐富度,從而擴大解的分布范圍,但會降低解集的收斂性。 2)采用近鄰搜索以后,會得到許多優于原來的非支配解,提高解集收斂性,但并不能提高大種群的豐富度和均勻度。 3)當同時引進種群豐富度和鄰域搜索后,非支配解集的綜合性能得到改進,算法的進化速度和收斂速度得到提高。

2.3 基于種群均勻度與擁擠度相結合的子代精英保留策略的應用






2.4 近鄰搜索





2.5 NSGA2算法的綜合改進



3 結 論