WSN中免測距距離估計算法的實(shí)現與比較
1.2 DV-Hop算法
DV-Hop定位算法測距過(guò)程分為兩個(gè)階段:
第一階段首先計算待定位節點(diǎn)與錨節點(diǎn)的最小跳數。為獲得節點(diǎn)問(wèn)的跳數,錨節點(diǎn)向所有鄰居節點(diǎn)廣播一個(gè)包含其自身標志、位置信息、跳數被置為0的消息。當未知節點(diǎn)接收到該消息時(shí),將跳數加1,并在泛洪限制許可的情況下,將消息繼續向它的鄰居節點(diǎn)轉發(fā),此過(guò)程一直持續下去,直至網(wǎng)絡(luò )中每個(gè)節點(diǎn)都獲得每個(gè)錨節點(diǎn)的位置信息和相應的跳數值。為了保證能得到最小跳數,未知節點(diǎn)收到消息時(shí),會(huì )查看是否已經(jīng)收到過(guò)關(guān)于該錨節點(diǎn)的消息,若已經(jīng)存在,則比較當前跳數是否比之前收到的小,若不是則丟棄該消息,這樣就能保證得到的跳數最小跳數。
第二階段計算未知節點(diǎn)與錨節點(diǎn)的實(shí)際跳距。每個(gè)錨節點(diǎn)根據第一階段中得到的其它錨節點(diǎn)的位置信息和相距跳數,利用式(1)估算平均跳距

DV-Hop算法能夠計算出離錨節點(diǎn)很遠未知節點(diǎn)的位置。而且其不需要額外信息,但是其誤差與其路徑的彎曲程度成正比。由于一個(gè)未知節點(diǎn)只能通過(guò)一條路徑得到跳數,所以它需要通過(guò)每跳平均距離來(lái)計算自身的位置,這樣導致計算出位置的誤差量大。
假設一個(gè)DV-Hop模型如圖3所示。本文引用地址:http://dyxdggzs.com/article/160117.htm
其中,A1,A2,A3,是錨節點(diǎn);A是一個(gè)未知節點(diǎn),A1,A2,A3之間的距離已知,分別為30,30和40。A點(diǎn)到A1點(diǎn)為8,跳數為1;根據最小跳數原則,A點(diǎn)到A2,A3的跳數分別為3和2。
首先,錨節點(diǎn)廣播包括位置信息、自身標志及開(kāi)始跳數為0的消息,當消息廣播至另一個(gè)節點(diǎn),跳數根據最小跳數的原則變化,最終,每個(gè)節點(diǎn)都可得到離錨節點(diǎn)的最小跳數,而錨節點(diǎn)得到與其他錨節點(diǎn)的最小跳數后便可以計算平均跳距。在圖3中,A1、A2、A3的平均跳距如下
A1:(30+30)÷(4+3)=8.6 (2)
A2:(30+40)÷(4+5)=7.8 (3)
A3:(30+40)÷(4+5)=7.8 (4)
在計算出平均跳距后,錨節點(diǎn)將在網(wǎng)絡(luò )中廣播該信息,未知節點(diǎn)將平均跳距與最小跳數的乘積作為與錨節點(diǎn)的間距。即,A1、A2、A3將廣播8.6、7.8、7.8的3個(gè)平均跳距。如,A收到A1、A2、A3這3點(diǎn)廣播的跳距后,即能計算A到各錨節點(diǎn)的距離AA1=8.6;AA2=7.8×3= 23.4;AA3=7.8×2=15.6。
評論