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