由于傳感器網(wǎng)絡(luò)通常要在無人干預(yù)的情況下大規(guī)模地隨機(jī)部署在環(huán)境惡劣、人類無法或不宜接近的區(qū)域,如戰(zhàn)場、火山口附近,故節(jié)點受制造成本、 體積、重量等條件的限制,單個節(jié)點所能承載的能量是非常有限的,且不易得到補充,所以在人工部署時確定節(jié)點位置是不現(xiàn)實的。如果在每個節(jié)點上裝備GPS定位系統(tǒng),盡管目前已經(jīng)開發(fā)出了單芯片的GPS解決方案,并可集成到MICAl6J系列節(jié)點上,但因其造價昂貴,與傳感器網(wǎng)絡(luò)節(jié)點廉價且需大量部署的特點相矛盾。因此,針對無線傳感器網(wǎng)絡(luò)的特點,人們必須設(shè)計出獨特的測距算法,而RSSI測距就是其中之一。
一、RSSI測距原理
無線信號傳輸普遍采用的理論模型是漸變模型(Shadowing Model)。
[p(d)]dbm=[p(d0)]dbm-10nlog10( )+xdbm (1)
式子中,p(d)表示距離發(fā)射機(jī)為d時,接收端接收到的信號強度,即RSSI值;p(d0)表示距離發(fā)射機(jī)為d0時接收端接收到的信號功率;d0為參考距離;n是路徑損耗(Pass Loss)指數(shù),通常由實際測量得到,障礙物越多,n值越大,從而接收到的平均能量下降速度會隨著距離的增加而變得越來越快:X是一個以dbm為單位,平均值為0的高斯隨機(jī)變量,反映了當(dāng)距離一定時,接收到的能量的變化。
實際應(yīng)用中,一般采用簡化的漸變模型:
[p(d)]dbm=[p(d0)]dbm-10nlog10( ) (2)
為便于表達(dá)和計算,通常取d0為1 m,于是可得:
[p(d)]dbm=A-10nlog10d (3)
把[p(d)]dbm寫成RSSI的形式得到:
RSSI=A-10nlog10d (4)
其中,A為無線收發(fā)節(jié)點相距1m時,接收節(jié)點接收到的無線信號強度RSSI值。式(4)就是RSSI測距的經(jīng)典模型,給出了RSSI和d的函數(shù)關(guān)系,所以已知接收機(jī)接收到的RSSI值就可以算出它和發(fā)射機(jī)之間的距離。A和n都是經(jīng)驗值,和具體使用的硬件節(jié)點以及無線信號傳播的環(huán)境密切相關(guān),因此在不同的實際環(huán)境下A和n因參數(shù)不同,其測距模型也不同。
二、RSSI測距定位算法
基于RSSI測距的定位算法流程如圖1所示:節(jié)點定位采用極大似然估汁算法。已知n個信標(biāo)節(jié)點的坐標(biāo)分別為(x1,y1),(x2,y2),…,(xn,yn),未知節(jié)點坐標(biāo)為(x,y),算法的具體步驟如下:
第一,信標(biāo)節(jié)點周期性向未知節(jié)點發(fā)送包含自身ID和自身位置信息的數(shù)據(jù)包;
第二,未知節(jié)點在收到同一ID信標(biāo)節(jié)點發(fā)來的數(shù)據(jù)包后,從中提取出收到陔幀數(shù)據(jù)的信號強度值RSSI。當(dāng)收到某個ID信標(biāo)節(jié)點發(fā)來的數(shù)據(jù)包超過一定閾值(實驗設(shè)置為100)后,對這100個RSSI值求平均值,得到最終的該ID信標(biāo)節(jié)點的RSSI值,然后使用RSSI測距公式RSSI=A-10nlg(d)導(dǎo)出距離d,這樣就得到了未知節(jié)點和某ID信標(biāo)節(jié)點的距離。對所有信標(biāo)節(jié)點都采用這種方法進(jìn)行處理,得到n個距離d1,d2,…dn。最后未知節(jié)點記錄下所有信標(biāo)節(jié)點的坐標(biāo)和對應(yīng)的距離數(shù)據(jù);
第三,建立信標(biāo)節(jié)點與未知節(jié)點距離方程組
(作者單位:同濟(jì)大學(xué)軟件學(xué)院)