傅 彬
(紹興職業(yè)技術(shù)學(xué)院,浙江 紹興 312000)
WSN中基于改進(jìn)的RSSI定位算法研究
傅 彬
(紹興職業(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),文中算法具有比較好的效果。
節(jié)點(diǎn)定位;RSSI;WSN
如何能夠更好地進(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比例修正的DV-Hop定位算法,該算法能夠提高定位精度;文獻(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)重,取得了比較好的效果。
在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è)量法得到如下:
(2)
得到未知節(jié)點(diǎn)的近似坐標(biāo)為:
(3)
通過(guò)加權(quán)得到未知節(jié)點(diǎn)的最終估計(jì)位置如下:
(4)
2.1 改進(jìn)RSSI處理方法
原來(lái)的RSSI模型算法使用的是均值模型,得到RSSI的結(jié)果如下:
(5)
式(5)中,m是預(yù)先設(shè)定好的RSSI的閾值,采用均值法可以解決RSSI隨機(jī)問(wèn)題,但受到較大干擾而使得數(shù)值結(jié)果出現(xiàn)震蕩,因此效果不是很好。根據(jù)對(duì)數(shù)模型,在收發(fā)距離相同時(shí),RSSI值服從正態(tài)分布,概率函數(shù)如下:
(6)
設(shè)定RSSI1,RSSI2,…,RSSIm是RSSI的總體樣本,rssi1,rssi2,…,rssim是對(duì)應(yīng)的樣本的觀測(cè)值,則似然函數(shù)如下:
(7)
對(duì)式(7)兩邊分別對(duì)μ、σ2取導(dǎo)數(shù),得到方程組如下:
(8)
解方程,得到未知參數(shù)μ、σ2的最大似然估計(jì)值:
(9)
通過(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í)的距離信息。
(10)
當(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)重因子改為如下公式:
(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)值因子。
(12)
其中,l表示三邊的邊長(zhǎng),S為面積。
本文采用的加權(quán)算法如下:
(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)為:
(14)
2.3 算法流程
本文算法流程如圖1所示。
本文選取節(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)存為4GB,硬盤容量為500GB。軟件環(huán)境選擇WindowsXP,仿真軟件選擇MATLAB2010。
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次仿真的平均定位誤差折線圖。可以看出,本文算法的定位誤差始終小于基本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ò)的成本。
無(wú)線傳感中的節(jié)點(diǎn)定位一直都是研究的重點(diǎn),本文基于RSSI模型定位算法,采用了改進(jìn)的加權(quán)定位,使得算法的定位效果有了明顯的提高。仿真實(shí)驗(yàn)說(shuō)明本文算法對(duì)降低節(jié)點(diǎn)的定位誤差具有一定的效果。
[1] 呂淑芳.無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位研究綜述[J].傳感器與微系統(tǒng),2016,35(5):1-3.
[2] 顏嘉俊,雷勇.基于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.
[4] 姚汝賢,王曉涓.基于測(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.
[6] 信召建,胡屏.基于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.
[9] 黃海輝,李龍連.WSN中一種基于RSSI的移動(dòng)節(jié)點(diǎn)改進(jìn)定位算法[J].電子技術(shù)應(yīng)用,2015,41(1):86-89.
Research on positioning algorithm based on improved RSSI in WSN
Fu Bin
(Shaoxing Vocational & Technical College,Shaoxing 312000, China)
To reduce node positioning error has always been a direction that has been constantly improved in wireless sensor network. Based on RSSI positioning algorithm, this paper adds the concept of weighting to reduce positioning error. First of all, aiming at the inaccurate average value of RSSI in positioning algorithm, normal distribution is used to obtain the threshold value through likelihood function so as to prevent the average value from being too large. Secondly, weight factor is used to distribute the weight of estimated distance between the anchor node and unknown node. In the MATLAB simulation experiment platform, it has been found from comparing algorithms in terms of communication radius and anchor node density that algorithm in this paper has better effect.
node positioning;RSSI;WSN
TP393
A
10.19358/j.issn.1674- 7720.2017.05.021
傅彬.WSN中基于改進(jìn)的RSSI定位算法研究[J].微型機(jī)與應(yīng)用,2017,36(5):69-71,75.
2016-10-12)
傅彬(1980-),男,碩士,講師,主要研究方向:信息安全,無(wú)線傳感。