1 DV-Hop 定位算法
DV-Hop定位算法是APS算法系列中使用最爲廣泛的定位方法, 其定位過程不依賴於測距方法, 利用多跳信標節點信息來參與節點定位, 定位覆蓋率較大。DV-Hop 算法非常類似於傳統網絡中的距離向量路由機制, 在該定位機制中, 未知節點首先計算與信標節點的最小跳數, 然後估算平均每跳距離, 利用最小跳數乘以平均每跳距離, 估算得到未知節點與信標節點之間的距離, 再利用三邊測量法或極大似然估計法計算未知節點的座標。
DV-Hop定位算法可以分爲以下3個階段:
( 1) 計算未知節點與每個信標節點的最小跳數。
信標節點向鄰居節點廣播自身位置信息的分組, 其中包括跳數字段, 初始化爲0.接收節點記錄具有到每個信標節點的最小跳數, 忽略來自同一個信標節點的較大跳數的分組。然後將跳數值加1,並轉發給鄰居節點。通過這個方法網絡中的所有節點能夠記錄下到每個信標節點的最小跳數。
最小跳數的計算方法,首先初始化每一個節點之間的距離,
然後利用最短路徑算法,求出兩節點之間的最短條數。具體代碼,改日附上,
可以留言找我要。
( 2) 計算未知節點與信標節點的實際跳段距離。
每個信標節點根據第1階段中記錄的其他信標節點的位置信息和相距跳數, 利用式(1)估算平均每跳的實際距離:
其中, ( xi, yi )、( xj, yj )是信標節點i、j 的座標, hj 是信標節點i與j( i≠j)之間的跳段數。
然後, 信標節點將計算的每跳平均距離用帶有生存期的字段的分組廣播到網絡中, 未知節點僅記錄接收到的第1個每跳平均距離, 並轉發給鄰居節點。這個策略可以確保絕大多數未知節點從最近的信標節點接收每跳平均距離。未知節點接收到平均每跳距離後, 根據記錄的跳數, 計算到每個信標節點之間的距離。
( 3) 未知節點計算自身位置。
未知節點利用第2階段中記錄的到各個信標節點的跳段距離, 利用三邊測量法或極大似然估計法計算出自身座標。
如圖1所示, 經過第1和第2階段, 能夠計算出信標節點L1 與L2、L3 之間的距離和跳數。信標節點L2 計算得到校正值(即每跳平均距離)爲( 40 +75) / ( 2+ 5) = 16. 42.假設未知節點A 從L2 獲得校正值, 則它與3 個信標節點之間的距離分別爲L1: 3 ×16. 42, L2: 2 ×16. 42, L3: 3×16. 42, 最後可利用三邊測量法確定節點A 的位置。
DV -Hop算法採用平均每跳距離來估算實際距離, 對節點的硬件要求低, 實現簡單。其缺點是利用跳段距離代替直線距離, 存在一定的誤差。