劉正春,王 勇,解 璞,薛海鵬
(1.軍械工程學(xué)院,河北 石家莊 050003;2.南京陸軍指揮學(xué)院,江蘇 南京 210000)
隨著虛擬現(xiàn)實(shí)技術(shù)的蓬勃發(fā)展及其廣泛應(yīng)用,虛擬維修仿真已成為一項(xiàng)新技術(shù),對促進(jìn)數(shù)字化工業(yè)、軍事、航空航天發(fā)展具有重要意義[1]。
某型高炮的電氣系統(tǒng)是整部高炮的神經(jīng)中樞,具有設(shè)備繁多、連接關(guān)系復(fù)雜等特點(diǎn),一旦電氣系統(tǒng)出現(xiàn)故障,系統(tǒng)將無法正常運(yùn)作,甚至不能完成任務(wù)。傳統(tǒng)的實(shí)裝維修培訓(xùn),因受電氣設(shè)備數(shù)量限制,具有代價(jià)高、訓(xùn)練內(nèi)容片面和培訓(xùn)效率低等缺點(diǎn),已經(jīng)不能滿足大型高炮武器裝備的維修保障需求,而虛擬維修技術(shù)為該裝備的技術(shù)培訓(xùn)提供了新的手段和方法[2]。
針對某型高炮電氣系統(tǒng)設(shè)備繁多、連接關(guān)系復(fù)雜、維修資源多樣等特點(diǎn),研究并開發(fā)了某型高炮電氣虛擬維修系統(tǒng)。受訓(xùn)人員在具備基本維修知識的情況下,通過與該系統(tǒng)進(jìn)行交互,完成對故障狀態(tài)識別、分析、診斷的訓(xùn)練;受訓(xùn)人員通過虛擬故障診斷訓(xùn)練,熟悉裝備的各種故障模式、故障成因,進(jìn)而掌握故障分析的一般步驟和初步推理能力,逐步提高其維修工作能力。
某型高炮電氣虛擬維修系統(tǒng)用于某型高炮電氣設(shè)備的故障維修訓(xùn)練,受訓(xùn)人員需要對維修對象(電氣箱體設(shè)備、電路板、元器件)進(jìn)行拆卸裝配、更換器件以及電氣檢測等操作,因此,系統(tǒng)需要實(shí)現(xiàn)兩個(gè)關(guān)鍵功能:故障維修動作交互和故障維修過程仿真。為實(shí)現(xiàn)這兩大核心功能,設(shè)計(jì)了5個(gè)子功能模塊,如圖1所示。
1)Cult3D動態(tài)模型導(dǎo)入。采用3DMax軟件進(jìn)行高炮電氣設(shè)備的三維建模設(shè)計(jì)(*.max),導(dǎo)入Cult3D Designer設(shè)計(jì)動態(tài)效果和相機(jī)視角(*.co)。
2)資源中心。即各種資源素材(如動態(tài)模型、材質(zhì)、聲音)的文件包。
3)故障推理信息的生成。以反向推理機(jī)制,產(chǎn)生故障源、讀取電氣系統(tǒng)屬性,從而建立故障現(xiàn)象、生成最優(yōu)維修路徑、建立維修方法數(shù)據(jù)庫,包括維修難度、故障特征、可容忍維修時(shí)長、維修工具和文字等。
4)電氣系統(tǒng)屬性。電氣系統(tǒng)屬性最終表現(xiàn)形式為高炮各電氣節(jié)點(diǎn)的數(shù)據(jù)變量,電氣節(jié)點(diǎn)包括電氣系統(tǒng)回路、設(shè)備回路、電路回路以及電子元器件(如電容、電阻、三極管、繼電器等),數(shù)據(jù)變量包括回路通斷、電流、電壓、振蕩以及器件狀態(tài)(良好/損壞)等。電氣系統(tǒng)屬性的初始狀態(tài)為全炮良好無故障時(shí)的狀態(tài),當(dāng)故障推理機(jī)制激活,根據(jù)不同的故障推理信息產(chǎn)生不同的數(shù)據(jù)狀態(tài)。
5)虛擬儀器仿真。對測試儀器(如萬用表、示波器等)進(jìn)行三維虛擬仿真,模擬真實(shí)儀器的換擋、讀數(shù)、提示音以及波形,能測試虛擬電路板上各測試點(diǎn)的電氣特性。受訓(xùn)人員可以很直觀地進(jìn)行檢測、定位故障點(diǎn)和故障類型, 達(dá)到實(shí)裝故障檢測的效果。
將模型從3DMax建模軟件中導(dǎo)入到Cult3D Designer軟件中進(jìn)行動態(tài)屬性設(shè)計(jì),以建立具有交互性質(zhì)的動態(tài)模型,除了移動、旋轉(zhuǎn)等基本交互屬性外,還包括裝配約束、電氣測試節(jié)點(diǎn)(繼電器、電纜、LCR、三極管等元器件)的設(shè)置、虛擬儀器面板的交互動作設(shè)計(jì)、表筆的拾取與放置等復(fù)雜交互屬性。因此需要對模型的電氣節(jié)點(diǎn)進(jìn)行細(xì)化,重構(gòu)其拓?fù)潢P(guān)系,采用樹型結(jié)構(gòu)來表達(dá),如圖2所示。
通常,高炮電氣系統(tǒng)由多個(gè)分系統(tǒng)(如隨動系統(tǒng))組成,各分系統(tǒng)包含多個(gè)單體設(shè)備,即一個(gè)裝配整體,而裝配體內(nèi)有多個(gè)子裝配體(如電路板)或裝配附件(如電纜),子裝配體上又有多個(gè)幾何組節(jié)點(diǎn)(如元器件),有的幾何組節(jié)點(diǎn)上又存在多個(gè)幾何節(jié)點(diǎn)(如測試點(diǎn))。
結(jié)構(gòu)樹以整個(gè)高炮電氣系統(tǒng)為根節(jié)點(diǎn),在程序接口中以此作為結(jié)構(gòu)樹指針的初始值,建立與各級節(jié)點(diǎn)對應(yīng)的類:使用 TMatrixTransform組節(jié)點(diǎn)作為裝配體,TSubTransform為子裝配體,TGeode為裝配體上的幾何模型節(jié)點(diǎn),TGeometry為幾何圖形節(jié)點(diǎn)。
為保證元器件模型可以單獨(dú)拆裝、查看和測試,給每個(gè)TGeode對象設(shè)置一個(gè)轉(zhuǎn)換矩陣Transform。每個(gè)節(jié)點(diǎn)由其父節(jié)點(diǎn)決定其位置、旋轉(zhuǎn)和動畫,以便約束每個(gè)幾何體的拆裝操作。據(jù)此原理,通過遞歸調(diào)用遍歷各個(gè)電氣設(shè)備的裝配樹,以此獲得原裝配的層次結(jié)構(gòu),并根據(jù)裝配步驟需要,重構(gòu)生成新的裝配樹。
系統(tǒng)在Delphi開發(fā)環(huán)境下使用ActiveX技術(shù)調(diào)用Cult3D動態(tài)模型[3]。虛擬維修環(huán)境下,操作人員對各電氣裝置的拆裝和測試的交互是虛擬維修的核心問題[4],在本系統(tǒng)中主要集中體現(xiàn)在以下兩個(gè)方面。
2.2.1 維修過程動作過渡仿真
為了在虛擬維修過程中,使場景切換、動作操作更為流暢,操作人員的某些固定操作動作采用動畫預(yù)演的方法來實(shí)現(xiàn)。例如從高炮內(nèi)艙拆卸某電氣箱體,用戶選中該箱體,右鍵選擇“拆卸”,則調(diào)用預(yù)定的動畫幀序列來實(shí)現(xiàn)從電氣系統(tǒng)界面到箱體界面的切換。其實(shí)質(zhì)是將維修對象特定時(shí)刻的關(guān)鍵幀存儲在關(guān)鍵幀序列中,演示時(shí)將關(guān)鍵幀進(jìn)行回放。
其關(guān)鍵代碼如下:
if Disassemble_Allow ( GStatus(now), MyTransform.select() ) then //判斷當(dāng)前狀態(tài)是否滿足拆卸條件;
begin
case MyTransform.select().type of
MatrixTransform: //裝配體(系統(tǒng)/分系統(tǒng)/單體)
Cult3DP1.ExecuteAction( MyTransform.
select().NextSence ); //執(zhí)行場景切換;
SubTransform://子裝配體(電路板)
Cult3DP1.ExecuteAction( MyTransform.
select().Disassemble );//執(zhí)行拆卸操作;
Geode://幾何組節(jié)點(diǎn)(元器件)
Cult3DP1.ExecuteAction( MyTransform.
select().SingleEnter); //單個(gè)元器件顯示;
Geometry://測試點(diǎn)
showMessage(‘測試點(diǎn)無法拆卸!’);
exit;
end;
end
else
showMessage(‘請確定當(dāng)前狀態(tài)滿足拆卸條件!’);
其中,TCult3DP為Cult3D提供的第三方ActiveX控件,TCult3DP.ExecuteAction()為該控件執(zhí)行Cult3D Designer中某預(yù)定動畫幀序列;函數(shù)GStatus(now)返回當(dāng)前全炮電氣系統(tǒng)狀態(tài),MyTransform.select()獲取用戶操作對象,以確定高炮當(dāng)前不處于供電狀態(tài),即可拆卸狀態(tài)。
對于用戶選擇不同的節(jié)點(diǎn)類型,即MyTransform.select().type,其拆卸對象和動作都是不同的:對于如果返回類型為MatrixTransform(系統(tǒng)/分系統(tǒng)/單體),則調(diào)用場景切換動作;若為SubTransform(電路板),則按約束調(diào)用拆卸路徑;若為Geode(元器件),則進(jìn)入單個(gè)元器件的操作界面;若為Geometry(測試點(diǎn)),則給出提示,返回。
2.2.2 維修測試數(shù)據(jù)的交互
當(dāng)系統(tǒng)產(chǎn)生一個(gè)故障后,全炮所有的電氣節(jié)點(diǎn)將根據(jù)故障機(jī)理映射出各自的電氣屬性,受訓(xùn)人員可以通過觀察電氣設(shè)備的狀態(tài)(如,箱體面板指示燈、發(fā)動機(jī)的運(yùn)行狀態(tài)等)來診斷故障,但為了精確診斷,則需要通過三維虛擬儀器對各測試點(diǎn)的電氣參數(shù)測量結(jié)果來進(jìn)行判斷,因此,程序必須準(zhǔn)確獲取用戶對三維模型的操作信息。
首先,在Cult3D中對模型的Geometry節(jié)點(diǎn)設(shè)置熱點(diǎn)[5](HotSpot),并進(jìn)行ID命名,以便程序通過獲取ID號判斷用戶對測試點(diǎn)的操作信息。
其關(guān)鍵代碼如下:
if Measure_Allow(GStatus(now), MyTransform.select()) then //判斷當(dāng)前設(shè)備狀態(tài)是否允許測量
begin
TestPen[num].id:=Cult3DP21.GetActionStatus( Measure.Object ); //表筆獲取測試點(diǎn)ID
if num=2 then begin
num:=1;
Cult3DP1.TriggerAction( Measure.Display );//兩支表筆都已獲取數(shù)據(jù),儀器顯示讀數(shù);
end
else begin
num:=num+1; //準(zhǔn)備下一支表筆;
Cult3DP1.TriggerAction( Measure.Hold );//表筆定位,等待下一支表筆獲取數(shù)據(jù);
end;
end
else begin
showMessage(‘請確定滿足測量條件!’)
Cult3DP1.TriggerAction( Measure.Exit );
//不允許測試,Reset表筆,退出測試狀態(tài);
end;
以故障現(xiàn)象(故障自診斷盒顯示“03307”)為例進(jìn)行故障診斷訓(xùn)練。受訓(xùn)人員首先按正常的操作順序啟動某型高炮,過程中系統(tǒng)提示故障現(xiàn)象,如圖3所示。此時(shí),系統(tǒng)已經(jīng)完成故障注入以及各數(shù)據(jù)節(jié)點(diǎn)的電氣屬性的賦值。
受訓(xùn)人員在線狀態(tài)下進(jìn)行查看(不允許操作),然后切換到離線狀態(tài),即可對各電氣設(shè)備進(jìn)行拆卸和測量,從而判斷定位故障源。
用戶對電氣設(shè)備的拆卸,調(diào)用系統(tǒng)的“故障維修過程仿真”功能。圖4顯示了用戶在離線狀態(tài)下,對某箱體的拆卸操作,拆卸下來的配件(包括外殼、電路板、可拆卸繼電器等)放置在右側(cè)的工具欄中,用戶也可以切換到配件模式下,對配件進(jìn)行查看和測量。
用戶對電氣設(shè)備的測量,調(diào)用系統(tǒng)的“故障維修動作交互”功能。用戶可以在離線狀態(tài)下,測量電氣節(jié)點(diǎn)的通斷,也可以在外加激勵源的狀態(tài)下,測量電氣節(jié)點(diǎn)的電流、電壓和波形等。圖5所示為用戶使用虛擬萬用表對某箱體接線柱進(jìn)行測量。針對某型高炮的電氣特征,對虛擬萬用表設(shè)計(jì)了3種模擬擋位:通斷、交流和直流。
用戶通過對各設(shè)備的檢查,最后定位故障源并進(jìn)行維修,此時(shí)用戶可對電氣系統(tǒng)內(nèi)所有可更換件進(jìn)行更換和修復(fù),如果判斷錯誤,系統(tǒng)會給與提示,如果判斷正確,系統(tǒng)將對用戶的操作進(jìn)行評估。
通過重構(gòu)三維幾何模型、Cult3D動態(tài)設(shè)計(jì),以及Delphi ActiveX交互等技術(shù),建立了某型高炮電氣虛擬維修系統(tǒng)。通過該系統(tǒng),受訓(xùn)人員能夠沉浸在虛擬環(huán)境中進(jìn)行維修操作,能夠替代實(shí)裝進(jìn)行維修訓(xùn)練,系統(tǒng)功能完備,能達(dá)到元器件級別,可為其它裝備的虛擬維修設(shè)計(jì)提供技術(shù)參考。
參考文獻(xiàn)(References)
[1] 王文舉,李光耀. 虛擬維修仿真技術(shù)的研究與進(jìn)展[J]. 系統(tǒng)仿真學(xué)報(bào),2011,23(9):1751-1757.
WANG Wen-ju, LI Guang-yao. Research and development of virtual maintenance simulation technology[J]. Journal of System Simulation, 2011, 23(9): 1751-1757. (in Chinese)
[2] 郝建平,蔣科藝,王松山. 虛擬維修仿真理論與技術(shù)[M]. 北京:國防工業(yè)出版社,2008:35-36.
HAO Jian-ping, JIANG Ke-yi, WANG Song-shan. Simulation theory and technology of virtual maintenance[M]. Beijing: National Defense Industry Press, 2008: 35-36. (in Chinese)
[3] 濮青,徐云. 應(yīng)用Cult3D技術(shù)實(shí)現(xiàn)交互式三維人臉動畫[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2004,16 (3):382-384.
PU Qing, XU Yun. Implementation of interactive 3D facial animation with Cult3D technology[J]. Journal of Computer Aided Design and Computer Graphics, 2004, 16 (3): 382-384. (in Chinese)
[4] 馬麟,呂川. 虛擬維修技術(shù)的探討[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2005,17(12): 2729-2733.
MA Lin, LV Chuan. Study on virtual maintenance technology[J]. Journal of Computer Aided Design & Computer Graphics, 2005, 17(12): 2729-2733. (in Chinese)
[5] 蘇威洲,童仲豪,葉翰鴻. 實(shí)現(xiàn)網(wǎng)絡(luò)三維互動——Cult3D應(yīng)用指南[M]. 北京:清華大學(xué)出版社,2001:135-148.
SU Wei-zhou, TONG Zhong-hao, YE Han-hong. Making internet 3D interactive:Cult3D application manul[M]. Beijing:Tsinghua University Press, 2001: 135-148. (in Chinese)