陳佳俊,張光宇,孫 杰,沈 浩
(1.海軍工程大學(xué),武漢 430033;2.解放軍91458部隊,海南 三亞 572000;3.解放軍92956部隊,遼寧 大連 116041)
目標跟蹤與定位是WSN一個重要的應(yīng)用領(lǐng)域,國內(nèi)外學(xué)者對它進行了大量研究,也提出了不少有代表性的WSN目標跟蹤算法,但是大多都是基于C/S架構(gòu)(Client/Server,客戶機和服務(wù)器架構(gòu))的WSN提出的,研究表明,在WSN內(nèi)節(jié)點數(shù)量較多時,基于MA(Mobile Agent,移動代理)的目標跟蹤WSN比C/S架構(gòu)的WSN在網(wǎng)絡(luò)負載和節(jié)點能量消耗上具有明顯的優(yōu)勢[1],因此,迫切需要研究基于移動代理的WSN目標跟蹤算法。見文獻[2-6]。
上述基于MA架構(gòu)跟蹤算法減少了探測結(jié)果數(shù)據(jù)在WSN中的傳遞,降低了WSN節(jié)點能量消耗,提高了WSN節(jié)點生存能力,但是由于參與計算探測結(jié)果數(shù)據(jù)的減少,如何保證移動代理選取誤差較小的節(jié)點探測數(shù)據(jù),保持較高的跟蹤精度,是基于移動代理的WSN目標跟蹤算法設(shè)計的一個難題。本文以典型的聲學(xué)傳感器構(gòu)成的WSN為對象,設(shè)計一種利用移動代理選擇最優(yōu)當前節(jié)點探測結(jié)果,并進行融合計算獲取目標位置信息的目標跟蹤算法。
目標進入聲學(xué)傳感器WSN覆蓋范圍后,WSN部分節(jié)點(與目標距離小于節(jié)點最大探測距離)會接收到目標發(fā)出的聲音信號,并將接收到信號強度信息存儲在節(jié)點傳感器中,Sink節(jié)點需要派遣MA訪問合適的探測節(jié)點,采集探測節(jié)點和它鄰近節(jié)點收集的目標信號強度信息,并利用合適的算法對采集到的信號強度信息進行處理,計算目標的位置信息和運動狀態(tài)信息,當目標離開WSN分布區(qū)域后,MA攜帶計算得到的目標運動狀態(tài)信息返回Sink節(jié)點。圖1給出了基于移動代理的目標跟蹤問題示意圖。
根據(jù)上述跟蹤過程的分析,在構(gòu)建跟蹤算法之前,先對WSN節(jié)點探測模型、探測目標運動模型、MA采集數(shù)據(jù)模型和能量消耗模型進行定義。
根據(jù)聲學(xué)理論,聲音信號在傳播過程中,其強度的大小與傳播的距離成反比[7]。因此,WSN節(jié)點傳感器探測目標的信號強度也與目標的距離成反比。假設(shè)在時刻t,目標的位置為xt,傳感器si的位置為xi(各個傳感器的位置在目標跟蹤過程中假設(shè)是不變的),當目標位于節(jié)點探測范圍之內(nèi)時,時刻t傳感器si探測到的來自目標的信號強度為[8]:
在WSN中,MA通過在節(jié)點之間遷移,采集節(jié)點的數(shù)據(jù)。MA在兩個節(jié)點之間的遷移,需要滿足一定的條件,首先遷移的起始節(jié)點si和終止節(jié)點sj之間的距離必須小于WSN節(jié)點通信距離上限Rc,其次起始節(jié)點和終止節(jié)點之間的能量足以保證完成本次遷移,具體的能量消耗模型會在下一節(jié)中進行定義。MA在跟蹤過程中訪問節(jié)點序列用L表示,。
MA遷移至WSN中的某個節(jié)點時,可以采集相應(yīng)節(jié)點數(shù)據(jù),在目標跟蹤問題中就是采集節(jié)點探測到的目標信號強度。MA在遷移過程中既可以采集當前所在節(jié)點的數(shù)據(jù),也可以采集鄰近節(jié)點的數(shù)據(jù),當然MA在某個節(jié)點也可以選擇不采集任何數(shù)據(jù)。MA在時刻t節(jié)點sk采集的節(jié)點數(shù)據(jù)集合用集合Yk表示,。
對于其他絕大多數(shù)探測設(shè)備的跟蹤算法設(shè)計而言,不需要考慮跟蹤過程中設(shè)備的能量消耗問題,但是對于能量十分有限的WSN而言,這是一個十分重要問題,必須在基于移動代理的WSN跟蹤算法中予以考慮。WSN中節(jié)點能量消耗基本可以分為3類,節(jié)點開機能量消耗,節(jié)點處理能量消耗和節(jié)點通信能量消耗。下面分別對這3類能量消耗進行建模。
2.3.1 節(jié)點開機能量消耗模型
WSN節(jié)點需要維持其正常的探測、通信和處理功能,必須處于工作狀態(tài),節(jié)點的工作能量消耗只取決于WSN節(jié)點開機時間的長短,定義節(jié)點工作單位時間能量消耗為erun,則節(jié)點工作時間trun后的總能量消耗。節(jié)點在關(guān)機時不支持任何功能,當然也不產(chǎn)生任何能量消耗。
當然,在某些WSN中,除了開機和關(guān)機狀態(tài)外,節(jié)點在不執(zhí)行任務(wù)時,可以進入休眠狀態(tài),這種狀態(tài)下的節(jié)點能量消耗會比開機能量消耗低很多,但它依然是與休眠狀態(tài)持續(xù)時間相關(guān)的,可采用與上面相似的方法進行定義,節(jié)點休眠時間tsleep后能量消耗。
2.3.2 節(jié)點處理能量消耗模型
在目標跟蹤過程中,節(jié)點處理能量消耗主要來自MA對采集信息融合計算消耗,可以認為MA在各個節(jié)點采集的目標信號數(shù)據(jù)大小都是相等的,大小為b,MA對單位大小的數(shù)據(jù)進行處理時消耗的能量為ef,則MA在各節(jié)點處理數(shù)據(jù)的能量消耗為是MA在當前節(jié)點采集數(shù)據(jù)集合Yk中的元素個數(shù)。在整個跟蹤過程中,節(jié)點處理能量消耗等于MA訪問節(jié)點集合L中所有單個節(jié)點處理能量消耗之和。
2.3.3 節(jié)點通信能量消耗
在目標跟蹤過程中,節(jié)點通信能量消耗主要來自兩個方面,一方面是MA遷移過程中,MA自身代碼段和數(shù)據(jù)段在節(jié)點之間傳輸會造成一定的能量消耗,另一方面是MA采集鄰近節(jié)點信息時,鄰近節(jié)點向MA所在節(jié)點發(fā)送數(shù)據(jù)造成的能量消耗。根據(jù)文獻[9]給出的MA節(jié)點間發(fā)送數(shù)據(jù)能量消耗模型,假設(shè)MA自身的數(shù)據(jù)大小為bMA,MA在節(jié)點間遷移的能量消耗EM可由下式計算。
d表示MA遷移節(jié)點之間的空間距離,εelec是傳感器節(jié)點發(fā)射固定消耗,εamp是傳輸增益,r是傳輸損耗因子,εelec、εamp和r是由WSN傳感器的本身物理屬性決定的,一般在整個WSN生命周期中不發(fā)生變化。同理,鄰近節(jié)點向MA所在節(jié)點發(fā)送采集數(shù)據(jù)的能量消耗En可由下式計算。
整個跟蹤過程中的節(jié)點通信能量消耗等于MA訪問的節(jié)點集合L中每兩個節(jié)點之間MA遷移能量消耗之和,加上L中各個節(jié)點的鄰近節(jié)點向它們發(fā)送采集數(shù)據(jù)能量消耗之和。
在進行基于最優(yōu)探測的移動代理WSN的目標跟蹤算法(ODMA)設(shè)計之前,必須先對WSN基本情況進行一些必要的假設(shè),具體如下:
1)WSN中節(jié)點的分布足夠稠密,不存在無法與任何節(jié)點通信的孤立節(jié)點(與其他節(jié)點的距離d都大于節(jié)點通信距離上限Rc);
2)傳感器的通信距離Rc大于傳感器探測距離Rd兩倍以上(Rc≥2Rd),從而保證能夠探測到目標的節(jié)點間都能夠相互通信;
3)WSN節(jié)點間的網(wǎng)絡(luò)帶寬足夠大,節(jié)點處理速度足夠快,MA在節(jié)點間遷移和采集數(shù)據(jù)并進行融合計算的時間與目標探測采樣周期相比幾乎可以忽略不計;
4)MA在跟蹤過程之中不需要實時將目標運動信息傳送給Sink節(jié)點,而只是在跟蹤過程結(jié)束后才將結(jié)果發(fā)送給Sink節(jié)點;
5)目標運動過程較為平穩(wěn),不存在較大機動。
當Sink節(jié)點接收到探測到目標信號節(jié)點數(shù)量超過閾值之后,認為目標已進入WSN探測區(qū)域,Sink節(jié)點創(chuàng)建MA,MA代碼段攜帶采集節(jié)點數(shù)據(jù)請求代碼,數(shù)據(jù)段攜帶節(jié)點位置信息表,選擇信號強度最大的節(jié)點作為目的節(jié)點,遷移至目的節(jié)點,采集目標節(jié)點和周邊節(jié)點數(shù)據(jù),利用三邊定位法解算目標位置,作為當前時刻目標的觀測值,利用卡爾曼濾波算法估計目標運動狀態(tài),預(yù)測下一時刻目標的位置,選擇與目標位置最近且能量足以完成MA遷移和節(jié)點采集任務(wù)的節(jié)點作為MA下一個目的節(jié)點,遷移至目的節(jié)點,重復(fù)采集數(shù)據(jù)和計算目標運動狀態(tài)過程。當MA遷移至目的節(jié)點,MA所在節(jié)點和其鄰居節(jié)點都沒有探測到目標信號時,認為目標已離開WSN探測區(qū)域,MA將Sink節(jié)點作為目標節(jié)點,遷移回到Sink節(jié)點,跟蹤過程結(jié)束。
在算法中,MA始終采集的是WSN中最靠近目標的節(jié)點和其鄰近節(jié)點的目標信號數(shù)據(jù),信號強度應(yīng)該是所有節(jié)點中最大的,在噪聲強度符合正態(tài)分布的條件下,MA采集的節(jié)點數(shù)據(jù)集合Yk,理論上是信噪比最小的節(jié)點集合,也就是最優(yōu)探測結(jié)果的集合。因此,基于最優(yōu)探測的移動代理WSN的單目標跟蹤算法,理論上獲得的是目標運動狀態(tài)的最優(yōu)估計。
明確上述假設(shè)條件以后,可對ODMA算法的核心問題進行設(shè)計了。
3.3.1 MA訪問探測節(jié)點的數(shù)量
ODMA算法中,在一個采樣周期內(nèi),MA訪問節(jié)點的數(shù)量是不確定的,MA在訪問一個節(jié)點后,采集的節(jié)點數(shù)據(jù)如果少于3個,不足以利用三邊測量法解算,MA需要繼續(xù)訪問下一個節(jié)點,直到采集的節(jié)點數(shù)據(jù)集合Yk中的元素個數(shù)大于或等于3。
3.3.2 MA訪問節(jié)點的選擇
ODMA訪問節(jié)點的判別方法比較簡單,在兩個采樣周期切換時,始終以與下一時刻目標預(yù)測位置距離最近的節(jié)點作為下一個目的節(jié)點,如果目的節(jié)點與當前節(jié)點位置相同,MA不執(zhí)行遷移操作繼續(xù)停留在當前節(jié)點。整個跟蹤過程結(jié)束后,MA以Sink節(jié)點作為下一目的節(jié)點。當然選擇的節(jié)點需要具有足夠充足的能量,完成MA遷移、采集數(shù)據(jù)和融合計算。
3.3.3 MA采用的跟蹤濾波算法的設(shè)計
MA采用的跟蹤濾波算法是遞推格式的,選擇遞推格式算法的好處是MA數(shù)據(jù)段中除了保存結(jié)果數(shù)據(jù),不必保存過多的過程數(shù)據(jù),只需要保存有限的采集節(jié)點數(shù)據(jù)。k時刻,MA在采集的節(jié)點數(shù)據(jù)集合 Yk中挑選信號強度最大的 3 個 yt,1,yt,2,yt,3,根據(jù)式(1),3個探測節(jié)點到目標的距離可由下式計算。
由于式(4)中噪聲vt,k的大小是未知的,只能通過正態(tài)分布估計,因此,利用上式求得的距離是帶有誤差的,用r1,r2,r3表示3個節(jié)點到目標的真實距離,Δr1,Δr2,Δr3表示噪聲帶來的距離誤差,三者之間的關(guān)系可由下式表示。
根據(jù)MA攜帶的節(jié)點信息,獲取探測數(shù)據(jù)集合yt,1,yt,2,yt,3所在探測節(jié)點的坐標(x1,y1)、(x2,y2)、(x3,y3),根據(jù)三邊測量法,得到下式。
式(6)中的方程兩兩相減,可得:
由于誤差的不確定性,上述方程不一定有解,故采用最小二乘解替代方程的解,則關(guān)于目標位置的最小二乘估計為:
x=(ATA)-1b
在得到帶有誤差的目標當前時刻坐標值(xt,yt)后,利用遞推形式的卡爾曼濾波求解目標運動狀態(tài)估計值,標準卡爾曼濾波公式系如下:
3.3.4 跟蹤過程起始和終止的判斷
ODMA算法中對于目標跟蹤起始過程的判斷條件是當Sink節(jié)點接收到目標信號節(jié)點數(shù)量超過閾值Pm之后,通常情況下取Pm=3,因為當探測節(jié)點的數(shù)量少于3個時,無法使用三邊測量法對目標位置進行估計,即使開始跟蹤過程也沒有意義。當然,在某些對虛警概率有著更高要求的目標跟蹤應(yīng)用中,可以適當增加閾值Pm的取值。
目標終止過程的判斷主要以目標探測信號的消失為依據(jù),MA根據(jù)卡爾曼濾波得到的目標下一時刻位置值,遷移至距離目標下一時刻位置值最近的節(jié)點,當下一時刻到來時,如果MA無法在當前所在節(jié)點及其鄰近節(jié)點獲取任何目標探測信號數(shù)據(jù),表明目標已消失,或者離開WSN的探測范圍,認為跟蹤過程結(jié)束,MA可攜帶整個目標跟蹤過程中獲取的目標運動狀態(tài)值返回Sink節(jié)點。
根據(jù)上述ODMA算法的核心問題的設(shè)計,可以建立ODMA算法的詳細計算流程,如下頁圖2所示。
為了驗證本文提出的ODMA算法的基本性能,通過對一個勻速直線運動目標跟蹤過程進行仿真,分析ODMA算法的基本性能。仿真條件如下:假定目標跟蹤WSN的覆蓋范圍為50 m*50 m,傳感器節(jié)點數(shù)量為100,位置隨機分布,Sink節(jié)點位置確定,為(25,25),傳感器的通信距離 Rc=30 m,探測距離為 Rd=15 m,εelec=1*10-4J/kB,εamp=3*10-7J/k B/m4,r=2,erun=1*10-6J/s,ef=5*10-5J/kB 傳感器采樣間隔TN=1 s,目標初始節(jié)點位置(0,0),目標勻速直線運動,X方向速度vx=0.44 m/s,Y方向速度vy=0.38 m/s,節(jié)點探測結(jié)果數(shù)據(jù)的大小b=0.1 kB,MA代碼段大小bMA=0.2 kB,仿真總時間t=100 s。
圖3給出了一次仿真過程中MA遷移路徑,在跟蹤起始階段,MA從Sink節(jié)點出發(fā),選擇最優(yōu)路徑至左下角信號最強節(jié)點作為跟蹤起始節(jié)點,根據(jù)算法設(shè)定的遷移判斷標準,始終選擇當前具有最優(yōu)探測結(jié)果集合的節(jié)點作為下一跳遷移節(jié)點(如果當前節(jié)點仍然具有最優(yōu)探測結(jié)果集合,則不進行遷移),直至目標信號消失,MA從跟蹤終止節(jié)點選擇最優(yōu)路徑,返回Sink節(jié)點。仿真結(jié)果顯示,提出的算法能保證MA在整個目標跟蹤任務(wù)中選擇合適的節(jié)點進行遷移,并完成跟蹤任務(wù)。
圖4給出了一次仿真過程中ODMA算法各時刻目標位置估計誤差,從圖中可以看出,大部分時刻ODMA算法求得的目標位置與目標真實位置誤差較小,個別時刻估計的節(jié)點位置存在一定誤差,因為目標在該時刻所處的位置周圍探測節(jié)點不夠稠密,在40 s和90 s時Y方向估計誤差較大,因為在該時間區(qū)間內(nèi),目標附近傳感器節(jié)點與目標位置Y方向距離遠大于X方向距離,導(dǎo)致目標Y方向量測值誤差較大,所以經(jīng)卡爾曼濾波得到的Y方向估計值誤差也較大。
采用500次Monte Carlo仿真,每次仿真采用相同的目標運動軌跡、隨機的系統(tǒng)噪聲序列和測量噪聲序列。本文提出的ODMA算法在整個跟蹤過程重節(jié)點平均能量消耗為0.002 47 J,跟蹤均方根誤差(RMSE)為0.137 m。根據(jù)文獻[1]給出C/S架構(gòu)的WSN目標跟蹤過程,采用相同仿真條件,仿真得到基于C/S架構(gòu)的WSN目標跟蹤算法節(jié)點平均能量消耗為0.002 91 J,跟蹤均方根誤差(RMSE)為0.152 m。可見本文提出的算法在跟蹤精度和能量消耗上明顯優(yōu)于基于C/S架構(gòu)的WSN目標跟蹤算法。
本文在分析基于移動代理的WSN目標跟蹤算法設(shè)計核心問題的基礎(chǔ)上,構(gòu)建移動代理WSN目標跟蹤過程基本模型,提出了利用移動代理采集信號強度最大節(jié)點的目標探測數(shù)據(jù),并利用卡爾曼濾波算法估計目標下一時刻目標的位置,作為移動代理下一時刻遷移節(jié)點選擇依據(jù),保證移動代理采集的始終是最優(yōu)節(jié)點探測結(jié)果集合。仿真結(jié)果顯示提出的算法能夠有效實現(xiàn)對目標跟蹤,且跟蹤誤差較小,同時能有效降低WSN能量消耗。若要將其應(yīng)用于實際WSN目標跟蹤應(yīng)用,還需要對更為復(fù)雜目標運動條件下的跟蹤算法進行研究。