網站首頁 健康小知識 母嬰教育 起名 運動知識 職場理財 情感生活 綠色生活 遊戲數碼 美容 特色美食 愛好

無線傳感器網絡中的節點定位技術解析

欄目: 學習交流 / 發佈於: / 人氣:3.05W

無線傳感器網絡的許多應用要求節點知道自身的位置信息,才能向用户提供有用的檢測服務。沒有節點位置信息的監測數據在很多場合下是沒有意義的。比如,對於森林火災檢測、天然氣管道監測等應用,當有事件發生時,人們關心的一個首要問題就是事件發生在哪裏,此時如果只知道發生了火災卻不知道火災具體的發生地點,這種監測沒有任何實質的意義,因此節點的位置信息對於很多場合是至關重要的。

操作方法

(01)在許多場合下,傳感器節點被隨機部署在某個區域,節點事先無法知道自身的位置,因此需要在部署後通過定位技術來獲取自身的位置信息。目前最常見的定位技術就是GPS(Global Positioning System)了,它能夠通過衞星對節點進行定位,並且能夠達到比較高的精度。因此要想對傳感器節點進行定位,最容易想到的方法就是給每個節點配備一個GPS接收器,但是這種方法不適用於傳感器網絡,主要原因有以下幾點:1)GPS接收器通常能耗高,而對於無線傳感器網絡中的節點來説,一般能耗很有限,給每個節點配備一個GPS接收器會大大縮短網絡壽命;2)GPS接收器成本比較高,給無線傳感器網絡中的每個節點配備一個GPS接收器,需要投入很大成本,尤其對於大規模的無線傳感器網絡來説不是很適合;因此有必要研究適合無線傳感器網絡的定位技術。下面分兩個部分來介紹節點定位的相關研究:1)節點定位的基本概念;2)節點定位的基本思路;3)常見算法。

節點定位的基本概念

(01)無線傳感器網絡中的節點定位是指傳感器節點根據網絡中少數已知節點的位置信息,通過一定的定位技術確定網絡中其他節點的位置信息的過程。在無線傳感器網絡中節點通常可以分為信標節點(beacon node or anchor node)和未知節點(unknown node),其中信標節點也稱為錨節點或者參考點,未知節點也稱為普通節點。信標節點是位置信息已知的節點,未知節點是未知信息未知的節點。信標節點一般所佔比例很小,通常通過手工配置或者配備GPS接收器來獲取自身的位置信息。除此之外還有一種節點稱為鄰居節點(neighbor node),鄰居節點是指傳感器節點通信半徑內的其他節點。以下是幾個常用術語:到達時間(Time of Arrvial,TOA),信號從一個節點傳播到另一個節點所需時間到達時間差(Time Diffrential of Arrival,TDOA),不同傳播速度的信號從一個節點到達另一個基點所需要的時間之差到達角度(Angle of Arrival,AOA),節點接收到的信號相對於自身軸線的角度接收信號強度(Received Sinnal Strength,RSS),節點接收到無限信號強度的大小,也有稱Received Sinnal Strength Indicator(RRSI),兩個意思基本是一樣的視距關係(Light of Sight,LOS),兩個節點之間沒有障礙物,能夠直接通信非視距關係(Non Light of Sight,NLOS),兩個節點之間有障礙物,不能直接通信跳數(Hop Count),兩個節點之間的跳段之和

節點定位技術的基本思路

(01)節點定位的基本思路主要有兩種:1.基於測距(Range-based):假設在傳感器網絡中某些節點位置信息已知,通過某些手段來估算其他節點的位置信息。在這裏面通常有兩個步驟:測距位置估算因為要通過信標節點得到未知節點的位置信息,必須先確定信標節點到未知節點的距離,才能得到未知節點的位置信息。舉個例子説明一下:

無線傳感器網絡中的節點定位技術解析

(02)假如信標節點A位置已知為(x1,y1),節點M位置未知,要想求得M的位置,最簡單的想法:假設B位置為(x,y),A到B的距離為d1,則有d12=(x-x1)2+(y-y1)2顯然只根據一個方程這樣是無法求得x和y的值,假若有兩個信標節點呢?

無線傳感器網絡中的節點定位技術解析 第2張

(03)這樣一來的話又多了一個方程:d22=(x-x2)2+(y-y2)2,此時可以解得方程組得到x和y,但是此時x和y是有兩組解的,無法唯一確定x和y的值,因此需要考慮再假如一個信標節點:

無線傳感器網絡中的節點定位技術解析 第3張

(04)這樣一來的話就可以唯一確定x和y的值了,最基本的定位思想就是這樣。這裏舉的例子是採用距離,還可以採用角度。一般情況最少需要知道未知節點和信標節點的三組距離或角度值,然後再通過位置估算方法確定位置。通常測距的方法有4種:1)基於到達時間(TOA)的測距這種方法是根據已知信號的傳播速度及信號在發送節點和接收節點之間的傳播時間來估算距離,這種方法要求能夠非常精確地獲取發送節點和接收節點之間的傳播時延,這個是比較困難的,難度很大,不太適合無線傳感器網絡。2)基於到達時間差(TDOA)的測距這種方法中發送節點同時發送兩種不同傳播速度的信號、接收節點根據兩種信號到達的時間差和他們的傳播速度來計算距離。假若兩種信號的傳寶速度為v1和v2,到達時間分別為t1和t2,發送節點到接收節點的距離為d,則有:t1-t2=d/v1-d/v2可得d=(t1-t2)v1v2/(v2-v1)3)基於到達角度(AOA)的測距這種方法根據接收信號到達時候與自身軸線的角度來計算,這種方法對硬件成本要求很高,要求配備天線陣列,不太適合無線傳感器網絡4)基於接收信號強度(RSS)的測距信號在傳播過程中會有衰減,無線信號的發射功率和接收功率存在某種映射關係,因此可以利用關係這個來估算距離,在獲得了距離之後,就可以來估算位置了,常用的位置估算方法有下面兩種:1)三邊測量法上面舉的例子中的位置估算方法就是三邊測量法,此處不再贅述。至於某些文獻上提到的三角測量法個人覺得跟三邊測量法是一回事,就不再介紹了。3)最大似然估計法已知n個節點的座標為(x1,y1),(x2,y2)......(xn,yn),它們到未知節點M的距離分別為d1,,則有:(x-x1)2+(y-y1)2=d12(x-x2)2+(y-y2)2=d22......(x-xn)2+(y-yn)2=dn2依次用第一個方程減去最後一個方程,可得:x12-xn2+y12-yn2+dn2-d12=2x(x1-xn)+2y(y1-yn)-12-xn2+yn-12+dn2-dn-12=2x(xn-1-xn)+2y(yn-1-yn)則可以表示成 AX = B

無線傳感器網絡中的節點定位技術解析 第4張

(05)2.無需測距(range-free)無需測距的方法一般是利用網絡連通性或者拓撲結構來估算距離,再利用三邊測量法或者極大似然估計來估算位置。

常見算法

(01)1.基於測距(range-based)1)AHLos 算法該算法是基於到達時間差的測距,信標節點首先向鄰居節點以兩種射頻信號來廣播消息,然後鄰居節點根據到達時間差來估算距離,在接收到三個信標節點的消息之後,則根據三邊測量法估算位置,鄰居節點確定自己的位置之後轉變為信標節點,也向鄰近節點廣播消息重複上述過程直至所有節點定位完成。2)RADAR算法該算法是基於RSS的測距,而基於RSS測距該算法有兩種模型:經驗模型和信號傳播模型先説一下經驗模型:

無線傳感器網絡中的節點定位技術解析 第5張

(02)在經驗模型中,節點被分散在一定的區域內,並且保證所有的未知節點能夠與信標節點直接通信,如圖所示。然後事先在該區域內採集一些位置進行RSS強度測試,並以(x,y,RSS)的形式記錄到數據庫中。當進行定位時,未知節點同數據庫中的數據進行比對,選擇差值最小的三個或者三個以上點作為估算位置,然後再採用三邊測量法或者下文的質心法來估算位置。信號傳播模型:信號傳播模型主要有兩種模型:自由空間模型和shadowing模型自由空間模型假定信號發射功率和信號接收功率存在確定的映射關係:

無線傳感器網絡中的節點定位技術解析 第6張

(03)其中PR是接收處的功率,PS是發射處的功率,d是發射點距接收點的距離,α是傳播因子,視環境而定。shadowing模型:

無線傳感器網絡中的節點定位技術解析 第7張

(04)其中P(d)是未知節點處的信號強度或者信號發射功率,P(d0)是距信標節點或者基站d0處的信號發射功率(其中d0是參考距離,一般取1m),n是衰減因子,由於實際環境中存在噪聲,所以引入了ß,比如在室內傳播,會有牆壁或者門這些障礙物,就需要計算ß。2.無需測距(range-free)無需測距的定位算法不需要直接測量節點之間的距離或者角度,而是根據網絡的連通性來實現位置估計得,典型的無需測距的算法主要有以下幾種:1)質心算法質心算法基於兩個假設條件:射頻信號的傳播遵循理想的圓球模型;節點的通信半徑相同且不會改變。該算法利用了計算幾何中質心的思想,假設n邊形的頂點座標分別為(x1,y1)......(xn,yn),設其質心座標為(x,y),則有x=(x1+x2....+xn)/ ny=(y1+y2+....+yn)/ n算法核心思想為:信標節點週期性地廣播包含自身位置信息的消息,在時間t內未知節點收到來自信標節點i的消息數目為Nr(i,t),而時間t內信標節點i發出的消息數目為Ns(i,t),那麼未知節點和信標節點的連通指標為:C=Nr(i,t)/ Ns(i,t)如果C大於設定的閾值,則認為未知節點處於信標節點i的覆蓋區域內,即與信標節點i連通。這樣對於每個未知節點都可以選出與其連通的所有信標節點,然後把這些信標節點的質心作為該未知節點的座標。質心算法是一種完全基於網絡連通性的定位算法,其計算和實施難度都比較小,但是算法精度不高,並且通常要求信標節點具有較高的密度。2)DV-HOP(Distance Vector-Hop)算法DV-HOP算法是為了避免對節點距離直接測量而提出的一種基於向量路由的非測距定位算法。該算法的核心思想是通過距離向量路由方法獲取未知節點與信標節點之間的最小跳數,並計算每跳的平均距離,然後以每跳的平均距離與最小跳數的乘積作為未知節點與信標節點的估算距離,再使用三邊測量法估算未知節點的座標位置。舉個例子:

無線傳感器網絡中的節點定位技術解析 第8張

(05)A、B、C為信標節點,M為未知節點,A到B和C的距離分別為40m和100m,而A到B和C的最小跳數分別為2和5,則A的平均跳距為:(40+100)/ (2+5)=20m,同理可以得到B和C的平均跳數為24m和22.5m,則可以計算M距離三個信標節點的距離分別為:3*20m,2*24m,3*22.5m,然後就可以利用三邊測量法估算出M的座標。這種方法實現比較簡單,但是精度較差,不適合稀疏的以及拓撲不規則的網絡。3)APIT算法APIT算法的基本思想同質心算法的思想類似,它利用由信標節點組成的三角形覆蓋重疊區域來確定未知節點的位置。在APIT算法中,未知節點首先在其鄰居節點中收集信標節點的信息。然後任意選取3個信標節點,判斷自己是否在這3個信標節點組成的三角形區域內,然後不斷這樣循環選取3個信標節點進行判斷,這樣,未知節點可以確定多個包含自己的三角形區域,這些三角形區域的重疊部分是一個多邊形,它確定了更小的包含未知節點的區域,然後以這個多邊形區域的質心作為未知節點的座標。4)MAP算法MAP(Mobile Anchor Point)是一種基於移動信標節點的非測距定位算法,也有稱為MAN(Mobile Anchor Node)。其基本思想是利用可移動的信標節點在監測區域中移動並週期性的廣播其當前的位置信息,然後可以確定兩條以未知節點為圓心的弦,這兩條弦的垂直平分線的交點就是圓心。

無線傳感器網絡中的節點定位技術解析 第9張

(06)如圖所示,S為未知節點,M為移動的信標節點,在T1時刻M移動到S的通信範圍之內,然後在T5時刻移出S的通信範圍,這樣就可以確定了兩條弦  T1T5,在T12時刻M又重新移動到S的通信範圍之內,然後又在T15時刻移出S的通信範圍,這樣又可以確定一條弦T12T15,這兩條弦的垂直平分線的交點即為圓心S的座標,然後以圓心座標作為未知節點S的位置。該算法有與其他非測距定位算法相比有較高的精確度,但是缺點是移動節點是必須要有足夠能量支持其在監測區域內移動,並且當未知節點的位置發生變化時,該算法有比較大的誤差。5)Amorphous算法Amorphous算法與DV-HOP算法類似,其分為三個階段:第一階段:計算未知節點與每個信標節點之間的最小跳數第二階段:假設網絡中的節點通信半徑相同,並且每跳的平均距離等於節點的通信半徑,計算未知節點到每個信標節點的距離第三階段:採用三邊測量法或者最大似然估計法估算未知節點的位置6)凸規劃定位算法凸規劃定位算法的核心思想是:如果兩個節點能夠直接進行通信,則它們之間的距離必定小於節點的通信半徑。

無線傳感器網絡中的節點定位技術解析 第10張

(07)如圖所示,黑色實心點為信標節點,白色空心點為未知節點,假若未知節點能與信標節點通信,則其必在以信標節點為圓心、通信半徑為半徑的圓內,這樣的話,多個這樣的圓的相交區域必然包含了未知節點,然後以相交區域構成的矩形的質心作為未知節點的座標。7)Ring-Overlapping算法

無線傳感器網絡中的節點定位技術解析 第11張

(08)該算法利用交疊環的思想進行定位,比如S為未知節點,A、B、C為信標節點,若A發出射頻信號,而S處的信號強度RSS小於B處的信號強度而大於C處的信號強度,則S必在以A-B為內半徑、A-C為外半徑的環形區域內,類似地分別可以得到以B、C為中心的環形區域,而S必在這些環形區域的交疊區域內,然後以交疊區域的質心作為S的座標。以上算法都是有信標節點的定位算法,曾有人提出了一些沒有信標節點的定位算法如SPA(Self-positioning Algorithm)算法,這種算法主要是建立全局座標系來估算未知節點的位置,但是這種算法複雜度非常高,不適合用於大規模網絡,也有人提出針對SPA算法的改進算法,如SDGPSN(Scalable and Distributed GPS free Positioning for Sensor Networks)算法。還有一部分人提出了一些其他的算法,比如AFL(Anchor-Free Distributed Localization in Sensor Networks)算法,其利用的是局部估算方法。還有人提出了基於分簇的定位算法(Using Clustering Information for Sensor Network Localization)。