專利名稱:一種基于節(jié)點密度的無線傳感器網絡分區(qū)域定位方法
一種基于節(jié)點密度的無線傳感器網絡分區(qū)域定位方法本發(fā)明涉及無線傳感器網絡(Wireless Sensor Network, WSN)定位技術,具體涉及一種基于節(jié)點密度的無線傳感器網絡分區(qū)域定位方法。
背景技術:
作為目前最先進的信息獲取技術,WSN常被用于環(huán)境監(jiān)測、目標跟蹤等用來報告被監(jiān)測物體當前的狀態(tài),而狀態(tài)信息通常需要和位置信息結合才能準確反映待測物體的狀態(tài)。用戶通常不僅需要知道發(fā)生什么事,同時也關心事件發(fā)生的位置,因此,確定節(jié)點的位置信息對WSN應用的有效性起著關鍵作用。如在火災監(jiān)控中,節(jié)點通過數(shù)據(jù)采集檢測到了火災的發(fā)生,但只有定位到火災發(fā)生的位置,才能夠安排有效地施救措施。因此,節(jié)點自定位技術在WSN應用中意義重大。
在WSN中,位置信息還可以輔助其他WSN技術,在路由協(xié)議設計中,基于地理位置的路由協(xié)議(GEM,GPSR等)有廣泛的應用;在數(shù)據(jù)融合算法的設計中,準確的位置信息可以大大提高數(shù)據(jù)傳輸?shù)目煽啃裕辉诠?jié)點部署策略上,位置信息可以影響網絡的拓撲形態(tài)及節(jié)點對網絡的覆蓋情況;在目標跟蹤,實時監(jiān)控等位置相關應用中,位置信息的重要性更是顯而易見。WSN中,定位算法按照不同的劃分標準分為基于測距與距離無關的定位、分布式與集中式定位,主動與被動定位,緊密耦合與松散耦合定位等。本發(fā)明按照定位過程是否需要對節(jié)點間的距離進行測量,將定位算法劃分為基于測距(Range-based)和距離無關(Range-free)的定位算法?;跍y距的定位算法通過三邊或極大似然估計法計算節(jié)點的位置信息,該算法能夠提供有效的定位精度,對于資源受限的WSN來說,定位代價較高,需要額外的硬件設施或軟件成本,在大規(guī)模定位場景中不適用;距離無關的定位算法僅需要網絡連通度信息就能夠實現(xiàn)距離估計,確定節(jié)點的位置,比較適合用于大規(guī)模環(huán)境,由于無需測距,其定位成本較低,定位精度較基于測距的定位算法低,同時面臨各向異性網絡和稀疏網絡的挑戰(zhàn)。在距離無關定位算法中,DV-Hop算法由于實現(xiàn)簡單,定位精度相對較高,而被廣泛應用于大規(guī)模定位環(huán)境中,成為目前定位研究和關注的熱點。DV-Hop算法將未知節(jié)點到信標節(jié)點的距離用平均單跳距離與乘以二者間的跳步數(shù)表示,當未知節(jié)點獲得與三個或以上信標節(jié)點的距離后,通過三邊測量進行定位。其過程分為三個階段第一階段定位信息傳播與最小跳步數(shù)計算,由信標節(jié)點啟動數(shù)據(jù)傳播,各個信標節(jié)點向外廣播定位啟動數(shù)據(jù)包,該數(shù)據(jù)包包含信標節(jié)點自身位置信息和距離跳步數(shù),鄰居節(jié)點收到該數(shù)據(jù)包后,將包中的跳步數(shù)字段值加I構成新的數(shù)據(jù)包轉發(fā)給它的鄰居。數(shù)據(jù)包的來源被標記從而避免數(shù)據(jù)的重復傳遞。以此方式進行數(shù)據(jù)傳播,直到全網的所有節(jié)點都獲得了所有信標節(jié)點的位置及最小跳步數(shù)值,若一個節(jié)點收到了多個來自同一個信標節(jié)點的數(shù)據(jù)包,則僅保留最小跳數(shù)值的包,丟棄其他數(shù)據(jù)包,保證該節(jié)點到信標節(jié)點的跳數(shù)值最小。第二階段計算單跳距離,這個階段是在信標節(jié)點之間進行的,每個信標節(jié)點按照下列公式計算自身的平均單跳距離Hopsizei,
其中,(Xi, Yi),(xj, Yj)是信標節(jié)點i和j的坐標,hopSij是節(jié)點間的跳步數(shù)。計算完成之后,將包含平均單跳距離信息的數(shù)據(jù)包向外廣播,鄰居節(jié)點收到該數(shù)據(jù)包后,以此作為計算自己到該信標節(jié)點間距離的校正值,若節(jié)點收到多個信標節(jié)點的數(shù)據(jù),則只需要保留距離第一個接收到的單跳距離信息,丟棄其他的數(shù)據(jù)包,保證接收到單跳距離信息是最近的信標節(jié)點發(fā)來的。第三階段定位,根據(jù)三邊測距或者極大似然估計法原理,利用前兩個階段計算得到的節(jié)點到3個或者3個以上的信標節(jié)點的距離,計算節(jié)點自身的坐標位置,達到定位目的。
DV-Hop算法思想簡單,計算量小,易于實現(xiàn),但在實際的WSN應用系統(tǒng)中,DV-Hop算法卻存在定位精度低,定位依賴網絡拓撲等問題。目前國內外也出現(xiàn)了一些DV-Hop算法的改進,由于DV-Hop算法的本質是節(jié)點距離信標節(jié)點的距離通過單跳距離與跳步數(shù)的乘積計算,然后采用三邊測距或者最大似然估計法確定節(jié)點坐標,因此,對DV-Hop算法的改進從以下三方面進行。I.單跳距離彭剛等人針對DV-Hop算法中單跳距離計算,通過對網絡中各個信標節(jié)點計算的單跳距離做平均作為全網所有節(jié)點的單跳距離,以此計算未知節(jié)點到信標節(jié)點的距離,提高距離估計的準確度,減小定位計算的誤差;林金朝等人在上述基礎上,通過對各個信標節(jié)點的誤差進行分析,進一步對平均全網單跳距離進行修正;鄭君剛等人利用CayI ey-Menger行列式,通過歐拉空間的幾何約束優(yōu)化未知節(jié)點的距離估計,減少測距誤差,提高節(jié)點的定位精度。2.跳步數(shù)劉麗君等人提出基于Cluster管理的改進的DV-Hop算法,采用分簇思想,通過將網絡劃分成較小的簇,限制未知節(jié)點到錨節(jié)點的通信跳步數(shù),從而提高定位精度,降低定位開銷;Xi W.等人基于距離信標節(jié)點更近的節(jié)點通常要比遠的節(jié)點有更多的前繼節(jié)點和更少的后繼節(jié)點這一觀察結論,定位過程中提出了虛擬跳步數(shù)的概念。通過為每個節(jié)點維護兩種類型的跳步計數(shù),一個是基于路由的真正的跳步,另一個是被稱為hop by hop的虛擬跳步計數(shù),利用虛擬跳步修正傳統(tǒng)的hop數(shù)進行,從一定意義上屏蔽了由于野外環(huán)境的苛刻性造成的每hop距離差異較大而造成的誤差,提高了定位精度。陳凱等人提出了一 種改進的 BNL (Based on the number of NeighborsLocalization)定位算法,該算法將網絡劃分為若干個監(jiān)測子區(qū)域,進而計算各個子區(qū)域中節(jié)點的鄰居個數(shù)估計節(jié)點間的距離,降低了節(jié)點分布對跳步數(shù)計算的影響,一定程度上提高了節(jié)點定位計算的準確度。3.位置求解林金朝等,通過將加權質心算法引入節(jié)點位置計算的過程中,修正不同信標參與節(jié)點定位的比例提高定位精度,針對三邊定位計算的節(jié)點坐標誤差較大的問題,構建了基于泰勒級數(shù)展開法的坐標值數(shù)值迭代求精算法,通過合理選擇迭代門限值,適當增加定位節(jié)點的計算量,改善定位精度和定位誤差穩(wěn)定性。
此外,還有一些改進算法從信標節(jié)點的選擇,拓撲結構等方面對算法進行了改進,劉克中等人將共線度概念引入信標節(jié)點選擇過程中,通過優(yōu)化信標節(jié)點間的位置關系及未知節(jié)點與信標的拓撲位置關系,提高DV-Hop算法在信標節(jié)點密度較低情況下的可靠性和
魯棒性。分析上述改進的DV-Hop算法,我們發(fā)現(xiàn)單跳距離改進法通過改進網絡平均單跳距離達到提高精度的目的。對于單跳距離,只有當全網的節(jié)點分布呈現(xiàn)均勻狀態(tài)時,才接近于網絡中的大部分單跳距離。因此,該改進方法更適合于節(jié)點分布均勻的網絡,對于節(jié)點分布非均勻、非規(guī)則的土遺址保護無線傳感器網絡不適用,誤差修正效果有限;跳步數(shù)改進法從未知節(jié)點到信標節(jié)點的跳步數(shù)的角度改進算法,從本質上說,和方法一是一致的,同樣適用于節(jié)點分布均勻的規(guī)則網絡;位置求解改進法從位置計算的角度減小誤差,是一種誤差控制技術,但對誤差產生的根本原·因(非直線誤差)并沒有進行處理。
發(fā)明內容
針對上述現(xiàn)有技術存在的缺陷或不足,本發(fā)明的目的在于,提供一種基于節(jié)點密度的無線傳感器網絡分區(qū)域定位方法(A Node Density-based Sub-regionalLocalization Technology in WSN,以下簡稱NDL),該方法針對大規(guī)模,復雜環(huán)境下節(jié)點分布不均勻、信號分布非規(guī)則的各向異性網絡,通過區(qū)域劃分和獨立區(qū)域的單跳距離計算,克服了現(xiàn)有改進的DV-Hop定位算法的缺陷,能更好的適應各種拓撲結構,提高了算法在真實場景中的實用性。實驗結果顯示,采用本發(fā)明的方案提高了定位精度,有效解決了各向異性網絡中節(jié)點分布不均勻,信號分布非規(guī)則情況下的定位問題。為了實現(xiàn)上述技術任務,本發(fā)明采用以下技術方案予以實現(xiàn)一種基于節(jié)點密度的分區(qū)域定位方法,該方法對于無線傳感器網絡中的未知節(jié)點進行定位,所述無線傳感器網絡中共有η個節(jié)點,其中m個信標節(jié)點,n-m個未知節(jié)點,節(jié)點通信半徑為R,每個節(jié)點都具有RSSI測距能力,所述定位方法具體包括如下步驟步驟I、邊界檢測通過邊界檢測,網絡中的節(jié)點被分為邊界節(jié)點和非邊界節(jié)點兩部分;步驟2、區(qū)域劃分包括拓撲發(fā)現(xiàn)階段、非邊界節(jié)點區(qū)域劃分階段和邊界節(jié)點區(qū)域劃分階段,其中,所述拓撲發(fā)現(xiàn)階段中,各節(jié)點在通過廣播數(shù)據(jù)獲取自身的鄰居信息表和路由信息表;所述非邊界節(jié)點區(qū)域劃分階段中,各節(jié)點通過鄰居RSSI值的判定和鄰居節(jié)點個數(shù)選擇判定進行密度區(qū)域劃分;所述邊界節(jié)點區(qū)域劃分階段中,將邊界節(jié)點和其鄰居非邊界節(jié)點中鄰居節(jié)點個數(shù)最多的節(jié)點劃分為同一區(qū)域;經過非邊界節(jié)點區(qū)域劃分和邊界節(jié)點區(qū)域劃分,整個無線傳感網絡被劃分為節(jié)點密度相對均勻的多個小區(qū)域;步驟3、距離計算對于信標節(jié)點間鏈路沒有覆蓋到的小區(qū)域,選擇離該小區(qū)域最近的信標節(jié)點所在的區(qū)域的單跳距離作為其單跳距離,得到了網絡中各個小區(qū)域的單跳距離后,未知節(jié)點根據(jù)其路由信息表中的路由信息和該未知節(jié)點所在小區(qū)域的單跳距離,計算該未知節(jié)點與三個或三個以上的信標節(jié)點的距離,然后利用最小二乘法計算自身所在位置,至此,無線網絡中未知節(jié)點定位成功。本發(fā)明還包括如下其他技術特征
所述步驟2中的拓撲發(fā)現(xiàn)階段具體包括如下步驟步驟Sl-I :網絡中所有信標節(jié)點(BN1, BN2, BN3-BNm)廣播Preq數(shù)據(jù)包;步驟S1-2 :節(jié)點判斷是否收到Preq數(shù)據(jù)包,如果是則執(zhí)行步驟S1-3,否則執(zhí)行步驟 S1-7 ;步驟S1-3 :節(jié)點判斷是否是第一次收到信標節(jié)點BNi發(fā)送的Preq數(shù)據(jù)包,如果是則執(zhí)行S1-4,否則執(zhí)行步驟S1-8 ;步驟S1-4 :節(jié)點更新自身到信標節(jié)點的跳步數(shù),即將count+Ι,向外廣播該更新后的Preq數(shù)據(jù)包,執(zhí)行步驟S1-5 ;步驟S1-5 :收到Preq數(shù)據(jù)包的節(jié)點回復Pack數(shù)據(jù)包給發(fā)送Preq數(shù)據(jù)包的節(jié)點,確認收到消息;
步驟S1-6 :發(fā)送Preq數(shù)據(jù)包的節(jié)點收到Pack數(shù)據(jù)包后,更新自己的鄰居信息表和路由信息表;步驟S1-7 :該節(jié)點被認為是壞節(jié)點,不參與定位過程;步驟S1-8 :節(jié)點判斷當前路由信息表中信標節(jié)點BNi的count值是否小于新數(shù)據(jù)包的count值,如果是則執(zhí)行步驟S1-9,否則執(zhí)行步驟S1-4 ;步驟S1-9 :丟棄該數(shù)據(jù)包。所述的鄰居信息表的結構包括節(jié)點的鄰居節(jié)點的id號Neighbor_id和該節(jié)點與鄰居節(jié)點間的RSSI值Neighbor_RSSI。所述的路由信息表的結構包括信標節(jié)點的id號Beacon_id、信標節(jié)點的坐標coordinate、節(jié)點距離該信標節(jié)點的跳步信息count和節(jié)點到信標節(jié)點間路徑上經過的節(jié)點序列route [N]。所述的非邊界節(jié)點區(qū)域劃分階段具體包括以下步驟步驟S2-1 :網絡中所有信標節(jié)點(BN1, BN2, BN^BNm),以自身節(jié)點編號生成區(qū)域編號area_id,并向其鄰居信息表中所有非邊界節(jié)點發(fā)送區(qū)域劃分請求Pdiv數(shù)據(jù)包,同時將自身區(qū)域劃分標志flag置為I ;步驟S2-2 :節(jié)點i收到節(jié)點j發(fā)來的Pdiv請求數(shù)據(jù)包后(i〈n, j〈n, i Φ j),通過公式(I)進行鄰居RSSI值選擇判定若ru=0,則節(jié)點i執(zhí)行步驟S2-3,否則執(zhí)行步驟S2-4 ;
權利要求
1.一種基于節(jié)點密度的分區(qū)域定位方法,其特征在于,該方法對于無線傳感器網絡中的未知節(jié)點進行定位,所述無線傳感器網絡中共有η個節(jié)點,其中m個信標節(jié)點,n-m個未知節(jié)點,節(jié)點通信半徑為R,每個節(jié)點都具有RSSI測距能力,所述定位方法具體包括如下步驟 步驟I、邊界檢測通過邊界檢測,網絡中的節(jié)點被分為邊界節(jié)點和非邊界節(jié)點兩部分; 步驟2、區(qū)域劃分包括拓撲發(fā)現(xiàn)階段、非邊界節(jié)點區(qū)域劃分階段和邊界節(jié)點區(qū)域劃分階段,其中,所述拓撲發(fā)現(xiàn)階段中,各節(jié)點在通過廣播數(shù)據(jù)獲取自身的鄰居信息表和路由信息表;所述非邊界節(jié)點區(qū)域劃分階段中,各節(jié)點通過鄰居RSSI值的判定和鄰居節(jié)點個數(shù)選擇判定進行密度區(qū)域劃分;所述邊界節(jié)點區(qū)域劃分階段中,將邊界節(jié)點和其鄰居非邊界節(jié)點中鄰居節(jié)點個數(shù)最多的節(jié)點劃分為同一區(qū)域;經過非邊界節(jié)點區(qū)域劃分和邊界節(jié)點區(qū)域劃分,整個無線傳感網絡被劃分為節(jié)點密度相對均勻的多個小區(qū)域; 步驟3、距離計算對于信標節(jié)點間鏈路沒有覆蓋到的小區(qū)域,選擇離該小區(qū)域最近的信標節(jié)點所在的區(qū)域的單跳距離作為其單跳距離,得到了網絡中各個小區(qū)域的單跳距離后,未知節(jié)點根據(jù)其路由信息表中的路由信息和該未知節(jié)點所在小區(qū)域的單跳距離,計算該未知節(jié)點與三個或三個以上的信標節(jié)點的距離,然后利用最小二乘法計算自身所在位置,至此,無線網絡中未知節(jié)點定位成功。
2.如權利要求I所述的基于節(jié)點密度的分區(qū)域定位方法,其特征在于,所述步驟2中的拓撲發(fā)現(xiàn)階段具體包括如下步驟 步驟Sl-I :網絡中所有信標節(jié)點BN1, BN2, BN3…BNm廣播Preq數(shù)據(jù)包; 步驟S1-2 :節(jié)點判斷是否收到Preq數(shù)據(jù)包,如果是則執(zhí)行步驟Sl_3,否則執(zhí)行步驟S1-7 ; 步驟S1-3 :節(jié)點判斷是否是第一次收到信標節(jié)點BNi發(fā)送的Preq數(shù)據(jù)包,如果是則執(zhí)行S1-4,否則執(zhí)行步驟S1-8; 步驟S1-4 :節(jié)點更新自身到信標節(jié)點的跳步數(shù),即將count+Ι,向外廣播該更新后的Preq數(shù)據(jù)包,執(zhí)行步驟S1-5 ; 步驟S1-5 :收到Preq數(shù)據(jù)包的節(jié)點回復Pack數(shù)據(jù)包給發(fā)送Preq數(shù)據(jù)包的節(jié)點,確認收到消息; 步驟S1-6 :發(fā)送Preq數(shù)據(jù)包的節(jié)點收到Pack數(shù)據(jù)包后,更新自己的鄰居信息表和路由信息表; 步驟S1-7 :該節(jié)點被認為是壞節(jié)點,不參與定位過程; 步驟S1-8 :節(jié)點判斷當前路由信息表中信標節(jié)點BNi的count值是否小于新數(shù)據(jù)包的count值,如果是則執(zhí)行步驟S1-9,否則執(zhí)行步驟S1-4 ; 步驟S1-9:丟棄該數(shù)據(jù)包。
3.如權利要求I所述的基于節(jié)點密度的分區(qū)域定位方法,其特征在于,所述的鄰居信息表的結構包括節(jié)點的鄰居節(jié)點的id號Neighbor_id和該節(jié)點與鄰居節(jié)點間的RSSI值Neighbor—RSSI。
4.如權利要求I所述的基于節(jié)點密度的分區(qū)域定位方法,其特征在于,所述的路由信息表的結構包括信標節(jié)點的id號Beacon_id、信標節(jié)點的坐標coordinate、節(jié)點距離該信標節(jié)點的跳步信息count和節(jié)點到信標節(jié)點間路徑上經過的節(jié)點序列route [N]。
5.如權利要求I所述的基于節(jié)點密度的分區(qū)域定位方法,其特征在于,所述的非邊界節(jié)點區(qū)域劃分階段具體包括以下步驟 步驟S2-1 :網絡中所有信標節(jié)點BNdB^BN3-BNdi,以自身節(jié)點編號生成區(qū)域編號area_id,并向其鄰居信息表中所有非邊界節(jié)點發(fā)送區(qū)域劃分請求Pdiv數(shù)據(jù)包,同時將自身區(qū)域劃分標志flag置為I ; 步驟S2-2 :節(jié)點i收到節(jié)點j發(fā)來的Pdiv請求數(shù)據(jù)包后(i < n, j < n, i古j ),通過公式(I)進行鄰居RSSI值選擇判定若rif = 0,則節(jié)點i執(zhí)行步驟S2-3,否則執(zhí)行步驟S2-4 ;
6.如權利要求I所述的基于節(jié)點密度的分區(qū)域定位方法,其特征在于,所述的步驟3的距離計算的具體步驟如下記小區(qū)域Ai中的單跳距離為^設網絡中信標節(jié)點間的鏈路為m條,每條鏈路上對應的真實距離為,統(tǒng)計信標節(jié)點間鏈路經過的小區(qū)域Ai和在每個小區(qū)域內的跳步數(shù)hops”建立公式
全文摘要
本發(fā)明公開了一種基于節(jié)點密度的分區(qū)域定位方法邊界檢測網絡中的節(jié)點被分為邊界節(jié)點和非邊界節(jié)點兩部分;區(qū)域劃分包括拓撲發(fā)現(xiàn)階段、非邊界節(jié)點區(qū)域劃分階段和邊界節(jié)點區(qū)域劃分階段,拓撲發(fā)現(xiàn)階段中,各節(jié)點在通過廣播數(shù)據(jù)獲取自身的鄰居信息表和路由信息表;邊界節(jié)點區(qū)域劃分階段中,將邊界節(jié)點和其鄰居非邊界節(jié)點中鄰居節(jié)點個數(shù)最多的節(jié)點劃分為同一區(qū)域;距離計算。該方法針對大規(guī)模,復雜環(huán)境下節(jié)點分布不均勻、信號分布非規(guī)則的各向異性網絡,通過區(qū)域劃分和獨立區(qū)域的單跳距離計算,能更好的適應各種拓撲結構,提高了算法在真實場景中的實用性。采用本發(fā)明提高了定位精度,有效解決各向異性網絡中未知節(jié)點的定位問題。
文檔編號H04W84/18GK102970744SQ201210376260
公開日2013年3月13日 申請日期2012年9月29日 優(yōu)先權日2012年9月29日
發(fā)明者房鼎益, 韓金枝, 陳曉江, 邢天璋, 劉晨, 聶衛(wèi)科, 肖云, 張遠, 金夢, 趙康 申請人:西北大學