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