張 朝,馮 鋒
(寧夏大學 信息工程學院,寧夏 銀川 750021)
近年來,隨著信息科技的不斷發展,物聯網技術被廣泛應用在不同的場景,局部定位成為了當前物聯網發展的重要分支之一。局部定位主要應用于煤礦和室內安全防護、消防搜救中。常用的室內定位算法按照是否依賴節點間的距離可分為兩大類:基于測距的算法和非測距的算法[1-4]。基于非測距的算法主要是依據網絡的連通性來實現定位,常見的非測距定位算法有質心算法、DV-Hop、APIT 等;基于測距的定位算法主要是通過信標節點和待測節點間的距離進行定位,如RSSI、TOA、TODA 等算法[2]。在RSSI 定位的基礎上,對獲得的RSSI 序列做進一步的數據融合,得出最優的RSSI值用來計算信標節點與未知節點之間的距離,對計算得到的距離進一步判斷篩選,找到最近的信標節點用于定位[5-8]。
文獻[9]提出了一種基于傳統三邊質心定位算法的自適應三邊定位算法,對權重進行重新設計,使得定位精度提高。文獻[10]提出四邊加權與梯度下降定位算法,對數據進行處理和融合,與傳統三邊算法相比精度得到了提升。文獻[11]提出了一種基于遺傳神經網絡的煤礦井下定位算法,將遺傳神經網絡得到的定位結果代入Taylor 算法,得到最終的定位結果。文獻[12]提出了一種自適應定位算法,引入平均差作為基站選擇的標準,提升了基站到標簽距離信息的可靠性。文獻[13]針對加權最小二乘法(WLS)的三邊定位算法的定位信息損失問題,利用WLS 算法粗略估計未知節點的坐標構建定位模型,實現精確定位。文獻[14]提出了一種改進VIRE 的RFID 室內定位算法,采用信號傳播損耗模型來計算參考標簽的RSSI 值,使其更接近真實標簽的值。
本文基于傳統的三邊定位算法,提出了一種數據融合的TCM(The Circumcircle of the Midpoint of the three lines)定位算法。對采集的數據進行數據融合和優化,獲得最優值用于定位計算,采用三角形三線中點外接圓圓心作為目標定位位置。與傳統的最小二乘法相比,本文方法提高了定位精度。
在二維空間內,未知節點通過無線射頻技術獲得RSSI值,根據式(1)可以計算出標簽到閱讀器之間的距離。采用三邊測量定位對未知節點進行定位,需要三個信標節點的坐標信息以及未知節點到各個信標節點的距離值。
其中:A為距離為1 m 時的信號強度;n為路徑損耗系數。
三邊定位算法示意圖如圖1所示,以待測節點到信標節點的距離為半徑做圓。理想工況下三圓會相交于一點,但在實際的工程應用中,由于應用場景、環境和設備等因素影響,往往達不到三邊測量定位的理想工況。在實際工程應用中最常見的是三圓交于一個區域,目前最常用的方法是用三角形質心或最小二乘法來估計未知節點的位置。

圖1 三邊測量定位原理
圖1 中,點A、B、C為三個信標節點,點O是待測節點。設點O的坐標為(x,y),A點的坐標為(x1,y1),B點的坐標為(x2,y2),C點的坐標為(x3,y3),O點到A、B、C三點的距離分別為d1、d2、d3。根據畢達哥拉斯定理可得:
根據式(2)聯立方程組可得:
求解式(3),所求(x,y)便是未知節點的坐標。
三邊測量定位算法在工程應用中因為應用場景的不同會出現多種情況,本文重點討論的是在信號接收范圍內的算法設計。
如圖2、圖3、圖4所示,在信號接收的范圍內,主要有三種工況出現。圖中A、B、C為信標節點,D、E、F為三圓內側交點。不難看出,三種情況都會形成一個銳角三角形區域,未知節點就處于該區域中。常用的算法中有三角形質心算法和最小二乘法,以所求節點坐標來代替未知節點的坐標位置,TCM 算法則用三角形三線中點外接圓圓心來代替未知節點的坐標位置。

圖2 三圓大小不等圖

圖3 兩圓大小相等圖

圖4 三圓大小相等圖
RSSI 的數值很容易受到外界環境的影響,如光照、灰塵等,在收到RSSI 值的序列后,不是所有的RSSI 值都滿足計算要求,經過高斯濾波算法對RSSI 值進行濾波處理,排除偽信號以獲得局部最優值。只經過高斯濾波處理的值只是小概率事件,TCM 算法中對RSSI 值濾波算法也做了改進[1]。
RSSI 值濾波算法是對數據的預處理過程,篩選掉不符合要求的數據,主要是按照以下三步完成:
(1)步驟一:根據式(4)~式(8),采用高斯模型分布函數對未知節點的N個RSSI 值進行數據處理并記錄在數組X[]中,其中N>n,并求出RSSIa。
其中:RSSIi為第i個RSSI 信號強度值;ρ為樣本均值;φ2為樣本方差;φi為樣本離差;RSSIa為經過高斯濾波后的RSSI 序列均值。
(2)步驟二:高斯模型只對小概率擾動進行消除,所以在RSSI 值經過高斯模型處理后,對數組X[]做分組處理,以RSSIa值為參考標準,將RSSIi≥RSSIa的值存入X1[]數組中,共m個數據;RSSIi<RSSIa的值存入X2[]數組中,共h個數據,其中m+h=n(m,h≥2)。
兩組數據對應的均值分別為:
兩組數據對應的方差分別為:
根據上述過程,由式(13)可得到RSSIb為:
(3)步驟三:數據融合。根據式(14)求出RSSIc,用于計算未知節點與信標節點之間的距離。
實際應用場景如2.1 節所述。為了更好地闡述TCM 算法,采用三圓相等工況對TCM 算法進行說明。TCM 算法是在三邊測量定位的基礎上,用過三角形各邊中點的外接圓圓心來代替待測節點的位置。TCM 定位算法模型如圖5、圖6所示。

圖5 TCM 算法

圖6 TCM 算法局部圖
圖5 中,A、B、C為三個信標節點,G為待測節點。ra、rb、rc分別是待測節點根據RSSI 距離計算公式得到的距離,以ra、rb、rc為半徑做圓,a為圓B和圓C位于A側的交點,b為圓A和圓C位于B側的交點,c為圓A和圓B位于C側的交點,對應的坐標分別為(xa,ya)、(xb,yb)、(xc,yc)。
圖6 是圖5 的局部放大圖。其中,點D是線段ab的中點,坐標為(xD,yD);點E是線段ac的中點,坐標為(xE,yE);點F是線段cb的中點,坐標為(xF,yF)。圓O為△DEF的外接圓,將圓心O(xO,yO)作為待測節點的坐標位置。點D、E、F的坐標可由中點坐標公式求得。
外接圓圓心坐標公式為:
TCM 的核心思想是縮小未知節點的坐標位置,不同的工況下形成的三角形區域對應的圓心坐標都可以按照上述算法求得。對于特殊的三角形區域,中線外接圓圓心會與其他特征點重合,但三角形區域為正三角形的工況的概率較低。TCM 算法的流程如圖7所示。

圖7 TCM 算法流程
為了驗證算法的有效性,對TCM 算法和傳統三邊測量算法進行實驗仿真對比。實驗環境:Intel(R)Core(TM)i7-10700 處理器、Windows 11 家庭中文版、MATLAB R2018a。實驗中在10 m×10 m 的平面內設置了10 個待測節點和4 個信標節點。4 個信標節點的坐標為:(0,0)、(10,0)、(0,10)、(10,10)。各個標簽信息位置見表1 所列,對待測標簽進行測試,每個待測節點測試10 次,取平均結果作為最終結果。
圖8 展示了TCM 定位算法的定位結果,圖9 展示了傳統三邊定位算法的定位結果,圖10 展示了兩種算法的平均誤差對比結果,表1 是對兩種定位算法的具體定位數據進行對比的結果。
從圖9 和表1 中可以看出,傳統三邊定位算法離實際坐標誤差較大,最大誤差是在2 號標簽處,達到了0.937 1。從圖8 和表1 中可以看出,改進后外接圓圓心定位算法誤差較小,最大誤差同樣出現在2 號標簽處,為0.484 0。從圖10中可以看出,改進后的算法定位精度優于傳統三邊定位算法。

表1 定位坐標結果及誤差

圖8 TCM 算法仿真結果

圖9 傳統三邊定位算法仿真結果

圖10 兩種算法的誤差對比結果
本文基于WSN 和RFID 融合技術,依據圖形幾何關系,提出了一種新的三邊測量定位算法。TCM 算法通過對RSSI值的預處理,消除高斯濾波的擾動,利用RSSI 值求出信標節點與待測節點之間的距離;在三邊測量定位的基礎上,根據三線中點外接圓縮小定位區域,并用圓心代替待測節點。通過仿真模擬實驗驗證了算法的有效性,實驗結果表明,改進后的三線中心外接圓算法(TCM)與傳統的三邊定位算法相比,有效地提高了定位精度。后續的工作需要將該算法和BP 等算法相結合,根據不同的應用場景,訓練出符合當下工況的最佳定位算法。