無線傳感網多簇頭協助的目標跟蹤
在基于線性擬合的算法中較傳統的算法是根據k 和k+1時刻的測量值來預測k+2 時刻的位置,易造成預測不準確及目標節點丟失的現象,但是對于傳感器網絡來說能量因素至關重要,因此應在計算復雜度低的前提下想方設法提高跟蹤定位精度.本文基于線性擬合的思想,分析跟蹤過程中的特點,選擇合適的預測數據并采用多簇頭結構,以提高跟蹤精度.降低目標丟失率.
2 相關工作
2.1 預測數據選取
目標運動軌跡雖然無規律可尋,但在相當長的一段時間內它的運動趨勢保持不變.如圖1 所示,為目標在二維平面上沿X 軸正向運動時的情況(圖中軌跡為任意曲線,為描述方便當目標發生轉彎時稱其為到達極值點).可見目標在兩個極值點之間時,沿X 軸和Y 軸的增減性不變;當到達極值點時,沿X 軸或Y 軸的增減性將會發生變化.既然目標在兩個極值點之間運動趨勢不變,可以根據這段時間內的歷史數據來預測該段軌跡,即利用趨勢相同的一段數據來預測目標節點下一位置,此時將極值點作為分界線.
運用符號函數來判斷是否到達極值點.如圖1 所示,當目標沿X軸正向運動時,若滿足Sgn(xi-xi-1)* Sgn(yi-yi-1)==Sgn(xi+1-xi)* Sgn(yi+1-yi),則說明目標未到達極值點,相反則說明目標到達極值點;當目標反向運動時,X 軸和Y 軸的增減性同時變化.
集合F 用于存放預測所需的歷史數據.在到達第一個極值點之前可以用(x1,y1).(x2,y2)…(xi,yi)來預測(xi+1,yi+1)的位置,此時集合F={(xr,yr)|r=1,2,…,i}.利用符號函數判斷目標是否達極值點,若到達極值點,即Sgn(xi-xi-1)*Sgn(yi-yi-1)/Sgn(xi+1-xi)* Sgn(yi+1-yi),則清空集合F中的所有數據項,將當前定位坐標及前一次的定位坐標放于F中,組成新的數據信息集合;否則,不斷地向集合F中加入新的數據項.
2.2 多級簇頭結構
利用不同級別的簇頭在不同階段完成不同的任務,最終達到提高定位跟蹤精度.降低目標丟失率的目的,將簇頭分為:主簇頭.輔助簇頭和預備簇頭.
主簇頭的選取需要兼顧剩余能量及與目標節點距離兩個因素,且應選擇能量較大.與目標距離近的節點作為主簇頭.設當前簇頭i 的剩余能量為Ei,測得與目標的距離為Di,根據式(1)計算簇頭i 的閾值Ti:
其中ci表示趨向因子,初始值為1.趨向因子表示目標未來運動方向更趨向于哪個簇頭節點,若趨向于簇頭節點i,則簇頭節點i 周圍的預備簇頭節點將較早地監測到目標節點的信息,趨向因子由輔助簇頭接收到預備簇頭的個數決定.
初始時主簇頭由發現目標的哨兵節點擔當;當目標丟失后利用恢復機制追蹤到目標并重新建立跟蹤機制,此時主簇頭由發現目標的簇頭節點擔當.除上述兩種情況外,主簇頭均通過比較當前各輔助簇頭的閾值,選取閾值較大的節點作為下一階段的主簇頭.主簇頭選定后,其鄰接簇頭節點作為輔助簇頭,輔助簇頭的鄰簇頭節點作為預備簇頭,建立起跟蹤機制,如圖2 所示.
三種簇頭完成不同的任務.主簇頭主要完成簇內節點信息的融合并對輔助簇頭信息進行加權融合形成最終定位位置;輔助簇頭接收簇內節點發來的信息進行初次定位,并把定位結果發送給主簇頭;預備簇頭一方面做好監測目標的準備,一方面防止目標丟失,其簇內節點處于休眠狀態.當預備簇頭感測到目標信息時告知輔助簇頭,輔助簇頭將預備簇頭看做簇內節點,融合預備簇頭發來的信息,并記錄預備簇頭的個數,在進行主簇頭選舉時作為趨向因子的值.
3 目標跟蹤算法
3.1 目標監測模型
采用網格結構將整個監測區域劃分為許多虛擬單元格,每個單元格內的傳感器節點組成一個簇,當簇頭節點能量小于某個閾值時進行簇頭更換,且每個節點都有兩種狀態:監聽和休眠狀態.
節能是無線傳感器網絡研究中一個重要的評價指標,許多學者從能量因素出發研究跟蹤算法.為了節省傳感器節點的能量,當沒有目標出現時應使大部分節點處于休眠狀態,只需少量節點用于監測目標是否出現.本文在監測區域邊界設置哨兵節點(由邊界的簇頭節點充當),用于偵測是否有目標進入監測區域.邊界簇頭周期性地隨機生成一個0~N 之間的數,若該數大于N/2(N 為邊界節點的總數),則該簇頭節點為哨兵節點,為防止哨兵節點能量殆盡,需要進行簇頭選舉,比較哨兵節點的剩余能量和某個閾值的關系決定是否選舉簇頭.哨兵節點處于監聽狀態,非邊界簇頭節點和簇內節點處于休眠狀態.當目標出現時由哨兵節點喚醒其鄰簇頭節點作為輔助簇頭,輔助簇頭節點喚醒其非主輔簇頭節點作為預備簇頭,建立監測機制.
通信過程中,傳感器節點只需進行相鄰節點之間的通信,假設網格的邊長為r,則通信半徑為2r;輔助簇頭節點和主簇頭節點要對目標進行定位,則設傳感器的感知半徑2 r .簇頭的選舉均采用文獻11的策略,且各傳感器節點均具有簡單的計算能力,跟蹤算法監測模型如圖2所示.
3.2 目標偵測與定位
哨兵節點發現目標后,立刻喚醒鄰簇頭節點,鄰簇頭節點相繼地喚醒簇內節點進行監測.初始時哨兵節點作為主簇頭節點建立跟蹤機制,隨后主簇頭.輔助簇頭協同其簇內節點開始監測目標發出的信號并進行定位.
傳感器節點之間可以通過發射的信號來確定彼此之間的距離,其中可測距的算法包括TOA(Time Of Arrival)算法.TDOA(Time Difference Of Arrival)算法.AOA(AngleOf Arrival)和RSSI(Received Signal Strength)算法.由于傳感器節點自身會發出RSSI 信號,且根據信號的強弱可以獨立獲得距離值,所以本文采用RSSI 算法,其中感測節點根據測量的接收信號載波功率計算出與目標之間的距離dij表示為:
其中d0=1 m,P0=-30 dBm,α=3.
簇內節點接收到目標信號后將信息發送到簇頭節點,簇頭節點利用多邊測量計算出目標的坐標.設在t 時刻,簇頭節點i 內有k 個傳感器節點,其坐標分別為(x1,y1),(x2,y2),…,(xk,yk),監測到與目標節點(x,y)的距離分別為d1,d2,…,dk,根據多邊形的定位模型有:
由于存在測距誤差,因此加入隨機誤差向量ξ(ξ為n-1維),有AX + ξ = b .利用最小二乘算法取ξ最小值時的X值.設 Q(X) = ξ2 = AX – b2 ,對X求導得到目標的估計位置:
通過式(5),初步計算出目標節點坐標,隨后輔助簇頭將定位信息發送到主簇頭節點,主簇頭融合n-1 個輔助簇頭發來的信息通過式(6)求其均值,得到最終的目標位置.
在整個網絡工作中三種簇頭相互轉化.主簇頭判斷接收到的相鄰兩次信號差,若信號差小于零即表明目標遠離主簇頭節點,此時主簇頭節點發送重新選舉主簇頭的消息,收到此消息的輔助簇頭計算自己的閾值Ti并發送給主簇頭節點,主簇頭節點選擇閾值最大的節點作為下一次的主簇頭節點,自己退卻為輔助簇頭節點,更新跟蹤機制;當輔助簇頭節點及其簇內節點接收不到目標信號時,該輔助簇頭的簇內節點睡眠,自己變為預備簇頭;預備簇頭若接收到目標的信號,且跟蹤機制更新使它的一個鄰節點成為主簇頭節點時,預備簇頭轉化為輔助簇頭,喚醒簇內節點進行定位;但當預備簇頭發現其鄰簇頭節點為預備簇頭或普通簇頭時,則停止工作變為普通簇頭節點.
傳感器相關文章:傳感器工作原理
評論