一種基于直線掃描事件及移動錨節點的定位算法
【技術領域】
[0001]本發明屬于無線傳感器網絡(Wireless Sensor Network,WSN)研究中的定位技術領域,具體涉及一種基于直線掃描事件及移動錨節點的定位算法。
【背景技術】
[0002]無線傳感器網絡(WSN)作為當今信息領域新的研究熱點,有非常多的關鍵技術有待發現和研究,定位技術就是其關鍵技術之一。位置信息是傳感器節點采集數據中不可缺少的部分,沒有位置信息的監測消息通常毫無意義。為了提供有效的位置信息,傳感器節點必須能夠在部署后確定自身的位置,但是由于傳感器節點的能量有限及通信易受周圍環境的影響,就要求定位機制必須滿足自組織性,健壯性,能量高效,分布式計算等要求。
[0003]在無線傳感器網絡中,所謂節點定位,是指在無線傳感器網絡中,借助少量位置已知的錨節點,結合一定的計算策略來計算網絡中其他位置未知的節點的位置。
[0004]定位算法可以有多種分類方法。根據定位過程中是否需要測量節點間的歐式距離,可將定位算法分為:基于距離的(range-based)定位算法和距離無關的(range-free)定位算法;根據節點定位的先后次序不同,可將定位算法分為:遞增式的(incremental)定位算法和并發式的(concurrent)定位算法;根據節點定位過程中是否需要借助于銷節點,可將定位算法分為:基于銷節點的(anchor-based)定位算法和無銷節點的(anchor-free)定位算法。
[0005]其中,根據定位過程中是否需要測量節點間距離的定位算法被學者們使用的最多,在此基礎上,根據定位過程中是否需要使用外部事件,可將定位算法分為:事件驅動(event-driven)的定位算法和事件無關(event-free)的定位算法。
[0006]距離無關定位算法的定位思路有很多,其中有一種是通過一定的策略來確定節點所處的一塊區域,稱為目標區域,然后通過一定的方法來不斷縮小節點的目標區域,當目標區域足夠小時再利用一定的策略(如質心法)從該區域中選擇一點作為節點的最終位置。基于事件的定位算法作為一種新的定位途徑,也經歷了一個不斷求精、不斷優化的過程,該文獻將基于無控事件的定位算法確定為第三代基于事件的定位算法,并定義了前兩代定位算法,以下對第一、二代基于事件的定位算法作簡略的介紹。
[0007]第一代基于事件的定位算法要求產生極其精確的外部事件,并且對于事件的傳播和擴散也要求有精確的控制,所以又稱為基于精確控制事件的定位算法
[0008]第二代基于事件的定位算法對于事件的產生與控制要求都寬松了許多,更多的是通過建立數學模型來提高定位精度和定位效率,因此這一代算法又被稱為基于半控制事件的定位算法。
【發明內容】
[0009]針對基于無控事件的定位算法在同一錨節點分布條件下總是存在事件冗余的情況,使得定位的效率較低。為了解決事件冗余的問題,本發明提出了一種基于直線掃描事件及移動錨節點的定位算法。
[0010]本發明的目的是這樣實現的:
[0011]基于直線掃描事件及移動錨節點的定位算法,包括:
[0012](1)每輪定位產生兩個事件,兩個事件的光束掃描角度相差90度,分別對兩個事件進行一次定位,A、B、C為錨節點,M、P、Q為網絡中的未知節點;
[0013](2)按照感知到光束的先后順序將所有節點的ID排成一個序列稱為節點序列,從節點序列中提取出錨節點序列;
[0014](3)根據錨節點序列估計出光束掃描的角度范圍Θ ;
[0015](4)將整個網絡區域劃分成網格,確定網格內的未知節點P的區域范圍;依次判斷未知節點P與連續的兩個錨節點構成的角與光束掃描角度是否有重疊部分;從而確定出未知節點P可能的區域范圍;
[0016](5)經過一輪定位后,如果定位輪數沒有達到指定值,隨機移動錨節點;
[0017](6)重復⑴、⑵、(3)、(4)、(5)五個步驟直到定位輪數達到指定值;
[0018](7)未知節點將每個事件得到的位置區域取交集,對得到的交集區域用質心法求未知節點的位置坐標,定位結束。
[0019]所述步驟(1)隨機產生一個角度,然后沿著該角度掃描,另一個光束與前一個光束成90度角即可;所述步驟(3)取錨節點序列中連續的三個錨結節點組成估計單元,共n-2個,兩個估計單元都是按同一個角度和方向掃描得到的序列,所有估計單元所確定的掃描角度范圍之間都進行交運算而取重疊部分,不斷的減小掃描角度的估計范圍,最后的重疊范圍就是要估計的真實掃描角度的可能范圍。
[0020]所述步驟(4)中將整個區域劃分成X個小區域,過錨節點序列中連續的兩個錨節點畫一條直線,再過其他錨節點作該直線的平行線,取所有連續的錨節點對重復上述過程即完成劃分。
[0021]所述步驟(7)中根據每個事件得到的位置區域取交集部分,再用質心算法最終定位節點坐標,進一步提高定位精度。
[0022]本發明具有的有益效果:
[0023]本發明引入了移動錨節點的思想,要求兩次移動之間只取兩個事件,且這兩個事件的掃描角度相差π/2。從總體上看,LLSEMA是利用少量的外部代價換取了更加高效,更加精確的定位結果。所以LLSEMA算法相對于LLSE算法總體性能上更優。
【附圖說明】
[0024]圖1為本發明基于直線掃描事件及移動錨節點的定位算法的流程圖。
[0025]圖2(a)為本發明基于直線掃描事件及移動錨節點的定位算法光束垂直向下掃描區域。
[0026]圖2(b)為本發明基于直線掃描事件及移動錨節點的定位算法由圖2(a)得到的掃描角度范圍。
[0027]圖3(a)為本發明基于直線掃描事件及移動錨節點的定位算法的錨節點組成的兩個估計單元分別確定的掃描角度。
[0028]圖3(b)為本發明基于直線掃描事件及移動錨節點的定位算法圖3 (a)組成的兩個估計單元確定的掃描角度的交集。
[0029]圖4(a)為本發明基于直線掃描事件及移動錨節點的定位算法的區域劃分示意圖。
[0030]圖4(b)為本發明基于直線掃描事件及移動錨節點的定位算法區域劃分后未知節點的目標區域。
[0031]圖5(a)為本發明基于直線掃描事件及移動錨節點的定位算法的光束垂直向下掃描時未知節點3的目標區域。
[0032]圖5(b)為本發明基于直線掃描事件及移動錨節點的定位算法的光束水平向右掃描時未知節點3的目標區域。
[0033]圖5(c)為本發明基于直線掃描事件及移動錨節點的定位算法由圖5(a)和圖5(b)中得到的未知節點3的目標區域的交集。
[0034]圖6為本發明基于直線掃描事件及移動錨節點的定位算法的定位精度與錨節點數量關系。
[0035]圖7為本發明基于直線掃描事件及移動錨節點的定位算法的定位精度與事件數量的關系。
[0036]圖8為本發明基于直線掃描事件及移動錨節點的定位算法的定位精度與事件數量的關系。
【具體實施方式】
[0037]下面結合附圖對本發明做進一步描述。
[0038]本發明提供了一種基于直線掃描事件及移動錨節點的定位算法(LLSEMA)。LLSEMA算法是在LLSE定位算法基礎上引入移動錨節點思想,按輪次進行定位,同一輪次內錨節點固定不動,產生兩個事件,第一個事件隨機產生,亦即用隨機方向和隨機掃描角度的光束對傳感器網絡區域掃描,第二個事件光束掃描角度與第一個事件中光束掃描角度相差90度,對兩個事件分別進行一次定位,本算法將這兩次定位稱為一輪定位。首先,獲取節點序列,即各個節點根據自身感知到光束的時間順序排成一個序列,這里假設光束可以掃描到所有節點;其次,根據得到的節點序列,取序列中任意三個錨節點組成不同的估計單元,所有估計單元確定掃描角度范圍的重疊區域就是要估計的真實掃描角度的可能范圍;再次,將無線傳感器網絡區域劃分成網格,根據估計出來的光束掃描角度范圍,估計在網格內每個未知節點的位置區域;最后對估計出的未知節點區域使用質心法得到未知節點的位置坐標。
[0039]—種基于直線掃描事件及移動錨節點的定位算法,對節點序列差異度的分析可知,各事件所得到的節點序列差異越大,LLSEMA算法的定位效率越尚,經過實驗發現使廣生的事件的掃描角度之間相差盡量接近90度角時可以取得最大的節點序列差異,同時在未知節點數量一定時,節點序列差異度總體上隨著錨節點數量的增加呈上升趨勢。我們可以將無線傳感器網絡節點定位描述如下。
[0040]步驟1:將A,B,C定義為無線傳感器網絡區域內的錨節點,1,2,3,4,5,6,7,8為無線傳感器網絡區域內的未知節點,用一束隨機的光束掃描無線傳感器網絡區域;
[0041]步驟2:按照感知到的時間順序得到節點序列和錨節點序列。并且假設掃描得到的節點序列為3A1648C2B75,錨節點序列為ACB ;
[0042]步驟3