WSN中免測(cè)距距離估計(jì)算法的實(shí)現(xiàn)與比較
1.2 DV-Hop算法
DV-Hop定位算法測(cè)距過(guò)程分為兩個(gè)階段:
第一階段首先計(jì)算待定位節(jié)點(diǎn)與錨節(jié)點(diǎn)的最小跳數(shù)。為獲得節(jié)點(diǎn)問(wèn)的跳數(shù),錨節(jié)點(diǎn)向所有鄰居節(jié)點(diǎn)廣播一個(gè)包含其自身標(biāo)志、位置信息、跳數(shù)被置為0的消息。當(dāng)未知節(jié)點(diǎn)接收到該消息時(shí),將跳數(shù)加1,并在泛洪限制許可的情況下,將消息繼續(xù)向它的鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā),此過(guò)程一直持續(xù)下去,直至網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)都獲得每個(gè)錨節(jié)點(diǎn)的位置信息和相應(yīng)的跳數(shù)值。為了保證能得到最小跳數(shù),未知節(jié)點(diǎn)收到消息時(shí),會(huì)查看是否已經(jīng)收到過(guò)關(guān)于該錨節(jié)點(diǎn)的消息,若已經(jīng)存在,則比較當(dāng)前跳數(shù)是否比之前收到的小,若不是則丟棄該消息,這樣就能保證得到的跳數(shù)最小跳數(shù)。
第二階段計(jì)算未知節(jié)點(diǎn)與錨節(jié)點(diǎn)的實(shí)際跳距。每個(gè)錨節(jié)點(diǎn)根據(jù)第一階段中得到的其它錨節(jié)點(diǎn)的位置信息和相距跳數(shù),利用式(1)估算平均跳距
DV-Hop算法能夠計(jì)算出離錨節(jié)點(diǎn)很遠(yuǎn)未知節(jié)點(diǎn)的位置。而且其不需要額外信息,但是其誤差與其路徑的彎曲程度成正比。由于一個(gè)未知節(jié)點(diǎn)只能通過(guò)一條路徑得到跳數(shù),所以它需要通過(guò)每跳平均距離來(lái)計(jì)算自身的位置,這樣導(dǎo)致計(jì)算出位置的誤差量大。
假設(shè)一個(gè)DV-Hop模型如圖3所示。本文引用地址:http://www.ex-cimer.com/article/160117.htm
其中,A1,A2,A3,是錨節(jié)點(diǎn);A是一個(gè)未知節(jié)點(diǎn),A1,A2,A3之間的距離已知,分別為30,30和40。A點(diǎn)到A1點(diǎn)為8,跳數(shù)為1;根據(jù)最小跳數(shù)原則,A點(diǎn)到A2,A3的跳數(shù)分別為3和2。
首先,錨節(jié)點(diǎn)廣播包括位置信息、自身標(biāo)志及開(kāi)始跳數(shù)為0的消息,當(dāng)消息廣播至另一個(gè)節(jié)點(diǎn),跳數(shù)根據(jù)最小跳數(shù)的原則變化,最終,每個(gè)節(jié)點(diǎn)都可得到離錨節(jié)點(diǎn)的最小跳數(shù),而錨節(jié)點(diǎn)得到與其他錨節(jié)點(diǎn)的最小跳數(shù)后便可以計(jì)算平均跳距。在圖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)
在計(jì)算出平均跳距后,錨節(jié)點(diǎn)將在網(wǎng)絡(luò)中廣播該信息,未知節(jié)點(diǎn)將平均跳距與最小跳數(shù)的乘積作為與錨節(jié)點(diǎn)的間距。即,A1、A2、A3將廣播8.6、7.8、7.8的3個(gè)平均跳距。如,A收到A1、A2、A3這3點(diǎn)廣播的跳距后,即能計(jì)算A到各錨節(jié)點(diǎn)的距離AA1=8.6;AA2=7.8×3= 23.4;AA3=7.8×2=15.6。
評(píng)論