劉仲馳
(江西制造職業技術學院信息工程系,江西 南昌 330095)
移動無線物聯網在生物攻擊監測、洪水監測以及人體健康監測等多個領域得到廣泛的應用[1-2]。作為一種全新的技術,其感知層中傳感節點的定位面臨著全新的挑戰[3]。
文獻[4]將需要定位節點的數據報文拆分為三部分,分別是坐標、跳數、ID,通過三角定位方法實現了移動物聯網節點坐標感知,該算法降低了節點坐標乖離程度,但是該方法受跳數影響較大,導致傳感節點定位精度有所下降。文獻[5]介紹了一個基于物聯網的無線傳感器網絡的開發和實驗,該網絡用于墨西哥科里馬·維拉·德爾瓦雷斯市區的水文氣象數據收集和洪水監測。該網絡旨在收集河流水位、土壤濕度和天氣參數,這些參數通過3G和Wi-Fi網絡使用物聯網消息隊列遙測傳輸協議實時傳輸到服務器和web應用程序。該網絡在2019年熱帶氣旋季節科里馬地區發生的三次不同的熱帶風暴事件中進行了測試。結果表明,該方法可以準確收集極端事件期間的實時水文氣象信息。但是該方法未針對網絡中節點定位進行深入分析,因此其節點定位精度有待進一步考究。文獻[6]提出了基于改進貓群算法的路由優化策略,綜合考慮路徑剩余能量方差等多種因素,提高了數據傳輸的實時性。但是該方法中未知傳感節點到錨節點之間估計距離誤差較大。
針對上述方法存在的缺點,提出了一種非測距的定位算法(DV-Hop算法)與位置修正方法相結合的感知層傳感節點定位算法。通過最小跳數值的求解以及該值所在節點的位置轉化修正,實現高精度的傳感節點定位。
假設移動無線物聯網感知層位置未知的節點(即移動無線物聯網感知層待定位節點)和位置已知的傳感層節點(即移動無線物聯網感知層錨節點)組成。其中移動無線物聯網感知層待定位節點的數量為n,下標組成的集合表示為N,移動無線物聯網感知層錨節點的數量為m,下標組成的集合為M。設定移動無線物聯網感知層二維平面內,節點i的參數表示為:

移動無線物聯網系統的感知層待定位傳感節點位置參數為θ=[θN,θM]λ。式中,θN和θM分別表示移動無線物聯網感知層待定位傳感節點與誤差錨節點的位置參數,λ表示限定性閾值。
設移動無線物聯網感知層節點在初始時刻即可定位成功的先驗概率為:

式中:P0(ˉθk|,θk)表示移動無線物聯網感知層節點k的先驗概率。
通常情況下,傳統算法對移動無線物聯網感知層傳感節點進行定位研究中,通常會先假設移動無線物聯網感知層傳感節點的位置參數是準確的,因此不考慮定位先驗信息對移動無線物聯網系統的影響,此時,利用限定性閾值對其進行約束,并將待定位的傳感節點的位置估計方差記為:

式中:表示移動無線物聯網感知層待定位傳感節點的位置估計。
式(3)的下界表示為J-1(θN),表達式如下:

式中:?θN(·)表示對θN的一階偏導算子,E表示節點i一跳之內的鄰居節點距離,ˉd表示移動無線物聯網系統內獲得的距離觀測。
以圖1所示的移動無線物聯網拓撲圖為基礎,完成移動無線物聯網感知層錨節點篩選。
圖1中,M1~M4表示靠近移動無線物聯網感知層未知傳感節點U1的4個錨節點。在移動無線物聯網感知層的二維平面上,未知傳感節點U1至少需要選擇3個錨節點,以確定自己的位置信息[7]。

圖1 候選錨節點的選取
將錨節點M1~M4組成的三角形內角α約束條件設定為:

式中:M1M2表示(M2M3)和(M1M3)2個錨節點之間的距離。
設移動無線物聯網感知層中3個錨節點的共線度為:

式中:αi表示由上述3個錨節點構成的三角形內角。
當3個候選錨節點的共線度DC=π時,說明移動無線物聯網感知層中的3個節點共線。當3個候選錨節點的共線度DC=π/3π,定位誤差最小,為了判斷其是否共線,需要預先設定一個閾值C(0<C<0.5)。當未知傳感節點接收到N′個錨節點的路由信息后,首先計算與未知傳感節點距離最近的3個錨節點的共線度,當其共線度滿足式(7)條件時,求解其位置信息;否則,DV-Hop算法自動選擇距離U1次近的另一個錨節點M4代替M3作為候選錨節點,直到共線度滿足式(7)的條件[8]。

在計算移動無線物聯網感知層未知傳感節點的平均跳距前,首先分析錨節點的可信度。移動無線物聯網感知層未知傳感節點U1與錨節點M1~M4相連通,U1與錨節點M3和M4的連接近似于直線,但與錨節點M2的連接較為曲折,如圖2所示。
以圖2為基礎,按照式(8)計算平均跳距。

圖2 平均跳距的可信度計算

式中:hj表示移動無線物聯網感知層中錨節點i和節點j之間的跳數。
由于未知傳感節點U1與錨節點M2的連接較為曲折,導致錨節點M2參與計算導致平均跳距比實際偏小[9],因此提出一種移動無線物聯網感知層錨節點信任度計算方法。
已知移動無線物聯網感知層共有m個錨節點,設錨節點i與其他m-1個錨節點的單條路徑平均跳距為HSij(i≠j),HSij(i≠j)和錨節點i之間歸一化處理后的總平均跳距偏差程度表示為信任度[10],具體計算方式如下:

從式(9)可以看出,當HSij與HSi的偏差較大時,可信度wij的值較小,說明移動無線物聯網感知層錨節點在i和j的單條路徑上比較曲折,導致平均跳距計算誤差較大。
采用三邊測量估計移動無線物聯網感知層未知傳感節點位置時,默認移動無線物聯網感知層參與計算的3個錨節點的可信度相同。當移動無線物聯網感知層未知傳感節點接收到多個錨節點的平均跳距信息后,首先選擇離未知傳感節點最近錨節點的平均跳距為參考,然后根據其他錨節點的可信度進行加權平均[11]。
圖2中未知傳感節點U1接收到4個錨節點的平均跳距分別為HS1~HS4,M1離未知傳感節點U1最近,M2~M4相對M1的可信度分別為w21,w31,w41,則移動無線物聯網感知層未知傳感節點U1的平均跳距計算公式如下:

在獲取HSU1之后,將其與移動無線物聯網感知層未知傳感節點U1與各個錨節點之間的最小跳數相乘,得到未知傳感節點U1和候選錨節點之間的距離,然后運用式(8)計算未知傳感節點U1的位置[12]。
將通過DV-Hop算法所得定位結果精度足夠高的傳感節點轉化為錨節點,以此為依據,完成其他未知傳感節點的定位[13]。
通過三邊測量法獲得移動無線物聯網感知層未知傳感節點U1的由錨節點M1、M2、M4所確定的位置信息,其定位的誤差分析如下:
將未知傳感節點U1移動后與任意一個錨節點M1進行身份互換,然后根據另外兩個已知的錨節點M2和M4估算M1的位置,即移動后節點的位置。
假設移動無線物聯網感知層錨節點M1的實際坐標位置表示為(x,y),移動后的估算坐標位置表示為(x′,y′),移動無線物聯網感知層傳感節點之間的通信半徑表示為R,則歸一化定位誤差的計算表達式如下:

移動無線物聯網感知層未知傳感節點轉化為錨節點的條件是:當節點定位的歸一化誤差滿足小于e≤Ψ誤差閾值時,即才可以將其轉化為錨節點,從而參與無線物聯網感知層其他未知傳感節點的定位計算。
根據上述定位結果,對未知傳感節點定位結果進行多次修正后與初始估計距離進行對比,如圖3所示。

圖3 未知傳感節點位置修正示意圖
圖3中,S表示未知傳感節點的初步定位位置;M1表示參與未知傳感節點初步定位的m個錨節點之一;dM1S表示已定位未知傳感節點初始位置S到錨節點M1的距離。
由于M1在S定位時只是起到了一部分作用,因此將位置S修正到如圖3所示的S1的位置。

假設S、S1、M1的坐標分別表示為(a,b),(a1,b1)和(aM1,bM1),則:

移動無線物聯網感知層中的m個錨節點均參與了未知傳感節點的修正后,此時定位的未知傳感節點位置作為U1的最終定位結果。為了保證定位精度,可以多次循環修正未知傳感節點S,循環修正到一定次數后,定位誤差將趨于穩定。
為了檢驗本文所提算法性能的優劣。分別對文獻[4]算法、文獻[5]算法和本文算法進行仿真對比。主要從定位誤差方面進行對比。
在仿真前,首先設置移動無線物聯網網絡結構相關參數。此次移動無線物聯網中共有300個節點,其通信半徑為100 m,且隨機分布在200 m×200 m的正方形區域中,網絡中所有節點均采用泛洪的方式在傳播信息。圖4為部分移動無線物聯網傳感節點的隨機分布圖。

圖4 移動無線物聯網中節點隨機分布圖
以圖4為基礎,利用未知傳感節點實際估測位置與其真實值之間的距離表示每個未知傳感節點的定位誤差,其計算公式可表示為:

將移動無線物聯網感知層未知傳感節點和錨節點之間的跳數設置為l=0,以不同初始錨節點數量作為輸入,錨節點數量取10進行測試。在測試中對文獻[4]算法、文獻[5]算法和本文算法反復測試50次,取平均值,并與未知傳感節點的實際定位進行誤差對比,測試結果如圖5所示。

圖5 未知傳感節點定位誤差
觀察圖5可以看出,本文算法、文獻[4]算法和文獻[5]算法的未知傳感節點定位誤差error分別為2.5 cm、8.3 cm、6.9 cm,由此可知,采用文獻[4]算法和文獻[5]算法時未知傳感節點的定位時,定位誤差高于本文算法。
為了進一步檢驗本文所提算法的優越性能,將移動無線物聯網感知層錨節點密度分別設置為15%、20%。測試三種算法的未知傳感節點平均定位誤差,結果如圖6和圖7所示。

圖6 錨節點密度為15%時未知傳感節點平均定位誤差

圖7 錨節點密度為20%時未知傳感節點平均定位誤差
通過計算可知,當移動無線物聯網中錨節點密度為15%時,三種定位算法50次試驗后全部結果的平均誤差分別為:文獻[4]算法error=6.1 cm,文獻[5]算法error=5 cm,本文算法error=2.2 cm。當移動無線物聯網中錨節點密度為20%時,對三種定位算法進行50次試驗,取全部結果的平均誤差,文獻[4]算法error=3.4 cm,文獻[5]算法error=4.2 cm,本文算法error=1.2 cm。因此,當移動無線物聯網中錨節點密度為15%和20%時,本文算法未知傳感節點平均定位與實際定位情況基本一致,而文獻[4]算法和文獻[5]算法雖然定位誤差也相對較小,但高于本文算法。
根據上述仿真測試結果可以看出,隨著移動無線物聯網中錨節點密度的升高,采用本文算法得到的各個節點的定位誤差越來越小,說明未知傳感節點的定位精度越來越高。而在相同錨節點密度的情況下,采用本文算法的未知傳感節點的定位誤差明顯比文獻[4]算法和文獻[5]算法要小,即本文算法的定位精度得到了有效提高。
針對傳統定位算法未知傳感節點定位精確度較低的問題,提出一種DV-Hop算法和位置修正方法相結合的定位算法。通過理論分析與仿真模擬可知,本文算法在原來DV-Hop算法的基礎上,采用協作定位算法將歸一化誤差低于預設誤差閾值的未知傳感節點轉化為錨節點,以該節點為依據定位其他未知傳感節點,擴大了定位范圍,并進行了未知傳感節點初步定位后的位置修正,使得獲得的移動無線物聯網感知層傳感節點定位精度更高,適用性更強。