張建業(yè),曾凡偉,李正剛,段勇強,鐘建偉,廖紅華
(1.國網(wǎng)湖北省電力有限公司恩施供電公司,湖北 恩施 445000;2.湖北民族大學(xué) 信息工程學(xué)院,湖北 恩施 445000)
無線傳感器網(wǎng)絡(luò)由大量具有信息采集、數(shù)據(jù)處理和無線通信功能的傳感器節(jié)點組成,具有強大的自組網(wǎng)能力,已廣泛應(yīng)用于軍民領(lǐng)域,具有巨大的發(fā)展?jié)摿蛻?yīng)用前景。
目前,許多國內(nèi)外的科研專家和學(xué)者對無線傳感器網(wǎng)絡(luò)中的定位算法進行了大量深入的研究。其中,郭金銘等對基于RSSI的定位算法進行了改進,一方面對RSSI值進行均值濾波,得到優(yōu)化值,并利用極大似然估計法來計算未知節(jié)點的位置;蔡曉宇等則采用卡爾曼濾波處理RSSI值,一定程度上克服了部分環(huán)境的干擾,提高了定位精度;張溪等為提高無線傳感器網(wǎng)絡(luò)中DV-Hop算法的定位精度,提出基于距離優(yōu)化和改進粒子群的DV-Hop定位算法,利用單跳平均誤差修正平均跳距,接收多錨節(jié)點的平均跳距估算節(jié)點間距離,使估算距離得以優(yōu)化;譚志等對RSSI值進行了中位數(shù)加權(quán)處理,降低了定位誤差,提高了定位精度;胡洋等在無源信號的定位過程中,提出了一種針對無源信號RSSI定位的最大似然估計優(yōu)化算法,大大提高了精確度和測量的時效性;于耕等從集中式定位算法和分布式定位算法兩個方面討論了典型的節(jié)點定位算法,并對無線傳感器網(wǎng)絡(luò)中的定位技術(shù)提出了改進意見。
本文提出了一種基于RSSI的智能開關(guān)節(jié)點測距定位算法,選擇TI公司出品的CC2530組建無線傳感器網(wǎng)絡(luò),實現(xiàn)智能開關(guān)控制,著重討論環(huán)境因子對智能開關(guān)節(jié)點測距結(jié)果的影響,并對其進行優(yōu)化,分析影響RSSI值的因素,并通過對實驗測試所得數(shù)據(jù)的處理來驗證優(yōu)化后的RSSI智能開關(guān)節(jié)點測距定位算法的高精度特性。
基于RSSI的三點測距定位技術(shù)是在已知3個錨節(jié)點的具體位置和未知節(jié)點與這3個點的RSSI值的基礎(chǔ)上,借助衰減模型計算距離。通常情況下,無線信號在媒介中傳輸時,其信號強度會跟隨傳輸距離的延伸而逐漸變小,超過通信范圍便會失效,因此只能在實際通信半徑中傳輸。利用這一原理,可先根據(jù)經(jīng)驗建立衰減模型,將信號強度的衰減值轉(zhuǎn)化為信號的傳播距離,在得出節(jié)點間的RSSI值后,計算此處與發(fā)射節(jié)點的距離。文中建立衰減模型時,采用更實用、更精確的陰影模型。該模型的原理如下:
式中:RSSI代表信號強度值;為收發(fā)節(jié)點的間距;為衰減因子,與環(huán)境有關(guān);為節(jié)點間距1 m時接收到的RSSI值。和直接決定了RSSI和節(jié)點間距的關(guān)系。由式(1)可以得出與RSSI值的正向關(guān)系:
利用式(2)將RSSI值轉(zhuǎn)換為距離。式中:為距離,單位為cm;RSSI為信號強度值,為負(fù)數(shù);為距離錨節(jié)點1 m時RSSI值的絕對值,為常值;為環(huán)境衰減因子,其最佳范圍為3.2~4.5。
3個圓兩兩相交,必然交于一個點,該點坐標(biāo)即為所需定位的未知點,如圖1所示。
圖1 三圓兩兩相交圖
基于CC2530的智能開關(guān)節(jié)點測距模塊包含CC2530核心板和底板兩部分。CC2530核心板主要包括CPU和存儲器、時鐘和電源、外圍設(shè)備、無線模塊等。底板包括傳感器接口、鍵控復(fù)位、USB轉(zhuǎn)串口、智能開關(guān)控制模塊等。各模塊分工合作,實現(xiàn)無線傳感節(jié)點的組網(wǎng)、定位以及智能開關(guān)控制。基于CC2530的智能開關(guān)節(jié)點原理結(jié)構(gòu)如圖2所示。
圖2 基于CC2530的智能開關(guān)節(jié)點原理結(jié)構(gòu)
利用MATLAB軟件對RSSI算法進行仿真。仿真分析時,節(jié)點總數(shù)選為300個,其中60個為錨節(jié)點,240個為未知節(jié)點,經(jīng)仿真得到節(jié)點分布圖如圖3所示。
圖3 節(jié)點分布圖
圖3中,錨節(jié)點和未知節(jié)點分別用“*”“o”表示。所有節(jié)點隨機分布在邊長1 000的正方形測試區(qū)域內(nèi),由于高密分布性,少數(shù)節(jié)點可能有重疊。
仿真得到的鄰居關(guān)系圖如圖4所示。鄰居關(guān)系圖反映了節(jié)點關(guān)系的復(fù)雜度與節(jié)點的數(shù)量呈正向關(guān)系,節(jié)點數(shù)量越多,其鄰居關(guān)系圖越龐大、越復(fù)雜。
圖4 鄰居關(guān)系圖
仿真得到的定位誤差圖如圖5所示。
圖5 定位誤差圖
仿真分析時,錨節(jié)點通信半徑設(shè)為200 m,仿真運行后可得到該網(wǎng)絡(luò)的平均連通度為31.95,任意未知節(jié)點的周圍錨節(jié)點個數(shù)平均有6個。在所有的240個未知節(jié)點中,不能定位的節(jié)點數(shù)目有13個,占未知節(jié)點總數(shù)的5%,系統(tǒng)所顯示的定位誤差為1.82×10。當(dāng)錨節(jié)點由60個變到30個,且總節(jié)點數(shù)保持不變時,發(fā)現(xiàn)未知節(jié)點的個數(shù)明顯增多,很多節(jié)點之間有嚴(yán)重的信號干擾,這對于無線傳感器網(wǎng)絡(luò)的信號傳輸極其不利,可能會產(chǎn)生較大的定位誤差。因此,需在一定成本范圍內(nèi)酌情分配錨節(jié)點的個數(shù),使整體定位效果更佳。
測試前,在節(jié)點相距1 m時讀取RSSI值。RSSI=-35時,可得=-35。假設(shè)環(huán)境因素=3.5,并測試RSSI值從-37至-70范圍內(nèi)變化的實測距離值。經(jīng)測試,得到=3.5時的實測距離與理論距離,見表1所列。
表1 n=3.5時的實測距離與理論距離
由于測試環(huán)境的復(fù)雜性,采用最小二乘法對環(huán)境因子進行均值優(yōu)化,在值不變的前提下,優(yōu)化后的環(huán)境衰減因子為4,并測試RSSI值從-57到-90范圍內(nèi)變化的實測距離值,經(jīng)測試,得到=4時的實測距離與理論距離,見表2所列。
表2 n=4時的實測距離與理論距離
通過比較表1與表2的誤差率,可以看出優(yōu)化后的測量精度明顯提高,證明了該方法的切實可行性。同時,還可以看出:當(dāng)理論距離越大時,誤差率呈現(xiàn)逐漸增加的趨勢,環(huán)境因子優(yōu)化后的誤差率明顯下降。
本文基于MATLAB軟件和CC2530節(jié)點自組網(wǎng)技術(shù)對基于RSSI算法的智能開關(guān)節(jié)點測距定位算法進行了仿真和實驗測試,著重討論了環(huán)境因子對智能開關(guān)節(jié)點測距結(jié)果的影響,并通過實驗測試驗證了環(huán)境因子優(yōu)化后的誤差率明顯下降,能滿足智能開關(guān)節(jié)點測距定位算法的高精度特性。但硬件測試易受天氣影響,如何克服這一不利因素,將是今后繼續(xù)深入研究的方向。