錢文高 馬紅巖 耿 宏
1(中國民航大學電子信息與自動化學院 天津 300300) 2(中國民航大學基礎實驗中心 天津 300300)
大型民用飛機虛擬維修仿真為機務維修人員提供虛擬維修訓練環(huán)境,使受訓人員得到全方位的訓練[1-3],快速提高其維修技能,有效降低飛機維修人員的實訓成本。
目前,對虛擬維修的研究主要集中在維修復雜行為關系的描述,其實質是將維修部件作為維修主體,描述其狀態(tài)遷移的過程。文獻[4]使用維修任務網(wǎng)MTN建立維修任務網(wǎng)絡圖,通過MTN驅動仿真環(huán)境,實現(xiàn)某型號飛機組件的虛擬維修。但該方法實現(xiàn)的是維修起點至終點間一種可行的維修序列仿真,而飛機維修任務的起點至終點間往往不止一種可行的維修序列,若要實現(xiàn)維修任務所有可行的維修序列仿真,則需要生成維修起點至終點間所有可行的維修序列,然后對這些序列一一建模,建模工作量十分龐大。針對該問題,文獻[5]使用優(yōu)先約束矩陣規(guī)范飛機虛擬維修序列間的約束關系,通過優(yōu)先約束時間有色Petri網(wǎng)模型實現(xiàn)動態(tài)虛擬維修過程,避免了對所有維修序列建模帶來的工作量龐大的問題。由于附屬在同一維修對象上的維修序列可能不止一個,且序列間優(yōu)先約束關系具有非顯性特征,造成約束關系描述冗余且不準確,另外各個單元缺乏統(tǒng)一規(guī)范的表達,均導致建模工作量增加。文獻[6]提出了一種將UML和Petri網(wǎng)結合的建模分析方法,其兼顧了兩者的建模優(yōu)勢,將之應用到了一個FMS的建模和分析,其中使用UML描述系統(tǒng)的靜態(tài)特征部分對本文規(guī)范飛機維修實體虛擬維修行為的統(tǒng)一性表達提供了參考。
基于此,本文結合UML狀態(tài)機和Petri網(wǎng)描述飛機虛擬維修過程,在UML狀態(tài)機規(guī)范表達維修實體行為模型的基礎上,將其轉化為Petri網(wǎng)子網(wǎng)模型,該子網(wǎng)模型使用動作集描述虛擬維修動作輸出,以提高虛擬維修仿真度。依據(jù)維修部件間的聯(lián)結關系構建拆卸和安裝雙向鄰接矩陣,精簡、準確地表達約束關系。利用鄰接矩陣約束各子網(wǎng)間的維修行為關系,支持雙向維修操作,進而建立可動態(tài)重組子網(wǎng)的虛擬維修過程模型,以進一步降低建模的工作量。
狀態(tài)機圖描述從一種狀態(tài)遷移到另一種狀態(tài)的控制流程,常用來描述系統(tǒng)的動態(tài)行為[7],在多數(shù)情況下用來描述對象接收到外部事件觸發(fā)后產生響應的過程。UML狀態(tài)圖[8-9]可表示為一個8元組Ni=(S,T,E,G,A,R,S0,Sa),其中:S為對象i的非空狀態(tài)集,T為該對象的遷移集合,E為觸發(fā)遷移發(fā)生的事件集,G為判斷觸發(fā)事件能否發(fā)生的監(jiān)護條件集合,A為遷移激活后執(zhí)行動作集合,R為遷移最小觸發(fā)時間間隔的時間集,S0為源狀態(tài),Sa為目標狀態(tài)。
狀態(tài)機可以描述維修對象的動態(tài)行為[10-11]。維修對象主要指飛機可操作的維修實體單元,是虛擬維修的重要組成部分,主要包括維修部件和維修資源兩大類,可以用UML狀態(tài)機的圖形化語言規(guī)范維修實體的狀態(tài)、遷移等維修行為。
1.2.1維修部件狀態(tài)遷移元模型
維修起點時維修部件i處于裝配就位狀態(tài),經拆卸操作后處于已拆卸狀態(tài),可將部件i的源狀態(tài)記為Sinstalled,目標狀態(tài)記為Sremoved,其拆卸操作狀態(tài)遷移元模型如圖1所示。
圖1 維修部件拆卸狀態(tài)遷移元模型
當觸發(fā)事件Ei發(fā)生時,若拆卸用的工具設備及相關的維修資源均就位且滿足最小觸發(fā)時間間隔,則監(jiān)護條件Gi為1,執(zhí)行動作Ai,完成變遷,到達目標狀態(tài)Sremoved;否則,監(jiān)護條件為0,不響應觸發(fā)事件Ei,此時執(zhí)行動作為?,即不執(zhí)行動作,保持原狀態(tài)不變。
圖2 維修部件安裝狀態(tài)遷移元模型
1.2.2維修資源狀態(tài)遷移元模型
維修資源分為可變維修資源和不可變維修資源,用于約束或支持維修部件的狀態(tài)遷移,是虛擬維修模型中維修狀態(tài)改變不可或缺的推進因素。
可變維修資源通常指隨著維修進程的推進,其規(guī)模可被相應的狀態(tài)遷移消耗,與不可變維修資源相比,不存在使用、釋放的循環(huán)過程,其狀態(tài)遷移元模型如圖3所示。
而不可變維修資源在虛擬維修中通常處于使用、釋放的循環(huán)過程,相應的狀態(tài)遷移只暫時占用不可變維修資源,當遷移完成則釋放不可變維修資源,其初始狀態(tài)和目標狀態(tài)為同一個狀態(tài),其狀態(tài)遷移元模型如圖4所示。
圖4 不可變維修資源狀態(tài)遷移元模型
不可變維修資源初始狀態(tài)為Sidle,當使用該資源的觸發(fā)事件Ej發(fā)生時,因其初態(tài)為Sidle,監(jiān)護條件Gj為1,執(zhí)行動作Aj,其狀態(tài)變?yōu)镾busy,即占用狀態(tài)。當釋放不可變資源的觸發(fā)事件Er發(fā)生時,監(jiān)護條件Gr判斷是否滿足釋放條件,若滿足則執(zhí)行釋放動作Ar,動作完成后不可變資源重新回到狀態(tài)Sidle。
UML狀態(tài)機以其圖形化語言可用來描述某個維修部件的維修狀態(tài)、遷移,但一個完整的虛擬維修過程通常涉及多個維修部件,且UML狀態(tài)機具有非顯性標識語義特征[12],導致其無法直接被用于描述飛機系統(tǒng)多個維修部件間的復雜行為關系。
而Petri網(wǎng)是一種用于描述具有異步、并發(fā)特征的離散事件系統(tǒng)的數(shù)學建模工具[13-14],可用其形式化手段描述普通狀態(tài)機模型。因此,在UML狀態(tài)機規(guī)范化表達維修實體行為元模型的基礎上,將其轉化為Petri網(wǎng)子網(wǎng)模型,并規(guī)范各子網(wǎng)間的順序、并發(fā)、沖突等關系表達,進而建立可動態(tài)重組子網(wǎng)的Petri網(wǎng)虛擬維修過程模型。
將UML狀態(tài)機描述的維修實體元模型轉化為Petri網(wǎng)子網(wǎng)模型,是建立含有可動態(tài)重組子網(wǎng)的Petri網(wǎng)虛擬維修過程模型的必要環(huán)節(jié)[15]。維修實體ei對應的子網(wǎng)模型記為PNi。
PNi=(Pi,Ti,Fi,Wi,Mi0,Ei,Gi,Ai,Ri)
(1)
(1) (Pi,Ti,Fi)是子網(wǎng)模型的基網(wǎng),虛擬維修中,Pi={Pi0,Pi1,Pi2,…,Pin,Pia}為實體ei的狀態(tài)集,其中:Pi0和Pia分別為實體ei的源狀態(tài)和目標狀態(tài),且子網(wǎng)只有在源態(tài)或目標態(tài)下才可以作為前置條件激活其他子網(wǎng);Pi1,Pi2,…,Pin表示ei的中間狀態(tài);ei應至少包含Pi0和Pia兩個狀態(tài)。Ti表示實體ei狀態(tài)間的遷移集合,滿足條件Pi∩Ti=Pi∩Fi=Ti∩Fi=φ。Fi為子網(wǎng)PNi的有限弧集合,映射關系為Fi→Pi×Ti∪Ti×Pi。
(2)Wi是定義在Fi上的權函數(shù),虛擬維修中表示變遷對維修資源的消耗量。
(3)Mi0是子網(wǎng)PNi的初始標識。
(4)Ei為觸發(fā)變遷Ti發(fā)生的事件集,主要為人工外部觸發(fā)事件和內部消息觸發(fā)事件。
(5)Gi為判斷子網(wǎng)變遷Ti是否發(fā)生的監(jiān)護條件集,虛擬維修中,主要根據(jù)維修方向判斷維修資源的狀態(tài)和最小觸發(fā)延時時間兩方面內容。
(6)Ai為變遷激活后,執(zhí)行的動作集。維修實體的動作主要有平動、轉動及兩者合成的螺旋運動,首先將維修實體動作執(zhí)行的初始位置坐標用四元數(shù)來描述,記為L0:
L0=[0,x0,y0,z0]
(2)
將該點繞單位向量n=[nx,ny,nz]做θ角的旋轉用四元數(shù)表示為R。
(3)
將旋轉后的目標位置坐標記為Lt1。
Lt1=RL0R-1
(4)
當維修實體進行平動運動時,將其平動后的目標位置記為Lt2。
Lt2=L0+[0,Δx,Δy,Δz]
(5)
式中:Δx、Δy、Δz分別表示沿三個軸的平移分量,則維修實體運動的目標位置可記為Lt:
Lt=Lt1+Lt2
(6)
式中:Lt1用于描述實體的旋轉運動;Lt2用于描述實體的平動運動。兩者可合成相應的螺旋運動。
Ai使變遷Ti激活后,執(zhí)行完相應的維修動作后才可進行狀態(tài)轉化,避免了跳躍性虛擬維修動作帶來的仿真度下降的問題。
(7)Ri為非負時間集,代表變遷Ti間的最小相對觸發(fā)時間間隔。因為某些虛擬維修變遷的物理動作完成后,還需要一些時間延遲,才可以執(zhí)行后續(xù)操作。定義?rij∈Ri,rij=0代表實體ei相應的變遷tij為即時生效變遷,rij>0則代表tij為延時生效變遷。
維修部件作為被操作對象,是虛擬維修的主體,而維修資源是伴隨維修部件狀態(tài)的改變而發(fā)生相應的使用、消耗變遷[16],是支持和約束維修進程的關鍵因素。因此,如何完備描述各維修部件間的約束關系是解決飛機虛擬維修中復雜行為關系的前提。
2.2.1約束關系概述
一個完整的維修任務所涉及的非空有限維修部件集記為V。
V={vi|vi∈V,i=1,2,…,n}
(7)
式中:vi為V的元素,即維修部件。將vi定義為圖的有限節(jié)點,使用有向弧表示各部件間的約束關系[17],繪制有向圖G=
圖5 一對一約束關系
2.2.2多部件約束關系的表達
有向圖G=
對于有向圖G=
(8)
式中:i,j=1,2,…,n。當存在vi指向vj的有向弧時,aij記為1,代表節(jié)點vi的操作優(yōu)先級高于vj;否則,aij記為0,代表節(jié)點vi和vj間不存在優(yōu)先約束。
顯然AG=(aij)n×n為n階方陣,且元素值為0或1,其中:第i行元素的和為節(jié)點vi的出度,第i列元素的和為節(jié)點vi的入度。
2.2.3約束關系的更新
隨著維修進程的推進,維修部件間的約束關系也隨之更新,該過程可由圖的操作表示。假設初始狀態(tài)維修部件均裝配就位,設維修部件vi∈V,當vi拆卸完成后,執(zhí)行圖的操作,從有向圖G中刪除節(jié)點vi及其關聯(lián)的所有邊,該過程稱為刪除節(jié)點vi,刪除節(jié)點vi得到的圖記為G-vi。更新后的鄰接矩陣記為AG-vi=(aij)(n-1)×(n-1),是將原鄰接矩陣中節(jié)點vi對應的行和列元素均刪除后的矩陣。可見,鄰接矩陣的規(guī)模和維修進程是相對應的,可以實時表示當前的維修進程。
在詳盡闡述子網(wǎng)模型和維修部件間約束關系的基礎上,進一步構造可動態(tài)重組子網(wǎng)的Petri網(wǎng)模型PN:
PN=(∑PNi,AG)
(9)
式中:∑PNi為維修實體子網(wǎng)模型集合;AG為維修部件間的鄰接矩陣,用于表達維修部件間的優(yōu)先約束關系。
∑PNi=(P,T,F,W,M0,E,G,A,R)
(10)
W是定義在F上的權函數(shù),F(xiàn)定義為:
F={Fi|Fi∈F,i=1,2,…,n}
(11)
Fi為子網(wǎng)PNi的有限弧集合,對于?fij∈F,W(fij)表示有向弧fij上的權值。
M0為Petri網(wǎng)的初始標識:
M0={Mi0|Mi0∈M0,i=1,2,…,n}
(12)
式中:Mi0為子網(wǎng)PNi的初始標識。對于?pij∈Pi,M(pij)表示標識向量M中庫所pij所對應的分量。
定義1維修部件vi的變遷tij在標識M下觸發(fā)的條件為:
(1) 對于j=1,2,…,n,滿足鄰接矩陣AG中?aji=0。
(2)rtij≥rij即變遷tij的觸發(fā)時間間隔rtij大于等于最小相對觸發(fā)時間間隔rij。
(3) ?P1∈*tij?M(P1)≥W(P,tij)。
定義2變遷tij在標識M下使能,變遷發(fā)生后:
(2) 刪除鄰接矩陣AG中vi對應的行和列即AG=AG-vi。
通常一個完整的虛擬維修過程主要包括拆卸和安裝兩個可逆的操作過程,此處主要以維修中的拆卸過程為例闡述鄰接矩陣約束下的可動態(tài)重組子網(wǎng)的Petri網(wǎng)虛擬維修過程實現(xiàn)方法,如圖6所示。
圖6 虛擬維修過程實現(xiàn)流程
假設拆卸維修起點為所有維修部件均處于裝配位,終點為維修部件均已拆卸。該維修任務中維修部件的狀態(tài)通過可更新的鄰接矩陣進行記錄,實現(xiàn)方法過程如下:
(1) 根據(jù)A320飛機維護手冊中拆卸任務的內容確定維修部件的范圍,記為維修部件集V={v1,v2,…,vn}。依據(jù)部件當前狀態(tài)將部件分為安裝缺省部件nullvi和拆卸缺省部件vinull兩種,其中:前者是指當前處在待拆卸狀態(tài)的維修部件,只能執(zhí)行拆卸操作,后者為拆卸缺省部件。維修部件的缺省狀態(tài)不是固定不變的,隨著維修過程的推進,狀態(tài)間可以相互轉變。
(2) 依據(jù)維修操作流程和維修部件間的聯(lián)結關系繪制有向圖G=
(3) 根據(jù)有向圖生成初始鄰接矩陣AG=(aij)n×n。
(5) 判斷當前是否有觸發(fā)事件E發(fā)生,即E是否為?。若為?,則等待觸發(fā)事件發(fā)生;否則,判斷當前維修部件vi是否為安裝缺省部件nullvi是否成立,若是則執(zhí)行拆卸操作后續(xù)實現(xiàn)流程,否則執(zhí)行安裝操作后續(xù)實現(xiàn)流程。下面在假設觸發(fā)事件是針對維修部件vi的拆卸操作的前提下,闡述后續(xù)的實現(xiàn)過程。
(6) 檢索矩陣C中拆卸非缺省部件(即安裝缺省部件)nullvj與部件vi約束關系,若相應的列元素cji均為0,說明滿足約束條件,可繼續(xù)判斷vi的拆卸監(jiān)護條件Gi值是否為1。若該變遷需要的維修資源就位且滿足最小觸發(fā)延時間隔,則監(jiān)護條件為1,執(zhí)行相應的拆卸動作,完成變遷;否則等待新的觸發(fā)事件發(fā)生。
(8) 判斷是否到達拆卸終點,即C==(null)n×n是否成立,若是則說明到達維修終點,否則等待新的觸發(fā)事件。
可動態(tài)重組子網(wǎng)的Petri網(wǎng)虛擬維修過程旨在通過鄰接矩陣約束各子網(wǎng)間的優(yōu)先關系,以響應實訓人員的非規(guī)范操作。目前,該模型已應用于A320飛機虛擬維修訓練器,該訓練器主要用于機務維修專業(yè)學生和航空公司維修人員實訓。為便于建模和計算機仿真,制定如下虛擬維修操作規(guī)則:(1) 同一時刻實訓人員只能有一個操作對象;(2) 虛擬維修操作不損害操作對象;(3) 功能和結構相同的緊固件作為一個零件處理;(4) 當維修部件操作需要維修資源支撐時,需要實訓人員使用相應的維修資源后,才允許操作該維修部件;(5) 拆卸操作完成后,要解除該部件相關的約束關系。
依據(jù)以上規(guī)則,通過建模和仿真,實現(xiàn)飛機部件的虛擬維修過程。下面以A320飛機ATA 28章燃油系統(tǒng)交輸活門作動筒的拆卸為例,闡述該部件虛擬維修的具體實現(xiàn)過程。
1) 根據(jù)A320飛機維護手冊中TASK 28-23-51-000-001交輸活門作動筒的拆卸內容[20]確定維修部件集V={v1,v2,v3,v4,v5},其中:v1、v2分別代表兩個電插頭,v3代表2個緊固螺釘,v4代表卡箍,v5代表交輸活門作動筒組件,維修部件初態(tài)均為裝配就位。
2) 依據(jù)各部件間的聯(lián)結關系繪制聯(lián)結圖,如圖7所示。
圖7 維修部件聯(lián)結圖
可以看出,該維修任務有12個可行的單向拆卸序列,考慮到不同的實訓者可能采用不同的維修操作序列,若對所有的可行序列建模,即使組件數(shù)量不多,建模工作量也是巨大的。
3) 根據(jù)聯(lián)結圖生成初始鄰接矩陣AG:
AG=(aij)5×5=v1v2v3v4v5
5) 假設當前發(fā)生了針對部件v3的維修操作事件,由于部件v3為安裝缺省部件,故判斷維修方向為拆卸。
6) 判斷矩陣C中安裝缺省部件vj與部件vi間的約束關系值,顯然相應的列元素cj3均為0。
7) 判斷監(jiān)護條件G3值是否為1,即維修資源就位且滿足最小變遷相對觸發(fā)時間間隔。假設G3為1,則執(zhí)行相應的拆卸維修動作A3。
8) 執(zhí)行矩陣更新操作,完成后,拆卸鄰接矩陣C和安裝鄰接矩陣B分別更新為:
B=nullv1nullv2v3nullv4nullv5
9) 依此循環(huán),此維修過程允許實訓者改變維修方向,執(zhí)行安裝操作,直至C==(null)n×n,則代表已到達拆卸維修的終點。交輸活門作動筒組件的部分拆卸維修過程仿真效果如圖8所示。
(a) 接近交輸活門作動筒 b) 脫開第1個電插頭 (c) 第2個電插頭脫開中 (d) 第2個電插頭脫開完成
(e) 松開兩個螺釘 (f) 移走兩個螺釘 (g) 松開卡箍 (h) 移走卡箍 (i) 拆下交輸活門作動筒圖8 交輸活門作動筒主要拆卸過程
結合面向實訓的飛機虛擬維修實際需求,在統(tǒng)一規(guī)范表達子網(wǎng)模型的基礎上,使用可動態(tài)重組子網(wǎng)的Petri網(wǎng)建立飛機虛擬維修過程模型。該模型使用拆卸和安裝雙向鄰接矩陣約束子網(wǎng)間的優(yōu)先關系,允許實訓者改變維修方向,響應實訓者的雙向隨機操作指令,動態(tài)重組子網(wǎng),貼近實際維修實訓的同時,避免了對所有可行序列建模的工作量。另外,使用了動作集描述變遷輸出的維修動作,模擬真實維修過程。由仿真效果圖可知,虛擬維修動作連貫且貼合維修實際,本文模型解決了維修動作不全或跳躍的問題,提高了飛機虛擬維修的仿真度。