云 超 李小民 鄭宗貴 陳乃澍
1.軍械工程學(xué)院無(wú)人機(jī)工程系,石家莊 050003 2.第二炮兵研究院,北京 100085 3.總裝備部南京軍代局駐濟(jì)南地區(qū)軍代室,濟(jì)南 250021
飛行仿真是以飛行器運(yùn)動(dòng)狀況為研究對(duì)象,它是按照飛行器的飛行動(dòng)力學(xué)、空氣動(dòng)力學(xué)以及飛行控制原理等相關(guān)理論建立數(shù)學(xué)模型,討論并推斷飛行器本身所具有的性質(zhì)及運(yùn)動(dòng)變化規(guī)律的一門(mén)綜合性學(xué)科[1]。多智能體(Multi-Agent)技術(shù)通常用于飛行編隊(duì)等動(dòng)力學(xué)特性復(fù)雜的系統(tǒng),無(wú)人機(jī)飛行仿真系統(tǒng)是一個(gè)復(fù)雜的大系統(tǒng),同時(shí),無(wú)人機(jī)系統(tǒng)本身又作為作戰(zhàn)系統(tǒng)的一個(gè)單元(面向作戰(zhàn)的單元系統(tǒng)。例如,實(shí)現(xiàn)偵察任務(wù)或攻擊任務(wù)的平臺(tái)單元),且無(wú)人機(jī)系統(tǒng)本身又包含多個(gè)子系統(tǒng),每個(gè)子系統(tǒng)又包含有若干模塊。因此,可以將多智能體仿真技術(shù)用于無(wú)人機(jī)飛行仿真系統(tǒng)的設(shè)計(jì)中,研究飛行仿真技術(shù)特點(diǎn)并結(jié)合其它領(lǐng)域最新研究成果,通過(guò)借鑒多智能體并結(jié)合面向?qū)ο蟮哪K化設(shè)計(jì)思想,可以為無(wú)人機(jī)飛行仿真技術(shù)的研究和飛行仿真系統(tǒng)的設(shè)計(jì)提供新的研究思路。
現(xiàn)階段飛行仿真領(lǐng)域的主流技術(shù)是采用面向?qū)ο?Object Oriented Simulation)的研究方法,而面向?qū)ο蠓抡媸腔诿嫦驅(qū)ο蠹夹g(shù)的一類仿真技術(shù),它采用面向?qū)ο蟮慕7椒ǎ凑J(rèn)為客觀世界是由各種相互作用的對(duì)象組成,這不僅符合人們的思維方式,同時(shí)又具備面向?qū)ο蠹夹g(shù)的抽象、封裝、繼承、多態(tài)等特點(diǎn),因而面向?qū)ο蠓抡婢哂懈鼉?yōu)良的模塊化、可重用性、可維護(hù)性和靈活性等優(yōu)點(diǎn)[2]。實(shí)際情況是一個(gè)系統(tǒng)中可能含有大量的且具有復(fù)雜特性的智能體,并且各個(gè)智能體之間含有多種多樣的耦合關(guān)系。針對(duì)仿真中有多個(gè)相互耦合關(guān)系的智能體模型模塊,以往的面向?qū)ο蟮募夹g(shù)并不能解決各個(gè)子系統(tǒng)在微觀層面的自治性和前瞻性,與傳統(tǒng)的仿真方法相比,面向Agent的仿真技術(shù)在建模的容易性、靈活性、繼承性和層次性等方面都具有顯著的優(yōu)勢(shì)。
對(duì)于無(wú)人機(jī)系統(tǒng)而言,它是一個(gè)非常復(fù)雜的系統(tǒng),飛行器除了按照指令調(diào)整飛行姿態(tài)外,還需要作為任務(wù)設(shè)備的承載平臺(tái)執(zhí)行相應(yīng)的任務(wù)。因此,將多智能體技術(shù)應(yīng)用于無(wú)人機(jī)飛行仿真領(lǐng)域,具有廣闊的前景,特別是飛行仿真系統(tǒng)中包含多個(gè)復(fù)雜特性子系統(tǒng),將無(wú)人機(jī)分成若干個(gè)子系統(tǒng),每個(gè)子系統(tǒng)又包含若干模塊,將每個(gè)模塊看成一個(gè)智能體,智能體與智能體之間存在相互的耦合關(guān)系(滿足一定的約束條件),每個(gè)智能體都能根據(jù)其它智能體(或外界環(huán)境)的變化而動(dòng)態(tài)的變化,它們之間還存在沖突,因此研究多智能體的有效仿真對(duì)飛行仿真系統(tǒng)的研究具有重要的意義。
現(xiàn)代仿真技術(shù)的發(fā)展使仿真技術(shù)擴(kuò)展到了系統(tǒng)建模、仿真建模和仿真實(shí)驗(yàn)等3項(xiàng)活動(dòng)。在應(yīng)用仿真技術(shù)確定模型方面,采用了面向?qū)ο蟮慕7椒ǎ瑢⒊橄蟮臄?shù)學(xué)描述為面向?qū)ο蟮母鼮樽匀坏谋硎鲂问剑灶悗?kù)為基礎(chǔ)實(shí)現(xiàn)了模型的拼合與重用;在建模方面,采用了模型與試驗(yàn)相分離技術(shù),即模型的數(shù)據(jù)驅(qū)動(dòng);在仿真試驗(yàn)方面,將仿真的運(yùn)行控制與試驗(yàn)框架區(qū)分開(kāi)來(lái),將輸出函數(shù)定義與仿真模型分離開(kāi)來(lái)[3]。Agent作為一門(mén)設(shè)計(jì)和開(kāi)發(fā)軟件系統(tǒng)的新方法得到了學(xué)術(shù)界的廣泛關(guān)注,Agent的中文定義為代理,但一般稱為“智能體”或“智能主體”。這個(gè)概念一出現(xiàn),在許多領(lǐng)域被套用,并從不同的研究領(lǐng)域和內(nèi)容出發(fā),給出了許多不盡相同的定義[4]。盡管Agent在很多領(lǐng)域(如計(jì)算機(jī)科學(xué)和人工智能)都有研究,但是到目前為止還沒(méi)有讓各領(lǐng)域都接受的確切定義。Agent的基本功能就是與外界環(huán)境交互,得到信息,對(duì)信息按照某種技術(shù)處理,然后作用于環(huán)境。
從面向?qū)ο蟮姆抡娴矫嫦蛑悄荏w的仿真是一次飛躍,對(duì)象是一種對(duì)事件、方法和屬性的封裝,而Agent則更近一步,它還封裝了思維能力與決策行為,從而體現(xiàn)了系統(tǒng)實(shí)體的自主性和實(shí)體與其它Agent的交互性。Agent的體系結(jié)構(gòu)是描述Agent從抽象規(guī)則到具體實(shí)現(xiàn)的過(guò)程,是功能系統(tǒng)中不同層次結(jié)構(gòu)的抽象描述,它們和系統(tǒng)不同的實(shí)現(xiàn)層次相對(duì)應(yīng)。這方面的工作包括:如何構(gòu)造系統(tǒng)以滿足理論專家所提出的各種特性,構(gòu)建什么軟硬件結(jié)構(gòu)比較合適,如何合理劃分Agent的目標(biāo)等。從建造 Agent的角度出發(fā),Agent的結(jié)構(gòu)通常分為認(rèn)知型Agent、反應(yīng)型Agent和混合型Agent[5]。
無(wú)人機(jī)系統(tǒng)通常可以分成3部分:地面系統(tǒng)、飛機(jī)系統(tǒng)和任務(wù)載荷。無(wú)人機(jī)系統(tǒng)結(jié)構(gòu)組成如圖1所示。

圖1 無(wú)人機(jī)系統(tǒng)結(jié)構(gòu)組成圖
地面系統(tǒng)包括:地面輔助設(shè)備、地面監(jiān)控分系統(tǒng)、起飛著陸系統(tǒng)地面部分、遙控遙測(cè)系統(tǒng)地面部分;飛機(jī)系統(tǒng)包括:飛行器平臺(tái)、推進(jìn)系統(tǒng)、飛控系統(tǒng)、導(dǎo)航系統(tǒng)、遙控遙測(cè)系統(tǒng)機(jī)載部分等;任務(wù)載荷部分是無(wú)人機(jī)攜帶的機(jī)載任務(wù)設(shè)備,主要完成特定的作戰(zhàn)任務(wù)。根據(jù)機(jī)載設(shè)備的不同它分為機(jī)載偵察設(shè)備或機(jī)載攻擊設(shè)備等,有些文獻(xiàn)將任務(wù)載荷歸入飛機(jī)系統(tǒng)中。
文中所研究的飛行仿真系統(tǒng)主要用于無(wú)人機(jī)地面飛控手的模擬訓(xùn)練。因此將機(jī)載任務(wù)設(shè)備列為一個(gè)單獨(dú)的系統(tǒng)模塊,它主要完成機(jī)載任務(wù)設(shè)備的有效仿真,即完成機(jī)載偵察設(shè)備或機(jī)載武器系統(tǒng)的仿真功能。
面向?qū)ο蠓抡婕夹g(shù)認(rèn)為客觀世界是由各種相互作用的對(duì)象組成,其描述問(wèn)題的問(wèn)題空間同解決問(wèn)題的方法空間在結(jié)構(gòu)上基本一致,使得對(duì)復(fù)雜系統(tǒng)的建模易于理解、易于擴(kuò)充、易于和人工智能相結(jié)合,較好地解決了模型的可靠性、準(zhǔn)確性和柔性等問(wèn)題。按照這種觀點(diǎn)并依據(jù)無(wú)人機(jī)飛機(jī)系統(tǒng)的實(shí)際構(gòu)成和各個(gè)部件的連接關(guān)系,將無(wú)人機(jī)的飛機(jī)系統(tǒng)劃分為一系列相互獨(dú)立的對(duì)象并建立各自對(duì)象的數(shù)學(xué)模型。根據(jù)無(wú)人機(jī)飛行仿真系統(tǒng)的設(shè)計(jì)要求,在面向?qū)ο蟮能浖O(shè)計(jì)理論基礎(chǔ)上,將多智能體系統(tǒng)(Multi-Agent System)與模塊化的面向?qū)ο筌浖O(shè)計(jì)思想結(jié)合起來(lái),提出了一種基于多智能體技術(shù)的無(wú)人機(jī)飛行仿真系統(tǒng)設(shè)計(jì)方案,該系統(tǒng)具有模塊化分層式的體系結(jié)構(gòu),從而實(shí)現(xiàn)飛行仿真系統(tǒng)的靈活性、適應(yīng)性和智能性。
3.2.1 系統(tǒng)總體框架結(jié)構(gòu)
整個(gè)系統(tǒng)分為3個(gè)子系統(tǒng):等效飛控計(jì)算機(jī)子系統(tǒng),任務(wù)控制執(zhí)行子系統(tǒng)和飛行動(dòng)態(tài)組合模型子系統(tǒng)。其總體結(jié)構(gòu)如圖2所示,其中每個(gè)子系統(tǒng)又由若干個(gè)Agent組成。

圖2 無(wú)人機(jī)飛行仿真系統(tǒng)總體結(jié)構(gòu)
1)等效飛控計(jì)算機(jī)子系統(tǒng)——可以看做整個(gè)仿真系統(tǒng)的“決策部分”,相當(dāng)于無(wú)人機(jī)系統(tǒng)的“大腦”部分,它是一個(gè)復(fù)雜的面向任務(wù)的求解與規(guī)劃模型,它能夠?qū)崿F(xiàn)飛控計(jì)算機(jī)的功能,即能夠?qū)崟r(shí)接收地面站遙控信息,根據(jù)無(wú)人機(jī)狀態(tài)、遙控指令和外界環(huán)境因素綜合制定無(wú)人機(jī)的飛行任務(wù)和機(jī)載設(shè)備工作任務(wù),它還能綜合無(wú)人機(jī)自身的狀態(tài)信息、地面指令和外界環(huán)境因素,不斷地修正決策方案。它具有全局的規(guī)劃能力,管理與指揮控制系統(tǒng)運(yùn)行的能力,它的智能程度是最高的。
2)任務(wù)控制執(zhí)行子系統(tǒng)——可以看做仿真系統(tǒng)的行為“執(zhí)行部分”,相當(dāng)于無(wú)人機(jī)系統(tǒng)的“執(zhí)行器官”部分,它是一個(gè)綜合的多Agent的協(xié)作模型,具有精確的控制性和良好的協(xié)作性,因?yàn)閷?duì)無(wú)人機(jī)的控制包含飛行器本身的姿態(tài)控制、飛行的航跡控制和機(jī)載任務(wù)設(shè)備的控制,它們之間不是獨(dú)立的,而是存在著耦合關(guān)系。
3)飛行動(dòng)態(tài)組合模型子系統(tǒng)——可以看作仿真系統(tǒng)的“運(yùn)行部分”,相當(dāng)于無(wú)人機(jī)系統(tǒng)的“飛行器機(jī)體部件”部分,它包含飛行器自身的物理部件或功能部件的仿真模型。它完成控制指令輸出并驅(qū)動(dòng)各個(gè)模塊模型按真實(shí)物理實(shí)體的工作流程工作,并且能有效協(xié)調(diào)組合模型中的各Agent按目標(biāo)協(xié)調(diào)一致運(yùn)行。
3.2.2 各子系統(tǒng)中Agent設(shè)計(jì)
按照功能劃分的各子系統(tǒng)中不同的Agent通過(guò)相互協(xié)作共同完成任務(wù),從而達(dá)到子系統(tǒng)功能的目標(biāo)。
(1)等效飛控計(jì)算機(jī)子系統(tǒng)
它主要包括4個(gè)Agent:遙控指令接收Agent、遙測(cè)信息發(fā)送Agent、任務(wù)規(guī)劃與資源分配Agent和飛行管理Agent。其中等效飛控計(jì)算機(jī)子系統(tǒng)具有高度的自治性,它所包含的Agent在結(jié)構(gòu)上采用認(rèn)知型或混合型,并結(jié)合相應(yīng)的算法進(jìn)行分析與設(shè)計(jì)。等效飛控計(jì)算機(jī)子系統(tǒng)結(jié)構(gòu)如圖3所示。

圖3 等效飛控計(jì)算機(jī)子系統(tǒng)結(jié)構(gòu)圖
1)遙控指令接收Agent
通過(guò)遙控解碼算法將地面站的控制命令(飛行控制命令或任務(wù)控制命令)變換成指令,經(jīng)過(guò)一系列變換將指令解碼即可得到開(kāi)關(guān)指令信號(hào)或連續(xù)指令信號(hào),再將這些信號(hào)送到無(wú)人機(jī)駕駛儀或任務(wù)執(zhí)行機(jī)構(gòu),控制飛機(jī)的飛行姿態(tài)或任務(wù)設(shè)備的工作狀態(tài)。
2)遙測(cè)信息發(fā)送Agent
利用無(wú)人機(jī)上的各種傳感器或變換器,將采集到的多路信息(包括無(wú)人機(jī)自身運(yùn)動(dòng)參數(shù)和任務(wù)設(shè)備的狀態(tài)參數(shù)等)按照遙測(cè)信息的格式編碼發(fā)送到無(wú)人機(jī)地面控制站,地面站可以通過(guò)遙測(cè)信息顯示飛機(jī)的狀態(tài)參數(shù)以及機(jī)載任務(wù)設(shè)備的信息數(shù)據(jù)。
3)任務(wù)規(guī)劃與資源分配Agent
任務(wù)規(guī)劃根據(jù)飛行使命建立全局任務(wù),分析需要執(zhí)行的目標(biāo)任務(wù),確定每個(gè)任務(wù)點(diǎn)的位置,進(jìn)行任務(wù)規(guī)劃,生成任務(wù)隊(duì)列,然后根據(jù)規(guī)劃航線和相關(guān)信息的融合結(jié)果,從任務(wù)隊(duì)列中提取任務(wù)信息,并結(jié)合航跡規(guī)劃等算法對(duì)無(wú)人機(jī)進(jìn)行全局航跡規(guī)劃,在無(wú)人機(jī)起飛后,隨時(shí)感知周圍環(huán)境威脅、態(tài)勢(shì)信息及其他Agent的請(qǐng)求;資源分配管理整個(gè)系統(tǒng)所有的資源,包括軟件資源和硬件資源。整個(gè)Agent系統(tǒng)處在一個(gè)動(dòng)態(tài)環(huán)境中,它們相互協(xié)作、并行運(yùn)行,這部分能夠有效地調(diào)度系統(tǒng)的任務(wù),為每個(gè)Agent合理分配資源,最大限度的利用資源,進(jìn)而消除軟硬件之間的沖突。
4)飛行管理Agent
飛行管理是一個(gè)復(fù)雜的Agent,它負(fù)責(zé)無(wú)人機(jī)戰(zhàn)術(shù)任務(wù)綜合的管理,飛行數(shù)據(jù)管理可以完成飛行控制領(lǐng)域的專家知識(shí)、系統(tǒng)性能的管理等。
(2)任務(wù)控制執(zhí)行子系統(tǒng)
它主要包括3個(gè)Agent:飛行航跡跟蹤Agent、飛行姿態(tài)控制 Agent和自主導(dǎo)航Agent,其結(jié)構(gòu)實(shí)現(xiàn)如圖4所示。它們通過(guò)驅(qū)動(dòng)無(wú)人機(jī)的舵面進(jìn)而控制飛機(jī)的飛行姿態(tài)。它還具有多Agent系統(tǒng)一般特性,即相互協(xié)調(diào)、合作,能夠?qū)崿F(xiàn)任務(wù)決策指導(dǎo)下無(wú)人機(jī)的飛行控制。

圖4 控制執(zhí)行子系統(tǒng)結(jié)構(gòu)圖
1)飛行航跡跟蹤Agent是一個(gè)基于控制器的反應(yīng)Agent,它內(nèi)部集成了航跡跟蹤控制算法,能夠?qū)⒑桔E指令解算成姿態(tài)控制指令和推力(發(fā)動(dòng)機(jī)油門(mén)推力)的大小,與姿態(tài)控制Agent協(xié)同配合,控制無(wú)人機(jī)跟蹤設(shè)定的航跡。
2)飛行姿態(tài)控制Agent是一個(gè)基于控制器的反應(yīng)型Agent,內(nèi)部集成有姿態(tài)控制算法,它能夠?qū)崟r(shí)生成控制舵面的偏轉(zhuǎn)指令,從而控制無(wú)人機(jī)的飛行姿態(tài)。
3)自主導(dǎo)航Agent是一個(gè)基于控制器的反應(yīng)型Agent,它能夠根據(jù)GPS和慣導(dǎo)信息獲得無(wú)人機(jī)當(dāng)前位置坐標(biāo),測(cè)量當(dāng)前飛行航跡的位置誤差,解算出航跡控制指令,與航跡跟蹤 Agent、姿態(tài)控制 Agent協(xié)同配合,引導(dǎo)無(wú)人機(jī)在預(yù)先設(shè)定的航跡上飛行。
無(wú)人機(jī)在飛行過(guò)程中飛行姿態(tài)控制和航跡控制是相互影響的,還應(yīng)當(dāng)考慮一組協(xié)調(diào)機(jī)制使它們相互協(xié)同配合,從而實(shí)現(xiàn)無(wú)人機(jī)的飛行控制。
(3)飛行動(dòng)態(tài)組合模型子系統(tǒng)
它主要包括4個(gè)Agent:飛行模式切換Agent、環(huán)境感知模塊Agent、飛行器任務(wù)模塊Agent和機(jī)動(dòng)決策模塊Agent。主要完成各個(gè)Agent獨(dú)立運(yùn)行并協(xié)調(diào)的各個(gè)Agent組合運(yùn)行,其關(guān)鍵是協(xié)調(diào)組織飛行器動(dòng)力學(xué)方程模塊和機(jī)載任務(wù)設(shè)備模塊2部分Agent的有序協(xié)調(diào)的工作。飛行動(dòng)態(tài)組合模型子系統(tǒng)結(jié)構(gòu)如圖5所示。

圖5 飛行動(dòng)態(tài)組合模型子系統(tǒng)結(jié)構(gòu)圖
1)飛行模式切換Agent
首先接受操作人員的指令來(lái)選擇運(yùn)行方式,無(wú)人機(jī)飛行操控運(yùn)行方式有3種:遙控方式、程控方式和自主飛行控制方式。當(dāng)選擇為自主飛行控制方式時(shí),無(wú)人機(jī)在當(dāng)前狀態(tài)下不受人員控制,而進(jìn)入自主執(zhí)行任務(wù)的狀態(tài),從而能夠根據(jù)當(dāng)前的環(huán)境信息,自主選擇起飛、回收、機(jī)動(dòng)和應(yīng)急等飛行模式。
2)環(huán)境感知Agent
環(huán)境感知Agent主要是利用機(jī)載傳感器及我方的偵察通信系統(tǒng)實(shí)時(shí)探測(cè)敵方區(qū)域的各種信息,包括來(lái)自雷達(dá)、數(shù)據(jù)鏈、GPS導(dǎo)航信息、視覺(jué)傳感器信息等,在大量的不確定信息中提取需要的信息并分配給其它Agent。
3)飛行器任務(wù)模塊Agent
飛行器任務(wù)模塊Agent主要包含飛行器動(dòng)力學(xué)方程模塊和機(jī)載任務(wù)設(shè)備模塊2部分。飛行器動(dòng)力學(xué)方程模塊是系統(tǒng)的核心部分,它主要計(jì)算飛行軌跡參數(shù),為系統(tǒng)提供飛機(jī)的姿態(tài)參數(shù),在該模塊中,它首先綜合飛機(jī)所受到的各種力和力矩,計(jì)算機(jī)體軸上的線加速度和角加速度,然后應(yīng)用積分產(chǎn)生飛機(jī)的合成速度。機(jī)載任務(wù)設(shè)備模塊主要完成機(jī)載任務(wù)設(shè)備高逼真控制與工作流程的模擬。對(duì)飛機(jī)姿態(tài)的控制和機(jī)載任務(wù)設(shè)備的控制并不是獨(dú)立的,它們之間也存在耦合的關(guān)系。
(4)機(jī)動(dòng)決策Agent
考慮到無(wú)人機(jī)今后的編隊(duì)飛行,系統(tǒng)還加入了機(jī)動(dòng)決策Agent,它能夠在無(wú)人機(jī)飛向目標(biāo)的過(guò)程中,分析實(shí)時(shí)的威脅數(shù)據(jù),獲取敵方火力威脅、位置威脅、地形威脅等信息,從機(jī)動(dòng)動(dòng)作數(shù)據(jù)庫(kù)中選擇相應(yīng)的機(jī)動(dòng)動(dòng)作,進(jìn)而能夠迅速躲避威脅,或者直接將雷達(dá)或視覺(jué)傳感器的信息傳給機(jī)載任務(wù)設(shè)備,在準(zhǔn)確識(shí)別敵我后,迅速鎖定目標(biāo),高效自主的完成偵察或攻擊等任務(wù)。
無(wú)人機(jī)多Agent系統(tǒng)在進(jìn)行分布仿真時(shí),如何實(shí)現(xiàn)多個(gè)Agent彼此間的通信協(xié)作是多Agent仿真系統(tǒng)高效運(yùn)行的重要問(wèn)題。理性與完善的交互機(jī)制是多Agent系統(tǒng)之間進(jìn)行協(xié)調(diào)、協(xié)作和協(xié)商的基礎(chǔ)。因此各Agent間的通信是多Agent系統(tǒng)中最基本的問(wèn)題。目前多Agent系統(tǒng)的通信模式(Agent的通信語(yǔ)言)一般有2種:分別為KQML和FIPA-ACL。但基于KQML等語(yǔ)言需要二次翻譯后才能識(shí)別,這種通信方法在異構(gòu)的Agent之間沒(méi)有統(tǒng)一的運(yùn)行機(jī)制[6]。
本文主要研究的是基于訓(xùn)練的飛行仿真系統(tǒng),主要是面向PC機(jī)單機(jī)運(yùn)行的模擬訓(xùn)練系統(tǒng),所以采用了Windows操作系統(tǒng)的仿真軟件形式。因此,本文設(shè)計(jì)的無(wú)人機(jī)多Agent飛行仿真系統(tǒng)主要是實(shí)現(xiàn)Windows系統(tǒng)下的數(shù)據(jù)的實(shí)時(shí)通信。主要包括進(jìn)程間的數(shù)據(jù)通信和進(jìn)程內(nèi)數(shù)據(jù)通信。進(jìn)程間的數(shù)據(jù)通信采用共享內(nèi)存池的方式,而進(jìn)程內(nèi)的通信主要通過(guò)線程同步實(shí)現(xiàn)。通過(guò)共享內(nèi)存池和線程同步可以實(shí)現(xiàn)實(shí)時(shí)、高效的通信[7]。根據(jù)整個(gè)飛行仿真系統(tǒng)的數(shù)據(jù)機(jī)制,各子系統(tǒng)中Agent的工作流程如下:1)初始化類的構(gòu)造函數(shù),完成Agent的注冊(cè)、訂購(gòu)和信息公布;2)Agent監(jiān)測(cè)線程并開(kāi)始消息進(jìn)程的工作;3)發(fā)生訂購(gòu)信息后,觀察線程從運(yùn)行環(huán)境取回?cái)?shù)據(jù)并激活消息線程,消息線程彈出消息的同時(shí)調(diào)用消息回調(diào)函數(shù),其流程如圖6所示。各個(gè)子Agent在初始化完成后生成各自的觀察線程并開(kāi)始工作。

圖6 各子系統(tǒng)的Agent數(shù)據(jù)活動(dòng)流程圖
可以設(shè)計(jì)無(wú)人機(jī)各子系統(tǒng)的Agent類模板。它的主要成員包含父環(huán)境名、環(huán)境節(jié)點(diǎn)名和Agent 名,成員函數(shù)包括:初始化、訂購(gòu)、簡(jiǎn)單消息回調(diào)函數(shù)和復(fù)雜消息回調(diào)函數(shù)。Agent的觀察和消息線程的管理工作由運(yùn)行環(huán)境實(shí)現(xiàn)。在開(kāi)發(fā)各個(gè)子系統(tǒng)Agent時(shí)只需實(shí)現(xiàn)模板中的成員函數(shù)即可。
針對(duì)無(wú)人機(jī)飛行仿真系統(tǒng)中各子系統(tǒng)Agent的類別層次不同,它們之間的協(xié)調(diào)行為需要根據(jù)它們的層次等級(jí)來(lái)分析:對(duì)于不同級(jí)別的Agent,上級(jí) Agent 與下級(jí) Agent 進(jìn)行協(xié)調(diào)時(shí),采用的是命令,而下級(jí) Agent 必須強(qiáng)制執(zhí)行上級(jí)的命令,然后把執(zhí)行結(jié)果返回給上級(jí)Agent;同一級(jí)別的 Agent之間進(jìn)行協(xié)調(diào)時(shí),采用的是建議,對(duì)方可以對(duì)這個(gè)建議進(jìn)行評(píng)估,然后根據(jù)自己的實(shí)際情況選擇接受或是拒絕這個(gè)建議[8]。
基于多Agent的無(wú)人機(jī)飛行仿真系統(tǒng)中,將復(fù)雜仿真系統(tǒng)的功能轉(zhuǎn)化為多個(gè)自治Agent的協(xié)調(diào)運(yùn)行,一方面避免了建造一個(gè)龐大的知識(shí)系統(tǒng),簡(jiǎn)化了系統(tǒng)的設(shè)計(jì),此外由于各個(gè)子系統(tǒng)的相對(duì)獨(dú)立性,在實(shí)現(xiàn)局部仿真運(yùn)行的同時(shí),有可能發(fā)生沖突,必須協(xié)調(diào)各個(gè)Agent的決策、化解沖突,使各個(gè)獨(dú)立的Agent向全局統(tǒng)一運(yùn)行的方向發(fā)展,進(jìn)而實(shí)現(xiàn)飛行仿真系統(tǒng)的整體功能。
多Agent技術(shù)是計(jì)算機(jī)科學(xué)、人工智能等學(xué)科不斷發(fā)展交叉產(chǎn)生的新的研究方向,具有廣闊的應(yīng)用前景。構(gòu)建合理的Agent既能降低系統(tǒng)的復(fù)雜性,還能有效地提高仿真效率。基于多Agent分層模塊化思想建立的無(wú)人機(jī)飛行仿真系統(tǒng),不僅能滿足仿真系統(tǒng)的自主性、實(shí)時(shí)相應(yīng)性和信息分布性等要求,還能最大化提供功能可拓展性,降低系統(tǒng)仿真的復(fù)雜性并能提高求解的效率。與傳統(tǒng)形式飛行仿真系統(tǒng)軟件的開(kāi)發(fā)方式相比,基于多Agent飛行仿真系統(tǒng)能夠?qū)崿F(xiàn)相當(dāng)程度的自治性和智能化,并且在系統(tǒng)開(kāi)放性和模塊化方面也具有很大潛力。
本文結(jié)合面向?qū)ο笏枷牒投郃gent技術(shù)對(duì)無(wú)人機(jī)系統(tǒng)各個(gè)子系統(tǒng)對(duì)象進(jìn)行精確建模,將整個(gè)飛行仿真系統(tǒng)劃分為3個(gè)子系統(tǒng)的框架結(jié)構(gòu):等效飛控計(jì)算機(jī)子系統(tǒng)、飛行動(dòng)態(tài)組合模型子系統(tǒng)和任務(wù)控制執(zhí)行子系統(tǒng),其中每個(gè)子系統(tǒng)又包含若干個(gè)Agent,然后將這些Agent有機(jī)地組織起來(lái),力求使系統(tǒng)具有在線感知、任務(wù)決策和控制執(zhí)行能力。最后,初步討論了各Agent之間的通信、協(xié)調(diào)問(wèn)題。
參 考 文 獻(xiàn)
[1] 王行仁,賈榮珍,等.飛行實(shí)時(shí)仿真系統(tǒng)及技術(shù)[M].北京:北京航空航天大學(xué)出版社,1998.
[2] 張鐳.飛行模擬器飛行仿真系統(tǒng)建模與軟件實(shí)現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2009.
[3] 康鳳舉,謝攀.智能仿真在軍用UUV裝備體系研究中的應(yīng)用[J].魚(yú)雷技術(shù),2011,19(2):151-155.(Kang fengju, Xie pan.Application of Intelligence Simulation in Military UUV Equipment System Research [J].Torpedo Technology,2011,19(2): 151- 155.)
[4] 陳玲.基于Agent的海上航空器搜救模擬建模技術(shù)[D].大連:大連海事大學(xué),2008.
[5] Wooldridge M.An Introduction to Multi-Agent Systems[M].John Wiley & Sons, Inc, 2001.
[6] Frank Fang, Elaine Reed, David K Dickason, James Simien.Technology Review of Multi-Agent Systems and Tools [R].Washington, USA: Bureau of Naval Personnel, 2005.
[7] 盧正鼎, 霍曉麗.基于Agent技術(shù)的智能軟件協(xié)同開(kāi)發(fā)研究[J].計(jì)算機(jī)科學(xué),2007, 34(3): 208-210.(Lu Zhengding, Huo Xiaoli.Study on the Coorperation Intelligent Software Development Based on Agent Components[J].Computer Science,2007,34(3): 208- 210.)
[8] 薛霄.面向Agent的軟件設(shè)計(jì)開(kāi)發(fā)方法[M].北京:電子工業(yè)出版社,2009.