• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

whenfung/WSN-localization: 无线传感器网络定位

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

whenfung/WSN-localization

开源软件地址(OpenSource Url):

https://github.com/whenfung/WSN-localization

开源编程语言(OpenSource Language):

MATLAB 100.0%

开源软件介绍(OpenSource Introduction):

WSN-localization

这个一个无线传感器网络定位算法仿真,可以直接在 MATLAB 上运行。其中各文件的功能如下:

1. main.m

主函数是算法的整体描述,主要步骤如下:

  1. 载入仿真无线传感器网络,包括锚点的位置信息,以及相邻节点之间的距离,这些仿真数据通过 initData.m 实现。
  2. 锚点将自身信息通过广播告知网络中其余节点,广播后其余节点均可得到锚点信息和自身距离锚点的最短路径,此步骤通过加权宽度遍历算法实现。
  3. 将最短路径作为直接距离,利用多边定位算法将未知节点的位置估计出来。
  4. 第 3 步得到的网络图和理论网络图有些区别,我们利用理论网络图相邻节点距离的平方和减去估计理论图相邻节点的平方和得到的值作为两个网络图的相似度,然后根据此进行优化,其中相似度计算由函数 fun() 实现。
  5. 利用 fun() 计算出来的相似度,对所有的估计节点进行逐个局部优化,此处的优化使用了 MATLAB
  6. 精度估计由 accuracy.m 提供,计算的是相对精度,计算公式为估计坐标和理论坐标的距离除以通信半径。

2. initData.m

该文件主要负责生成随机无线传感器网络,其中无线传感器网络节点的通信半径是 0.4,无线传感器网络覆盖范围是 1x1。在无线传感器网络中有 4 个位置已知的传感器网络节点,称为锚点。网络中有 20 个位置未知的无线传感器网络节点,利用 rand() 函数随机生成。

无线传感器网络生成后需要初始化,所有的无线传感器节点立即感知邻居节点,并计算相邻节点之间的距离,在 MATLAB 软件中通过计算两点间距离实现,并通过矩阵存储相邻节点。

  1. anchor(2, 4) 记录 4 个锚点的坐标的集合,anchor 的第 i 列数据就是锚点 i 的坐标。
  2. sensors(20, 2) 记录 20 个未知节点的坐标,用于测试和生成相邻节点之间的距离。
  3. netsa(4, 20) 记录锚点到邻居未知节点之间的距离。
  4. netss(20, 20) 记录未知节点之间的距离。

3. fun.m

MATLAB 软件有一个内置函数 minsearch,该函数可以利用目标函数的约束找到优化解,fun 提供用以提供目标函数。

4. accuracy.m

该文件用以计算最终得到的无线传感器网络定位图的平均相对精度误差。




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
deepakrox/FastObjectLocalization发布时间:2022-08-16
下一篇:
asl-beachbot/localization: The ROS Code doing the localization via laser, publis ...发布时间:2022-08-16
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap