高瑞娟,陳桂芬,李鵬
(長春理工大學 電子信息工程學院,長春 130022)
無線傳感器網絡(Wireless Sensor Network,WSN)[1,2]是指在監測區域內由大量節點組成的網絡。在監測區域內,WSN不間斷地將感知、采集和加工后的信息廣播到網絡中,使網絡用戶終端接收到可靠信息。WSN作為物聯網時代重要技術之一,被應用到許多領域,例如工業領域、商業領域、航空領域、戰場探查敵情、深山老林監控等。
在無線傳感器網絡中,主要技術有節點定位技術、網絡覆蓋技術、時間同步技術和路由協議技術等。其中,節點定位技術對節點收集信息的有效性、準確性起到決定性的作用。為保證監測區域內節點收集信息的可靠性,將對節點定位技術進行研究。目前,隨著市場的需求,已有學者將節點定位技術從二維空間上升到三維空間[3,4]進行研究,但在定位精度上仍有上升空間。綜上所述,對三維空間中的節點定位技術進行研究具有一定的價值。
目前,上升到三維空間中的節點定位算法有:3D-DV-Hop(Three-Dimensional Distance Vector-Hop)[5]、APIS(Approximate Point in Sphere)[6]、Landscape-3D(Landscape Three-Dimensional)[7]等,其中,3D-DV-Hop定位算法計算難度相對較低,計算方法簡單易懂。所以有許多學者將其進行改進,例如加權三維DV-Hop算法[8]、3D-iDV-Hop算法[9]、基于信標節點密度的三維DV-Hop改進算法[10]等。但依舊存在一定誤差,對此提出3D-WFLS-DvHop定位算法,通過賦予誤差權重、質心加權因子優化以及最小二乘法距離擬合原理對未知節點坐標進行修正的方法降低節點定位誤差,同時與原算法能耗基本相同。
3D-WD-DVHop(Weighted Three-Dimensional Distance Vector-Hop Localization Algorithm)作為一種非測距定位算法,利用錨節點之間的距離不同對錨節點賦予不同的權值來實現待定位節點的定位。具體定位算法步驟介紹如下:
求網絡中所有錨節點間的初次平均跳距時,用錨節點間坐標之差除以錨節點間的跳數可得:

式中,3DHopsizeij為網絡中錨節點之間的初次平均跳距,(xi,yi,zi)、(xj,yj,zj)分別為錨節點i、j在三維網絡空間中的位置坐標,hij為三維網絡空間中錨節點i和錨節點j的跳數。
在計算三維網絡中錨節點間的平均跳距時,錨節點彼此之間的距離越近,那么對計算當前錨節點間平均跳距所起的作用越大,就應當賦予更重的權值。則可得知:

式中,wij是錨節點j對錨節點i作用的權值;hij為錨節點i與錨節點j之間的跳數。
將計算初次平均跳距公式(1)和錨節點間的權值公式(2)合并,可得出錨節點間在三維空間中的平均跳距如下式所示:

進一步可得出未知節點距錨節點i的距離為3DWdi:

最后,經過以上計算后,若未知節點能夠獲得其周圍四個或四個以上錨節點的距離信息,且這些錨節點處于不共面的狀態,那么就可以用數學方法中四邊測量法獲得未知節點的坐標。3D-WD-DVHop定位算法與其他三維空間中的定位算法相比,具有算法無需測距和覆蓋面較大的優點,且算法簡單決定了3D-WD-DVHop定位算法具有較低的能耗,而能量消耗是判斷定位算法是否可取的關鍵性能指標,所以3D-WD-DVHop定位算法具有較好的研究價值。此定位算法對定位要求一般的定位有較好表現,但對定位精度要求較高的定位適應性一般。因此,3D-WD-DVHop定位算法還有較高的改進空間。
綜上所述,提出了一種改進的3D-WFLS-DvHop(Weight and Fitting of LeastSquare Method Three-Dimensional Distance Vector-Hop Localization Algorithm)定位算法。首先,對初次定位后的定位誤差給予不同的權重,并在求未知節點坐標時對質心算法加權因子進行優化;其次,用最小二乘法的距離擬合原理對未知節點坐標進行修正;最后,改進算法與原算法具有相同的能耗。
3D-WD-DVHop用錨節點間坐標之差除以錨節點間跳數作為錨節點間的平均跳距,但由于網絡中錨節點分布的隨機性與不均勻性,最終導致計算出的未知節點坐標位置偏差較大。針對這個問題,3D-WFLS-DvHop定位算法將未知節點坐標的誤差進行加權處理,并在求未知節點坐標時對質心算法加權因子進行優化。未知節點的定位誤差示意圖如圖1所示。

圖1 未知節點定位誤差示意圖











將公式(12)進行轉換得:




將公式(14)中S(α1,β1)對參數α1、α2求偏導,S(α2,β2)對參數β1、β2求偏導可得:

3D-WFLS-DvHop定位算法過程如下:
(1)在三維空間的監測區域中隨機部署傳感器節點(包括錨節點、未知節點),網絡中錨節點周期性的向網絡中播送自身的信息,未知節點接收到錨節點的信息后,將信息進行加工并廣播到網絡中。


為驗證3D-WFLS-DvHop定位算法的有效性,基于MATLAB-R2014實驗平臺進行性能分析,從錨節點比例、通信半徑以及總節點個數三個性能評價指標進行仿真,對提出的3D-WFLS-DvHop定位算法與3D-WD-DVHop定位算法進行比較分析。
在邊長為100m的三維環境監測區域內隨機生成400個節點,為了仿真結果的可靠性,進行100次仿真。其中,通信半徑為30m,錨節點隨機產生40個,用符號“*”表示;未知節點隨機產生360個,用符號“°”表示。錨節點與未知節點的隨機分布如圖2所示。

圖2 三維空間的節點隨機分布圖
三維空間中,平均定位誤差的衡量標準如式(16)所示:


(1)錨節點比例對平均定位誤差的影響
在邊長為100m的三維監測環境區域內,節點通信半徑固定為30m,隨機分布400個節點,錨節點比例從10%到40%,同時對3D-WD-DvHop和3D-WFLS-DvHop兩種算法進行仿真,兩種算法的錨節點比例對平均定位誤差的影響如下圖3所示。

圖3 錨節點比例對平均定位誤差的影響關系圖
圖3表示3D-WD-DVHop、3D-WFLS-DvHop兩種定位算法的錨節點比例對平均定位誤差的影響圖,根據圖中數據線的變化,可以看出當網絡中錨節點比例為10%時,3D-WD-DVHop算法的平均定位誤差為0.52m,3D-WFLS-DvHop算法的平均定位誤差為0.395m,3D-WFLS-DvHop算法的定位誤差比3D-WD-DVHop算法的定位誤差低了0.125m;當錨節點比例為40%時,3D-WD-DVHop的平均定位誤差為0.30m,3D-WFLS-DvHop定位算法的平均定位誤差為0.185m,3D-WFLS-DvHop算法的定位誤差比3D-WD-DVHop算法的定位誤差低了0.115m。仿真結果顯示在網絡中平均定位誤差隨錨節點比例的增大而呈下降趨勢,且改進后的3D-WFLS-DvHop定位算法平均定位誤差下降了約12.82%。
(2)節點通信半徑對平均定位精確度的影響
當網絡中總節點個數為400、錨節點比例為40%時,3D-WD-DvHop和3D-WFLS-DvHop兩種算法的通信半徑對平均定位誤差的影響如圖4所示。

圖4 節點通信半徑對定位精確度的影響關系圖
圖4數據線的變化中可以看出,當節點通信半徑為10m時,3D-WD-DVHop算法的平均定位誤差為0.59m,3D-WFLS-DvHop算法的平均定位誤差為0.48m,3D-WFLS-DvHop算法的定位誤差比3D-WD-DVHop算法的定位誤差低了0.11m;當節點通信半徑為40m時,3D-WD-DVHop算法的平均定位誤差為0.41m,3D-WFLS-DvHop算法的平均定位誤差為0.26m,3D-WFLS-DvHop算法的定位誤差比3D-WD-DVHop算法的定位誤差低了0.15m。仿真結果顯示在網絡中平均定位誤差隨著通信半徑的增大呈現平緩下降的趨勢,且改進的3D-WFLS-DvHop定位算法定位誤差下降了約15.06%。
(3)網絡中總節點個數對平均定位誤差的影響
將節點通信半徑固定為30m、錨節點比例固定為40%時,同時對3D-WD-DvHop和3D-WFLSDvHop兩種算法進行仿真,兩種算法的總節點個數對平均定位誤差的影響如圖5所示。

圖5 總節點個數對定位精確度的影響
圖5表示3D-WD-DVHop、3D-WFLS-DvHop兩種定位算法的總節點個數對平均定位誤差的影響圖,根據圖中數據線的變化,可以看出當總節點個數為100時,3D-WFLS-DvHop算法的平均定位誤差為0.30m,3D-WD-DVHop算法的平均定位誤差為0.43m,3D-WFLS-DvHop算法的定位誤差比3D-WD-DVHop算法的平均定位誤差低了0.13m;當總節點個數為400時,3D-WFLS-DvHop算法的平均定位誤差為0.25m,3D-WD-DVHop算法的平均定位誤差為0.38m,3D-WFLS-DvHop算法的平均定位誤差比3D-WD-DVHop算法的平均定位誤差低了0.13m。仿真結果顯示在網絡中平均定位誤差隨著節點總數的增大呈現平緩下降的趨勢,且改進的定位算法定位誤差下降了約11.94%。
將3D-WD-DVHop定位算法與改進的3D-WFLS-DvHop定位算法進行仿真,得到錨節點比例、通信半徑、總節點個數對平均定位誤差的影響如表1。從中得到經改進后的3D-WFLS-DvHop定位算法誤差較小,穩定性更好。

表1 定位算法的平均定位誤差
節點定位技術是無線傳感器網絡中不可或缺的一個重要分支,無線傳感器網絡在節點定位偏差較大的情況下,將會導致采集到的信息不夠準確等,進而增大了用戶終端處理數據的難度,甚至對用戶終端造成誤導的現象。針對這個現象,提出了一種對基于3D-WD-DVHop定位算法的改進算法,通過對定位誤差給予不同的權重、對質心算法加權因子進行優化以及用最小二乘法距離擬合原理對未知節點坐標進行修正的方法極大的降低了節點的定位誤差。實驗結果表明在考慮錨節點比例對平均定位誤差的影響時,改進的算法使平均定位誤差降低了約12.7%;在考慮通信半徑對平均定位誤差的影響時,改進定位算法的定位誤差降低了約13.4%;在考慮節點總數對平均定位誤差的影響時,改進定位算法的定位誤差降低了約11.9%。同時,在200個節點的相同網絡下改進后的算法與原算法能量消耗情況基本相同,實現了改進算法3D-WFLS-DvHop的目的。