EDN China > 技术文章 > 模拟设计 > 正文
?

基于非测距的DV-Hop定位算法改进

周杨?? 秦嘉杭?? 李万雷?? 2015年09月15日 ?? 收藏0

2 改进后的DV-Hop算法

  本文主要对DV-Hop算法里的第2步和第3步进行改进,第1步与原算法相同。原算法中,在第2步计算平均跳距的时候,未知节点接收来自最近的锚节点的平均跳距。但是由于网络节点分布的不均匀性,导致单个锚节点计算的平均跳距存在着一定的误差,因此本文引入全网平均跳距与单个锚节点平均跳距的均值来修正原算法中的平均跳距。在第3步中,锚节点的位置信息对定位精度影响很大,本文利用节点间连通度的不同,选取最优的3个锚节点,以减小定位误差。

2.1 平均跳距的改进

  将全网平均跳距与单个锚节点估算出来的AHDi取平均来代替经典算法中的平均跳距,这样未知节点既有全网的估算信息,也具有离它最近的锚节点的估算平均跳距AHDi的局部信息。全网平均跳距公式为:

图4

其中,n为网络中的锚节点的个数。

修正后的平均跳距AHD公式为:

图5

2.2 基于选择性的3个锚节点

  基于选择性的锚节点的定位算法[15]利用连通度的不同,在三边节点定位时,选择最优的3个锚节点定位,使其定位误差最小。

  节点分布图如图1所示。未知节点N1利用三边定位时可以用不同的3个锚节点组(P1,P2,P3)、(P1,P2,P4)、(P2,P3,P4)、(P1,P3,P4)来定位。而用最大似然估计计算时,则选用(P1,P2,P3,P4)来定位,这样不同的锚节点组肯定会产生不同的定位位置。

图1 节点分布图
图1 节点分布图

2.2.1 基本规则

  用未知节点与每个锚节点的最小跳数来定义连通度,用数组来表示。比如N1到所有锚节点的连通度为[1,1,2,5]。这样图1中的所有的未知节点的连通度可以用数组表示,如表1所列。

表1 未知节点的连通度
表1 未知节点的连通度

用未知节点之间连通度差的绝对值的和来定义连通度的不同,比如N1与N2之间连通度的不同为∣1-2∣+∣1-1∣+∣2-1∣+∣5-4∣=3。这样可以计算N1到其他所有未知节点的连通度的不同,如表2所列。

表2 N1到未知节点连通度的不同
表2 N1到未知节点连通度的不同

由表2可以得出,N2、N3到N1连通度不同为3、4,而N4、N5到N1连通度不同为9、11。说明N1离N2、N3更近。这一点也可以从图1中看出。

2.2.2 确定最优的3个锚节点

图2 选择性锚节点的节点分布图
图2 选择性锚节点的节点分布图

选择性锚节点的节点分布图如图2所示。未知节点Nx代表未知节点的实际位置,N(i,j,k)为根据3个锚节点组合所估算的位置,R为节点的通信半径,An是离N(i,j,k)最近的锚节点,Am为通信范围R之外的任意锚节点。

  An的位置情况有3种:在0??5R的通信范围内;在0??5R~R的通信范围内;在R通信范围之外。这样计算AHD(i,j,k),m就有3种可能:

图10

其中,AHD(i,j,k),m为根据3个锚节点组合所估算的位置节点与锚节点Am之间的平均跳距,AHDn,m为锚节点An与锚节点Am之间的平均跳距,AHDm为锚节点Am的平均跳距。

  N(i,j,k)与锚节点Am之间的距离P(i,j,k),m可以计算出来,那么就可以算出N(i,j,k)与锚节点Am之间的跳数hop(i,j,k),m,公式为:

图11

假设一共有n个锚节点,这样N(i,j,k)与Nx计算出来的连通度的不同可以表示为

图12

Nx选出最小的连通度不同的节点是最为靠近Nx的节点(即定位的误差最小)。

【分页导航】


?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

无线传感器网络?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈