張志存 劉克中 馬 杰 曾旭明 陳默子
(武漢理工大學(xué)航運(yùn)學(xué)院1) 武漢 430063) (內(nèi)河航運(yùn)技術(shù)湖北省重點(diǎn)實(shí)驗(yàn)室2) 武漢 430063)
WIFI信號(hào)在船舶中受鋼鐵環(huán)境的影響,信號(hào)強(qiáng)度較差,船載環(huán)境室內(nèi)定位的主要手段是基于無(wú)線傳感網(wǎng)絡(luò)[1].
目前無(wú)線傳感器網(wǎng)絡(luò)室內(nèi)定位方法分為基于測(cè)距的(range-based)定位方法和基于非測(cè)距的(range-free)定位方法[2].前者通過(guò)測(cè)量收發(fā)節(jié)點(diǎn)間的實(shí)際距離或方位進(jìn)行定位,如基于到達(dá)時(shí)間(TOA)算法、基于接收信號(hào)強(qiáng)度指示(RSSI)算法和基于到達(dá)角度(AOA)算法[3].后者不需要直接計(jì)算節(jié)點(diǎn)間的實(shí)際距離,僅通過(guò)網(wǎng)絡(luò)連通性或信號(hào)強(qiáng)度大小等信息完成定位,如質(zhì)心算法(Centroid)、近似三角形內(nèi)點(diǎn)測(cè)試法(APIT)、距離矢量算法(DV-Hop)等[4].基于測(cè)距的算法是通過(guò)增加傳感器成本來(lái)提高定位精度,后者雖在功耗上有一定的減小,但是定位結(jié)果誤差較大.
基于序列的定位方法(sequence-based localization,SBL)是一種綜合測(cè)距和非測(cè)距的定位方法[5].該方法利用錨節(jié)點(diǎn)間連線的垂直平分線將定位區(qū)域分割成不同的子區(qū)域,定位節(jié)點(diǎn)則通過(guò)計(jì)算與子區(qū)域的相似度來(lái)確定估計(jì)位置[6].該算法無(wú)需利用RSSI值得到具體的距離,只需用來(lái)確定定位節(jié)點(diǎn)的階次序列,故RSSI值的固有誤差對(duì)SBL算法影響相對(duì)較小,對(duì)無(wú)線信道的多徑干擾和遮蔽效應(yīng)產(chǎn)生的隨機(jī)誤差具有較好的魯棒性,且通信開(kāi)銷(xiāo)小,定位精度較高,因此SBL算法在室內(nèi)定位中得到廣泛應(yīng)用.針對(duì)SBL算法中存在的邊緣位置定位誤差較大的問(wèn)題,文獻(xiàn)[7]提出一種三垂心法和SBL算法結(jié)合的改進(jìn)算法(SCL),選擇3個(gè)相關(guān)度最大的子區(qū)域質(zhì)心構(gòu)成的三角形的重心作為定位節(jié)點(diǎn)估計(jì)位置.文獻(xiàn)[8]基于N-最優(yōu)階次序列的定位方法,選擇相關(guān)度位于前N位的階次序列所表示的子區(qū)域,并進(jìn)行加權(quán)定位,以此提高了定位精度.文獻(xiàn)[9]基于參考點(diǎn)序列的WSN定位方法,使用Voronoi圖原理和錨節(jié)點(diǎn)部署對(duì)定位區(qū)域進(jìn)行劃分,并建立序列等級(jí),然后使用質(zhì)心算法計(jì)算目標(biāo)節(jié)點(diǎn)估計(jì)位置.韓睿松等[10]提出了一種SBL與APIT混合定位算法,通過(guò)對(duì)重疊三角形區(qū)域進(jìn)行劃分,進(jìn)一步減小重疊區(qū)域面積,提高了邊緣區(qū)域的定位精度.
然而船舶環(huán)境中船體的鋼鐵結(jié)構(gòu)、艙室的空間形態(tài)和船舶運(yùn)動(dòng)狀態(tài)等方面與陸地的室內(nèi)環(huán)境有明顯的差異[11],導(dǎo)致無(wú)線信號(hào)受到嚴(yán)重的反射和多徑效應(yīng)[12],使SBL算法中定位節(jié)點(diǎn)的位置序列出現(xiàn)較大的誤差,導(dǎo)致定位精度的急劇下降.文中提出一種基于分級(jí)序列的定位方法(hierarchical sequence-based localization, HSBL),通過(guò)RSSI信號(hào)衰減率構(gòu)建RSSI分級(jí)序列并與階次序列相結(jié)合,構(gòu)建子區(qū)域位置序列和定位節(jié)點(diǎn)位置序列.實(shí)船實(shí)驗(yàn)表明,HSBL算法在船舶環(huán)境下具有較好的定位性能.
基于序列的定位方法主要包括兩部分:①階次序列表的構(gòu)造及子區(qū)域質(zhì)心坐標(biāo)的確定;②定位節(jié)點(diǎn)位置序列的構(gòu)建和序列間相似度的確定.
構(gòu)造一個(gè)外邊界,將所有錨節(jié)點(diǎn)都包括在內(nèi),利用錨節(jié)點(diǎn)間連線的垂直平分線,將邊界內(nèi)的區(qū)域劃分為三種類(lèi)型的子區(qū)域,即點(diǎn)、邊、面,并用各子區(qū)域幾何重心的坐標(biāo)表示相應(yīng)區(qū)域的位置.
圖1由四個(gè)錨節(jié)點(diǎn)階次序列表構(gòu)建,其中子區(qū)域1為面,子區(qū)域2為邊,子區(qū)域3為點(diǎn).將定位區(qū)域進(jìn)行劃分后,計(jì)算每個(gè)子區(qū)域的質(zhì)心位置到各個(gè)錨節(jié)點(diǎn)的距離,得到相應(yīng)的階次序列 (如子區(qū)域1的階次序列為1234,子區(qū)域2的階次序列為1134等),最后將所有子區(qū)域位置序列構(gòu)成一個(gè)階次序列表.而對(duì)于定位節(jié)點(diǎn),需測(cè)量其與錨節(jié)點(diǎn)的RSSI值,并將RSSI值按從大到小的順序進(jìn)行排序構(gòu)建階次序列,然后計(jì)算定位節(jié)點(diǎn)位置序列與階次序列表中每個(gè)序列的相似度,選擇相似度最大的階次序列所表示的子區(qū)域質(zhì)心作為定位節(jié)點(diǎn)的估計(jì)位置.
圖1 階次序列表構(gòu)建示意圖
船舶的鋼鐵結(jié)構(gòu)和航行狀態(tài)會(huì)對(duì)RSSI值造成劇烈的波動(dòng)[13],造成定位節(jié)點(diǎn)位置序列出現(xiàn)較大的誤差.圖2為序列出錯(cuò)示意圖,從理論上分析定位節(jié)點(diǎn)S接收到信號(hào)強(qiáng)度強(qiáng)弱關(guān)系應(yīng)該為RSSIB>RSSID,但是因?yàn)榇碍h(huán)境下RSSI值波動(dòng)比較劇烈,使RSSIB 圖2 序列出錯(cuò)示意圖 通過(guò)實(shí)驗(yàn)分析陸地環(huán)境和船舶環(huán)境下定位節(jié)點(diǎn)位置序列的誤差程度.在相同面積區(qū)域下均勻布置了64個(gè)采樣點(diǎn),每個(gè)采樣點(diǎn)采集120組RSSI樣本,通過(guò)統(tǒng)計(jì)各個(gè)采樣點(diǎn)定位節(jié)點(diǎn)位置序列與 真實(shí)位置序列不一致的比例來(lái)分析序列的誤差程度,并根據(jù)序列誤差程度繪制了灰度圖,顏色越深表示定位節(jié)點(diǎn)位置序列誤差程度越大.由圖3可知:船舶環(huán)境下定位節(jié)點(diǎn)序列的誤差程度明顯比陸地環(huán)境下的序列誤差程度大,這是因?yàn)榇皬?fù)雜的環(huán)境下無(wú)線信號(hào)的多徑效應(yīng)比陸地環(huán)境更嚴(yán)重,無(wú)線信號(hào)RSSI值的波動(dòng)性更大,從而造成定位節(jié)點(diǎn)位置序列出錯(cuò)的概率增大,定位精度也隨之下降. 圖3 序列誤差圖 RSSI信號(hào)容易受多徑傳播及室內(nèi)環(huán)境的影響而不穩(wěn)定,通常使用對(duì)數(shù)路徑損耗模型來(lái)描述其在室內(nèi)環(huán)境的傳播[14]. (1) 式中:RSSI(d)為發(fā)射節(jié)點(diǎn)與接收節(jié)點(diǎn)距離為d時(shí)的信號(hào)強(qiáng)度,dbm;RSSI(d0)為收發(fā)設(shè)備距離為d0時(shí)的參考路徑損耗,一般取d0為1 m;n為路徑損耗指數(shù);Xσ為均值為0標(biāo)準(zhǔn)偏差為σ的高斯隨機(jī)變量,表示環(huán)境中的噪聲干擾. 由式(1)可知:RSSI值與距離之間存在一定的映射關(guān)系.研究表明:來(lái)自同一節(jié)點(diǎn)的RSSI值在不同的距離處的表現(xiàn)力是不同的,盡管RSSI信號(hào)存在一定的波動(dòng)性,但整體趨勢(shì)還是越靠近發(fā)射節(jié)點(diǎn)的位置接收到的RSSI值越大.本文使用RSSI衰減率來(lái)描述RSSI信號(hào)隨距離的變化情況.根據(jù)式(1)構(gòu)建RSSI信號(hào)衰減率模型. rate(d)=-10n·(d·ln10)-1 (2) 為了描述RSSI信號(hào)變化率隨距離變化的情況,進(jìn)行RSSI隨距離變化的實(shí)船實(shí)驗(yàn).圖4為RSSI信號(hào)衰減率變化.由圖4可知:在50 m范圍內(nèi)RSSI與距離的關(guān)系基本符合對(duì)數(shù)路徑損耗模型,同時(shí)進(jìn)一步分析可知:在0~5 mRSSI信號(hào)衰減率變化幅度較大,6~10 m時(shí)變化幅度逐漸減弱,而10 m以后RSSI信號(hào)衰減率趨于平緩,且隨著距離的增大,RSSI變化幅度較小,空間信號(hào)強(qiáng)度對(duì)距離度量的表現(xiàn)力較弱.所以理論分析可知RSSI信號(hào)具有可分級(jí)的特性,且根據(jù)RSSI信號(hào)衰減率將RSSI值分為3級(jí)是最有利于后續(xù)定位區(qū)域的劃分和位置序列的構(gòu)建. 圖4 RSSI信號(hào)衰減率變化 2.2.1位置序列表的構(gòu)建 已知RSSI信號(hào)具有可分級(jí)的特性,文中根據(jù)RSSI信號(hào)衰減率對(duì)錨節(jié)點(diǎn)的通信范圍進(jìn)行分級(jí).設(shè)錨節(jié)點(diǎn)的通信范圍為以R為半徑的圓,將錨節(jié)點(diǎn)的通信范圍分為k級(jí),錨節(jié)點(diǎn)與定位節(jié)點(diǎn)之間的實(shí)際距離為D,相對(duì)應(yīng)的距離等級(jí)為h,i的取值范圍為[1,k],Ri為分級(jí)閾值,具體分級(jí)方式為 h=[i]Ri-1 (3) 在使用錨節(jié)點(diǎn)間垂直平分線對(duì)定位區(qū)域進(jìn)行直線分割的基礎(chǔ)上,以錨節(jié)點(diǎn)為圓心,距離分級(jí)閾值為半徑對(duì)定位區(qū)域進(jìn)行二次圓弧分割,形成更多的點(diǎn)、線、面等子區(qū)域,通過(guò)判斷子區(qū)域質(zhì)心到各個(gè)錨節(jié)點(diǎn)距離所在的分級(jí)范圍,來(lái)確定距離等級(jí)h并建立分級(jí)序列,然后與SBL算法中的階次序列相結(jié)合構(gòu)建子區(qū)域位置序列,進(jìn)而形成整個(gè)定位區(qū)域的位置序列表S={S1,S2,…,Sm}. 定位區(qū)域位置序列表的構(gòu)建見(jiàn)圖5,假設(shè)錨節(jié)點(diǎn)的通信范圍可以覆蓋整個(gè)區(qū)域,同時(shí)根據(jù)RSSI衰減率模型將錨節(jié)點(diǎn)通信范圍分3級(jí)(根據(jù)到錨節(jié)點(diǎn)距離的遠(yuǎn)近分為123三種等級(jí),其中距離節(jié)點(diǎn)最近的等級(jí)為1),如圖5子區(qū)域1位置序列為13421333,其中前四位表示階次序列,后四位表示分級(jí)序列,而子區(qū)域2位置序列為42123323,子區(qū)域3位置序列為21243233. 圖5 位置序列構(gòu)建示意圖 2.2.2定位節(jié)點(diǎn)位置序列 定位過(guò)程中實(shí)際距離是未知的,但是定位節(jié)點(diǎn)具有接收RSSI的能力,通過(guò)對(duì)數(shù)路徑損耗模型中的式(1)把距離分級(jí)閾值范圍轉(zhuǎn)換為RSSI分級(jí)范圍.當(dāng)Ri-1 RSSI(d0)-10nlg(Ri-1)+Xσ RSSI(d0)-10nlg(Ri)+Xσ (4) 式中:RSSId為實(shí)際測(cè)得的RSSI值,由于每一級(jí)都對(duì)應(yīng)一個(gè)RSSI值區(qū)間,而高斯噪聲引起的RSSI值波動(dòng)遠(yuǎn)小于這個(gè)區(qū)間,所以噪聲對(duì)分級(jí)的影響不大可以忽略,則整個(gè)RSSI分級(jí)方式為 h=[i]RSSIi-1 (5) 式中:RSSIi=RSSI(d0)-10nlg(Ri),表示RSSI分級(jí)閾值,定位節(jié)點(diǎn)則根據(jù)接收到的RSSI值,判斷相應(yīng)節(jié)點(diǎn)RSSI值所在的分級(jí)區(qū)間,從而確定其序列等級(jí)h形成分級(jí)序列,同時(shí)將接收到的RSSI值按從大到小的順序進(jìn)行排序形成階次序列,并將階次序列和分級(jí)序列進(jìn)行組合,構(gòu)建定位節(jié)點(diǎn)位置序列. 假設(shè)兩個(gè)序列u={ui}和v={vi},其中1≤i≤n,n為錨節(jié)點(diǎn)數(shù)量,本文使用余弦相似度函數(shù)作為兩個(gè)序列的相似性度量指標(biāo)[15],具體公式為 (6) 定位節(jié)點(diǎn)位置確定步驟如下. 步驟1利用上述余弦相似度函數(shù)計(jì)算定位節(jié)點(diǎn)位置序列與定位區(qū)域位置序列表中所有位置序列的相似度. 步驟2選擇與定位節(jié)點(diǎn)位置序列相似度最大的位置序列所代表的質(zhì)心為其估計(jì)位置,具體公式為 (7) HSBL算法的定位流程圖見(jiàn)圖6.與SBL算法相比,該算法通過(guò)對(duì)定位區(qū)域二次劃分細(xì)化了子區(qū)域分割粒度,增加了子區(qū)域數(shù)量,從而提高了節(jié)點(diǎn)的定位精度,同時(shí)序列維度的增加也增強(qiáng)了序列的抗干擾性. 圖6 HSBL算法流程圖 在重慶至宜昌的游輪“黃金六號(hào)”上開(kāi)展定位實(shí)驗(yàn),并與SBL算法和文獻(xiàn)[7]中SCL算法進(jìn)行比較.實(shí)驗(yàn)場(chǎng)景見(jiàn)圖7,選取遮擋較多的電影院和無(wú)遮擋的大廳進(jìn)行實(shí)驗(yàn).電影院定位區(qū)域面積為15.9 m×10.7 m,大廳定位區(qū)域面積為12 m×6 m.實(shí)驗(yàn)設(shè)備采用基于TI(Texas Instruments)CC2530芯片設(shè)計(jì)的ZigBee傳感節(jié)點(diǎn),依次將5、6、7、8、9個(gè)傳感節(jié)點(diǎn)設(shè)置為錨節(jié)點(diǎn)并進(jìn)行均勻布設(shè),同時(shí)本次實(shí)驗(yàn)設(shè)置64個(gè)測(cè)試點(diǎn),每個(gè)測(cè)試點(diǎn)采集120組RSSI數(shù)據(jù). 圖7 實(shí)驗(yàn)測(cè)試場(chǎng)景 文中以定位節(jié)點(diǎn)的平均定位誤差ME作為主要評(píng)價(jià)指標(biāo)[16],其計(jì)算公式為 (8) 式中:N為定位節(jié)點(diǎn)的個(gè)數(shù);(Xi,Yi)為定位節(jié)點(diǎn)的真實(shí)位置坐標(biāo);(xi,yi)為估計(jì)位置坐標(biāo). 表1~2為電影院和大廳的定位誤差對(duì)比,結(jié)合表1~2可得,兩種場(chǎng)景下HSBL算法都具有較好的定位精度.在電影院區(qū)域,SBL算法的平均定位誤差1.78 m,SCL算法的平均定位誤差為1.63 m,而HSBL算法的平均定位誤差為1.32 m,相比于SBL算法精度提高了26%左右,比SCL算法提高了19%.而在大廳中HSBL算法的平均定位誤差為1.24 m,明顯比電影院場(chǎng)景下定位誤差要小,這是因?yàn)殡娪霸赫趽踺^多,多徑效應(yīng)更嚴(yán)重.由此可見(jiàn),HSBL算法在船舶環(huán)境中具有較好的定位效果. 表1 電影院定位誤差對(duì)比 單位:m 表2 大廳定位誤差對(duì)比 單位:m 3.2.1不同分級(jí)閾值的影響 根據(jù)RSSI衰減率模型可知當(dāng)將錨節(jié)點(diǎn)的通信范圍分為3級(jí)時(shí)更有利于位置序列的構(gòu)建,因此需要設(shè)定兩個(gè)分級(jí)閾值,其中不同的分級(jí)閾值影響了HSBL算法的定位性能,見(jiàn)圖8.當(dāng)設(shè)置不同的分級(jí)閾值時(shí)定位誤差存在一定的差異,當(dāng)一級(jí)閾值設(shè)置為2 m,二級(jí)閾值為6 m時(shí),HSBL算法的定位誤差最小. 圖8 不同分級(jí)閾值對(duì)定位誤差的影響 3.2.2不同錨節(jié)點(diǎn)數(shù)量的影響 不同的錨節(jié)點(diǎn)數(shù)量影響了HSBL算法的定位性能,見(jiàn)圖9.隨著錨節(jié)點(diǎn)數(shù)量的增加,三種定位方法的定位誤差都呈下降趨勢(shì).當(dāng)部署5個(gè)錨節(jié)點(diǎn)時(shí),HSBL算法比SBL算法定位精度提高了38%,比SCL的算法提高了約27%,部署9個(gè)錨節(jié)點(diǎn)時(shí),HSBL算法比SBL算法定位精度提高了26%.由此可見(jiàn),當(dāng)錨節(jié)點(diǎn)的數(shù)量較少時(shí)HSBL算法定位性能提升的更明顯.這是因?yàn)橥ㄟ^(guò)對(duì)定位區(qū)域的二次劃分,細(xì)化了定位區(qū)域的分割粒度,增加了子區(qū)域數(shù)量,所以定位精度有明顯的提高. 圖9 錨節(jié)點(diǎn)數(shù)量對(duì)定位誤差的影響 3.2.3船舶航行狀態(tài)的影響 圖10為船舶航行狀態(tài)對(duì)定位誤差的影響.由圖10可知:HSBL算法在船舶航行和停泊時(shí)都有一個(gè)較好的定位精度,但當(dāng)船舶處于22 km/h的航行狀態(tài)時(shí),HSBL算法的定位誤差比船舶停泊時(shí)的定位誤差高7%,這是因?yàn)榇暗倪\(yùn)動(dòng)對(duì)RSSI信號(hào)造成更劇烈的波動(dòng),使定位節(jié)點(diǎn)位置序列出錯(cuò)的概率增加,從而導(dǎo)致定位誤差的增大,所以船舶的航行對(duì)HSBL定位算法有一定的影響. 圖10 船舶航行狀態(tài)對(duì)定位誤差的影響 文中在對(duì)船舶環(huán)境下定位節(jié)點(diǎn)位置序列進(jìn)行誤差分析的基礎(chǔ)上,提出了一種基于分級(jí)序列的定位方法.該方法根據(jù)RSSI信號(hào)衰減率建立了分級(jí)序列,并與階次序列相結(jié)合構(gòu)建了子區(qū)域位置序列和定位節(jié)點(diǎn)位置序列,使用余弦相似度函數(shù)進(jìn)行序列匹配.通過(guò)對(duì)定位區(qū)域進(jìn)行二次劃分,細(xì)化了子區(qū)域分割粒度,增加了子區(qū)域數(shù)量,同時(shí)階次序列和分級(jí)序列的組合使序列維度的增加,降低了環(huán)境變化對(duì)序列的影響.實(shí)船實(shí)驗(yàn)結(jié)果表明,在遮擋較多的電影院場(chǎng)景,HSBL算法比SBL算法定位精度提高了26%,且在船舶環(huán)境中具有較好的魯棒性.2 基于分級(jí)序列的定位方法
2.1 RSSI信號(hào)衰減率模型
2.2 分級(jí)序列的構(gòu)建
2.3 位置估計(jì)
2.4 HSBL算法定位流程
3 實(shí)驗(yàn)結(jié)果與分析
3.1 實(shí)驗(yàn)場(chǎng)景
3.2 實(shí)驗(yàn)分析
4 結(jié) 束 語(yǔ)