張洋洋, 于哲峰
(上海交通大學航空航天學院,上海200240)
飛機研制過程中,地面結構強度試驗是重要的一環,包含部件級試驗和全機試驗,種類非常多。常見的有起落架靜力試驗,機翼、平尾和垂尾靜力試驗,機身或某段機身靜力試驗等等。由于試驗件不同,每項試驗都有各自的特性。即使是同一項試驗,如起落架試驗,不同新機型其起落架也千差萬別,需要為各自起落架設計專用加載、支持夾具,專用試驗方案和安裝順序,且每項試驗通常只會做一次。大型結構或全機靜力試驗[1]通常需要大量的不同安裝、換裝工作,涉及試驗件、支撐框架、加載夾具、作動器、傳感器等。因此想要建立一個相對通用的安裝順序優化算法難度較大。
結構強度試驗安裝順序優化本質上屬于裝配順序優化問題[2-4],隨著裝配零件個數的增多,裝配順序會出現組合爆炸問題[5]。對于此問題,文獻[6-10]中利用遺傳算法優化裝配順序;文獻[12-14]中利用蟻群算法優化裝配順序,文獻[15-17]中利用粒子群算法優化裝配順序。以上3 種智能算法均可解決組合爆炸問題。
多個領域的裝配順序優化問題已被較好地解決。蘇強等[18]提出裝配角度、裝配方向、裝配穩定性和重定位次數4 個指標構建的裝配順序優化模型,用疫苗自動獲取的免疫遺傳算法求解,并提出4 種免疫疫苗用于提升算法運行效率,快速有效地找出了船舶工段的裝配順序。張丹等[19]針對航天產品裝配順序優化問題,提出了基于粒子群遺傳算法。黃潔等[20]提出了帶約束的多目標遺傳算法來實現閥門裝配序列規劃,對不滿足約束的順序通過增加懲罰來減小適應度函數值,但仍在交叉、變異后進行了約束條件判斷手動排除。李原等[21]基于遺傳算法對飛機機翼產品進行了裝配序列優化。Lu 等[13]提出了一種利用蟻群算法來解決面向裝配線平衡的裝配順序問題。但鮮有人將上述優化算法應用于飛機結構強度試驗的安裝順序中。
本文結合飛機結構靜力試驗的安裝特性,提出了相應的適應度函數和量化評價安裝順序的方法,最終構建了一種多目標、多約束的遺傳算法,實現了實驗安裝順序的優化。
飛機結構靜力試驗通常需要安裝支持夾具、加載夾具、試驗件、作動筒、立柱、橫梁、地腳螺栓、位移傳感器、杠桿以及連接液壓控制閥、應變計等傳感器的線纜等工作。
為適當簡化模型,初步按以下4 方面約定進行建模。①作動筒有時需安裝在立柱上,有時需要安裝在基座上,可將后者的作動筒與基座視為一個安裝部件;②支持夾具本身通常也有許多零件組成,在出廠時通常未必按安裝好的狀態交付,但由于支持夾具通常為一個整體,可將支持夾具的眾多零件簡化為一個安裝部件;③位移傳感器通常在試驗全部安裝結束后再安裝,對此項可不進行安裝排序;④應變計通常在整個安裝過程之前已在試驗件上粘貼完畢,對此項也可不必參與排序。
由于試驗件不同,每個靜力試驗方案、安裝都可能存在很大差別,需要針對每個試驗各自的特性提煉出可簡化的安裝部件來進行排序。
需要排序的安裝部件確定后,給出各零部件編號、名稱、重心坐標、安裝各零部件所需工人數量及安裝各零部件所需工具。
結合飛機結構試驗通用的特性,對于不同的裝配順序的適應度值可以從以下5 個因素的適應度得出:
(1)裝配操作的連續性。該因素與安裝工人位置變動有關,可用安裝完全部零部件后工人在水平面所走的路程來表示,即在某種排序下各零部件重心之間的距離和,該和越小,則適應度值越小。該因素的適應度值用F1表示。
(2)試驗件安全性。即為了避免安裝過程中對試驗件的碰撞、工具高空墜落砸到試驗件等因素,試驗件越靠后安裝,則認為試驗件的安裝安全性越好,通過試驗件在安裝順序中的排位,排得越靠前適應度值越高,越靠后適應度值越低。該因素的適應度值用F2表示。
(3)裝配工人的變動次數。即安裝每個零部件需要的裝配工人數量變動量越大,適應度值越大。該因素的適應度值用F3表示。
(4)高空作業量。即工人爬上爬下的次數越少,則適應度函數值越小。分別計算相鄰兩個零部件重心坐標(高度)的差值,累計疊加后的值越大,則適應度函數值越大。該因素的適應度值用F4表示。
(5)使用裝配工具的連續性。即安裝完一個零部件后,裝下一個零部件時不需要更換安裝工具,可省去重復找工具的時間。令更換工具次數越少,適應度函數值越小。該因素的適應度值用F5表示。
對以上5 個因素分別定義各自權重,最終某一安裝順序的總適應度值為以上5 個因素的適應度值相加。飛機結構強度試驗安裝順序優化問題可簡化為求適應度值最小值的問題。總適應度值(裝配難度)計算式為:
式中:ωi為權重系數,根據工程經驗確定。
由于每個試驗都有其特殊性,可在單獨總結試驗特殊性因素加入到適應度函數中。
實際安裝過程中,某些零部件存在必須的先后安裝順序,因此為了使得出的解更具有實際意義,還需對模型增加安裝順序的約束條件,本文提出了以下4 個約束條件:①立柱要在高空橫梁安裝之前安裝;②試驗件需要在支持夾具之后安裝好;③試驗件需要在高空橫梁之前安裝;④杠桿系統需要在試驗件之后安裝。當某一代種群中的一組排序出現不滿足安裝順序需要滿足的條件時,即不滿足約束條件時,可通過增加懲罰函數的方法,即在該序列的適應度函數值的基礎上加上一個較大的常數懲罰值,使該序列最終的適應度函數值較大,從而在迭代過程中進行選擇操作時大概率淘汰該序列,而不需要在每一步的交叉、變異之后再次進行有效性檢驗。當所有不滿足約束條件的序列在種群中都淘汰后,剩下的就是都滿足約束條件的解。該方法結合遺傳算法“物競天擇,適者生存”的特點,巧妙地回避了對每一種順序序列的每一步計算前都需要判斷是否符合約束條件的步驟,極大地提高了程序計算效率,簡化了程序代碼。

圖1 平尾試驗安裝布置示意圖
以一個平尾結構的靜力試驗為例,為了使本算例更具代表性,只選取了部分安裝組件進行安裝順序的優化。平尾試驗安裝圖如圖1 所示。試驗件由3 個支持夾具固定,下部有5 個作動器及安裝夾具(圖中未顯示杠桿系統),上部有1 個作動器,施加向上的載荷;而為了實現向上加載,使用4 個立柱和3 個高空橫梁固定上部的作動器。
取本實驗中的17 個零部件分別進行編號,統計各零部件重心坐標,將重心點代表各零部件。各件編號、名稱、重心坐標、安裝所需工人數量及安裝所需工具見表1。杠桿系統的x、z 坐標取底下5 個作動筒x、z 坐標的平均值,杠桿系統的y 坐標值(高度值)等于試驗件的z坐標值減300。本例中杠桿的安裝也需要占用部分工作量,故將杠桿系統也視為需要安裝的零部件之一。本程序采用十進制編碼,優化程序輸出的編碼即為1 ~17 的17 個數的排列順序,1 ~17 分別代表著表1 中17 個需要安裝的零部件。

表1 零部件編號、名稱、重心坐標、安裝所需工人數量及安裝所需工具
本實施例共考慮5 個適應度函數組成因素,即:
(1)裝配操作的連續性。分別計算相鄰2 個零部件重心在xz平面投影的距離值和,表示安裝完全部零部件后工人在xz平面所走的路程。權重值w1為1。
(2)高空作業量。通過分別計算相鄰2 個零部件重心y坐標(高度)的差值,表示工人爬上爬下的距離。權重值w2為2。
(3)試驗件安全性。具體規則為:若試驗件安裝排在第i 位,則該項適應度值為(17 000 -i)×1 000,權重值為w3=1。
(4)裝配工人的變動次數。具體規則為將安裝每個零部件所需工人數量輸入至數組,在某一序列中將每個前后相鄰的兩個零部件所需工人數相減,再求和得出總的裝配工人變動量。權重值w4為1 000。
(5)使用裝配工具的連續性。本算例假設安裝所有零部件共需要使用5 種工具(扳手、天車、手拉葫蘆、小型曲臂升降機、吊帶),分別計算安裝前后兩個零部件所需安裝工具不同的數量,求出不同數量的總和,設權重值w5為1 000。
權重選取原則:
適應度函數的5 個組成因素中,第1、第2 個因素為各部件重心坐標的距離和。由于試驗3 維模型通常在catia 中建立,采用mm 為單位,工人來回走過的距離和通常在幾十m到幾百m之間,故F1、F2的數量級通常在104~105之間。工人上下爬動通常比在地面平動費勁,簡單假設為上下爬動1 m等同于在平面走2 m,故第1 個因素(平動)權重為1,第2 個因素(上下爬動)設為2。第4、第5 個因素都是變動次數,F4、F5的數量級通常在幾到十幾,故需要放大數量級,本文取了1 000,使其在總適應度值中達到合適的比重。第3個因素選取權重思想類似。因素4 中安裝每個部件所需要的工人數量和因素5 中安裝各部件所需工具可由工程經驗指定。
約束條件考慮以下5 條:
(1)立柱要在高空橫梁安裝之前安裝,即2 ~5 排在14 ~16 之前,根據圖1,該條可具體簡化等效為2、3排在14 之前,4、5 排在15 之前。
(2)試驗件需要在支持夾具之后安裝好,即11 ~13 排在1 之前。
(3)試驗件需要在高空橫梁之前安裝,即1 排在14 ~16 之前。
(4)高空橫梁3 附帶作動筒需在高空橫梁1、高空橫梁2 之后安裝,即14、15 排在16 之前。
(5)杠桿系統17 需要在試驗件1 之后安裝,即1排在17 之前。
對于不滿足約束條件的順序序列,在該序列的適應度函數值的基礎上加上一個較大的常數懲罰值,本算法中取200 000。
程序中對適應度函數第5 條安裝所需工具的處理:為了方便程序編程,將5 種工具分別與1 ~5 這5個數對應,將這17 個零部件與其自身安裝所需工具種類建立17 ×5 的二維矩陣數組,見表2,矩陣(i,j)中1表示安裝該零部件i需要工具j,0 則表示不需要。通過相鄰兩個零部件的五列元素相減就可得出安裝前后兩個零部件所需的不同安裝工具的數量。

表2 各零部件安裝所需工具對應關系
本算例采用常規的輪盤賭選擇法作為選擇方法。交叉方法分兩步完成。
第1 步選擇出需要交叉的2 個個體后,隨機產生2 個數i和j(在1 ~17 之間),交換從第i位開始至第j位之間的順序段,具體過程如圖2 所示。圖2 中的兩行17 位的數字序列分別代表需要交叉的2 個個體,假設隨機產生出來的i 和j 分別為12 和15,則交換第12 ~15 位之間的順序片段。

圖2 交叉過程示意圖
第2 步對交換后的2 個個體中出現兩次同一數字進行排除,保留上述交換的順序段,替換順序段之外的相同數。以圖2 中交換后第1 個個體為例,數字“2”和“14”出現了兩次,同時也意味著該個體有兩個數字缺失。保留第1 步中交換順序片段中的“2”和“14”,缺失的數字包含在第2 個個體中的交換順序片段中,本例為“17”和“3”,分別以“17”和“3”替換第1個個體中交換順序片段外的“2”和“14”。第2 個個體操作同上。替換完成后個體不會出現重復數字,且數字遍歷了1 ~17,符合個體要求。
變異方法為隨機產生2 個數i 和j(在1 ~17 之間),交換從第i位和第j位的數。
本算例的部分參數設置為:初始種群數量100,最大迭代步數為300,交叉概率為0.8,變異概率為0.2。由于遺傳算法求出的是局部最優解,為了盡可能將得出的解接近最優解,可多次運行該程序,或者增大種群數量,增加迭代次數,從每次的結果中挑選出一種最優解。
本算例共運行了5 次,適應度值集中在75 000 ~83 000 之間,在第2 次運行中得出了最優解。最優解的最小適應度函數值為75 394。遺傳算法得到的最優安裝順序為:9-10-8-6-7-11-12-13-3-5-4-2-1-17-14-15-16,解碼后安裝順序為作動筒4-作動筒5-作動筒3-作動筒1-作動筒2-支持夾具1-支持夾具2-支持夾具3-立柱2-立柱4-立柱3-立柱1-試驗件-杠桿系統-高空橫梁1-高空橫梁2-高空橫梁3 附帶作動筒。其中:xz 平面距離和F1=40 380. 3,權重系數w1=1,F1w1=40 380。高度差之和F2=7 507.0,權重系數w2=2,F2w2=15 014。試驗件安裝過程安全性F3=4 000,權重系數w3=1,F3w3=4 000。裝配工人變動次數F4=7,權重系數w4=1 000,F4w4=7 000。安裝所需工具變動次數F5=9,權重系數w5=1 000,F5w5=9 000。
最優解的空間示意圖如圖3 所示,收斂過程如圖4 所示。

圖3 安裝順序空間示意圖

圖4 遺傳算法迭代步數迭代收斂過程示意圖
本文提出的算法可實現結構強度試驗安裝順序規劃,找出接近或等于最優解的安裝順序。但仍有一些工作可以進一步完善。①約束條件增加得越多,算法出現不滿足約束條件的解得概率越大,因此可以考慮基于工程經驗,多預設一些安裝規則,減少約束條件,節約方案搜索的計算量;②考慮到試驗前有大量的加載方案調試工作,也會與安裝工作有所耦合,可以把作動筒調試也當作一個安裝環節參與排序;③權重系數直接影響適應度函數,本文取的是假定值,實際上應結合真實的試驗情況根據工程經驗確定權重系數。
本文所提出的模型可進一步完善,讀者可以參照本文提出方法更改的適應度函數,針對具體試驗特性增加新的影響裝配順序的因素。例如考慮工人的勞動強度問題,合理制定休息時機和時間。安裝某些夾具的過程中需要使用叉車,但某些夾具先安裝后可能會擋住叉車的行駛路徑等。
除了本文提出的方法,也可從另一個思路解決結構試驗裝配順序優化,即通過機器學習的方法,不斷地對已有大量不同試驗的安裝順序進行學習,從而對一種新的試驗,能直接給出最優安裝順序。