融合RSSI跳数量化与误差修正的DV-Hop改进算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第33卷第5期2020年5月
传感技术学报
CHINESEJOURNALOFSENSORSANDACTUATORS
Vol 33㊀No 5May2020
收稿日期:2020-03-30㊀㊀修改日期:2020-05-18
ImprovedDV ̄HopAlgorithmBasedonRSSIHopQuantizationandErrorCorrection
RENKeqiang∗ꎬPANCuimin
(SchoolofInformationEngineeringꎬJiangxiUniversityofScienceandTechnologyꎬGanzhouJiangxi341000ꎬchina)
Abstract:InordertoimprovethelocationaccuracyofDV ̄HopalgorithmintheunevennetworksꎬanimprovedDV ̄HopalgorithmbasedonRSSIhopquantificationanderrorcorrectionwasproposed.Firstlyꎬtheimprovedalgorithm
quantifiedthehopcountsbytheratioofRSSIvalueofthenodestothereferenceRSSIvalueꎬwhichconvertstheinte ̄gerhopsintocontinuoushopsꎬandrecalculatedtheaveragesingle ̄hopdistanceofanchornodesbasedonthequan ̄tizedhops.Thenꎬtheaveragesingle ̄hopdistanceofanchornodeswereweightedtorevisetheaveragesingle ̄hopdis ̄tanceofunknownnodes.Finallyꎬthedistancerelationshipsbetweenunknownnodesandnearestanchornodewereuti ̄lizedtocorrecttheerroroftheestimationcoordinatesforunknownnodesꎬwhichcouldfurtherreducethelocalizationerrorofunknownnodes.TheexperimentalresultsshowthatcomparedwithDV ̄Hopalgorithmandcomparativerefer ̄enceꎬtheimprovedalgorithmcaneffectivelydecreasetheeffectofcumulativeerrorondistanceestimationandenhancethelocalizationaccuracyofunknownnodesinthesamenetworkenvironment.Therelativelocalizationerror
oftheimprovedalgorithmis20.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ʂi
hj(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的真实距离却各不相同ꎬ所以按照这种方法计算节点间的跳数与节点间真实距离存在较大偏差ꎮ
9
17
传㊀感㊀技㊀术㊀学㊀报
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)=dd
0
æ
è
ç
ö
ø
÷
η
(8)
式中:P(d)和P(d0)分别为距离发射端d和d0处的接收信号强度ꎻη为路径损耗因子ꎬ取值通常在2~4之间ꎮ
遮挡因子Xσ描述了固定距离下接收信号强度的变化ꎬ是一个对数正态随机参数ꎮ以dB为单位并把Xσ置入对数-常态分布模型ꎬ则对数-常态分布模型可表示为:
[P(d)]dB=[P(d0)]dB-10ηlgdd
0
æ
è
ç
ö
ø
÷+Xσ
(9)为了防止单次RSSI测量值可能存在较大误差的出现ꎬ采用多次接收同一节点的RSSI值并取中位数作为最终的RSSI值ꎮ
选取节点通信半径R作为理想单跳距离ꎬ并定义节点间距离为R时跳数为1ꎬ那么利用通信范围内节点间的真实距离与R的比值计算节点间跳数ꎬ更能反映出节点间的距离关系ꎮ当相邻节点中存在坐标未知的节点时ꎬ就无法获得节点间的真实距离ꎬ但所有节点都具有采集RSSI的功能ꎬ所以可以利用未知节点接收的RSSI值来量化节点间跳数ꎮ用TR表示节点间的距离为R时的接收信号强度ꎬ并定义TR为基准RSSI值ꎬ用邻居节点间的RSSI值与基准RSSI的比值作为该邻居节点间的跳数ꎬ由式(9)可得TR为:
TR=[P(d0)]dB-10ηlgRd
0
æ
è
ç
ö
ø
÷+Xσ
(10)假设节点k收到来自邻居节点的RSSI值为Rkꎬ则节点k到该邻居节点的跳数为:
hopk=RkT
R
ɤ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ʂi
hopj㊀㊀
=
ðjʂi(xi-xj)2+(yi-yj)2
ðjʂi
hopj-1
+
RjTRæè
çö
ø
÷
=
ðjʂi
(xi-xj)2+(yi-yj)2ðjʂiR1
T
R
+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ʂi
hopj
(15)
利用锚节点i的平均跳距偏差可以得到修正之后的锚节点平均跳距:
dHopi=HopSizeᶄi+εi
(16)
2.3㊀未知节点平均跳距的修正
未知节点利用最近锚节点确定自身平均跳距的方法虽然简单ꎬ但单个锚节点并不能体现整个网络的情况ꎮ为避免未知节点从单一锚节点获取平均跳距可能带来的问题ꎬ在计算未知节点平均跳距时ꎬ应该综合考虑网络中的锚节点ꎮ由于未知节点与相距
较近锚节点附近的网络环境更接近ꎬ节点间的连通度差异也更小ꎬ因此ꎬ本文以未知节点到各锚节点的跳数信息为权值ꎬ采用加权策略将未知节点收到的所有平均跳距都参与其自身平均跳距的计算ꎮ
假设未知节点A收到n个锚节点平均跳距ꎬ则A对n个锚节点平均跳距的权值通过式(17)获得ꎮ
ωi=hopmax-hopi+1ðni=1
hopmax-hopi+1
(17)
式中:hopmax为A记录的到n个锚节点的跳数最大值ꎬhopi为A记录的到锚节点i的跳数值ꎮ
A对接收到的n个锚节点平均跳距做出基于
ωi的加权ꎬ并将结果作为A的最终平均跳距:
HopSizeA=
ðn
i=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)1
27
传㊀感㊀技㊀术㊀学㊀报
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
㊀endif
done
节点平均跳距修正:通过节点间量化跳数和相应的距离关系修正节点的平均跳距ꎬ包括锚节点Bi和未知节点Akꎮwhileanchornodesstopbroadcastingpacketsdo㊀foreachanchornodeBiandunknownnodeAk
㊀㊀correctthesingle ̄hopdistanceofBibyEq.(12)~(16)㊀㊀correctthesingle ̄hopdistanceofAkbyEq.(17)~(18)㊀done
done
未知节点坐标误差修正:未知节点获得ND个到锚节点的跳段距离ꎻC(^xꎬ^y)为未知节点的估计坐标ꎻBn为未知节点距离最近的锚节点ꎮ
ifNDȡ3
㊀thencalculatetheestimatedcoordinatesC(^xꎬ^y)
㊀㊀calculatethedistancedbetweenCandBn
㊀㊀estimatingthedistancedrbetweenunknownnode
㊀㊀andBnbyRSSItechnique
㊀㊀ifdʂdr
㊀㊀㊀thencorrectCtoanewcoordinatesbyEq.(19)
㊀㊀endif
endif
改进算法的流程图如图4所示
ꎮ
图4㊀本文改进算法流程图
3㊀仿真结果与分析
为了验证本文算法的定位性能ꎬ利用MATLAB对DV ̄Hop算法㊁文献[11]算法㊁文献[12]算法及本文算法进行仿真比较ꎮ仿真实验环境:节点被随机分布在100mˑ100m的区域内ꎬ节点的通信半径为Rꎬ实验结果取仿真100次的平均值ꎮ
选定相对定位误差Er作为定位效果的评价标准:
Er=
ðNi=1(xi-xᶄi)2+(yi-yᶄi)2
Nˑ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算法与本文算法对
3
27
传㊀感㊀技㊀术㊀学㊀报
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。