楊思國,陶維青
在研究煤礦井下人物定位系統(tǒng)時,首先要選擇定位算法。不同的定位算法的定位精度、通信開銷、硬件成本和能耗等指標是不同的,這就從前端決定了該系統(tǒng)的性能的高低。定位算法有兩大類:基于測距(RSSI)的定位算法和基于非測距的定位算法。基于測距的定位算法需要測量出目標節(jié)點與多個參考節(jié)點的距離或角度,一般有三邊測量法、三角測量法和極大似然估算法。不需要測量出目標節(jié)點與多個參考節(jié)點的距離或角度關(guān)系,而是依據(jù)無線網(wǎng)絡(luò)節(jié)點的通信連接關(guān)系來估算目標節(jié)點的位置。2001年瑞士洛桑聯(lián)邦工業(yè)大學(xué)的Srdjan Capkun等人最早提出的相對定位算法SPA是在沒有測距的前提下的一種無線網(wǎng)絡(luò)定位算法:通過無線網(wǎng)絡(luò)節(jié)點建立一個全局坐標系統(tǒng)或局部坐標系統(tǒng),通過坐標之間的相應(yīng)關(guān)系對未知節(jié)點進行定位[1]。在此基礎(chǔ)上美國仁斯利爾理工學(xué)院的Raj agopal Iyengar等人提出了一種基于聚類(Clustering-based)的定位算法;美國路特葛斯大學(xué)的Dragos Niculescu等人提出DV-Hop算法[2]。SPA、Clustering-based和DV-Hop算法都屬于基于非測距的定位算法,雖然后兩種算法針對SPA算法的缺點進行改進,但依然存在通信開銷量大,定位精度差的現(xiàn)象。
基于測距的定位算法中的三邊測量法,由于參考節(jié)點和目標節(jié)點自帶測量芯片,因而不需要增加硬件成本。且通信量不大、能耗較低,定位精度明顯高于基于非測距的定位算法。本文提出的基于三邊測量的雙重質(zhì)心算法是在三邊測量法和基于三邊測量的質(zhì)心算法基礎(chǔ)上的一種改進算法。與三邊測量法和基于三邊測量的質(zhì)心算法相比,定位精度進一步提高,是煤礦井下人物定位系統(tǒng)定位算法中一種不錯的選擇。
基于RSSI的定位算法的第一步是測量目標節(jié)點與參考節(jié)點間的距離或角度。角度測量需要目標節(jié)點和參考節(jié)點上裝載天線陣列,成本較高,在這里不做討論。距離測量在是依據(jù)電磁波信號在傳播過程中產(chǎn)生損耗來估算距離的。其基本原理:己知發(fā)射信號強度,記錄接收節(jié)點收到的信號強度,二者的差即是傳播損耗,然后把損耗值代入相應(yīng)的模型即可得到距離[3]。目前學(xué)者研究的電磁波信號路徑損耗有4種模型,針對煤礦井下特殊環(huán)境,選取對數(shù)-常數(shù)分布模型,如下式:
(1)
在式(1)中d0表示基站到參考節(jié)點的距離,依據(jù)現(xiàn)場環(huán)境,在室內(nèi)一般取lm,在室外一般取100m。Pd0表示在d0處接收到基站信號的強度(dB),Pd是在距離基站d處目標節(jié)點接收到基站信號的強度(dB)。n表示傳輸路徑長度與損耗的比例因子,一般為2~5之間的數(shù)值。εσ是標準偏差為σ的高斯隨機變量,其平均值為零[4]。
由公式(1)即可計算出發(fā)射節(jié)點與接收節(jié)點之間的距離:
(2)
在實際測量中,電磁波信號傳播受環(huán)境因素和環(huán)境變化的影響很大,導(dǎo)致理論模型計算值和實際傳播損耗值有較大的誤差[5]。如參考節(jié)點安裝布置的高度和密度;電磁波信號在巷道、采礦工作區(qū)、挖掘工作區(qū)等不同區(qū)域傳播的的反射、衍射、和多徑傳播效應(yīng);人或物的阻擋;天線增益變化等偶然因素和必然因素的影響。文獻[6]提出采用卡爾曼-高斯混合濾波可以有效地減小最大誤差、最小誤差和平均誤差。同時提出用最小二乘法分段曲線擬合算法對環(huán)境參數(shù)n和(Pd0+εσ)進行修正,這一點在現(xiàn)場調(diào)試中非常重要。采取這些措施可以將測距階段的誤差控制在一定的范圍內(nèi),避免將過大的誤差帶入定位階段,導(dǎo)致定位結(jié)果嚴重失真,定位失敗。
利用上節(jié)數(shù)學(xué)模型,在通信半徑內(nèi)可測得目標節(jié)點和參考節(jié)點的距離。選擇靠近目標節(jié)點U(X,Y)的三個參考節(jié)點A(X1,Y1)、B(X2,Y2)、C(X3,Y3),已測得目標節(jié)點與三個參考節(jié)點之間距離分別是S1、S2、S3,以三個參考節(jié)點A、B、C為圓心,以對應(yīng)距離S1、S2、S3為半徑畫圓,三個圓的交點即為目標節(jié)點,這就是三邊測量法[7]。
三邊測量法如圖1所示。從圖1可以得出
(3)
圖1 三邊測量法定位
由(3)式變換得出矩陣表達式:
(4)
由式 (4)可求出目標節(jié)點的坐標為:
(5)
應(yīng)用最小二乘法可解得目標節(jié)點U的坐標估計值。
三邊測量法的原理簡單,基本思想很容易理解,但過于理想化?,F(xiàn)實井下測距過程中因為障礙物、灰塵、硬件能耗以及用于測距相關(guān)的裝置本身的儀器誤差,致使目標節(jié)點到參考節(jié)點的間距測量存在的誤差,三個圓難于交于一點,出現(xiàn)方程組無解的情況,也就使得三邊定位失敗[8]。因此需要其他的定位技術(shù)輔助處理,估算出相對合理的位置作為目標節(jié)點的坐標。
在三邊測量法中會出現(xiàn)兩種典型狀況,一是測得目標節(jié)點到三個節(jié)點的距離比實際值小,如圖(2)所示,方程式(5)無解。
圖2 三邊測量法定位
二是測得目標節(jié)點到三個節(jié)點的距離比實際值大,如圖(3)所示,方程式(5)有解。
圖3 基于三邊測量的質(zhì)心算法
在進行系統(tǒng)調(diào)試時,環(huán)境參數(shù)的選擇一般應(yīng)使測距正偏離,這樣就出現(xiàn)圖3狀況。圓B和圓C相交于a和a’兩點,其中靠近圓心A的a點是真解,a’點是干擾解。同樣,圓C和圓A相交于b和b’兩點,其中靠近圓心B的b點是真解,b’點是干擾解;圓A和圓B相交于c和c’兩點,其中靠近圓心C的c點是真解,c’點是干擾解。假設(shè)a點坐標為(x1,y1),b點坐標為(x2,y2),c點坐標為(x3,y3)。求a、b、c三點的質(zhì)心即為目標節(jié)點U(X,Y)的估算值(定位坐標)U,(X,,Y,)。
(6)
上述方法就是基于三邊測量的質(zhì)心算法[9]。
(7)
這種方法就是本文提出的基于三邊測量的雙重質(zhì)心算法。
在井下80m×80m測試區(qū)域內(nèi)布置四個點參考節(jié)點,坐標分別標注為A(0,0)、B (0,80)、C(80,0)、D(80,80)。在測試區(qū)域內(nèi)放置一個待測的目標節(jié)點,坐標為U(43,50)。則可以計算出U點到A、B、C、D點的實際距離分別為65.95m、52.43m、62.20m、47.63m。在參考節(jié)點和目標節(jié)點上安裝TI公司生產(chǎn)的CC2530無線信號收發(fā)芯片,其自身帶有定位功能。應(yīng)用CC2530的定位功能進行測量AU(S1)、BU(S2)、CU(S3)、DU(S4)。為減少環(huán)境參數(shù)及隨機噪聲產(chǎn)生的誤差,每個距離測量50次,并對數(shù)據(jù)進行卡爾曼濾波,最終得到四個距離量為72.55m、57.67m、68.42m、52.39m。
下面在Matlab仿真軟件上進行仿真實驗:
1.三邊測量法
已知S1=72.55m,S2=57.67m,S3=68.42m 代入公式(5)數(shù)學(xué)模型,應(yīng)用Matlab仿真,得到圖4結(jié)果。
圖4 三邊測量法仿真結(jié)果
2.基于三邊測量的質(zhì)心算法
已知S1=72.55m,S2=57.67m,S3=68.42m 。按照基于三邊測量的質(zhì)心算法,應(yīng)用Matlab仿真,得到圖5結(jié)果。
圖5 基于三邊測量的質(zhì)心算法仿真結(jié)果
3.基于三邊測量法的雙重質(zhì)心算法
已知S1=72.55m,S2=57.67m,S3=68.42m,S4=52.39。按照基于三邊測量的雙重質(zhì)心算法,應(yīng)用Matlab仿真,得到圖6結(jié)果。
圖6 基于三邊測量的雙重質(zhì)心算法仿真結(jié)果
表1
從上述個例看,在同等條件下該算法的定位誤差是三邊測量法的11.2%,是基于三邊測量的質(zhì)心算法的6.3%有效地提高定位精度。經(jīng)過大量反復(fù)的實驗證明:采用基于三邊測量的雙重質(zhì)心算法可以顯著減少定位誤差,且因本算法的對稱性,可以抵消一部分在測距環(huán)節(jié)中由于環(huán)境因素相關(guān)的參數(shù)n造成的誤差。
綜上所述,可以得出如下結(jié)論:(1)由于每個節(jié)點模塊自帶測量定位功能,因而,改進后的基于三邊測量的雙重質(zhì)心算法與前兩種算法相比不需要增加硬件成本。(2) 基于三邊測量的雙重質(zhì)心算法比前兩種算法計算量略大,電池能耗增加,電池使用有效期變短。(3)改進后的基于三邊測量的雙重質(zhì)心算法定位精度卻明顯高于三邊測量法和基于三邊測量的質(zhì)心算法。