摘要:覆蓋控制問(wèn)題是無(wú)線傳感器網(wǎng)絡(luò)研究的基本問(wèn)題之一。該文根據(jù)無(wú)線傳感器網(wǎng)絡(luò)中的覆蓋控制原理,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)仿真平臺(tái),然后選取覆蓋控制算法中的一個(gè)典型算法作為研究對(duì)象,在該平臺(tái)上實(shí)現(xiàn)了該算法,研究其在定位存在誤差情況下的性能變化情況。
關(guān)鍵詞:無(wú)線傳感器網(wǎng)絡(luò);節(jié)點(diǎn)定位誤差;覆蓋算法;性能評(píng)價(jià)
中圖分類號(hào):TP391.9? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)07-0036-02
1 概述(Introduction)
無(wú)線傳感器網(wǎng)絡(luò)測(cè)量系統(tǒng)綜合了現(xiàn)代傳感器技術(shù),微電子技術(shù),通訊技術(shù),嵌入式計(jì)算技術(shù)和分布式信息處理技術(shù)等多個(gè)學(xué)科,其應(yīng)用環(huán)境通常是由價(jià)格便宜的傳感器節(jié)點(diǎn)組成的,每個(gè)節(jié)點(diǎn)都能夠采集、存儲(chǔ)和處理環(huán)境信息,并且能和鄰居節(jié)點(diǎn)通過(guò)無(wú)線鏈路保持通信[1]。覆蓋問(wèn)題是無(wú)線傳感器網(wǎng)絡(luò)配置首先面臨的基本問(wèn)題,因?yàn)閭鞲衅鞴?jié)點(diǎn)可能任意分布在配置區(qū)域,它反映了一個(gè)無(wú)線傳感器網(wǎng)絡(luò)在某區(qū)域被監(jiān)測(cè)和跟蹤的狀況[2]。
2 仿真算法(Simulation algorithm)
根據(jù)無(wú)線傳感器網(wǎng)絡(luò)覆蓋控制的算法[3],給出4種可變因素:感知區(qū)域的長(zhǎng)和寬、節(jié)點(diǎn)數(shù)、節(jié)點(diǎn)的感知半徑、誤差率,仿真程序算法流程可以用下面的順序圖1來(lái)表示:
3 仿真程序模塊設(shè)計(jì)(Simulation program module design)
這是Visual C++中顯示的程序工作空間,是一個(gè)基于對(duì)話框的應(yīng)用程序,在Sensor這個(gè)工程中有Coverage,space兩個(gè)結(jié)構(gòu)體,CSensor這個(gè)節(jié)點(diǎn)類,節(jié)點(diǎn)的許多參數(shù)都在這個(gè)類中設(shè)置[4],圖2是更為詳細(xì)的結(jié)構(gòu)體和類的內(nèi)部成員:
下表是CSensorDlg中主要的成員函數(shù),簡(jiǎn)單地介紹一下:
把每個(gè)節(jié)點(diǎn)與鄰居節(jié)點(diǎn)相交的弧度范圍都計(jì)算出來(lái),用結(jié)構(gòu)體Coverage來(lái)保存,接下來(lái)最重要的一件事是:把這些弧度范圍排序合并,具體的實(shí)現(xiàn)過(guò)程是在程序中的Merge(space *dest, space *source),其思想就是把這些小的弧度范圍合并,求出大的合集。當(dāng)然在函數(shù)的實(shí)現(xiàn)過(guò)程中需要對(duì)多種情況進(jìn)行處理,需要考慮周全才能寫(xiě)出正確的程序。
4 仿真程序界面設(shè)計(jì)(Simulation program interface design)
圖3是用MFC生成的對(duì)話框窗口的設(shè)置部分,其中的單元小方格像素是用來(lái)計(jì)算覆蓋面積劃分的單元長(zhǎng)度,通常情況下為1個(gè)像素[5]。
仿真程序可以設(shè)置和顯示這些數(shù)據(jù),查看睡眠情況按鈕是在節(jié)點(diǎn)定位精確時(shí)的睡眠顯示,按鈕右邊可睡眠節(jié)點(diǎn)數(shù)則顯示當(dāng)前節(jié)點(diǎn)分布圖中能夠睡眠的節(jié)點(diǎn)數(shù),在覆蓋率的變化情況中會(huì)顯示精確時(shí)的睡眠覆蓋面積,在存在誤差處可以設(shè)置坐標(biāo)誤差,通常是小于1的,比如誤差10%,再點(diǎn)擊設(shè)置按鈕就能計(jì)算誤差后的可睡眠節(jié)點(diǎn)數(shù),存在誤差時(shí)的睡眠覆蓋面積和此次的覆蓋率,圖3是個(gè)有設(shè)置的示例:
5 仿真試驗(yàn)(Simulation Test)
應(yīng)用仿真程序進(jìn)行數(shù)據(jù)分析,得出相應(yīng)的曲線圖,給出了4種可變因素:誤差率,感知區(qū)域的長(zhǎng)和寬,節(jié)點(diǎn)數(shù),節(jié)點(diǎn)的感知半徑,然后對(duì)各種情況分別討論。圖4的曲線圖是在300*300的區(qū)域中,分布100個(gè)節(jié)點(diǎn),節(jié)點(diǎn)的感知半徑為50的情況下,讓節(jié)點(diǎn)在定位不精確時(shí)縮小尋找鄰居節(jié)點(diǎn)的范圍,藍(lán)色的曲線是有誤差減小處理之后的,明顯比存在誤差沒(méi)有處理的曲線覆蓋率要高,而且隨著誤差率的增大,兩支曲線上下相差的距離越大。這樣覆蓋率的提高是有代價(jià)的,能夠睡眠的節(jié)點(diǎn)是越來(lái)越少了,就會(huì)產(chǎn)生不必要的能源使用。
6 結(jié)論和意義(Conclusion and significance)
該文用了仿真的思想,通過(guò)Visual C++開(kāi)發(fā)工具,對(duì)無(wú)線傳感器節(jié)點(diǎn)的分布,生成和覆蓋等問(wèn)題進(jìn)行了模擬,節(jié)點(diǎn)的分布是隨機(jī)的,用了隨機(jī)生成偽隨機(jī)數(shù)的方法,判斷節(jié)點(diǎn)的睡眠順序是多次睡眠求的平均值。
四個(gè)可變因素:誤差率,感知區(qū)域的長(zhǎng)和寬,節(jié)點(diǎn)數(shù),節(jié)點(diǎn)的感知半徑,這些參數(shù)的賦值不是按照實(shí)際中大小賦值的,而是按照顯示比例,覆蓋的充分程度賦值的,具有研究參考意義。
本仿真程序只是從研究的角度來(lái)分析說(shuō)明了曲線圖的走勢(shì)和原因,在實(shí)際應(yīng)用中仍需要仔細(xì)分析。總的來(lái)說(shuō),是通過(guò)軟件來(lái)簡(jiǎn)單地模擬無(wú)線傳感器網(wǎng)絡(luò),仍然存在著其他各種問(wèn)題和潛在問(wèn)題,在今后的研究過(guò)程中需要加大研究的深度和范圍。
參考文獻(xiàn):
[1] 劉偉榮.物聯(lián)網(wǎng)與無(wú)線傳感器網(wǎng)絡(luò)[M].2版.北京:電子工業(yè)出版社,2021.
[2] 孫利民.無(wú)線傳感器網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2005.
[3] Chi-Fu Huang, Yu-Chee Tseng.The coverage problem in a wireless sensor network[J].Mobile Networks and Applications,2005,10(4):519-528.
[4] 張錚,孫寶山,周天立.Windows程序設(shè)計(jì)[M].3版.北京:人民郵電出版社,2015.
[5] 仇谷烽.基于Visual C++的MFC編程/高等學(xué)校教材[M].北京:清華大學(xué)出版社,2015.
【通聯(lián)編輯:梁書(shū)】
收稿日期:2021-09-26
作者簡(jiǎn)介:王櫻錦(1986—),女,本科,工程師,研究領(lǐng)域?yàn)檐浖_(kāi)發(fā)。