李衛(wèi)東,劉影
(大連交通大學 電氣信息學院, 遼寧 大連116028)
ZigBee技術(shù)是一種具有低功耗、低成本和高可靠性等優(yōu)點的雙向無線通信技術(shù),隨著研究的不斷深入,ZigBee技術(shù)的應(yīng)用領(lǐng)域越來越廣泛,技術(shù)也更加成熟.與藍牙、WIFI等無線通信技術(shù)相比,ZigBee技術(shù)也具有其獨特的優(yōu)勢和應(yīng)用前景.其中,基于ZigBee的無線傳感器網(wǎng)絡(luò)節(jié)點定位就是非常重要的一項應(yīng)用.基于接收信號強度(RSSI)的測距算法是利用無線電信號在傳輸過程中存在損耗,根據(jù)發(fā)射端與接收端信號強度的差值對兩者之間的距離進行計算.在實際應(yīng)用中利用RSSI測距,信號強度往往在傳輸過程中容易被外界環(huán)境干擾[1],本文在基于RSSI的三角形質(zhì)心定位算法基礎(chǔ)上加以改進來對待測節(jié)點進行定位可以提高定位精度[2].
實際應(yīng)用中,由于環(huán)境因素及信號在傳播過程中的反射、散射等影響,信號會出現(xiàn)一定程度的附加衰減,因此,利用對數(shù)距離路徑損耗模型測得的數(shù)據(jù)將更加準確.對數(shù)距離路徑損耗模型的表達式如下:
Pi(d)=Pt(d0)+10nlg(d/d0)+Xσ
式中,Pt(d)表示待測節(jié)點與信標節(jié)點之間距離為d時的損耗強度,單位為dbm;PL(d0)表示待測節(jié)點與信標節(jié)點之間距離較近(一般為1 m)時的參考損耗值;n代表路徑損耗指數(shù);Xσ是均值為0的高斯分布隨機變量.所以,待測節(jié)點接收到的信號強度可以表示為:
Pr(d)=Pt-PL(d)
Pt表示信標節(jié)點的發(fā)射強度;Pr(d)為待測節(jié)點收到的信號強度,也就是RSSI值.
采用四個信標節(jié)點參與定位[3],并以四個圓的公共弦交點所組成的區(qū)域代替類似DEF的相交區(qū)域,計算其質(zhì)心坐標視為待測節(jié)點的坐標,如圖1.圖中E、F、G、H為4條公共弦的交點,設(shè)它們的坐標分別為(XE、YE)、(XF、YF)、(XG、YG)、
圖1 改進質(zhì)心定位模型
(XH、YH),根據(jù)質(zhì)心定位的思想,將四邊形EFGH的質(zhì)心作為待測節(jié)點M的測量位置.則待測節(jié)點M的坐標為可表示為:
各信標節(jié)點的坐標已知且固定,所以測距會對定位準確性有很大影響,通過反復計算和驗證可知,將距離作為加權(quán)因子,加權(quán)后待測節(jié)點的坐標表達式可表示為:
本文選用的是基于CC2530(2.4GHz無線SOC)的ZigBee定位系統(tǒng)開發(fā)套件,主要硬件設(shè)備包括4個信標節(jié)點、1個待測節(jié)點、網(wǎng)關(guān)節(jié)點、仿真器、串口轉(zhuǎn)USB線和PC機一臺.信標節(jié)點和待測節(jié)點均為CC2530模塊,采用2.4GHz IEEE802.15.4/RF4CE/ZigBee片上系統(tǒng)解決方案.模塊的有效通信半徑為80 m,工作頻率2.4~2.485 GHz,經(jīng)電池盒供電后可以獨立運行使用,內(nèi)置PCB天線,具備全功能仿真調(diào)試接口,能夠直接下載仿真程序進行調(diào)試,也可以作為獨立ZigBee開發(fā)板使用.本文所用ZigBee開發(fā)套件相關(guān)的軟件主要有:VB 6.0、SmartRF Flash Programmer、Packet Sniffer、IAR Embedded Workbench以及上位機演示軟件.
本文將信標節(jié)點以相隔50m的距離均勻布置在隧道壁兩側(cè),如圖2.當列車行駛到節(jié)點AC中間位置時就已經(jīng)處于節(jié)點E的通信范圍之內(nèi),同時還仍然處于節(jié)點A的通信范圍之內(nèi),列車行駛在隧道的任何位置都能進行不間斷地定位;此外,按照50 m間隔布置信標節(jié)點,使相鄰兩信標節(jié)點同時參與定位的最大范圍直線距離為110m,設(shè)置標節(jié)點對外廣播信息的時間周期為1 s時,時速達到198 km的列車在通過相鄰兩個節(jié)點時,理論上可以完成兩次有效定位,而當列車通過兩相鄰節(jié)點時,在此期間定位時沒有信標節(jié)點間的切換,因此完成的有效定位次數(shù)越多,其定位結(jié)果越接近系統(tǒng)的實際定位能力,數(shù)據(jù)的參考價值越高.
圖2 信標節(jié)點布置圖
由于測試環(huán)境的特殊性及條件限制,本文利用汽車代替列車,采用本文提出的定位算法對公路隧道內(nèi)行駛的車輛進行定位測試實驗,記錄不同速度下測得的RSSI值和定位誤差,進行數(shù)據(jù)分析,為接下來的研究工作提供依據(jù).測試地點為位于大連市內(nèi)的蓮花山隧道,隧道全長2 600 m,寬10.6 m(自測),單向雙車道.
2.3.1 參數(shù)測定
若要得到準確的RSSI值,首先要確定準確的參數(shù)A和n值,具體做法是:
(1)手持待測節(jié)點,調(diào)節(jié)待測節(jié)點與某個信標節(jié)點位置的相對遠近,同時觀察對應(yīng)信號檢測數(shù)值的變化,記錄各信號強度數(shù)值下待測節(jié)點與參考信標節(jié)點間的距離;
(2)按照步驟(1)的方法依次完成待測節(jié)點與四個信標節(jié)點的通信距離(在各強度數(shù)值下的可達通信距離)測試,并做好記錄;
(3)統(tǒng)計各信號強度數(shù)值下待測節(jié)點與信標節(jié)點的通信距離平均值;
(4)根據(jù)測距換算公式d=10^((ABS(RSSI)-A)/(10*n)),計算出最優(yōu)的A和n值.
按照上述步驟操作,最終測得隧道內(nèi)A和n的值分別為-22和4.6,再將A的數(shù)值轉(zhuǎn)換成補碼表示即為234.
2.3.2 測試結(jié)果及分析
信標節(jié)點橫向間隔50 m,每間隔10 m做一處標記,方便對車輛的實際位置進行測量.4個信標節(jié)點的坐標分別為(50,0)、(50,10.6)、(0,10.6)、(0,0);汽車達到測試速度后保持車輛勻速行駛;當汽車駛?cè)胄艠斯?jié)點通信范圍內(nèi)時,上位機軟件記錄RSSI值,開始對車輛進行定位,觀察和記錄數(shù)據(jù)及測試車輛的定位情況,并記錄每次完成定位時車輛的實際位置,便于誤差計算.
圖3 低速測試
將車速提高到50 km/h通過測試路段,操作同低速測試,隨機獲取該速度下某一次定位,根據(jù)上位機軟件顯示,此時測試車輛所處位置的定位坐標為(43.61,9.87);而經(jīng)過實際測量計算,該時刻汽車所處的實際位置為(44.23,7.96),定位誤差2.01 m,相比于低速行駛時,誤差有所增大.
經(jīng)過10次50 km/h速度下的定位測試,共采集到24組誤差小于5 m的數(shù)據(jù)、4組誤差大于6m的數(shù)據(jù),以及2組未能完成定位的無效數(shù)據(jù).經(jīng)計算,所得28組有效定位數(shù)據(jù)的平均誤差為3.74m,各誤差數(shù)值按記錄順序如圖4所示.
圖4 50 km/h定位誤差統(tǒng)計
將車速提高到60 km/h通過測試路段,再次隨機獲取該速度下某一次定位,由上位機軟件顯示,此時測試車輛所處位置的坐標為(23.68,-3.17);經(jīng)過測量計算得到該時刻汽車所處的實際位置為(23.16,2.29),定位誤差為5.48 m.定位誤差有較明顯的增大.
進行10次該速度下對車輛的定位測試,定位誤差在3 m之內(nèi)的定位結(jié)果共有4組,誤差在3~6 m之間的有11組,另外誤差大于6 m和定位失敗的數(shù)據(jù)各有3組.經(jīng)過計算,最大誤差和最小誤差分別為7.15 m和2.14 m,所得平均定位誤差為4.46 m,各誤差數(shù)值按記錄的時間順序如圖5所示.
圖5 60 km/h定位誤差統(tǒng)計
本文解決了列車在處于北斗定位盲區(qū)時的定位問題,用汽車代替列車,在大連市蓮花山隧道內(nèi)進行測試,比較不同速度下ZigBee定位系統(tǒng)對移動目標的定位結(jié)果.利用現(xiàn)有數(shù)據(jù)分析推斷,系統(tǒng)的定位誤差具有隨速度增加而增大的趨勢;但當車速從50 km/h增加到60 km/h之后,最小定位誤差依然能夠保持在2 m左右,平均誤差的增量也在1 m之內(nèi),總體定位效果符合預期.但實驗過程中,系統(tǒng)出現(xiàn)定位失敗的情況說明,該定位系統(tǒng)在工作時仍然存在一定的不足,需要進一步加強改進策略;同時需要在條件允許的情況下對更高速度的車輛進行定位測試,獲取更多準確客觀的定位數(shù)據(jù),為系統(tǒng)的不斷完善提供有效參考.