資源描述:
《基于RSSI測(cè)距的定位算法的研究》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、基于RSSI測(cè)距的定位算法的研究引言ZigBee技術(shù)中定義了3種設(shè)備:協(xié)調(diào)器(Coordinator),路由器(Router)和終端設(shè)備(End?Device)。協(xié)調(diào)器主要負(fù)責(zé)啟動(dòng)整個(gè)網(wǎng)絡(luò);路由器的功能主要是允許其他設(shè)備加入網(wǎng)絡(luò)及多跳路由等;終端設(shè)備一般沒(méi)有特定的維持網(wǎng)絡(luò)結(jié)構(gòu)的責(zé)任。ZigBee技術(shù)通過(guò)這3種設(shè)備可以構(gòu)成一個(gè)移動(dòng)自組織的網(wǎng)絡(luò),廣泛應(yīng)用在家庭、環(huán)境監(jiān)測(cè)、工農(nóng)業(yè)等場(chǎng)合[1]。目前的定位技術(shù)總體上可以分為基于測(cè)距技術(shù)與無(wú)需測(cè)距技術(shù)。前者定位精度較高,后者實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單。在測(cè)距技術(shù)中,有基于接收信號(hào)強(qiáng)
2、度(RSSI)、基于到達(dá)時(shí)間差(TOA)、基于不同波的到達(dá)時(shí)間差(TDOA)以及到達(dá)角度差(AOA)等[24]。在這幾種測(cè)距技術(shù)中,基于RSSI的測(cè)距技術(shù)將接收到的信號(hào)強(qiáng)度轉(zhuǎn)換為節(jié)點(diǎn)之間的距離,不需要額外的硬件和數(shù)據(jù)交換,有成本低、容易實(shí)現(xiàn)等優(yōu)點(diǎn)。本文結(jié)合CC2430/CC2431芯片,設(shè)計(jì)了一種基于RSSI的測(cè)距定位算法。1 RSSI測(cè)距的實(shí)現(xiàn)原理基于RSSI的測(cè)距技術(shù)是利用無(wú)線電信號(hào)隨距離增大而有規(guī)律地衰減的原理來(lái)測(cè)量節(jié)點(diǎn)間的距離的。接收信號(hào)強(qiáng)度RSSI與傳輸距離d的關(guān)系如下所示[5,8]:RSSI=-(1
3、0×n×lgd+A)(1)式中,n表示信號(hào)傳播常數(shù),也叫傳播系數(shù);d表示與發(fā)送者的距離;A表示距發(fā)送者1m時(shí)的信號(hào)強(qiáng)度。測(cè)距精度的高低受到n與A實(shí)際取值大小的影響較大。A是一個(gè)經(jīng)驗(yàn)參數(shù),可以通過(guò)測(cè)量距離發(fā)送者1m處的RSSI值得到。n是用來(lái)描述信號(hào)強(qiáng)度隨距離增加而遞減的參量,n的大小依賴具體的環(huán)境。為了得到最優(yōu)的n值,可以先放置好所有的參考節(jié)點(diǎn),然后嘗試用不同的n_index值找到最適合這個(gè)具體環(huán)境的n值。2 節(jié)點(diǎn)組成的定位網(wǎng)絡(luò)2.1 CC2430/CC2431芯片介紹CC2430/CC2431是Chipcon
4、公司(現(xiàn)被TI收購(gòu))推出的針對(duì)IEEE802.15.4/ZigBee應(yīng)用的片上系統(tǒng),其內(nèi)部集成了工作在2?4GHz的射頻收發(fā)器,擁有低功耗的8051MCU內(nèi)核、128KB可編程FlashROM和8KBRAM,還有A/D轉(zhuǎn)換器、定時(shí)器等。另外,CC2431片上系統(tǒng)由CC2430加上Motorola公司基于IEEE802.15.4標(biāo)準(zhǔn)的無(wú)線定位引擎組成。其定位引擎支持3~l6個(gè)參考節(jié)點(diǎn)的定位運(yùn)算,最高精度可達(dá)0?5m;定位時(shí)間少于40μs,定位區(qū)域?yàn)?4m×64m,定位誤差為3~5m,與一般軟件定位相比,具有定位速
5、度快、定位準(zhǔn)確度高、消耗CPU資源少的特點(diǎn)[6]。CC2430/CC2431主要外圍電路圖如圖1所示。圖1 CC2430/CC2431主要外圍電路圖2.2 節(jié)點(diǎn)構(gòu)成的定位網(wǎng)絡(luò)圖2 ZigBee定位網(wǎng)絡(luò)控制界面ZigBee網(wǎng)絡(luò)中有一類節(jié)點(diǎn)作為協(xié)調(diào)器,通過(guò)串口負(fù)責(zé)與PC通信;還有一類節(jié)點(diǎn)是參考節(jié)點(diǎn),如圖2中周邊的4個(gè)圓圈,地址分別為0x143E、0x0001、0x3CB8、0x287B。這4個(gè)節(jié)點(diǎn)坐標(biāo)已知,中間的圓圈(地址0x0002)為盲節(jié)點(diǎn)。盲節(jié)點(diǎn)可以根據(jù)接收信號(hào)強(qiáng)度,選取其中3個(gè)信號(hào)強(qiáng)度比較強(qiáng)的參考節(jié)點(diǎn),采用
6、三邊測(cè)量法估算出盲節(jié)點(diǎn)的坐標(biāo)位置。如圖2所示,盲節(jié)點(diǎn)實(shí)時(shí)顯示的坐標(biāo)為(6.25m,5.75m)。圖3為CC2431定位引擎的定位流程。圖3 CC2431定位引擎的定位流程2.3 最小二乘法修正距離從式(1)可以看出,如果知道參考節(jié)點(diǎn)與盲節(jié)點(diǎn)之間的RSSI值,則可以估算出兩個(gè)節(jié)點(diǎn)之間的距離。然而不同的環(huán)境下可能存在不同的信號(hào)干擾,采用節(jié)點(diǎn)之間的RSSI值估算距離必然存在一定的誤差。這時(shí)可以根據(jù)特定的環(huán)境對(duì)測(cè)量到的距離采用傳統(tǒng)的最小二乘法進(jìn)行修正[7]。得到修正后的距離,從而可以更加精確地估算出盲節(jié)點(diǎn)的坐標(biāo)。具體步
7、驟如下:①根據(jù)實(shí)際情況布置好節(jié)點(diǎn),參考節(jié)點(diǎn)(Mi,Ni)與盲節(jié)點(diǎn)(Mj,Nj)的位置坐標(biāo)均已知??梢愿鶕?jù)xi=(Mi-Mj)2+(Ni-Nj)2得到實(shí)際節(jié)點(diǎn)之間的距離。②根據(jù)式(1)估算出盲節(jié)點(diǎn)與各個(gè)參考節(jié)點(diǎn)之間的距離yi。③采用最小二乘法擬合實(shí)際距離xi與估計(jì)距離yi的關(guān)系。假設(shè)兩者之間的關(guān)系為yi=axi+b,為了使所有數(shù)據(jù)偏差的平方和很小,假設(shè)R2=∑mi=1(yi-axi-b)2??梢园裄2看作自變量a和b的二元函數(shù),要使得R2最小,分別對(duì)自變量求導(dǎo),令其等于零。根據(jù)得到的a與b的值可以擬合出修正距離與
8、估計(jì)距離的關(guān)系Y修=a×X估+b,結(jié)合式(1)可以得到:④布置盲節(jié)點(diǎn),通過(guò)式(1)估計(jì)盲節(jié)點(diǎn)與參考節(jié)點(diǎn)之間的距離x,通過(guò)第3步擬合好的修正距離與估計(jì)距離之間的關(guān)系修正估計(jì)距離,得到修正的距離Y修。2.4 盲節(jié)點(diǎn)坐標(biāo)估計(jì)選擇3個(gè)接收信號(hào)強(qiáng)度最強(qiáng)的參考節(jié)點(diǎn),采用三邊測(cè)量法估計(jì)出盲節(jié)點(diǎn)坐標(biāo)值[8]。假設(shè)3個(gè)參考節(jié)點(diǎn)A、B、C的坐標(biāo)分別為(ma,na)、(mb,nb)、(mc,nc),盲節(jié)點(diǎn)E