物联网定位技术|实验报告|实验三 PDM定位算法

目录

1.  实验目标

2.  实验要求

3.  算法介绍

3.1 PDM算法

4.  算法实现

第一步:将数据读入内存

第二步:判断锚节的个数

第三步:将所有的两点间的距离关系读入距离矩阵

第四步:利用最短路径算法

第五步:构造节点跳数矩阵P_all

第六步:构造PDM算法所需要的各种矩阵

第七步:利用最小二乘法估算具体位置

第八步:计算误差,输出结果

5.  实验结果和分析

1、实验结果

(1)无误差扰动值

(2)5%的误差扰动值

(3)10%的误差扰动值

2、误差分析​​​​​​​

6.  实验总结


物联网定位技术

实验报告

学生姓名

白** 

学    号

2008070101

专业班级

物联201

指导老师

曾**

学    院

信息学院

完成时间

2023年4月3日

实验3  PDM定位算法

1.  实验目标

        了解典型的无线传感器网络定位算法;

        在所给的网络中实现所讲授的无线传感器网络定位算法并进行比较。

2.  实验要求

        掌握典型的无线传感器网络定位算法基本原理,理解PDM定位算法、基于MDS的定位算法。

        利用所给的网络数据,实现两种以上的定位算法并进行比较。

3.  算法介绍

3.1 PDM算法

        算法思想:PDM算法全称为计算邻近度-距离转换矩阵算法 (Proximity-to-Distance Mapping ),也就是说通过计算节点间的邻近度-距离转换矩阵来给未知节点进行定位,本算法中涉及到:

        通过锚节点间协作构建邻近度-距离转换矩阵D=P*T,对于已知的锚节点,它们之间的跳数可以通过Floyd算法计算出来,即可获取关于所有锚节点的跳数矩阵P,而锚节点的坐标已知,其相互之间的距离可以计算出来,即构造了距离矩阵D。利用伪逆技术增强鲁棒性,计算出转换矩阵T:

        若锚节点的分布要能较准确的刻画网络拓扑性质,我们可以认为矩阵T也符合网络中的非锚节点。而非锚节点到锚节点的跳数可以用Floyd算出,即P可算出,通过D=T*P可以算出某个点到锚节点的距离,再调用算法一可以算出坐标。

4.  算法实现

         前提条件:已知位置的锚节点个数要超过3个;对所有节点来说,在添加完邻接矩阵关系后,是一个连通图,没有孤立节点。

        特别说明:图是否为连通图对于PDM算法影响很大,如果有孤立节点,矩阵运算就不会正确,无法定位。

第一步:将数据读入内存

        利用Matlab中已有的函数load将文件中的内容以矩阵的方式读入内存。

第二步:判断锚节的个数

第三步:将所有的两点间的距离关系读入距离矩阵

第四步:利用最短路径算法

        求得两点间的最短路径,以及最短路径下每对节点的上一跳信息。

第五步:构造节点跳数矩阵P_all

        根据上一跳矩阵jump_n,通过循环判断可以得出一个32*320的矩阵P_all,P_all(i,j)表示从第i和点到第j个点最少需要多少跳。

for i = 1:nodes_n

    for j = 1:nodes_n

       temp_num = last_jump(i,j);

       while(temp_num~=i)

           P_all(i,j) = P_all(i,j)+1;

           temp_num=last_jump(i,temp_num);

       end

    end

end

第六步:构造PDM算法所需要的各种矩阵

        所有锚节点的跳数矩阵P_anchors、锚节点的距离矩阵D_anchors、转换矩阵T、非锚节点到锚节点的跳数P_Nanchors、未知节点到锚节点的距离D_Nanchors

P_anchors = P_all(1:anchors_n,1:anchors_n);      

D_anchors = pdist2(true_anchors,true_anchors);       

D_anchors = D_anchors(1:anchors_n,1:anchors_n);

T = D_anchors*transpose(P_anchors)*inv(P_anchors*transpose(P_anchors));       P_Nanchors = P_all(1:anchors_n,33:320);      

D_Nanchors = T*P_Nanchors; 

第七步:利用最小二乘法估算具体位置

第八步:计算误差,输出结果

5.  实验结果和分析

1、实验结果

(1)无误差扰动值

说明:蓝色“*”表示已知点的数据,红色圆点表示无扰动值时估计数据,连线表示误差情况。

(2)5%的误差扰动值

说明:蓝色“*”表示已知点的数据,蓝色圆点表示无扰动值时估计数据,连线表示误差情况。

(3)10%的误差扰动值

说明:蓝色“*”表示已知点的数据,黄色圆点表示无扰动值时估计数据,连线表示误差情况。

​​​​​​​

2、误差分析

        三次定位中,误差(方差)分别为:73.2254、61.5467、60.5671。

        可以看出,此算法在没有改进时定位效果十分不好,其主要原因是在计算距离转换矩阵T的时候,利用了公式,在此公式中使用了P的逆矩阵,当P的某个元素本身很小时,在进行矩阵转换的时候将会变得很大,直接导致了后面的定位不准确。应该利用一定的算法消除误差,在本实验中,由于时间的有限,就不对此进行研究了。但是,通过阅读文献,我们可以知道,PDM算法应该是三个算法中,定位最为准确的算法。

        为了研究锚节点个数对定位的影响,我们将PDM算法的锚节点个数改为3个,即只有1、2、3号节点为锚节点,其定位结果如下:

6.  实验总结

        可以看出,在没有对PDM算法进行改进的情况下,锚节点个数过多反而使PDM算法的定位不准确。在这次物联网定位技术的实验过程中,使我掌握了多种定位算法以及它们的误差特点。

        在阅读给定的文档过程中,遇到了很多比较生涩的地方,一点点查资料、一次次演算,对WiFi指纹定位的原理和无线传感器网络迭代式多边定位算法、DV-HOP算法、PDM定位算法有了比较深入的理解。

        本次实验我在Eclipse上编写调试Android代码,加深了Eclipse功能的认识,更加熟悉了Eclipse在编程中的操作和问题解决方法。实验过程中,我复习了关于Android方面的知识,加深了第Android开发的了解。将所学的知识一个用到了实践中去,理论与实践相结合,从理论中得出结论,在实践中解决问题,这样才能全面提高分析问题解决问题的能力。

        实验也存在许多不足的地方有待改进,例如操作界面不够美观,结果显示不够直观等,有待我们去更深入地学习,进一步优化。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
无需测距的定位技术不需要直接测量距离和角度信息。定位精度相对较低,不过可以满足某些应用的需要。 在计算几何学里多边形的几何中心称为质心,多边形顶点坐标的平均值就是质心节点的坐标。 假设多边形定点位置的坐标向量表示为pi= (xi,yi)T,则这个多边形的质心坐标为: 例如,如果四边形 ABCD 的顶点坐标分别为 (x1, y1),(x2, y2), (x3, y3) 和(x4,y4),则它的质心坐标计算如下: 这种方法的计算与实现都非常简单,根据网络的连通性确定出目标节点周围的信标参考节点,直接求解信标参考节点构成的多边形的质心。 锚点周期性地向临近节点广播分组信息,该信息包含了锚点的标识和位置。当未知结点接收到来自不同锚点的分组信息数量超过某一门限或在一定接收时间之后,就可以计算这些锚点所组成的多边形的质心,作为确定出自身位置。由于质心算法完全基于网络连通性,无需锚点和未知结点之间的协作和交互式通信协调,因而易于实现。 所用到的函数: 1. M = min(A)返回A最小的元素. 如果A是一个向量,然后min(A)返回A的最小元素. 如果A是一个矩阵,然后min(A)是一个包含每一列的最小值的行向量。 2. rand X = rand返回一个单一均匀分布随机数在区间 (0,1)。 X = rand(n)返回n--n矩阵的随机数字。 3. S = sum(A)返回 A 沿其大小不等于 1 的第一个数组维度的元素的总和。 如果A是一个向量,sum(A)可返回元素的总和。 如果A是一个矩阵,然后sum(A)返回一个行向量包含每个列的总和。 4. inf无穷大 此 MATLAB 函数 返回正无穷大的 IEEE 算术表示。除以零和溢出等操作会生成无穷值,从而导致结果因太大而无法表示为传统的浮点值 5. zeros - 创建全零数组 X = zeros返回标量0. X = zeros(n) -由-n矩阵的零返回n. 6. plot(X,Y)画出Y随X变化的2D 曲线。 plot(X,Y,o)用o描述(X,Y)这一点。 7.n= norm(v)返回的 2-范数或欧氏范数的向量v. n = norm (v,p)返回向量范数定义的sum(abs(v)^p)^(1/p),这里p是任何正值, Inf或-Inf. 8.s = num2str(A)数值数组转换为字符数组输出,它表示的数字。输出格式取决于原始值的大小。num2str是用于标签和标题情节与数字值。 所用到的变量: xy:均匀分布的信标节点位置矩阵 n:未知节点数量 SS: 未知节点位置矩阵 dm:通信半径 cent:质心 MM:未知节点估计坐标矩阵 e:估计位置和实际位置距离矩阵(误差)
### 回答1: 徐小龙的《物联网室内定位技术》是一本介绍物联网室内定位技术的专业著作。这本书从基本概念到具体技术应用,系统地介绍了物联网室内定位技术的原理、方法和应用场景。 物联网室内定位技术主要用于在室内环境中获取物体或人员的准确位置信息。相比于室外定位技术,室内定位技术面临着更大的挑战,因为室内环境的复杂性和多变性。而徐小龙的这本书通过详实的案例分析和系统性的论述,为读者深入理解和掌握室内定位技术提供了很好的指导。 徐小龙的这本著作主要包括以下几个方面的内容:首先,介绍了物联网的基本概念和架构,使读者对物联网有一个整体的认识;其次,详细讲解了室内定位技术的原理和方法,包括无线信号定位、声音定位、视觉定位等多种技术手段,为读者提供了广泛的了解和选择;最后,通过具体的应用案例,展示了室内定位技术在各个领域的实际应用,如智能家居、健康管理、物流追踪等。 总而言之,徐小龙的《物联网室内定位技术》是一本权威详实的指导书籍,对于研究物联网室内定位技术的人员来说具有很高的参考价值。无论是对于学术研究者还是工程技术人员,都能从中获得关于物联网室内定位技术的全面知识和实践经验。如果需要阅读这本书,可以通过网络搜索相关资源,获取徐小龙《物联网室内定位技术》的PDF下载。 ### 回答2: 徐小龙是物联网领域的专家,他在物联网室内定位技术方面有很深的研究。他撰写了一篇名为《物联网室内定位技术》的研究论文,提供了关于室内定位技术的详细介绍和分析。这篇论文对于从事物联网室内定位技术研究的人来说非常有价值。 这篇论文主要介绍了物联网室内定位技术的原理、应用和挑战。徐小龙通过对目前主流的室内定位技术进行了综合分析,包括WiFi定位、蓝牙定位、RFID定位等。并讨论了这些技术在实际应用中的优势和不足之处。此外,他还提出了一种集成多种室内定位技术的解决方案,以提高定位的准确性和可靠性。 这篇论文还探讨了室内定位技术在不同领域的应用,包括智能家居、智能医疗、智慧城市等。徐小龙指出,室内定位技术在这些领域中起到了至关重要的作用,可以提供精确的定位服务,实现智能化的应用场景。 然而,徐小龙也指出了当前物联网室内定位技术面临的一些挑战,包括定位误差、成本高昂、隐私保护等问题。他提出了一些改进和解决方案,以克服这些挑战。 总的来说,徐小龙的这篇论文对于研究物联网室内定位技术的人来说是一份非常有价值的资料。可以通过互联网搜索来下载徐小龙的《物联网室内定位技术》pdf版本,以深入了解和学习这个领域的最新进展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值