基于APIT的無線傳感器網(wǎng)絡(luò)三維定位算法
①節(jié)點(diǎn)部署完成后,網(wǎng)絡(luò)初始化配置。信標(biāo)節(jié)點(diǎn)向網(wǎng)絡(luò)廣播消息(消息應(yīng)該包含信標(biāo)節(jié)點(diǎn)的ID、位置坐標(biāo)等信息),而未知節(jié)點(diǎn)監(jiān)聽信標(biāo)節(jié)點(diǎn)的消息。此階段未知節(jié)點(diǎn)應(yīng)隨時(shí)更新接收到的信息,以防止岡網(wǎng)絡(luò)的拓?fù)渥兓斐傻恼`差影響。
②設(shè)未知節(jié)點(diǎn)M監(jiān)聽到的信標(biāo)節(jié)點(diǎn)數(shù)目為n(n=0,1,2,3,4,5,6…)。信標(biāo)節(jié)點(diǎn)的坐標(biāo)為A1,A2,A3,A4,…,An,未知節(jié)點(diǎn)將監(jiān)聽到的信標(biāo)節(jié)點(diǎn)的坐標(biāo)存入數(shù)組,如果n小于5則繼續(xù)下一步,否則轉(zhuǎn)向步驟④;
③當(dāng)n=4、3或2時(shí),即未知節(jié)點(diǎn)只能監(jiān)聽到4、3或2個(gè)信標(biāo)節(jié)點(diǎn)。以未知節(jié)點(diǎn)所能監(jiān)聽到的信標(biāo)節(jié)點(diǎn)為圓心,以通信距離為半徑分別作球,兩球分別相交,分別求出4個(gè)球體、3個(gè)球體、2個(gè)球體重疊區(qū)域的質(zhì)心作為未知節(jié)點(diǎn)的坐標(biāo)。
當(dāng)n=1或0時(shí),即未知節(jié)點(diǎn)只能監(jiān)聽到1或0個(gè)信標(biāo)節(jié)點(diǎn)。此時(shí),未知節(jié)點(diǎn)等待一段時(shí)間t(這里t應(yīng)設(shè)置為略小于定位周期)后,向其所有鄰居節(jié)點(diǎn)廣播消息,請(qǐng)求獲知鄰居節(jié)點(diǎn)的坐標(biāo)信息。若沒有鄰居節(jié)點(diǎn)返回消息,那么重復(fù)執(zhí)行此步驟;若有鄰居節(jié)點(diǎn)返回消息但鄰居節(jié)點(diǎn)尚未定位,則信標(biāo)節(jié)點(diǎn)繼續(xù)等待一小段隨機(jī)的時(shí)間后,重復(fù)請(qǐng)求消息;若有鄰居節(jié)點(diǎn)返回消息并且鄰居節(jié)點(diǎn)已經(jīng)定位完畢,此時(shí)鄰居節(jié)點(diǎn)成為已知節(jié)點(diǎn),則未知節(jié)點(diǎn)把已知節(jié)點(diǎn)當(dāng)成信標(biāo)節(jié)點(diǎn),重復(fù)執(zhí)行步驟①。
④從n個(gè)信標(biāo)節(jié)點(diǎn)中任取4個(gè)節(jié)點(diǎn)組成i(i=1,2,3,4,…,C4n)個(gè)四面體,得到包含未知節(jié)點(diǎn)的所有四面體,根據(jù)四面體相交后的重疊區(qū)域計(jì)算此重疊區(qū)域的質(zhì)心坐標(biāo)作為未知節(jié)點(diǎn)的坐標(biāo)。
1.3.4 算法分析
信標(biāo)節(jié)點(diǎn)廣播消息時(shí),采用洪泛的方法,使得通信距離內(nèi)的未知節(jié)點(diǎn)都可以監(jiān)聽到消息,而且未知節(jié)點(diǎn)只負(fù)責(zé)監(jiān)聽消息,并不需要和相鄰節(jié)點(diǎn)進(jìn)行消息交換。這樣就大大減少了網(wǎng)絡(luò)中未知節(jié)點(diǎn)的通信量,增加了網(wǎng)絡(luò)生命周期。但是為了使得未知節(jié)點(diǎn)能夠監(jiān)聽到更多的信標(biāo)節(jié)點(diǎn),我們?cè)O(shè)定能量較多的信標(biāo)節(jié)點(diǎn)來廣播兩次消息。第一次廣播消息時(shí)同時(shí)監(jiān)聽周圍的信標(biāo)節(jié)點(diǎn)的廣播,將監(jiān)聽到的其他信標(biāo)節(jié)點(diǎn)的消息記錄下來。第二次廣播時(shí),將所知道的所有的信標(biāo)節(jié)點(diǎn)的信息都廣播出去,此時(shí)監(jiān)聽的節(jié)點(diǎn)將接收到的消息和第一次接收的消息對(duì)比,若發(fā)現(xiàn)有新的信標(biāo)節(jié)點(diǎn)則及時(shí)更新信息。
對(duì)于未知節(jié)點(diǎn)監(jiān)聽到的信標(biāo)節(jié)點(diǎn),不能構(gòu)成四面體相交的,利用球體重合區(qū)域的質(zhì)心作為未知節(jié)點(diǎn)的坐標(biāo)。如果未知節(jié)點(diǎn)監(jiān)聽到的信標(biāo)節(jié)點(diǎn)數(shù)目較少,可以利用已經(jīng)定位完畢的節(jié)點(diǎn)來對(duì)未知節(jié)點(diǎn)進(jìn)行定位。在求解球體重合區(qū)域的質(zhì)心時(shí),可以利用網(wǎng)格掃面算法,計(jì)算量較大、誤差較?。灰部梢岳盟拿骟w質(zhì)心掃面算法,計(jì)算量較小但是誤差較大,根據(jù)實(shí)際情況予以選擇。
1.4 算法流程
整個(gè)算法的流程如圖2所示。
2 實(shí)驗(yàn)仿真與評(píng)估
本文中采用的仿真軟件是Visual C++與Matlab7.5,選取的實(shí)驗(yàn)參數(shù)是定位覆蓋率和定位誤差。仿真實(shí)驗(yàn)中,200個(gè)節(jié)點(diǎn)是隨機(jī)部署在邊長(zhǎng)為80 m的正方體監(jiān)測(cè)區(qū)域內(nèi),信標(biāo)節(jié)點(diǎn)和未知節(jié)點(diǎn)的通信半徑都是一樣的。為了減少隨機(jī)分布和偶然因素帶來的影響,仿真的結(jié)果是在相同的參數(shù)下仿真50次的平均值。通過比較二維空間中的APIT和文中提出的三維TDAPIT算法在不同的信標(biāo)節(jié)點(diǎn)比例的情況下的定位覆蓋率和定位誤差,最后來分析擴(kuò)展后算法的優(yōu)劣。
2.1 定位覆蓋率
定位覆蓋率隨信標(biāo)節(jié)點(diǎn)比例變化圖如圖3所示。在信標(biāo)節(jié)點(diǎn)比例為5%時(shí),APIT定位覆蓋率約為10%,而TDAPIT約為30%,這說明相對(duì)于二維空間中的APIT定位,TDAPIT定位在三維空間中的定位覆蓋率在信標(biāo)節(jié)點(diǎn)比例較小時(shí),仍能發(fā)揮相當(dāng)?shù)男в?。隨著信標(biāo)節(jié)點(diǎn)比例的上升,TDAPIT的定位覆蓋率更是明顯地上升,在信標(biāo)節(jié)點(diǎn)比例為20%左右時(shí),定位覆蓋率就達(dá)到了90%以上。在這以后,信標(biāo)節(jié)點(diǎn)比例的增加對(duì)定位覆蓋率的影響大大降低。這是因?yàn)樵谒惴ㄖ胁捎昧搜h(huán)擴(kuò)散的思想,即將已知節(jié)點(diǎn)當(dāng)做信標(biāo)節(jié)點(diǎn)來實(shí)現(xiàn)定位,最大限度地減少了不良節(jié)點(diǎn)的數(shù)目。在信標(biāo)節(jié)點(diǎn)比例達(dá)到30%左右時(shí),APIT算法的定位覆蓋率在85%左右,而且仍然還有上升的趨勢(shì),說明APIT算法對(duì)信標(biāo)節(jié)點(diǎn)比例的依賴程度比較高。
電容式觸摸屏相關(guān)文章:電容式觸摸屏原理
評(píng)論