王中林,劉忠信+,吳 垠,馬爭(zhēng)光,陳增強(qiáng),孫青林
(1.南開(kāi)大學(xué) 計(jì)算機(jī)與控制工程學(xué)院,天津300071;2.南開(kāi)大學(xué) 天津市智能機(jī)器人技術(shù)重點(diǎn)實(shí)驗(yàn)室,天津300071)
ZigBee協(xié)議從下到上分別為物理層 (PHY)、媒體訪問(wèn)控制層 (MAC)、傳輸層 (TL)、網(wǎng)絡(luò)層 (NWK)、應(yīng)用層(APL)等。其中物理層和媒體訪問(wèn)控制層遵循IEEE 802.15.4標(biāo)準(zhǔn)的規(guī)定。ZigBee網(wǎng)絡(luò)主要特點(diǎn)是低成本、低功耗、低復(fù)雜度、低速率、支持大量節(jié)點(diǎn)和多種網(wǎng)絡(luò)拓?fù)?、快速、安全、可靠等,因此得到了廣泛的應(yīng)用,與此同時(shí),中國(guó)物聯(lián)網(wǎng)校企聯(lián)盟認(rèn)為ZigBee作為一種短距離無(wú)線通信技術(shù),由于其網(wǎng)絡(luò)可以便捷地為用戶(hù)提供無(wú)線數(shù)據(jù)傳輸功能,因此在物聯(lián)網(wǎng)領(lǐng)域具有非常強(qiáng)的可應(yīng)用性。在ZigBee網(wǎng)絡(luò)中的設(shè)備可分為協(xié)調(diào)器 (Coordinator)、路由節(jié)點(diǎn)(Router)和終端節(jié)點(diǎn) (EndDevice)3種角色。ZigBee技術(shù)可以看成無(wú)線傳感器網(wǎng)絡(luò)的一個(gè)具體應(yīng)用規(guī)范,而由德州儀器 (TI)公司推出的無(wú)線網(wǎng)絡(luò)協(xié)議堆棧軟件Z-Stack則是ZigBee技術(shù)的一個(gè)具體實(shí)現(xiàn),它對(duì)物理層、媒體訪問(wèn)控制層、網(wǎng)絡(luò)層以及應(yīng)用支持子層做了定義,所以用戶(hù)可以在Z-Stack的基礎(chǔ)上專(zhuān)注于做應(yīng)用層的開(kāi)發(fā),這樣能大大提高開(kāi)發(fā)效率并能明顯縮短開(kāi)發(fā)周期,本文的下位機(jī)軟件的開(kāi)發(fā)就是在其基礎(chǔ)上進(jìn)行的[1,2]。
一個(gè)一致性協(xié)議[3]設(shè)計(jì)完成后,需要去驗(yàn)證它的正確性和實(shí)用性,通常的做法是在Matlab 環(huán)境中做相應(yīng)的仿真,然后通過(guò)分析仿真結(jié)果來(lái)說(shuō)明協(xié)議的正確性,鑒于這種方式比較快捷迅速,成為了國(guó)內(nèi)外學(xué)者目前廣泛采用的方法。但是畢竟理論和現(xiàn)實(shí)環(huán)境相差比較大,僅僅在理論環(huán)境中做仿真無(wú)法驗(yàn)證協(xié)議的實(shí)用性,所以為了更加接近現(xiàn)實(shí)環(huán)境,本文采用在無(wú)線傳感器網(wǎng)絡(luò)中做實(shí)驗(yàn)的方法去驗(yàn)證一致性協(xié)議,網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都充當(dāng)著智能體的角色。為了能有更好的交互性與可控性,本文采用Matlab Gui針對(duì)性地開(kāi)發(fā)了一個(gè)上位機(jī)控制系統(tǒng),它的主要功能是給下位機(jī)發(fā)送指令,且實(shí)時(shí)接收下位機(jī)發(fā)送來(lái)的數(shù)據(jù),并在表格中實(shí)時(shí)顯示各個(gè)智能體的狀態(tài)信息及在坐標(biāo)中實(shí)時(shí)地繪圖,令整個(gè)實(shí)驗(yàn)過(guò)程的監(jiān)視更加直觀。該系統(tǒng)界面簡(jiǎn)潔友好、運(yùn)行穩(wěn)定、操作簡(jiǎn)單便捷、可擴(kuò)展性良好,可以有效地幫助一致性協(xié)議的研究。
通過(guò)上面的簡(jiǎn)單介紹,我們對(duì)無(wú)線傳感器網(wǎng)絡(luò)、Zig-Bee技術(shù)以及一致性有了一定的認(rèn)識(shí),在對(duì)仿真系統(tǒng)的設(shè)計(jì)做詳細(xì)介紹之前,這里先簡(jiǎn)單介紹一下仿真系統(tǒng)的硬件實(shí)驗(yàn)設(shè)備——CC2530-MDK。
這里的CC2530-MDK,即我們采用的系統(tǒng)的硬件平臺(tái)——ZigBee設(shè)備,它是由深圳飛比電子科技有限公司推出的,它是基于美國(guó)德州儀器 (TI)公司生產(chǎn)的CC253X 的專(zhuān)業(yè)ZigBee/RF4CE 開(kāi) 發(fā) 系 統(tǒng)。完 美 支 持IEEE 802.15.4標(biāo) 準(zhǔn) 以 及ZigBee 2007/PRO 和ZigBee RF4CE 標(biāo) 準(zhǔn)。CC2530-MDK 整合了TI公司ZigBee CC2530DK 和RemoTI CC2530DK 兩套開(kāi)發(fā)系統(tǒng),在功能上與TI公司的官方開(kāi)發(fā)板SmartRF05EB完美兼容,僅需替換相應(yīng)協(xié)議棧中LCD驅(qū)動(dòng)文件即可。它不但可實(shí)現(xiàn)簡(jiǎn)單的CC253X 系列單品開(kāi)發(fā),還可方便組建復(fù)雜的ZigBee無(wú)線網(wǎng)絡(luò)。我們用這個(gè)平臺(tái)組建簡(jiǎn)單的星型網(wǎng)絡(luò),只是在各終端節(jié)點(diǎn)之間通過(guò)能否接受到彼此的信息來(lái)設(shè)定網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)[4,5]。
本文該系統(tǒng)中的ZigBee設(shè)備采用16位的網(wǎng)絡(luò)地址,并且除了協(xié)調(diào)器的網(wǎng)絡(luò)地址是0x00外,其他終端節(jié)點(diǎn)的起始網(wǎng)絡(luò)地址是0x796F,然后按加入到網(wǎng)絡(luò)的先后順序依次累加??紤]到實(shí)驗(yàn)的隨機(jī)性,當(dāng)協(xié)調(diào)器重啟后,我們?cè)O(shè)定終端設(shè)備的16位網(wǎng)絡(luò)地址將按上面既定的規(guī)則重新分配。關(guān)于ZigBee設(shè)備的2種地址類(lèi)型 (64位的MAC地址和16位的網(wǎng)絡(luò)地址)的詳細(xì)介紹參見(jiàn)文獻(xiàn) [4,5]。
通過(guò)上面的介紹我們對(duì)實(shí)驗(yàn)所用的ZigBee設(shè)備有了一定地了解,該部分將詳細(xì)介紹一下仿真系統(tǒng)的設(shè)計(jì)。我們將首先介紹仿真系統(tǒng)的系統(tǒng)構(gòu)成;然后對(duì)系統(tǒng)的軟件開(kāi)發(fā)平臺(tái)做一下簡(jiǎn)單概述;接下來(lái)會(huì)詳細(xì)說(shuō)一下仿真系統(tǒng)各個(gè)部分的軟件所實(shí)現(xiàn)的功能;之后將介紹一下以及整個(gè)系統(tǒng)的工作流程;最后回顧一下在系統(tǒng)設(shè)計(jì)中解決的關(guān)鍵問(wèn)題。
本實(shí)驗(yàn)系統(tǒng)包括硬件和軟件2個(gè)部分。硬件包括上文提到的CC2530-MDK,另外還有CCdebugger和USB to RS-232。由于CC2530-MDK 是全功能節(jié)點(diǎn),所以其即可以做協(xié)調(diào)器節(jié)點(diǎn)也可以充當(dāng)路由節(jié)點(diǎn)和終端節(jié)點(diǎn),在本文中只用到了協(xié)調(diào)器節(jié)點(diǎn)和終端節(jié)點(diǎn)。CCdebugger主要作用是在線調(diào)試程序以及通過(guò)其向板子下載編譯好的程序。USB to RS-232的作用主要是連接協(xié)調(diào)器節(jié)點(diǎn)和電腦,然后通過(guò)上位機(jī)控制界面收發(fā)數(shù)據(jù)和向下發(fā)送指令。
軟件包括上位機(jī)軟件和下位機(jī)軟件2個(gè)部分,而下位機(jī)軟件又包括協(xié)調(diào)器節(jié)點(diǎn)的軟件設(shè)計(jì)和終端節(jié)點(diǎn)的軟件設(shè)計(jì)。上位機(jī)軟件則是由Matlab Gui開(kāi)發(fā)的無(wú)線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)系統(tǒng)。整個(gè)系統(tǒng)的結(jié)構(gòu)框架及總體設(shè)計(jì)如圖1 和圖2所示。
圖1 系統(tǒng)的結(jié)構(gòu)框架
通過(guò)上面的簡(jiǎn)單介紹,我們對(duì)系統(tǒng)的整體結(jié)構(gòu)框架以及系統(tǒng)的總體設(shè)計(jì)有了一個(gè)直觀的認(rèn)識(shí),在對(duì)系統(tǒng)做進(jìn)一步介紹之前,這里先簡(jiǎn)單說(shuō)一下系統(tǒng)的上位機(jī)和下位機(jī)軟件開(kāi)發(fā)平臺(tái)。
圖2 系統(tǒng)的總體設(shè)計(jì)
本文的下位機(jī) (CC2530-MDK)軟件的開(kāi)發(fā)平臺(tái)采用嵌入式IAR Embedded Workbench IDE。它適用于大量8位、16位以及32位的微處理器和微控制器,為用戶(hù)提供一個(gè)代碼繼承能力強(qiáng)且支持絕大多數(shù)目標(biāo)包括特殊目標(biāo)在內(nèi)的并易學(xué)的開(kāi)發(fā)環(huán)境,使用戶(hù)即使在開(kāi)發(fā)新的項(xiàng)目時(shí)也能在所熟悉的開(kāi)發(fā)環(huán)境中進(jìn)行,而且通過(guò)IAR 工具用戶(hù)可以大大節(jié)省工作時(shí)間,有效地提高了用戶(hù)的工作效率??紤]到對(duì)我們所選擇的協(xié)議棧軟件版本ZStack-CC2530-2.3.0-1.4.0的兼容性問(wèn)題,本文所用的IAR Embedded Workbench IDE版本是IAR EW8051-7.51A。
而上位機(jī)控制界面的開(kāi)發(fā)平臺(tái)我們選擇的是Matlab Gui(graphical user interface)。Matlab Gui也是面向?qū)ο蟮膱D形化用戶(hù)界面開(kāi)發(fā)環(huán)境,并且相對(duì)于其他高級(jí)語(yǔ)言Matlab Gui編程更加簡(jiǎn)單易學(xué),只要有一定的C 語(yǔ)言基礎(chǔ)即可很快入門(mén),然后能在短期內(nèi)開(kāi)發(fā)出比較實(shí)用簡(jiǎn)潔的程序。很適合對(duì)VC++、C#、Java等高級(jí)語(yǔ)言不太熟悉并且注重程序的功能性與實(shí)用性的研究人員。利用Matlab Gui開(kāi)發(fā)程序有一個(gè)最大的優(yōu)勢(shì)就是可以借助Matlab強(qiáng)大的計(jì)算與圖形繪制功能來(lái)提高編程效率[6]。
通過(guò)圖1,我們可以對(duì)整個(gè)系統(tǒng)的框架結(jié)構(gòu)有個(gè)大致的了解,下面分別介紹一下協(xié)調(diào)器節(jié)點(diǎn)、終端節(jié)點(diǎn)以及無(wú)線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)系統(tǒng)這三部分所能實(shí)現(xiàn)的功能。
首先協(xié)調(diào)器節(jié)點(diǎn)實(shí)現(xiàn)的功能包括:組建網(wǎng)絡(luò);接收各終端節(jié)點(diǎn)的發(fā)來(lái)的數(shù)據(jù)然后通過(guò)USB to RS-232傳到電腦;接收上位機(jī)的指令并做相應(yīng)的處理然后通過(guò)無(wú)線發(fā)送到各終端節(jié)點(diǎn);如果有LCD 顯示屏的話可以在顯示屏上顯示相應(yīng)的提示等。
其次終端節(jié)點(diǎn)實(shí)現(xiàn)的功能包括:加入到協(xié)調(diào)器建立的網(wǎng)絡(luò)中,并在網(wǎng)絡(luò)中模擬動(dòng)態(tài)智能體;接收來(lái)自協(xié)調(diào)器發(fā)來(lái)的指令以執(zhí)行相應(yīng)的動(dòng)作;接收鄰居節(jié)點(diǎn)發(fā)來(lái)的數(shù)據(jù)然后做相應(yīng)的處理并將處理后的信息廣播給協(xié)調(diào)器和鄰居節(jié)點(diǎn);可以在LCD 顯示屏上實(shí)時(shí)顯示相應(yīng)的提示信息等。
最后無(wú)線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)系統(tǒng),它實(shí)現(xiàn)的功能主要有以下幾點(diǎn):通過(guò)USB轉(zhuǎn)串口線和協(xié)調(diào)器節(jié)點(diǎn)連接,然后實(shí)時(shí)接收協(xié)調(diào)器傳上來(lái)的數(shù)據(jù)并在界面的表格區(qū)域顯示各終端節(jié)點(diǎn)的信息,并用圖像的形式直觀顯示實(shí)時(shí)的變化曲線或者是相應(yīng)的節(jié)點(diǎn)坐標(biāo)位置;用自定義的命令格式通過(guò)向協(xié)調(diào)器發(fā)送命令并經(jīng)過(guò)協(xié)調(diào)器將指令發(fā)送到各終端節(jié)點(diǎn);其他的實(shí)驗(yàn)過(guò)程需要的軟件設(shè)置、軟件的快捷工具菜單以及不同實(shí)驗(yàn)方案的管理、對(duì)歷史數(shù)據(jù)的查看功能和實(shí)驗(yàn)參數(shù)的設(shè)置等。無(wú)線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)系統(tǒng)的主界面視圖以及相應(yīng)的下拉功能菜單如圖3所示。
圖3 無(wú)線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)系統(tǒng)主界面
上面對(duì)實(shí)驗(yàn)系統(tǒng)的軟件部分的功能做了詳細(xì)地介紹。接下來(lái)介紹一下整個(gè)系統(tǒng)的工作流程。
如圖4所示,首先需要給協(xié)調(diào)器和終端節(jié)點(diǎn)上電,上電后協(xié)調(diào)器負(fù)責(zé)建立網(wǎng)絡(luò),終端節(jié)點(diǎn)搜索到網(wǎng)絡(luò)并加入,之后協(xié)調(diào)器和終端節(jié)點(diǎn)等待上位機(jī)發(fā)送開(kāi)始指令;下位機(jī)準(zhǔn)備就緒后通過(guò)USB轉(zhuǎn)串口線連接電腦和協(xié)調(diào)器;接下來(lái)打開(kāi)無(wú)線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)系統(tǒng);之后開(kāi)始新建實(shí)驗(yàn),在新建實(shí)驗(yàn)部分有2個(gè)必選設(shè)置分別是選擇實(shí)驗(yàn)方案和選擇實(shí)驗(yàn)節(jié)點(diǎn)數(shù)及狀態(tài)數(shù),節(jié)點(diǎn)數(shù)是根據(jù)打開(kāi)的終端節(jié)點(diǎn)的個(gè)數(shù)來(lái)確定,而狀態(tài)個(gè)數(shù)則是由選擇何種實(shí)驗(yàn)方案來(lái)確定的,新建實(shí)驗(yàn)部分還有2個(gè)可選設(shè)置項(xiàng)分別是設(shè)置實(shí)驗(yàn)名稱(chēng)及日期和設(shè)置串口連接參數(shù),這兩項(xiàng)參數(shù)也可以在新建實(shí)驗(yàn)后在系統(tǒng)設(shè)置中進(jìn)行更改。節(jié)點(diǎn)名稱(chēng)以及節(jié)點(diǎn)狀態(tài)名稱(chēng)也可以在系統(tǒng)設(shè)置中進(jìn)行自定義更改;新建實(shí)驗(yàn)完成后先嘗試打開(kāi)串口,若串口不可用會(huì)有相應(yīng)提示,用戶(hù)可以在系統(tǒng)設(shè)置中重新選擇可用串口以及將各項(xiàng)參數(shù)更改成和協(xié)調(diào)器的一樣;成功打開(kāi)串口后就可以點(diǎn)擊開(kāi)始按鈕開(kāi)始實(shí)驗(yàn)了;實(shí)驗(yàn)完成后,先后點(diǎn)擊停止與斷開(kāi)串口連接按鈕,接下來(lái)就可以對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行保存和另存為,以備以后查看歷史數(shù)據(jù)之用。
圖4 系統(tǒng)工作流程
系統(tǒng)設(shè)計(jì)中存在的一些關(guān)鍵問(wèn)題包括:上位機(jī)串口通信的設(shè)計(jì)以及下位機(jī)和上位機(jī)之間的數(shù)據(jù)收發(fā)周期的同步2個(gè)方面。
在上位機(jī)串口通信的設(shè)計(jì)上的關(guān)鍵問(wèn)題主要是選擇采用何種方式進(jìn)行接收數(shù)據(jù)的問(wèn)題。在Matlab環(huán)境中,有查詢(xún)和中斷2種方法對(duì)串口數(shù)據(jù)進(jìn)行讀取。查詢(xún)方式是一種異步串行通信,它需要不停地查詢(xún)串行口的緩沖區(qū),一旦有數(shù)據(jù)就進(jìn)行讀取,這種通信方式的優(yōu)點(diǎn)在于編程簡(jiǎn)單,但是由于不能對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)處理以至于系統(tǒng)的實(shí)時(shí)性比較差,而且會(huì)極大地占用系統(tǒng)資源,所以在實(shí)際的應(yīng)用中實(shí)用價(jià)值不高,故本文選擇了中斷方式收發(fā)數(shù)據(jù)。中斷方式主要是通過(guò)對(duì)串口進(jìn)行控制來(lái)實(shí)現(xiàn)串行通信的,它采用了Matlab的事件驅(qū)動(dòng)以及編寫(xiě)相應(yīng)的回調(diào)函數(shù)機(jī)制。Matlab常用的串口通信中斷事件有:輸出緩沖區(qū)為空事件、串行口引腳狀態(tài)改變事件、緩沖區(qū)有指定字節(jié)數(shù)目的數(shù)據(jù)可用事件、接收到的數(shù)據(jù)有指定的結(jié)束符事件等[7]。
本文選擇的事件驅(qū)動(dòng)方式是緩沖區(qū)有指定字節(jié)數(shù)目的數(shù)據(jù)可用事件,假定我們指定的字節(jié)數(shù)為n,則當(dāng)串口監(jiān)視到接收數(shù)據(jù)緩沖區(qū)中一旦有n個(gè)字節(jié)的數(shù)據(jù)時(shí)就即刻激活該事件,然后產(chǎn)生中斷立刻響應(yīng)相應(yīng)的回調(diào)函數(shù)進(jìn)行數(shù)據(jù)處理。這也要求下位機(jī)向串口寫(xiě)數(shù)據(jù)時(shí)保證每次寫(xiě)入的數(shù)據(jù)字節(jié)數(shù)一致,當(dāng)數(shù)據(jù)字節(jié)數(shù)不夠時(shí)可以用空格補(bǔ)齊。在選擇事件驅(qū)動(dòng)方式的問(wèn)題上,我們也嘗試過(guò)采用接收到的數(shù)據(jù)有指定的結(jié)束符事件,我們通過(guò)實(shí)驗(yàn)驗(yàn)證這種方式和緩沖區(qū)有指定字節(jié)數(shù)目的數(shù)據(jù)可用事件效果一樣,這種方式要求下位機(jī)每次向串口寫(xiě)入數(shù)據(jù)時(shí)必須添加和上位機(jī)接收指定結(jié)束符一樣的自定義字符,譬如我們假定自定義的結(jié)束符是T,則上位機(jī)串口監(jiān)視到發(fā)送上來(lái)的數(shù)據(jù)的末尾有字符T 時(shí)就立刻激活該事件,然后產(chǎn)生中斷調(diào)用相應(yīng)的回調(diào)函數(shù)進(jìn)行數(shù)據(jù)處理。用戶(hù)可以根據(jù)自己的需要來(lái)選擇采用哪種事件來(lái)產(chǎn)生中斷。上面說(shuō)的回調(diào)函數(shù)相當(dāng)于一個(gè)中斷服務(wù)子程序。Matlab 提供了一個(gè)缺省的instrcallback(obj,event)回調(diào)函數(shù),其實(shí)這個(gè)函數(shù)是一個(gè)程序模板,用戶(hù)可以根據(jù)自己的需要自定義回調(diào)函數(shù)的函數(shù)名和實(shí)現(xiàn)方式等。
為了在上位機(jī)控制界面實(shí)時(shí)顯示數(shù)據(jù)以及實(shí)時(shí)繪圖,界面數(shù)據(jù)的更新周期和下位機(jī)終端節(jié)點(diǎn)的無(wú)線發(fā)送周期需要保持一致,這樣能避免數(shù)據(jù)顯示出錯(cuò)。
我們用這套系統(tǒng)分別做了Vicsek 模型一致性算法[8]、有狀態(tài)限制的丟棄型一致性算法[9]以及目標(biāo)跟蹤算法[10]等幾個(gè)方面的實(shí)驗(yàn)。本文主要介紹一下目標(biāo)跟蹤算法的實(shí)驗(yàn)。這里的目標(biāo)跟蹤算法指的是我們?nèi)藶榈膶⒁粋€(gè)智能體設(shè)定成領(lǐng)導(dǎo)者,而其他智能體則作為跟隨者,跟隨者通過(guò)接收到的鄰居信息并根據(jù)內(nèi)置在智能體中的算法程序在實(shí)驗(yàn)一段時(shí)間后能夠跟在領(lǐng)導(dǎo)者的附近。圖5演示了跟蹤算法的實(shí)驗(yàn)效果。
圖5中的最長(zhǎng)的紅色箭頭代表領(lǐng)導(dǎo)者,藍(lán)色箭頭表示跟隨者,從圖5 (a)中可以看出一開(kāi)始它們都是隨機(jī)分布的,方向和速度大小也都是隨機(jī)的,整體看上去比較雜亂無(wú)章;而從圖5 (b)我們觀察到過(guò)一段時(shí)間后跟隨者慢慢向領(lǐng)導(dǎo)者靠近,方向、位置及速度都在漸漸趨近領(lǐng)導(dǎo)者;最后的圖5 (c)顯示跟隨者在位置上已經(jīng)全部跟在領(lǐng)導(dǎo)者附近,方向趨于相同,速度基本一致,達(dá)到了預(yù)期的實(shí)驗(yàn)?zāi)繕?biāo)。同時(shí)該實(shí)驗(yàn)也驗(yàn)證了基于Matlab的緩沖區(qū)有指定字節(jié)數(shù)目的數(shù)據(jù)可用事件驅(qū)動(dòng)的中斷方式能夠穩(wěn)定可靠地進(jìn)行實(shí)時(shí)串行通信,并且由于Matlab環(huán)境下編程簡(jiǎn)單、數(shù)據(jù)處理及圖形顯示比較方便,大大縮短了控制界面的開(kāi)發(fā)周期。
本文主要介紹了基于無(wú)線傳感器網(wǎng)絡(luò)的多智能體系統(tǒng)一致性仿真系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。下位機(jī)軟件采用C 語(yǔ)言編程;上位機(jī)控制界面則用Matlab Gui編程,之所以選擇Matlab Gui是為了借助Matlab強(qiáng)大的計(jì)算與繪圖功能,同時(shí)由于Matlab Gui比較簡(jiǎn)單易于掌握,可以整體上簡(jiǎn)化上位機(jī)控制界面的編程工作量,從而能極大地提高控制界面的開(kāi)發(fā)效率。本文中上位機(jī)控制系統(tǒng)的界面簡(jiǎn)潔友好,操作便捷,運(yùn)行穩(wěn)定,而且軟件具有良好的可擴(kuò)展性,能夠?qū)崟r(shí)的接收并顯示協(xié)調(diào)器發(fā)送上來(lái)的各節(jié)點(diǎn)的狀態(tài)信息,同時(shí)還能進(jìn)行實(shí)時(shí)的繪圖讓用戶(hù)能夠更加直觀地觀察系統(tǒng)運(yùn)行中各智能體的狀態(tài)變化情況,以及通過(guò)向下發(fā)送命令對(duì)下位機(jī)進(jìn)行實(shí)時(shí)的控制。本文利用該仿真系統(tǒng)在多個(gè)CC2530-MDK 實(shí)驗(yàn)設(shè)備上運(yùn)行一致性協(xié)議,通過(guò)實(shí)驗(yàn)結(jié)果驗(yàn)證了一致性協(xié)議的正確性及在實(shí)際環(huán)境中的可行性,也說(shuō)明了該系統(tǒng)能有效地幫助一致性問(wèn)題的研究。
[1]GAO Shouwei,WU Canyang.ZigBee technology practice tuto-rial:Solutions of the wireless sensor network based on CC2430/31 [M].Beijing:Beijing Aeronautics and Astronautics University Press,2009 (in Chinese). [高守瑋,吳燦陽(yáng).ZigBee技術(shù)實(shí)踐教程:基于CC2430/31的無(wú)線傳感器網(wǎng)絡(luò)解決方案 [M].北京:北京航空航天大學(xué)出版社,2009.]
[2]Farahani S.ZigBee wireless networks and transceivers [M].Access Online via Elsevier,2011.
[3]YANG Wen.Consensus problem in multi-agent systems[D].Shanghai:Shanghai Jiao Tong University,2009 (in Chinese).[楊文.多智能體系統(tǒng)一致性問(wèn)題研究 [D].上海:上海交通大學(xué),2009.]
[4]Instruments T.A true system-on-chip solution for 2.4-GHz IEEE802.15.4and ZigBee applications[EB/OL]. [2011-02-19/2014-02-12].http://www.ti.com/lit/ds/symlink/cc2530.pdf.
[5]Instruments T.CC253xSystem-on-chip Solution for 2.4GHz IEEE802.15.4and ZigBee applications user’s Guide[EB/OL].[2014-01-20/2014-02-12].http://www.ti.com/lit/ug/swru191e/swru191e.pdf.
[6]LUO Huafei.Study notes of MATLAB GUI design [M].Beijing:Beijing Aeronautics and Astronautics University Press,2009 (in Chinese). [羅華飛.MATLAB GUI設(shè)計(jì)學(xué)習(xí)手記[M].北京:北京航空航天大學(xué)出版社,2009.]
[7]Gupta R,Bera JN,Mitra M.Development of an embedded system and MATLAB-based GUI for online acquisition and analysis of ECG signal [J]. Measurement,2010,43 (9):1119-1126.
[8]Degond P,Dimarco G,Mac TBN.Hydrodynamics of the Kuramoto-Vicsek model of rotating self-propelled particles[J].arXiv Preprint arXiv:1306.3372,2013.
[9]Liu ZX,Chen ZQ.Discarded consensus of network of agents with state constraint [J].IEEE Transactions on Automatic Control,2012,57 (11):2869-2874.
[10]Hu J,F(xiàn)eng G.Distributed tracking control of leader-follower multi-agent systems under noisy measurement[J].Automatica,2010,46 (8):1382-1387.