, ,,
(鄭州輕工業(yè)學(xué)院,鄭州 450002)
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)是由大量部署在監(jiān)測區(qū)域的傳感器節(jié)點(diǎn)組成的,通過無線通信形成一個(gè)多跳的自組織網(wǎng)絡(luò),協(xié)作感知,采集和處理相關(guān)監(jiān)控信息[1]。無線傳感器網(wǎng)絡(luò)是面向事件的監(jiān)測網(wǎng)絡(luò)。在大多數(shù)應(yīng)用中,位置信息對(duì)于感知和采集到的信息來說至關(guān)重要。如果不知道其感知對(duì)象的位置,則所感知的信息往往是毫無意義的。實(shí)時(shí)確定事件發(fā)生的位置或獲取消息的節(jié)點(diǎn)位置是傳感器網(wǎng)絡(luò)的基本功能之一,也是提供監(jiān)測位置信息的前提。因此,定位技術(shù)對(duì)傳感器網(wǎng)絡(luò)應(yīng)用的有效性起著關(guān)鍵的作用。
無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位機(jī)制從定位手段上可分為基于測距定位[2]和非測距[3]定位。前者通過測量節(jié)點(diǎn)間的距離或者角度信息(信號(hào)到達(dá)時(shí)間、信號(hào)到達(dá)時(shí)間差、信號(hào)到達(dá)角度、信號(hào)強(qiáng)度等),使用三邊測量、三角測量或最大似然估計(jì)法來計(jì)算未知節(jié)點(diǎn)的位置?;跍y距的算法存在需要專用硬件,使傳感器節(jié)點(diǎn)成本和體積加大的缺點(diǎn),從而限制了其可用性。非測距定位不需要測量節(jié)點(diǎn)與信標(biāo)節(jié)點(diǎn)間的距離或角度,僅僅依靠網(wǎng)絡(luò)的連通度即能完成定位,其在功耗、環(huán)境及成本方面的優(yōu)勢,在大規(guī)模無線傳感器網(wǎng)絡(luò)定位中得到了廣泛的關(guān)注。典型的非測距方法有質(zhì)心算法[4]、凸規(guī)劃法[5]、APS定位算法[6]和APIT算法[7]等。
不同的信標(biāo)節(jié)點(diǎn)布局對(duì)相同節(jié)點(diǎn)定位的精度可以相差很大,具體來說,當(dāng)未知節(jié)點(diǎn)離信標(biāo)節(jié)點(diǎn)較近時(shí),定位精度較高;反之,定位精度則較低。信標(biāo)節(jié)點(diǎn)分布不勻會(huì)造成空洞等問題。因此,本文采用網(wǎng)格結(jié)構(gòu)的形式來部署網(wǎng)絡(luò),以便對(duì)網(wǎng)絡(luò)中大部分的節(jié)點(diǎn)都有較高的定位精度。
本文對(duì)加權(quán)質(zhì)心定位算法的定位誤差進(jìn)行分析,得出環(huán)境溫濕度、反射、多徑、物體移動(dòng)等因素對(duì)用RSSI測距技術(shù)計(jì)算出的權(quán)值誤差的影響導(dǎo)致的最終定位誤差;提出基于網(wǎng)格分布的自適應(yīng)校正的加權(quán)質(zhì)心定位算法,利用由離未知節(jié)點(diǎn)最近的信標(biāo)節(jié)點(diǎn)所確定的誤差因子,修正利用RSSI測距技術(shù)求出的測距值,使未知節(jié)點(diǎn)適應(yīng)自身所處的環(huán)境,減小因?yàn)榄h(huán)境造成的測距誤差,從而對(duì)權(quán)值進(jìn)行修正。
假設(shè)網(wǎng)絡(luò)中的第n個(gè)固定信標(biāo)節(jié)點(diǎn)Bi已知位置坐標(biāo)為(Xi,Yi),其中l(wèi)≤i≤n,未知節(jié)點(diǎn)M的估測位置坐標(biāo)為(Xe,Ye)。
則加權(quán)質(zhì)心算法的計(jì)算公式為
(1)
式中:Wi表示每個(gè)固定信標(biāo)節(jié)點(diǎn)的權(quán)值。通常該權(quán)值是未知節(jié)點(diǎn)到固定信標(biāo)節(jié)點(diǎn)距離的函數(shù)。如果未知節(jié)點(diǎn)不能與固定信標(biāo)節(jié)點(diǎn)Bi通信, 那么Wi為零[8]。
對(duì)于n個(gè)固定信標(biāo)節(jié)點(diǎn)B1(X1,Y1),B2(X2,Y2),…,Bn(Xn,Yn),未知節(jié)點(diǎn)M(Xe,Ye)到各節(jié)點(diǎn)的距離分別為d1,d2,d3,…,dn。
首先,只考慮兩個(gè)節(jié)點(diǎn)B1、B2。假設(shè)兩節(jié)點(diǎn)的質(zhì)心在B12,位置為(X12,Y12),B12到B1和B2的距離分別為d1,d2,則存在
(X12-X1)/d1=(X2-X12)/d2
(Y12-Y1)/d1=(Y2-Y12)/d2
由此可得
X12=(X1/d1+X2/d2)/(1/d1+1/d2)
Y12=(Y1/d1+Y2/d2)/(1/d1+1/d2)
所以,可以簡單地假設(shè)1/di為權(quán)值。這樣選擇加權(quán)因子能夠體現(xiàn)各個(gè)節(jié)點(diǎn)對(duì)于未知節(jié)點(diǎn)的決定權(quán)大小,其約束力符合加權(quán)質(zhì)心算法的要求[9]。
無線電信號(hào)在空間傳播時(shí)會(huì)有不同程度的損耗, 這些損耗在很大程度上影響了基于RSSI算法的定位精度, 因而選取合適的損耗模型尤為重要。這里采用自由空間傳播模型和對(duì)數(shù)-常態(tài)分布模型,對(duì)整個(gè)環(huán)境進(jìn)行仿真模擬。
自由空間無線電傳播路徑損耗模型為
LOSS=32.44+10klgd+10klgf
(2)
式中:d為測點(diǎn)距信源的距離, 單位為km;f為頻率, 單位為MHz;k為路徑衰減因子。其他模型模擬現(xiàn)實(shí)環(huán)境,但與現(xiàn)實(shí)環(huán)境還有一定差距。對(duì)數(shù)-常態(tài)分布模型的路徑損耗計(jì)算公式為
PL(d)=PL(d0)+10klg(d/d0)+X0
(3)
式中:X0是平均值為0的高斯分布隨機(jī)變數(shù), 其標(biāo)準(zhǔn)差范圍為4~10;k的范圍在2~5之間。取d=1, 代入式(2),可得LOSS的值。此時(shí),各未知節(jié)點(diǎn)接收信標(biāo)節(jié)點(diǎn)信號(hào)時(shí)的信號(hào)強(qiáng)度為
RSSI測量值=發(fā)射功率+天線增益-路徑損耗(PL(d))
(4)
通過式(2)、(3)、(4)可以得到距離di,從而通過加權(quán)質(zhì)心算法實(shí)現(xiàn)定位[10]。
加權(quán)質(zhì)心定位算法采用RSSI測距來估計(jì)節(jié)點(diǎn)間的距離,這種方法不需要信標(biāo)節(jié)點(diǎn)的硬件改動(dòng)。但是,因?yàn)镽SSI測距往往存在不精確的問題,所以算法中的RSSI測距在定位中不直接用來定位計(jì)算,而只是用來進(jìn)行計(jì)算加權(quán)質(zhì)心算法的權(quán)值參數(shù),算法的本質(zhì)還是基于Range-Free的定位。盡管RSSI測距沒有直接用于定位計(jì)算,但它存在的誤差對(duì)算法的定位精度依然產(chǎn)生著重要的影響。首先分析測距誤差給加權(quán)質(zhì)心定位算法造成的影響,然后用自適應(yīng)校正的算法來降低這種影響。
本文將離未知節(jié)點(diǎn)最近的信標(biāo)節(jié)點(diǎn)作為參考節(jié)點(diǎn),用參考節(jié)點(diǎn)的校正因子修正未知節(jié)點(diǎn)的測距。修正后的測距量比原始測距量能更精確地反映節(jié)點(diǎn)間的遠(yuǎn)近關(guān)系,從而使權(quán)值更符合理想測距情況下加權(quán)質(zhì)心算法的要求,達(dá)到了提高定位精度的目的。
圖1 自適應(yīng)修正測距誤差的示意圖
αij≈βij
(5)
(6)
假設(shè)每個(gè)未知節(jié)點(diǎn)都有一個(gè)鄰近信標(biāo)節(jié)點(diǎn)作為自適應(yīng)校正參考節(jié)點(diǎn),使得該節(jié)點(diǎn)的通信范圍存在同一組信標(biāo)節(jié)點(diǎn),并能夠?qū)@組信標(biāo)節(jié)點(diǎn)分別測距,那么,自適應(yīng)修正后的加權(quán)質(zhì)心定位算法為
(7)
(1)信標(biāo)節(jié)點(diǎn)周期性發(fā)送自身節(jié)點(diǎn)ID和自身位置信息。
(2)未知節(jié)點(diǎn)在收到信息后,多次記錄RSSI值,然后求均值。
(3)未知節(jié)點(diǎn)在收到超過閾值的n個(gè)信標(biāo)信息后,建立以下4個(gè)集合:
①信標(biāo)節(jié)點(diǎn)集合:Sn={a1,a2,a3,… ,an};
②未知節(jié)點(diǎn)到錨節(jié)點(diǎn)的距離集合:Dn={d1,d2,d3,…,dn};
③校正因子集合:Bn={β1,β2,β3,…,βn};
④信標(biāo)節(jié)點(diǎn)的位置坐標(biāo):Pn={(x1,y2),(x2,y2),(x3,y3),…,(xn,yn)}。
(4)根據(jù)式(6)計(jì)算出每個(gè)信標(biāo)節(jié)點(diǎn)的加權(quán)值ωi。
(5)根據(jù)式(7)計(jì)算出未知節(jié)點(diǎn)的位置坐標(biāo)(Xe,Ye),該坐標(biāo)就是經(jīng)過自適應(yīng)校正加權(quán)質(zhì)心算法定位出的未知節(jié)點(diǎn)的坐標(biāo)。
改進(jìn)的自適應(yīng)定位算法的定位流程如圖2所示。
圖2 自適應(yīng)定位算法的節(jié)點(diǎn)定位流程圖
為了對(duì)改進(jìn)算法的有效性和可用性進(jìn)行驗(yàn)證,我們使用Matlab先后對(duì)傳統(tǒng)質(zhì)心定位算法和自適應(yīng)校正的加權(quán)質(zhì)心算法進(jìn)行仿真比較和仿真實(shí)驗(yàn),并對(duì)仿真結(jié)果進(jìn)行分析。對(duì)環(huán)境模型做如下設(shè)置:假定環(huán)境是在一個(gè)自由空間環(huán)境中進(jìn)行的,模擬環(huán)境為一個(gè)100 m×100 m的區(qū)域,按照網(wǎng)格型部署信標(biāo)節(jié)點(diǎn),未知節(jié)點(diǎn)則通過隨機(jī)的方式產(chǎn)生,分布如圖3所示。
圖3 錨節(jié)點(diǎn)分布圖
為了衡量定位算法的有效性,本文將定位誤差作為評(píng)價(jià)定位技術(shù)的首要指標(biāo)。定位誤差一般用誤差值與節(jié)點(diǎn)通信半徑的比例表示。定義為
(8)
(9)
信標(biāo)節(jié)點(diǎn)按100 m×100 m的結(jié)構(gòu)分布,未知節(jié)點(diǎn)為30個(gè),節(jié)點(diǎn)的通信半徑設(shè)為20 m,然后根據(jù)式(2)、(3)、(4)生成的RSSI數(shù)據(jù),在數(shù)據(jù)中添加均值為0,方差為7的高斯噪聲來代替實(shí)際環(huán)境中的反射、多徑和物體移動(dòng)、氣候等帶來的影響,衰減系數(shù)N取3,再通過自由空間傳播模型和對(duì)數(shù)-常態(tài)分布模型,按照上述步驟來仿真定位。對(duì)傳統(tǒng)質(zhì)心定位算法和自適應(yīng)校正的加權(quán)質(zhì)心算法反復(fù)實(shí)驗(yàn),求出平均定位誤差(見圖4、圖5)。
圖4 傳統(tǒng)質(zhì)心定位算法的定位仿真圖
圖5 自適應(yīng)加權(quán)質(zhì)心定位算法的定位仿真圖
由圖4和圖5可以看出,在錨節(jié)點(diǎn)分布均勻,錨節(jié)點(diǎn)比例較高的情況下,質(zhì)心定位算法和自適應(yīng)校正的加權(quán)質(zhì)心定位算法都能實(shí)現(xiàn)未知節(jié)點(diǎn)的自定位,但是在邊界處,由于錨節(jié)點(diǎn)只存在于未知節(jié)點(diǎn)的一側(cè),導(dǎo)致邊界處未知節(jié)點(diǎn)的定位誤差高于定位區(qū)域中間的未知節(jié)點(diǎn)。從圖6和圖7可以看出,大部分節(jié)點(diǎn)的定位精度都得到了提升。由式(8)計(jì)算出的自適應(yīng)校正加權(quán)定位算法的平均定位誤差相對(duì)于傳統(tǒng)質(zhì)心定位算法提高了10.9%。自適應(yīng)校正的加權(quán)定位算法基本上可以準(zhǔn)確地定位出定位節(jié)點(diǎn)的位置,能夠滿足傳感器網(wǎng)絡(luò)的一般應(yīng)用要求。
圖6 傳統(tǒng)質(zhì)心定位算法各未知節(jié)點(diǎn)的誤差圖
圖7 自適應(yīng)校正的加權(quán)質(zhì)心定位算法各未知節(jié)點(diǎn)的誤差圖
由圖8可以看出,隨著錨節(jié)點(diǎn)通信半徑的增大,兩種定位算法的定位精度都在減小,并且趨于穩(wěn)定。這是因?yàn)殡S著通信半徑的增大,更多的錨節(jié)點(diǎn)會(huì)參與到未知節(jié)點(diǎn)的定位過程中,以錨節(jié)點(diǎn)為頂點(diǎn)的多邊形質(zhì)心能夠更好地代替未知節(jié)點(diǎn)的位置。但是在通信半徑增大到一定值時(shí),定位誤差對(duì)通信半徑變化的影響就不太明顯了,并且通信半徑過大會(huì)造成能耗的增大,減小錨節(jié)點(diǎn)的生命周期。所以,通信半徑應(yīng)該根據(jù)當(dāng)時(shí)的應(yīng)用要求和環(huán)境來適當(dāng)選取。在相同條件下,自適應(yīng)加權(quán)定位算法的定位誤差明顯小于傳統(tǒng)質(zhì)心定位算法和加權(quán)質(zhì)心定位算法。自適應(yīng)加權(quán)質(zhì)心定位算法比加權(quán)質(zhì)心定位算法的定位誤差降低了約31.3%。
圖8 定位算法的誤差仿真圖
本文提出了自適應(yīng)加權(quán)質(zhì)心定位算法,將測距得到的RSSI值通過離未知節(jié)點(diǎn)最近的錨節(jié)點(diǎn)進(jìn)行修正,并使用Matlab軟件對(duì)該算法進(jìn)行了仿真實(shí)驗(yàn)分析。結(jié)果表明,此算法在不增加額外硬件的前提下,以增加較小的計(jì)算量為代價(jià),提高了節(jié)點(diǎn)的定位精度,可以滿足大多數(shù)無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位的需求。
參考文獻(xiàn):
[1] Tetsushi L. An Overview of the Sensor Networks[J].Transaction on Electronics,Information and Systems,2008,128(10):1498-1503.
[2] Zhang Yuan,Wu Wen-wu,Chen Yue-hui. A Range-based Localization Algorithm for Wireless Sensor Networks[J]. Journal of Communication and Networks,2005,7(4):429-437.
[3] He Qin-bin, Chen Fang-yue,Cai Shui-ming,et al. An Efficient Range-free Localization Algorithm for Wireless Sensor Networks[J].Science China Technological Sciences,2011,54(5):1053-1060.
[4] 何艷麗.無線傳感器網(wǎng)絡(luò)質(zhì)心定位算法研究[J].計(jì)算機(jī)仿真,2011,28(5):164-167,219.
[5] 張翰,劉峰.無線傳感網(wǎng)絡(luò)基于凸規(guī)劃的改進(jìn)定位算法:Convex-PIT[J].傳感技術(shù)學(xué)報(bào),2007,20(5):1129-1133.
[6] 劉影,錢志鴻,劉丹,等.基于幾何學(xué)的無線傳感器網(wǎng)絡(luò)定位算法[J].光電子激光,2010,21(10):1435-1438.
[7] 周四清,陳銳標(biāo).無線傳感網(wǎng)絡(luò),APIT定位算法及其改進(jìn)[J].計(jì)算機(jī)工程,2009,35(7):87-89.
[8] 陳維克,李文峰,首珩,等.基于RSSI的無線傳感器網(wǎng)絡(luò)加權(quán)質(zhì)心定位算法[J].武漢理工大學(xué)學(xué)報(bào),2006,30(2):265-268.
[9] 張嬋愛,馬艷艷,白鳳娥,等.基于RSSI的加權(quán)質(zhì)心定位算法的實(shí)現(xiàn)[J].太原理工大學(xué)學(xué)報(bào),2009,40(2):146-147.
[10] 任維政,徐連明,鄧中亮.基于RSSI的測距差分修正定位算法[J].傳感器學(xué)報(bào),2008,21(7):1247-1250.