丁承君,柳 瑛,段 萍,付勝梁
(河北工業(yè)大學(xué) 機械工程學(xué)院,天津 300130)
無線傳感器網(wǎng)絡(luò)技術(shù)作為當(dāng)今世界最重要的技術(shù)之一,廣泛應(yīng)用在環(huán)境監(jiān)測、醫(yī)療衛(wèi)生、國防軍事、智能交通、空間探索等許多領(lǐng)域.節(jié)點自定位技術(shù)是無線傳感器網(wǎng)絡(luò)的關(guān)鍵技術(shù)之一,節(jié)點自定位的準確性是提供監(jiān)測信息事件位置信息的前提.也就是說在無線傳感器網(wǎng)絡(luò)這個全新的研究領(lǐng)域中,網(wǎng)絡(luò)節(jié)點自身定位是當(dāng)前研究人員和學(xué)者需要首先研究和解決的重要問題.其研究的關(guān)鍵是在有限的成本、能量和體積下,使無線傳感器網(wǎng)絡(luò)節(jié)點定位達到低能耗、低成本、低復(fù)雜性和高精度的定位能力[1].
基于錨圓內(nèi)交點質(zhì)心定位算法是無需測距的定位算法,指當(dāng)被定位的節(jié)點恰好處在錨圓的圓周上時,這時的基于錨圓內(nèi)交點質(zhì)心定位算法實質(zhì)上就變成了基于測距的算法.該算法雖然簡單,容易實現(xiàn),但是定位不夠精確,主要原因是錨圓的半徑與實際不相符.因為在實際的外界環(huán)境中,發(fā)射功率、發(fā)射器質(zhì)量、溫度、濕度、障礙物多少等都會影響信號的質(zhì)量,從而產(chǎn)生嚴重的誤差,如圖1示.而基于RSSI測距定位算法,有時會出現(xiàn)死區(qū)域,可能造成安防系統(tǒng)只報警,電子地圖上顯示不出事故發(fā)生的地點的情況.與錨圓法相結(jié)合后就會消除這種情況,且相比于其它測距定位算法如電波傳播定位算法 TOA、電波入射角定位算法AOA、電波傳播時間差定位算法TDOA等技術(shù)有硬件要求低,功耗低等優(yōu)點,由此算法通過RSSI轉(zhuǎn)化過來的距離作為錨圓半徑,這時的半徑的精確性大大提高[2].基于RSSI的測距算法具有與實際相符的優(yōu)點,因此本文將RSSI與錨圓內(nèi)交點質(zhì)心定位算法進行融合,減小了錨圓內(nèi)交點間的距離,使定位精度得到了提高.
如圖2示,錨圓以定位節(jié)點與參考節(jié)點的距離為半徑、以定位節(jié)點為圓心組成的一個幾何圓.為方便敘述將定位節(jié)點稱為錨定點.處在無線通信網(wǎng)絡(luò)中的未知節(jié)點的位置可以由幾個錨定點來確定.如圖2a),若未知節(jié)點k的無線通信范圍內(nèi)有一個節(jié)點,則未知節(jié)點k是在錨圓內(nèi)1;如圖2b)所示,如果未知節(jié)點k的無線通信范圍內(nèi)有兩個節(jié)點,則未知節(jié)點k必然屬于錨圓a1與a2交集;同理如圖2c)所示,如果未知節(jié)點k的無線通信范圍內(nèi)有3個節(jié)點,則未知節(jié)點k必然屬于錨圓a1、a2與a3的交集.這時未知節(jié)點k的位置在一個不規(guī)則圖形范圍內(nèi).為了簡化估計其位置,3個錨定點的疊加區(qū)域近似成一個三角形[3],如圖2d).假設(shè)未知節(jié)點k的位置就是這個3角的質(zhì)心.為求出這個質(zhì)心的位置,假設(shè)已知3個錨定點 a1、a2、a3的位置坐標(biāo)分別為、,所有節(jié)點的無線射程加權(quán)后全為,則3個錨圓的一個內(nèi)交匯點 1的坐標(biāo)可以式 (1)求出
圖1 錨圓算法產(chǎn)生的誤差Fig.1 Theerror produced by Anchor circlealgorithm
圖2 無線通信范圍的交疊區(qū)域Fig.2 Overlap region of thew ireless communication rang
上述定位算法是以未知節(jié)點通信范圍內(nèi)的任意3個錨圓內(nèi)交點的質(zhì)心作為坐標(biāo)位置估計.在實際中未知節(jié)點通信范圍內(nèi)少于3個錨定點時,此算法無效,未能實現(xiàn)定位.當(dāng)大于3個錨圓時,首先選擇信號強度最大的3個,再應(yīng)用上面的算法.未知節(jié)點接收到的錨定點的信號越強,說明兩者的距離越近,得出的結(jié)果越是精確.本算法綜合了基于RSSI測距,使疊加區(qū)域大大縮小,提高了定位精度.
無線信號的發(fā)射功率、接收功率和收發(fā)兩端距離三者之間的關(guān)系可以用式 (5)表示,其中是接收端接收到的無線信號的功率,是發(fā)射端的無線信號功率, 是收發(fā)兩節(jié)點之間的距離,即錨圓半徑,為信號傳播因子,其數(shù)值的大小表示無線信號傳播環(huán)境的好壞.
在式 (5)兩邊同時取對數(shù)得
由式 (8)中可以得出,接收到信號的強度與信號所傳輸距離之間的關(guān)系取決于因數(shù)A和n的值.對于無線網(wǎng)絡(luò)環(huán)境的描述可用射頻參數(shù)A與n來表示.射頻參數(shù)大小取決于射頻發(fā)射功率,單位是dBm,定義:距發(fā)射器1m時接收到平均能量的絕對值,如平均接收能量為 20 dBm,那么參數(shù)A被定為20.射頻參數(shù)n為路徑損失指數(shù),表示隨距離拉長信號強度衰速度,即n值越大,衰減速度越快.接收信號強度的衰減與距離成比例.
下面對接收信號強度與兩個環(huán)境因數(shù)A、n之間的關(guān)系進行分析.圖3表示,當(dāng)n不變,A值不同時,接收信號隨距離而衰減的情況.從圖中可以看出,在10 m以內(nèi),隨著距離的增加,接收到的信號迅速減少.在距離較遠時,RSSI值衰減的幅度與距離增加值的比值基本上等于圖中曲線的斜率.A值的變化對曲線的走向的影響不大.A的典型值一般在40左右.
當(dāng)A不變,n值變化時,接收信號隨距離而衰減的情況如圖4所示.在10 m以內(nèi),隨著距離的增加,接收到的信號迅速減少.在距離較遠時,RSSI值衰減的幅度與距離增加的比值基本上等于圖中曲線的斜率.n值越小,信號傳播得越遠.在實際環(huán)境中,路徑、反射、障礙物越多,n值越小.這符合理論曲線,即n值越小,基于RSSI定位技術(shù)越精確[6].得到距離還不是錨圓半徑,因為這時距離可能有誤差,以此距離為半徑的錨圓可能沒有交集,出現(xiàn)測量死區(qū)域,如圖5示,需要半徑進行加權(quán).加權(quán)因子是,如式 (9)所示
圖3 n不變,A變化時RSSI與傳播距離的關(guān)系曲線Fig.3 The relationship of RSSI and thepropagation distance(n is invariant,A is changing)
圖4 A不變,n變化時RSSI與傳播距離的關(guān)系曲線Fig.4 The relationship of RSSI and the propagation distance(A is invariant,n is changing)
1)每個錨定點ai都以一定的信號強度將自身的位置信息和地址的信息包廣播出去.
2)未知節(jié)點接收到鄰居錨定點的信息包,并計算該錨定點的連通度,連通度的定義如下式 (10)所示[7]
3)設(shè)定一個閾值,如CMn.aigt;90%,當(dāng)高于這個值時為有效值.這個閾值根據(jù)實際情況來確定.
4)根據(jù)公式 (5)~(9),計算出錨圓半徑.
5)根據(jù)公式 (1)~(4),計算出錨圓(未知節(jié)點)的位置坐標(biāo).
以IT公司開發(fā)的CC2431系列作為硬件平臺布置無線網(wǎng)絡(luò)傳感器節(jié)點,它使用IEEE802.15.4網(wǎng)絡(luò)通信協(xié)議,工作頻段為2.4GHz,可以隨時提取RSSI值.實驗環(huán)境為室外廣闊平坦的場地,所有節(jié)點的通信能力一致.無線傳感器節(jié)點隨機分布于100m×100m的區(qū)域內(nèi),節(jié)點數(shù)為100個(其中錨定點10個、待測節(jié)點90個),節(jié)點的通信半徑為1m,在IAR軟件平臺上,采用C語言編程,同時采用MATLAB對數(shù)據(jù)進行輔助分析,傳感器節(jié)點分布如圖6所示.
不同錨定點數(shù)情況下,3種定位算法的定位精度比較結(jié)果如圖7所示.從圖7可知,3種算法的定位精度都隨著錨定點數(shù)的增加而增加,在相同錨定點數(shù)下,本文提出的基于RSSI-錨圓定位算法的精度遠遠高于以上兩種定位算法.這主要是由于本文算法通過RSSI轉(zhuǎn)化過來的距離作為錨圓半徑,保證了半徑計算的精度,從而使節(jié)點定位準確性大大提高.圖7還表明,當(dāng)無線傳感器網(wǎng)中錨定點密度較小時,節(jié)點定位誤差較大,當(dāng)錨定點密度增大時,定位誤差相對較小.對比結(jié)果說明,本文優(yōu)先選擇RSSI與錨圓內(nèi)交點質(zhì)心定位算法進行融合,使疊加區(qū)域大大縮小,基于RSSI的測距與實際相符,從而減小了錨圓內(nèi)交點間的距離,使定位精度得到了保證.
圖5 待測點k位于測量死區(qū)域內(nèi)Fig.5 Stay point k is located in the dead region
圖6 無線傳感器節(jié)點部署情況Fig.6 Wirelesssensornodesdeployed situation figure
圖7 不同錨定點數(shù)3種算法的定位精度Fig.7 When fixed-point number is different positioning accuracy of the three algorithms
鑒于無線傳感器網(wǎng)絡(luò)節(jié)點自定位中存在精度低和錨圓內(nèi)交點質(zhì)心定位算法容易出現(xiàn)定位死區(qū)的問題.通過分析影響定位精度的各種參數(shù),提出了一種基于RSSI-錨圓的無線網(wǎng)絡(luò)節(jié)點自定位方法.該方法運用RSSI測距計算定位節(jié)點與參考節(jié)點的距離,并把這個距離轉(zhuǎn)化為錨圓半徑.實驗結(jié)果表明經(jīng)基于RSSI測距計算的半徑值與實際情況相符,提高了錨圓內(nèi)交點質(zhì)心定位中錨圓半徑值的精度,從而提高了節(jié)點定位的準確性.
[1]Akyildiz L F,SuWen-lian,SankarasvbramaniamY.Asurvey on sensor networks[J].IEEE CommunicationsMagazine,2011,40(8):102-114.
[2]茍勝難.基于改進的RSSI無線傳感器網(wǎng)絡(luò)節(jié)點定位算法研究 [J].計算機應(yīng)用研究,2012,29(5):1867-1869.
[3]He T,Huang C,Blum BM,etal.Range-free loealization scheme for largescalesensornetworks[C]//ACM Sigmobile,Pro-ceedingsof the9th annual international conferenceon Mobile computing and networking.San Diego,California,New York:ACM,2003,14-19.
[4]熊志廣.基于RSSI的無線傳感器網(wǎng)絡(luò)定位算法研究及應(yīng)用 [D].重慶:重慶大學(xué),2010.
[5]于慧霞.WSN中基于RSSI的加權(quán)質(zhì)心定位算法的改進 [J].電子測試,2012(1):28-32.
[6]沈軍.基于RSSI測距誤差修正的改進型DV-distance差分定位算法 [J].計算機應(yīng)用研究,2012,29(5):1873-1876.
[7]Shen X,Wang Z,Jiang P,etal.Connectivity and RSSIbased localization scheme forw irelesssensornetworks[C].ICIC,2005:578-587.