傅彬
(紹興職業(yè)技術(shù)學(xué)院,浙江 紹興 312000)
摘要:降低節(jié)點(diǎn)定位誤差是無(wú)線傳感網(wǎng)一直不斷改進(jìn)的方向。在RSSI定位算法的基礎(chǔ)上,引入加權(quán)概念降低定位誤差。首先針對(duì)定位算法中RSSI均值不準(zhǔn)確的問(wèn)題,采用常態(tài)分布處理,通過(guò)似然函數(shù)來(lái)獲得RSSI的閾值,從而避免均值過(guò)大的情況;其次通過(guò)權(quán)值因子來(lái)分配錨節(jié)點(diǎn)與未知節(jié)點(diǎn)之間估算距離的權(quán)重。在MATLAB仿真實(shí)驗(yàn)平臺(tái)中,與其他算法在通信半徑和錨節(jié)點(diǎn)密度等條件下的相比發(fā)現(xiàn),文中算法具有比較好的效果。
關(guān)鍵詞:節(jié)點(diǎn)定位;RSSI;WSN
中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674-7720.2017.05.021
引用格式:傅彬.WSN中基于改進(jìn)的RSSI定位算法研究[J].微型機(jī)與應(yīng)用,2017,36(5):69-71,75.
0引言
如何能夠更好地進(jìn)行節(jié)點(diǎn)定位一直以來(lái)都是無(wú)線傳感網(wǎng)的主要研究方向,節(jié)點(diǎn)定位效果的好壞一方面受地理位置和環(huán)境的影響,另一方面主要來(lái)自錨節(jié)點(diǎn)與未知節(jié)點(diǎn)之間的計(jì)算方式等影響[1]。本文從RSSI定位算法角度來(lái)研究有關(guān)未知節(jié)點(diǎn)的定位。文獻(xiàn)[2]采用RSSI測(cè)距法測(cè)出未知節(jié)點(diǎn)與錨節(jié)點(diǎn)的距離,用最小二乘法粗略定位,取得了一定的效果;文獻(xiàn)[3]提出對(duì)節(jié)點(diǎn)初始位置進(jìn)行初步估計(jì),然后對(duì)其進(jìn)行逐步精解;文獻(xiàn)[4]提出了將RSSI測(cè)距與量子粒子群算法進(jìn)行結(jié)合調(diào)度節(jié)點(diǎn)定位方法;文獻(xiàn)[5]提出以多信標(biāo)節(jié)點(diǎn)質(zhì)心定位修正算法來(lái)計(jì)算節(jié)點(diǎn)坐標(biāo)修正值;文獻(xiàn)[6]提出了以恒定步長(zhǎng)進(jìn)行節(jié)點(diǎn)趨勢(shì)移動(dòng)的校驗(yàn)法,仿真實(shí)驗(yàn)說(shuō)明能夠提高定位精度;文獻(xiàn)[7]提出了一種基于RSSI距離比的MDS定位算法;文獻(xiàn)[8]提出基于RSSI比例修正的DVHop定位算法,該算法能夠提高定位精度;文獻(xiàn)[9]提出基于RSSI的MCL定位算法,提高了采樣準(zhǔn)確率,從而可以提高定位精度,降低功耗。
根據(jù)以上研究的結(jié)果,本文在RSSI定位算法的基礎(chǔ)上,針對(duì)其不足,采用似然函數(shù)來(lái)處理RSSI閾值,通過(guò)權(quán)值因子來(lái)分配錨節(jié)點(diǎn)與未知節(jié)點(diǎn)之間估算距離的權(quán)重,取得了比較好的效果。
1RSSI測(cè)距簡(jiǎn)介
在RSSI中主要是通過(guò)信號(hào)功率之間能量損失來(lái)估算發(fā)射節(jié)點(diǎn)與接收節(jié)點(diǎn)之間的距離,如下:
PR(d)=PtGtGrλ2/16π2d2L(1)
式中,PR(d)表示與發(fā)射節(jié)點(diǎn)相距d處的接收功率,Pt為發(fā)射節(jié)點(diǎn)的功率,Gt、Gr分別為發(fā)射節(jié)點(diǎn)和接收節(jié)點(diǎn)的增益,L為損耗定量,d為距離,λ為波長(zhǎng)。通過(guò)式(1)得到各個(gè)節(jié)點(diǎn)之間的實(shí)際距離。
RSSI是一種與距離相關(guān)的定位算法,由于定位效果容易受到來(lái)自自然界等外部因素的影響,因此這種測(cè)距方法與真實(shí)距離存在一定的差距。加權(quán)算法是一種與距離無(wú)關(guān)的算法,將這兩種算法進(jìn)行融合,利用前者為后者提供距離權(quán)值信息,后者通過(guò)使用加權(quán)算法提高RSSI算法的定位精度,這樣可以降低成本,提高精度,降低能耗。設(shè)定某個(gè)區(qū)域中存在N個(gè)錨節(jié)點(diǎn),其中,A、B、C為其中的3個(gè)錨節(jié)點(diǎn),坐標(biāo)分別為(xa,ya)、(xb,yb)和(xc,yc);未知節(jié)點(diǎn)為D,坐標(biāo)為(x,y),由3個(gè)錨節(jié)點(diǎn)定位出來(lái)的未知節(jié)點(diǎn)的估算坐標(biāo)為(xi,yi),因此通過(guò)使用RSSI模型計(jì)算節(jié)點(diǎn)D到3個(gè)錨節(jié)點(diǎn)的距離為:da、db和dc,采用三邊測(cè)量法得到如下:
通過(guò)加權(quán)得到未知節(jié)點(diǎn)的最終估計(jì)位置如下:
式(4)中每3個(gè)錨節(jié)點(diǎn)和未知節(jié)點(diǎn)通過(guò)三邊測(cè)量法得到未知節(jié)點(diǎn)的坐標(biāo),這樣一共得到C3N個(gè)未知節(jié)點(diǎn)的近似坐標(biāo),對(duì)其進(jìn)行加權(quán),權(quán)重是未知節(jié)點(diǎn)到3個(gè)錨節(jié)點(diǎn)距離之和的倒數(shù)。
2基于改進(jìn)的RSSI的加權(quán)定位算法
2.1改進(jìn)RSSI處理方法
原來(lái)的RSSI模型算法使用的是均值模型,得到RSSI的結(jié)果如下:
式(5)中,m是預(yù)先設(shè)定好的RSSI的閾值,采用均值法可以解決RSSI隨機(jī)問(wèn)題,但受到較大干擾而使得數(shù)值結(jié)果出現(xiàn)震蕩,因此效果不是很好。根據(jù)對(duì)數(shù)模型,在收發(fā)距離相同時(shí),RSSI值服從正態(tài)分布,概率函數(shù)如下:
解方程,得到未知參數(shù)μ、σ2的最大似然估計(jì)值:
通過(guò)采集的RSSI樣本數(shù)據(jù)就能估計(jì)出總體服從正態(tài)分布的均值和方差。將其代入RSSI的測(cè)距模型,最后得到錨節(jié)點(diǎn)與未知節(jié)點(diǎn)之間的距離。
2.2權(quán)值因子
對(duì)RSSI中三邊定位法獲得的未知節(jié)點(diǎn)的估計(jì)坐標(biāo)進(jìn)行加權(quán),權(quán)值因子只考慮三邊定位時(shí)的距離信息。
當(dāng)距離增大時(shí),RSSI的值下降,當(dāng)距離增大到一定程度時(shí),RSSI值的變化就無(wú)法反映距離的增長(zhǎng)了。因此RSSI值越大,該數(shù)據(jù)換算成距離信息的定位帶來(lái)的誤差也就越小,因此估算坐標(biāo)進(jìn)行加權(quán)計(jì)算就越重要。為了進(jìn)一步提高定位精度,將權(quán)重因子改為如下公式:
wi=1da(i)+1db(i)+1dc(i)(11)
改進(jìn)的權(quán)重因子不但將聚類信息作為權(quán)值因子,還考慮了角度、邊長(zhǎng)、面積等因素。在進(jìn)行三邊定位中,3個(gè)錨節(jié)點(diǎn)組成的三角形如果是等邊三角形,定位效果最佳,當(dāng)3個(gè)錨節(jié)點(diǎn)處于一條直線上時(shí),定位效果最差。因此本文采用以下方法作為權(quán)值因子。
其中,l表示三邊的邊長(zhǎng),S為面積。
本文采用的加權(quán)算法如下:
y=∑ki=1wiyi∑ki=1wi(13)
結(jié)合式(12), (x1,y1)、(x2,y2)和(x3,y3)是通過(guò)式(12)計(jì)算出來(lái)的未知節(jié)點(diǎn)的坐標(biāo),對(duì)于這三個(gè)坐標(biāo)再進(jìn)行加權(quán)處理,權(quán)值系數(shù)分別為α、β和χ,三者滿足α+β+χ=1,因此未知節(jié)點(diǎn)的坐標(biāo)為:
2.3算法流程
本文算法流程如圖1所示。
3仿真實(shí)驗(yàn)
本文選取節(jié)點(diǎn)隨機(jī)分布在50 m×50 m的二維正方形區(qū)域中,節(jié)點(diǎn)總數(shù)為50,選擇錨節(jié)點(diǎn)的數(shù)量分別為20、25、30、35,未知節(jié)點(diǎn)隨機(jī)分布個(gè)數(shù)為20個(gè),本文算法中的權(quán)值系數(shù)分別為α,β和χ,分別取值為0.6、0.2和0.2,通過(guò)節(jié)點(diǎn)之間的距離推出RSSI數(shù)值,進(jìn)行仿真,次數(shù)為100次。硬件選擇CPU為酷睿i3,內(nèi)存為4 GB,硬盤(pán)容量為500 GB。軟件環(huán)境選擇Windows XP,仿真軟件選擇MATLAB 2010。
3.1與基本的RSSI模型算法比較
選擇錨節(jié)點(diǎn)為20時(shí),采用基本RSSI模型算法與本文算法的定位效果分別如圖2、圖3所示。
從圖2、3中可以發(fā)現(xiàn),本文算法定位誤差要明顯小于基于RSSI的差分修正質(zhì)心定位算法。當(dāng)選擇錨節(jié)點(diǎn)個(gè)數(shù)為20時(shí),20個(gè)未知節(jié)點(diǎn)在兩種算法下的定位誤差分別為3.64 m和8.14 m。因此,當(dāng)錨節(jié)點(diǎn)數(shù)據(jù)占據(jù)總節(jié)點(diǎn)數(shù)目50%時(shí),節(jié)點(diǎn)定位的誤差有了一定的改進(jìn)。
圖4是兩種算法進(jìn)行100次仿真的平均定位誤差折線圖。圖4100次仿真下兩種算法的定位效果
可以看出,本文算法的定位誤差始終小于基本RSSI模型算法,這說(shuō)明本文算法采用多種權(quán)值因子確實(shí)有效地降低了算法的定位誤差。而且隨著信標(biāo)節(jié)點(diǎn)數(shù)量的增大,兩種算法的定位誤差都在逐步減少,本文算法首先在25~30個(gè)錨節(jié)點(diǎn)處取得比較不錯(cuò)的定位誤差情況,而基本RSSI模型算法在錨節(jié)點(diǎn)數(shù)量達(dá)到30個(gè)之后,其定位誤差才趨于穩(wěn)定。這說(shuō)明本文算法不需要過(guò)多的錨節(jié)點(diǎn)就能實(shí)現(xiàn)大概在2 m左右的定位誤差,節(jié)省了成本,降低了定位能耗,有效地提高了網(wǎng)絡(luò)的生命周期。
3.2與其他RSSI模型算法的比較
將本文算法與文獻(xiàn)[8]、文獻(xiàn)[9]算法從不同通信半徑和錨節(jié)點(diǎn)密度兩個(gè)方面進(jìn)行比較。
3.2.1不同通信半徑下的定位誤差對(duì)比
設(shè)置不同的節(jié)點(diǎn)通信半徑,將本文算法與文獻(xiàn)[8]算法、文獻(xiàn)[9]算法進(jìn)行定位誤差比較,效果如圖5所示。從圖中可以發(fā)現(xiàn),當(dāng)節(jié)點(diǎn)通信半徑逐漸增大時(shí),錨節(jié)點(diǎn)信號(hào)強(qiáng)度不斷增加,測(cè)量距離更加準(zhǔn)確。本文算法由于改進(jìn)了RSSI處理方法并增加了權(quán)值因子,因此使得傳感器節(jié)點(diǎn)定位誤差慢慢減少,定位精度逐步提高。
3.2.2不同錨節(jié)點(diǎn)密度下的定位誤差比較
錨節(jié)點(diǎn)的數(shù)量不同關(guān)系到無(wú)線傳感網(wǎng)中節(jié)點(diǎn)定位成本的不同。圖6展示了本文算法和文獻(xiàn)[8]、文獻(xiàn)[9]算法在錨節(jié)點(diǎn)密度不同時(shí)的定位誤差變化情況。從圖中發(fā)現(xiàn),錨節(jié)點(diǎn)的密度不斷增加時(shí),三種定位算法的誤差都在逐步減小,從整個(gè)定位過(guò)程來(lái)看,本文算法相比于其他兩
種算法定位誤差最低,這說(shuō)明本文算法具有改進(jìn)效果,從另一個(gè)側(cè)面降低了整個(gè)無(wú)線傳感網(wǎng)絡(luò)的成本。
4結(jié)束語(yǔ)
無(wú)線傳感中的節(jié)點(diǎn)定位一直都是研究的重點(diǎn),本文基于RSSI模型定位算法,采用了改進(jìn)的加權(quán)定位,使得算法的定位效果有了明顯的提高。仿真實(shí)驗(yàn)說(shuō)明本文算法對(duì)降低節(jié)點(diǎn)的定位誤差具有一定的效果。
參考文獻(xiàn)
[1] 呂淑芳.無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位研究綜述[J].傳感器與微系統(tǒng),2016,35(5):1-3.
?。?] 顏嘉俊,雷勇.基于RSSI的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位[J].計(jì)算機(jī)仿真,2012,29(7):151-154.
[3] 章磊,黃光明.基于RSSI的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,29(2):291-294.
?。?] 姚汝賢,王曉涓.基于測(cè)距和自學(xué)習(xí)粒子群算法的WSN節(jié)點(diǎn)定位[J].重慶師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2015,32(11):111-115.
[5] 劉玉軍,蔡猛,高立恒.基于RSSI測(cè)距的傳感器節(jié)點(diǎn)質(zhì)心定位修正算法[J].計(jì)算機(jī)測(cè)量與控制,2014,22(9):2860-2862.
?。?] 信召建,胡屏.基于RSSI值的WSNs節(jié)點(diǎn)測(cè)距算法改進(jìn)與定位實(shí)現(xiàn)[J].傳感器與微系統(tǒng),2014,33(6):133-136.
[7] 吳桂平,虞慧群,范貴生.一種基于RSSI距離比的傳感器節(jié)點(diǎn)定位算法[J].華東理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2013,39(5):596-600.
[8] 方旺盛,雷高祥,黃輝.節(jié)點(diǎn)RSSI比值跳數(shù)修正的DV-Hop算法[J].傳感器與微系統(tǒng),2016,35(7):132-135.
?。?] 黃海輝,李龍連.WSN中一種基于RSSI的移動(dòng)節(jié)點(diǎn)改進(jìn)定位算法[J].電子技術(shù)應(yīng)用,2015,41(1):86-89.