王亞芳 蔡暢 劉俊杰
摘要:無線傳感器網(wǎng)絡(luò)節(jié)點定位技術(shù)是無線傳感器網(wǎng)絡(luò)重要的技術(shù)之一,而如何最大限度提高節(jié)點定位精度是無線傳感器網(wǎng)絡(luò)定位研究領(lǐng)域的一個難點。本文首先研究了傳統(tǒng)的DV-Hop定位算法,提出一種基于RSSI修正的DV-Hop并可以升級輔助錨節(jié)點定位算法。仿真結(jié)果表明,在相同網(wǎng)絡(luò)連通度的情況下,改進算法提高了定位覆蓋率,同時具有更高的定位精度。
關(guān)鍵詞:無線傳感網(wǎng);借點定位;DV-Hop算法
中圖分類號:TP3
文獻標識碼A
文章編號2095-6363(2017)04-0080-02
無線傳感網(wǎng)是由大量設(shè)置在研究區(qū)域的傳感器節(jié)點,通過無線網(wǎng)絡(luò)組成的一個多跳組織網(wǎng)絡(luò),集數(shù)據(jù)采集、數(shù)據(jù)處理和數(shù)據(jù)傳輸于一身。無線傳感網(wǎng)絡(luò)能應(yīng)用到很多方面,而位置信息是解決很多問題的前提,只有了解傳感器節(jié)點的位置信息,才能對事件做出應(yīng)對措施。定位技術(shù)是無線傳感器網(wǎng)絡(luò)的重要研究方向,該技術(shù)通過網(wǎng)絡(luò)中一些已知位置的節(jié)點使用這些節(jié)點相互交換信息,運用某種已經(jīng)存在算法求得未知節(jié)點的位置信息。無線傳感器通常由兩種借點構(gòu)成,一種節(jié)點是已經(jīng)確定自己在網(wǎng)絡(luò)中位置,也就是錨節(jié)點(AnchorNode),另一種是未知節(jié)點(unknow),這種節(jié)點需要通過其他錨節(jié)點來最終確認自己的位置信息。
無線傳感網(wǎng)定位算法大概可以分為基于測距的定位算法和基于非測距的定位算法。基于測距的定位算法是根據(jù)測量節(jié)點之間的角度或者直接顯示的距離來實現(xiàn)的,這種算法在定位方面能夠表現(xiàn)的比較精確,但對于硬件要求較高。基于非測距的定位算法根據(jù)節(jié)點與節(jié)點之間的相互連通關(guān)系就可以實現(xiàn)對目標節(jié)點的鎖定,對于硬件要求低。DV-Hop定位算法不依賴于測距方法,利用多跳錨節(jié)點信息直接參與節(jié)點定位,大大提高了定位覆蓋率,故本文采用DV-Hop算法對無線傳感網(wǎng)節(jié)點進行定位。
1.改進的DV-Hop定位算法
在無線傳感網(wǎng)中進行定位時,DV-Hop算法可以通過少量的錨節(jié)點比例進行定位,為定位節(jié)省成本。如果錨節(jié)點比例太低,不存在足夠多的錨節(jié)點為未知節(jié)點進行定位,那就必須利用通信范圍外的錨節(jié)點進行距離估算,就會出現(xiàn)誤差。改進DV-Hop算法主要從定位精度和定位覆蓋率這兩個評價指標入手,在跳段距離和升級錨節(jié)點兩方面進行改進,以達到減小誤差、提高定位精度及覆蓋率的目的。
1.1修正一跳跳距
一跳跳距在整個網(wǎng)絡(luò)定位過程中起著至關(guān)重要的作用,本文的改進算法借助于RSSI測距技術(shù)對第一跳測距結(jié)果進行校正。具體步驟如下。1)監(jiān)測網(wǎng)絡(luò)中節(jié)點互相廣播信息包,獲得傳感器節(jié)點間連通性,同時得出節(jié)點間的跳數(shù)值hopij以及任意鄰居節(jié)點間的RSSI。2)對網(wǎng)絡(luò)中的節(jié)點間的跳數(shù)值進行修正。本文舍棄傳統(tǒng)算法中跳數(shù)均為整數(shù)的思想,對RSSI進行歸一化處理,隨后把這些值當作節(jié)點間的跳數(shù)值。3)計算全網(wǎng)平均跳距。4)計算未知節(jié)點與錨節(jié)點距離。在選擇錨節(jié)點時,選擇跳數(shù)值最小的錨節(jié)點。5)未知節(jié)點坐標計算。
1.2升級輔助錨節(jié)點
在無線傳感網(wǎng)中,錨節(jié)點的不規(guī)則存在,使某些未知節(jié)點不能接收到錨節(jié)點的信息,導(dǎo)致這些未知節(jié)點難以實現(xiàn)定位。本文采用輔助錨節(jié)點技術(shù)來提高整個定位算法的覆蓋率。引入優(yōu)先級Pri的概念,采用優(yōu)先級把已經(jīng)實現(xiàn)定位的未知節(jié)點升級為錨節(jié)點,再把這些錨節(jié)點應(yīng)用到后續(xù)的定位中。
網(wǎng)絡(luò)中的錨節(jié)點廣播自身信息給未知節(jié)點,未知節(jié)點接收信息,計算優(yōu)先級并排序。未知節(jié)點的優(yōu)先級pri的大小由信息包數(shù)量不同來決定,當未知節(jié)點接收到不同錨節(jié)點的信息包時,優(yōu)先級pri加l,依次計算出所有未知節(jié)點的優(yōu)先級,并設(shè)置一個鏈表,鏈表的表頭即鏈表中最大的優(yōu)先級Pri。升級為錨節(jié)點的未知節(jié)點從鏈表中刪除,輔助錨節(jié)點和網(wǎng)絡(luò)中原本的錨節(jié)點再次進行廣播,然后再次按優(yōu)先級重新排列鏈表,直到循環(huán)完最后一個未知節(jié)點就結(jié)束。
2.仿真與分析
本文使用MATLAB軟件對改進算法和傳統(tǒng)DV Hop定位算法進行仿真比較,驗證改進DV Hop定位算法是否具有更好的定位性能。
對整體定位誤差進行分析,在同一網(wǎng)絡(luò)連通度(取20)情況下進行仿真。
由圖1可知,在錨節(jié)點的密度由小到大的整個過程中,改進算法的定位誤差在逐漸減小,并且改進算法的總體定位誤差值始終低于傳統(tǒng)DV-Hop算法。
如圖2所示,隨著錨節(jié)點比例的增大,改進算法和傳統(tǒng)算法的定位覆蓋率都在增大,但是在錨節(jié)點比例低于8%時,傳統(tǒng)算法的定位覆蓋率始終低于改進算法的定位覆蓋率。
3.結(jié)論
本文針對無線傳感網(wǎng)的借點定位問題,在傳統(tǒng)DVHop定位算法基礎(chǔ)上,利用RssI技術(shù)修正一跳跳距,并根據(jù)定位需求升級輔助錨節(jié)點。通過MATLAR對改進后的算法進行仿真,驗證了改進算法的有效性,經(jīng)過仿真并分析,改進DV-Hop定位算法可以有效降低定位誤差,同時提高定位精度,在覆蓋率方面也有優(yōu)良的表現(xiàn)。