張留朝,張 彭,劉貞德
(濰坊學(xué)院 計算機工程學(xué)院,山東 濰坊 261061)
在無線傳感器網(wǎng)絡(luò)中,位置信息對傳感器網(wǎng)絡(luò)的監(jiān)測活動至關(guān)重要,事件發(fā)生的位置或獲取信息的節(jié)點位置是傳感器節(jié)點監(jiān)測信息中的重要組成部分,沒有位置信息的監(jiān)測消息是無意義的[1]。因此,無線傳感器網(wǎng)絡(luò)節(jié)點定位是其最基本的功能之一,對無線傳感器網(wǎng)絡(luò)應(yīng)用的有效性起關(guān)鍵作用。
無線傳感器定位算法包括基于測距的定位和無需測距的定位兩種[2-3]?;跍y距的定位算法是利用接收信號強度指示(RSSI)估計待定位節(jié)點到參考節(jié)點的距離,然后根據(jù)測距定位算法計算待定位節(jié)點的坐標(biāo)。典型的測距定位算法包括多邊定位、邊界盒定位、MDS-MAP等[4]。無需測距的定位利用網(wǎng)絡(luò)連通性、節(jié)點分布、跳數(shù)等方法實現(xiàn)定位,典型的無需測距的定位算法包括質(zhì)心定位、DV-HOP定位和APIT定位等[5-6]。
上述定位算法中,無論是基于測距的定位,還是無需測距的定位都存在以下兩方面的局限:
(1)信標(biāo)節(jié)點的位置無法移動;
(2)待定位節(jié)點和信標(biāo)節(jié)點[6]必須在同一平面上,否則定位精度會受影響。
針對上述局限,本文提出了無線傳感器網(wǎng)絡(luò)的立體定位方法。
本文提出了一種無線傳感器網(wǎng)絡(luò)的立體定位算法,設(shè)立多個信標(biāo)節(jié)點和一個終端用戶節(jié)點,所設(shè)立的信標(biāo)節(jié)點不在同一平面上,而是位于“棱錐”或“棱柱”的頂點。建立三維直角坐標(biāo)系,標(biāo)定信標(biāo)節(jié)點在直角坐標(biāo)系中的位置坐標(biāo)。信標(biāo)節(jié)點在三維直角坐標(biāo)系中的相對位置和坐標(biāo)始終不變(信標(biāo)節(jié)點發(fā)生移動時,直角坐標(biāo)系隨參考節(jié)點的移動而移動,這樣信標(biāo)節(jié)點在直角坐標(biāo)系中的位置坐標(biāo)即可保持)。信標(biāo)節(jié)點負責(zé)接收待定位節(jié)點發(fā)射的無線信號,并根據(jù)RSSI測距公式計算出待定位節(jié)點到該信標(biāo)節(jié)點的距離。然后把計算得到的這一距離和該待定位節(jié)點的身份標(biāo)識發(fā)送至終端用戶節(jié)點。終端用戶節(jié)點根據(jù)接收到的信息計算出待定位節(jié)點的位置坐標(biāo)。
本文提出的無線傳感器網(wǎng)絡(luò)立體定位算法的信標(biāo)節(jié)點不在同一平面上,分別位于“棱錐”或“棱柱”的頂點。建立三種信標(biāo)節(jié)點分布模型,即“三棱錐”分布模型、“三棱柱”分布模型和“四棱柱”分布模型,分別如圖1~圖3所示。
圖1 信標(biāo)節(jié)點“三棱錐”分布模型
圖2 信標(biāo)節(jié)點“三棱柱”分布模型
圖3 信標(biāo)節(jié)點“四棱柱”分布模型
在上述三圖中,A,B,C,D,E,F(xiàn),G,H均為信標(biāo)節(jié)點,M是任一待定位節(jié)點,R是終端用戶節(jié)點。待定位節(jié)點M周期性地發(fā)送包含自身信息的無線信號至信標(biāo)節(jié)點,信標(biāo)節(jié)點接收待定位節(jié)點發(fā)送的無線信號后,解析出該節(jié)點的身份標(biāo)識,并測定接收到的信號強度指示RSSI,根據(jù)RSSI測距公式[8]計算出待定位節(jié)點到此信標(biāo)節(jié)點的距離,然后把這一距離和待定位節(jié)點的身份標(biāo)識發(fā)送至終端用戶節(jié)點R。終端用戶節(jié)點R根據(jù)信標(biāo)節(jié)點發(fā)送的距離信息計算出待定位節(jié)點的坐標(biāo)。
建立三維直角坐標(biāo)系,標(biāo)定信標(biāo)節(jié)點在直角坐標(biāo)系中的位 置 坐 標(biāo) A(x1,y1,z1),B(x2,y2,z2),C(x3,y3,z3),D(x4,y4,z4),E(x5,y5,z5),F(xiàn)(x6,y6,z6),G(x7,y7,z7),H(x8,y8,z8),假設(shè)待定位節(jié)點M的坐標(biāo)為(x,y,z)。用di(i=1,2,…,8)表示待定位節(jié)點到信標(biāo)節(jié)點的距離。具體研究中,通常使用的RSSI定位模型如下[8-10]:
式中:A為信號距離為1 m時,接收信號的功率(dBm);n為信號傳輸常數(shù),與信號的傳輸環(huán)境有關(guān);di為發(fā)射節(jié)點到信標(biāo)節(jié)點的距離;υ服從(0,δ2)高斯分布,為零均值的隨機測量噪聲,表示環(huán)境對數(shù)學(xué)模型影響的程度。文獻[4]中提到,通過實驗證明,v對距離的計算結(jié)果影響不大,因此本文去除υ,用簡化后的信號傳輸模型來估計距離。
用(xi1,yi1,zi1),(xi2,yi2,zi2),(xi3,yi3,zi3) 和(xi4,yi4,zi4)表示圖1~圖3三個信標(biāo)節(jié)點分布模型中任意一組不在同一平面上的四個信標(biāo)節(jié)點坐標(biāo),di1,di2,di3和di4分別表示待定位節(jié)點到此四個信標(biāo)節(jié)點的距離,則任一待定位節(jié)點坐標(biāo)(x,y,z)滿足如下關(guān)系:
用式(2)中的第1~3個方程減去第4個方程,并表示成線性方程的形式AX=b,其中:
在AX=b兩邊同乘A-1得到X=A-1b,即待定位節(jié)點坐標(biāo)為(x,y,z)。
需要注意的是,在圖1所示的信標(biāo)節(jié)點分布模型中,一共有四個信標(biāo)節(jié)點,只可得一個如式(2)所示的方程組,所以只能計算得到一個待定位節(jié)點的坐標(biāo)。而在圖2和圖3所示的信標(biāo)節(jié)點分布模型中,信標(biāo)節(jié)點的數(shù)量分別為6個和8個,可得到多個如式(2)所示的方程組,可由此計算得到多個待定位節(jié)點的坐標(biāo)。在實際應(yīng)用時,可根據(jù)需要取其均值,作為待定位節(jié)點的坐標(biāo)。
信號RSSI在不同環(huán)境下對應(yīng)的距離曲線不同,因此我們搭建了如下實驗環(huán)境來進行距離曲線實驗。
上述無線傳感器網(wǎng)絡(luò)節(jié)點選用網(wǎng)蜂科技有限公司生產(chǎn)的ZigBee模塊,實物如圖4所示,其核心芯片為CC2530。
測試場地選在物聯(lián)網(wǎng)實訓(xùn)實驗室,如圖5所示。
圖4 實驗節(jié)點
圖5 測試場地
實驗時,發(fā)送節(jié)點和接收節(jié)點離地高度均為0.5 m,并保持天線垂直于地面,發(fā)送節(jié)點和接收節(jié)點為直視鏈路,且每隔0.5 m測量接收到的RSSI值。在發(fā)送節(jié)點和接收節(jié)點距離為1 m時,實驗測得的接收信號功率A=41 dBm。通過兩組信號強度-距離測試數(shù)據(jù),利用(1)式計算得到n=2.3。把所有的測試數(shù)據(jù)進行4次Matlab曲線擬合,得到信號強度對應(yīng)的距離曲線如圖6所示。
本節(jié)利用圖1所示的“三棱錐”分布模型探索在室內(nèi)環(huán)境中,信標(biāo)節(jié)點間距對定位精度的影響。定位精度用平均定位誤差表示[11-12],平均定位誤差的定義如下:
式中 :(xi,yi,zi)是計算得到的待定位節(jié)點的坐標(biāo) ;(ai,bi,ci)為實際坐標(biāo);N為測試次數(shù)。
圖6 信號強度對應(yīng)的距離曲線
仿真步驟如下:
(1)設(shè)定圖1“三棱錐”模型中信標(biāo)節(jié)點的間距l(xiāng),計算每個信標(biāo)節(jié)點在坐標(biāo)系中的坐標(biāo),4個信標(biāo)節(jié)點的坐標(biāo)分別為
(2)當(dāng)移動節(jié)點處于不同位置時,位置坐標(biāo)用(ai,bi,ci)表示,分別計算移動節(jié)點到4個信標(biāo)節(jié)點A,B,C,D的距離:
(3)根據(jù)步驟(2)得到的移動節(jié)點到信標(biāo)節(jié)點的距離,在圖6所示的距離損耗模型中標(biāo)定對應(yīng)的信號強度RSSI;
(4)根據(jù)步驟(3)標(biāo)定的RSSI,利用公式(1)計算移動節(jié)點到每一個信標(biāo)節(jié)點的距離di;
(5)根據(jù)步驟(4)得到的移動節(jié)點到每一個信標(biāo)節(jié)點的距離 di,利用公式(2)計算移動節(jié)點的坐標(biāo)(xi,yi,zi);
(6)將步驟(5)計算得到的移動節(jié)點坐標(biāo)(xi,yi,zi)和移動節(jié)點的實際坐標(biāo)(ai,bi,ci)代入公式(3),計算得到平均定位誤差。
按照上述步驟,利用Matlab2014進行仿真,仿真結(jié)果如圖7所示。
從圖7的仿真結(jié)果可以看出,平均定位誤差隨著信標(biāo)節(jié)點間距的增加而減小。當(dāng)信標(biāo)節(jié)點間距為1 m時,平均定位誤差為1.8 m;當(dāng)信標(biāo)節(jié)點間距為5.5 m時,平均定位誤差為1.38 m。當(dāng)采用“三棱錐”分布模型,信標(biāo)節(jié)點間距為5.5 m時,比信標(biāo)節(jié)點間距為1 m時的平均定位誤差減小了0.42 m。
圖7 信標(biāo)節(jié)點間距對定位精度的影響
按照和“三棱錐”分布模型相類似的仿真步驟,當(dāng)信標(biāo)節(jié)點按“三棱柱”模型和“四棱柱”模型分布時,分別對定位精度進行仿真。
需要注意的是,“三棱柱”模型和“四棱柱”模型中,信標(biāo)節(jié)點的數(shù)量分別為6個和8個,可得到多個如式(2)所示的方程組,由此得到多個待定位節(jié)點的坐標(biāo)。所以,在利用(3)式計算時,可得到多個平均定位誤差值。把這多個值取算術(shù)平均,得到圖8所示的仿真結(jié)果。
圖8 信標(biāo)節(jié)點分布模型對定位精度的影響
從圖8所示的仿真結(jié)果可以看出,當(dāng)信標(biāo)節(jié)點的分布模型為“三棱柱”模型和“四棱柱”模型時,定位精度會隨信標(biāo)節(jié)點間距的增加而提高。當(dāng)信標(biāo)節(jié)點間距為4.5 m時,“三棱柱”模型和“四棱柱”模型的平均定位誤差最小,分別為1.3 m和1.17 m。從信標(biāo)節(jié)點的三種分布模型來看,“四棱柱”模型性能最優(yōu),“三棱柱”模型次之,“三棱錐”模型最差。當(dāng)信標(biāo)節(jié)點間距一定時,“四棱柱”模型的定位精度比“三棱柱”模型的定位精度高約10%,而“三棱柱”模型的定位精度又比“三棱錐”模型的定位精度高約10%。之所以得到這樣的結(jié)果,是因為“三棱柱”模型中信標(biāo)節(jié)點的數(shù)量是6個,“四棱柱”模型中信標(biāo)節(jié)點的數(shù)量是8個,兩者分別比“三棱錐”模型多出了2個和4個信標(biāo)節(jié)點。所以,定位精度的提高是以多付出的信標(biāo)節(jié)點設(shè)備為代價的,這與常見的無線傳感器網(wǎng)絡(luò)定位理論相一致。
此外,可由圖8所示的仿真定位誤差曲線看出,采用“三棱柱”模型和“四棱柱”模型,且當(dāng)信標(biāo)節(jié)點間距大于4.5 m時,平均定位誤差反而會隨著信標(biāo)節(jié)點間距的增大而增大。所以,通過本文的仿真可知,定位精度并非完全隨著信標(biāo)節(jié)點間距的增加而提高。在實際應(yīng)用中,選取合適的信標(biāo)節(jié)點間距十分必要。
可采用“三棱柱”模型和“四棱柱”模型,當(dāng)信標(biāo)節(jié)點間距大于4.5 m時,為了減小平均定位誤差,對算法進行優(yōu)化:“三棱柱”模型和“四棱柱”模型中,信標(biāo)節(jié)點的數(shù)量分別為6個和8個,計算時,會有多個如式(2)的方程組,由此計算得到多個待定位節(jié)點的坐標(biāo)。在利用(3)式計算時,可得到多個平均定位誤差值。一旦某個平均定位誤差高于某值,就會舍棄這一組數(shù)據(jù)。經(jīng)過優(yōu)化后的仿真結(jié)果如圖9所示。
經(jīng)優(yōu)化后,“三棱柱”模型和“四棱柱”模型的平均定位誤差最小值分別為1.15 m和1.05 m,比優(yōu)化前分別小了0.15 m和0.12 m。
圖9 優(yōu)化后的仿真結(jié)果
本文提出了信標(biāo)節(jié)點可移動的無線傳感器網(wǎng)絡(luò)立體定位算法。建立了三種信標(biāo)節(jié)點的分布模型——“正三棱錐”分布模型、“正三棱柱”分布模型和“正四棱柱”分布模型,仿真了不同信標(biāo)間距對定位精度的影響,以及信標(biāo)節(jié)點分布模型對定位精度的影響。仿真結(jié)果表明,本文提出的立體定位算法能準(zhǔn)確定位待定位節(jié)點的相對位置坐標(biāo)。本算法將在室內(nèi)定位、物品追蹤等領(lǐng)域有較廣闊的應(yīng)用前景。