魯華棟 馬世歡
(河南工業(yè)職業(yè)技術(shù)學(xué)院電子信息工程系 南陽(yáng) 473000)
無(wú)線傳感器網(wǎng)絡(luò)是多種技術(shù)的融合,主要包括物理、無(wú)線、通信等技術(shù),由許多廉價(jià)、具有感知功能的節(jié)點(diǎn)組成,這些節(jié)點(diǎn)通過(guò)單跳或者多跳的方式進(jìn)行通信,在軍事、醫(yī)療、環(huán)境、工業(yè)等領(lǐng)域具有重要實(shí)際應(yīng)用價(jià)值[1~3]。在無(wú)線傳感器網(wǎng)絡(luò)的實(shí)際中,節(jié)點(diǎn)位置信息十分關(guān)鍵,因此節(jié)點(diǎn)定位研究成為當(dāng)前一個(gè)重要課題[4]。
根據(jù)有無(wú)距離測(cè)量,當(dāng)前主要有兩類節(jié)點(diǎn)定位模型:基于測(cè)距的節(jié)點(diǎn)定位模型和非測(cè)距的節(jié)點(diǎn)定位模型[5],基于測(cè)距的節(jié)點(diǎn)定位模型首先對(duì)節(jié)點(diǎn)之間的距離進(jìn)行測(cè)量,節(jié)點(diǎn)定位精度高[6],但由于要進(jìn)行節(jié)點(diǎn)之間距離的測(cè)量,節(jié)點(diǎn)定位過(guò)程比較復(fù)雜,無(wú)線傳感器網(wǎng)絡(luò)的定位成本高,實(shí)際應(yīng)用范圍窄[7]。基于非測(cè)距的節(jié)點(diǎn)定位模型不要測(cè)量節(jié)點(diǎn)之間的距離,節(jié)點(diǎn)定位過(guò)程簡(jiǎn)單,但定位精度低,是當(dāng)前主要的無(wú)線傳感器定位模型[8]。基于非測(cè)距的節(jié)點(diǎn)定位模型常采用錨節(jié)點(diǎn)和待定位節(jié)點(diǎn)之間的關(guān)系進(jìn)行節(jié)點(diǎn)位置估計(jì)。節(jié)點(diǎn)采用隨機(jī)方式進(jìn)行部署,在初始階段每一個(gè)節(jié)點(diǎn)位置信息很難確定,主要通過(guò)GPS系統(tǒng)對(duì)節(jié)點(diǎn)位置進(jìn)行確定,但每一個(gè)節(jié)點(diǎn)安裝一個(gè)GPS系統(tǒng),定位成本高,而且在室內(nèi)環(huán)境中,GPS無(wú)法正常開展工作,因此常采用一些算法實(shí)現(xiàn)節(jié)點(diǎn)自身的定位[9]。通常情況下,隨機(jī)部署一些錨節(jié)點(diǎn),錨節(jié)點(diǎn)的位置已經(jīng)知道,對(duì)于待定位節(jié)點(diǎn),通過(guò)測(cè)量其與錨節(jié)點(diǎn)之間的距離,得到它們的位置關(guān)系,然后采用三邊定位算法或者最小二乘算法實(shí)現(xiàn)節(jié)點(diǎn)位置信息的估計(jì)[10]。但當(dāng)錨節(jié)點(diǎn)數(shù)過(guò)少時(shí),很難實(shí)現(xiàn)節(jié)點(diǎn)精確定位。為此有學(xué)者提出了基于神經(jīng)網(wǎng)絡(luò)的傳感器節(jié)點(diǎn)定位模型,但神經(jīng)網(wǎng)絡(luò)自身存在一定的不足,影響傳感器節(jié)點(diǎn)的定位效果[11]。
為了提高無(wú)線傳感器節(jié)點(diǎn)的定位精度,提出了改進(jìn)神經(jīng)網(wǎng)絡(luò)的無(wú)線傳感器節(jié)點(diǎn)定位模型,并通過(guò)仿真實(shí)驗(yàn)測(cè)試模型的性能,結(jié)果表明,改進(jìn)神經(jīng)網(wǎng)絡(luò)不僅提高了傳感器節(jié)點(diǎn)定位的精度,而且傳感器節(jié)點(diǎn)定位的實(shí)時(shí)性較好。
BP神經(jīng)網(wǎng)絡(luò)是一種具有誤差反饋的神經(jīng)網(wǎng)絡(luò)的,通常為3層,那么基本結(jié)構(gòu)如圖1所示,隱含層采用Sigmoid函數(shù)。

圖1 神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)
神經(jīng)網(wǎng)絡(luò)輸入層的輸出可以表示:

隱含層節(jié)點(diǎn)的輸入和輸出計(jì)算公式為

神經(jīng)網(wǎng)絡(luò)輸出層節(jié)點(diǎn)的輸入和輸出計(jì)算公式為

式中,wij和為wli分別表示隱含層和輸出層的權(quán)值。
設(shè)神經(jīng)網(wǎng)絡(luò)的輸出層的誤差為

采和梯度下降算法對(duì)權(quán)值進(jìn)行不斷的調(diào)整權(quán)值,使輸出誤差E(k)朝更小的方向進(jìn)行搜索,并引入一個(gè)加快搜索速度的的慣性項(xiàng)。li

式中,η表示學(xué)習(xí)速率;α表示慣性系數(shù)。


輸出層權(quán)值的學(xué)習(xí)算法為

那么同樣可以知道,隱含層權(quán)值的學(xué)習(xí)算法為

粒子群算法通過(guò)粒子間的協(xié)作和信息共享尋找問(wèn)題的最優(yōu)解,粒子代表問(wèn)題的一個(gè)可行解,每一個(gè)粒子均包括位置、速度,同時(shí)采用適應(yīng)度值描述其好壞。設(shè)在L維的搜索空間中,有m個(gè)粒子的粒子群位置向量為Z=( Z1,Z2,…,Zm),第i個(gè)粒子位置可以表示Zi=( zi1,zi2,…,ziL),其速度為Vi=( vi1,vi2,…,viL),粒子和粒子群的個(gè)體極值分別為Pbesti=( Pi1,Pi2,…,PiL)和Gbest=(G1,G2,…,GL),通過(guò)跟蹤它們的值更新粒子速度和位置,具體為

式中,iter為當(dāng)前迭代次數(shù);c1和c2為加速度因子;r1和r2是隨機(jī)數(shù)。
設(shè)一個(gè)二維空間中,共有n個(gè)傳感器節(jié)點(diǎn),它們通信能力相同,采用隨機(jī)方式進(jìn)行部署,共有k個(gè)錨節(jié)點(diǎn),這些錨節(jié)點(diǎn)的位置信息通過(guò)GPS系統(tǒng)已經(jīng)知道,相鄰傳感器節(jié)點(diǎn)可以通過(guò)單跳方式進(jìn)行直接通信,而不相鄰傳感器節(jié)點(diǎn)可以通過(guò)多跳方式進(jìn)行間接通信,統(tǒng)計(jì)每一個(gè)節(jié)點(diǎn)與錨節(jié)點(diǎn)之間的最小跳數(shù),設(shè)節(jié)點(diǎn)i和錨節(jié)點(diǎn)的最小跳數(shù)為g(si,sj),那么節(jié)點(diǎn)i與全部錨節(jié)點(diǎn)的最小跳數(shù)組成的向量為

設(shè)3個(gè)錨節(jié)點(diǎn)A、B和C的位置為(xA,yA)、(xB,yB)、(xC,yC),待定位節(jié)點(diǎn)D位置為(x,y),(x,y)與3個(gè)錨節(jié)點(diǎn)間的距離分別為dAD、dBD、dCD,那么D位置的計(jì)算公式為

從式(16)可以看出,要得到高精度的節(jié)點(diǎn)D位置信息,其與錨節(jié)點(diǎn)之間的距離十分關(guān)鍵。當(dāng)前距離測(cè)量一般采用信號(hào)達(dá)到時(shí)間差實(shí)現(xiàn),設(shè)兩個(gè)節(jié)點(diǎn)的信號(hào)傳播速度分別為v1和v2,它們達(dá)到的時(shí)間分別為t1和t2,那么節(jié)點(diǎn)之間的距離計(jì)算公式為

式中,p(d)表示信號(hào)衰減,其定義如下:

式中,α表示路徑衰減因子。
設(shè)b=[ p(d1),p(d2),…,p(dn)],X=[ p(d0),α,xξ],xξ表示置信系數(shù),那么可以建立如下方程:

通過(guò)BP神經(jīng)網(wǎng)絡(luò)對(duì)式(19)進(jìn)行求解,確定距離測(cè)量值、誤差方差、位置信息之間的關(guān)系,并通過(guò)粒子群算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的權(quán)值。基于改進(jìn)神經(jīng)網(wǎng)絡(luò)的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位模型工作步驟如下。
Step1:確定錨節(jié)點(diǎn)的位置信息,每一個(gè)錨節(jié)點(diǎn)廣播自身位置信息。
Step2:待定位節(jié)點(diǎn)接收錨節(jié)點(diǎn)的位置信息,并計(jì)算它們之間的最小跳數(shù)。
Step3:采用所有位置信息構(gòu)建BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練樣本。
Step4:初始化神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)以及相關(guān)參數(shù)。
Step5:采用粒子群優(yōu)化算法對(duì)BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值進(jìn)行確定。
Step6:采用BP神經(jīng)網(wǎng)絡(luò)對(duì)傳感器節(jié)點(diǎn)定位訓(xùn)練樣本進(jìn)行學(xué)習(xí),并計(jì)算輸出層的誤差。
Step7:如果誤差沒有達(dá)到實(shí)際要求,返回Step5繼續(xù)學(xué)習(xí)。
Step8:建立最優(yōu)的無(wú)線傳感器節(jié)點(diǎn)定位模型。
傳感器節(jié)點(diǎn)定位模型的結(jié)構(gòu)如圖2所示。

圖2 無(wú)線傳感器節(jié)點(diǎn)定位模型的結(jié)構(gòu)
為了分析改進(jìn)神經(jīng)網(wǎng)絡(luò)的無(wú)線傳感器節(jié)點(diǎn)定位性能,選擇文獻(xiàn)[12]的傳感器節(jié)點(diǎn)定位模型進(jìn)行對(duì)比實(shí)驗(yàn)。將100個(gè)傳感器節(jié)點(diǎn)隨機(jī)部署于100m×100m的空間中,錨節(jié)點(diǎn)數(shù)量為20個(gè),采用傳感器節(jié)點(diǎn)定位誤差對(duì)定位結(jié)果進(jìn)行評(píng)價(jià)。
兩種無(wú)線傳感器節(jié)點(diǎn)定位模型的定位誤差變化如圖3所示。對(duì)圖3的實(shí)驗(yàn)結(jié)果進(jìn)行分析可以發(fā)現(xiàn),本文模型的無(wú)線傳感器節(jié)點(diǎn)定位誤差小,而且變化范圍很小,說(shuō)明傳感器節(jié)點(diǎn)定位結(jié)果可靠,而對(duì)比模型的傳感器節(jié)點(diǎn)定位誤差大,波動(dòng)十分劇烈,無(wú)法有效實(shí)現(xiàn)傳感器節(jié)點(diǎn)的定位,本文模型的傳感器節(jié)點(diǎn)定位結(jié)果具有明顯的優(yōu)越性。
錨節(jié)點(diǎn)數(shù)量與定位誤差之間的變化關(guān)系如圖4所示,從圖4可知,錨節(jié)點(diǎn)數(shù)量越多,傳感器節(jié)點(diǎn)的定位誤差越小,這是由于錨節(jié)點(diǎn)越多,可以更加準(zhǔn)確地對(duì)定位節(jié)點(diǎn)的信息進(jìn)行采集,而在相同錨節(jié)節(jié)點(diǎn)數(shù)量下,本文模型通過(guò)改進(jìn)神經(jīng)網(wǎng)絡(luò)對(duì)模型參數(shù)進(jìn)行擬合,傳感器節(jié)點(diǎn)定位性能更優(yōu),說(shuō)明傳感器節(jié)點(diǎn)定位成本越低,在無(wú)線感器網(wǎng)絡(luò)的實(shí)際應(yīng)用價(jià)值越高。

圖4 定位誤差與錨節(jié)點(diǎn)之間的變化關(guān)系
節(jié)點(diǎn)定位是無(wú)線傳感器應(yīng)用中最為關(guān)鍵的技術(shù)之一,在分析當(dāng)前無(wú)線傳感器節(jié)點(diǎn)定位模型基礎(chǔ)上,提出改進(jìn)神經(jīng)網(wǎng)絡(luò)的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位模型,通過(guò)神經(jīng)網(wǎng)絡(luò)對(duì)模型參數(shù)進(jìn)行擬合,并采用粒子群算法優(yōu)化對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,仿真測(cè)試結(jié)果表明,改進(jìn)神經(jīng)網(wǎng)絡(luò)可以對(duì)誤差進(jìn)行精確擬合,建立了更優(yōu)的無(wú)線傳感器節(jié)點(diǎn)定位模型,獲得高精度的傳感器節(jié)點(diǎn)定位結(jié)果,而且沒有降低無(wú)線傳感器節(jié)點(diǎn)的定位速度,能夠滿足實(shí)時(shí)性要求,傳感器節(jié)點(diǎn)定位結(jié)果可靠。