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