單好民,陳才學(xué)
(1.浙江郵電職業(yè)技術(shù)學(xué)院人工智能學(xué)院,浙江 紹興 312366;2.湘潭大學(xué)信息工程學(xué)院,湖南 湘潭 411105)
無(wú)線傳感網(wǎng)絡(luò)(Wireless Sensor Networks,WSNs)是由在特定區(qū)域部署的微型傳感節(jié)點(diǎn)組成的網(wǎng)絡(luò)。這些節(jié)點(diǎn)感知環(huán)境數(shù)據(jù),再將數(shù)據(jù)傳輸至匯聚節(jié)點(diǎn)。收到數(shù)據(jù)后,匯聚節(jié)點(diǎn)對(duì)數(shù)據(jù)進(jìn)行分析,進(jìn)而實(shí)現(xiàn)對(duì)環(huán)境的監(jiān)測(cè)目的。位置信息對(duì)監(jiān)測(cè)活動(dòng)至關(guān)重要。只有確定了節(jié)點(diǎn)位置,感測(cè)的數(shù)據(jù)才具有參考價(jià)值[1]。因此,定位技術(shù)成為WSNs的關(guān)鍵技術(shù)之一。
依據(jù)定位過(guò)程中是否需要測(cè)距,將現(xiàn)存的定位算法可分為基于測(cè)距定位算法和基于非測(cè)距定位算法。相比于非測(cè)距算法,基于測(cè)距定位算法精度較高。常見(jiàn)的測(cè)距算法有:接收信號(hào)強(qiáng)度指標(biāo)(Received Signal Strength Indication,RSSI)、信號(hào)到達(dá)時(shí)間(Time of Arrival,ToA)、到達(dá)角度(Angle of Arrival,AoA)等。與ToA和AoA不同,基于RSSI測(cè)距無(wú)需額外的測(cè)量設(shè)備,易實(shí)現(xiàn)。
目前,現(xiàn)存多數(shù)基于RSSI的定位算法采用降低RSSI的測(cè)距誤差提高定位精度。如文獻(xiàn)[2]提出基于卡爾曼濾波的RSSI值優(yōu)化算法。文獻(xiàn)[3]提出基于人工神經(jīng)網(wǎng)絡(luò)的RSSI值處理算法,但是該算法需要大量的RSSI數(shù)據(jù)。文獻(xiàn)[4]提出基于路徑損耗傳播模型優(yōu)化的濾波方法,通過(guò)優(yōu)化加權(quán)參數(shù),減少測(cè)距誤差。文獻(xiàn)[5]提出基于稀疏傅里葉和RSSI測(cè)距的低復(fù)雜RSSI定位算法(Spare Fourier-RSSI Positioning,SFRP)。SERP算法通過(guò)稀疏傅里葉方法篩選性能較好的錨節(jié)點(diǎn)參與定位,降低參與定位的錨節(jié)點(diǎn)個(gè)數(shù),進(jìn)而降低算法的復(fù)雜度。
近些年來(lái),隨著節(jié)點(diǎn)計(jì)算能力的提升,智能優(yōu)化算法被廣泛應(yīng)用于節(jié)點(diǎn)定位[6]。例如,文獻(xiàn)[7]提出基于雞群優(yōu)化的定位算法。利用雞群優(yōu)化算法估計(jì)節(jié)點(diǎn)的位置;文獻(xiàn)[8]提出的混沌粒子群雞群融合算法的RSSI質(zhì)心定位算法(RSSI Centroid Location algorithm Optimized by Chaos Particle Swarm Chicken Swarm Fusion Algorithm,RCCF)。RCCF算法在使用PSO算法的基礎(chǔ)上利用混沌優(yōu)化思想避免搜索過(guò)程陷入局部極小,再利用雞群算法進(jìn)一步搜索最優(yōu)解。文獻(xiàn)[9]提出基于改進(jìn)的布谷鳥(niǎo)優(yōu)化的節(jié)點(diǎn)定位算法,提高搜索節(jié)點(diǎn)位置的效率;
文獻(xiàn)[10]提出粒子群優(yōu)化的節(jié)點(diǎn)定位算法。先建立目標(biāo)函數(shù),再利用粒子群優(yōu)化算法求解目標(biāo)函數(shù),進(jìn)而獲取節(jié)點(diǎn)位置。這些啟發(fā)優(yōu)化算法將定位問(wèn)題轉(zhuǎn)化為目標(biāo)優(yōu)化問(wèn)題,再利用優(yōu)化算法求解。相比于傳統(tǒng)的定位算法,這些算法具有較高的定位性能,但是這些算法仍存在收斂速度慢問(wèn)題。
為此,提出基于RSSI高斯濾波的人工蜂群定位(RSSI Gaussian Filter-based Artificial Bee Colony Localization,RGBL)算法。該算法先建立RSSI測(cè)距模型,再利用高斯濾波對(duì)RSSI值進(jìn)行優(yōu)化處理。然后,利用人工蜂群算法搜索節(jié)點(diǎn)位置。仿真結(jié)果表明,提出的RGBL算法有效地提高了定位精度,提升算法的收斂速度。
RSSI值與信號(hào)傳播模型密切相關(guān),而不同環(huán)境下的傳播模型也不盡相同。通常,在實(shí)際環(huán)境中采用Shadowing模型:
式中:d表示收發(fā)兩端間的距離,如圖1所示。η表示路徑衰減指數(shù);χ表示附加的衰減因子[11];d0表示發(fā)送端與接收端相距1 m時(shí)的信號(hào)損耗;P(d)表示信號(hào)傳輸dm時(shí)所發(fā)生的損耗。
圖1 信號(hào)傳輸模型
依式(2)也能計(jì)算P(d):
式中:Pinit表示節(jié)點(diǎn)發(fā)射的初始信號(hào)強(qiáng)度;RSSI(d)表示在離發(fā)送端相距d時(shí),接收端所接收的信號(hào)強(qiáng)度值。
結(jié)合式(1)和式(2)可得:
式中:A表示接收端從相距1 m處所接收的信號(hào)強(qiáng)度。
在基于RSSI測(cè)距階段,錨節(jié)點(diǎn)發(fā)射信號(hào),其包含錨節(jié)點(diǎn)的ID號(hào)和位置信息;未知節(jié)點(diǎn)接收發(fā)射信號(hào)。所謂錨節(jié)點(diǎn)是指已知自身坐標(biāo)信息的節(jié)點(diǎn);未知節(jié)點(diǎn)是指需要估計(jì)位置坐標(biāo)的節(jié)點(diǎn)。
利用式(3)估計(jì)距離:
表1 不同環(huán)境下的A和η的取值
從表1可知,不同環(huán)境下的A和η值差別較大。因此,RGBL算法將在給定環(huán)境下多次測(cè)量,獲取多個(gè)RSSI值,再利用高斯濾波對(duì)RSSI值進(jìn)行處理,剔除誤差較大的RSSI值。再將剩余的低誤差的RSSI值估計(jì)距離,進(jìn)而提高定位精度。
n個(gè)節(jié)點(diǎn)隨機(jī)分布于二維(2-D)網(wǎng)絡(luò),其中錨節(jié)點(diǎn)所占的比例為a%。令θi=(xiyi)表示第i個(gè)未知節(jié)點(diǎn)的坐標(biāo);令表示第k個(gè)錨節(jié)點(diǎn)坐標(biāo)。RGBL算法主要由基于高斯濾波的RSSI測(cè)距和基于人工蜂群優(yōu)化的定位兩個(gè)階段構(gòu)成。
由表1可知,不同環(huán)境下的A和η的參數(shù)不同。目前基于RSSI測(cè)距模型常采用一些經(jīng)驗(yàn)值,如η一般取2~5。這種憑經(jīng)驗(yàn)取值,并沒(méi)有考慮真實(shí)環(huán)境。因此,RGBL算法采用實(shí)時(shí)估計(jì)A和η參數(shù)。
對(duì)于未知節(jié)點(diǎn)i,它就從周圍選擇三個(gè)錨節(jié)點(diǎn)。首先從未知節(jié)點(diǎn)i的一跳范圍內(nèi)選擇離自己最近三個(gè)錨節(jié)點(diǎn)。原因在于:離自己距離越短,依據(jù)RSSI測(cè)距的估計(jì)值越準(zhǔn)確。
若一跳范圍內(nèi)沒(méi)有三個(gè)錨節(jié)點(diǎn),就擴(kuò)大范圍,從二跳范圍內(nèi)搜索,依次類推,直到搜索到三個(gè)錨節(jié)點(diǎn)。為什么要從節(jié)點(diǎn)i的鄰近環(huán)境內(nèi)搜索?原因在于:同一個(gè)環(huán)境下A和η參數(shù)差別小。從節(jié)點(diǎn)i的鄰近環(huán)境內(nèi)選擇錨節(jié)點(diǎn),再利用這些錨節(jié)點(diǎn)已知的位置信息估計(jì)A和η參數(shù),然后所估計(jì)的參數(shù)值去定位未知節(jié)點(diǎn)i。利用這種方式,可以減少因參數(shù)不準(zhǔn)確所帶來(lái)的定位誤差[13]。
假定未知節(jié)點(diǎn)i選擇了三個(gè)錨節(jié)點(diǎn):{a1,a2,a3}。這三個(gè)錨節(jié)點(diǎn)的位置坐標(biāo)分別:,,,。然后依據(jù)式(5)計(jì)算計(jì)算錨節(jié)點(diǎn)a1離a2、a3的距離:
同時(shí),錨節(jié)點(diǎn)a1記錄從錨節(jié)點(diǎn)a2、錨節(jié)點(diǎn)a3所接收的信號(hào)強(qiáng)度值(RSSI1,2,RSSI1,3)。再求解式(6)便可估計(jì)參數(shù)A和η:
即使在特定的環(huán)境下,未知節(jié)點(diǎn)所接收的RSSI值容易受環(huán)境變化,易產(chǎn)生較大誤差的RSSI值。為此,在定位之前,先利用高斯濾波對(duì)所接收的RSSI值進(jìn)行處理,剔除誤差大的RSSI值,保留誤差低的值。
在特定環(huán)境下同一對(duì)收/發(fā)兩端進(jìn)行多次測(cè)量,多次測(cè)量所獲取的RSSI值服從高斯分布(μ,σ2)。第j次接收的RSSI值(RSSIj)的概率密度函數(shù)[14]:
依據(jù)文獻(xiàn)[15],RSSIj值落入在區(qū)間(μ-σ,μ+σ)內(nèi)的概率為:
因此,將未落入在區(qū)間內(nèi)的RSSI值剔除,保留下的RSSI值用于測(cè)距。為此,設(shè)定一個(gè)二值變量bj。若RSSIj的概率Pj不小于0.682 6,則bj=1,否則為零:
再將m次測(cè)量的均值作為最后的RSSI值:
相比于粒子群等傳統(tǒng)的優(yōu)化算法,人工蜂群算法的全局尋優(yōu)能力更好。為此,RGBL算法將人工蜂群算法求解節(jié)點(diǎn)位置。在基于人工蜂群算法中,將未知節(jié)點(diǎn)作為未知蜜源;有效蜜源的位置就是未知節(jié)點(diǎn)位置的估計(jì)值[16]。人工蜂群算法中有三類蜂蜜:引領(lǐng)蜂,跟隨蜂和偵查蜂。
表2給出這三者之間的關(guān)系以及應(yīng)用于定位系統(tǒng)中與節(jié)點(diǎn)間的關(guān)系[11]。
表2 人工蜂群算法與節(jié)點(diǎn)定位系統(tǒng)間對(duì)應(yīng)關(guān)系
2.3.1 基于測(cè)距誤差的目標(biāo)函數(shù)
先將未知節(jié)點(diǎn)的定位問(wèn)題轉(zhuǎn)化為非線性方程組的求解問(wèn)題,即建立目標(biāo)函數(shù)。RGBL算法屬分布式算法,每個(gè)未知節(jié)點(diǎn)獨(dú)立運(yùn)行算法。因此,每個(gè)未知節(jié)點(diǎn)構(gòu)建一個(gè)目標(biāo)函數(shù)。
令f(xi,yi)表示未知節(jié)點(diǎn)i的目標(biāo)函數(shù),其定義如式(11)所示:
式中:Na表示與未知節(jié)點(diǎn)i相關(guān)聯(lián)的錨節(jié)點(diǎn)數(shù);表示通過(guò)式(4)所估計(jì)的未知節(jié)點(diǎn)i與錨節(jié)點(diǎn)k間的距離。
2.3.2 基于人工蜂群算法的目標(biāo)函數(shù)求解
首先,初始化蜜蜂位置:
式中:i=1,2,…,M,其中M表示蜜蜂數(shù)量;j表示搜索空間的維數(shù);Xmax,j,Xmin,j分別表示蜜蜂位置的上、下限。
第二步,引領(lǐng)蜂依據(jù)式(13)進(jìn)行領(lǐng)域搜索,搜索最優(yōu)位置:
式中:t表示當(dāng)前迭代的次數(shù);k表示不同于i的蜜源。
第三步,依據(jù)式(14)計(jì)算花粉量Ei,即將更新前/后的解進(jìn)行對(duì)比。若更新后的Ei大于更新前的值,就對(duì)解進(jìn)行更新,否則保留原解:
式中:fi表示蜜源i的目標(biāo)函數(shù)值。即將Xi,j代入式(11)所得到的f(xi,yi)值。
第四步,其他蜜蜂以式(15)計(jì)算跟隨引領(lǐng)蜂的概率[13]:
第五步,如果位于某一位置的蜜蜂搜索次數(shù)達(dá)到最大迭代次數(shù),式(13)所計(jì)算的值仍沒(méi)有變化,在這種情況下,引領(lǐng)蜂就拋棄此蜜源,并轉(zhuǎn)化為偵查蜂,并依式(21)開(kāi)發(fā)新的蜜源?;谌斯し淙核惴ㄇ蠼饽繕?biāo)函數(shù)的流程如圖2所示。
圖2 基于人工蜂群算法求解目標(biāo)函數(shù)的流程
利用MATLAB軟件建立仿真平臺(tái),并分析實(shí)驗(yàn)數(shù)據(jù)。在100 m×100 m區(qū)域內(nèi)部署100~200個(gè)未知節(jié)點(diǎn)(n=100~200),錨節(jié)點(diǎn)數(shù)15至45個(gè)。所有節(jié)點(diǎn)的通信半徑在20 m~45 m變化。具體的仿真參數(shù)如表3所示。
表3 仿真參數(shù)
此外,選擇-SFRP算法和RCCF算法,并分析它們的歸一化定位誤差性能:
首先,分析錨節(jié)點(diǎn)數(shù)對(duì)歸一化定位誤差的影響,如圖3所示。實(shí)驗(yàn)參數(shù):150個(gè)未知節(jié)點(diǎn)數(shù),節(jié)點(diǎn)通信半徑為35 m;錨節(jié)點(diǎn)數(shù)從15個(gè)至45變化,步長(zhǎng)為5。
從圖3可知,錨節(jié)點(diǎn)數(shù)的增加降低了節(jié)點(diǎn)的歸一化定位誤差。在錨節(jié)點(diǎn)數(shù)小于25時(shí),錨節(jié)點(diǎn)數(shù)的增加,有效地提高了定位精度。原因在于:錨節(jié)點(diǎn)數(shù)越多,未知節(jié)點(diǎn)收到的定位信息越多,定位精度就越高。但當(dāng)錨節(jié)點(diǎn)數(shù)增加到一定量后(大于30),錨節(jié)點(diǎn)數(shù)的增加并不能有效地降低歸一化定位誤差。此外,相比于SFRP和RCCF算法,提出的RGBL算法的定位精度提高了約8.94%和4.75%。
圖3 錨節(jié)點(diǎn)數(shù)對(duì)歸一化平均定位誤差的影響
接下來(lái),分析通信半徑對(duì)歸一化定位誤差的影響,如圖4所示。實(shí)驗(yàn)參數(shù):150個(gè)未知節(jié)點(diǎn)數(shù),30個(gè)錨節(jié)點(diǎn)數(shù),節(jié)點(diǎn)通信半徑從20 m~45 m變化,步長(zhǎng)為5。
圖4 通信半徑對(duì)歸一化平均定位誤差的影響
從圖4可知,歸一化平均定位誤差隨通信半徑的增加而下降。原因在于:通信半徑越大,節(jié)點(diǎn)的一跳通信范圍越大,測(cè)距誤差越小。定位精度越高。此外,相比于SFRP算法和RCCF算法,RGBL算法提升了定位精度,歸一化平均定位誤差分別降低7.86%和3.23%。
本次實(shí)驗(yàn)分析未知節(jié)點(diǎn)數(shù)對(duì)定位精度的影響,如圖5所示。實(shí)驗(yàn)參數(shù):通信半徑為35 m,未知節(jié)點(diǎn)數(shù)從100至200個(gè)變化,錨節(jié)點(diǎn)數(shù)為未知節(jié)點(diǎn)數(shù)的20%。例如,未知節(jié)點(diǎn)為200個(gè)時(shí),錨節(jié)點(diǎn)數(shù)就為40個(gè)。
圖5 未知節(jié)點(diǎn)數(shù)對(duì)歸一化平均定位誤差的影響
從圖5可知,歸一化平均定位誤差隨節(jié)點(diǎn)數(shù)的增加而下降。原因在于:節(jié)點(diǎn)數(shù)越多,網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)分布可能越均勻,網(wǎng)絡(luò)連通性越好。由于錨節(jié)點(diǎn)數(shù)的增加也隨之增加,錨節(jié)點(diǎn)數(shù)的增加也有利于定位精度的提升(如圖5所示)。此外,相比于SFRP算法和RCCF算法,RGBL算法在歸一化平均定位誤差方面仍保有明顯的優(yōu)勢(shì)。
本次實(shí)驗(yàn)分析RGBL算法、SFRP和RCCF算法的收斂速度。實(shí)驗(yàn)參數(shù):未知節(jié)點(diǎn)150,錨節(jié)點(diǎn)30個(gè),節(jié)點(diǎn)通信半徑為30m。最大的迭代次數(shù)為100次。
圖6給出迭代次數(shù)從1至100變化條件下,RGBL算法、SFRP和RCCF算法的定位誤差。從圖6可知,RGBL算法在迭代到約11次時(shí),定位誤差值就達(dá)到了收斂。而RCCF算法在迭到約14次,定位誤差達(dá)到收斂。人工蜂群算法在整個(gè)尋優(yōu)過(guò)程中,引領(lǐng)蜂用于局部開(kāi)發(fā),跟隨峰用于儲(chǔ)存解,偵查蜂用于全局搜索,提高了收斂速度。
圖6 迭代次數(shù)與定位精度的關(guān)系
針對(duì)基于RSSI測(cè)距所導(dǎo)致的定位誤差問(wèn)題,提出基于RSSI高斯濾波的人工蜂群定位RGBL算法。RGBL算法結(jié)合了高斯濾波和人工蜂群算法。利用高斯濾波算法剔除誤差較大的RSSI值保留精度較高的RSSI值;利用人工蜂群算法的快速搜索性能,搜索目標(biāo)函數(shù)的解,進(jìn)而實(shí)現(xiàn)對(duì)未知節(jié)點(diǎn)的定位。
仿真結(jié)果表明,相比于同類的定位算法,提出的RGBL算法減少了定位誤差,提升算法的收斂速度。本次仿真考慮的仿真場(chǎng)景較簡(jiǎn)單,而在實(shí)際的地理環(huán)境中,RSSI信號(hào)受多個(gè)環(huán)境因素影響。后期,將研究如何在復(fù)雜環(huán)境提高基于RSSI測(cè)距精度。這將是后期的研究工作。