陳 龍,張 可,羅配明
(1.電子科技大學(xué) 電子科學(xué)技術(shù)研究院,四川 成都611731;2.電子科技大學(xué) 自動(dòng)化工程學(xué)院,四川 成都611731)
隨著無(wú)線(xiàn)傳感器網(wǎng)絡(luò)(WSNs)研究的不斷深入,應(yīng)用化已經(jīng)逐漸成為人們關(guān)注的焦點(diǎn)。各種在特定應(yīng)用背景下的研究日漸增多,如應(yīng)用在環(huán)境監(jiān)測(cè)、目標(biāo)跟蹤、安全監(jiān)控等領(lǐng)域。位置信息對(duì)傳感器網(wǎng)絡(luò)的監(jiān)測(cè)活動(dòng)至關(guān)重要,事件發(fā)生的位置或獲取信息的節(jié)點(diǎn)位置是傳感器網(wǎng)絡(luò)節(jié)點(diǎn)監(jiān)測(cè)消息中所包含的重要信息,了解傳感器節(jié)點(diǎn)位置信息不僅可以獲取路由信息,而且可以進(jìn)行節(jié)點(diǎn)定位等等[1,2]。測(cè)距的誤差在很大程度上決定了目標(biāo)定位與跟蹤的誤差。常用的定位方法必須測(cè)量節(jié)點(diǎn)間的距離,一般測(cè)距方式有紅外線(xiàn)、GPS、超聲波和接收信號(hào)強(qiáng)度指示(received signal strength indication,RSSI)等[3]。
由于無(wú)線(xiàn)芯片具備計(jì)算接收信號(hào)強(qiáng)度的功能,因此,基于RSSI 的測(cè)距主要是通過(guò)信號(hào)強(qiáng)度推導(dǎo)發(fā)射節(jié)點(diǎn)與接收節(jié)點(diǎn)之間的距離?;赗SSI 的測(cè)距具有成本低,無(wú)需添加額外硬件的優(yōu)點(diǎn),而基于超聲的測(cè)距雖然精度高,但是需要添加其他硬件,這樣,會(huì)導(dǎo)致成本變高和尺寸變大[4],所以,WSNs 定位一般都是采用基于RSSI 測(cè)距的方法,首先對(duì)RSSI 進(jìn)行濾波處理,再建立改進(jìn)的Elman 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型得出距離值,該方法不但使得測(cè)距精度變高,而且成本也很低。
Elman 神經(jīng)網(wǎng)絡(luò)的特點(diǎn)是經(jīng)典的局部遞歸內(nèi)時(shí)延反饋型網(wǎng)絡(luò),以BP 神經(jīng)網(wǎng)絡(luò)為基礎(chǔ),通過(guò)引入反饋信號(hào)來(lái)存儲(chǔ)內(nèi)部狀態(tài),使得Elman 神經(jīng)網(wǎng)絡(luò)具有映射動(dòng)態(tài)的功能。
從圖1 可以看出:Elman 神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)組成包括:輸入層、隱含層、輸出層以及關(guān)聯(lián)層,關(guān)聯(lián)層主要負(fù)責(zé)對(duì)隱含層單元前一時(shí)刻的輸出值進(jìn)行記憶和延遲,通過(guò)關(guān)聯(lián)層的記憶、延遲作用,隱含層的輸出可以自聯(lián)到該層的輸入。
Elman 模型回歸神經(jīng)元網(wǎng)絡(luò)的隱含層輸入等于上一個(gè)時(shí)刻的隱含層狀態(tài)連同此時(shí)的網(wǎng)絡(luò)輸入,是通過(guò)聯(lián)接記憶實(shí)現(xiàn)的,起到狀態(tài)反饋的作用。該自聯(lián)方式的優(yōu)點(diǎn)是對(duì)歷史數(shù)據(jù)非常敏感,提高網(wǎng)絡(luò)本身處理動(dòng)態(tài)信息的能力是通過(guò)內(nèi)部反饋網(wǎng)絡(luò)的加入實(shí)現(xiàn)的,這樣可以動(dòng)態(tài)建模。但是,Elman 網(wǎng)絡(luò)的前饋連接雖然可以對(duì)連接權(quán)進(jìn)行修正,但是遞歸部分卻不能修正,而且,Elman 神經(jīng)網(wǎng)絡(luò)采用只有一階梯度的BP 算法進(jìn)行權(quán)值修正,因此,Elman 網(wǎng)絡(luò)學(xué)習(xí)穩(wěn)定性差、精度不高。因此,本文改進(jìn)了Elman 神經(jīng)網(wǎng)絡(luò)[5],其結(jié)構(gòu)如圖2 所示。
圖2 改進(jìn)的Elman 神經(jīng)網(wǎng)絡(luò)模型Fig 2 Improved Elman neural network model
從圖1 和圖2 中可以看出:改進(jìn)后的網(wǎng)絡(luò)模型與改進(jìn)前的不同之處是:改進(jìn)后的Elman 網(wǎng)絡(luò)在結(jié)構(gòu)單元中,增加了一個(gè)固定增益a,用于自反饋連接,a 的范圍為0 ~1 之間。因此,結(jié)構(gòu)單元在k 時(shí)刻的輸出,等于隱含層在k -1時(shí)刻的輸出加上結(jié)構(gòu)單元在k-1 時(shí)刻輸出值的a 倍,即
其中,l=1,2,…,n;xc,l(k)和 xl(k)分別為第 l 個(gè)結(jié)構(gòu)單元輸出向量和第l 個(gè)隱含層單元輸出向量,a 為自反饋連接的固定增益。
改進(jìn)后的Elman 神經(jīng)網(wǎng)絡(luò)計(jì)算公式為
改進(jìn)的Elman 神經(jīng)網(wǎng)絡(luò)的BP 學(xué)習(xí)公式為
其中,i=1,2,…,m;j=1,2,…,n;q =1,2,…,r;l =1,2,…,n。
由于結(jié)構(gòu)單元輸出向量xc,l(k)與關(guān)聯(lián)層、隱含層的權(quán)值向量之間沒(méi)有依賴(lài)關(guān)系,可得
實(shí)驗(yàn)是在空曠的廣場(chǎng)進(jìn)行。采用2 個(gè)Crossbow 公司的節(jié)點(diǎn),發(fā)射功率為0 dBm,0 號(hào)節(jié)點(diǎn)為固定節(jié)點(diǎn),用于接收數(shù)據(jù),另一個(gè)為移動(dòng)發(fā)射節(jié)點(diǎn),發(fā)射節(jié)點(diǎn)與接收節(jié)點(diǎn)均使用短狀天線(xiàn),節(jié)點(diǎn)放置高度在2 m,固定0 號(hào)節(jié)點(diǎn),移動(dòng)發(fā)射節(jié)點(diǎn)。經(jīng)過(guò)大量的實(shí)驗(yàn)對(duì)比,得出RSSI 在10 m 的范圍內(nèi)隨著距離的變化比較明顯,而10 m 之后,RSSI 值隨距離變化較小,所以,此實(shí)驗(yàn)的測(cè)試范圍限定在0 ~10 m,這樣能更好地進(jìn)行誤差對(duì)比。實(shí)驗(yàn)人員在0 ~10 m 的范圍內(nèi)移動(dòng)節(jié)點(diǎn),每間隔0.3 m 記錄RSSI 值,每個(gè)距離均接收200 個(gè)左右數(shù)據(jù)包,計(jì)算200 個(gè)RSSI 值的平均值。
由于獲取的RSSI 值與距離的關(guān)系曲線(xiàn)還不夠平滑,為了使樣本的質(zhì)量更高、訓(xùn)練效果更好,先對(duì)RSSI 值進(jìn)行濾波處理,分別進(jìn)行限幅濾波處理、遞推平均濾波處理和限幅平均濾波處理。圖3 為3 種濾波方式的效果比較。
圖3 三種濾波方式的比較Fig 3 Comparison of three filtering methods
由圖3 的結(jié)果可以得出:限幅平均濾波后,樣本的效果最好,最終以限幅濾波后的數(shù)據(jù)作為訓(xùn)練樣本。
以限幅濾波后的數(shù)據(jù)作為訓(xùn)練樣本。以RSSI 作為輸入,以距離作為輸出,一般的預(yù)測(cè)問(wèn)題都是采用單隱含層的神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn),這里也是采用單隱含層。最近時(shí)刻的距離值都是利用前面不同距離下的RSSI 值進(jìn)行訓(xùn)練,每一次收到RSSI 都修正網(wǎng)絡(luò)的權(quán)值與閾值,判斷誤差是否小于設(shè)定的誤差值,如果小于,則退出;否則,采用下一批樣本進(jìn)行訓(xùn)練,如圖4 所示為建立神經(jīng)網(wǎng)絡(luò)的流程圖。
圖4 建立神經(jīng)網(wǎng)絡(luò)的流程圖Fig 4 Flow chart of neural network set up
1)數(shù)據(jù)歸一化處理:為了方便Matlab 的計(jì)算,首先對(duì)數(shù)據(jù)的大小進(jìn)行歸一化處理,這里根據(jù)現(xiàn)有的數(shù)據(jù)情況,分別對(duì)輸入和輸出量進(jìn)行歸一化處理[6]。
2)激活函數(shù)的選擇:S 型的對(duì)數(shù)函數(shù)logsig 作為隱含層的神經(jīng)元傳遞函數(shù);如果神經(jīng)網(wǎng)絡(luò)的輸出層神經(jīng)元采用S型函數(shù)作為激活函數(shù),那么網(wǎng)絡(luò)的輸出就只在一個(gè)較小的范圍內(nèi),如果神經(jīng)網(wǎng)絡(luò)的輸出層神經(jīng)元采用線(xiàn)性函數(shù)作為激活函數(shù),那么網(wǎng)絡(luò)的輸出可以是任意值,因此,輸出層神經(jīng)元傳遞函數(shù)采用線(xiàn)性函數(shù)purelin。
3)設(shè)定網(wǎng)絡(luò)的最大學(xué)習(xí)迭代次數(shù)為2000 次。
4)設(shè)定網(wǎng)絡(luò)的學(xué)習(xí)精度為0.01。
5)最優(yōu)隱含層神經(jīng)元個(gè)數(shù)的確定:首先,采用不同的隱含層神經(jīng)元數(shù)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,可以得到不同的隱含層神經(jīng)元個(gè)數(shù)下的網(wǎng)絡(luò)誤差與網(wǎng)絡(luò)訓(xùn)練次數(shù)。經(jīng)過(guò)訓(xùn)練后,隱含層神經(jīng)元個(gè)數(shù)為8 的神經(jīng)網(wǎng)絡(luò)對(duì)函數(shù)的逼近誤差最小,網(wǎng)絡(luò)訓(xùn)練141 次達(dá)到誤差要求,因此,將網(wǎng)絡(luò)隱層神經(jīng)元數(shù)目定為8 個(gè)。
6)自反饋固定增益a 的確定:該值根據(jù)不同的訓(xùn)練情況下做出相應(yīng)的調(diào)整,在訓(xùn)練的過(guò)程中不斷修正,使得網(wǎng)絡(luò)誤差更小。通過(guò)不同的取值進(jìn)行誤差對(duì)比,得出該值為0.2時(shí),網(wǎng)絡(luò)誤差最小,因此,該值定為0.2。
采用上面建立的神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型進(jìn)行訓(xùn)練,從訓(xùn)練結(jié)果圖5 中可以看到訓(xùn)練141 次后達(dá)到0.01 的誤差要求。
圖5 訓(xùn)練結(jié)果圖Fig 5 Training results
為了驗(yàn)證該模型的可靠性,根據(jù)網(wǎng)絡(luò)訓(xùn)練的結(jié)果,把測(cè)試結(jié)果與真實(shí)值進(jìn)行對(duì)比,為了更突出該方法的優(yōu)越性,并與高斯擬合模型計(jì)算出來(lái)的距離值進(jìn)行了比較。其中,高斯模型數(shù)據(jù)處理原則為:節(jié)點(diǎn)在同一位置會(huì)收到n 個(gè)RSSI值,因此會(huì)有小概率事件發(fā)生,通過(guò)高斯模型獲取高概率發(fā)生的RSSI 值,然后計(jì)算其幾何均值。最后采用運(yùn)算式:RSSI=46 -30lg d(d 為距離值),計(jì)算出距離值。表1 為改進(jìn)的Elman 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型、高斯擬合模型與真實(shí)值的比較,圖6 為改進(jìn)的Elman 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型與高斯擬合模型的誤差對(duì)比曲線(xiàn)。
表1 預(yù)測(cè)模型、高斯擬合模型與真實(shí)值的比較Tab 1 Comparison of predictive model,Gaussian fitting model and real value
訓(xùn)練次數(shù)141 次
圖6 模型預(yù)測(cè)值與經(jīng)驗(yàn)公式值的誤差對(duì)比Fig 6 Error comparison of model predictive value and empirical formula value
由表1 和圖6 可以得出:由改進(jìn)的Elman 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型預(yù)測(cè)的距離值比高斯擬合模型計(jì)算出來(lái)的距離值,整體誤差較小。高斯擬合模型計(jì)算的距離誤差最大為2.188 8 m,最小誤差為0.522 9 m,而由改進(jìn)的Elman 神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)模型得到的距離誤差最大為0.788 6 m,最小誤差為0.022 3 m,測(cè)距的精度明顯提高了很多[7]。
改進(jìn)Elman 網(wǎng)絡(luò)的預(yù)測(cè)值與實(shí)測(cè)值擬合度更高,誤差更小,預(yù)測(cè)精度可以達(dá)到很高的要求。通過(guò)對(duì)樣本的預(yù)處理,可以提高訓(xùn)練結(jié)果的精度,因此,樣本的好壞直接影響訓(xùn)練結(jié)果。節(jié)點(diǎn)RSSI 值的隨機(jī)性較大,會(huì)隨著環(huán)境與其他干擾的影響發(fā)生突變,因此,先對(duì)RSSI 值進(jìn)行濾波處理,濾掉突變的數(shù)據(jù)再進(jìn)行網(wǎng)絡(luò)的訓(xùn)練,預(yù)測(cè)結(jié)果就能達(dá)到較理想的水平。該模型適用于樣本與預(yù)測(cè)的數(shù)據(jù)在同一環(huán)境和同樣的實(shí)驗(yàn)平臺(tái)下,在10 m 以?xún)?nèi)進(jìn)行預(yù)測(cè),可以達(dá)到很高的測(cè)距精度,從而進(jìn)行精確定位。
[1] Nieulescu D.Nath B.DV-based positioning in Ad Hoc networks[J].Journal of Telecommunication System,2003,22(1/4):267 -280.
[2] Bulusu N,Heidemann J,Estrin D.GPS-less cost outdoor localization for very small devices[J].IEEE Personal Communications,2000,7(5):28 -34.
[3] 方 震,趙 湛,郭 鵬.基于 RSSI 測(cè)距分析[J].傳感技術(shù)學(xué)報(bào),2007,20(11):2526 -2530.
[4] 詹 杰,吳伶錫,唐志軍.無(wú)線(xiàn)傳感器網(wǎng)絡(luò)RSSI 測(cè)距方法與精度分析[J].電訊技術(shù),2010,50(4):83 -87.
[5] 基于Matlab 神經(jīng)網(wǎng)絡(luò)工具箱的作物需水量預(yù)測(cè)[J].華北水利水電學(xué)院學(xué)報(bào),2009,30(1):50 -52.
[6] 劉艷文,王福豹,段滑軍,等.基于 DV-Hop 定位算法和 RSSl測(cè)距技術(shù)的定位系統(tǒng)[J].計(jì)算機(jī)應(yīng)用,2007,27(3):15 -18.
[7] 段渭軍,黃曉利,王福豹,等.無(wú)線(xiàn)傳感器網(wǎng)絡(luò)測(cè)距技術(shù)的研究[J].計(jì)算機(jī)科學(xué),2007,34(9):54 -62.