無線傳感器網(wǎng)絡差分修正定位算法的改進
摘要:提出了無線傳感器網(wǎng)絡中一種基于接收信號指示強度的改進差分修正算法,與傳統(tǒng)的差分修正算法相比,在該算法中,通過各個信標節(jié)點分別作為差分參考節(jié)點進行定位,避免了單個差分參考節(jié)點對未知節(jié)點定位決定權過大。同時,提出加權因子的概念,體現(xiàn)了各差分參考點對定位效果的決定權。實驗結果表明,改進的差分修正算法的定位精度和穩(wěn)定性有明顯提高。
關鍵詞:無線傳感器網(wǎng)絡;接收信號指示強度;改進的差分修正算法;加權因子;定位
0 引言
無線傳感器網(wǎng)絡(Wireless Sensor Network,WSN)通過部署在目標區(qū)域的大量傳感器節(jié)點,對目標進行監(jiān)測。WSN實現(xiàn)了對目標的定位和追蹤,實時地確定事件發(fā)生的位置,將改變人與客觀世界的交互方式。監(jiān)測事件發(fā)生的位置或獲取信息節(jié)點的位置是WSN最基本的功能之一,所以節(jié)點定位成為WSN的關鍵支撐技術之一。
當前,定位算法的研究已經(jīng)成為一個重要的研究方向和熱點問題。典型的定位算法可分為基于距離的(Range-based)定位算法和距離無關的(Range-free)定位算法。Range-based定位通過測量節(jié)點間點到點的距離或角度信息,使用三邊測量法、三角測量法或最大似然估計法計算未知節(jié)點位置;Range-Free定位則無需距離和角度信息,僅根據(jù)網(wǎng)絡連通性等信息即可實現(xiàn),常用的有DV-Hop算法、APIT算法、質心算法等。距離無關的定位算法對節(jié)點的硬件結構要求較低,但是其定位精度不高,很難滿足室內定位精度的要求。本文重點關注基于距離的定位算法,常用的測距技術有RSSI,TOA,TDOA和AOA等。其中由于RSSI測距借助的硬件設備少,而且許多無線通信模塊都可以直接提供RSS值,因此,基于RSSI的測距方法被廣泛應用。
如何提高定位精度成為了一個比較實際的問題,文獻提出了一種基于RSSI測距的差分修正定位算法,把距離目標節(jié)點最近的信標節(jié)點作為差分參考節(jié)點,對未知節(jié)點進行差分定位。該算法要想獲得較好的定位精度,必須使未知節(jié)點附近有一個信標節(jié)點,這在信標節(jié)點密度不夠大時往往不容易滿足。本文提出了一種基于RSSI測距的多個差分修正參考點的方法,分別對未知節(jié)點進行差分修正。首先判斷未知節(jié)點所在的最小區(qū)域,然后利用路徑損耗模型計算未知節(jié)點與各信標節(jié)點的距離,利用區(qū)域內的各信標節(jié)點分別作為參考節(jié)點,進一步校正,得出未知節(jié)點的坐標。該算法更具有普遍的實用性,定位精度也得到很大提高。
1 算法模型
在基于接收信號強度指示的RSSI定位中,已知發(fā)射節(jié)點的發(fā)射信號強度,接收節(jié)點根據(jù)接收到的信號強度,計算出傳播損耗,利用理論和經(jīng)驗模型將傳輸損耗轉化為距離,再利用三邊測量法算出它的位置。
1.1 無線電傳播路徑損耗模型分析
無線電傳播路徑損耗對于RSSI定位算法的定位精度有很大影響。常用的傳播路徑損耗模型有:自由空間傳播模型、對數(shù)距離路徑損耗模型、哈它模型、對數(shù)-常態(tài)分布模型等。
自由空間無線電傳播路徑損耗模型如下:
Loss=32.44+10nlg(d0)+10nlg(f) (1)
式中:Loss為自由空間損耗(單位:dB);d0為距信源的距離(單位:km);f為頻率(單位:MHz);n為路徑衰減因子。在實際應用環(huán)境中,由于多徑、繞射、障礙物等因素,對數(shù)-常態(tài)分布模型將更加合理。對數(shù)-常態(tài)分布模型如下:
式中:PL(d)為經(jīng)過距離d后的路徑損耗;Xδ為平均值為0的高斯分布隨機變數(shù),其標準差范圍為4~10;n的范圍為2~5。取d0為參考距離(單位:m),通常取1 m,代入式(1),得到Loss即的值。
未知節(jié)點接收到信標節(jié)點的信號強度RSSI為:
RSSI=Psend+Pamplify-PL(d) (3)
式中:RSSI是接收到的功率;Psend是發(fā)射信號的功率;
Pamplify是天線的增益;PL(d)是路徑損耗。將式(2)代入式(3),簡化后可得式(4)。
RSSI=b-10nlg(d) (4)
式中,由式(4)可知,RSSI與10lg(d)成線性關系。在具體環(huán)境下,根據(jù)公式計算出相應的b和n,此環(huán)境的信號傳輸模型便確定下來,進而為定位做好準備。
1.2 三邊測量法
三邊測量法中,已知3個信標節(jié)點的坐標分別為Bi(xi,yi),Bi(x,yi),Bk(xk,yk),以及各信標點到未知節(jié)點的距離分別為di,dj,dk,假設未知節(jié)點的坐標為M(x,y)。根據(jù)二維空間的距離計算公式,可得到一個非線性方程組:
1.3 差分修正定位算法
傳統(tǒng)差分修正算法如圖1所示,信標節(jié)點為A(x1,y1),B(x2,y2),C(x3,y3),未知節(jié)點M(x,y)。D(x4,y4)是與未知節(jié)點M最近的信標節(jié)點,令其為差分參考節(jié)點。差分參考節(jié)點D到信標節(jié)點A,B,C的實際距離分別為dDA,dDB,dDC;未知節(jié)點M到信標節(jié)點A,B,C的測量距離分別為dA,dB,dC。通過信標節(jié)點對差分參考節(jié)點的定位實現(xiàn)對未知節(jié)點坐標的校正。
首先通過A,B,C用三邊測量法求出D點的測量坐標,與D點的實際坐標相比較,得出偏移量(△x,△y)。用同樣的辦法通過A,B,C對M點進行定位,得出M點的測量坐標。在這里,可以將差分參考點D的偏移量近似作為未知節(jié)點M的偏移量。M點的測量坐標加上差分參考點D的偏移量,得出M的定位坐標(x,y)。如式(7)所示:
2 改進的差分修正算法與實現(xiàn)
傳統(tǒng)的差分修正算法中,差分修正參考點的選取存在一些不合理的因素。該算法要取得較好的定位效果必須有一個信標節(jié)點在未知節(jié)點附近。在實際應用場合,這一條件通常難以滿足:在信標節(jié)點密度有限的情況下,未知節(jié)點處于信標節(jié)點附近不是一個大概率事件。如圖2所示,未知節(jié)點距離各個信標節(jié)點的距離都不是很接近,在定位區(qū)域內無法選出最優(yōu)參考點,那么此時采用最近的參考點對未知節(jié)點校正,就會產(chǎn)生很大的誤差。
本文提出改進的差分修正算法,利用各信標節(jié)點分別作為參考點進行差分修正,從一定程度上可以避免此類問題的出現(xiàn)。
2.1 改進的差分修正定位算法模型
首先,根據(jù)接收到的RSSI的大小,確定距離未知節(jié)點M最近的三個信標節(jié)點。以這三個信標節(jié)點確定一個三角形,求出這個三角形的質心。距離該質心最近的信標節(jié)點作為定位計算的第四個信標節(jié)點,此四點所圍成的區(qū)域,便是未知節(jié)點所在的最小區(qū)域。
然后,以A,B,C,D為信標節(jié)點對未知節(jié)點M進行定位。首先以A點作為差分修正參考點,B,C,D作為信標節(jié)點,利用式(7)得出M以A為差分修正點的定位坐標(xma,yma)。然后分別以B,C,D作為差分修正參考點對M(X,Y)進行定位,得到差分修正坐標(xmb,ymb),(xmc,ymc),(xmd,ymd)。
在傳統(tǒng)的差分修正算法中,沒有充分利用其他信標節(jié)點對節(jié)點位置影響力的大小,影響了定位精度。改進的差分修正算法,通過加權因子來體現(xiàn)信標節(jié)點對節(jié)點位置坐標決定權的大小。根據(jù)差分參考點到未知節(jié)點的距離對差分修正坐標進行加權修正,計算出M的坐標。
式中:dA,dB,dC,dD為信標節(jié)點到未知節(jié)點的距離。因子體現(xiàn)了距離未知節(jié)點越近的信標節(jié)點作為參考點時,對未知節(jié)點坐標位置的影響力越大。通過這種內在關系的反映來達到提高定位精度的目的。
2.2 算法實現(xiàn)過程
基于上面提出的改進差分修正算法,其實現(xiàn)的步驟如下:
(1)信標節(jié)點周期性地發(fā)送自身信息:節(jié)點ID、自身位置信息。
(2)未知節(jié)點在收到信息后,對同一信標節(jié)點的RSSI求均值。
(3)當未知節(jié)點接收到一定數(shù)量的信標節(jié)點的信息后,不再接收信息。未知節(jié)點根據(jù)RSSI從強到弱的順序,建立RSSI值與節(jié)點到信標節(jié)點距離的映射。建立以下三個集合。
信標節(jié)點集合:B_set={b1,b2,…,bm};
未知節(jié)點到信標節(jié)點的距離集合:D_set={d1,d2,…,dm},d1<d2<…<dm;
信標節(jié)點的位置集合:P_set={(x1,y1),(x2,y2),…,(xm,ym)};
(4)選取RSSI值大的前幾個信標節(jié)點進行定位計算。在這里按照本文改進的算法,選取未知節(jié)點所在最小區(qū)域的四個信標節(jié)點用于定位。用改進的差分修正定位算法對這四個信標節(jié)點分別進行差分定位,利用式(8)求出未知節(jié)點的坐標(x,y)。
(5)計算定位誤差,其中(x,y)為未知節(jié)點的真實位置。
3 仿真結果
在Matlab平臺上,分別對差分定位算法和改進的差分定位算法進行仿真。仿真條件是在一個30 m的正方形區(qū)域內,傳播路徑損耗模型選擇經(jīng)典的自由空間模型和對數(shù)一常態(tài)模型。在該區(qū)域的四個頂點,分別放函數(shù)來生成,在該區(qū)域內隨機分布,一共生成20個未知節(jié)點。然后根據(jù)RSSI與距離的關系,由式(4)生成RSSI數(shù)據(jù),這里b取30,n取2,并在數(shù)據(jù)中添加均值為0,方差δ為3和7的高斯噪聲,作為RSSI的隨機分量,以模擬實際環(huán)境中反射、多徑等帶來的影響。按照上述方法,在兩種情況下分別對兩種算法進行仿真運算,得出未知節(jié)點的測量位置。兩種算法的仿真結果與對比如圖3~圖6所示。
從圖中可以看出,改進的差分修正定位算法的位置偏移量明顯小于傳統(tǒng)的差分修正定位算法。改進的差分修正定位算法,通過選取多個差分參考點的方法,很好地解決了由于選擇單個差分參考節(jié)點,從而導致誤差過大的問題。
表1給出了兩種差分修正算法定位效果的比較,從表中可以看出,改進的差分修正算法和差分修正算法相比,定位精度和穩(wěn)定性有明顯提高。
4 結論
傳統(tǒng)的差分修正算法由于只考慮距離未知節(jié)點最近的信標點作為參考節(jié)點,在定位過程中就會使差分參考節(jié)點對未知節(jié)點坐標的決定權過大。本文提出的改進的差分修正算法,利用區(qū)域內的信標節(jié)點分別作為差分參考節(jié)點,進行差分定位,并且通過采用差分參考節(jié)點到未知節(jié)點的距離的倒數(shù)作為權值,更好地體現(xiàn)了各個差分參考節(jié)點對未知節(jié)點的決定權。在相同條件下仿真,定位精度較傳統(tǒng)的差分修正算法有很大提高,定位的穩(wěn)定性也有明顯提升。