張 朝,馮 鋒
(寧夏大學(xué) 信息工程學(xué)院,寧夏 銀川 750021)
近年來(lái),隨著信息科技的不斷發(fā)展,物聯(lián)網(wǎng)技術(shù)被廣泛應(yīng)用在不同的場(chǎng)景,局部定位成為了當(dāng)前物聯(lián)網(wǎng)發(fā)展的重要分支之一。局部定位主要應(yīng)用于煤礦和室內(nèi)安全防護(hù)、消防搜救中。常用的室內(nèi)定位算法按照是否依賴(lài)節(jié)點(diǎn)間的距離可分為兩大類(lèi):基于測(cè)距的算法和非測(cè)距的算法[1-4]?;诜菧y(cè)距的算法主要是依據(jù)網(wǎng)絡(luò)的連通性來(lái)實(shí)現(xiàn)定位,常見(jiàn)的非測(cè)距定位算法有質(zhì)心算法、DV-Hop、APIT 等;基于測(cè)距的定位算法主要是通過(guò)信標(biāo)節(jié)點(diǎn)和待測(cè)節(jié)點(diǎn)間的距離進(jìn)行定位,如RSSI、TOA、TODA 等算法[2]。在RSSI 定位的基礎(chǔ)上,對(duì)獲得的RSSI 序列做進(jìn)一步的數(shù)據(jù)融合,得出最優(yōu)的RSSI值用來(lái)計(jì)算信標(biāo)節(jié)點(diǎn)與未知節(jié)點(diǎn)之間的距離,對(duì)計(jì)算得到的距離進(jìn)一步判斷篩選,找到最近的信標(biāo)節(jié)點(diǎn)用于定位[5-8]。
文獻(xiàn)[9]提出了一種基于傳統(tǒng)三邊質(zhì)心定位算法的自適應(yīng)三邊定位算法,對(duì)權(quán)重進(jìn)行重新設(shè)計(jì),使得定位精度提高。文獻(xiàn)[10]提出四邊加權(quán)與梯度下降定位算法,對(duì)數(shù)據(jù)進(jìn)行處理和融合,與傳統(tǒng)三邊算法相比精度得到了提升。文獻(xiàn)[11]提出了一種基于遺傳神經(jīng)網(wǎng)絡(luò)的煤礦井下定位算法,將遺傳神經(jīng)網(wǎng)絡(luò)得到的定位結(jié)果代入Taylor 算法,得到最終的定位結(jié)果。文獻(xiàn)[12]提出了一種自適應(yīng)定位算法,引入平均差作為基站選擇的標(biāo)準(zhǔn),提升了基站到標(biāo)簽距離信息的可靠性。文獻(xiàn)[13]針對(duì)加權(quán)最小二乘法(WLS)的三邊定位算法的定位信息損失問(wèn)題,利用WLS 算法粗略估計(jì)未知節(jié)點(diǎn)的坐標(biāo)構(gòu)建定位模型,實(shí)現(xiàn)精確定位。文獻(xiàn)[14]提出了一種改進(jìn)VIRE 的RFID 室內(nèi)定位算法,采用信號(hào)傳播損耗模型來(lái)計(jì)算參考標(biāo)簽的RSSI 值,使其更接近真實(shí)標(biāo)簽的值。
本文基于傳統(tǒng)的三邊定位算法,提出了一種數(shù)據(jù)融合的TCM(The Circumcircle of the Midpoint of the three lines)定位算法。對(duì)采集的數(shù)據(jù)進(jìn)行數(shù)據(jù)融合和優(yōu)化,獲得最優(yōu)值用于定位計(jì)算,采用三角形三線中點(diǎn)外接圓圓心作為目標(biāo)定位位置。與傳統(tǒng)的最小二乘法相比,本文方法提高了定位精度。
在二維空間內(nèi),未知節(jié)點(diǎn)通過(guò)無(wú)線射頻技術(shù)獲得RSSI值,根據(jù)式(1)可以計(jì)算出標(biāo)簽到閱讀器之間的距離。采用三邊測(cè)量定位對(duì)未知節(jié)點(diǎn)進(jìn)行定位,需要三個(gè)信標(biāo)節(jié)點(diǎn)的坐標(biāo)信息以及未知節(jié)點(diǎn)到各個(gè)信標(biāo)節(jié)點(diǎn)的距離值。
其中:A為距離為1 m 時(shí)的信號(hào)強(qiáng)度;n為路徑損耗系數(shù)。
三邊定位算法示意圖如圖1所示,以待測(cè)節(jié)點(diǎn)到信標(biāo)節(jié)點(diǎn)的距離為半徑做圓。理想工況下三圓會(huì)相交于一點(diǎn),但在實(shí)際的工程應(yīng)用中,由于應(yīng)用場(chǎng)景、環(huán)境和設(shè)備等因素影響,往往達(dá)不到三邊測(cè)量定位的理想工況。在實(shí)際工程應(yīng)用中最常見(jiàn)的是三圓交于一個(gè)區(qū)域,目前最常用的方法是用三角形質(zhì)心或最小二乘法來(lái)估計(jì)未知節(jié)點(diǎn)的位置。
圖1 三邊測(cè)量定位原理
圖1 中,點(diǎn)A、B、C為三個(gè)信標(biāo)節(jié)點(diǎn),點(diǎn)O是待測(cè)節(jié)點(diǎn)。設(shè)點(diǎn)O的坐標(biāo)為(x,y),A點(diǎn)的坐標(biāo)為(x1,y1),B點(diǎn)的坐標(biāo)為(x2,y2),C點(diǎn)的坐標(biāo)為(x3,y3),O點(diǎn)到A、B、C三點(diǎn)的距離分別為d1、d2、d3。根據(jù)畢達(dá)哥拉斯定理可得:
根據(jù)式(2)聯(lián)立方程組可得:
求解式(3),所求(x,y)便是未知節(jié)點(diǎn)的坐標(biāo)。
三邊測(cè)量定位算法在工程應(yīng)用中因?yàn)閼?yīng)用場(chǎng)景的不同會(huì)出現(xiàn)多種情況,本文重點(diǎn)討論的是在信號(hào)接收范圍內(nèi)的算法設(shè)計(jì)。
如圖2、圖3、圖4所示,在信號(hào)接收的范圍內(nèi),主要有三種工況出現(xiàn)。圖中A、B、C為信標(biāo)節(jié)點(diǎn),D、E、F為三圓內(nèi)側(cè)交點(diǎn)。不難看出,三種情況都會(huì)形成一個(gè)銳角三角形區(qū)域,未知節(jié)點(diǎn)就處于該區(qū)域中。常用的算法中有三角形質(zhì)心算法和最小二乘法,以所求節(jié)點(diǎn)坐標(biāo)來(lái)代替未知節(jié)點(diǎn)的坐標(biāo)位置,TCM 算法則用三角形三線中點(diǎn)外接圓圓心來(lái)代替未知節(jié)點(diǎn)的坐標(biāo)位置。
圖2 三圓大小不等圖
圖3 兩圓大小相等圖
圖4 三圓大小相等圖
RSSI 的數(shù)值很容易受到外界環(huán)境的影響,如光照、灰塵等,在收到RSSI 值的序列后,不是所有的RSSI 值都滿足計(jì)算要求,經(jīng)過(guò)高斯濾波算法對(duì)RSSI 值進(jìn)行濾波處理,排除偽信號(hào)以獲得局部最優(yōu)值。只經(jīng)過(guò)高斯濾波處理的值只是小概率事件,TCM 算法中對(duì)RSSI 值濾波算法也做了改進(jìn)[1]。
RSSI 值濾波算法是對(duì)數(shù)據(jù)的預(yù)處理過(guò)程,篩選掉不符合要求的數(shù)據(jù),主要是按照以下三步完成:
(1)步驟一:根據(jù)式(4)~式(8),采用高斯模型分布函數(shù)對(duì)未知節(jié)點(diǎn)的N個(gè)RSSI 值進(jìn)行數(shù)據(jù)處理并記錄在數(shù)組X[]中,其中N>n,并求出RSSIa。
其中:RSSIi為第i個(gè)RSSI 信號(hào)強(qiáng)度值;ρ為樣本均值;φ2為樣本方差;φi為樣本離差;RSSIa為經(jīng)過(guò)高斯濾波后的RSSI 序列均值。
(2)步驟二:高斯模型只對(duì)小概率擾動(dòng)進(jìn)行消除,所以在RSSI 值經(jīng)過(guò)高斯模型處理后,對(duì)數(shù)組X[]做分組處理,以RSSIa值為參考標(biāo)準(zhǔn),將RSSIi≥RSSIa的值存入X1[]數(shù)組中,共m個(gè)數(shù)據(jù);RSSIi<RSSIa的值存入X2[]數(shù)組中,共h個(gè)數(shù)據(jù),其中m+h=n(m,h≥2)。
兩組數(shù)據(jù)對(duì)應(yīng)的均值分別為:
兩組數(shù)據(jù)對(duì)應(yīng)的方差分別為:
根據(jù)上述過(guò)程,由式(13)可得到RSSIb為:
(3)步驟三:數(shù)據(jù)融合。根據(jù)式(14)求出RSSIc,用于計(jì)算未知節(jié)點(diǎn)與信標(biāo)節(jié)點(diǎn)之間的距離。
實(shí)際應(yīng)用場(chǎng)景如2.1 節(jié)所述。為了更好地闡述TCM 算法,采用三圓相等工況對(duì)TCM 算法進(jìn)行說(shuō)明。TCM 算法是在三邊測(cè)量定位的基礎(chǔ)上,用過(guò)三角形各邊中點(diǎn)的外接圓圓心來(lái)代替待測(cè)節(jié)點(diǎn)的位置。TCM 定位算法模型如圖5、圖6所示。
圖5 TCM 算法
圖6 TCM 算法局部圖
圖5 中,A、B、C為三個(gè)信標(biāo)節(jié)點(diǎn),G為待測(cè)節(jié)點(diǎn)。ra、rb、rc分別是待測(cè)節(jié)點(diǎn)根據(jù)RSSI 距離計(jì)算公式得到的距離,以ra、rb、rc為半徑做圓,a為圓B和圓C位于A側(cè)的交點(diǎn),b為圓A和圓C位于B側(cè)的交點(diǎn),c為圓A和圓B位于C側(cè)的交點(diǎn),對(duì)應(yīng)的坐標(biāo)分別為(xa,ya)、(xb,yb)、(xc,yc)。
圖6 是圖5 的局部放大圖。其中,點(diǎn)D是線段ab的中點(diǎn),坐標(biāo)為(xD,yD);點(diǎn)E是線段ac的中點(diǎn),坐標(biāo)為(xE,yE);點(diǎn)F是線段cb的中點(diǎn),坐標(biāo)為(xF,yF)。圓O為△DEF的外接圓,將圓心O(xO,yO)作為待測(cè)節(jié)點(diǎn)的坐標(biāo)位置。點(diǎn)D、E、F的坐標(biāo)可由中點(diǎn)坐標(biāo)公式求得。
外接圓圓心坐標(biāo)公式為:
TCM 的核心思想是縮小未知節(jié)點(diǎn)的坐標(biāo)位置,不同的工況下形成的三角形區(qū)域?qū)?yīng)的圓心坐標(biāo)都可以按照上述算法求得。對(duì)于特殊的三角形區(qū)域,中線外接圓圓心會(huì)與其他特征點(diǎn)重合,但三角形區(qū)域?yàn)檎切蔚墓r的概率較低。TCM 算法的流程如圖7所示。
圖7 TCM 算法流程
為了驗(yàn)證算法的有效性,對(duì)TCM 算法和傳統(tǒng)三邊測(cè)量算法進(jìn)行實(shí)驗(yàn)仿真對(duì)比。實(shí)驗(yàn)環(huán)境:Intel(R)Core(TM)i7-10700 處理器、Windows 11 家庭中文版、MATLAB R2018a。實(shí)驗(yàn)中在10 m×10 m 的平面內(nèi)設(shè)置了10 個(gè)待測(cè)節(jié)點(diǎn)和4 個(gè)信標(biāo)節(jié)點(diǎn)。4 個(gè)信標(biāo)節(jié)點(diǎn)的坐標(biāo)為:(0,0)、(10,0)、(0,10)、(10,10)。各個(gè)標(biāo)簽信息位置見(jiàn)表1 所列,對(duì)待測(cè)標(biāo)簽進(jìn)行測(cè)試,每個(gè)待測(cè)節(jié)點(diǎn)測(cè)試10 次,取平均結(jié)果作為最終結(jié)果。
圖8 展示了TCM 定位算法的定位結(jié)果,圖9 展示了傳統(tǒng)三邊定位算法的定位結(jié)果,圖10 展示了兩種算法的平均誤差對(duì)比結(jié)果,表1 是對(duì)兩種定位算法的具體定位數(shù)據(jù)進(jìn)行對(duì)比的結(jié)果。
從圖9 和表1 中可以看出,傳統(tǒng)三邊定位算法離實(shí)際坐標(biāo)誤差較大,最大誤差是在2 號(hào)標(biāo)簽處,達(dá)到了0.937 1。從圖8 和表1 中可以看出,改進(jìn)后外接圓圓心定位算法誤差較小,最大誤差同樣出現(xiàn)在2 號(hào)標(biāo)簽處,為0.484 0。從圖10中可以看出,改進(jìn)后的算法定位精度優(yōu)于傳統(tǒng)三邊定位算法。
表1 定位坐標(biāo)結(jié)果及誤差
圖8 TCM 算法仿真結(jié)果
圖9 傳統(tǒng)三邊定位算法仿真結(jié)果
圖10 兩種算法的誤差對(duì)比結(jié)果
本文基于WSN 和RFID 融合技術(shù),依據(jù)圖形幾何關(guān)系,提出了一種新的三邊測(cè)量定位算法。TCM 算法通過(guò)對(duì)RSSI值的預(yù)處理,消除高斯濾波的擾動(dòng),利用RSSI 值求出信標(biāo)節(jié)點(diǎn)與待測(cè)節(jié)點(diǎn)之間的距離;在三邊測(cè)量定位的基礎(chǔ)上,根據(jù)三線中點(diǎn)外接圓縮小定位區(qū)域,并用圓心代替待測(cè)節(jié)點(diǎn)。通過(guò)仿真模擬實(shí)驗(yàn)驗(yàn)證了算法的有效性,實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的三線中心外接圓算法(TCM)與傳統(tǒng)的三邊定位算法相比,有效地提高了定位精度。后續(xù)的工作需要將該算法和BP 等算法相結(jié)合,根據(jù)不同的應(yīng)用場(chǎng)景,訓(xùn)練出符合當(dāng)下工況的最佳定位算法。