王 焱,單欣欣,姜 偉
(遼寧工程技術大學電氣與控制工程學院,遼寧葫蘆島 125105)
隨著無線通信和電子學的飛速發(fā)展,低成本的無線傳感器網(wǎng)絡也得到了空前的發(fā)展,逐漸成為學術界、工業(yè)界的研究熱點[1]。無線傳感器網(wǎng)絡常常應用在軍事、醫(yī)療衛(wèi)生、遠程監(jiān)控、搶險救災等領域,因此對于大多數(shù)無線傳感網(wǎng)絡來說沒有位置信息的節(jié)點是沒有意義的,因此傳感器節(jié)點的定位問題是無線傳感器網(wǎng)絡中的一個基本和關鍵問題。
由于直接給每個節(jié)點安裝GPS接收器,從成本、能耗、體積等方面來說,并不適合無線傳感器網(wǎng)絡的要求。因此無線傳感網(wǎng)絡中各節(jié)點能夠進行自身定位具有重要的意義[2-3]。目前無線傳感網(wǎng)絡中對節(jié)點進行定位的方法主要有集中式和分布式兩種,但集中式的定位算法需要把信息傳送到某個中心節(jié)點,并在那里進行節(jié)點定位計算,這樣靠近中心節(jié)點的節(jié)點會因為通信量大而能耗過大,可能造成能量過早耗盡而導致整個網(wǎng)絡與中心節(jié)點信息交流的中斷;此外集中式算法也存在當網(wǎng)絡拓撲或環(huán)境變化時無法實時定位等缺點。而分布式算法可以很好的優(yōu)化網(wǎng)絡的能量分配,降低能量消耗,更具有實用性。
對無線傳感器節(jié)點進行分簇是目前研究無線傳感網(wǎng)絡分布式算法的主要設計方案之一。基于分簇的無線傳感器網(wǎng)絡,可將網(wǎng)絡感知的數(shù)據(jù)進行融合后再進行傳輸,減少由于傳輸產生的能量消耗,而且便于對簇內節(jié)點的統(tǒng)一管理,有利于對網(wǎng)絡進行擴展[4]。
針對無線傳感器網(wǎng)絡中只有少數(shù)節(jié)點移動,大部分節(jié)點都是靜止的情況。本設計提出的基于能量最優(yōu)的分簇定位的方法,由簇頭收集信息傳送給基站。在對移動節(jié)點的定位上,由簇內節(jié)點的相互通信確定移動節(jié)點的位置信息,并對移動節(jié)點進行定位。不僅考慮了定位精度,而且針對只有少數(shù)節(jié)點移動的無線傳感網(wǎng)絡,簇結構可以保持一定的穩(wěn)定性,避免從新組簇的能量消耗,很好的優(yōu)化了網(wǎng)絡的能量,保證了無線傳感網(wǎng)絡的生命周期達到最長。
把傳感器網(wǎng)絡節(jié)點分成連接的簇,每個簇包含一個簇頭節(jié)點和多個成員節(jié)點。簇成員負責檢測收集檢測區(qū)域的參數(shù)值并且把它們發(fā)送給自己的簇頭節(jié)點;簇頭負責收集來自成員節(jié)點的數(shù)據(jù),進行處理、壓縮,并把數(shù)據(jù)傳送給基站。從而可以進一步節(jié)約能耗,提高網(wǎng)絡的穩(wěn)定性。為保證能量的最低消耗,簇內節(jié)點實行單跳通信,即每個節(jié)點獨立的把信息傳送給簇頭。簇結構如圖1所示。

圖1 無線傳感器網(wǎng)絡分簇結構
簇頭節(jié)點收集簇中節(jié)點的信息并和基站進行通訊,由于處理的數(shù)據(jù)較普通節(jié)點要多很多,所以為了節(jié)省網(wǎng)絡的能量消耗,對簇頭節(jié)點的個數(shù)要進行限制。針對網(wǎng)絡的覆蓋率問題以及網(wǎng)絡簇頭的優(yōu)化,規(guī)定了高功率發(fā)射節(jié)點和低功率發(fā)射節(jié)點,在這里高功率發(fā)射節(jié)點的通訊直徑是低功率發(fā)射節(jié)點的2倍,以滿足網(wǎng)絡連通度和最少簇頭的要求[5]。休眠節(jié)點是在某個周期內不活動的節(jié)點,節(jié)省了網(wǎng)絡的能量消耗。為了保持網(wǎng)絡中能量消耗的平均,各節(jié)點根據(jù)能量的剩余量進行下一個階段工作模式的選擇。
假設無線傳感網(wǎng)絡模型是一個矩形網(wǎng)絡,在網(wǎng)絡中安插一定數(shù)量的錨節(jié)點,網(wǎng)絡中各傳感器節(jié)點隨機分布,在同一周期中只有少數(shù)節(jié)點移動,采用分簇定位的方法對網(wǎng)絡中位置未知的節(jié)點進行定位。對于存在位置固定的錨節(jié)點和移動的待測節(jié)點的無線傳感網(wǎng)絡,先通過少量錨節(jié)點對簇頭進行定位,再利用節(jié)點的無線互聯(lián)的性質在簇內對發(fā)生移動的節(jié)點進行定位。采用接收信號強度(RSSI)測距與質心定位算法結合的方法對移動節(jié)點進行定位,從而達到定位精度更高,能量的消耗最少的目的。
2.1.1 RSSI傳輸模型的選擇
常用于無線傳感器網(wǎng)絡模擬的三種傳播模型分別是自由空間模型和地表反射雙電磁波模型以及陰影模型。我們知道,無線信號在傳輸過程中的能量是隨機變化的,這是由于信號的多徑傳輸。對于未知固定的兩個節(jié)點之間,每次收到對方信號的能量是含有隨機波動成分的。自由空間模型和地表反射模型沒有將這種隨機因素考慮在內,這樣就影響了模型的實用性。而陰影模型中則考慮到這一點。
陰影模型的優(yōu)點在于,它不僅考慮了通信理論模型,也同時在模型中引入了信道的隨機因素。該模型由兩部分組成,模型的第一部分表示通信距離與接收信號功率的關系,并引入了參考點d0,它是接近信號發(fā)送節(jié)點的位置,在本文模型中選擇為一米。d0處接收的平均信號功率為Pr(d0),那么d處的平均功率Pr(d)相對于Pr(d0)的計算公式如下:

其中β稱為路徑損耗指數(shù),這個參數(shù)一般是根據(jù)場地實際測量的經(jīng)驗值而來的。它與障礙物的數(shù)量成正比。因此隨著通信距離的增大接收節(jié)點接收到的信號平均能量下降的加速度會逐步變大如表1。通過對上式兩邊分別取對數(shù),則可得到:



其中pt表示發(fā)送能量,Pr(d0)表示距離d0處的接收功率,Gt和Gr分別表示發(fā)送和接收節(jié)點的天線增益,λ表示通信信號的波長,L表示系統(tǒng)損耗因子。在模擬中通常假設Gt=1、Gr=1以及L=l。

表1 β在不同環(huán)境下的典型值
公式的第二部分就是路徑損耗模型,用來描述路徑損耗與通信距離的關系。需要說明的是,路徑損耗是一個對數(shù)正態(tài)隨機變量,如果以dB作為計量單位它滿足高斯分布。第二部分的陰影模型如下

PL(d)和PL(d0)分別表示無線信號經(jīng)過d和d0的傳輸后的損耗。XdB是一個高斯隨機變量,均值為0,方差的取值是根據(jù)經(jīng)驗值、實際試驗來確定的,一般取值在5左右。
2.1.2 RSSI值的優(yōu)化處理
對接收信號強度和距離之間進行動態(tài)調整。在應用中,對于新收到的RSSI值,與上一次的RSSI值作比較,并以上圖中的數(shù)據(jù)為判斷依據(jù),如果相差明顯不符合目標實際運動情況,則認為是環(huán)境干擾,剔除相應數(shù)據(jù);如相差在一定范圍之內,則儲存該數(shù)據(jù)進行下一步的處理。因為在定位過程中,節(jié)點的移動速度是有限的,由此根據(jù)具體情況設定合適的閾值,通過前后兩次RSSI的差值與閾值進行比較即可有效地抑制無線網(wǎng)絡信道的較大的波動干擾。鑒于節(jié)點每次接收到RSSI后存儲用于下一次RSSI的比較,考慮到節(jié)點第一次接收的RSSI值有可能是干擾數(shù)據(jù),故當節(jié)點上電后前兩次接受的RSSI值取均值后作為第一次比較RSSI。
2.1.3 RSSI測距與質心定位算法的結合
為了達到較好的定位精度,本設計采用RSSI測距與質心定位算法的結合來對節(jié)點進行定位。原有質心定位算法沒有反映出不同錨節(jié)點對未知節(jié)點位置影響力的大小,研究得到,未知節(jié)點到錨節(jié)點的距離越近,錨節(jié)點對其定位的影響越大,影響力越大的錨節(jié)點對未知節(jié)點位置有更大的決定權。RSSI與質心定位算法的結合利用加權因子體現(xiàn)錨節(jié)點對未知節(jié)點的影響程度,反映它們間的內在關系[8]。該算法的具體做法是:將未知節(jié)點接收到的所有的信標節(jié)點的RSSI值進行排序。為了降低計算的復雜度,優(yōu)先選擇RSSI值大的錨節(jié)點組合成的任意的三角形集合,再對其中三個三角形采用進一步的加權質心計算

其中(xki,yki)就是用加權質心算法求出的未知節(jié)點坐標;(x1,y1)(x2,y2)(x3,y3)分別為 3 個錨節(jié)點坐標;d1,d2,d3為未知節(jié)點與這3個信標節(jié)點的近似距離[9]。
再利用下面公式計算未知節(jié)點坐標(x,y):

采用RSSI與質心算法相結合的定位算法,隨機采用RSSI值比較的大的錨節(jié)點信息進行質心定位,采用三次質心定位再取平均值的方式,既提高了定位的精度,也節(jié)省了計算復雜度。
當無線傳感網(wǎng)絡中有節(jié)點發(fā)生移動時,其所在的簇內節(jié)點之間通過接收到的RSSI信號大小來判斷節(jié)點的移動情況。通常情況下,信號強度基本上能夠滿足隨距離的增加而單調遞減的規(guī)律,這樣通過臨近節(jié)點收到的信號強度的變化,不用計算實際距離,就可以得到節(jié)點的移動信息,這樣可以有效降低由于模型不準確帶來的誤差。網(wǎng)絡中采用簇結構的方式對節(jié)點進行定位,網(wǎng)絡中各節(jié)點的通訊能量是各個環(huán)節(jié)中消耗能量最多的環(huán)節(jié),因此為了減少能量的消耗和提高定位精度,對于簇內節(jié)點的定位過程如圖2(a)所示。①當節(jié)點2發(fā)生移動時,在其通信范圍內的節(jié)點接收到的RSSI值發(fā)生變化,相應的增大或減小。此時感應變化的兩個節(jié)點互為觀測者如圖2(b)所示。②感受到變化的節(jié)點同時像基站發(fā)送變化信息,基站接受此信息后對節(jié)點進行標記,假設為(Si,Sj),那么他們當中有一個應該是移動的。③由于包含不動的觀測節(jié)點,因此設置一個預定值f(0),在同一周期中,當基站記錄的某一點的次數(shù)小于f(0)則視為正常值[10]。④若基站接受到的節(jié)點中多次包含Si我們就可以斷定Si就是移動節(jié)點。同時考慮到簇內不只一個節(jié)點運動的情況,所以不排除存在另一移動節(jié)點的情況。⑤對移動節(jié)點由簇內其他不動節(jié)點對其實行定位。

圖2 簇內節(jié)點的定位
通過簇內定位技術,將移動節(jié)點的定位限制于簇內進行,只對移動的節(jié)點進行測距。減少了計算復雜度,節(jié)省了網(wǎng)絡的能量消耗,同時克服了依靠錨節(jié)點對移動節(jié)點的定位帶來的長距離測距誤差。由于網(wǎng)絡中只有少量節(jié)點進行移動,簇結構相對穩(wěn)定?;谀芰康钠骄牡脑瓌t,在一定的時間內進行節(jié)點工作模式的變換,從而優(yōu)化網(wǎng)絡能量[11]。
在網(wǎng)絡環(huán)境中,隨著節(jié)點的移動節(jié)點的集合也依據(jù)準則相繼進行更新,即簇的更新,包括簇內成員節(jié)點的改變、簇頭節(jié)點的改變,以及簇的重建[12]。簇結構網(wǎng)絡生成以后,簇的維護就成了貫穿整個網(wǎng)絡生命期的工作。簇的維護工作主要就是處理節(jié)點的退出、節(jié)點的加入、簇的從組等幾種情況。
節(jié)點的退出:當一個節(jié)點在下一周期發(fā)生移動后離開原來的簇,原來的簇頭節(jié)點接受不到他的信息,則認為該節(jié)點退出本簇,簇頭節(jié)點將其信息刪除,并通知整個網(wǎng)絡出簇消息。
節(jié)點的加入:當一個不屬于任何簇的普通節(jié)點進入到某個簇的范圍,或某個簇的成員節(jié)點離開原來的簇進入到另一個簇的范圍,簇頭節(jié)點接受到他的信息并發(fā)送的簇頭消息給新加入節(jié)點,并把新加入節(jié)點的信息加入信息列表,并通知整個網(wǎng)絡入簇消息。
簇的重組:當網(wǎng)絡中出現(xiàn)不能通信的節(jié)點,則簇結構進行重組。在移動自組網(wǎng)絡中,還可能因簇首節(jié)點鄰接而觸發(fā)簇首競爭導致某個簇內節(jié)點很少,當某個簇內節(jié)點少于設定值時放棄該簇,各節(jié)點尋找新的簇頭節(jié)點。因此簇結構的變化頻率越小說明生成的簇結構越穩(wěn)定,能量消耗越小??紤]到能量的平均消耗,簇結構發(fā)生變化時,各節(jié)點工作狀態(tài)也發(fā)生變化。
假設無線傳感網(wǎng)絡中錨節(jié)點的個數(shù)超過三個,實驗結果表明基于RSSI測距和質心定位算法結合的分簇定位算法可以很好的實現(xiàn)移動節(jié)點的定位,并且使網(wǎng)絡的能量消耗趨于平均。如圖3所示為簇頭節(jié)點和休眠節(jié)點數(shù)量均為總結點數(shù)量的10%左右,簇頭節(jié)點、高功率發(fā)射節(jié)點和低功率發(fā)射節(jié)點的能量損耗之比為20∶2∶1,休眠節(jié)點為零的情況下,定位算法的能量消耗曲線,15個周期系統(tǒng)的通訊能量消耗保持在300以下,運行能量消耗也能夠維持在3.8以下。

圖3 能量損耗曲線
針對移動節(jié)點的定位我們采取了跟蹤定位的方式,對一個節(jié)點進行移動跟蹤定位,其結果如圖4所示,在相同條件下,隨著時間的變化節(jié)點進行隨機移動,基于RSSI校正后的定位誤差明顯小于原始定位誤差,定位精度更高。節(jié)點的適應性增強,提高了系統(tǒng)的可靠性。

圖4 移動節(jié)點定位誤差比較
無線傳感網(wǎng)絡的動態(tài)性和各種移動節(jié)點的定位需求,如何以較小的能耗達到較高的定位精度是一個熱點和難點問題[13]。本文提出了基于分簇的定位算法,克服了長距離定位帶來的定位誤差,節(jié)約了傳輸過程中的能量消耗。采用RSSI與質心定位結合的算法,不僅有效的減小了因RSSI值誤差所引起的定位誤差,而且對質心定位算法進行了有效的改進。MATLAB仿真結果表明本設計所提出的基于RSSI和質心定位結合的分簇定位算法兼顧了定位精度、錨節(jié)點個數(shù)和能量消耗的平衡。在保證精度更高的前提下,減少通信開銷,使網(wǎng)絡的生命周期達到最長。
[1]劉愛平,劉忠,梁鑰,等.基于距離的分布式無線傳感器網(wǎng)絡定位算法[J].計算機應用研究,2008,8:2528-2531.
[2]屈巍,李喆.基于RSSI的無線傳感網(wǎng)絡節(jié)點定位技術研究[J].傳感技術學報,2009,22(5):656-659.
[3]戴瑩,王建平,張崇巍.無線傳感器網(wǎng)絡節(jié)點定位算法的研究與改進[J].傳感技術學報,2010,23(4):567-570.
[4]YAO Zhongxiao,YU Li,DONG Qifen.Beacon-Based DV-Hop Localization Algorithm in Wireless Sensor Networks[J].2009,22(10):1504-1509.
[5]王焱,單欣欣.遺傳算法在森林防火預警網(wǎng)絡中的應用[J].計算機系統(tǒng)應用,2011,20(5):130-134.
[6]王珊珊.基于RSSI的無線傳感器網(wǎng)絡定位算法研究[D].湖南:國防科學技術大學.2007.
[7]李娟.無線傳感網(wǎng)絡節(jié)點定位算法及能量高效路由協(xié)議的研究[D].吉林大學博士學位論文.2009.
[8]石為人,許磊.一種面向無線傳感器網(wǎng)絡相對定位的分簇算法[J].計算機工程與應用,2008,44(24):15-18.
[9]Bahi J M,Makhoul A,Mostefaoui A.Localization and Coverage for High Density Sensor Networks.Computer Communications,2008,31(4):770-781.
[10]車文剛,蘇磊,王宏祥,等.二分圖的無關分解及其在覆蓋問題中的應用[J].電子學報,1998(5):42-47.
[11]郭永紅,萬江文,于寧,等.基于跳數(shù)的無線傳感器網(wǎng)絡定位求精算法[J].計算機工程.2009,35(3):145-147.
[12]王繼春.無線傳咸器網(wǎng)絡節(jié)點定位若干問題研究[D].安徽:中國科學技術大學.2009.
[13]ZHONG You-ping,KUANG Xing-hong,HUANG Pei-wei.Improved Algorithm for Distributed Localization in Wireless Sensor Networks[C]//Shanghai Jiaotong University and Springer-Verlag Berlin Heidelberg 2010.Houston:J.Shanghai Jiaotong Univ.(Sci.),2010,15(1):64-69.