楊 鵑/Yang Juan
(承德石油高等專(zhuān)科學(xué)校 承德 067000)
無(wú)線(xiàn)傳感網(wǎng)絡(luò)利用微電子技術(shù)、嵌入式技術(shù)和無(wú)線(xiàn)通信技術(shù)等多種技術(shù),依賴(lài)節(jié)點(diǎn)間射頻信號(hào)的發(fā)送和接收實(shí)現(xiàn)數(shù)據(jù)分組的傳輸,可實(shí)現(xiàn)數(shù)據(jù)采集、數(shù)據(jù)處理和網(wǎng)絡(luò)通信等功能,目前被廣泛應(yīng)用在工業(yè)、農(nóng)業(yè)、交通和智能建筑等多種行業(yè)。
節(jié)點(diǎn)定位是指通過(guò)節(jié)點(diǎn)間的數(shù)據(jù)和定位算法確定未知節(jié)點(diǎn)的具體位置,標(biāo)識(shí)網(wǎng)絡(luò)節(jié)點(diǎn)的空間位置,是無(wú)線(xiàn)傳感網(wǎng)絡(luò)研究的重點(diǎn)內(nèi)容之一。目前,應(yīng)用較多的定位算法有RSSI 測(cè)距算法、AOA算法、TOA算法、DV-Hop算法、質(zhì)心定位算法、APIT算法等。本文研究使用的DV-Hop算法基于距離矢量,根據(jù)錨節(jié)點(diǎn)的平均跳距和未知節(jié)點(diǎn)到錨節(jié)點(diǎn)的跳數(shù)估算未知節(jié)點(diǎn)到錨節(jié)點(diǎn)的距離值,建立坐標(biāo)與距離的方程組,通過(guò)求解方程組獲得未知節(jié)點(diǎn)的估計(jì)坐標(biāo)。
DV-Hop算法的定位過(guò)程如圖1所示。
錨節(jié)點(diǎn)通過(guò)廣播方式通告自身的位置和跳數(shù)信息,鄰居節(jié)點(diǎn)接收到該數(shù)據(jù)分組后,首先判定是否是首次接收到該錨節(jié)點(diǎn)的數(shù)據(jù)分組,如果是首次,保留記錄,否則,比較跳數(shù)大小,保存跳數(shù)小的記錄。洪泛結(jié)束后,根據(jù)記錄保存的錨節(jié)點(diǎn)信息、跳數(shù)信息和自身坐標(biāo),求取平均跳距。平均跳距與跳數(shù)的乘積就是未知節(jié)點(diǎn)與該錨節(jié)點(diǎn)間的距離,求解距離方程組即可獲得未知節(jié)點(diǎn)的坐標(biāo)值。
(1)多跳轉(zhuǎn)發(fā)的定位誤差
在DV-Hop算法計(jì)算過(guò)程中,未知節(jié)點(diǎn)與錨節(jié)點(diǎn)之間的距離值由錨節(jié)點(diǎn)的平均跳距和跳數(shù)的乘積確定。實(shí)際網(wǎng)絡(luò)拓?fù)渲?,未知?jié)點(diǎn)到錨節(jié)點(diǎn)的轉(zhuǎn)發(fā)路徑是一系列折線(xiàn)段,錨節(jié)點(diǎn)間的實(shí)際距離是直線(xiàn)段,轉(zhuǎn)發(fā)的跳數(shù)越多,累計(jì)的誤差越大,定位誤差也越大[1]。
圖1 DV-Hop算法的定位過(guò)程
(2)錨節(jié)點(diǎn)密度不均造成的誤差
由于實(shí)際空間的限制,錨節(jié)點(diǎn)不能實(shí)現(xiàn)節(jié)點(diǎn)的均勻布局,會(huì)出現(xiàn)密度不均的現(xiàn)象。當(dāng)密度不均勻布局時(shí),估算的平均跳距誤差較大,因而造成定位誤差較大[2]。
(3)錨節(jié)點(diǎn)密度過(guò)低
如果錨節(jié)點(diǎn)密度過(guò)低,錨節(jié)點(diǎn)周?chē)亩嗵^節(jié)點(diǎn)的數(shù)目會(huì)較少,與之建立路徑轉(zhuǎn)發(fā)的錨節(jié)點(diǎn)位置對(duì)平均跳距的求取影響較大,因而造成定位誤差值較大,并且錨節(jié)點(diǎn)密度過(guò)低,網(wǎng)絡(luò)內(nèi)不良節(jié)點(diǎn)數(shù)目增加[3],降低了網(wǎng)絡(luò)的定位效果。
傳統(tǒng)的DV-Hop算法定位誤差較大,不適合網(wǎng)絡(luò)稀疏的復(fù)雜工作環(huán)境,很多科研工作組在研究過(guò)程中將DV-Hop算法進(jìn)行了改進(jìn),提高了算法的適用性。參考文獻(xiàn)[4]根據(jù)兩節(jié)點(diǎn)間的通信覆蓋率,在跳數(shù)計(jì)算過(guò)程中添加跳數(shù)系數(shù),降低了每個(gè)跳距產(chǎn)生的距離誤差。參考文獻(xiàn)[5]將錨節(jié)點(diǎn)劃分2 類(lèi):一跳內(nèi)的節(jié)點(diǎn)采用RSSI 定位算法; 一跳以上采用DV-Hop算法,該方法簡(jiǎn)單易行,但不適用于復(fù)雜環(huán)境中使用。參考文獻(xiàn)[6]采用投影跳距的方法解決了路徑轉(zhuǎn)發(fā)的誤差問(wèn)題,2 個(gè)通信半徑修正跳數(shù)值,求取時(shí)采用迭代求精的方式,通過(guò)3 個(gè)方面的改進(jìn)提高了定位精度,適合于復(fù)雜環(huán)境。參考文獻(xiàn)[7]針對(duì)于礦井復(fù)雜環(huán)境,在DV-Hop 定位算法應(yīng)用的基礎(chǔ)上對(duì)跳數(shù)和跳距進(jìn)行了優(yōu)化處理,提高了定位的精度。參考文獻(xiàn)[8]添加錨節(jié)點(diǎn)的自定位過(guò)程,將定位結(jié)果與實(shí)際值相比較,得到計(jì)算的修正值,以提高定位的精度。改進(jìn)的定位效果從多個(gè)角度進(jìn)行了算法的優(yōu)化,提高了定位精度,但也附加了一些其他技術(shù)問(wèn)題,需要進(jìn)一步的完善。
DV-Hop算法的主要誤差集中在平均跳距和跳數(shù)?;谕ㄐ虐霃?、節(jié)點(diǎn)間距離和跳數(shù)三者之間的關(guān)系,本文采用雙通信半徑的思想,減少平均跳距誤差。文獻(xiàn)文獻(xiàn)[9]中采用了雙通信半徑,目的是改善DV-Hop算法,但通信半徑設(shè)定為R 和R/2,在實(shí)際使用中由于網(wǎng)絡(luò)通信環(huán)境的不同,很難確定R/2的射頻信號(hào)大小,需進(jìn)行節(jié)點(diǎn)網(wǎng)絡(luò)測(cè)試。
無(wú)線(xiàn)網(wǎng)絡(luò)通信信號(hào)模型計(jì)算式如下所示。
其中,λ 為路徑損耗系數(shù),一般取2~5;ζ 為隨機(jī)數(shù),符合高斯分布,平均值為0,其標(biāo)準(zhǔn)差一般取4~10;d0為參考距離;d 為估計(jì)距離;pr(d0)為參考距離的接收信號(hào)強(qiáng)度;pr(d)為估計(jì)距離的接收信號(hào)強(qiáng)度。
網(wǎng)絡(luò)錨節(jié)點(diǎn)首先以RF2 廣播數(shù)據(jù)組分組,其中包括節(jié)點(diǎn)ID、節(jié)點(diǎn)坐標(biāo)、初始跳數(shù)、轉(zhuǎn)發(fā)時(shí)間等信息,數(shù)據(jù)組分組的初始跳數(shù)值設(shè)定為0.5。收到數(shù)據(jù)組分組的錨節(jié)點(diǎn)保存記錄,轉(zhuǎn)發(fā)時(shí)間為0 后,首次廣播結(jié)束。
網(wǎng)絡(luò)錨節(jié)點(diǎn)以RF1 廣播數(shù)據(jù)組分組,數(shù)據(jù)組格式與步驟1 相同,但初始跳數(shù)為1。如果網(wǎng)絡(luò)節(jié)點(diǎn)首次接收到該數(shù)據(jù)組分組,則保存記錄,否則判定跳數(shù)大小,保存跳數(shù)小的記錄。將跳數(shù)增加后,數(shù)據(jù)組分組轉(zhuǎn)發(fā)給其他鄰居節(jié)點(diǎn)。轉(zhuǎn)發(fā)時(shí)間為0 后,廣播結(jié)束。
與傳統(tǒng)的DV-Hop算法計(jì)算一致,求取平均跳數(shù),計(jì)算距離值,求解方程組。
為了驗(yàn)證改進(jìn)算法的有效性,本文基于Matlab軟件搭建仿真環(huán)境,模擬和計(jì)算未知節(jié)點(diǎn)的定位效果,研究在不同錨節(jié)點(diǎn)密度和通信半徑的條件下平均定位誤差的大小。仿真環(huán)境設(shè)定在100 m×100 m的范圍內(nèi),初始錨節(jié)點(diǎn)個(gè)數(shù)12 個(gè),通信半徑30 m,網(wǎng)絡(luò)環(huán)境中假定路徑損耗系數(shù)為4,信號(hào)的干擾用均值為5的高斯白噪聲表示,采用最小二乘法求解方程組。實(shí)驗(yàn)中隨機(jī)生成100 個(gè)未知節(jié)點(diǎn),計(jì)算節(jié)點(diǎn)定位的平均誤差值。
如圖2所示,網(wǎng)絡(luò)通信半徑增加,平均定位誤差相對(duì)減小,這說(shuō)明在網(wǎng)絡(luò)情況允許的條件下,應(yīng)盡量采用大功率的射頻信號(hào)發(fā)射,降低網(wǎng)絡(luò)的平均定位誤差。錨節(jié)點(diǎn)個(gè)數(shù)初始增加可明顯減小平均定位誤差,但當(dāng)節(jié)點(diǎn)密度達(dá)到一定程度,平均定位誤差基本保持不變。以通信半徑30 m 為例,2 種算法對(duì)比如圖3所示,平均定位誤差相差很大,基于傳統(tǒng)DV-Hop算法的平均定位誤差在35.28%~38.8%,改進(jìn)后的算法平均定位誤差在25.1%~28.8%,改進(jìn)后相比于改進(jìn)前大約提高了10%的精度,達(dá)到了預(yù)期的目的。
圖2 通信半徑對(duì)定位誤差的影響
圖3 兩種算法對(duì)比
本文在傳統(tǒng)DV-Hop的基礎(chǔ)上采用雙通信半徑方法,將節(jié)點(diǎn)間距離的求取誤差降低了0.5R。通過(guò)仿真實(shí)驗(yàn)看出,通信半徑對(duì)定位結(jié)果影響較大,錨節(jié)點(diǎn)密度在達(dá)到一定程度后對(duì)定位結(jié)果影響不大。本文僅針對(duì)于節(jié)點(diǎn)間距離的計(jì)算進(jìn)行了改進(jìn),后續(xù)研究中應(yīng)考慮求解方程組最優(yōu)解的方法,更進(jìn)一步提高定位精度。
1 夏少波,周建梅,朱曉麗等.基于跳數(shù)區(qū)域劃分的DV-Hop 改進(jìn)算法.傳感技術(shù)學(xué)報(bào),2014,27(7):964~969
2 李雪梅.基于DV-Hop算法的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位技術(shù)的研究.太原理工大學(xué)學(xué)位論文,2012
3 李冬.基于DV-Hop的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)定位算法研究與改進(jìn).南京理工大學(xué)學(xué)位論文,2013
4 譚志,張卉.基于節(jié)點(diǎn)間覆蓋關(guān)系的改進(jìn)DV-Hop算法.北京郵電大學(xué)學(xué)報(bào),2014,37(1):35~38
5 Liu Ying,Qian Zhihong,Liu Dan,et al.A DV-Hop positioning algorithm for wireless sensor network based on detection.2009 Fifth International Joint Conference on INC,IMS and IDC.Seoul:International joint conferences,2009:453~456
6 張亞麗,陳名松,劉瀟憶.基于DV-Hop的WSN 節(jié)點(diǎn)定位改進(jìn)算法的研究.電子測(cè)量技術(shù),2013,36(5):49~53
7 方旺盛,吳勝寶.基于井下異構(gòu)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)DV-Hop 定位算法的改進(jìn).傳感器與微系統(tǒng),2014,33(5):125~128
8 黃浩,盧文科.無(wú)線(xiàn)傳感器網(wǎng)絡(luò)中基于信標(biāo)節(jié)點(diǎn)反饋的多跳測(cè)距定位算法改進(jìn).傳感技術(shù)學(xué)報(bào),2009,22(2):269~272
9 李娟,劉禹,錢(qián)志鴻等.基于雙通信半徑的傳感器網(wǎng)絡(luò)DV-Hop 定位算法.吉林大學(xué)學(xué)報(bào)(工學(xué)版),2014,44(2):502~507
10 張亞麗,陳名松,劉瀟憶.基于DV-Hop的WSN 節(jié)點(diǎn)定位改進(jìn)算法的研究.電子測(cè)量技術(shù),2013,36(5):49~54