DV-HOP锚节点比例与定位误差的关系仿真程序

合集下载

基于DV—Hop的无线传感器网络定位算法

基于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传感器节点定位算法

基于误差修正的DV-Hop传感器节点定位算法李晓明【期刊名称】《计算机仿真》【年(卷),期】2013(030)008【摘要】传统的DV-Hop传感节点定位算法,估计未知节点与各锚节点之间距离是用跳段距离代替直线距离.在实际网络定位环境中,未知节点和锚节点之间多数是折线连接.当平均每跳距离的估计值与实际值的偏差较大时,未知节点到锚节点之间估计距离与实际距离之间的误差会增大.为解决上述问题,提出一种粒子群优化算法修正DV-Hop算法定位误差的传感器节点定位方法.采用DV-Hop算法估计待测节点和锚节点之间距离,通过三边测量法确定节点的位置,并将传感器节点定位问题转换成一个多约束优化问题,最后通过粒子群优化算法对定位误差进行修正,并通过仿真对其性能进行测试.仿真结果表明,相对传统DV-Hop算法可大幅度提高传感器节点定位精度,符合无线传感器网络定位需求,具有较好的应用价值.%DV-Hop algorithm substitute jump distance for linear distance,and the cumulative error is increased with nodes' distance.In order to improve the positioning accuracy of sensor node,the DV-Hop algorithm error must be analyzed and improved.This paper proposed a sensor node localization method which improves DV-Hop algorithm with particle swarm optimization algorithm.Firstly,the improved DV-Hop algorithm was used to estimate the sensor node and the anchor node location,and then the location was determined by three side measurement methods,and the node localization problem was converted into a constrained optimization problem.Finally,theparticle swarm optimization algorithm was used to correct the localization error to improve the sensor positioning accuracy.The simulation results show that the proposed method greatly improves the sensor node localization accuracy compared with the DV-Hop algorithm and overcomes the shortcomings in DV-Hop algorithm.【总页数】4页(P281-284)【作者】李晓明【作者单位】齐齐哈尔大学计算机与控制工程学院,黑龙江齐齐哈尔161006【正文语种】中文【中图分类】TP398【相关文献】1.基于RSSI测距和DV-HOP误差修正的WSN节点定位 [J], 任红建;朱玲玲;杨爱琴2.基于跳距二次误差修正的DV-Hop定位算法研究 [J], 王进忠3.基于DV-Hop算法的海洋无线传感器网络节点定位 [J], 曹立杰4.基于锚节点分布特性的跳距修正的DV-HOP定位算法 [J], 李跃飞5.基于DV-Hop误差修正的煤矿井下人员定位算法 [J], 吕明;耿欣蕊;李志超;陈丹丹;张瑜因版权原因,仅展示原文概要,查看原文内容请购买。

DV―Hop算法在节点定位中的应用

DV―Hop算法在节点定位中的应用

DV―Hop算法在节点定位中的应用DV―Hop算法在节点定位中的应用基于跳数和平均跳数距离求取节点间距离的DV-Hop算法是与信号衰减无关的节点定位算法,在网络本钱、布局和信号衰减的角度具有较高的实用性。

本文在详细介绍了DV-Hop算法的定位原理的根底上,分析了算法的主要误差来源于节点的跳数和平均跳数距离值的求取,并列举了目前针对于该算法在节点定位方面所提出的改良方案。

在节点定位方面,通过本文的学习,可以为后续的优化定位算法提供一定的技术参考。

【关键词】节点定位无线网络DV-Hop算法DV-Hop定位算法采用跳数信息计算节点间的距离值,无需采用RSSI信号强度估算节点间距离,即使在低信标密度的条件下也能获得较高的定位精度。

1 DV-Hop定位算法该算法利用距离矢量的多跳传输定位算法,无需测量节点间距离,该算法的定位过程共分为3个阶段。

1.1 计算未知节点与每个锚节点的最小跳数锚节点向周围播送包含自身位置信息的节点之间跳数分组包,跳数初始值为0,分组包如表1所示。

直连通信范围内的邻居节点邻居节点接收分组信息,并记录来自于同一个锚节点的最小跳数,然后将跳数加1,并转发给其他邻居节点。

在洪泛过程中,锚节点的位置以及锚节点到未知节点的跳数信息记录在未知节点上。

2 DV-Hop算法的主要问题定位精度与网络功耗是该算法应用的主要性能指标,目前在节点定位方面,该算法主要存在以下的问题。

算法中的网络节点需要通过播送数据包的方式获得网络节点的信息,数据传输大,网络的通信开销和能耗较大。

锚节点布置不均匀,平均跳数距离计算的精度也就不相同。

锚节点密度大的区域,跳段距离值计算精度高,反之,那么精度低。

锚节点密度的也不能过大,当锚节点密度增加到一定程度时,增加锚节点的密度并不能改善平均跳数距离估算精度,反而会增加网络本钱。

3 目前采用的改良方法目前在平均跳数距离和跳距的方面进行了很多的研究,采用多种方法提高节点定位的精度,定位技术有了很大的提高。

DV-Hop定位算法的定位精度优化算法的开题报告

DV-Hop定位算法的定位精度优化算法的开题报告

DV-Hop定位算法的定位精度优化算法的开题报告一、选题背景及意义随着无线传感器网络技术的发展,它在无线传感器网络中的应用得到了越来越广泛的应用。

传感器节点在现实环境中需要进行位置定位,传感器节点的位置信息对网络的拓扑结构设计、数据传输、定位精度等方面都有着重要的影响。

DV-Hop算法是一种基于跳数测距的无线传感器网络定位算法,具有实现简单、无需节点进行频率同步、容错性强等优点。

但是,该算法的测距误差会随着跳数的增加而累计,导致最终的定位误差较大,因此需要对该算法进行优化,提高其定位精度。

二、研究内容和研究计划本文主要研究DV-Hop算法的定位精度优化算法,包括以下内容:1. DV-Hop算法定位误差分析:分析DV-Hop算法定位误差的来源,找出影响定位精度的因素。

2. 定位误差优化方法研究:根据定位误差分析结果,提出一种优化方法,探讨其可行性和有效性,进而提高DV-Hop算法的定位精度。

3. 实验验证与结果分析:通过实验对优化后的DV-Hop算法进行测试和验证,分析实验结果,与其他算法进行比较,证明该算法优化的有效性。

预计研究进度如下:第一阶段:2022年3月-2022年6月完成DV-Hop算法基础研究和定位误差分析,确定研究方向和研究内容。

第二阶段:2022年7月-2022年10月完成优化方法研究,探讨其可行性和有效性,设计算法流程和实验测试方案。

第三阶段:2022年11月-2023年2月进行算法测试和验证,实验测试数据收集和分析,比较实验结果,总结研究成果。

三、参考文献[1] Basagni S, Conti M, Giordano S, et al. Sins: Sensor network-based inspection systems[C]//IEEE Aerospace Conference Proceedings, 2002. IEEE, 2002: 1369-1378.[2] Niculescu D, Nath B. Ad hoc positioning system (APS) using AOA[J]. ACM SIGMOBILE Mobile Computing and Communications Review, 2003, 7(3): 28-31.[3] Mao G, Fidan B, Anderson B. Wireless sensor network localization techniques[J]. Computer Networks, 2007, 51(10): 2529-2553.[4] Savvides A, Han C C, Strivastava M B. Dynamic fine-grained localization in ad-hoc networks of sensors[J]. International Journal of High Performance Computing and Networking, 2002, 1(1/2): 88-96.[5] Xu Y, Heidemann J, Estrin D. Geography-informedenergy conservation for ad hoc routing[J]. Mobile Networks and Applications, 2001, 6(2): 121-129.。

无线传感器网络DV-Hop定位算法的研究

无线传感器网络DV-Hop定位算法的研究

Ab t a t B c u e t e s a ef c o f n h rn d si l s l ea e o b t o el c l a i n a c r c n o e a e r t s r c e a s h c l a t ro c o o e Sco e y r lt d t o h n d ai t c u a y a d c v r g a e a o z o
p s d i h a e h o g n lzn h o e n t e p p lc t n a g rt m o mp o ig t e l c t n a c r c n o e a e r t . Ho o a i l o ih f r i r v n h o a i c u a y a d c v r g ae o o
总第 2 5 4 期 21 年第 3 00 期
计算机 与数字工程
C mp tr& D gtl n ier g o ue ii gn e i aE n
Vo . 8 No 3 13 .
34
无线 传 感 器 网络 D — p定位 算 法 的研 究 V Ho
白凤 娥 姜晓荣 牟 汇慧
( l g f mp t rEn iern n o t r ,Tay a ie st f c n lg ,Tay a 0 0 2 ) Col eo e Co u e gn eiga dS f wa e iu n Unv r i o y Te h oo y iu n 3 0 4
Un n wnn d so l eev no maino n h rn d swi i td h p n i k o o e nyrc ieifr t fa c o o e t l e o s i DV- p lc l ain ag rtm. W h n au — o h mi Ho o ai t lo ih z o e n k o o er c ie r h n 3a c o o e ,t eu k o o ei lc td a d c n etd t n h rn d . Th n。t eod n wnn d e ev smo et a n h rn d s h n n wn n d S o ae n o v re O a c o o e e h l a d ten w n h rn d sa eiv le nt elc t n o h e tu k o o e. F n l n h e a c o o e r n ov d i h o a i ft er s n n wn n d s ial h i lto e uts o h t o y。t esmuain rs l h wsta

DV-Hop定位算法的误差分析

DV-Hop定位算法的误差分析

第7期2018年4月No.7April,2018美国的Rutgers University(路特葛斯大学)的 Niculescu等[1]利用GPS定位和距离向量路由的原理提出了(DistanceVector-Hop,DV-Hop)定位算法。

1 DV-Hop算法的过程DV-Hop定位算法可以分为3个过程:第一过程是无线传感器网络(Wireless Sensor Networks,WSN)中使用经典距离矢量交换协议来获得节点距锚节点的最小跳数;第二过程是每个锚节点根据与其他锚节点之间的距离和最小跳数,计算自己的平均跳距,并采用可控洪泛法向全网广播,保证未知节点仅收到一个广播值;第三过程是未知节点利用收到的广播值与至少3个的锚节点的最小跳距,来获得未知节点到锚节点距离,然后采用3边测量定位或者最小二乘法来得到自身的位置。

2 获得节点距锚节点的最小跳数首先使用距离矢量交换协议,锚节点向它的邻居节点广播消息,消息包括锚节点的标识符、位置信息和跳数值,跳数的初始值设置为0;邻居节点接收到消息后,先将跳数值加1,然后记录下此消息,并将记录下的信息广播给它的邻居节点,重复以上步骤,直到所有节点都具有锚节点的位置信息和彼此间的最小跳数。

由于采用广播的途径,一个锚节点广播的消息可能多次到达同一节点,导致信息冗余,增加了通信开销。

为了消除广播消息的无限循环,只有新的锚节点消息才能被节点广播,垃圾消息将被抛弃。

垃圾消息是指节点在接收信息的时候,由于路径的不同,导致节点可能收到多个相同锚节点的信息,感兴趣的是跳数值最小的那条消息,其他消息都认为是垃圾消息。

3 未知节点获得平均跳距锚节点根据自己存储的消息,即其他锚节点的标识符、位置信息和跳数值通过式(1)运算得到这个锚节点跟其他锚节点之间的每跳的平均距离,即平均跳距:HopSizeij i≠=(1)i代表这个锚节点,j代表其他锚节点,(x i,y i)和(x j,y j)分别表示节点i和节点j的位置的坐标,hop j表示锚节点i和锚节点j的跳数值,HopSize i是锚节点i的平均跳距。

基于DV—Hop的修正和改进定位算法

基于DV—Hop的修正和改进定位算法

D Ho lo t m s a ay e n me d n e a c o o e s c lu ain o e a e a e d s n e o a h h p V- p ag r h i n l z d a d a n i g t n h rn d ’ ac l t ft v r g i a c fe c o . i h o h t Mo e a c o o e i l w d t a t ia e i h n lp s in c c lt n a d t e w ih e e t i g r h i r n h r n d sa o e o p r cp t n t ef a o i o a ua i n h eg td c n r d a o i m s l i i t l o o l t
L] h n I aj ,S N Y nfi t Z e ,L .e U a — ,WA G S uca Y i e N h —h
( c o l f l ti l n n r l n i e r g l o ig T c nc l n v ri , ld o 1 5 0 , hn ) S h o o e r a d Co t gn ei , a n n eh i ie s y Hu u a 2 1 5 C ia E c c a o E n i aU t
21 00年 第 2 9卷 第 8期
传 感 器 与 微 系统 ( rnd cr n coyt eh o g s Ta su e a dMi ss m T cnl i ) r e oe
3 1பைடு நூலகம்
基 于 D Ho V— p的修 正 和 改进 定 位 算 法
吕 振 ,李亚 杰 ,孙延 飞 ,王 书茶
离无关的定位算法 。该算法 无需任何 的额外 硬件 支持 、 算 法简单 , 以, 所 比较适合 用做 无线传感 器的定位 。其基本 过 程就是将未知节点到锚 节点之间的距 离用网络 中节 点平 均

基于DV-HOP的改进算法及仿真

基于DV-HOP的改进算法及仿真

基 于非 测 距 的定 位 算 法 中通 常 广 播 3种 定 位 消
息 :D V—H P、D —Ds ne和 E c d a o文 献 O V iac t ul en i
[] 4 的算 法虽 然 其 基 本 原 则 和 D V—H P相 同 ,但 是 O 作 者却无 法解 释测 试结 果 的精 度 却 和文 献 [ ] 的结 3中
果 大相 径庭 的原 因 。在 D —H P算 法 中锚 节 点 获取 V O
到 距其 周 围所有锚 节 点 的坐 标信 息和 跳数信 息 后就 计 算 出 A S A eaeo p 。然 后该 锚 节 点 就 向它 周 H ( vrg f Ho ) 围的 普通 节 点 广 播 该 A HS值 。 当普 通 节 点接 收到 锚
摘 要
2 30 ) 4 0 2
节 点 定 位 技 术 是 无 线 传 感 器 网络 中 的 关键 技 术 之 一 。 为 了提 高 节 点 定 位 精 度 ,在 D ~H P算 法 的 基 础 V O
上提 出两 种 改进 措 施 :锚 节 点 规 划 部 署 和 加 权 算 法 ,改 进 后 的 算 法 统 称 为 加 权 D —H P V O 。在 新 算 法 的 基 础 上 建 立 M t b仿 真 模 型 。仿 真 结 果 表 明加 权 D aa l V—HO P算 法 ,在 相 同的 锚 节 点 数 量 和 锚 节 点 无 线 覆 盖 范 围 下 , 节 点 定 位 精 度
wi a mo n fa c o o e n e a a i a g o d t n. t sme a u to n h rn d su d rs mer do r n e c n ii h o
Ke ywo ds wi ls e srn t r s; n d o aia in; a c o r r es s n o ewok e o e lc l t z o nhr

DV-HOP通信半径与定位误差仿真程序

DV-HOP通信半径与定位误差仿真程序

%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DV-Hop算法(定位误差与通信半径关系)~~~~~~~~~~~~~~~~~~~~~~~~%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~% BorderLength-----正方形区域的边长,单位:m% NodeAmount-------网络节点的个数% BeaconAmount---信标节点数% Sxy--------------用于存储节点的序号,横坐标,纵坐标的矩阵%Beacon----------信标节点坐标矩阵;BeaconAmount*BeaconAmount%UN-------------未知节点坐标矩阵;2*UNAmount% Distance------未知节点到信标节点距离矩阵;2*BeaconAmount%h---------------节点间初始跳数矩阵%X---------------节点估计坐标初始矩阵,X=[x,y]'% R------------------节点的通信距离,一般为10-100mclear,close all;BorderLength=100;NodeAmount=100;BeaconAmount=10;UNAmount=NodeAmount-BeaconAmount;R=20;h=zeros(NodeAmount,NodeAmount);%初始跳数为0;BeaconAmount行NodeAmount列X=zeros(2,UNAmount);%节点估计坐标初始矩阵Y=5; %%运算次数,R=R*Y%~~~~~~~~~~~~~~~~~~~~~~~~~~~~初始化节点间距离、跳数矩阵~~~~~~~~~~~~~~~~~~~~~~for Z=1:Yloop=100;for kk=1:loop; %循环100次求平均值,避免偶然误差C=BorderLength.*rand(2,NodeAmount);%带逻辑号的节点坐标Sxy=[[1:NodeAmount];C];%Sxy(2,1:BeaconAmount)=[0 100 0 100 50]; % 25 25 75 75];%Sxy(3,1:BeaconAmount)=[0 0 100 100 50];Beacon=[Sxy(2,1:BeaconAmount);Sxy(3,1:BeaconAmount)];%信标节点坐标UN=[Sxy(2,(BeaconAmount+1):NodeAmount);Sxy(3,(BeaconAmount+1):NodeAmo unt)];%未知节点坐标Dall=zeros(NodeAmount,NodeAmount);for i=1:NodeAmountfor j=1:NodeAmountDall(i,j)=((Sxy(2,i)-Sxy(2,j))^2+(Sxy(3,i)-Sxy(3,j))^2)^0.5;%所有节点间相互距离if (Dall(i,j)<=R)&(Dall(i,j)>0)h(i,j)=1;%初始跳数矩阵elseif i==jh(i,j)=0;else h(i,j)=inf;endendend%~~~~~~~~~~~~~~~~~~~~~~~~~最短路经算法计算节点间跳数~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~for k=1:NodeAmountfor i=1:NodeAmountfor j=1:NodeAmountif h(i,k)+h(k,j)<h(i,j)%min(h(i,j),h(i,k)+h(k,j))h(i,j)=h(i,k)+h(k,j);endendendend%~~~~~~~~~~~~~~~~~~~~~~~~~求每个信标节点的校正值~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~h1=h(1:BeaconAmount,1:BeaconAmount);D1=Dall(1:BeaconAmount,1:BeaconAmount);for i=1:BeaconAmountdhop(i,1)=sum(D1(i,:))/sum(h1(i,:));%每个信标节点的平均每跳距离endD2=Dall(1:BeaconAmount,(BeaconAmount+1):NodeAmount);%BeaconAmount行UNAmount列for i=1:BeaconAmountfor j=1:UNAmountif min(D2(:,j))==D2(i,j)Dhop(1,j)=dhop(i,1);%未知节点从最近的信标获得校正值endendenddhop%~~~~~~~~~~~~~~~~~~~~~~~~~~~用跳数估计距离~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~hop1=h(1:BeaconAmount,(BeaconAmount+1):NodeAmount)%未知节点到信标跳数,BeaconAmount行UNAmount列for i=1:UNAmounthop=Dhop(1,i);%hop为从最近信标获得的校正值Distance(:,i)=hop*hop1(:,i);%%Beacon行UN列;end% %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~最小二乘法求未知点坐标~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~d=Distance;for i=1:2for j=1:(BeaconAmount-1)a(i,j)=Beacon(i,j)-Beacon(i,BeaconAmount);endendA=-2*(a');% d=d1';for m=1:UNAmountfor i=1:(BeaconAmount-1)B(i,1)=d(i,m)^2-d(BeaconAmount,m)^2-Beacon(1,i)^2+Beacon(1,BeaconAmount)^2-Beacon(2,i)^2+Beacon(2,BeaconAmount)^2;endX1=inv(A'*A)*A'*B;X(1,m)=X1(1,1);X(2,m)=X1(2,1);endfor i=1:UNAmounterror(Z,i)=(((X(1,i)-UN(1,i))^2+(X(2,i)-UN(2,i))^2)^0.5);endavgerror(Z,kk)=sum(error(Z,:))/UNAmountAccuracy(Z,1)=sum(avgerror(Z))/R %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%if Accuracy == Infdisp('重新运行程序.')returnelseif Accuracy==NaNdisp('重新运行程序.')returnendendR=R+20;endtitle('未知节点的误差');%%~~~~~~~~~~~~~~~~~~~~~~~~画出节点精确度图~~~~~~~~~~~~ plot(20:20:100, Accuracy(:,1),'-o')xlabel('通信半径/m');ylabel('归一化平均定位误差');title('节点定位误差和通信半径的关系');。

DV-Hop测距修正的定位算法研究

DV-Hop测距修正的定位算法研究

DV-Hop测距修正的定位算法研究余科军;张建州【摘要】针对DV-Hop测距定位精度不准问题,提出基于DV-Hop测距修正的对数搜索(improved DV-Hop Ranging-based Logarithmic Search,DH-RLS)定位算法.DH-RLS算法利用锚节点间的真实距离信息估计跳距误差,修正跳距值,提高测距精度.利用质心定位算法估计未知节点的位置,并将此位置作为搜索起点,再利用搜索目标函数进行搜索,直至搜索到具有最小距离误差和的点.仿真数据表明,DH-RLS 定位算法的归一化平均误差低于同类算法.通过对测距修正,降低了测距误差,同时利用搜索目标算法提高了定位精度.%In order to improve the accuracy of localization algorithm based on DV-Hop ranging, an improved DV-Hop Ranging-based Logarithmic Search(DH-RLS)localization algorithm is proposed in this paper. DH-RLS first estimates the error of hop distance by the real distance between anchor nodes, and it corrects the hop distance to improve the ranging accuracy. The position of nodes is estimated by centroid localization algorithm, which is considered to be search initial point. DH-RLS employs search objective function, until the position with minimizing the sum of distance error is searched. Numerous simulation results show that normalized average localization error ratio of DH-RLS algorithm is less than that of traditional DV-Hop algorithm. The ranging error is reduced by correcting ranging value, and accuracy of local-ization is improved by search localization.【期刊名称】《计算机工程与应用》【年(卷),期】2019(055)015【总页数】5页(P123-127)【关键词】无线传感网络;DV-Hop算法;质心定位;跳距;对数搜索【作者】余科军;张建州【作者单位】成都师范学院计算机科学学院,成都 610000 ;四川大学计算机学院,成都 610065【正文语种】中文【中图分类】TP3931 引言由海量传感节点组成,且以无线方式通信所构成的自组织网络称为无线传感网络(Wireless Sensor Networks,WSNs)[1-2]。

基于移动锚节点的改进DV—Hop算法

基于移动锚节点的改进DV—Hop算法
t h e a l g o r i t h m i n t h e l o c a l i z a t i o n p r o c e s s , a n i mp r o v e d a l g o r i t h m b a s e d o n mo b i l e a n c h o r n o d e wa s p r o p o s e d . Th e mo b i l e a n c h o r n o d e wa s u s e d t O f o r m mu l t i p l e v i r t u a l a n c h o r n o d e s , S O a s t o r e d u c e t h e n u mb e r o f a n c h o r n o d e e f f e c t i v e l y . Me a n wh i l e , o n t h e b a s i s o f t h e o r i g i n a l a l g o r i t h m, t h e a v e r a g e h o p d i s t a n c e wa s mo d i f i e d, wh i c h ma k e s i t c l o s e r t o t h e r e a l v a l u e . Th e s i mu l a t i o n r e s u l t s s h o w t h a t , t h e i mp r o v e d a l g o r i t h m i s b e t t e r t h a n t h e t r a d i t i o n a l DV- Ho p a l g o r i t h m a n d t h e a v e r a g e p o s i t i o n i n g e r r o r i s r e d u c e d b y a b o u t 3 0 , a n d t h e l o c a t i o n a c c u r a c y i s g r e a t l y i mp r o v e d . Ke y wo r d s Wi r e l e s s s e n s o r n e t wo r k s , Lo c a l i z a t i o n, DV- Ho p a l g o r i t h m, Mo b i l e a n c h o r n o d e s

融合RSSI跳数量化与误差修正的DV-Hop改进算法

融合RSSI跳数量化与误差修正的DV-Hop改进算法

第33卷第5期2020年5月传感技术学报CHINESEJOURNALOFSENSORSANDACTUATORSVol 33㊀No 5May2020收稿日期:2020-03-30㊀㊀修改日期:2020-05-18ImprovedDV ̄HopAlgorithmBasedonRSSIHopQuantizationandErrorCorrectionRENKeqiang∗ꎬPANCuimin(SchoolofInformationEngineeringꎬJiangxiUniversityofScienceandTechnologyꎬGanzhouJiangxi341000ꎬchina)Abstract:InordertoimprovethelocationaccuracyofDV ̄HopalgorithmintheunevennetworksꎬanimprovedDV ̄HopalgorithmbasedonRSSIhopquantificationanderrorcorrectionwasproposed.FirstlyꎬtheimprovedalgorithmquantifiedthehopcountsbytheratioofRSSIvalueofthenodestothereferenceRSSIvalueꎬwhichconvertstheinte ̄gerhopsintocontinuoushopsꎬandrecalculatedtheaveragesingle ̄hopdistanceofanchornodesbasedonthequan ̄tizedhops.Thenꎬtheaveragesingle ̄hopdistanceofanchornodeswereweightedtorevisetheaveragesingle ̄hopdis ̄tanceofunknownnodes.Finallyꎬthedistancerelationshipsbetweenunknownnodesandnearestanchornodewereuti ̄lizedtocorrecttheerroroftheestimationcoordinatesforunknownnodesꎬwhichcouldfurtherreducethelocalizationerrorofunknownnodes.TheexperimentalresultsshowthatcomparedwithDV ̄Hopalgorithmandcomparativerefer ̄enceꎬtheimprovedalgorithmcaneffectivelydecreasetheeffectofcumulativeerrorondistanceestimationandenhancethelocalizationaccuracyofunknownnodesinthesamenetworkenvironment.Therelativelocalizationerroroftheimprovedalgorithmis20.7%lowerthanthatofDV ̄Hopalgorithmwithoutincreasinghardwareoverhead.Keywords:wirelesssensornetworkꎻDV ̄HopalgorithmꎻnodelocalizationꎻhopquantizationꎻerrorcorrectionEEACC:6150P㊀㊀㊀㊀doi:10.3969/j.issn.1004-1699.2020.05.016融合RSSI跳数量化与误差修正的DV ̄Hop改进算法任克强∗ꎬ潘翠敏(江西理工大学信息工程学院ꎬ江西赣州341000)摘㊀要:为了提高DV ̄Hop算法在非均匀网络中的定位精度ꎬ提出一种基于RSSI跳数量化与误差修正的DV ̄Hop改进算法ꎮ改进算法首先利用节点间RSSI值与基准RSSI值的比值量化节点间跳数ꎬ使整数跳数转化为连续跳数ꎬ并在量化跳数的基础上对锚节点平均跳距进行重估ꎻ然后对各锚节点平均跳距进行加权处理以修正未知节点平均跳距ꎻ最后利用未知节点与最近锚节点的距离关系对未知节点坐标的估计误差进行修正ꎬ以进一步降低节点的定位误差ꎮ实验结果表明ꎬ相较于DV ̄Hop算法及相关文献ꎬ改进算法在相同的网络环境下能够有效降低累积误差对距离估算的影响ꎬ提升未知节点定位的精度ꎻ在不增加硬件开销的情况下ꎬ改进算法的相对定位误差比DV ̄Hop算法平均下降了20.7%ꎮ关键词:无线传感器网络ꎻDV ̄Hop算法ꎻ节点定位ꎻ跳数量化ꎻ误差修正中图分类号:TP393㊀㊀㊀㊀文献标识码:A㊀㊀㊀㊀文章编号:1004-1699(2020)05-0718-07㊀㊀无线传感器网络(WirelessSensorNetworksꎬWSN)是由许多随机部署在监测区域内的传感器节点自组织形成的网络系统ꎬ能够对目标区域进行监测并将信息及时传送给观察者[1]ꎮWSN已经广泛的应用于各行各业ꎬ当采集到的信息与位置密切相关时ꎬ节点定位算法为WSN在实际应用中提供了重要的技术支撑[2]ꎮ根据是否测量节点间的距离ꎬ可以将已有的WSN定位算法分为基于测距的定位和非测距的定位[3-4]ꎮ基于测距的定位需要利用超声波或者无线电等技术获取节点间绝对距离或方位信息ꎬ对硬件设施需求高[5-6]ꎮ无需测距的定位主要依靠WSN的拓扑结构和节点间连通度实现对节点间距离的估计ꎬ无需额外配备相应的测距设施ꎬ但定位性能低[7-8]ꎮDV ̄Hop算法是一种被普遍使用的非测距定位算法ꎬ但是在非均匀的WSN中DV ̄Hop算法存在定位精度较低的问题[9]ꎮ为提升DV ̄Hop算法的定位性能ꎬ研究人员在原始算法的基础上提出了大量改进ꎮ文献[10]用粒子群算法实现DV ̄Hop算法中对节点的定位ꎬ并与多种非测距算法进行比较ꎬ相较于其他定位算法ꎬ所提思路具有更好的定位性能ꎬ但容第5期任克强ꎬ潘翠敏:融合RSSI跳数量化与误差修正的DV ̄Hop改进算法㊀㊀易陷入局部最优问题ꎮ文献[11]通过设置节点间跳数阈值ꎬ选择多个位于跳数阈值内锚节点的平均跳距来估计节点间距离ꎬ再利用质心算法和最小二乘法估计节点坐标ꎬ在一定程度上提高了定位准确度ꎮ文献[12]提出将双曲线法融入到DV ̄Hop定位算法中ꎬ不仅对节点的平均跳距进行了修正ꎬ而且用双曲法对未知节点的坐标进行估计ꎬ取得了较好的定位效果ꎬ但是ꎬ该算法在锚节点数较少时定位效果不佳ꎮ文献[13]将RSSI算法与DV ̄Hop算法进行融合ꎬ利用接收信号强度计算锚节点间的平均跳距偏差ꎬ并以此优化未知节点与各锚节点的估计距离ꎬ取得了较好的定位效果ꎮ文献[14]通过引入校正因子对锚节点平均跳距进行了修正ꎬ在定位阶段利用锚节点组的共线度参数选取适合定位的锚节点组ꎬ并结合TLBO算法实现对未知节点坐标的优化ꎬ有效提高了节点的定位精度ꎮ文献[15]提出用锚节点平均跳距与定位误差修正未知节点的平均跳距和定位误差ꎬ在一定程度上减小了节点定位误差ꎬ但该算法在网络密度较低时定位效果不理想ꎮ文献[16]利用RSSI比值修正节点间跳数ꎬ并以修正的跳数为加权系数ꎬ对未知节点最近3个锚节点的平均跳距进行加权以获取未知节点的平均跳距ꎬ使定位结果更加准确ꎬ但是未知节点的平均跳距只取决于最近3个锚节点存在一定的局限性ꎮ上述算法均不同程度地提升了DV ̄Hop算法的定位性能ꎬ但是在非均匀网络中ꎬ仍存在因跳数跳距不合理导致的误差积累问题ꎮ因此ꎬ本文提出一种基于RSSI跳数量化与跳距修正的DV ̄Hop改进算法ꎬ以降低在计算节点间距离时产生的累积误差ꎬ提高节点的定位精度ꎮ1㊀DV ̄Hop算法与分析1.1㊀DV ̄Hop算法DV ̄Hop算法是一种基于距离矢量路由的非测距定位算法ꎬ其定位过程包括下述3个阶段:①所有锚节点将坐标与跳数数据发送给可通信节点ꎬ接收节点只保存到每个锚节点的最小跳数ꎬ之后将跳数值增加1再转发给下一个节点ꎮ②每个锚节点根据保存的其他锚节点坐标与跳数数据ꎬ获取各自的平均跳距:HopSizei=ðjʂi(xi-xj)2+(yi-yj)2ðjʂihj(1)式中:(xiꎬyi)和(xjꎬyj)为锚节点i和j的坐标ꎬhj为锚节点i和j之间的最小跳数ꎮ锚节点广播各自的平均跳距ꎬ未知节点只保留第一次接收的锚节点平均跳距ꎬ估计到各锚节点的跳段距离dkj:dkj=HopSizeiˑhj(2)式中:HopSizei为距离未知节点最近锚节点的平均跳距ꎬhj为未知节点k与锚节点j之间的最小跳数ꎮ③当未知节点获得不少于3个锚节点的跳段距离之后ꎬ可以利用极大似然估计法估计未知节点的坐标[17]ꎮ假设未知节点的坐标为(xꎬy)ꎬ锚节点j的坐标为(xjꎬyj)ꎬ(j=1ꎬ2ꎬ ꎬn)ꎬ根据式(2)估计未知节点到锚节点j的跳段距离为djꎬ(j=1ꎬ2ꎬ ꎬn)ꎬ可得方程组:(x1-x)2+(y1-y)2=d21(x2-x)2+(y2-y)2=d22㊀㊀㊀㊀⋮(xn-x)2+(yn-y)2=d2nìîíïïïïïï(3)将式(3)化简整理成AX=B形式的线性方程组ꎬ其中:A=2(x1-xn)2(y1-yn)2(x2-xn)2(y2-yn)⋮⋮2(xn-1-xn)2(yn-1-yn)éëêêêêêùûúúúúú(4)B=x21-x2n+y21-y2n-d21+d2nx22-x2n+y22-y2n-d22+d2n㊀㊀㊀㊀⋮x2n-1-x2n+y2n-1-y2n-d2n-1+d2néëêêêêêùûúúúúú(5)X=xyéëêêùûúú(6)利用最小二乘法可以得到未知节点估计坐标:X=(ATA)-1ATB(7)1.2㊀DV ̄Hop算法定位误差分析DV ̄Hop算法主要是利用网络的连通度与拓扑结构实现对节点的定位ꎬ具有对硬件设施条件要求不高㊁计算简单等优点ꎬ但该算法在非均匀网络中的定位精度较低ꎬ主要误差来源有:①传统DV ̄Hop算法在获取节点间跳数信息时ꎬ只要节点间的距离不大于通信半径ꎬ就认为节点间的跳数为1ꎮ如图1所示ꎬ锚节点B㊁B1㊁B2与未知节点A之间的跳数均为1ꎬ根据节点间跳数信息ꎬ在图1中估计出A到B1及A到B2的距离相等ꎬ但锚节点B1㊁B2到未知节点A的真实距离却各不相同ꎬ所以按照这种方法计算节点间的跳数与节点间真实距离存在较大偏差ꎮ917传㊀感㊀技㊀术㊀学㊀报chinatransducers.seu.edu.cn第33卷②无线传感器网络中节点分布的随机性和不确定性ꎬ导致分布在不同区域内的节点密度存在差异ꎮ根据DV ̄Hop算法ꎬ未知节点的平均跳距只取决于网络中的一个锚节点ꎬ当网络中锚节点数量较多时ꎬ会造成节点跳距信息的浪费ꎬ而且一个锚节点并不能确切地体现整个WSN的网络环境ꎻ如果锚节点平均跳距本身存在较大误差ꎬ且距离未知节点最近ꎬ那么误差会被直接传递给未知节点ꎬ而未知节点平均跳距是计算节点间距离的一个重要因子ꎬ所以这些误差会在计算节点间距离时得到累加ꎮ图1㊀通信范围内单跳误差示意图2㊀本文改进算法DV ̄Hop算法中节点间跳数和平均跳距是利用网络的连通度与拓扑结构ꎬ通过洪泛模式获得ꎬ当WSN节点分布不均匀㊁拓扑结构不规则时ꎬ对节点间跳数和平均跳距的计算会产生误差ꎬ从而导致对节点间距离估计的偏差ꎮ因此ꎬ本文分别从节点间跳数㊁锚节点平均跳距㊁未知节点平均跳距及未知节点坐标误差4个方面对DV ̄Hop算法进行改进ꎮ2.1㊀基于RSSI的跳数量化根据传统DV ̄Hop算法的定位原理可知ꎬ只要两节点互为邻居节点ꎬ无论距离有多远节点间跳数都等于1ꎬ利用这种方法记录节点间跳数并估计节点间距离必然偏离实际距离ꎮ针对这个问题ꎬ本文在DV ̄Hop算法的基础上融入RSSI测距技术ꎬ对节点间跳数进行量化ꎬ使量化之后的跳数更能反映节点间实际距离关系ꎮRSSI测距技术是根据发射端与接收端之间的无线电波损耗ꎬ依据特定信号模型把传输损耗转化为距离[18]ꎮ使用最广泛的是对数-常态分布模型ꎬ它分为passloss模型和遮挡因子两部分ꎮpassloss模型:P(d0)P(d)=dd0æèçöø÷η(8)式中:P(d)和P(d0)分别为距离发射端d和d0处的接收信号强度ꎻη为路径损耗因子ꎬ取值通常在2~4之间ꎮ遮挡因子Xσ描述了固定距离下接收信号强度的变化ꎬ是一个对数正态随机参数ꎮ以dB为单位并把Xσ置入对数-常态分布模型ꎬ则对数-常态分布模型可表示为:[P(d)]dB=[P(d0)]dB-10ηlgdd0æèçöø÷+Xσ(9)为了防止单次RSSI测量值可能存在较大误差的出现ꎬ采用多次接收同一节点的RSSI值并取中位数作为最终的RSSI值ꎮ选取节点通信半径R作为理想单跳距离ꎬ并定义节点间距离为R时跳数为1ꎬ那么利用通信范围内节点间的真实距离与R的比值计算节点间跳数ꎬ更能反映出节点间的距离关系ꎮ当相邻节点中存在坐标未知的节点时ꎬ就无法获得节点间的真实距离ꎬ但所有节点都具有采集RSSI的功能ꎬ所以可以利用未知节点接收的RSSI值来量化节点间跳数ꎮ用TR表示节点间的距离为R时的接收信号强度ꎬ并定义TR为基准RSSI值ꎬ用邻居节点间的RSSI值与基准RSSI的比值作为该邻居节点间的跳数ꎬ由式(9)可得TR为:TR=[P(d0)]dB-10ηlgRd0æèçöø÷+Xσ(10)假设节点k收到来自邻居节点的RSSI值为Rkꎬ则节点k到该邻居节点的跳数为:hopk=RkTRɤ1(11)如图2为节点间跳数量化示意图ꎬ当hopk=1时ꎬ说明节点在通信半径上ꎬ即在图2中的B点处ꎬ此时的跳数为1ꎻ当hopk<1时ꎬ说明节点位于通信半径内ꎬ即在图2中的B1和B2点处ꎬ此时的跳数小于1ꎮ图2㊀节点间跳数量化示意图通过引入RSSI测距技术对节点间的跳数进行量化ꎬ使节点间整数跳数连续化ꎬ更能反映实际节点间的相对距离ꎬ使得节点间距离估计更加准确ꎮ2.2㊀锚节点平均跳距的修正锚节点的平均跳距对节点间距离的估算有很大影响ꎬ利用式(1)获得的锚节点平均跳距是个均值ꎬ但是由于节点分布不均匀ꎬ相邻节点的距离实际上027第5期任克强ꎬ潘翠敏:融合RSSI跳数量化与误差修正的DV ̄Hop改进算法㊀㊀是不同的ꎬ所以利用该均值与跳数信息估计节点间距离会存在一定误差ꎮ为了减小锚节点平均跳距对节点间距离估计的影响ꎬ需要对锚节点平均跳距进行修正ꎮ假设锚节点i和j的坐标为(xiꎬyi)和(xjꎬyj)ꎬ根据更新的量化跳数ꎬ利用式(1)可重新获得锚节点i的平均跳距ꎮHopSizeᶄi=ðjʂi(xi-xj)2+(yi-yj)2ðjʂihopj㊀㊀=ðjʂi(xi-xj)2+(yi-yj)2ðjʂihopj-1+RjTRæèçöø÷=ðjʂi(xi-xj)2+(yi-yj)2ðjʂiR1TR+R2TR+ +RjTRæèçöø÷=TRˑðjʂi(xi-xj)2+(yi-yj)2ðjʂi(R1+R2+ +Rj)(12)式中:hopj为锚节点i和j之间的最小量化跳数ꎬRj为锚节点j前一跳节点接收到锚节点j的RSSI值ꎮ根据各锚节点的量化跳数和式(12)ꎬ可以计算出锚节点i和j的跳段距离:dij=HopSizeᶄiˑhopj(13)通过式(13)及锚节点的坐标信息计算锚节点i和j的跳段距离与真实距离偏差:Δdij=(xi-xj)2+(yi-yj)2-dij(14)根据式(14)能够计算出锚节点i到网络中所有锚节点实际距离与跳段距离的总差值ꎬ再将总差值除以总跳数可得锚节点i的平均跳距偏差:εi=ðjʂiΔdijðjʂihopj(15)利用锚节点i的平均跳距偏差可以得到修正之后的锚节点平均跳距:dHopi=HopSizeᶄi+εi(16)2.3㊀未知节点平均跳距的修正未知节点利用最近锚节点确定自身平均跳距的方法虽然简单ꎬ但单个锚节点并不能体现整个网络的情况ꎮ为避免未知节点从单一锚节点获取平均跳距可能带来的问题ꎬ在计算未知节点平均跳距时ꎬ应该综合考虑网络中的锚节点ꎮ由于未知节点与相距较近锚节点附近的网络环境更接近ꎬ节点间的连通度差异也更小ꎬ因此ꎬ本文以未知节点到各锚节点的跳数信息为权值ꎬ采用加权策略将未知节点收到的所有平均跳距都参与其自身平均跳距的计算ꎮ假设未知节点A收到n个锚节点平均跳距ꎬ则A对n个锚节点平均跳距的权值通过式(17)获得ꎮωi=hopmax-hopi+1ðni=1hopmax-hopi+1(17)式中:hopmax为A记录的到n个锚节点的跳数最大值ꎬhopi为A记录的到锚节点i的跳数值ꎮA对接收到的n个锚节点平均跳距做出基于ωi的加权ꎬ并将结果作为A的最终平均跳距:HopSizeA=ðni=1ωiˑdHopi(18)通过对A接收到的锚节点平均跳距进行加权ꎬ每个锚节点平均跳距都被赋予与A跳数负相关的权值ꎬ距离A跳数较多的锚节点相应的权重就更小ꎮ2.4㊀未知节点坐标误差的修正根据未知节点记录的量化跳数及修正的平均跳距ꎬ可以得到未知节点的估计坐标ꎬ该估计坐标与真实坐标到各锚节点的距离是存在差异的ꎮ为减小计算量ꎬ只考虑估计坐标与真实坐标到未知节点最近锚节点的距离差异ꎬ现实中估计坐标与真实坐标到未知节点最近锚节点的距离应该相等ꎬ所以对估计坐标以满足现实情况进行修正ꎮ由于RSSI测距技术能够较准确地估计出相距较近的节点间距离ꎬ所以利用RSSI值估计未知节点与最近锚节点的距离ꎬ并把该距离当作未知节点到最近锚节点的真实距离ꎮ假设利用未知节点A的修正平均跳距及到各锚节点的连续跳数估计A的坐标为(^xꎬ^y)ꎬ该估计坐标与A最近锚节点B(xBꎬyB)的距离为d=(xB-^x)2+(yB-^y)2ꎬ用RSSI测距技术估计A与最近锚节点的距离为drꎬ通过比较d和dr是否相同决定是否对A的估计坐标进行修正ꎮ设修正之后的坐标为(xᶄꎬyᶄ)ꎬ修正的目的是使修正之后的坐标到A最近锚节点的距离与A到最近锚节点的距离相等ꎬ最快也是最简单的修正方法是在估计坐标与A最近锚节点的连线上对估计坐标进行修正ꎬ根据式(19)可以得到对节点A的估计坐标修正结果ꎮxᶄ=^x+d-drdæèçöø÷ˑ(xB-^x)yᶄ=^y+d-drdæèçöø÷ˑ(yB-^y)ìîíïïïï(19)127传㊀感㊀技㊀术㊀学㊀报chinatransducers.seu.edu.cn第33卷下面以图3为例ꎬ说明未知节点A坐标误差的修正过程ꎮ图3中B㊁B1和B2为参与A定位的其中3个锚节点ꎬ且B是A的最近锚节点ꎬ根据A的修正平均跳距和到各锚节点的连续跳数ꎬ利用最小二乘法可以得到A的估计坐标ꎬ用C表示ꎮ根据B与C的坐标可以计算出C到B的距离dꎬ用RSSI测距技术估计出A与B的距离drꎬdʂdr说明估计坐标C不够精确ꎬ与A的真实坐标存在误差ꎮ应使d为满足d=dr的关系对估计坐标C进行修正ꎬ即通过式(19)沿着C与B连线的方向将C修正到一个新的位置D处ꎬ修正之后的位置D到B的距离与dr相等ꎬ更接近A的真实位置ꎬ进一步减小了定位误差ꎮ图3㊀未知节点A坐标修正示意图2.5㊀改进算法的实现改进算法的伪代码如下:本文改进算法量化节点间跳数:利用直接邻居节点间的RSSI值Rk与基准RSSI值TR的比值作为邻居节点间的跳数ꎻ锚节点Bi广播的数据包为P={Biꎬ(xiꎬyi)ꎬHopcountiꎬRk}ꎬHopcounti是当前数据包的跳数ꎬ初始化为0ꎻHopcountᶄi为节点记录的到锚节点Bi的跳数ꎮforeachanchornodeBibroadcastpackettothenetwork㊀ifthenodeAdidn treceiveapacketfromanchorBi㊀㊀thenHopcountᶄi=Hopcounti+Rk/TR㊀㊀㊀Hopcounti=Hopcountᶄi㊀㊀㊀rebroadcast(P)㊀else㊀㊀ifHopcountᶄi>Hopcounti+Rk/TR㊀㊀㊀thenHopcountᶄi=Hopcounti+Rk/TR㊀㊀㊀㊀Hopcounti=Hopcountᶄi㊀㊀㊀㊀rebroadcast(P)㊀㊀㊀elseignore(P)㊀㊀endif㊀endifdone节点平均跳距修正:通过节点间量化跳数和相应的距离关系修正节点的平均跳距ꎬ包括锚节点Bi和未知节点Akꎮwhileanchornodesstopbroadcastingpacketsdo㊀foreachanchornodeBiandunknownnodeAk㊀㊀correctthesingle ̄hopdistanceofBibyEq.(12)~(16)㊀㊀correctthesingle ̄hopdistanceofAkbyEq.(17)~(18)㊀donedone未知节点坐标误差修正:未知节点获得ND个到锚节点的跳段距离ꎻC(^xꎬ^y)为未知节点的估计坐标ꎻBn为未知节点距离最近的锚节点ꎮifNDȡ3㊀thencalculatetheestimatedcoordinatesC(^xꎬ^y)㊀㊀calculatethedistancedbetweenCandBn㊀㊀estimatingthedistancedrbetweenunknownnode㊀㊀andBnbyRSSItechnique㊀㊀ifdʂdr㊀㊀㊀thencorrectCtoanewcoordinatesbyEq.(19)㊀㊀endifendif改进算法的流程图如图4所示ꎮ图4㊀本文改进算法流程图3㊀仿真结果与分析为了验证本文算法的定位性能ꎬ利用MATLAB对DV ̄Hop算法㊁文献[11]算法㊁文献[12]算法及本文算法进行仿真比较ꎮ仿真实验环境:节点被随机分布在100mˑ100m的区域内ꎬ节点的通信半径为Rꎬ实验结果取仿真100次的平均值ꎮ选定相对定位误差Er作为定位效果的评价标准:Er=ðNi=1(xi-xᶄi)2+(yi-yᶄi)2NˑR(20)式中:(xiꎬyi)和(xᶄiꎬyᶄi)分别为未知节点的真实坐标和估计坐标ꎬN为未知节点的数量ꎮ图5是通信半径R从15m变化到40m的情形227第5期任克强ꎬ潘翠敏:融合RSSI跳数量化与误差修正的DV ̄Hop改进算法㊀㊀下ꎬDV ̄Hop算法㊁文献[11]算法㊁文献[12]算法及本文算法的相对定位误差对比结果ꎬ其中网络节点总数为150个ꎬ锚节点数为20个ꎮ从仿真结果可以看出ꎬR的增大使得各算法的相对定位误差都在减小ꎬ且都逐渐趋于平稳ꎬ这是因为节点通信半径的增加使得锚节点可覆盖范围增大ꎬ参与定位的锚节点增多ꎮ从总体上看ꎬ在通信半径都相同的情况ꎬ本文算法的相对定位误差始终最小ꎬ相比DV ̄Hop算法㊁文献[11]算法和文献[12]算法分别下降了约31.4%~11.8%㊁7.3%~3.6%和4.9%~1.3%ꎮ由此可见ꎬ本文算法具有更高的定位精度ꎬ原因在于本文算法对节点间跳数进行了量化ꎬ使跳数信息更能反映节点间的相对距离ꎬ减小了因节点间跳数不合理造成的测距误差ꎮ图5㊀不同通信半径的相对定位误差比较图6㊀不同锚节点数的相对定位误差比较图6是锚节点数从5个变化到30个的情形下ꎬDV ̄Hop算法㊁文献[11]算法㊁文献[12]算法及本文算法的相对定位误差对比结果ꎬ其中网络节点总数为150个ꎬ通信半径R=20mꎮ从图6的仿真结果可以看出ꎬ锚节点数从5个以5为步长增加到30个的过程中ꎬ4种算法的相对定位误差都有不同程度的减小ꎮ当锚节点数增加到10个之后ꎬDV ̄Hop算法整体表现较为平缓ꎻ本文算法的相对定位误差在锚节点数从5个增加到15个时下降明显ꎬ之后随着锚节点数从15个增加到30个也趋于平缓ꎮ其次ꎬ在锚节点密度较低时本文算法也具有更低的相对定位误差ꎬ本文算法在锚节点密度较低时也具有更低的相对定位误差ꎬ当锚节点数为5个时ꎬ本文算法的定位精度较DV ̄Hop算法㊁文献[11]算法㊁文献[12]算法分别提升了约22.25%㊁9%和14.13%ꎬ而且本文算法的相对定位误差曲线一直处于下方ꎬ说明本文算法具有更低的定位误差ꎬ这是由于本文将未知节点接收的多个平均跳距进行加权处理ꎬ进一步减小了误差累积ꎮ图7是节点总数从100个变化到350个的情形下ꎬDV ̄Hop算法㊁文献[11]算法㊁文献[12]算法及本文算法的相对定位误差对比结果ꎬ其中锚节点数为20个ꎬ通信半径R=20mꎮ从仿真结果可以看出ꎬ增多网络中节点总数ꎬ各个算法的定位性能整体都有提升ꎬ且在节点总数增加到150个之后变化较为平缓ꎮ当节点总数为100个时ꎬ本文算法的定位性能比DV ̄Hop算法和文献[12]算法分别提升了约23.7%和3.2%ꎬ说明本文算法在网络中节点总数较少时也能获得较好的定位结果ꎬ这是因为本文算法不仅对节点间的距离进行了优化ꎬ而且对未知节点的坐标进行了修正ꎮ图7的对比结果说明ꎬ增多WSN中节点总数能够提升节点的定位性能ꎬ原因在于节点总数增多ꎬ使得网络中节点密度增加㊁网络的拓扑结构更加规则ꎬ保证了网络的连通性ꎮ图7㊀不同节点总数的相对定位误差比较图8㊀未知节点定位误差比较结果图8是节点总数为200个ꎬ锚节点比例为0.25ꎬ通信半径取R=40m时ꎬDV ̄Hop算法与本文算法对327传㊀感㊀技㊀术㊀学㊀报chinatransducers.seu.edu.cn第33卷未知节点的定位误差对比结果ꎮ由图8可以看出ꎬ本文算法的定位误差明显低于DV ̄Hop算法ꎬ且本文算法有效地抑制了较大定位误差的出现ꎮ4 结束语针对DV ̄Hop算法在非均匀网络中因跳数跳距不合理导致误差累积的问题ꎬ提出一种节点跳数量化与误差修正的DV ̄Hop改进算法ꎮ改进算法分别从跳数量化㊁锚节点和未知节点平均跳距修正及节点坐标误差修正几个方面对DV ̄Hop算法进行了改进ꎬ并在节点通信半径㊁锚节点数和节点数量变化的WSN环境下对算法的定位性能进行实验ꎮ实验结果表明ꎬ本文改进算法表现出比DV ̄Hop算法和相关算法更优的定位效果ꎬ有效提升了对节点定位的准确度ꎮ如何进一步减小距离估计过程产生的累积误差ꎬ提高节点的定位准确度是后续重点研究的工作ꎮ参考文献:[1]㊀TomicSꎬBekoKꎬDinisR.ImprovementsofDV ̄HopLocalizationAlgorithmforWirelessSensorNetworks[J].TelecommunicationSystemsꎬ2016ꎬ61(1):93-106.[2]YangXYꎬZhangWLꎬSongQX.ImprovementofDV ̄HopAlgo ̄rithmBasedonRSSIRatioCorrection[J].InternationalJournalofOnlineandBiomedicalModernEngineeringꎬ2018ꎬ14(5):159-171.㊀[3]林维维ꎬ姚英彪ꎬ邹柯ꎬ等.基于校正矢量的分布式DV ̄Hop求精算法[J].计算机研究与发展ꎬ2019ꎬ56(3):585-593. [4]LobiyalDKꎬKumarS.NovelDV ̄HopLocalizationAlgorithmforWirelessSensorNetworks[J].TelecommunicationSystemsꎬ2017ꎬ64(3):509-524.[5]ShenSKꎬYangBꎬQianKGꎬetal.OnImprovedDV ̄HopLocali ̄zationAlgorithmforAccurateNodeLocalizationinWirelessSensorNetworks[J].ChineseJournalofElectronicsꎬ2019ꎬ28(3):658-666.㊀[6]FengXꎬChenZFꎬLiuZ.ANewRange ̄FreeAlgorithmBasedonHopCorrectionofRSSI[J].JournalofIntelligent&FuzzySystemsꎬ2018ꎬ34(4):1205-1212.[7]方旺盛ꎬ黄辉.DV ̄HOP三重定位算法[J].江西理工大学学报ꎬ2017ꎬ38(3):92-96.[8]余修武ꎬ胡沐芳ꎬ刘永ꎬ等.多半径误差修正自适应布谷鸟优化DV ̄HOP定位算法[J].西南交通大学学报ꎬ2018ꎬ53(6):1123-1129.㊀[9]WangYꎬFangZꎬChenL.ANewTypeofWeightedDV ̄HopAlgo ̄rithmBasedonCorrectionFactorinWSNs[J].JournalofCommu ̄nicationsꎬ2014ꎬ9(9)ꎬ699-705.[10]Mass ̄SanchezJꎬRuiz ̄IbarraEꎬEspinoza ̄RuizAꎬetal.ACompar ̄ativeofRangeFreeLocalizationAlgorithmsandDV ̄HopUsingtheParticleSwarmOptimizationAlgorithm[C]//UbiquitousCompu ̄tingꎬElectronicsandMobileCommunicationConference.IEEEꎬ2018:150-157.[11]向满天ꎬ王胜ꎬ杨友华ꎬ等.基于阈值机制与距离校正的WSN改进DV ̄HOP定位算法[J].传感技术学报ꎬ2016ꎬ29(6):920-926.㊀[12]Mass ̄SanchezJꎬRuiz ̄IbarraEꎬCortez ̄GonzalezJꎬetal.WeightedHyperbolicDV ̄HopPositioningNodeLocalizationAlgorithminWSNs[J].WirelessPersonalCommunicationsꎬ2017ꎬ96(4):5011-5033.㊀[13]刘三阳ꎬ胡亚静ꎬ张朝辉.基于RSSI测距的DV ̄Hop算法[J.控制与决策ꎬ2017ꎬ32(10):1900-1904.[14]SharmaGꎬKumarA.ImprovedDV ̄HopLocalizationAlgorithmU ̄singTeachingLearningBasedOptimizationforWirelessSensorNetworks[J].Telecommunicationsystemsꎬ2018ꎬ67(2)ꎬ163-178.㊀[15]王兴ꎬ聂云峰ꎬ徐飞飞.一种基于坐标改正的改进DV ̄Hop定位算法[J].传感技术学报ꎬ2017ꎬ30(10):1560-1564.[16]高雷祥ꎬ黄辉ꎬ方旺盛.基于RSSI值跳数修正和跳距加权处理的DV ̄HOP算法[J].江西理工大学学报ꎬ2015ꎬ36(5):80-84. [17]李文军ꎬ华强ꎬ谭立东ꎬ等.DV ̄HOP和接收信号强度指示结合的改进算法[J].吉林大学学报(工学版)ꎬ2019ꎬ5(49):1689-1695.㊀[18]XueWXꎬQiuWNꎬHuaXH.ImprovedWi ̄FiRSSIMeasurementforIndoorLocalization[J].IEEESensorsJournalꎬ2017ꎬ17(7):1224-1230.任克强(1959 )ꎬ男ꎬ教授ꎬ硕士研究生导师ꎬ主要研究方向为无线传感器网络㊁图像与视频处理㊁信息隐藏ꎬjxrenkeqiang@163.comꎻ潘翠敏(1995 )ꎬ女ꎬ硕士研究生ꎬ主要研究方向为无线传感器网络ꎮ427。

基于DV-Hop定位算法的改进及仿真

基于DV-Hop定位算法的改进及仿真

目录摘要 (I)Abstract (II)第1章引言 (1)1.1研究背景及意义 (1)1.2国内外研究现状 (1)1.3本文研究内容和结构安排 (2)1.4小结 (3)第2章无线传感器网络定位技术 (4)2.1距离无关的定位算法分析 (4)2.1.1质心算法 (4)2.1.2Sum-dist算法 (5)2.1.3DV-Hop算法 (5)2.2定位性能评价指标 (7)2.2.1定位精度 (7)2.2.2锚节点密度和节点密度 (7)2.2.3功耗与代价 (7)2.2.4容错性和自适应性 (8)2.2.5其他相关评价指标 (8)2.3小结 (8)第3章DV-Hop定位算法及其改进算法的研究 (9)3.1DV-Hop算法流程 (9)3.2DV-Hop算法误差分析 (10)3.3DV-Hop算法改进 (11)3.4小结 (12)第4章MATLAB仿真及结果分析 (13)4.1MATLAB仿真环境简介 (13)4.2网络模型与参数获取 (13)4.3仿真结果与性能分析 (14)4.4小结 (18)第5章总结与展望 (19)5.1总结 (19)5.2展望 (19)致谢参考文献附录基于DV-Hop定位算法的改进及仿真摘要:节点定位技术是无线传感器网络众多研究领域中的核心技术之一,是无线传感器网络用于目标监测、目标识别以及目标跟踪等应用的支撑。

无线传感器网络因为应用环境的特殊性,使得事先将所有节点部署在感知区域中难以实现。

同时,传感器节点低成本和低能耗的特点,使得让所有节点直接应用GPS或使用其它外部设施等装置实现定位也有较大难度。

为了能够保证节点定位算法的低误差、低能耗和高效率,对无线传感器网络中节点定位机制的研究就显得至关重要。

本文重点研究了基于非测距的无线传感器网络中的节点定位技术。

在此定位技术中,DV-Hop定位算法应用最为广泛,但此算法的缺点是用跳段距离代替直线距离,因此,只有在各向同性的密集网络中才能得到较高的定位精度,而在随机分布的无线传感器网络中则存在较大的误差。

无线传感器网络DV-Hop定位算法的改进

无线传感器网络DV-Hop定位算法的改进

无线传感器网络DV-Hop定位算法的改进邱奉美;李怀忠【摘要】在传统DV-Hop算法中,未知节点仅接收最近锚节点估计的平均跳距,增加了平均跳距估计误差,导致定位误差较大.针对该问题,提出一种改进的DV-Hop 算法.该算法在计算未知节点到各锚节点的跳数和距离时,对未知节点接收的多个锚节点的跳段距离进行加权,获得较优平均跳距.同时修正定位得到的未知节点坐标,将已定位的未知节点升级为锚节点,并参与到其他未知节点的定位中.Matlab仿真结果表明,改进算法的定位精度比传统DV-Hop算法提高了10.26%~15.38%,较冯江等人提出的改进算法(计算机工程,2012年第19期)提高了2.0%~3.78%.覆盖率比传统DV-Hop算法提高了8.6%~12.7%,较张静等人提出的改进算法(计算机应用,2011年第7期)提高了约1.3%.【期刊名称】《计算机工程》【年(卷),期】2014(040)008【总页数】7页(P15-20,26)【关键词】无线传感器网络;DV-Hop定位算法;加权平均跳距;坐标修正;定位精度;覆盖率【作者】邱奉美;李怀忠【作者单位】温州大学物理与电子信息工程学院,浙江温州325035;温州大学物理与电子信息工程学院,浙江温州325035;埃迪斯科文大学计算机与安全科学学院,澳大利亚柏斯6050【正文语种】中文【中图分类】TP3931 概述无线传感器网络(Wireless Sensor Network,WSN)是由部署在监测区域内的大量廉价微型传感器节点,通过无线通信方式形成的一个多跳的自组织的网络系统,其目的是协作地感知、采集和处理网络覆盖区域中被感知对象的信息,并发送给观察者[1]。

WSN 被广泛应用于诸多领域,已成为计算机和通信领域的研究热点。

基于WSN 的大量应用都离不开节点位置信息。

节点定位技术属于WSN 应用支撑技术,在WSN 体系中占有重要地位[2]。

无线传感器节点通常随机布放在不同的环境中执行各种监测任务,以自组织的方式互相协调工作。

节点分区与平均跳数加权的三维DV-Hop定位算法

节点分区与平均跳数加权的三维DV-Hop定位算法

节点分区与平均跳数加权的三维DV-Hop定位算法张伯泉;王瑞成【摘要】针对三维DV-Hop定位算法的两个重要定位因素——网络锚节点的平均跳距与未知节点到锚节点的跳数存在的固有缺点,提出一种改进的三维DV-Hop定位算法3DPHW-DVHop(Partial HopSize Weighted).改进算法在求网络平均跳距时,利用区域划分和节点跳数加权进行算法综合优化,最后用极大似然法估算未知节点的位置,经过对理论的分析和仿真实验的证明,得出基于区域划分的跳数加权的三维DV-Hop定位算法在同等环境条件下比传统DV-Hop定位算法定位精度明显提高.%Because of the inherent shortcomings of the two important localization factors of the DV-Hop localization algorithm:The average hop distance of the network anchor nodes and the number of hops of the unknown nodes to the anchor nodes, an improved 3D-DVHop localization algorithm 3DPHW-DVHop(Partial HopSize Weighted)is put for-ward. When the average hop distance of the network is calculated, the algorithm is optimized by region partitioning and hops count weighting. Finally, the maximum likelihood method is used to estimate the position of the unknown node. After analyzing the theory and proving the simulation experiment, it is concluded that the 3D-DVHop localization algorithm based on the region partitioning and hops count weighting is significantly improved by comparsion with the traditional DV-Hop localization algorithm under the same conditions.【期刊名称】《计算机工程与应用》【年(卷),期】2018(054)012【总页数】5页(P240-243,257)【关键词】三维定位;分区加权;Distance Vector Hop(DV-Hop);无线传感网络【作者】张伯泉;王瑞成【作者单位】广东工业大学计算机学院,广州 510006;广东工业大学计算机学院,广州 510006【正文语种】中文【中图分类】TP181 引言随着无线通信技术的快速发展,无线传感器网络的应用越来越广。

基于MATLAB的DVhop测距算法性能分析

基于MATLAB的DVhop测距算法性能分析

摘要应用于传感器网络节点定位的技术主要有基于测距(Range-based)的定位技术和无需测距(Range-free)的定位技术。

前者尽管精度较高,但是大都需要额外地增加硬件开销,不适于常规的传感器网络的应用场景;而无需测距定位技术不需要知道未知节点到锚节点的距离或进行距离测量,在成本和功耗方面与前者相比具有显著优势。

因此,本文重点研究了无需测距的无线传感器网络定位算法。

首先,论文在查阅大量相关文献的基础上,介绍了基于无线传感器网络定位技术的国内外研究现状,对无线传感器网络相关技术做了一个整体概述。

其次,论文综述了无线传感器网络自身定位系统和算法的性能评价标准、分类方法,着重介绍了近年来该领域具有代表性的算法及系统的原理和特点,并对其中的几种主要算法进行了仿真与分析。

然后,论文重点对无需测距自定位算法中的DV-Hop算法进行了研究。

通过在仿真平台上对算法的仿真实验,统计分析了各种因素对算法定位性能的影响,仿真结果表明,该算法具有良好的性能。

关键词:无线传感器网络;节点定位;DV-Hop算法AbstractThe location algorithms for WSN can be divided into two categories: Range-based and Range-free. The Range-based algorithms can reach more accuracy, but require additional hardware cost. Considering the high expenditure, they aren‘t suitable for regular application of sensor networks. The Range-free algorithms need less sophisticated hardware. They use estimated distance instead of metrical distance to localize, so they have much advantage in power and position cost. This paper mainly studies the Range-free algorithms.In the first part, based on the study of much related literature, the research status of wireless location techniques is summarized. In the second part, this paper introduces the evaluation criterion of self-positioning algorithms. The principle and characteristics of these algorithms are also discussed and presented. Finally, this paper focuses on the DV-Hop location algorithm, we established a simulation model based on Matlab, and shift the influential factors. The simulative run shows that the DV-Hop algorithm could offer a better performance.Keywords: Wireless Sensor Networks; node location; DV-Hop algorithm目录1 绪论 (1)1.1课题背景及意义 (1)1.2国内外研究现状 (2)1.3论文的研究内容与组织安排 (3)2 无线传感器网络简介 (4)2.1无线传感器网络概述 (4)2.1.1 传感器网络节点和网络体系概述 (5)2.1.2 无线传感器网络特点 (7)3 无线传感器网络定位技术 (10)3.1无线传感器网络定位技术分类 (10)3.2基于测距技术的定位算法分析 (12)3.2.1 三边测量定位技术 (13)3.2.2 三角测量法 (14)3.2.3 最大似然估计定位 (15)3.3距离有关的定位算法分析 (19)3.3.1基于测距的定位方法 (19)3.3.2信号强度测试法 (19)3.3.3到达时间及时间差测距法 (20)3.3.4时间差定位法 (20)3.3.5到达角定位法 (21)3.4距离无关的定位算法分析 (21)3.4.1质心算法 (21)3.4.2Sum-dist算法 (22)3.4.3 DV-Hop算法 (22)3.4.4 APIT算法 (24)3.5定位性能评价指标 (24)3.5.1定位精度 (24)3.5.2 锚节点密度和节点密度 (25)3.5.3功耗与代价 (25)3.5.4 容错性和自适应性 (25)3.5.5其他相关评价指标 (26)3.6本章小结 (26)4 基于MATLAB的DV-HOP测距算法性能分析 (27)4.1MATLAB仿真环境简介 (27)4.2网络模型与参数获取 (27)4.3测距算法 (28)4.3.1 DV-hop算法流程图 (28)4.4仿真结果与性能分析 (32)5 结论与展望 (37)5.1本文研究工作总结 (37)5.2进一步的工作和建议 (37)致谢 (39)参考文献 (40)附录A:英文原文 (41)附录B:中文翻译 (55)1 绪论1.1 课题背景及意义随着社会的进步,科学技术的发展,特别是近20年来,电子技术日新月异,计算机的普及和应用把人类带到了信息时代,各种电器设备充满了人们生产和生活的各个领域,相当大一部分的电器设备都应用到了传感器件,传感器技术是现代信息技术中主要技术之一,在国民经济建设中占据有极其重要的地位。

DV-Hop定位算法误差分析与优化

DV-Hop定位算法误差分析与优化

DV-Hop定位算法误差分析与优化李敬兆;孙睿;谭大禹【期刊名称】《计算机系统应用》【年(卷),期】2017(026)004【摘要】传感器节点在森林、水下等复杂环境下进行数据采集时,由于信号强度与信号传输速度受到障碍物或传输介质的干扰,影响了基于信号信息的定位算法的测量精度.同时考虑到节点的成本和节点的动态性,DV-Hop定位算法有较强的适用性和实用性.分析了影响DV-Hop算法定位精度的因素,并在此基础上提出了一个度量节点离散程度的公式,给出了一个该算法的优化方案,仿真表明优化后的算法有更高的定位精度.%When the sensor nodes collect data in the forest or water environment, the signal intensity and the signal transmission speed are affected by the obstacles or transmission media, which affects the measurement accuracy of localization algorithm based on the signal information. Taking into account the cost of nodes and the dynamic nature of nodes, DV-Hop positioning algorithm has excellent applicability and practicality. This paper analyses the factors influencing the accuracy of DV-Hop algorithm, proposes a formula for measuring the degree of uniformity of nodes, optimized the algorithm. The simulation results show that the optimized algorithm has higher positioning accuracy.【总页数】6页(P186-191)【作者】李敬兆;孙睿;谭大禹【作者单位】安徽理工大学电气与信息工程学院,淮南 232001;安徽理工大学计算机科学与工程学院,淮南 232001;安徽理工大学计算机科学与工程学院,淮南232001【正文语种】中文【相关文献】1.DV-Hop定位算法的误差分析 [J], 朱慧勇2.无线传感器网络DV-Hop定位算法误差分析 [J], 孟侃良;章民融3.基于遗传算法和二进制蚁群算法的DV-Hop定位算法的优化 [J], LIN Feng-de;CHEN Jia-pin;DING Kai;LI Zhen-bo4.基于改进灰狼优化算法的DV-Hop定位算法 [J], 王冠钰;邹立颖5.基于改进麻雀搜索算法优化的DV-Hop定位算法 [J], 印雷;顾德;刘飞因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

clear,close all;BorderLength=100;NodeAmount=100;R=30;% D=zeros(BeaconAmount,NodeAmount);%δ֪½Úµãµ½Ðűê½clear,close all; BorderLength=100;NodeAmount=100;R=30;% D=zeros(BeaconAmount,NodeAmount);%未知节点到信标节点距离初始矩阵;BeaconAmount行NodeAmount列%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~在正方形区域内产生均匀分布的随机拓扑~~~~~~~~~~~~~~~~~~~~C=BorderLength.*rand(2,NodeAmount);%带逻辑号的节点坐标Sxy=[[1:NodeAmount];C];for Z=1:20;%Z=5;Rate(Z)=(5*Z)/NodeAmount; %Rate为信标节点的比例BeaconAmount=5*Z;UNAmount=NodeAmount-BeaconAmount;h=zeros(NodeAmount,NodeAmount);%初始跳数为0;BeaconAmount行NodeAmount列X=zeros(2,UNAmount);%节点估计坐标初始矩阵Beacon=[Sxy(2,1:BeaconAmount);Sxy(3,1:BeaconAmount)];%信标节点坐标UN=[Sxy(2,(BeaconAmount+1):NodeAmount);Sxy(3,(BeaconAmount+1):NodeAmoun t)];%未知节点坐标%~~~~~~~~~~~~~~~~~~~~画出节点分布图~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%plot(Sxy(2,1:BeaconAmount),Sxy(3,1:BeaconAmount),'r*',Sxy(2,(BeaconAmo unt+1):NodeAmount),Sxy(3,(BeaconAmount+1):NodeAmount),'k.')%xlim([0,BorderLength]);%ylim([0,BorderLength]);%title('* 红色信标节点 . 黑色未知节点')%~~~~~~~~~~~~~~~~~~~~~~~~~~~~初始化节点间距离、跳数矩阵~~~~~~~~~~~~~~~~~~~~~~ for i=1:NodeAmountfor j=1:NodeAmountDall(i,j)=((Sxy(2,i)-Sxy(2,j))^2+(Sxy(3,i)-Sxy(3,j))^2)^0.5;%所有节点间相互距离if (Dall(i,j)<=R)&(Dall(i,j)>0)h(i,j)=1;%初始跳数矩阵elseif i==jh(i,j)=0;else h(i,j)=inf;endendend%~~~~~~~~~~~~~~~~~~~~~~~~~最短路经算法计算节点间跳数~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~for k=1:NodeAmountfor i=1:NodeAmountfor j=1:NodeAmountif h(i,k)+h(k,j)<h(i,j)%min(h(i,j),h(i,k)+h(k,j))h(i,j)=h(i,k)+h(k,j);endendendend%h%~~~~~~~~~~~~~~~~~~~~~~~~~求每个信标节点的校正值~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Dhop=zeros(1,UNAmount);h1=h(1:BeaconAmount,1:BeaconAmount);D1=Dall(1:BeaconAmount,1:BeaconAmount); % @dall的算法作用?for i=1:BeaconAmountdhop(i,1)=sum(D1(i,:))/sum(h1(i,:));%每个信标节点的平均每跳距离 @ (每一行进行运算)endD2=Dall(1:BeaconAmount,(BeaconAmount+1):NodeAmount);%BeaconAmount行UNAmount列for i=1:BeaconAmountfor j=1:UNAmountif min(D2(:,j))==D2(i,j) % ?Dhop(1,j)=D2(i,j);%未知节点从最近的信标获得校正值endendend%Dhop%~~~~~~~~~~~~~~~~~~~~~~~~~~~用跳数估计距离~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Distance=zeros(BeaconAmount,UNAmount);hop1=h(1:BeaconAmount,(BeaconAmount+1):NodeAmount);%未知节点到信标跳数,BeaconAmount行UNAmount列for i=1:UNAmount%hop=Dhop(1,i);%hop为从最近信标获得的校正值hop=Dhop(1,i);Distance(:,i)=hop*hop1(:,i);%%Beacon行UN列;end% %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~最小二乘法求未知节点坐标~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~d=Distance;for i=1:2for j=1:(BeaconAmount-1)a(i,j)=Beacon(i,j)-Beacon(i,BeaconAmount);endendA=-2*(a');% d=d1';for m=1:UNAmountfor i=1:(BeaconAmount-1)B(i,1)=d(i,m)^2-d(BeaconAmount,m)^2-Beacon(1,i)^2+Beacon(1,BeaconAmount )^2-Beacon(2,i)^2+Beacon(2,BeaconAmount)^2;endX1=inv(A'*A)*A'*B;X(1,m)=X1(1,1);X(2,m)=X1(2,1);end%UN%Xfor i=1:UNAmounterror(1,i)=(((X(1,i)-UN(1,i))^2+(X(2,i)-UN(2,i))^2)^0.5);end%figure;plot(error,'-o')%title('每个未知节点的误差')avgerror(Z)=sum(error)/UNAmount; %未知节点的平均误差Accuracy(Z)=avgerror(Z)*100/R;end%figure;plot(Rate, Accuracy,'-or')xlabel('锚节点比例Rate');ylabel('平均定位误差/%');title('平均每个节点的定位误差')Úµã¾àÀë³õʼ¾ØÕó£»BeaconAmountÐÐNodeAmountÁÐ%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ÔÚÕý·½ÐÎÇøÓòÄÚ²úÉú¾ùÔÈ·Ö²¼µÄËæ»úÍØÆË~~~~~ ~~~~~~~~~~~~~~~C=BorderLength.*rand(2,NodeAmount);%´øÂß¼-ºÅµÄ½Úµã×ø±êSxy=[[1:NodeAmount];C];for Z=1:20;%Z=5;Rate(Z)=(5*Z)/NodeAmount;%RateΪÐűê½ÚµãµÄ±ÈÀýBeaconAmount=5*Z;UNAmount=NodeAmount-BeaconAmount;h=zeros(NodeAmount,NodeAmount);%³õʼÌøÊýΪ0£»BeaconAmountÐÐNodeAmountÁÐX=zeros(2,UNAmount);%½Úµã¹À¼Æ×ø±ê³õʼ¾ØÕóBeacon=[Sxy(2,1:BeaconAmount);Sxy(3,1:BeaconAmount)];%Ðűê½Úµã×ø±êUN=[Sxy(2,(BeaconAmount+1):NodeAmount);Sxy(3,(BeaconAmount+1):NodeAmoun t)];%δ֪½Úµã×ø±ê%~~~~~~~~~~~~~~~~~~~~»-³ö½Úµã·Ö²¼Í¼~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%plot(Sxy(2,1:BeaconAmount),Sxy(3,1:BeaconAmount),'r*',Sxy(2,(BeaconAmo unt+1):NodeAmount),Sxy(3,(BeaconAmount+1):NodeAmount),'k.')%xlim([0,BorderLength]);%ylim([0,BorderLength]);%title('* ºìÉ«Ðűê½Úµã . ºÚɫδ֪½Úµã')%~~~~~~~~~~~~~~~~~~~~~~~~~~~~³õʼ»¯½Úµã¼ä¾àÀë¡¢ÌøÊý¾ØÕó~~~~~~~~~~~~~~~~ ~~~~~~for i=1:NodeAmountfor j=1:NodeAmountDall(i,j)=((Sxy(2,i)-Sxy(2,j))^2+(Sxy(3,i)-Sxy(3,j))^2)^0.5;%ËùÓнڵã¼äÏ໥¾àÀëif (Dall(i,j)<=R)&(Dall(i,j)>0)h(i,j)=1;%³õʼÌøÊý¾ØÕóelseif i==jh(i,j)=0;else h(i,j)=inf;endendend%~~~~~~~~~~~~~~~~~~~~~~~~~×î¶Ì·¾-Ëã·¨¼ÆËã½Úµã¼äÌøÊý~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~for k=1:NodeAmountfor i=1:NodeAmountfor j=1:NodeAmountif h(i,k)+h(k,j)<h(i,j)%min(h(i,j),h(i,k)+h(k,j))h(i,j)=h(i,k)+h(k,j);endendendend%h%~~~~~~~~~~~~~~~~~~~~~~~~~Çóÿ¸öÐűê½ÚµãµÄУÕýÖµ~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~Dhop=zeros(1,UNAmount);h1=h(1:BeaconAmount,1:BeaconAmount);D1=Dall(1:BeaconAmount,1:BeaconAmount); % @dallµÄËã·¨×÷Óà £¿for i=1:BeaconAmountdhop(i,1)=sum(D1(i,:))/sum(h1(i,:));%ÿ¸öÐűê½ÚµãµÄƽ¾ùÿÌø¾àÀë @ (ÿһÐнøÐÐÔËËã)endD2=Dall(1:BeaconAmount,(BeaconAmount+1):NodeAmount);%BeaconAmountÐÐUNAm ountÁÐfor i=1:BeaconAmountfor j=1:UNAmountif min(D2(:,j))==D2(i,j) % ?Dhop(1,j)=D2(i,j);%δ֪½Úµã´Ó×î½üµÄÐűê»ñµÃУÕýÖµendendend%Dhop%~~~~~~~~~~~~~~~~~~~~~~~~~~~ÓÃÌøÊý¹À¼Æ¾àÀë~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~Distance=zeros(BeaconAmount,UNAmount);hop1=h(1:BeaconAmount,(BeaconAmount+1):NodeAmount);%δ֪½Úµãµ½ÐűêÌøÊý£¬BeaconAmountÐÐUNAmountÁÐfor i=1:UNAmount%hop=Dhop(1,i);%hopΪ´Ó×î½üÐűê»ñµÃµÄУÕýÖµhop=Dhop(1,i);Distance(:,i)=hop*hop1(:,i);%%BeaconÐÐUNÁУ»end% %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~×îС¶þ³Ë·¨Çóδ֪½Úµã×ø±ê~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~d=Distance;for i=1:2for j=1:(BeaconAmount-1)a(i,j)=Beacon(i,j)-Beacon(i,BeaconAmount);endendA=-2*(a');% d=d1';for m=1:UNAmountfor i=1:(BeaconAmount-1)B(i,1)=d(i,m)^2-d(BeaconAmount,m)^2-Beacon(1,i)^2+Beacon(1,BeaconAmount )^2-Beacon(2,i)^2+Beacon(2,BeaconAmount)^2;endX1=inv(A'*A)*A'*B;X(1,m)=X1(1,1);X(2,m)=X1(2,1);end%UN%Xfor i=1:UNAmounterror(1,i)=(((X(1,i)-UN(1,i))^2+(X(2,i)-UN(2,i))^2)^0.5);end%figure;plot(error,'-o')%title('ÿ¸öδ֪½ÚµãµÄÎó²î')avgerror(Z)=sum(error)/UNAmount; %δ֪½ÚµãµÄƽ¾ùÎó²îAccuracy(Z)=avgerror(Z)*100/R;end%figure;plot(Rate, Accuracy,'-or')xlabel('ê½Úµã±ÈÀýRate');ylabel('ƽ¾ù¶¨Î»Îó²î/%');title('ƽ¾ùÿ¸ö½ÚµãµÄ¶¨Î»Îó²î')。

相关文档
最新文档