徐 林,傅成華
(四川理工學(xué)院,四川 自貢 643000)
ZigBee技術(shù)以獨(dú)特的低成本、低功耗、低速率的特點(diǎn),而擁有其他無線通信技術(shù)所無可比擬的優(yōu)勢(shì)。同時(shí)在其成本變化不大的情況下,增加硬件定位引擎,僅消耗極小的硬件資源,利用原有網(wǎng)絡(luò)條件就能實(shí)現(xiàn)無線定位,進(jìn)一步拓展了ZigBee技術(shù)的應(yīng)用。基于到達(dá)時(shí)間(TOA)、到達(dá)時(shí)間差(ODOA)、到達(dá)角度(AOA)、接收信號(hào)強(qiáng)度(RSSI)的定位機(jī)制都適用于IEEE802.15.4網(wǎng)絡(luò)[1]。而基于RSSI的定位機(jī)制更符合ZigBee技術(shù)低成本的特點(diǎn),并能滿足大部分低精確度定位的要求。
圖1是一個(gè)理想的定位場(chǎng)景,節(jié)點(diǎn)1、2、3為已知坐標(biāo)的錨節(jié)點(diǎn),節(jié)點(diǎn)4為需定位的盲節(jié)點(diǎn)。定位方法是將由 RSSI值換算而來的 r1、r2、r3值,及錨節(jié)點(diǎn)坐標(biāo)代入矩陣式(1),求解盲節(jié)點(diǎn)坐標(biāo)值(x,y)。
圖1 三邊測(cè)量定位
實(shí)際環(huán)境中,式(1)右式不可能全為0,因此定義誤差向量 E=[e12e22e32]T,如式(2)所示構(gòu)建方程:
采用經(jīng)典優(yōu)化方法求解目標(biāo),找到一坐標(biāo)對(duì)(x,y)使e2為最小。當(dāng)增加錨節(jié)點(diǎn)數(shù)量,并按式(2)求解時(shí),在一些應(yīng)用場(chǎng)合中,可提高定位精度[2]。
有研究表明,基于RSSI進(jìn)行定位時(shí),傳輸距離越近,功率衰減快;而傳輸距離越遠(yuǎn),衰減越慢。因此傳輸距離越近,定位越準(zhǔn)確;傳輸距離越遠(yuǎn),定位誤差越大[3]。
上述定位方法用于二維定位時(shí)忽略了各節(jié)點(diǎn)安裝高度。如圖2所示,考慮在立體空間中的定位情況。盲節(jié)點(diǎn) 5需錨節(jié)點(diǎn) 1、2、3、4為之定位。
圖2 空間定位情況
求解式(3)獲得定位點(diǎn)坐標(biāo)(x,y,z)。
當(dāng)坐標(biāo)點(diǎn)(a,b,c)滿足式(4)時(shí),有:
顯然若使式(1)與式(4)的 x、y 值同解,當(dāng)且僅當(dāng)z1=z2=z3=c。由此利用式(1)進(jìn)行定位計(jì)算時(shí),若錨節(jié)點(diǎn)安裝高度均與盲節(jié)點(diǎn)高度相等,則安裝高度不會(huì)產(chǎn)生xy平面上的定位誤差。但在實(shí)際應(yīng)用中,因現(xiàn)場(chǎng)情況限制,錨節(jié)點(diǎn)往往安裝位置較高,而盲節(jié)點(diǎn)手持或安裝于移動(dòng)物體上,因此錨節(jié)點(diǎn)與盲節(jié)點(diǎn)不可能安裝在同一水平面上。此時(shí),式(1)、式(4)有不同解,這將在理論上產(chǎn)生定位誤差。
在一定值場(chǎng)景中,如圖2中4個(gè)錨節(jié)點(diǎn)安裝高度為3 m,各錨節(jié)點(diǎn)在xy軸的投影點(diǎn)組成一邊長(zhǎng)為8 m的正方形。x軸和y軸均以2 m的步長(zhǎng)取計(jì)算點(diǎn),求解式(3)時(shí),采用有約束非線性規(guī)劃法,求得錨節(jié)點(diǎn)與盲節(jié)點(diǎn)的高差分別為2 m和3 m時(shí)的理論誤差分布,如圖3所示。由圖可知,高差越大,各點(diǎn)誤差值普遍增大,這對(duì)小空間內(nèi)的定位準(zhǔn)確度造成較大影響。
圖3 誤差分布圖
前述算法出現(xiàn)誤差的根本原因在于定位計(jì)算時(shí)忽略了高差因素δh,CC2431的定位引擎輸入?yún)?shù)不包括節(jié)點(diǎn)安裝高度[4]。但考慮到δh對(duì)于二維定位,如得到各錨節(jié)點(diǎn)到盲節(jié)點(diǎn)的投影距離,僅需在xy平面上進(jìn)行計(jì)算。根據(jù)式(3)消去z軸的影響因素。改造式(2)為:
采用有約束非線性規(guī)劃法求解定位點(diǎn)時(shí),由安裝高度不同造成的理論誤差近似為零。且同樣適用于各錨節(jié)點(diǎn)安裝高度不一致情況下的二維定位。
CC2431采用硬件定位引擎進(jìn)行定位運(yùn)算,無法對(duì)定位引擎內(nèi)部算法進(jìn)行調(diào)整。為實(shí)現(xiàn)前述改進(jìn)算法,可對(duì)盲節(jié)點(diǎn)接收的 RSSI(實(shí)測(cè)值)進(jìn)行處理,修正為對(duì)應(yīng)于 xy投影面的 RSSI(修正值),再輸入到定位引擎參與計(jì)算??紤]到定位引擎能識(shí)別的RSSI值最小分辨率為0.5 dBm,因此當(dāng)修正值大于等于實(shí)測(cè)值0.5 dBm時(shí),才予以修正。由測(cè)距模型[5]得到修正條件式(7):
建立 RSSI(實(shí)測(cè)值)和 RSSI(修正值)函數(shù)關(guān)系如下:
式中d為實(shí)際距離;δh為高度差;r為投影距離。
為減少CC2431在進(jìn)行RSSI值修正時(shí)的系統(tǒng)開銷,預(yù)先代入 A、n、δh值等常數(shù)逐點(diǎn)計(jì)算式(8),得到修正值。盲節(jié)點(diǎn)進(jìn)行修正值計(jì)算時(shí),如修正點(diǎn)較少時(shí)可采用查表法計(jì)算,當(dāng)各錨節(jié)點(diǎn)安裝高度不同或修正點(diǎn)較多時(shí)則采用多項(xiàng)式擬合法計(jì)算。
本實(shí)驗(yàn)場(chǎng)景為長(zhǎng)寬為8 m×8 m,凈高為3.2 m的室內(nèi)空間,分別在4個(gè)墻角安裝錨節(jié)點(diǎn)CC2430,安裝高度為2.8 m。手持盲節(jié)點(diǎn)CC2431距地約0.8 m。以1 m為步長(zhǎng),總計(jì)測(cè)量81個(gè)點(diǎn)位接收到4個(gè)RSSI值。由式(7)、式(8)得到修正表,見表 1。 修正表僅占用 58 B的存儲(chǔ)空間,本次實(shí)驗(yàn)采用查表法進(jìn)行修正。
表1 RSSI值修正表
為對(duì)改進(jìn)前后的效果進(jìn)行比較,每次定點(diǎn)測(cè)量都連續(xù)啟動(dòng)定位引擎兩次,并分別輸入 RSSI(實(shí)測(cè)值)和 RSSI(修正值),將兩次得到的定位坐標(biāo)送至PC,經(jīng)Matlab處理后,得到改進(jìn)后與改進(jìn)前誤差的差值表,如表2所示。
由表2可見,改進(jìn)算法提高了散布在錨節(jié)點(diǎn)附近位置的定位精度,對(duì)遠(yuǎn)離錨節(jié)點(diǎn)的位置因不滿足修正條件,則保持了原算法所得到的定位坐標(biāo)。較好地解決了要求傳輸距離盡可能近與近距離時(shí)安裝高差將產(chǎn)生較大誤差之間的矛盾。
本文分析了基于ZigBee的三邊測(cè)量定位算法在二維定位上,因節(jié)點(diǎn)安裝高度差產(chǎn)生定位誤差的本質(zhì)原因,并通過Matlab實(shí)現(xiàn)了不同高差下理論誤差的對(duì)比。提出了抑制該誤差的RSSI修正值方法。最后通過實(shí)測(cè)對(duì)提出的方法進(jìn)行了驗(yàn)證,體現(xiàn)出RSSI修正值法的有效性。
表2 改進(jìn)后與改進(jìn)前的誤差差值表 (m)
[1]高守瑋,吳燦陽(yáng).ZigBee技術(shù)實(shí)踐教程[M].北京:北京航空航天大學(xué)出版社,2009.
[2]FARAHANI S.ZigBee wirleless networks and transceivers[M].USA: Newnes,2008.
[3]孫佩剛,趙海,羅玎玎,等.智能空間中 RSSI定位問題研究[J],電子學(xué)報(bào),2007,35(7):1242-1243.
[4]Chipcon Inc.CC2431 Datasheet[S].2006.5-9.
[5]王靜,張會(huì)清.基于ZigBee的無線網(wǎng)絡(luò)定位技術(shù)的研究與實(shí)現(xiàn)[J],傳感器與微系統(tǒng),2010,29(2):15-16.