無線傳感器網(wǎng)絡(luò)中的DV—HOP定位改進(jìn)算法
用未知節(jié)點(diǎn)之間連通度差的絕對(duì)值的和來定義連通度的不同,比如N1與N2之間連通度的不同為|1—2|+|1—1|+|2—1|+|5—4|=3。這樣可以計(jì)算N1到其他所有未知節(jié)點(diǎn)的連通度的不同,如表2所列。
由表2可以得出,N2、N3到N1連通度不同為3、4,而N4、N5到N1連通度不同為9、11。說明N1離N2、N3更近。這一點(diǎn)也可以從圖1中看出。
2.2.2 確定最優(yōu)的3個(gè)錨節(jié)點(diǎn)
選擇性錨節(jié)點(diǎn)的節(jié)點(diǎn)分布圖如圖2所示。未知節(jié)點(diǎn)Nx代表未知節(jié)點(diǎn)的實(shí)際位置,N(i,j,k)為根據(jù)3個(gè)錨節(jié)點(diǎn)組合所估算的位置,R為節(jié)點(diǎn)的通信半徑,An是離N(i,j,k)最近的錨節(jié)點(diǎn),Am為通信范圍R之外的任意錨節(jié)點(diǎn)。
An的位置情況有3種:在0.5R的通信范圍內(nèi);在0.5R~R的通信范圍內(nèi);在R通信范圍之外。這樣計(jì)算AHD(i,j,k),m就有3種可能:
其中,AHD(i,j,k),m為根據(jù)3個(gè)錨節(jié)點(diǎn)組合所估算的位置節(jié)點(diǎn)與錨節(jié)點(diǎn)Am之間的平均跳距,AHDn,m為錨節(jié)點(diǎn)An與錨節(jié)點(diǎn)Am之間的平均跳距,AHDm為錨節(jié)點(diǎn)Am的平均跳距。
N(i,j,k)與錨節(jié)點(diǎn)Am之間的距離P(i,j,k),m可以計(jì)算出來,那么就可以算出N(i,j,k)與錨節(jié)點(diǎn)Am之間的跳數(shù)hop(i,j,k),m,公式為:
假設(shè)一共有n個(gè)錨節(jié)點(diǎn),這樣N(i,j,k)與Nx計(jì)算出來的連通度的不同可以表示為
Nx選出最小的連通度不同的節(jié)點(diǎn)是最為靠近Nx的節(jié)點(diǎn)(即定位的誤差最小)。
3 算法仿真實(shí)驗(yàn)
為了驗(yàn)證算法理論的可行性,在100 m×100 m的區(qū)域中,對(duì)提出的改進(jìn)的DV—Hop算法用Matlab7.0進(jìn)行實(shí)驗(yàn)仿真,將實(shí)驗(yàn)結(jié)果與原DV—Hop算法和參考文獻(xiàn)的算法進(jìn)行對(duì)比分析。仿真數(shù)據(jù)隨機(jī)運(yùn)行50次,最后取平均值。
3.1 測(cè)距誤差
測(cè)距誤差是指節(jié)點(diǎn)間的估算距離與實(shí)際距離的差值。在100 m×100 m的區(qū)域中,隨機(jī)分布100個(gè)節(jié)點(diǎn)進(jìn)行仿真實(shí)驗(yàn),其中有一部分部署的是錨節(jié)點(diǎn),是能夠獲知自身位置信息的節(jié)點(diǎn),且錨節(jié)點(diǎn)和未知節(jié)點(diǎn)具有相同的通信半徑。通過設(shè)置不同的錨節(jié)點(diǎn)比例和節(jié)點(diǎn)通信半徑,比較改進(jìn)的算法與原DV—Hop算法對(duì)測(cè)距誤差的影響。圖3為通信半徑為10 m時(shí)的測(cè)距誤差,圖4為通信半徑為20 m時(shí)的測(cè)距誤差。
評(píng)論