国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ActiveX的多Agent自主運(yùn)行仿真系統(tǒng)*

2012-09-05 10:44:20軍,李
關(guān)鍵詞:控件消息對象

顏 軍,李 勇

(1.北京控制工程研究所,北京100190;2.中國空間技術(shù)研究院,北京100094)

基于ActiveX的多Agent自主運(yùn)行仿真系統(tǒng)*

顏 軍1,李 勇2

(1.北京控制工程研究所,北京100190;2.中國空間技術(shù)研究院,北京100094)

針對面向分布式航天器系統(tǒng)應(yīng)用的多Agent自主運(yùn)行系統(tǒng)仿真的需求,設(shè)計了分布式的自主運(yùn)行仿真系統(tǒng)AgSimu.提出了以ActiveX組件來實(shí)現(xiàn)各種類型Agent的方法,以ActiveX容器應(yīng)用程序?qū)崿F(xiàn)Agent容器,完成對Agent的建模、配置、管理和通信,可以方便地構(gòu)建不同結(jié)構(gòu)的分布式多Agent組織,仿真它們的交互與協(xié)同工作.通過在Matlab/Simulink的S函數(shù)中使用ActiveX控件,實(shí)現(xiàn)了多Agent仿真系統(tǒng)與Simulink中的對象模型進(jìn)行交互,從而可以實(shí)現(xiàn)多Agent自主運(yùn)行系統(tǒng)的閉環(huán)控制仿真.

自主運(yùn)行系統(tǒng);MAS;仿真系統(tǒng);ActiveX

隨著航天應(yīng)用領(lǐng)域的不斷擴(kuò)展和對應(yīng)用系統(tǒng)要求的提高,由多顆結(jié)構(gòu)功能相對簡單的衛(wèi)星構(gòu)成的分布式衛(wèi)星系統(tǒng)(DSS,distributed satellite systems)得到了廣泛應(yīng)用.分離模塊航天器[1]將這種分布特性擴(kuò)展到衛(wèi)星模塊,突出特點(diǎn)是多個模塊航天器的異構(gòu)及靈活組織.DSS系統(tǒng)要解決多星之間的協(xié)調(diào)配合問題,多顆衛(wèi)星要保持一定的相互空間位置,避免碰撞,在此基礎(chǔ)上協(xié)同完成工作任務(wù),這就需要實(shí)時地對編隊進(jìn)行控制.這樣復(fù)雜的航天任務(wù)對分布的、交互的自主控制提出了迫切的要求,而多Agent技術(shù)正是符合這樣特點(diǎn)的解決方案.

多Agent系統(tǒng)(MAS,multi-agent system)是由多個相互作用的Agent構(gòu)成并能夠共同完成一定任務(wù)的系統(tǒng).多Agent技術(shù)的核心特點(diǎn)是分布、自主以及交互.通過Agent的分散決策,來形成一個對復(fù)雜系統(tǒng)的解,完成單個Agent所不能完成的工作.

將Agent技術(shù)應(yīng)用DSS,需要建立與此相適應(yīng)的多Agent仿真系統(tǒng),要體現(xiàn)多Agent系統(tǒng)方便構(gòu)建、靈活組織、分布計算及協(xié)同工作的特點(diǎn).

相關(guān)的多Agent系統(tǒng)及仿真研究工作,通用的多Agent仿真平臺有Swarm、RePast等[2],主要應(yīng)用在社會學(xué)領(lǐng)域,模擬個體與群體及環(huán)境間的交互作用及發(fā)展過程.面向航天自主運(yùn)行的相關(guān)研究有美國的Object Agent(OA)系統(tǒng)[3],實(shí)現(xiàn)了多Agent的靈活組織,由稱為“郵局”(Post Office)的模塊來負(fù)責(zé)Agent的注冊管理,提供Agent之間的消息通信,該系統(tǒng)的Agent是具有特定功能的軟件,沒有規(guī)劃調(diào)度的能力.ASPEN[4]是一個主要面向航天規(guī)劃調(diào)度的軟件系統(tǒng)平臺,可以進(jìn)行規(guī)劃問題的定義和不同規(guī)劃算法的研究,由于其不是基于多Agent的,因而不具備Agent的分布交互、靈活組織的特點(diǎn).國內(nèi)針對編隊衛(wèi)星場景搭建的仿真系統(tǒng)[5],通過多臺分布式的計算機(jī)對多星進(jìn)行仿真,通過網(wǎng)絡(luò)進(jìn)行通信,實(shí)現(xiàn)了分布式的仿真,但針對的是相對特定的場景,不解決規(guī)劃調(diào)度問題.其他一些多Agent系統(tǒng),其Agent功能及相互間的組織是固定的,Agent起到的是具有一定交互能力的功能模塊的作用.

1 面向航天的多Agent自主運(yùn)行系統(tǒng)及其仿真需求

Agent是軟件實(shí)體,具有輸入和輸出,能夠與所處環(huán)境進(jìn)行交互作用,與其他Agent進(jìn)行通信.與一般軟件的主要區(qū)別在于Agent的主動性和自主性,每個Agent可以主動感知周圍的環(huán)境,根據(jù)自己的知識、經(jīng)驗(yàn)、利益來決定對外界環(huán)境的反應(yīng),并主動和其他Agent進(jìn)行溝通,影響其他Agent的行為.單個Agent的結(jié)構(gòu)可以十分靈活,一般包括感知輸入模塊、輸出模塊、通信模塊、知識維護(hù)模塊、數(shù)據(jù)及線程管理模塊、運(yùn)算決策模塊等.

面向航天的多Agent自主運(yùn)行系統(tǒng),是以多A-gent技術(shù)實(shí)現(xiàn)單個航天器內(nèi)部子系統(tǒng)及多個航天器之間的協(xié)同規(guī)劃和優(yōu)化,在現(xiàn)有的各子系統(tǒng)的軟件硬件的基礎(chǔ)之上,實(shí)時自主地根據(jù)系統(tǒng)狀態(tài)解決時間和資源約束條件下的規(guī)劃調(diào)度問題,向各子系統(tǒng)提供指令、參數(shù)設(shè)定值,以減輕地面運(yùn)行人員的負(fù)擔(dān),提高系統(tǒng)的實(shí)時響應(yīng)能力.

多Agent自主運(yùn)行系統(tǒng)由多個規(guī)劃Agent為骨干構(gòu)成,規(guī)劃Agent組織可以分為多層,例如編隊級、星級、子系統(tǒng)級規(guī)劃Agent.子系統(tǒng)級規(guī)劃Agent與相應(yīng)的控制子系統(tǒng)的關(guān)系是規(guī)劃Agent建立子系統(tǒng)的規(guī)劃模型,主要是時間、資源約束關(guān)系,以及與其他子系統(tǒng)間的約束關(guān)系,根據(jù)任務(wù)要求規(guī)劃得出控制子系統(tǒng)在特定時間段的控制方案,通過接口A-gent將控制方案輸出給控制子系統(tǒng)來執(zhí)行.

為了方便對多Agent自主運(yùn)行系統(tǒng)的研究,仿真系統(tǒng)借鑒常用的仿真軟件Matlab/Simulink,一是要象Simulink那樣可以方便靈活地對模型系統(tǒng)進(jìn)行構(gòu)建和配置,二是要能夠與Simulink交互協(xié)同地工作,以利用其豐富的模型資源和仿真計算資源.

具體而言多Agent自主運(yùn)行仿真系統(tǒng)的需求如下:在W indows平臺上進(jìn)行開發(fā),有良好的人機(jī)界面;Agent要模塊化,具備通用性,方便驗(yàn)證和升級; Agent可以方便地進(jìn)行配置,多Agent系統(tǒng)可以靈活地配置和組織,可在運(yùn)行中不斷演化;Agent之間可以進(jìn)行消息通信,實(shí)現(xiàn)交互與協(xié)調(diào);多個Agent之間可以并行計算;仿真系統(tǒng)可以在不同的計算機(jī)上分布存在,通過網(wǎng)絡(luò)通信進(jìn)行連接;多Agent系統(tǒng)可以進(jìn)行包括規(guī)劃調(diào)度在內(nèi)的協(xié)同工作;方便與其他系統(tǒng)進(jìn)行接口,可與對象模型相連接,實(shí)現(xiàn)協(xié)同的仿真;面向應(yīng)用,易于向真實(shí)系統(tǒng)轉(zhuǎn)化.

2 多Agent自主運(yùn)行仿真系統(tǒng)的設(shè)計

多Agent仿真系統(tǒng)AgSimu分為Agent容器程序和Agent軟件模塊兩級結(jié)構(gòu),Agent容器程序稱為ApCont(簡稱Ct),Agent軟件模塊稱為Ag.

ApCont為Ag提供運(yùn)行的環(huán)境,ApCont與Ag的關(guān)系類似于Sim link對象模型與各種模型模塊之間的關(guān)系.ApCont提供可用的Ag類型,可以向Ap-Cont中添加Ag實(shí)例,并對這些Ag進(jìn)行配置.包含了具有特定配置的多個Ag的一個ApCont實(shí)例成為一個對象模型,用來仿真一個“個體對象”,個體對象對應(yīng)實(shí)際系統(tǒng)中一個相對獨(dú)立的子系統(tǒng),比如多星編隊中的一顆衛(wèi)星.ApCont以配置文件的形式保存?zhèn)€體對象的組成及配置,可以方便地建立、修改和重建各種對象模型.

AgSimu可同時運(yùn)行多個ApCont,每個ApCont包含多個Ag.ApCont是獨(dú)立的軟件程序,可以并行運(yùn)行,Ag是ApCont中的獨(dú)立線程,彼此間也可以并行執(zhí)行.Ag之間的交互通過消息經(jīng)由ApCont來實(shí)現(xiàn),消息的地址由ApCont的標(biāo)識ID和Ag的標(biāo)識ID這兩級ID構(gòu)成.

Ag有多種類型,AgCmnd負(fù)責(zé)接收和發(fā)送任務(wù)命令,AgPlan負(fù)責(zé)規(guī)劃,AgComm負(fù)責(zé)不同ApCont之間的通信及網(wǎng)絡(luò)結(jié)構(gòu)維護(hù).接口Ag負(fù)責(zé)與實(shí)際執(zhí)行系統(tǒng)或仿真對象進(jìn)行接口,輸出執(zhí)行指令,反饋系統(tǒng)狀態(tài),可以使系統(tǒng)與不同接口的系統(tǒng)共同工作.運(yùn)算Ag將一些專業(yè)運(yùn)算封裝起來,以函數(shù)調(diào)用的方式提供給其他Ag,運(yùn)算結(jié)果實(shí)時返回.專家Ag提供特定的專家系統(tǒng),比如特定問題的規(guī)劃、探測數(shù)據(jù)的處理等.

各類Ag有通用屬性,不同類型的Ag也有各自的專用屬性,復(fù)雜的配置通過配置文件來實(shí)現(xiàn),Ag可以通過知識文件來獲取特定的領(lǐng)域知識.通過配置屬性、配置文件、知識文件可以使Ag最大程度的具有通用性和靈活性.

系統(tǒng)為Ag定義角色,以便表明Ag之間的關(guān)系.每個Ag可以為與其發(fā)生交互的其他Ag定義角色,各種交互關(guān)系都定義在角色的基礎(chǔ)之上,而通過調(diào)整角色與實(shí)際Ag的對應(yīng)關(guān)系,就可以很方便地調(diào)整Ag之間的交互關(guān)系.

構(gòu)成系統(tǒng)的多個ApCont間建立一個樹形的網(wǎng)絡(luò),每個ApCont是一個節(jié)點(diǎn),加入系統(tǒng)的ApCont指定其父節(jié)點(diǎn)和一個備用父節(jié)點(diǎn),從而加入系統(tǒng)網(wǎng)絡(luò),其父節(jié)點(diǎn)將其加入子節(jié)點(diǎn)列表.系統(tǒng)網(wǎng)絡(luò)自身不斷進(jìn)行檢查和更新,可以不斷地有新節(jié)點(diǎn)加入,而沒有響應(yīng)的節(jié)點(diǎn)被從網(wǎng)絡(luò)中刪除.被刪除的節(jié)點(diǎn)的子節(jié)點(diǎn)連接到備用父節(jié)點(diǎn)上,并建立新的備用父節(jié)點(diǎn).

3 多Agent自主運(yùn)行仿真系統(tǒng)的實(shí)現(xiàn)

在Agent之間要實(shí)現(xiàn)消息通信和網(wǎng)絡(luò)通信,用良好的人機(jī)界面實(shí)現(xiàn)配置和組織,建立與其他系統(tǒng)的接口,適合采用C++語言,這里使用Micorsoft Visual C++(VC)來開發(fā)仿真系統(tǒng)AgSimu.

基于“組件”的軟件開發(fā)技術(shù)可以實(shí)現(xiàn)模塊靈活組織和配置.組件是具有一定功能、相對完整獨(dú)立、具有標(biāo)準(zhǔn)接口的編譯好的軟件模塊.每個組件可以用不同語言開發(fā),單獨(dú)升級和更新,開發(fā)者只要知道組件的公開接口就可以使用組件進(jìn)行開發(fā).多個具有不同功能的組件可以根據(jù)需要組合在一起,通過簡單的編程就可以生成一個應(yīng)用程序,完成特定的功能.組件對象模型(COM,component object model)技術(shù)是Microsoft等在W indows平臺上推出的基于組件的技術(shù).

ActiveX控件是COM中較早推出,比較成熟方便的一種.ActiveX控件以ocx文件形式存在,可以被稱為“容器”(container)的應(yīng)用程序作為組件來使用.要使用ActiveX控件,需要使用控件注冊程序在W indows注冊表中對ActiveX控件進(jìn)行注冊,容器程序可以通過注冊表來查找和使用ActiveX控件.ActiveX控件更新時,使用新的ocx文件替代原有的文件,容器程序不需做改動.在容器程序中,ActiveX控件是一個單獨(dú)的窗口,有用戶界面接口,有獨(dú)立的線程,可以和其他ActiveX控件并行執(zhí)行.ActiveX控件可以提供用戶交互、顯示、收發(fā)消息、網(wǎng)絡(luò)通信、讀寫文件等大部分應(yīng)用程序的功能.

AgSimu使用ActiveX控件來實(shí)現(xiàn)各種類型的Ag,用單文檔應(yīng)用程序?qū)崿F(xiàn)容器程序ApCont.每一個ApCont程序?qū)嵗⒁粋€“個體”的對象模型,包含多個Ag,多個交互的ApCont構(gòu)成了多Agent系統(tǒng).

ApCont提供Ag類型菜單來實(shí)現(xiàn)向?qū)ο竽P椭刑砑覣g,Ag菜單中包含可用的Ag類型,這些Ag類型是從ApCont的初始化文件*.ini中獲取的.ini文件記錄了Ag類型菜單項與ActiveX控件的ID之間的對應(yīng)關(guān)系,這些ActiveX控件已經(jīng)在注冊表中進(jìn)行了注冊,通過其ID即可找到并使用.增加新類型的Ag時,只要將其ocx文件進(jìn)行注冊,并在ini文件中添加相應(yīng)的項即可.ini文件的路徑可以設(shè)置,通過ApCont的初始化文件及ActiveX控件的注冊、更新,可以靈活地實(shí)現(xiàn)Ag類型的管理.

Ag被添加到對象模型中之后,每個Ag有自己的圖標(biāo),可以顯示Ag的信息和狀態(tài).Ag做為ActiveX控件可以處理Windows消息、響應(yīng)鼠標(biāo)操作、進(jìn)行相互間的消息傳遞.使用鼠標(biāo)點(diǎn)擊Ag圖標(biāo),可以彈出菜單或?qū)υ捒?仿真命令菜單包含“運(yùn)行”、“暫?!钡确抡婷睿刂茊蝹€Ag的工作狀態(tài);配置屬性對話框?qū)g進(jìn)行配置和操作,比如設(shè)定各種屬性或指定配置文件、指定知識文件的路徑和名稱等;狀態(tài)對話框顯示Ag運(yùn)行的數(shù)據(jù),如狀態(tài)和各參數(shù)的數(shù)值,以及接收和發(fā)送的消息等,可以做為 Ag運(yùn)行的監(jiān)視窗口,方便仿真試驗(yàn)過程中的觀察及記錄.圖1是ApCont的界面,左上部是兩個Ag圖標(biāo),圖標(biāo)上部的文字表示 Ag的類型,下部的文字顯示Ag的名字ID,右上部是Ag的通用屬性對話框,左下部是Ag的運(yùn)行狀態(tài)對話框,對話框的上部和下部分別是輸入和輸出的消息記錄,中部顯示Ag的狀態(tài)參數(shù).ApCont中的對象模型建立之后,可以使用ApCont菜單中的“運(yùn)行”、“執(zhí)行一步”、“暫?!?、“停止”等選項進(jìn)行仿真.

圖1 ApCont的用戶界面Fig.1 User interface of ApCont

Ag的配置文件和知識文件是使用統(tǒng)一語法描述的普通的文本文件,可以單獨(dú)更新.AgSimu定義了類似C++語言語法的知識描述語言(AKDL,agent know ledge description language),采用“基于約束”的描述方法.通過預(yù)定義的類和函數(shù)來實(shí)現(xiàn)配置屬性定義、各種對象定義、約束關(guān)系的定義.通過Ag的知識處理模塊,在Ag初始化的時候?qū)⑴渲眉爸R文件的內(nèi)容加載到Ag的數(shù)據(jù)庫中,可以完成Ag的快速配置.

為了實(shí)現(xiàn)對Ag的管理,ApCont維護(hù)一個對象模型中Ag的數(shù)據(jù)列表,包含每個Ag的配置屬性、配置文件及知識文件路徑等數(shù)據(jù).當(dāng)Ag的屬性設(shè)置發(fā)生變化時,Ag向ApCont發(fā)送消息,ApCont更新Ag列表.ApCont維護(hù)的Ag的數(shù)據(jù)以及ApCont自身的配置信息在ApCont的配置文件*.ctc的中加以保存.當(dāng)ApCont打開一個ctc文件時,將建立對象模型中的各個Ag,并將各個Ag的配置屬性發(fā)送給Ag,Ag據(jù)此設(shè)置屬性值,并根據(jù)知識文件路徑加載知識,這樣構(gòu)成多Agent系統(tǒng)的對象模型的建立、修改、保存、重建都十分的方便.

多個ApCont可以運(yùn)行在同一臺計算機(jī)上,也可以在多臺聯(lián)網(wǎng)的計算機(jī)上運(yùn)行多個ApCont構(gòu)成多Agent系統(tǒng).ApCont之間通過AgComm進(jìn)行通信,目前采用TCP/IP協(xié)議,同一計算機(jī)上的ApCont使用不同的端口,用IP地址加上IP端口號來從物理地址上區(qū)分不同的ApCont.使用不同的類型的Ag-Comm可以改換通信的方式.新加入系統(tǒng)的ApCont向系統(tǒng)中其他的ApCont發(fā)送自己的信息,每個Ap-Cont維護(hù)一個系統(tǒng)中其他ApCont的數(shù)據(jù)列表,并據(jù)此來尋址轉(zhuǎn)發(fā)Ag的消息.

Ag之間通過消息數(shù)據(jù)包進(jìn)行交互,Ag的消息數(shù)據(jù)包發(fā)送給ApCont,ApCont根據(jù)Ag列表和Ap-Cont列表來查找目標(biāo)轉(zhuǎn)發(fā).除了根據(jù)名字ID進(jìn)行尋址,還可以根據(jù)Ag的屬性進(jìn)行尋址,比如可以向具有特定角色的ApCont及Ag發(fā)送消息.除了點(diǎn)對點(diǎn)通信,還可以通過AgSimu系統(tǒng)的網(wǎng)絡(luò)連接進(jìn)行廣播.圖2顯示了ApCont與Ag的結(jié)構(gòu)關(guān)系.

ApCont及Ag的組織是動態(tài)的,組織成員之間的關(guān)系通過配置屬性、配置文件和知識文件來定義. AgSimu系統(tǒng)的組成結(jié)構(gòu)可以在運(yùn)行過程中發(fā)展變化,AgComm負(fù)責(zé)在新加入系統(tǒng)時向父節(jié)點(diǎn)發(fā)送連接申請消息,在運(yùn)行中定時向相鄰的ApCont發(fā)送網(wǎng)絡(luò)檢查的消息,發(fā)現(xiàn)沒有響應(yīng)的節(jié)點(diǎn)則調(diào)整ApCont間的網(wǎng)絡(luò)連接.AgSimu系統(tǒng)可以增加及刪除Ap-Cont,可以在ApCont中增加或刪除Ag,也可以通過改變屬性和配置文件來調(diào)整角色的對應(yīng)關(guān)系,用來模擬組織關(guān)系不斷演化的系統(tǒng).

表1對AgSimu仿真系統(tǒng)和Simulink進(jìn)行了比較.可見AgSimu系統(tǒng)基本實(shí)現(xiàn)了與Simulink類似的建模能力,并且在分布、并行、交互方面要優(yōu)于Simulink,可以適應(yīng)多Agent自主運(yùn)行仿真.

自主運(yùn)行系統(tǒng)主要的組成部分是AgPlan,AgP-lan是解決時間和資源約束的規(guī)劃器,AgPlan通過不同的規(guī)劃知識文件來獲取規(guī)劃知識,具備不同的規(guī)劃職能.AgPlan的知識文件定義了彼此的約束關(guān)系,AgPlan之間通過協(xié)商來尋找滿足約束條件的解.AgPlan包括兩個數(shù)據(jù)庫和3個主要的運(yùn)算模塊.知識庫存儲領(lǐng)域知識,狀態(tài)及規(guī)劃庫有多個規(guī)劃隊列和時間線,規(guī)劃隊列保存待處理的規(guī)劃項,時間線保存規(guī)劃結(jié)果及系統(tǒng)狀態(tài).知識處理模塊負(fù)責(zé)處理知識文件,形成和維護(hù)知識庫.交互協(xié)調(diào)模塊負(fù)責(zé)處理接收到的各種交互消息數(shù)據(jù),進(jìn)行分類處理后放入狀態(tài)及規(guī)劃庫,并協(xié)調(diào)規(guī)劃和輸出.規(guī)劃模塊根據(jù)知識對規(guī)劃隊列中的項進(jìn)行規(guī)劃,需要其他AgP-lan協(xié)調(diào)的發(fā)出活動協(xié)商消息,有待進(jìn)一步規(guī)劃的項放入規(guī)劃隊列,完成的項放入時間線,在規(guī)劃輸出的時刻對當(dāng)前方案進(jìn)行規(guī)劃并輸出給接口Ag.

表1 AgSimu仿真系統(tǒng)與Simulink的比較Tab.1 Comparison of AgSimu and Simulink

自主運(yùn)行系統(tǒng)的基本工作過程是,AgCmnd接收任務(wù),發(fā)送給目標(biāo)AgPlan,AgPlan根據(jù)規(guī)劃知識和系統(tǒng)狀態(tài)求解約束,建立相關(guān)活動,安排方案和資源,發(fā)送活動協(xié)商消息.接收協(xié)商的AgPlan根據(jù)約束關(guān)系,安排方案和資源,給予回復(fù).當(dāng)任務(wù)所涉及的活動在方案和資源上都得到滿足,則完成規(guī)劃,在相應(yīng)的時間點(diǎn)將方案經(jīng)接口Ag輸出給執(zhí)行系統(tǒng).系統(tǒng)接收高級任務(wù)命令,根據(jù)知識、系統(tǒng)狀態(tài)進(jìn)行規(guī)劃、解決沖突、相互協(xié)調(diào)、產(chǎn)生各具體組成部分的配置方案,并在執(zhí)行中根據(jù)反饋進(jìn)行調(diào)整,實(shí)現(xiàn)自主地規(guī)劃和執(zhí)行.因篇幅關(guān)系,本文主要介紹仿真系統(tǒng)的設(shè)計和實(shí)現(xiàn),規(guī)劃算法、進(jìn)程協(xié)調(diào)、交互協(xié)商等內(nèi)容將另文詳細(xì)介紹.

4 AgSim u與Sim u link的協(xié)同

AgSimu系統(tǒng)可以通過接口Ag與不同系統(tǒng)進(jìn)行連接,與Matlab仿真系統(tǒng)建立接口可以使用Matlab中的豐富模型和算法,簡化仿真實(shí)現(xiàn)過程.Matlab編程接口有非COM的方法和基于COM的方法,基于COM的方法接口統(tǒng)一,適合于多種語言,是混合編程的趨勢.

Matlab編程可以使用其他語言開發(fā)的ActiveX控件,而Simulink中的S函數(shù)(S-Function)可進(jìn)行Matlab語言編程,可見用ActiveX可以實(shí)現(xiàn)VC程序與Simulink中的模型進(jìn)行交互.交互的具體方法是,用VC開發(fā)一種ActiveX控件AeM tlb,在目標(biāo)對象的Simulink模型中使用S函數(shù),在S函數(shù)中使用Ae-M tlb,另外一種ActiveX控件AiM tlb在ApCont中負(fù)責(zé)與AeMtlb接口,通過AiMtlb與AeMtlb的消息通信實(shí)現(xiàn)交互,建立起ApCont/Ag與Simulink模型間的消息通信橋梁,這種實(shí)現(xiàn)方法見圖3.

圖3 基于網(wǎng)絡(luò)的仿真系統(tǒng)Fig.3 Network-based simulation system

接口編程有兩點(diǎn)需要注意,一是ApCont中的Ag要和Simulink中的ActiveX進(jìn)行W indows消息通信,要知道彼此在W indwos中的窗口句柄,所以在進(jìn)行協(xié)同仿真時要對此進(jìn)行配置.二是VC中的數(shù)據(jù)類型與Matlab中的數(shù)據(jù)類型是不相同的,所以在S函數(shù)中使用VC編制的ActiveX控件時,VC程序要使用VARIANT數(shù)據(jù)結(jié)構(gòu)對接口數(shù)據(jù)進(jìn)行轉(zhuǎn)換.

AgSimu與Simulink中的對象模型進(jìn)行交互,還要解決同步問題.Simulink仿真時每個周期調(diào)用S函數(shù),同步仿真時,通過S函數(shù)中的AeM tlb控件來暫停Simulink的進(jìn)程,而后等待ApCont中AiMtlb發(fā)送的同步消息再繼續(xù)仿真進(jìn)程,使 Simulink和ApCont程序保持同步.因?yàn)镾imulink的仿真運(yùn)算,是在每個仿真周期各模塊依次運(yùn)行一步,所以一個Simulink模型中第一個AeM tlb負(fù)責(zé)同步即可.

5 AgSim u仿真系統(tǒng)應(yīng)用

使用AgSimu參考Pleiades系統(tǒng)[1],對分離模塊衛(wèi)星系統(tǒng)進(jìn)行了建模和仿真.Pleiades系統(tǒng)分離模塊衛(wèi)星采用模塊化結(jié)構(gòu),除了每顆分離模塊衛(wèi)星都包含的基礎(chǔ)平臺模塊如熱控、姿軌控、電源管理等模塊外,還有6種功能模塊,每顆分離模塊衛(wèi)星包含其中的幾種功能模塊.

仿真系統(tǒng)由三顆模塊衛(wèi)星和一個地面站4部分組成,每個部分作為一個個體對象由一個ApCont來仿真,同時運(yùn)行Simulink做為對象模型,總體結(jié)構(gòu)如圖3所示,這4個ApCont實(shí)例可以分布在不同計算機(jī)上.每顆分離模塊衛(wèi)星有一個星級的AgPlan,星簇級的AgPlan可以建立在三顆星其中的一顆上.

分離模塊衛(wèi)星對象模型中針對每個通用平臺模塊或功能模塊以一個AgPlan建立模型,針對相同模塊可以使用類似的知識文件,對其中的角色關(guān)系和特定屬性參數(shù)進(jìn)行設(shè)置即可以使用于不同衛(wèi)星對象中的模塊.通過知識文件來建立模塊AgPlan、衛(wèi)星AgPlan、星簇AgPlan間的組織關(guān)系及他們的活動間的約束關(guān)系.在分離模塊衛(wèi)星對象模型中使用Ag Comm并對其IP端口、上級節(jié)點(diǎn)進(jìn)行配置可以實(shí)現(xiàn)ApCont間通信,使用運(yùn)算Ag實(shí)現(xiàn)特定運(yùn)算、使用AiM tlb實(shí)現(xiàn)與Matlab接口,可以用類似Simulink的建模方式方便快速地建立系統(tǒng)的仿真模型.

地面站ApCont中包含AgCmnd和AgComm,AgCmnd提供人機(jī)接口,接收命令文件形式的指令并將其發(fā)送給目標(biāo)AgPlan.AgPlan在規(guī)劃運(yùn)算過程中調(diào)用運(yùn)算Ag的專業(yè)運(yùn)算能力,比如軌道機(jī)動的相關(guān)計算,通過與不同ApCont中的AgPlan規(guī)劃協(xié)商,共同完成規(guī)劃.規(guī)劃形成的計劃方案通過接口AiM tlb,發(fā)給Matlab中的AeM tlb,AeM tlb在Simulink的控制回路中實(shí)施控制方案,控制對象模型.AgSimu系統(tǒng)可以對從接收指令到輸出給Matlab中的控制參數(shù)的整個過程進(jìn)行仿真,可以觀察記錄過程中的規(guī)劃方案、執(zhí)行情況以及Ag間的全部交互消息.

圖4給出了一個規(guī)劃片段的輸出,圖中上部是AgPlan的規(guī)劃時間線輸出,橫軸是時間,縱軸方向的長豎線表示當(dāng)前時間,圖中不同高度的矩形代表不同時間段上的計劃方案,圖中當(dāng)前時間左側(cè)是已執(zhí)行的規(guī)劃,右側(cè)是已制定出的未來的規(guī)劃.圖的下部顯示AgPlan將當(dāng)前時間的規(guī)劃輸出到Simulink控制回路的記錄,圖中顯示的是配置方案值.這個片段是衛(wèi)星調(diào)整指向并進(jìn)行拍照,圖中分別是衛(wèi)星姿態(tài)模塊(上部第一條規(guī)劃時間線、下部左圖)和拍照觀測模塊(上部第二條規(guī)劃時間線、下部右圖)的規(guī)劃輸出.圖中姿態(tài)模塊在①處是衛(wèi)星指向改變,②處是保持指向,而拍照模塊在②期間的③進(jìn)行了拍照,這是是按照衛(wèi)星指向與拍照之間的約束關(guān)系進(jìn)行的規(guī)劃.

圖4 AgSimu及Simulink的輸出Fig.4 Output of AgSimu and Simulink

6 結(jié) 論

基于ActiveX技術(shù)建立了多Agent仿真系統(tǒng)AgSimu,實(shí)現(xiàn)了與Matlab/Simulink類似的方便靈活的建模功能.依靠Agent容器和Agent兩級組織,實(shí)現(xiàn)了Agent組織的管理和消息交互,可以快速建立多種組織形式的分布式的多Agent系統(tǒng),并針對航天應(yīng)用場景進(jìn)行多Agent自主運(yùn)行仿真.通過在Simulink仿真系統(tǒng)中嵌入ActiveX控件,實(shí)現(xiàn)了Simulink與AgSimu系統(tǒng)的同步協(xié)同仿真,使針對具體模型的聯(lián)合仿真系統(tǒng)的搭建十分方便.

在AgSimu仿真系統(tǒng)的基礎(chǔ)上,要細(xì)化系統(tǒng)的模型及應(yīng)用場景,完善Ag的知識表示方法,通過仿真對算法及交互過程進(jìn)行分析研究,改進(jìn)規(guī)劃及優(yōu)化算法.使用嵌入ActiveX接口控件的形式,可以開發(fā)AgSimu系統(tǒng)與其他仿真或應(yīng)用系統(tǒng)的接口,使其應(yīng)用更加廣泛.

[1] LoBosco D M,Camerron G E,Golding R A,et al.ThePleiades fractionated space system architecture and the future of national security space[C].AIAA Space 2008 Conference and Exposition,San Diego,CA,2008

[2] 朱江,伍聰.基于Agent的計算機(jī)建模平臺的比較研究[J].系統(tǒng)工程學(xué)報,2005,20(2):160-166 Zhu J,Wu C.Comparison study of agent-based computer modeling p latforms[J].Journal of Systems Engineering,2005,20(2):160-166

[3] Mueller JB,Brito M.A distributed flight software design for satellite formation flying control[C].Space 2003,Long Beach,CA,2003

[4] Fukunaga A,Rabideau G,Chien S,Yan D.ASPEN:A framework for automated planning and scheduling of spacecraft control and operations[C].International Symposium on AI,Robotics and Automation in Space(i-SAIRAS),Tokyo,Japan,1997

[5] 李新洪,增國強(qiáng),王兆魁.分布式衛(wèi)星編隊仿真系統(tǒng)[J].計算機(jī)仿真,2005,22(12):38-40 Li X H,Zeng G Q,WANG Z K.Simulation system for distributed satellites formation[J].Computer Simulation,2005,22(12):38-40

ActiveX-Based Sim ulation System for M ulti-Agent-Based Autonom ous System

YAN Jun1,LIYong2
(1.Beijing Institute of Control Engineering,Beijing 100190,China; 2.China Academy of Space Technology,Beijing 100094,China)

An ActiveX-based distributed simulation system named AgSimu was proposed in order to satisfy the requirement of Multi-Agent-based autonomous system for distributed spacecraft systems.The COM/ ActiveX Componentwas used to build all kinds of Agent,and ActiveX container was designed to act as A-gent container,build up multi-agent object model and manage the configuration and communication of these agents.Some different architecture of distributed agent systems can be made up and their real-time interaction and coordinated work can be simulated.By using ActiveX in S-function of Matlab/Simulink,the system can cooperate with models in Simulink.Therefore the close-loop simulation include controlled objects can be realized.

autonomous system;MAS;simulation system;ActiveX

TP31

A

1674-1579(2012)06-0035-06

10.3969/j.issn.1674-1579.2012.06.008

顏 軍(1973—),男,博士研究生,研究方向?yàn)楹教炱髯灾鬟\(yùn)行控制研究;李 勇(1965—),男,研究員,博士生導(dǎo)師,研究方向?yàn)楹教靹恿W(xué)與控制,自主導(dǎo)航、現(xiàn)代控制理論及其在航天控制中的應(yīng)用.

*國家高技術(shù)研究發(fā)展計劃(2012AA120601).

2012-05-25

猜你喜歡
控件消息對象
神秘來電
睿士(2023年2期)2023-03-02 02:01:09
一張圖看5G消息
關(guān)于.net控件數(shù)組的探討
軟件(2018年7期)2018-08-13 09:44:42
攻略對象的心思好難猜
意林(2018年3期)2018-03-02 15:17:24
基于熵的快速掃描法的FNEA初始對象的生成方法
區(qū)間對象族的可鎮(zhèn)定性分析
消息
消息
消息
就這樣玩會VBA中常見的自定義控件
電腦迷(2012年24期)2012-04-29 00:44:03
华蓥市| 洛隆县| 新竹县| 锡林郭勒盟| 嵊泗县| 武邑县| 南木林县| 团风县| 石泉县| 满洲里市| 阳西县| 永仁县| 梁山县| 罗平县| 嘉黎县| 黄大仙区| 潍坊市| 寿宁县| 拉萨市| 宕昌县| 韶关市| 石城县| 桐柏县| 舟山市| 金昌市| 阳新县| 灵武市| 托克逊县| 广河县| 宝山区| 凤山县| 孟连| 蒙城县| 银川市| 历史| 和平区| 通山县| 双牌县| 林州市| 伊春市| 鄂尔多斯市|