一種改進的無線傳感器網絡非測距定位算法
節點定位是實現傳感器網絡應用的前提,控制節點定位誤差成為保證網絡正常運行的關鍵。采用基于測距的定位算法,可以達到良好的精度,但需要測量裝置,不適合能量受限的無線傳感器網絡。本文分析了常用的非測距定位算法,并在此基礎上提出了一種改進的基于序列的非測距定位算法,以提高無線傳感器網絡定位算法的性能。
本文引用地址:http://www.104case.com/article/201710/366801.htm引言
無線傳感器網絡具有部署靈活、便于信息獲取和傳輸等特征[1],得到大量應用。由于無線傳感器網絡節點一般采用低功耗設置以解決長時工作狀態下能量補給困難的問題,其節點定位技術不同于全球衛星定位系統(Global Positioning System,GPS)定位技術。如果采用基于測距的定位算法,可以達到良好的精度,但要求額外的物理測量設備,硬件成本和功耗偏高,不適合于大規模無線傳感器網絡。基于非測距的定位算法,由于不需要測量傳感器節點之間的物理距離或角度,在實際中具有更佳的實用性,因此成為研究熱點。
目前基于非測距的算法有DVHop(Distance VectorHop)算法[2]、Centroid算法[3]、APIT算法[4]、SBL(SequenceBased Localization)算法[5]。SBL算法是一種利用接收信號強度RSSI來采集信標節點序列,通過區域劃分實現節點定位的非測距定位算法。該算法對比RSSI信號的強弱獲得待定位節點與不同信標節點之間距離的相對大小,具有復雜度低、定位精度高、健壯性強的特點。但是SBL算法不能充分利用一跳范圍以外的信標節點和未知節點的信息等,本文通過分析一跳范圍以外的節點信息,在相同條件下提高了算法的定位精度,仿真實驗表明 ASBL(Advanced SequenceBased Localization)算法相對于SBL算法在性能上有大幅的提升。
1 模型化
在無線傳感器網絡中,節點分為兩類:信標節點和未知節點。信標節點所占比例較小,可以獲知自身的精確位置,未知節點利用信標節點的位置信息通過某種算法來確定自身位置。如圖1所示,區域中有A、B、C三個信標節點,在A和C中垂線的上側區域中任意一點與A、C的距離關系為DA 《 DC,同理在中垂線下側區域有DC 《 DA。不同的中垂線相互交叉把網絡所在區域分割成更小的獨立區域,每個獨立區域到信標節點的距離排序是唯一的,這個排序序列稱為該獨立區域的簽名序列。如果一個待定位節點在DB《 DA ∩DB 《 DC∩DA 《 DC區域中通過RSSI測量各個信標節點的信號強度,那么得到的信號強度應該是SB 》SA 》SC,待定位節點認為自己測得的定位序列為B-A-C。
圖1 區域劃分和求簽名序列
兩個序列之間的匹配相似度采用斯皮爾曼相關系數[6](Spearman‘s Rank Order Correlation Coefficient)和肯德爾等級相關系數[6](Kendall’s Tau)來衡量。給定兩個序列U={ui}和V={vi},1≤ i≤n,其中n表示信標節點的個數,ui和vi表示序列中的信標節點的位置。用ρ表示斯皮爾曼相關系數,用τ表示肯德爾等級相關系數,則有:
其中,nc表示兩個序列中先后順序一致的節點對的數目,nd表示兩個序列中先后順序不一致的節點對的數目,ntu和ntv分別表示兩個序列的內部關系數。
ρ和τ的值都介于-1和1之間。兩個完全相同序列的ρ和τ的值為1,完全不相關的兩個序列的ρ和τ的值為0,兩條相逆的序列的ρ和τ的值為-1。SBL算法取ρ和τ值最大的序列作為匹配序列。如圖2所示,待定位節點通過式(1)的匹配算法與“簽名序列表”中的序列進行匹配,可以得出自己所在的區域,以該區域的質心作為自己的坐標。
圖2 匹配探測序列完成定位
2 ASBL算法
ASBL算法的待定位節點只能接收到通信半徑范圍內的信標節點的RSSI值,無法充分利用通信半徑外的信標節點信息來定位。當網絡中信標節點增多時,理論上被分割區域并沒有發揮作用。
如圖3所示,S表示待定位節點,最中心的虛線范圍表示S經過RSSI序列進行初步定位之后可能的待定位區域。A表示在S通信范圍內的信標節點,B表示2跳范圍的信標節點,C和D表示三跳范圍的信標節點。分別做AB、AC和AD之間的平分線,AB和AC之間的平分線穿越S的待定位區域,能夠縮小待定位區域的面積,當信標節點D位于三跳范圍邊緣時,AD之間的平分線剛好與待定位區域的邊緣相切,未能穿越待定位區域。因此,在均勻分布的網絡中,距離待定位節點跳數越小的信標節點對于待定位節點的定位幫助越大,隨著跳數的增加,三跳范圍以外的的信標節點不能對待定位節點的定位提供有用的位置信息。在實際中,待定位節點發出的定位詢問信息的跳數上限設置為6即可,既能最大化地利用多跳信標節點的位置信息,又不會消耗過多的能量用于通信。
圖3 不同跳數的信標節點之間的中垂線
如圖4所示,一跳的信標節點能給待定位節點提供大致的待定位區域,二跳信標節點一般情況下能將待定位區域的面積縮小75%左右,三跳及三跳以外的信標節點能在二跳的基礎上繼續將待定位區域面積縮小20%左右。
圖4 不同跳數的信標節點對定位的幫助
3 仿真驗證
本文使用Java語言開發了一個仿真平臺,分析檢驗ASBL算法的各種性能指標。設置傳感器節點隨機部署在200 m×200 m的區域內,節點的通信半徑默認為30 m,表1中的數據是仿真平臺的各項參數信息。
表1 仿真平臺默認參數信息
3.1 節點密度對定位精度的影響
本組仿真中,將節點隨機部署,信標節點密度設為10%,節點數量在100~500之間變化,節點通信半徑覆蓋不規則度為0,其余參數保持不變。通過圖5可以看出,隨著節點密度的增大,各算法定位精度都有所提升,當節點達到400個時,各算法性能趨于穩定。因為能夠使用一跳范圍外的信標節點和未知節點協助定位,ASBL算法定位精度比DV-Hop算法提高25%左右,比APIT算法提高15%左右,比SBL算法提高12%。
圖5 節點密度對定位精度的影響
3.2 節點通信半徑對定位精度的影響
設置節點總數為300個,信標節點密度為10%,節點通信半徑從10~50 m遞增,其余參數按照默認設置,重復10次仿真。由圖6可以看出,通信半徑為10 m時,ASBL算法的定位精度要比SBL算法高75%,這是因為ASBL能充分利用一跳范圍外的信標節點。通信半徑為50 m時,ASBL算法的定位精度比SBL算法僅高1.4%,這是因為當節點通信半徑增加時,原來位于一跳范圍外的信標節點此時會位于一跳范圍內。
圖6 節點通信半徑對定位精度的影響
結語
非測距的定位技術以所需傳感器節點能量少、硬件簡單,成為目前無線傳感器網絡定位技術的主要研究方向。本文提出了ASBL算法,針對SBL算法作了改進,以提高算法良好的適應性和健壯性。恰當的定位算法是無線傳感器網絡正常工作的基礎,針對非測距定位算法的研究將 會朝著降低能量消耗和提高定位精度的方向發展,從而極大地提高網絡的生存能力和工作效率。
評論