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

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

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

3 算法仿真实验

  为了验证算法理论的可行性,在100 m×100 m的区域中,对提出的改进的DVHop算法用Matlab7.0进行实验仿真,将实验结果与原DVHop算法和参考文献[12]的算法进行对比分析。仿真数据随机运行50次,最后取平均值。

3.1 测距误差

  测距误差是指节点间的估算距离与实际距离的差值。在100 m×100 m的区域中,随机分布100个节点进行仿真实验,其中有一部分部署的是锚节点,是能够获知自身位置信息的节点,且锚节点和未知节点具有相同的通信半径。通过设置不同的锚节点比例和节点通信半径,比较改进的算法与原DVHop算法对测距误差的影响。图3为通信半径为10 m时的测距误差,图4为通信半径为20 m时的测距误差。

图3 通信半径为10 m时的测距误差
图3 通信半径为10 m时的测距误差

图4 通信半径为20 m时的测距误差
图4 通信半径为20 m时的测距误差

在同等条件下,改进的测距误差始终是低于原DVHop算法的,且不同的通信半径对测距误差也会产生不同的结果。图3中,通信半径为10 m,改进后的算法平均测距误差比原算法降低1.45 m;图4中,通信半径为20 m,改进后的算法平均测距误差比原算法降低1.67 m。这是因为随着通信半径的变化,会对节点间的跳数和平均跳距产生影响。由于本文改进后的算法是用全网的平均跳距代替单个节点的平均跳距,这样使得对平均跳距的估计更为准确,估算距离也就越准确,越接近实际的距离。

3.2 定位误差

  定位误差(Localization Error,LE)是指通过定位算法测量估计的坐标与实际坐标之间的差值。用这种差值除以节点的通信半径,就是定位误差率。计算方法如下:

图15

其中,(x,y)为未知节点的实际坐标,(xi,yi)为定位算法所估计出来的坐标;R为节点的通信半径。

  图5和图6是节点总数分别为100和300、节点通信半径为10 m时,本文改进算法、DVHop算法和参考文献[12]中的算法三者在锚节点比例不同时的定位误差比较结果。从两幅图中可以看出,在相同的半径和锚节点的环境下,改进算法的定位误差率要低于DVHop算法和参考文献[12]中的算法。但是在锚节点比例较低的情况下,节点的定位误差较大。这是因为锚节点较少时,未知节点与锚节点之间的距离变远,导致计算平均距离时会产生很大的误差。因此随着锚节点比例的增加,能够有效地减小定位误差。

  图5中,当锚节点的比例为30%时,DVHop的定位误差率为43.25%,参考文献[12]算法的定位误差率为33.37%,而本文改进算法的定位误差率为28.34%。图6中,当锚节点的比例为30%时,DVHop的定位误差率为26.89%,参考文献[12]算法的定位误差率为14.95%,而本文改进算法的定位误差率为10.21%。由此说明,本文的改进算法要优于其他两种算法。这是因为在参考文献[12]中,只考虑了平均跳距一个因素对定位误差的影响,而本文改进算法则是从平均跳距的改进和利用连通度的不同选取锚节点两个方面考虑,使其定位误差进一步地减小。

图5 节点总数为100时的定位精度
图5 节点总数为100时的定位精度

图6 节点总数为300时的定位精度
图6 节点总数为300时的定位精度

结语

  本文首先介绍了DVHop算法的基本思想,针对经典的DVHop算法中存在的定位精度不高的缺陷,提出了两点改进:

  单个锚节点所估计的平均跳距来代替全网的平均跳距,会产生很大的误差,因此平均跳距利用全网平均跳距与单个锚节点估计的平均跳距的均值来修正;

  根据连通度的不同选择最优的三个锚节点进行三边定位计算,以提高定位精度。

  仿真实验数据表明,改进后的算法降低了测距误差,定位误差率进一步降低,从而提高定位精度。且在改进的过程中,没有添加硬件成本。

【分页导航】

z


上一页123下一页
?? ?? ??


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

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

无线传感器网络?

相关文章

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