羅宏等 藍(lán) 耿 聶良剛* 粟光旺 伍一坤
1(廣西財(cái)經(jīng)學(xué)院 廣西 南寧 530003)2(廣西大學(xué) 廣西 南寧 530001)
目標(biāo)定位與跟蹤是無線傳感器網(wǎng)絡(luò)(WSN)的基礎(chǔ)研究領(lǐng)域之一[1]。要實(shí)現(xiàn)WSN中準(zhǔn)確的目標(biāo)定位和跟蹤,需要提高目標(biāo)初始位置的精度和動(dòng)態(tài)實(shí)時(shí)目標(biāo)的測(cè)距精度。
國內(nèi)外學(xué)者圍繞WSN中實(shí)時(shí)目標(biāo)的準(zhǔn)確跟蹤進(jìn)行了大量的研究。文獻(xiàn)[2]將接收信號(hào)強(qiáng)度指示器(Received Signal Strength Indicator, RSSI)測(cè)量融合到遞歸貝葉斯框架濾波器中,研究了初始位置的濾波方法,但是該方法具有局部性,無法提高全局精確度;文獻(xiàn)[3]和文獻(xiàn)[4]采用全局濾波法對(duì)WSN中目標(biāo)的初始位置進(jìn)行了精確估計(jì),但該方法沒有考慮目標(biāo)的實(shí)時(shí)動(dòng)態(tài)性。文獻(xiàn)[5]基于卡爾曼濾波(Kalman Filter, KF)研究了動(dòng)態(tài)目標(biāo)定位和跟蹤過程中噪聲的數(shù)量和分布以及測(cè)量對(duì)應(yīng)用的影響,但是所利用的噪聲與實(shí)際情況有較大的偏差,對(duì)實(shí)際應(yīng)用難以做出有效評(píng)估。文獻(xiàn)[6]提出了一種基于無跡卡爾曼濾波(Unscented Kalman Filter, UKF)的定位和跟蹤算法,該算法利用人體步行的動(dòng)態(tài)模型來跟蹤目標(biāo)的位置和速度,需要大量的傳感器,增加了傳感器的復(fù)雜度和成本。文獻(xiàn)[7]采用單傳感器基于距離感知法對(duì)WSN中目標(biāo)的距離進(jìn)行了測(cè)量,但實(shí)驗(yàn)結(jié)果表明其測(cè)量結(jié)果誤差較大。文獻(xiàn)[8]和文獻(xiàn)[9]避免了文獻(xiàn)[7]的缺點(diǎn),采用多傳感器基于泛函距離對(duì)動(dòng)態(tài)目標(biāo)的距離和位置進(jìn)行了測(cè)量,但其實(shí)驗(yàn)結(jié)果依然與理論之間存在較大誤差。文獻(xiàn)[10]采用神經(jīng)網(wǎng)絡(luò)法對(duì)WSN中的二維動(dòng)態(tài)目標(biāo)進(jìn)行了高精度定位和跟蹤,但其計(jì)算耗時(shí)較長(zhǎng),具有一定的時(shí)滯性。文獻(xiàn)[11]引入了一些移動(dòng)傳感器節(jié)點(diǎn)(mns)與社交網(wǎng)絡(luò)服務(wù)(Social Networking Services, SNS)相結(jié)合,形成一種能力更強(qiáng)、能量約束更小的混合WSN。在此基礎(chǔ)上,提出了一種有效的混合無線傳感器網(wǎng)絡(luò)目標(biāo)跟蹤方案,實(shí)現(xiàn)了移動(dòng)節(jié)點(diǎn)和移動(dòng)節(jié)點(diǎn)的動(dòng)態(tài)調(diào)度。然而,當(dāng)節(jié)點(diǎn)數(shù)量較多時(shí),該方案的魯棒性會(huì)受到一定的影響。文獻(xiàn)[12]將機(jī)器學(xué)習(xí)與反向神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Networks, BPNN)相結(jié)合,用于跟蹤以某種加速度移動(dòng)的目標(biāo),然而,BPNN需要大量迭代運(yùn)算才能收斂到所需的解決方案。文獻(xiàn)[13]采用概率神經(jīng)網(wǎng)絡(luò)(Probabilistic Neural Network, PNN)克服了BPNN的局限性,只需要很少的訓(xùn)練樣本就可以工作,但是BPNN無法解決測(cè)量噪聲和目標(biāo)速度突變的不確定性。
可以看出,現(xiàn)有方法很難同時(shí)得到準(zhǔn)確的初始值以及定位和跟蹤的精確值。因此,提出了一種WSN中改進(jìn)(FOA-GRNN)法結(jié)合迭代Cubature卡爾曼濾波的實(shí)時(shí)目標(biāo)跟蹤方法,主要?jiǎng)?chuàng)新點(diǎn)包括:
(1) 在零平均值高斯測(cè)量噪聲的背景下,利用GRNN算法對(duì)初始位置進(jìn)行確定,可提高初始位置的定位精度,提高二維動(dòng)態(tài)目標(biāo)位置的估計(jì)能力。
(2) 針對(duì)測(cè)量噪聲和目標(biāo)速度突變的不確定性,利用迭代Cubature卡爾曼濾波對(duì)WSN中單運(yùn)動(dòng)目標(biāo)進(jìn)行實(shí)時(shí)二維跟蹤,提高了動(dòng)態(tài)跟蹤的實(shí)時(shí)性和跟蹤精度。
(3) 結(jié)合FOA-GRNN快速收斂的優(yōu)點(diǎn)和迭代Cunbature卡爾曼濾波精度較高的優(yōu)點(diǎn),降低了大規(guī)模目標(biāo)跟蹤和定位的絕對(duì)誤差,一定程度上降低了定位所花費(fèi)的計(jì)算開銷。
實(shí)驗(yàn)結(jié)果表明,與其他現(xiàn)有算法相比,本文方法在大規(guī)模動(dòng)態(tài)目標(biāo)定位和跟蹤的問題上,具有更好的目標(biāo)定位和跟蹤能力,獲得了更高的定位和跟蹤精度,同時(shí),定位所花費(fèi)的時(shí)間也在可接受范圍內(nèi)。
改進(jìn)的FOA-GRNN可以快速地收斂到基礎(chǔ)(線性或非線性)回歸表面,它能夠在稀疏數(shù)據(jù)集上快速訓(xùn)練,并且對(duì)連續(xù)函數(shù)逼近特別有用。圖1給出了改進(jìn)的FOA-GRNN的結(jié)構(gòu),它主要由輸入層、模式層、求和層和輸出層組成[14]。輸入層接收輸入信號(hào),而模式層對(duì)輸入空間到模式空間的數(shù)據(jù)進(jìn)行非線性變換。隱藏層中的神經(jīng)元數(shù)量通常等于訓(xùn)練集中的模式數(shù)量。求和層執(zhí)行求和操作,其中將模式層節(jié)點(diǎn)的輸出與適當(dāng)?shù)幕ミB權(quán)值相乘以進(jìn)行求和,從而生成網(wǎng)絡(luò)的輸出。輸出層節(jié)點(diǎn)由一個(gè)單獨(dú)輸出表示。
圖1 FOA-GRNN跟蹤算法框圖
改進(jìn)FOA-GRNN架構(gòu)的輸入是在特定時(shí)間實(shí)例從錨節(jié)點(diǎn)接收信號(hào)的RSSI值,其輸出為在該時(shí)刻移動(dòng)節(jié)點(diǎn)估計(jì)的x軸和y軸坐標(biāo)。在WSN節(jié)點(diǎn)定位中,錨點(diǎn)為已知自身位置的傳感器節(jié)點(diǎn)。而節(jié)點(diǎn)中,無線信號(hào)強(qiáng)度通常用接收信號(hào)強(qiáng)度指示(RSSI)衡量,RSSI為接收功率Pre與參考功率Pref的比值?,F(xiàn)實(shí)中,由于無線信號(hào)的傳播易受障礙物、多徑傳播等因素的干擾,理想的Pre分布是不存在的,影響RSSI與距離的一致性。因此,接收多組數(shù)據(jù)之后進(jìn)行卡爾曼濾波處理,一定程度上消除信號(hào)波動(dòng)產(chǎn)生的誤差。
改進(jìn)的FOA-GRNN的離散時(shí)間目標(biāo)運(yùn)動(dòng)模型和觀測(cè)模型的形式如下:
(1)
dmax=max[di]
(2)
(3)
式中:N和M分別是當(dāng)前迭代次數(shù)和最大迭代次數(shù);xi和yi是第i個(gè)果蠅的橫坐標(biāo)和縱坐標(biāo)位置;di是第i個(gè)果蠅與坐標(biāo)原點(diǎn)的距離;dmin和dmax分別是最大距離和最小距離;Δi是待優(yōu)化選擇的寬度系數(shù)。
改進(jìn)FOA-GRNN算法中,每個(gè)錨點(diǎn)可視為一只果蠅,即對(duì)初始位置初始化和果蠅位置賦值后,計(jì)算果蠅與原點(diǎn)之間的距離和果蠅的味道濃度,并根據(jù)果蠅的味道濃度尋找出最優(yōu)個(gè)體,保存最優(yōu)個(gè)體的位置。最后,根據(jù)收斂條件設(shè)置迭代次數(shù),直到滿足迭代條件,該執(zhí)行過程結(jié)束。主要步驟為:
(1) 對(duì)果蠅的初始位置進(jìn)行初始化。
(2) 對(duì)第i個(gè)果蠅的位置進(jìn)行賦值。
(3) 計(jì)算所有果蠅與坐標(biāo)原點(diǎn)之間的距離di。
(4) 以均方根誤差作為判斷函數(shù)來計(jì)算第i個(gè)果蠅的味道濃度taste(x):
(4)
tastei=F3(Δi)
(5)
(5) 找到tastei最小的個(gè)體,即:
Ttaste=min(tastei)
(6)
式中:Ttaste為tastei最小的個(gè)體。
tastei最小的個(gè)體的位置為:
(7)
(6) 循環(huán)執(zhí)行步驟(2)-步驟(5),直到滿足收斂條件,結(jié)束循環(huán)。
當(dāng)?shù)讓酉到y(tǒng)是線性的,系統(tǒng)動(dòng)力學(xué)中的噪聲是高斯的,具有零均值時(shí),Cubature卡爾曼濾波(Cubature Kalman Filtering, CKF)采用spherical-radial cubature準(zhǔn)則積分,則可計(jì)算第n個(gè)目標(biāo)與坐標(biāo)原點(diǎn)之間的距離dn為:
(8)
根據(jù)最小二乘法估計(jì)方法可得到:
A=(BTB)-1BTC
(9)
(10)
(11)
式中:A、B和C分別是狀態(tài)轉(zhuǎn)換、控制輸入轉(zhuǎn)換和測(cè)量轉(zhuǎn)換矩陣。
矩陣A將可選控制輸入向量Uk與狀態(tài)相關(guān)聯(lián)。這里Wk-1和Vk+1分別是過程噪聲和觀測(cè)噪聲,并且假設(shè)是正態(tài)分布的零均值白高斯,分別具有協(xié)方差Rk(Wk~N(0,Rk))和Ωk(Vk~N(0,Ωk))。假設(shè)這兩個(gè)噪聲彼此獨(dú)立,即它們是不相關(guān)的[15],對(duì)于等速模型,式(9)-式(11)中的矩陣如下:
(12)
(13)
CKF的運(yùn)行可以描述為兩個(gè)簡(jiǎn)單的步驟:預(yù)測(cè)和更新。預(yù)測(cè)步驟利用前一個(gè)時(shí)間步驟k的估計(jì)值來生成當(dāng)前時(shí)間步驟k+1的估計(jì)值。而在更新步驟中,利用當(dāng)前時(shí)間步驟的測(cè)量來細(xì)化預(yù)測(cè)步驟的預(yù)測(cè),從而改進(jìn)預(yù)測(cè)步驟。預(yù)測(cè)和更新中的計(jì)算式如式(14)-式(17)所示。
預(yù)測(cè):
(14)
Ωk+1=BRkBT+Ωk
(15)
更新:
(16)
(17)
式中:矩陣K稱為卡爾曼增益矩陣;“^”表示狀態(tài)向量的估計(jì)值。
本文方法基于改進(jìn)FOA-GRNN法,利用從錨點(diǎn)接收的模擬(RSSI)值和實(shí)際目標(biāo)二維位置對(duì)GRNN進(jìn)行訓(xùn)練,從而獲得單個(gè)目標(biāo)在二維運(yùn)動(dòng)時(shí)的準(zhǔn)確初始位置。然后,利用迭代Cubature卡爾曼濾波法對(duì)實(shí)時(shí)目標(biāo)進(jìn)行精準(zhǔn)定位和測(cè)距,獲得實(shí)時(shí)目標(biāo)的準(zhǔn)確定位和跟蹤信息。最后,將改進(jìn)的FOA-GRNN法和迭代Cubature卡爾曼濾波法相結(jié)合實(shí)現(xiàn)在WSN中實(shí)時(shí)目標(biāo)跟蹤和定位。其流程如圖2所示。
圖2 本文方法執(zhí)行流程
本文方法利用 MATLAB搭建系統(tǒng)仿真模型,該系統(tǒng)由一組已知坐標(biāo)的靜態(tài)錨節(jié)點(diǎn)組成,部署在200 m×200 m的仿真區(qū)域內(nèi),移動(dòng)目標(biāo)如圖3所示,外部為基站。假設(shè)移動(dòng)目標(biāo)攜帶1個(gè)WSN節(jié)點(diǎn),該節(jié)點(diǎn)接收由每個(gè)時(shí)間步長(zhǎng)tstep的所有錨節(jié)點(diǎn)廣播的無線信號(hào)。在每個(gè)時(shí)間步驟從所有錨點(diǎn)收集的RSSI值被發(fā)送到外部基站[16]。這意味著假定目標(biāo)充當(dāng)收發(fā)器,而錨定節(jié)點(diǎn)充當(dāng)具有完全各向同性天線的發(fā)射器。
圖3 目標(biāo)的在橫軸上的實(shí)際速度
為了簡(jiǎn)單起見,將跟蹤目標(biāo)限制在單個(gè)目標(biāo)的估計(jì)上。該系統(tǒng)的運(yùn)行時(shí)間為Trun,分為幾個(gè)時(shí)間段。選擇恒速模型描述各種狀態(tài)遷移模型,如隨機(jī)行走、勻速、恒加速度、多項(xiàng)式模型、辛格加速度模型、平均自適應(yīng)加速度模型等。
(18)
(19)
式中:Δt是兩個(gè)連續(xù)時(shí)刻之間的離散化時(shí)間步長(zhǎng),使得Δt=tstep。目標(biāo)運(yùn)動(dòng)在Trun期間經(jīng)歷速度的變化,如式(20)-式(23)所示。
(20)
(21)
(22)
(23)
圖3和圖4分別給出了在橫軸和縱軸上的速度,負(fù)速度值表示目標(biāo)移動(dòng)到一個(gè)坐標(biāo)值比前一次實(shí)例小的位置。
圖4 目標(biāo)的在縱軸上的實(shí)際速度
(24)
(25)
平均定位誤差:
(26)
均方根誤差(RMSE):
(27)
(28)
(29)
本文算法的完整執(zhí)行流程由三部分組成。第一部分是離線FOA-GRNN訓(xùn)練階段,涉及FOA-GRNN的訓(xùn)練。第二部分是使用FOA-GRNN的在線位置估計(jì)。第三部分是使用KF框架的在線位置估計(jì)。
表1給出了模擬參數(shù),初始目標(biāo)狀態(tài)為A=(20,15,10,5),離散時(shí)間步長(zhǎng)為tstep=0.1 s,總模擬時(shí)長(zhǎng)為Trun=50 s。
表1 本文算法的仿真參數(shù)
表2-表5給出了在不同tstep下Erroravg、ErrorU、ErrorV和ErrorRMSE,avg的模擬結(jié)果。圖5給出了平均定位誤差百分比Erroravg與均方根誤差百分比ErrorRMSE,avg的對(duì)比圖,可以看出,平均誤差百分比Erroravg與均方根誤差百分比ErrorRMSE,avg總體呈現(xiàn)一樣的變化趨勢(shì),即隨著步長(zhǎng)tstep的增加,平均誤差百分比Erroravg與均方根誤差百分比ErrorRMSE,avg都會(huì)逐漸增加,這意味著為了增加定位的精度,應(yīng)該選擇較小的離散步長(zhǎng)tstep。同時(shí),從圖5中還可以得到一個(gè)結(jié)論:平均誤差與均方差誤差之間的差異性較小。因此,既可以用平均定位誤差來衡量定位準(zhǔn)確度,又可以用均方差誤差來衡量定位準(zhǔn)確度。
表2 平均定為誤差的模擬結(jié)果
表3 定位結(jié)果在橫軸上的均方差
表4 定位結(jié)果在縱軸上的均方差
表5 平均均方差
圖5 平均定位誤差百分比與均方根誤差百分比的對(duì)比
圖6展示了定位誤差在橫向和縱向上的分布,可以看出,隨著離散步長(zhǎng)tstep的增加,橫向誤差和縱向誤差都會(huì)增加,當(dāng)tstep小于0.5 s時(shí),橫向誤差ErrorU小于縱向誤差ErrorV,當(dāng)tstep大于0.5 s后,縱向誤差ErrorV小于橫向誤差ErrorU,并且ErrorU和ErrorV的差異較小。
圖6 橫向誤差與縱向誤差的對(duì)比
2.4.1絕對(duì)誤差對(duì)比
圖7對(duì)比了文獻(xiàn)[4]、文獻(xiàn)[8]和文獻(xiàn)[11]與本文算法的絕對(duì)誤差??梢钥闯?,隨著離散步長(zhǎng)tstep的增加,橫向絕對(duì)誤差會(huì)逐漸增加,相比于文獻(xiàn)[4]、文獻(xiàn)[8]和文獻(xiàn)[11]的算法,本文算法在絕大部分范圍內(nèi)具有更低的橫向絕對(duì)誤差,這說明本文算法相比于傳統(tǒng)算法,具有更高的橫向定位和跟蹤精度。
圖7 算法橫向絕對(duì)誤差對(duì)比
圖8展示了本文算法所得到的縱向絕對(duì)誤差結(jié)果與文獻(xiàn)[4]、文獻(xiàn)[8]和文獻(xiàn)[11]中算法所得到的縱向絕對(duì)誤差的對(duì)比。可以看出,隨著離散步長(zhǎng)tstep的增加,4種算法所得到的縱向絕對(duì)誤差會(huì)逐漸增加,相比于文獻(xiàn)[4]、文獻(xiàn)[8]和文獻(xiàn)[11]的算法,本文算法在絕大部分范圍內(nèi)具有更低的縱向絕對(duì)誤差,這說明本文算法相比于傳統(tǒng)算法,具有更高的縱向定位和跟蹤精度。
圖8 算法縱向絕對(duì)誤差對(duì)比
圖9展示了本文算法所得到的絕對(duì)誤差結(jié)果與文獻(xiàn)[4]、文獻(xiàn)[8]和文獻(xiàn)[11]中算法所得到的絕對(duì)誤差的對(duì)比??梢钥闯?,隨著離散步長(zhǎng)tstep的增加,4種算法所得到的絕對(duì)誤差會(huì)逐漸增加,相比于文獻(xiàn)[4]、文獻(xiàn)[8]和文獻(xiàn)[11]的算法,本文算法在絕大部分范圍內(nèi)具有更低的絕對(duì)誤差,這說明所提出的算法相比于傳統(tǒng)算法,具有更高的定位和跟蹤精度。
圖9 算法絕對(duì)誤差對(duì)比
2.4.2執(zhí)行時(shí)間對(duì)比
一方面隨著離散步長(zhǎng)tstep的增加,4種算法所得到的絕對(duì)誤差結(jié)果都會(huì)增加,這說明減小離散步長(zhǎng)tstep可提高定位精度和準(zhǔn)確度;另一方面,太小的離散步長(zhǎng)tstep會(huì)增加定位算法的計(jì)算時(shí)間,導(dǎo)致定位和跟蹤的時(shí)間較長(zhǎng),不利于實(shí)際應(yīng)用。
為了說明本文算法在計(jì)算時(shí)間上的優(yōu)勢(shì),圖10展示了本文算法與文獻(xiàn)[4]、文獻(xiàn)[8]和文獻(xiàn)[11]在離散步長(zhǎng)tstep相等的前提下在200 m范圍內(nèi),對(duì)同等數(shù)量動(dòng)態(tài)目標(biāo)定位所花費(fèi)的時(shí)間對(duì)比。
圖10 算法計(jì)算時(shí)間對(duì)比
可以看出,在相同的定位和跟蹤范圍內(nèi),即定位半徑為200 m的前提下,定位和跟蹤的目標(biāo)數(shù)量由500個(gè)逐漸增加到5 000個(gè)。與文獻(xiàn)[4]、文獻(xiàn)[8]和文獻(xiàn)[11]相比,在執(zhí)行時(shí)間上,本文算法整體處于劣勢(shì)。需要指出的是,在實(shí)際應(yīng)用中,人們更加注重定位算法的準(zhǔn)確度,因?yàn)槎ㄎ徽`差才是真正影響算法應(yīng)用的瓶頸問題,換言之,算法的精確度才是首要考慮的因素。與文獻(xiàn)[8]和文獻(xiàn)[11]算法相比,本文算法雖然在執(zhí)行時(shí)間上不具有全面優(yōu)勢(shì),但是一定范圍內(nèi)能夠得到最小的執(zhí)行時(shí)間,如當(dāng)目標(biāo)數(shù)量為2 500時(shí),本文算法在定位精度和執(zhí)行時(shí)間上均具有明顯的優(yōu)勢(shì)。
綜合考慮定位算法的準(zhǔn)確度和執(zhí)行時(shí)間的對(duì)比結(jié)果,本文算法具有更好的綜合性能,在保證具有較短執(zhí)行時(shí)間的基礎(chǔ)上,利用本文算法能夠獲得更高的定位準(zhǔn)確度。
本文提出一種WSN中改進(jìn)FOA-GRNN結(jié)合迭代Cubature卡爾曼濾波的實(shí)時(shí)目標(biāo)跟蹤方法,研究了在大范圍定位和跟蹤區(qū)域下對(duì)大量定位和跟蹤目標(biāo)進(jìn)行準(zhǔn)確定位和跟蹤的問題。本文方法提高了定位和跟蹤的準(zhǔn)確度,降低了定位和跟蹤的誤差百分比和絕對(duì)誤差。
下一步研究重點(diǎn)包括:1) 將FOA-GRNN與其他更加智能的濾波算法相結(jié)合,進(jìn)一步提高WSN中目標(biāo)定位和跟蹤的精度;2) 繼續(xù)改進(jìn)FOA-GRNN算法的計(jì)算結(jié)構(gòu),進(jìn)一步降低本文算法在大規(guī)模目標(biāo)定位和跟蹤上的計(jì)算時(shí)間。