湖南大学无线传感器网络实验报告DV-HOP
无线传感器网络实验报告

一、实验背景随着物联网技术的飞速发展,无线传感器网络(Wireless Sensor Networks,WSN)作为一种重要的信息获取和传输手段,在军事、环境监测、智能交通、智能家居等领域得到了广泛应用。
为了深入了解无线传感器网络的工作原理和关键技术,我们进行了本次实验。
二、实验目的1. 熟悉无线传感器网络的基本概念和组成;2. 掌握无线传感器网络的通信协议和拓扑结构;3. 熟悉无线传感器网络的编程与调试方法;4. 通过实验,提高动手能力和实践能力。
三、实验内容1. 无线传感器网络概述无线传感器网络由传感器节点、汇聚节点和终端节点组成。
传感器节点负责感知环境信息,汇聚节点负责收集和转发数据,终端节点负责处理和显示数据。
传感器节点通常由微控制器、传感器、无线通信模块和电源模块组成。
2. 无线传感器网络通信协议无线传感器网络的通信协议主要包括物理层、数据链路层和网络层。
物理层负责无线信号的传输,数据链路层负责数据的可靠传输,网络层负责数据路由和传输。
3. 无线传感器网络拓扑结构无线传感器网络的拓扑结构主要有星形、树形、网状和混合形等。
星形拓扑结构简单,但易受中心节点故障影响;树形拓扑结构具有较高的路由效率,但节点间距离较长;网状拓扑结构具有较高的可靠性和路由效率,但节点间距离较远。
4. 无线传感器网络编程与调试本实验采用ZigBee模块作为无线通信模块,利用IAR Embedded WorkBench开发环境进行编程。
实验内容如下:(1)编写传感器节点程序,实现数据的采集和发送;(2)编写汇聚节点程序,实现数据的收集、处理和转发;(3)编写终端节点程序,实现数据的接收和显示。
5. 实验步骤(1)搭建实验平台,包括传感器节点、汇聚节点和终端节点;(2)编写传感器节点程序,实现数据的采集和发送;(3)编写汇聚节点程序,实现数据的收集、处理和转发;(4)编写终端节点程序,实现数据的接收和显示;(5)调试程序,确保各节点间通信正常;(6)观察实验结果,分析实验现象。
物联网定位技术实验DV-Hop报告

物联网定位技术实验报告----------DV-Hop姓名学号:专业班级:物联网工程指导老师:完成时间:20170425目录实验一常用无线传感器网络定位算法实现与比较 (1)1实验背景 (1)2.实验目的 (1)3.使用的工具 (1)4.DV-Hop算法基本思想与基本原理 (1)5.实验详细设计 (1)实验一常用无线传感器网络定位算法实现与比较1实验背景DV-Hop定位机制由美国路特葛斯大学的DragosNiculescu等人提出的,DV-Hop算法是为了避免对节点间的距离直接进行测量而提出的一种基于距离矢量路由(根据目的地远近决定最好路径)的非测距定位算法。
非常类似于传统网络中的距离向量路由(从相邻站点收集网络列表,来路由选择)机制。
2实验目的2.实验目的1.(课堂完成)掌握典型的无线传感器网络定位算法基本原理,理解所讲的迭代式多边定位算法、DV-HOP算法、PDM定位算法、基于MDS的定位算法;2.(实验完成)利用所给的网络数据,实现两种以上的定位算法并进行比较。
3.使用的工具与语言工具:Visual studio语言:C#4.DV-Hop算法基本思想与基本原理(1)通过距离矢量路由方法使未知节点获得与信标节点之间的最小跳数(2)并计算出每跳的平均距离,然后以每跳平均距离和最小跳数的乘积作为未知节点与信标节点之间的估计距离,(3)再利用多边测量法获得未知节点的位置估算。
5.实验详细设计5.1本实验用到的基本数据类型Node(int NodeId,double x, do uble y,intisBeacon)//节点类NodeId—节点idX,y–节点的坐标isBeacon–是否为锚节点List<Node>NodeList–保存节点的信息Dictionary<int, int>hopCountTable–保存着路由信息double[,] d = newdouble[288, 32]; --锚节点i与锚节点j之间的实际距离path[b, c]–表示两点之间的跳数double avg --以锚节点i为基准,计算出的平均每跳距离本实验用到的计算方法是极大似然估计法double[,] A = newdouble[31, 2]; -- 表示如下A的信息double[] B = newdouble[31]; -- 表示如下B的信息double[] C = newdouble[2]; -- 表示如下X的值5.2.本实验用到的一些函数publicstaticvoid Floyd(int[,] path, int n)//找出两点最小跳数publicstaticdouble AvgHopSize(List<Node> list)//计算每跳的平均距离publicstaticvoid Multilateration(double[,] A, double[] B, double[] C)//多变定位本实验分四大阶段:第1阶段:读取信息---读取net1_pos.txt中的节点数据并存入List<Node>NodeList中,读取net1_topo-error free.txt中的节点距离数据,并存入string[] num中。
改进的无线传感器网络DV—Hop定位算法的研究

改进的无线传感器网络DV—Hop定位算法的研究摘要DV-Hop算法是无线传感器网络常用的定位算法,本文在现有DV-Hop 算法及其改进思路的基础上,结合无线传感器网络低能耗的要求,提出一种节能的高精度的DV-Hop定位方法。
关键词无线传感器网络;DV-Hop定位算法;节能;改进前言无线传感器网络(Wireless Sensor Networks,WSN)是指在某个区域分布的传感器,通过无线的方式,把这些传感器收集的信息汇集起来,以实现对该区域内特定状态进行监测和控制。
无线传感器网络广泛应用于军事国防、目标追踪、环境感知和健康監测、智能交通等领域。
而在这些领域的大部分应用里,用户所需的数据中,80%需要与位置相关,这就要求无线传感器网络必须具备可靠的定位技术。
无线传感器网络的定位算法主要分为:基于测距和非测距的算法[1]。
DV-Hop 算法属于非测距的定位算法,通过网络连通性和节点之间互相发送信息的方式来计算未知节点的位置[2],功耗小,但定位精度较低[3]。
为此,许多学者提出了许多改进的无线传感器网络DV-Hop定位算法,有效提高了定位的精度,但仍与实际需求有一定的差距[4]。
为提高无线传感器网络节点定位的精度,提出了一种节能的高精度的DV-Hop定位算法。
1 一种节能的高精度的DV-Hop定位方法目前的研究针对DV-Hop算法的各种缺陷,提出了各种不同的改进方法,取得了一定的成果。
但还是还存在着以下一些问题:改进后的算法定位精度提高得不是很明显、增加了节点的能量消耗、算法对网络连通度依赖仍然过高等。
针对上述问题,本文通过研究DV-Hop算法及其改进算法的思路,综合利用各自的优势,讨论如何提高算法的定位精度,该改进算法拟解决下述4个问题:(1)寻找一种新的可控泛洪协议,既不降低泛洪广播方式的可靠性,还能减少信息内爆、重叠等现象,达到降低发送数据包的数量的目的。
在满足定位精度和定位覆盖率的基础上最大限度地降低节点的通信开销。
基于DV—Hop的无线传感器网络定位算法

基于DV—Hop的无线传感器网络定位算法作者:冀汶莉贾东来源:《硅谷》2013年第06期摘要针对无线传感器网络中DV-Hop经典算法定位精度低的不足,提出了一种改DV-Hop定位算法;改进后的算法对锚节点的选取进行了优化,并改进节点跳数,还采用平均计算方法计算节点平均每跳距离。
仿真表明,改进的DV-Hop算法对未知节点的定位精度有显著提高。
关键词 WSN;DV-Hop算法;节点定位中图分类号:TP393 文献标识码:A 文章编号:1671—7597(2013)032-058-021 概述无线传感器网络(Wireless Sensor Network,WSN)是由一套称为传感器节点的独立装备组合而成,这些传感器节点具有通信、感知、数据处理和存储等功能,并通过无线通信方式形成一个自组织的网络系统。
定位是无线传感器网络绝大部分应用中的一个基本问题,主要任务是获得每个节点绝对或相对,精确或近似的位置。
传感器是网络中的基本单位,节点定位是无线传感器网络关键支撑技术之一。
无线传感器网络中,节点分为两类:锚节点(anchor node)和未知节点(unknown node),前者向网络广播信标信息(beacon),并且已知自身位置,后者获得与其他节点的距离或者跳数信息,进而根据一定的算法得到位置信息,从而协助未知节点定位。
2 节点位置的计算方法在获得与锚节点的距离或相关角度信息,并满足节点定位计算条件的基础上,可通过相关定位计算的基本方法来计算出节点位置。
计算的基本方法包括:三边测量、三角测量、极大似然估计等。
本文以极大似然估计为例,予以介绍。
假如同时定位若干个节点,则构建的完整系统必须有严格的条件限制,形成的方程组条件充分,且拥有唯一的一个解。
如图1,已知A1(x1,y1),A2(x2,y2),...An(xn,yn)的位置坐标,它们到D(x,y)的距离分别是d1,d2,...dn,则存在:可将上式视为线性方程组AX=b,解之得:得节点D的坐标为:3 DV-Hop算法分析DV-Hop(Distance Vector-Hop)通过计算锚节点与未知节点的最小跳数,对平均每跳的距离进行估计,再使用跳段距离代替实际距离来计算未知节点的定位坐标。
无线传感器网络中—种基于加权的DV-Hop定位算法

无线传感器网络中—种基于加权的DV-Hop定位算法随着科技的发展,无线传感器网络(WSN)被广泛应用于农业、能源、环境等领域,定位技术成为其重要的研究方向之一。
基于跳数的分布式定位算法(DV-Hop)因其简单、经济和可靠的特点而受到广泛关注。
本文将介绍一种基于加权的DV-Hop定位算法。
传统DV-Hop定位算法利用无线传感器网络中节点的跳数来计算节点的位置,其基本思想是节点利用其跳数信息和锚节点的位置信息来进行三角定位,从而分布式地计算节点位置。
然而,这种方法存在着误差较大的问题。
因此,研究者提出了一种基于加权的算法来解决传统算法中误差较大的问题。
基于加权的DV-Hop定位算法将节点间的距离作为权重,利用跳数和权重的乘积来计算节点的位置,从而减小位置误差。
该算法的基本步骤如下:1. 以锚节点为根节点构建一个拓扑结构,计算任意两个节点之间的距离。
2. 将距离的倒数作为权重,以根节点为起点使用DV-Hop算法计算出所有节点到根节点的距离信息。
3. 利用跳数信息和加权距离信息,通过三角定位算出每个节点的位置。
其中,节点位置的计算可以使用多种三角定位算法,如最小二乘法、加权最小二乘法等。
相比传统DV-Hop定位算法,基于加权的算法不仅考虑跳数信息,而且将距离作为权重,使得定位的精度更高。
同时,该算法没有增加额外的通信开销,因此保持DV-Hop算法的经济性和可靠性。
然而,基于加权的算法在实际应用中仍存在一些问题。
由于节点间的距离或权重可能存在变化,节点位置的准确性会受到影响。
此外,由于算法计算过程相对复杂,需要较高的计算能力。
因此,在实际应用中需要根据实际情况选择合适的算法。
总之,基于加权的DV-Hop定位算法作为一种有效的定位方法,在无线传感器网络中得到了广泛的应用。
然而,在具体应用中,需要充分考虑算法的优缺点,选择合适的算法以提高定位精度和准确性。
基于DV-HOP的无线传感器网络非测距定位算法的研究

基于DV-HOP的无线传感器网络非测距定位算法的研究无线传感器网络作为一种新的实时监控和信息处理技术,在未来的社会发展中具有重要的作用。
在无线传感器网络的众多应用中,节点定位技术是其应用于目标监测、目标识别和目标跟踪的支撑技术之一,因此具有很大的研究意义。
在节点定位算法中,基于非测距机制的DV-HOP算法具有成本低,能耗小,算法实现简单等优点而被大量关注,但该算法也存在定位误差较大的不足。
本文通过分析DV-HOP算法在定位时产生较大误差的原因,提出优化方案来进行改进,主要工作如下:(1)为了提高DV-HOP算法的定位精度,并针对该算法在利用最大似然估计法求解未知节点坐标过程中,包含的矩阵方程存在累积误差以及需要大量的浮点运算导致计算成本较大的问题,提出了一种免疫粒子群优化的DV-HOP定位算法。
本文将智算法中原理简单、易于实现的PSO算法运用到DV-HOP算法中,通过分析PSO算法存在的不足,引入免疫机制来改进PSO算法,克服迭代寻优中的不够稳定,容易陷入局部最优解的问题,再利用改进的免疫粒子群算法取代DV-HOP算法中使用极大似然法获取未知节点位置,从而对DV-HOP算法的定位结果进行优化。
(2)本文将二维的DV-HOP算法延伸至三维空间中,展开对三维DV-HOP算法的研究。
针对三维空间中DV-HOP算法在计算跳数和跳距时存在的不合理方面,提出了一种基于跳数修正和平均跳距选择策略的三维DV-HOP定位算法。
首先对最小跳数估值法进行改进,通过细化通信半径,让信标节点广播时分别采用多个不同的功率,划分邻居节点组通信从而获取非整数的最小跳数,提高了最小跳数的计算精度;另外,由于单个参考信标不能反映整个网络的特性,利用相同的平均跳距计算距离会产生较大误差,本文提出了根据节点具体位置去选择不同的平均跳距计算方法,当信标节点距离未知节点较远时,则采用多个信标加权取平均来计算,使得平均跳距计算更为准确;最后利用改进的免疫粒子群算法优化未知节点坐标。
基于DV-Hop的无线传感器网络定位算法

T i ag rtm d sa b o d a to e n w a c o r m e o d r u d t e o  ̄ s te P I o n n w o e c o d n o t e h s l o h a d r a c s ft e n h r f i h o s c n o n ,h n c n r h R fu k o n n d s a c r ig t h m n mb ro errc i e r a c ss f m n h r , n h o e h o ewi h ih s P n o ae t y DV —Ho a d te u e ft i e ev d b o d a t r a c o s a d c o s st e n d t t e h g e t RIa d l c t si b h o h p, n h n
u d t si t e a c o , d i ep st n n r c s sn eg td la ts u r smeh d t e u et e c mu aie e rr C o — p a e an w n h r a n t o i o i gp o e su ig w ih e s q ae to or d c h u l t ro . h o to n h i e v
0 引言
节点升级为锚节点 的 D V—H p定 位算 法 , o 并给 出 了仿真实 验 的结果及其分析 。
1 DV— H叩 算法描述 定位技术是无 线传 感器 网络 重要 的共 性支撑技术 之一。 无线传感器网络节 点通 常采 用随机布撒方式 , 无法事 先知道 自 身位置 , 此 传感 器 节 点 必 须 能 够 在 布 撒 后 实 时 进 行 自定 因 位 。无线传感器 网络 中的节点 定位 就是指 依靠 有 限个位 置已知的节点( 也称为锚节点) 按 照某种方式确定 网络 中其他 ,
基于DV-Hop的无线传感器网络定位算法优化研究

基于DV-Hop的无线传感器网络定位算法优化研究无线传感器网络在众多领域中有着非常广阔的应用前景,其中节点定位技术是无线传感器网络的关键技术之一。
DV-Hop定位算法是该技术中广泛使用的一种算法,然而受到节点分布均匀程度的约束的原因,算法的定位精度有一定影响。
因此,提高DV-Hop定位算法的定位精度就成为一项重要的研究课题。
本文对DV-Hop定位算法存在的主要问题进行了阐述,重点讨论了提高DV-Hop定位算法定位精度的改进措施。
(1)针对最小跳数和平均跳距导致的定位误差,提出基于跳数细化与距离校正的DV-Hop改进算法,通过引入RSSI测距技术修正最小跳数,并且用跳距误差与估计距离误差的加权平均值修正平均跳距。
(2)针对未知节点利用最小二乘法计算自身坐标导致的定位误差,提出基于分段权重与学习因子同步变化的遗传粒子群优化的DV-Hop改进算法,通过分段权重、学习因子及遗传机制改进粒子群算法以代替最小二乘法。
(3)将前两种算法结合,提出基于MCD-GSLPSO优化的DV-Hop改进算法,通过GAPSO算法对MCD-DV-Hop定位算法进行优化。
本文提出的3种改进算法在MATLAB 平台上从锚节点数量、通信半径、节点总数三个方面进行了仿真。
仿真结果表明:改进算法的定位误差均比经典DV-Hop定位算法要小,其中基于MCD-GSLPSO优化的DV-Hop定位算法定位误差最小,定位精度最高。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
无线传感器网络题目:DV-hop定位算法学生:学号:完成时间: 2014.5.121一、实验目的1、掌握matlab工具的使用方法。
2、了解DV-hop算法原理,熟悉DV-hop算法代码,分析DV-hop算法实验结果。
二、实验原理DV-hop算法概述(一)基本思想:3、计算位置节点与犀鸟节点的最小跳数4、估算平均每跳的距离,利用最小跳数乘以平均每条的距离,得到未知节点与信标节点之间的估计距离5、利用三遍测量法或者极大似然估计法计算未知节点的坐标(二)定位过程1、信标节点向邻居节点广播自身未知信息的分组,其中包括跳数字段,初始化为02、接受节点记录具有到每条信标节点的最小跳数,忽略来自一个信标节点的较大跳数的分组,然后将跳数数值加1,并转发给邻居节点3、网络中所有节点能够记录下到每个信标节点最小跳数(三)计算未知节点与信标节点的实际跳段距离1、每个信标节点根据记录的其他信标节点的位置信息和相距跳数,估算平均每跳距离2、信标节点将计算的每条平均距离用带有生存期字段的分组广播至网络中,未知节点仅仅记录接受到的第一个每跳平均距离,并转发给邻居节点3、未知节点接受到平均每跳距离后,根据记录的跳数,计算到每个信标节点的跳段距离(四)利用三边测量法或者极大似然估计法计算自身位置4、位置节点利用第二阶段中记录的到每个信标节点的跳段距离,利用三边测量法或者极大似然估计法计算自身坐标三、实验容和步骤DV-hop代码如下:function DV_hop()load '../Deploy Nodes/coordinates.mat';load '../Topology Of WSN/neighbor.mat';if all_nodes.anchors_n<3disp('锚节点少于3个,DV-hop算法无法执行');return;end%~~~~~~~~~~~~~~~~~~~~~~~~~最短路经算法计算节点间跳数~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~shortest_path=neighbor_matrix;shortest_path=shortest_path+eye(all_nodes.nodes_n)*2;shortest_path(shortest_path==0)=inf;shortest_path(shortest_path==2)=0;for k=1:all_nodes.nodes_nfor i=1:all_nodes.nodes_nfor j=1:all_nodes.nodes_nifshortest_path(i,k)+shortest_path(k,j)<shortest_path(i,j)%min(h(i,j),h(i,k)+h(k, j))shortest_path(i,j)=shortest_path(i,k)+shortest_path(k,j);endendendendif length(find(shortest_path==inf))~=0disp('网络不连通...需要划分连通子图...这里没有考虑这种情况');return;end%~~~~~~~~~~~~~~~~~~~~~~~~~求每个信标节点的校正值~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~anchor_to_anchor=shortest_path(1:all_nodes.anchors_n,1:all_nodes.anchors_n);for i=1:all_nodes.anchors_nhopsize(i)=sum(sqrt(sum(transpose((repmat(all_nodes.true(i,:),all_nodes.anchors _n,1)-all_nodes.true(1:all_nodes.anchors_n,:)).^2))))/sum(anchor_to_anchor(i,:) );end%~~~~~~~~~~~~~~~~~~~~~~~每个未知节点开始计算自己的位置~~~~~~~~~~~~~~~~~~~~for i=all_nodes.anchors_n+1:all_nodes.nodes_nobtained_hopsize=hopsize(find(shortest_path(i,1:all_nodes.anchors_n)==min(short est_path(i,1:all_nodes.anchors_n))));%未知节点从最近的信标获得校正值,可能到几个锚节点的跳数相同的情况unknown_to_anchors_dist=transpose(obtained_hopsize(1)*shortest_path(i,1:all_nod es.anchors_n));%计算到锚节点的距离=跳数*校正值%~~~~~~~~~~最小二乘法~~~~~~~~~~~~~~~`A=2*(all_nodes.estimated(1:all_nodes.anchors_n-1,:)-repmat(all_nodes.estimated( all_nodes.anchors_n,:),all_nodes.anchors_n-1,1));anchors_location_square=transpose(sum(transpose(all_nodes.estimated(1:all_nodes .anchors_n,:).^2)));dist_square=unknown_to_anchors_dist.^2;b=anchors_location_square(1:all_nodes.anchors_n-1)-anchors_location_square(all_ nodes.anchors_n)-dist_square(1:all_nodes.anchors_n-1)+dist_square(all_nodes.anc hors_n);all_nodes.estimated(i,:)=transpose(A\b);all_nodes.anc_flag(i)=2;end%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~save '../Localization Error/result.mat' all_nodes comm_r;end通信半径:200m锚节点的通信半径:200m通信模型:Regular Model网络的平均连通度为:31.3667网络的邻居锚节点平均数目为:6.5一共300个节点:60个锚节点,240个未知节点,0个不能被定位的未知节点定位误差为0.30127这里在计算节点与锚节点距离时使用跳数相乘距离修正值,实现了对基础DV-hop算法的改进,因此增大通信距离是不能增大算法误差的通信半径:400m锚节点的通信半径:400m通信模型:Regular Model网络的平均连通度为:100.6533网络的邻居锚节点平均数目为:19.39一共300个节点:60个锚节点,240个未知节点,0个不能被定位的未知节点定位误差为0.26588但是此算法增大锚节点密度对误差减小基本没有意义通信半径:200m锚节点的通信半径:200m通信模型:Regular Model网络的平均连通度为:31.9网络的邻居锚节点平均数目为:18.7833一共300个节点:180个锚节点,120个未知节点,0个不能被定位的未知节点定位误差为0.31443增大锚节点通信距离会显著增大误差,这是因为修正值修正到平均距离,但是锚节点通信距离与该值偏离很大通信半径:200m锚节点的通信半径:400m通信模型:Regular Model未知节点能侦听到的锚节点平均数目为:20.7417未知节点通信区域的未知节点平均数目为:25.4333一共300个节点:60个锚节点,240个未知节点,0个不能被定位的未知节点定位误差为0.63806不规则的通信也会严重影响这种基于跳数估计距离的定位算法通信半径:200m锚节点的通信半径:200m通信模型:DOI ModelDOI=0.015网络的平均连通度为:41.33网络的邻居锚节点平均数目为:7.98一共300个节点:60个锚节点,240个未知节点,0个不能被定位的未知节点定位误差为1.0595算法改进:要设计更加合理的估计跳数距离的方法,克服通信模型不规则和通信距离带来的影响。
四、实验总结虽然DV-Hop算法相对基于测距的定位技术精度较低,但不需要节点具备测距能力,无需额外硬件、能耗较低、受环境影响较小,算法简单,易于实现,对于各向同性的密集网络,可以得到合理的平均每跳距离,定位精度等方面能满足大多数应用的要求,在硬件尺寸和功耗上更适合大规模低能耗的WSN,是目前备受关注的定位机制,许多定位系统都采用了该算法来实现。
由于节点是随机部署的,未知节点与信标节点之间的跳段距离通常不是二者之间的直线距离。
在各向同性的密集网络中,校正值才能合理地估算平均每跳距离,这是基于多跳的定位算法普遍存在的问题,采用DV-Hop算法过大估计了跳段的距离;未知节点计算与信标节点之间的跳数,结果都是整数,这大约增加了0.5个平均跳数的误差。
通过DV-Hop算法中节点间距离度量的分析,可以发现利用这些距离没有反映出信标节点对节点位置的影响力的大小,影响了定位精度。