于 雷
(中國(guó)艦船研究院,北京 100192)
除了現(xiàn)有的“戴高樂(lè)”號(hào)航母外,法國(guó)海軍計(jì)劃建造第2艘航母。為此,法國(guó)海軍列出了新航母的功能需求并委托法國(guó)DCNS集團(tuán)設(shè)計(jì)這艘航母。新航母設(shè)計(jì)的主要困難在于航母上航空管理設(shè)計(jì)。航空管理用于規(guī)劃航母上不同飛機(jī)、車輛和人員等執(zhí)行飛機(jī)彈射起飛或著艦、加油等作業(yè)時(shí)的移動(dòng)過(guò)程。法國(guó)海軍提出的有關(guān)新航母航空管理方面的需求限制了一定時(shí)間內(nèi)飛機(jī)的出動(dòng)架次及其可執(zhí)行任務(wù)的數(shù)量。航母航空管理設(shè)計(jì)問(wèn)題就變成了如何在考慮航母拓?fù)浣Y(jié)構(gòu)的前提下最優(yōu)化地安排航母上任務(wù)執(zhí)行流程。要最優(yōu)化地安排任務(wù)執(zhí)行流程,可以使用時(shí)序限制問(wèn)題求解工具軟件,但還需要考慮任務(wù)執(zhí)行所處的物理環(huán)境的限制。將航母設(shè)計(jì)得更大固然能減少任務(wù)執(zhí)行過(guò)程中的時(shí)序限制,但也加大了實(shí)際的建造成本;反過(guò)來(lái),將航母設(shè)計(jì)得更小就能減少建造成本,卻帶來(lái)了更多的時(shí)序限制。航母設(shè)計(jì)就是要解決這樣的空間和時(shí)序限制問(wèn)題,而使用三維仿真軟件和時(shí)序安排工具軟件就可以更方便地解決這些問(wèn)題。
為了解決以上空間時(shí)間規(guī)劃問(wèn)題,法國(guó)海軍使用了一種名為GASPAR的虛擬現(xiàn)實(shí)工具[1]。該工具能夠模擬虛擬航母環(huán)境中自主作業(yè)程序的執(zhí)行,并隨時(shí)評(píng)估設(shè)計(jì)改變對(duì)航母性能的影響。
AR'EVI庫(kù)1為GASPAR提供虛擬現(xiàn)實(shí)應(yīng)用所需的功能。這些功能的主旨就是在交互式三維環(huán)境(仿生、道路交通環(huán)境和訓(xùn)練工具等)中激活多個(gè)自主行動(dòng)的互動(dòng)實(shí)體。
AR'EVI庫(kù)的特性如下:
1)實(shí)體調(diào)度:通過(guò)異步和混沌迭代管理自主行動(dòng)實(shí)體活動(dòng)的調(diào)度。
2)消息通信:AR'EVI庫(kù)提供異步消息服務(wù)。
3)三維服務(wù):包含一個(gè)高層次的三維庫(kù)。這個(gè)三維庫(kù)掩蓋了繪制過(guò)程的技術(shù)細(xì)節(jié),允許用戶在一個(gè)接近于描述真實(shí)場(chǎng)景層面的抽象層面上表示模型。
4)分布式仿真:不論在初始開(kāi)發(fā)階段是否具有分布性設(shè)計(jì),使用AR'EVI庫(kù)的仿真應(yīng)用程序可方便地分布在多臺(tái)機(jī)器上執(zhí)行。
5)仿人機(jī)器人:AR'EVI庫(kù)的hLib庫(kù)(“仿人機(jī)器人庫(kù)”)提供人物的可視化和控制工具。
AR'EVI庫(kù)解決了GASPAR仿真應(yīng)用中的虛擬現(xiàn)實(shí)問(wèn)題,但還不能分析實(shí)時(shí)發(fā)生的事件,因此還需要更高層次的庫(kù)來(lái)實(shí)現(xiàn)仿真。
借助AR'EVI庫(kù)實(shí)現(xiàn)了環(huán)境和飛機(jī)流的現(xiàn)實(shí)和交互式實(shí)時(shí)仿真,GASPAR仿真應(yīng)用還需要對(duì)這些事件流進(jìn)行推理和分析。推理和分析應(yīng)在信息化虛擬環(huán)境[2]中完成,這需要借助環(huán)境模型VEHA和飛機(jī)流模型MASCARET。
1.2.1 環(huán)境建模
這里所說(shuō)的環(huán)境,是指仿真中的對(duì)象全體。例如,航母由甲板和艙室構(gòu)成。這2個(gè)層次之間的轉(zhuǎn)移是通過(guò)2臺(tái)升降機(jī)實(shí)現(xiàn)?!瓣囷L(fēng)”戰(zhàn)斗機(jī)停在航母甲板上,而“陣風(fēng)”又是由機(jī)頭、機(jī)翼等部件組成。使用UML語(yǔ)言描述上述這些概念,等同于創(chuàng)建了一組類,以及類的屬性和鏈接,而虛擬環(huán)境的對(duì)象就是這些類的實(shí)例。
環(huán)境模型VEHA模型的作用是在環(huán)境中添加必要的代理程序行為信息 (例如智能對(duì)象)[3],并推動(dòng)行為分析。因此,如同智能對(duì)象一樣,對(duì)象表達(dá)了如下概念:①幾何形狀;②活動(dòng) (在VEHA模型中稱為“作業(yè)”);③用于活動(dòng)的信息化點(diǎn);④表示屬性和鏈接的變量;⑤利用狀態(tài)機(jī)表示的行為。
VEHA模型將類的概念具體化。1個(gè)類由屬性、操作和狀態(tài)機(jī)構(gòu)成。VEHA模型也將類間的鏈接(繼承和聯(lián)系)具體化。1個(gè)類也有鏈接。首先,1個(gè)類可由1個(gè)或許多個(gè)類繼承而來(lái),這使得它也獲得父類的所有特性 (屬性、操作、狀態(tài)機(jī)和聯(lián)系)。此外,這個(gè)類可能和其他類有聯(lián)系。這些聯(lián)系可是組成關(guān)系,或者是簡(jiǎn)單的知識(shí)關(guān)聯(lián)。例如,在GASPAR應(yīng)用程序中,飛機(jī)由許多輪子、2個(gè)機(jī)翼和駕駛員座艙構(gòu)成,還包括飛機(jī)所在高度 (甲板或艙室)以及區(qū)域 (如停機(jī)區(qū))。仿真環(huán)境中被具體化的信息,可用于現(xiàn)象解釋和操作實(shí)現(xiàn)。
1個(gè)類也有操作。通常,1個(gè)操作由原型、前置條件和后置條件描述。這種表現(xiàn)方式足夠代理程序處理操作。不過(guò),VEHA模型可以用UML活動(dòng)圖表示1個(gè)操作,這使得對(duì)1個(gè)操作工作方式的推理變得更為精細(xì),即更好地理解操作的功用。
VEHA模型不僅能夠表示系統(tǒng)的靜態(tài)結(jié)構(gòu),還能分析環(huán)境的動(dòng)力學(xué)。每1類由1個(gè)或多個(gè)狀態(tài)機(jī)構(gòu)成。這意味著以某種方式描述1個(gè)實(shí)體 (對(duì)象)的全部狀態(tài)以及這些狀態(tài)之間的轉(zhuǎn)換條件是可能的。狀態(tài)機(jī)在仿真中將被自動(dòng)解釋。在VEHA模型中,1個(gè)狀態(tài)機(jī)由狀態(tài)和轉(zhuǎn)換構(gòu)成。1個(gè)狀態(tài)指的是當(dāng)狀態(tài)變?yōu)榧せ罨虿换钴S時(shí)應(yīng)當(dāng)執(zhí)行的操作。1次狀態(tài)轉(zhuǎn)換擁有1個(gè)警戒條件,可對(duì)1個(gè)事件作出反應(yīng)。警戒條件是1個(gè)將在仿真期間受到檢測(cè)的布爾表達(dá)式。VEHA模型,提出用1個(gè)對(duì)象約束語(yǔ)言 (OCL)約束解釋器描述警戒條件。具體地說(shuō),這意味著計(jì)算機(jī)專家和領(lǐng)域?qū)<沂褂肬ML語(yǔ)言的狀態(tài)機(jī)描述實(shí)體行為,而不需要代碼實(shí)現(xiàn)這個(gè)行為。實(shí)體一旦被解釋,將在事件觸發(fā)的同時(shí)自動(dòng)改變自身狀態(tài)。狀態(tài)和轉(zhuǎn)換在仿真中得到明確地表示,這使得代理程序可能對(duì)處理對(duì)象的方式進(jìn)行推理。代理程序可能理解改變對(duì)象狀態(tài)的條件以實(shí)現(xiàn)操作。代理程序要改變環(huán)境以使得條件變?yōu)門(mén)RUE。
1.2.2 作業(yè)過(guò)程組織建模
VEHA模型使用UML元模型[4]表示作業(yè)過(guò)程執(zhí)行的環(huán)境,而MASCARET模型通過(guò)解釋UML元模型語(yǔ)義描述表示組織和作業(yè)過(guò)程的概念。組織被看作有組織的結(jié)構(gòu)。按照自動(dòng)代理程序在組織中扮演的角色,這種結(jié)構(gòu)確定了自動(dòng)代理程序活動(dòng)的實(shí)現(xiàn)框架。MASCARET組織性模型指定并執(zhí)行了類似于Ferber提出的AGR4模型[5]的模式。該模型有4個(gè)重要概念:代理程序、組織、角色和活動(dòng)。代理程序是具備通信能力和行為整體的一個(gè)環(huán)境實(shí)體 (和對(duì)象一樣)。為了令代理程序?qū)Y(jié)構(gòu)進(jìn)行推理,需要對(duì)組織進(jìn)行表達(dá)。代理程序扮演的角色是所要執(zhí)行的活動(dòng)整體。最后,活動(dòng)是一個(gè)虛擬環(huán)境的框架內(nèi)部對(duì)于代理程序自身或者對(duì)于環(huán)境對(duì)象的操作實(shí)現(xiàn),它可以是一個(gè)動(dòng)畫(huà)和聲音實(shí)現(xiàn),或者是聲音的實(shí)現(xiàn),也可以僅僅是時(shí)間的消耗。
組 (即繼承自組織的類)由它的組織性結(jié)構(gòu)(構(gòu)成組的不同角色)和它可實(shí)現(xiàn)的過(guò)程 (例如為“陣風(fēng)”戰(zhàn)斗機(jī)加油)整體描述。使用活動(dòng)圖可以對(duì)一個(gè)過(guò)程進(jìn)行描述和解釋。MASCARET模型[6]提出了一種基于UML活動(dòng)圖的過(guò)程模型。這種圖表的表現(xiàn)力足夠描述調(diào)度實(shí)例整體,也能足夠清楚地用于計(jì)算機(jī)專家和領(lǐng)域?qū)<抑g的對(duì)話。一個(gè)過(guò)程按角色(對(duì)應(yīng)組織中的角色)排列,每個(gè)角色可由一個(gè)特定類型的代理程序扮演。外部資源被引入到過(guò)程中 (待加油的飛機(jī)、待使用的阻攔設(shè)備等)。人們用環(huán)境對(duì)象表示這些資源,也從對(duì)活動(dòng)圖的解釋中推斷它們。一個(gè)過(guò)程組織了一個(gè)角色的活動(dòng),即它描述了活動(dòng)的邏輯和時(shí)間順序。通過(guò)這種方式,幾種運(yùn)算符被用于活動(dòng)圖,如平行運(yùn)算符、同步運(yùn)算符和條件運(yùn)算符。所有這些運(yùn)算符都由MASCARET模型操作。
一旦過(guò)程得到描述,代理程序必須按特定行為執(zhí)行被選中的過(guò)程。在過(guò)程的開(kāi)始,每個(gè)代理程序復(fù)制這個(gè)過(guò)程。接下來(lái),代理程序執(zhí)行過(guò)程并實(shí)現(xiàn)應(yīng)當(dāng)進(jìn)行的活動(dòng)。通過(guò)在每個(gè)活動(dòng)執(zhí)行的開(kāi)頭和結(jié)尾發(fā)送消息,代理程序使得彼此能同步執(zhí)行。過(guò)程行為算法使得用戶能動(dòng)態(tài)控制一個(gè)代理程序。代理程序仍將繼續(xù)推動(dòng)過(guò)程發(fā)展,但會(huì)令用戶執(zhí)行應(yīng)進(jìn)行的活動(dòng)。這樣,當(dāng)用戶停止控制時(shí),代理程序?qū)⒃谟脩敉V固幚^續(xù)執(zhí)行這個(gè)過(guò)程。
GASPAR應(yīng)用程序用于仿真航母上的活動(dòng)。該應(yīng)用程序使用類屬模型,即應(yīng)用程序中環(huán)境的結(jié)構(gòu)、對(duì)象或組織及過(guò)程都由一個(gè)UML模型描述。GASPAR應(yīng)用程序的UML模型被劃分為3個(gè)包:組織包 (organizations package)、環(huán)境包 (environment package)和代理程序包 (agent package)。其中,環(huán)境包描述構(gòu)成環(huán)境的所有種類的對(duì)象 (類)。環(huán)境包由VEHA模型解釋。代理程序包表示一個(gè)代理程序?qū)缪莸牟煌愋偷慕巧_@些角色對(duì)應(yīng)于諸如彈射起飛或著艦這樣的真實(shí)過(guò)程中定義的角色。一個(gè)角色由幾種表示代理程序可執(zhí)行操作的方法構(gòu)成。代理程序不能執(zhí)行另一個(gè)代理程序應(yīng)執(zhí)行的活動(dòng)(能力概念)。組織包描述航母上不同的組、構(gòu)成組的角色和這些組可執(zhí)行的過(guò)程。參與這些過(guò)程的角色對(duì)應(yīng)于代理程序包定義的代理程序類型。
GASPAR應(yīng)用程序最初的開(kāi)發(fā)目的是仿真航母上作業(yè)過(guò)程以驗(yàn)證飛機(jī)事件流。該仿真必須證明一定數(shù)量的“陣風(fēng)”戰(zhàn)斗機(jī)能在一定時(shí)間內(nèi) (該時(shí)間由法國(guó)海軍確定)在航母上完成彈射起飛。
1)建立應(yīng)用程序的模型即環(huán)境組成要素、人員角色和過(guò)程中活動(dòng)的安排等;
2)仿真每個(gè)過(guò)程,以判斷航母的幾何外形是否容許每個(gè)實(shí)體移動(dòng)。仿真的過(guò)程如下:①飛機(jī)著艦;②飛機(jī)彈射起飛 (見(jiàn)圖1);③后方的飛機(jī)調(diào)運(yùn) (見(jiàn)圖2);
仿真也能控制人員是否遵守安全區(qū)域限制規(guī)定(見(jiàn)圖3);
3)仿真還能驗(yàn)證過(guò)程的時(shí)序是否正確。若每個(gè)車輛或飛行器的速度真實(shí),活動(dòng)的實(shí)現(xiàn)時(shí)間也真實(shí),就能精確知道一個(gè)過(guò)程的持續(xù)時(shí)間;
4)該應(yīng)用程序使得用戶能分享一個(gè)代理程序的觀察點(diǎn)。以這種方式,用戶能夠確保每個(gè)代理程序能“看到”用戶應(yīng)當(dāng)觀察到的東西 (見(jiàn)圖4,沒(méi)有觀察盲點(diǎn));
圖1 艦載機(jī)彈射起飛Fig.1 Catapult-launching
圖2 航母上后方飛機(jī)調(diào)運(yùn)Fig.2 Rear spotting
圖3 “陣風(fēng)”戰(zhàn)斗機(jī)的安全區(qū)域Fig.3 Security areas of the Rafale
圖4 代理程序在航母控制塔中的觀察點(diǎn)Fig.7 Point of view of an agent in the control tower
5)在仿真期間,每個(gè)代理程序的各個(gè)活動(dòng)均記錄在一個(gè)文件中。這使得對(duì)人員活動(dòng)的事后分析成為可能。GASPAR應(yīng)用程序有一個(gè)分析工具。該工具可以用條狀圖和餅圖表示代理程序的活動(dòng)或資源的活動(dòng)。憑借這個(gè)工具,用戶能驗(yàn)證是否存在代理程序或資源可用性方面的“瓶頸”。
6)為了測(cè)試不同的配置,仿真是交互式的。例如,改變一個(gè)對(duì)象的狀態(tài)或觸發(fā)一個(gè)代理程序的活動(dòng)是可能的。這使得不使用過(guò)程而對(duì)活動(dòng)進(jìn)行測(cè)試成為可能。當(dāng)引入異常時(shí),也能對(duì)突發(fā)過(guò)程的觸發(fā)進(jìn)行測(cè)試。例如,若仿真中偏流板不能在彈射起飛過(guò)程中打開(kāi),飛機(jī)停止彈射。如果在這種情況下有一個(gè)突發(fā)過(guò)程發(fā)生,用戶可動(dòng)態(tài)地對(duì)它進(jìn)行測(cè)試。
使用GASPAR應(yīng)用程序,用戶能驗(yàn)證幾個(gè)要點(diǎn)。首先,虛擬環(huán)境中過(guò)程的仿真使得航母設(shè)計(jì)幾何方面的驗(yàn)證成為可能,分為以下2點(diǎn):
1)航母的整體尺寸。該尺寸可通過(guò)飛機(jī)和甲板上設(shè)備位置及其移動(dòng)的不同配置給出。
2)甲板上建筑形狀和艦島 (控制塔)位置。例如,若航母需要雙艦島,且原設(shè)計(jì)中導(dǎo)航艦橋和飛機(jī)控制艦橋均在前部艦島上,在仿真中進(jìn)行了相應(yīng)設(shè)置后,代理程序觀察點(diǎn)仿真結(jié)果顯示飛機(jī)進(jìn)近期間后部艦島對(duì)前部艦島上的艦橋有干擾,此時(shí)就需要改變?cè)O(shè)計(jì),將飛機(jī)控制艦橋移到后部艦島上。
GASPAR應(yīng)用程序也可以用于驗(yàn)證如下過(guò)程:
1)每個(gè)過(guò)程的有效持續(xù)時(shí)間。
2)人員移動(dòng)。例如,在一個(gè)過(guò)程中確保無(wú)人闖入安全區(qū)域。
3)甲板上人員、航母上的艙室和艦橋的可見(jiàn)性。
本文介紹了GASPAR應(yīng)用程序。該應(yīng)用程序基于AR'E VI庫(kù)和MASCARET庫(kù)。AR'E VI庫(kù)使得自主代理程序在交互式虛擬環(huán)境中成為一體。而MASCARET庫(kù)可對(duì)復(fù)雜代理程序組進(jìn)行分配和管理。使用MASCARET庫(kù)的優(yōu)點(diǎn)是應(yīng)用程序執(zhí)行時(shí)無(wú)需使用代碼以在環(huán)境中添加對(duì)象、新的過(guò)程和新的場(chǎng)景等。
法國(guó)新航母的設(shè)計(jì)單位DCNS集團(tuán)無(wú)需計(jì)算機(jī)專家,就能用GASPAR應(yīng)用程序設(shè)計(jì)航母。由于GASPAR應(yīng)用程序已經(jīng)被測(cè)試并驗(yàn)證了幾個(gè)關(guān)鍵點(diǎn),DCNS集團(tuán)能使用GASPAR驗(yàn)證航母的最終外形及航母上發(fā)生的所有過(guò)程。此外,GASPAR應(yīng)用程序還被用于設(shè)計(jì)法國(guó)“西北風(fēng)”級(jí)兩棲攻擊艦。
[1]BUCHE C,BOSSARD C,QUERREC R,CHEVAILLIER P.GASPAR:Aviation management on aircraft carrier using virtual reality[Z].Actes de la conférence Cyberworlds 2007.
[2]BUCHE C,QUERREC R,DE LOOR P,CHEVAILLIER P.MASCARET:A pedagogical multi-agent system for virtual environment for training[J].International Journal of Distance Education Technologies(JDET),2004,2(4):41-61.
[3]KALLMANN M.Interaction with 3-d objects.In N.Magnenat-Thalmann and D[M].Thalmann,editors,Handbook of Virtual Humans,JohnWiley & Sons,first edition,2004.
[4]BOOCH G,RRMBAUGH J,JACOBSON I.The unified modelinglanguage userguide[M].Addison-Wesley Reading Mass,1999.
[5]FERBER J,GUTKNECHT O.A meta-model for the analysis and design of organizations in multi-agent systems[M].In ICMAS’98.IEEE Press,1998.
[6]QUERREC R,BUCHE C,MAFFRE E,CHEVAILLIER P.Multiagents systems for virtual environment for training.application to fire-fighting[J].International Journal of Computers and Applications(IJCA),2004,1(1):25 -34.