APP下载

无线传感器网络精度优选RSSI协作定位算法

2018-08-27何小敏

计算机应用 2018年7期
关键词:信号强度测距定位精度

汪 明,许 亮,何小敏

(广东工业大学 自动化学院,广州 510006)(*通信作者电子邮箱celiangxu@gdut.edu.cn)

0 引言

目标定位与追踪是物联网系统的重要需求。传统定位技术有全球定位系统(Global Positioning System, GPS)、无线网络通信技术WiFi(Wireless Fidelity)、蓝牙等,这些技术都需要附属设备实现目标定位且成本较高、不易部署,而无线传感器网络具有随机部署、成本低等优点。利用无线传感器网络节点自定位技术实现目标定位与追踪是当前无线传感器网络一个重要应用方向,而高精度和快速定位是节点自定位追求的目标,因此研究精度高和速度快的无线传感器网络定位算法是关键[1-3]。

现存的无线传感器网络定位算法主要有两类:基于距离的定位算法和距离无关的定位算法。距离无关定位算法主要有:质心算法、距离向量-跳段(Distance Vector-Hop, DV-Hop)算法、无定形(Amorphous)定位算法、近似三角形内点测试法(Approximate Point-In-Triangulation Test, APIT)算法[4],这类算法实现简单,但定位精度低,无法满足高精度定位应用需求[5]。基于距离的定位算法能够实现精确定位,但是对节点硬件要求较高,这类算法主要有到达时间(Time Of Arrival, TOA)、到达时间差(Time Difference Of Arrival, TDOA)、到达角度(Angle Of Arrival, AOA)、接收信号强度指示(Received Signal Strength Indicator, RSSI),前三者都要求增加额外硬件设备,对传感器节点成本要求较高[6]。由于节点本身具有无线发射模块,无需增加额外硬件,因此基于RSSI测距的定位算法得到广泛研究[7];但RSSI测距受环境障碍物和多径效应影响较大,从而影响定位精度。如何减小环境因素对RSSI测距的影响,成为现代学者研究的重点[8]。文献[9]提出一种混合预处理模型处理得到的RSSI值,提高了RSSI测距精度和抗干扰能力,但受环境影响较大,无法实现精确定位。文献[10-11]认为较大的RSSI值估算出的距离精度越高,因而提出一种加权质心定位算法,一定程度上提高了节点定位精度;但节点一致性不是很好,无法实现精确定位。文献[12-13]根据节点测量功率和平面几何约束关系,提出一种动态获取区域路径损耗指数的方法,可有效提高信号强度转换成距离的精度;但该方法要求功率测量时无噪声,实际环境中很难实现。文献[14]提出一种将接收信号强度与行人航位推算系统(Pedestrian Dead Reckoning, PDR)相结合的室内定位算法,该算法可有效减小非视距情况下障碍物对定位精度的影响;但引进惯性装置,使得节点硬件成本较高,不适合大规模部署。文献[15]提出一种针对定位各阶段实施定位误差抑制的基于接收信号强度的协作定位算法,该算法在一定程度上提高了节点定位精度;但忽略了未知节点间的信息,造成了大量冗余信息的浪费。文献[16]提出一种基于RSSI概率估计函数的网格定位算法,该算法提高了节点定位精度,适合局部定位;但稳定性较差,具有较大的偶然性。文献[17]根据节点隶属度建立骨干网,采用两跳距离估计,结合协作技术,充分利用未知节点间的冗余信息,该算法定位精度高;但算法复杂,难以实现快速定位要求。文献[18-19]在不知道节点发射功率的情况下,采用一种改进半定规划的基于RSSI的协作定位算法,有效提高了节点定位精度;但算法计算复杂,对节点硬件要求高,不适合大规模部署。上述文献基于RSSI测距定位算法,主要有以下不足:一是只利用未知节点与锚节点间的接收信号强度进行定位,而忽略未知节点与未知节点间接收信号强度信息,对未知节点间冗余信息利用不足,造成信息浪费;二是不加筛选利用未知节点间接收信号强度RSSI,增加了算法时间复杂度。

针对目前定位算法对未知节点间接收信号强度RSSI利用不足及盲目利用的问题,本文提出了一种精度优选协作策略的RSSI协作定位算法,利用未知节点间接收信号强度RSSI参与节点位置修正,根据定位精度筛选参与协作的未知节点,有效提高了节点定位精度和算法效率。与已有定位算法相比,主要有以下改进;

1)根据RSSI阈值,从大量未知节点中粗筛选出定位精度相对较高节点;利用subset子集判断方法和锚节点置换准则,进一步挑选出两级精度协作骨干节点,为下一步协作求精准备条件。

2)以邻居骨干节点作为协作对象,利用未知节点间的接收信号强度对未知节点进行协作求精,避免因参与协作的未知节点因自身精度低而无法达到对定位精度修正的效果,提高了节点定位精度,减小了算法复杂度。

1 动态信号传播模型和测距误差修正函数

研究分析RSSI信号传播模型可以知道,路径损耗指数λ是信号强度RSSI转换为距离的重要参数。利用定位区域内锚节点已知的位置信息和相互间的通信,结合信号传播模型,可以实时动态获取路径损耗指数,建立动态信号传播模型,减小环境对测距的影响。根据定位区域内锚节点间已知的实际距离和由信号传播模型得到的测量距离,建立测距误差修正函数,可以进一步提高测距精度。根据动态信号传播模型和测距误差修正函数,在测距阶段对测量距离进行预处理,可以有效提高定位阶段的定位精度。

1.1 对数信号传播模型

基于信号强度指示RSSI的定位中,根据节点接收到的射频信号强度,采用适当的无线信号传输模型,将其转换为距离,最后再利用三边测量法计算出节点的位置。实践表明,射频信号在传播时随着距离逐渐衰减的,其衰减特性服从对数正态分布,常用对数常态分布模型,作为信号强度和传播距离的转换关系,其表达式如下:

P(d)=P(d0)-10λlg (d/d0)+Xσ

(1)

其中:P(d)表示距离发射节点距离为d处的接收信号功率,单位为dBm;P(d0)表示距离发射节点d0处的接收信号功率,单位为dBm;d0为参考距离,一般取为1 m;λ为路径损耗指数,其值受环境的影响,一般在2~4;Xσ代表环境噪声,信号传输过程中易受环境噪声影响,如信号串扰,式中取Xσ为零均值的高斯噪声模拟环境噪声。接收节点可根据接收到的信号强度,利用式(1)计算出与发射节点间的距离。

1.2 建立动态信号传播模型

路径损耗指数λ表示信号强度RSSI随距离增加衰减的速率,是测距估计的一个重要参数,其值取决于特定的传播环境。准确获取路径损耗指数的值,可以有效减小测距误差。传统方法都是根据经验取λ值,无法得到适应相应环境的λ值,导致计算距离与实际距离存在较大误差,而且一旦应用环境发生改变,就要重新调整λ值,使应用不够灵活。本文结合位置信息已知的锚节点,动态获取路径损耗指数。未知节点周期性地探测其邻居锚节点,选择其中接收信号强度最大的3个邻居锚节点,根据锚节点相互间的接收信号强度,结合信号传播模型即可实时获取未知节点所在定位区域的路径损耗指数。

假设A、B、C为未知节点N的3个邻居锚节点,A与B、C两个锚节点间的接收信号强度RSSI分别为P(dB)、P(dC),代入式(1)可得:

(2)

P(dB)-P(dC)=10λlg (dAB/dAC)

(3)

锚节点A、B、C位置已知,dAB、dAC的实际距离可以计算出来,根据式(3)即可求出路径损耗指数λ的值。将此时所求得的路径损耗指数λ代入信号传播模型,根据未知节点N与锚节点A、B、C间的接收信号强度,计算出未知节点与锚节点间的距离,可以有效减小环境对测距误差的影响。

1.3 测距误差预修正函数

为进一步减小环境对测距误差的影响,减小测距误差,由定位区域内锚节点间的实际距离和锚节点间利用信号传播模型得到的测量距离,根据误差变化的整体趋势,利用最小二乘法拟合出一条误差随距离变化的测距误差曲线,最后利用测距误差曲线对未知节点得到的测量距离进行修正。设实际距离与测量距离之间满足误差函数,其表达式如下:

s′=β1si+β0

(4)

其中si表示测量距离。

平方损失函数:

(5)

其中:si表示两个锚节点间测量距离;Δsi表示锚节点间实际距离与测量距离之差;n表示定位区域内通信锚节点的数量。使用最小二乘法,求得使平方损失函数最小时的系数β0、β1,得到测距误差修正函数,根据式(6)修正未知节点与信标节点间测量距离:

(6)

根据定位区域内锚节点的信息,建立具体环境下的RSSI信号传播模型和测距误差函数,对测量距离进行预处理,可以有效提高后续节点定位精度。

2 精度优选策略的RSSI协作定位算法

传统定位算法主要关注未知节点与锚节点间的信息,并将其转换成距离进行定位。无线传感器网络中,未知节点不仅可以与锚节点通信,未知节点之间也可以相互通信,这样就会存在大量冗余信息。在协作定位中,未知节点间信息被用来对定位节点进行误差矫正。对于一个已定位未知节点,可根据与其邻居未知节点间的信息对自身位置进行矫正,提高节点定位精度。由协作定位原理可知,因为需要未知节点参与协作求精,在迭代求精的过程中可能会产生累计误差,因此必须保证协作节点的精度足够高,这样就可以将协作过程中的累计误差降低到最低,同时参与协作的未知节点精度越高,对邻居未知节点误差修正效果越好。基于此,本文提出一种基于精度优选的协作策略。对粗定位节点,利用RSSI阈值、subset子集和锚节点置换准则筛选出符合精度要求的节点,并以筛选出的节点作为协作对象,对未知节点进行位置优化求精。以筛选出邻居协作骨干节点作为协作对象,对未知节点位置进行协作求精,提高节点定位精度,同时也避免因参与协作未知节点因为自身精度低而无法达到对定位精度修正的效果,提高了协作效率。

算法流程如图1所示。1)RSSI粗定位。根据接收信号强度RSSI计算待定位节点与锚节点距离,最后使用极大似然法对未知节点进行粗定位。2)筛选协作骨干节点。根据信号强度与测距误差关系,设置RSSI阈值,快速从大量未知节点中挑选出定位精度较高的节点;对挑选出的节点使用subset子集判定,剔除受环境影响而不稳定的节点,得到次选协作骨干节点;最后利用锚节点置换原则,筛选出符合精度要求的节点作为优选骨干节点。3)协作求精。以邻居优选协作骨干节点作为优选协作对象,在邻居优选协作骨干节点不足的情况下,再选择邻居次选协作骨干节点作为协作对象,对未知节点进行位置误差修正。

图1 精度优选协作定位算法流程

2.1 RSSI粗定位

在定位区域内,当未知节点邻居锚节点数大于或等于3个时,根据未知节点和锚节点间的接收信号强度RSSI,利用信号传播模型和测距误差修正函数计算出未知节点与相应锚节点间距离,最后使用极大似然法对未知节点进行定位。对邻居锚节点数小于3个的未知节点,先以一级邻居骨干节点作为补充锚节点进行定位;若锚节点数仍低于3个,则再以二级邻居骨干节点作为进一步的补充锚节点进行定位,可有效扩大节点定位范围。具体算法如下。

算法1 RSSI粗定位算法。

Input:锚节点坐标(xanchor,yanchor),未知节点i∈1,2,…,n。

Output:未知节点估计坐标(xN,yN)。

Method:

for alli← 1:ndo

j→ 邻居锚节点

ifj≥3 then

(xN,yN) ← ML(Max Likehood Estimation)

else

b1 ← 邻居优选协作骨干节点

j←j+b1

ifj≥3 then

(xN,yN) ← ML

else then

b2 → 邻居次选协作骨干节点

j←j+b2

(xN,yN) ← ML

end if

end if

end for

2.2 筛选协作骨干节点

参与协作的节点精度直接影响着误差修正效率,本文根据RSSI阈值、subset子集判断方法以及锚节点置换原则,有效筛选出RSSI粗定位精度较高的节点。首先,使用RSSI阈值,可快速从大量的未知节点中的筛选出精度相对较高的节点,减少计算时间。subset子集判断方法和锚节点置换原则由于要再次进行定位运算,计算复杂,因此,在使用RSSI阈值筛选出的节点中,使用subset子集判断方法和锚节点置换原则,不仅可以剔除受环境影响的节点,筛选出精度高的节点,同时也能极大减少计算时间,节省能量。最后以筛选出的节点作为协作节点参与位置误差修正。

2.2.1 确定RSSI阈值

RSSI值受多径效应影响较大,同一条件下,RSSI值越大,测距误差越小,节点定位精度越高。通过实验确定不同环境下的RSSI阈值,再根据RSSI阈值可以快速从大量未知节点中筛选出粗定位精度较高的未知节点。实验中,信号传播模型各变量取值如下:参考距离d0为1 m;在参考距离处节点接收信号强度P(d0)为-40 dBm;Xσ为零均值、方差为2的正态分布。在仿真环境下,得到的测距误差与接收信号强度之间的关系如表1所示。

表1 测距误差与信号强度的关系

由表1的实验结果可知,外部条件一定情况下,在路径损耗指数相同时,不同节点间距对应的测距误差相差很大;在相同节点间距时,不同路径损耗指数对应的测距误差也存在较大差别。为提高节点定位精度,应尽量减小测距误差。根据表1,取测距误差参考值为1.5 m,初步筛选出定位精度较高的节点。由测距误差得到RSSI阈值如下:当路径损耗指数λ在[2,2.5)时,取RSSI阈值为RSSIthres=-65 dBm;当路径损耗指数λ在[2.5,3)时,取RSSI阈值为RSSIthres=-80 dBm;当路径损耗指数λ在[3,3.5)时,取RSSI阈值为RSSIthres=-90 dBm;当路径损耗指数λ在[3.5,4)时,取RSSI阈值为RSSIthres=-100 dBm。

2.2.2 RSSI阈值筛选节点

由信号传播模型可知,接收信号强度RSSI随着节点间收发距离的增大而减小。接收信号强度RSSI值越大,根据信号传播模型计算得到的测量值与真实值越接近;RSSI值越小,测量值与真实值误差越大。根据表1得到的RSSI阈值当来自锚节点信号强度平均值RSSIav>RSSIthres时,表明此时节点的测距较精确,定位精度较高。

未知节点N在同一位置接收来自n1个锚节点的RSSI值,使用高斯模型对RSSI值进行处理,减少小概率、大干扰事件的影响。最后,对来自不同锚节点的接收信号强度RSSI求均值:

(7)

其中,n1为邻居锚节点数;RSSIi为与第i个锚节点间的接收信号强度。结合路径损耗指数判断其与RSSI阈值的关系,如果

RSSIav≥RSSIthres

(8)

表示此节点粗定位精度相对较高。可见,利用RSSI阈值,可以快速从大量未知节点中初步筛选出定位精度相对较高的节点。

2.2.3 用subset子集提取次选协作骨干节点

RSSI阈值受环境影响较大,具有不稳定性。为进一步消除环境的影响,本文提出一种subset子集判定的方法。由表1可知,在相同条件下,RSSI值越大,节点测距误差越小,定位精度也相应更高。使用极大似然法对未知节点定位,其实是一个迭代使用三边测量法缩小定位区域的过程,未知节点最终位置实际上是由测距误差最小的几个锚节点决定的。在未知节点邻居参考节点中取4个具有最大RSSI值的锚节点,取4个锚节点中的任3个锚节点为一组,使用三边测量法定位,可以得到未知节点的4个估计位置。相应地,这4个估计位置相互间的误差应该是未知节点所有邻居锚节点的组合中使用三边测量法时最小的。正常情况下,未知节点在同一位置的这4个估计位置应该是很接近的,如果4个估计位置相互间的误差较大,超过某一阈值k,则表示该节点受环境影响较大,位置估计不稳定。基于此,选取未知节点4个具有最大RSSI值的邻居锚节点建立一个subset(4,3)子集,subset(4,3)表示在接收信号强度最大4个锚节点中任意3个锚节点为一组的一个集合。对每组subset(4,3)中来自3个锚节点的RSSI值使用三边测量法进行定位,最终可以得到未知节点的4个位置估计值,取4个位置相互间误差最小值:

E=min{dis(ck1,ck2),∀k1∈1,2,3,4,

k2∈1,2,3,4 andk1≠k2}

(9)

其中:k1,k2为subset子集序号;ck1为第k1个subset子集得到的位置估计;dis(ck1,ck2)为第k1个subset子集位置估计和第k2个subset子集位置估计之间的误差距离。当位置误差满足:

E≤θ

(10)

则表明节点估计位置稳定,受环境干扰小,精度较高。实验中,θ取0.5,将满足条件式(10)的节点作为次选协作骨干节点。

RSSI阈值筛选节点计算简单,但是易受环境影响,使得RSSI阈值具有不稳定性。使用subset(4,3)子集判定条件,可以从RSSI阈值筛选出的节点中进一步剔除受环境影响较大的节点,确保筛选出节点的高精度和稳定性。

2.2.4 用锚节点置换原则筛选优选协作骨干节点

因为参与协作的节点精度越高,对未知节点误差修正效果越明显,可有效提高协作效率。为了满足协作节点的高精度要求,还需采取一定的措施对节点进行再提取,使筛选出的节点精度尽可能高。这里提出一种锚节点置换原则,对上面筛选的优选协作骨干节点进行再处理:设未知节点N的估计坐标为(xN,yN),参与定位的3个信标节点分别为A(xA,yA)、B(xB,yB)、C(xC,yC)。现在将未知节点N看成位置已知的信标节点,坐标为(xN,yN),称为转化信标节点。在信标节点A、B、C中任选一个节点,这里选择信标节点B,将其看成未知节点。最后利用信标节点A、C和未知节点N对B采用三边测量法进行定位,估计坐标为B′(xB′,yB′),最后与B的实际位置进行比较,计算估计误差:

(11)

最终的误差由确定δ。δ越小,表明节点定位误差越小,实验中取δ=0.2 m。如果信标节点B的估计误差满足式(11),可以认为未知节点N的精度满足要求,因此将未知节点N作为协作节点。根据锚节点置换原则,将筛选出的所有符合条件的未知节点作为优选协作骨干节点。

2.3 协作求精

2.3.1 协作缩小定位区域

未知节点在RSSI定位阶段,由于信号强度的测量存在误差,转化为距离使用三边测量法进行定位时,得到的只是一个区域,最后将这个区域的质心作为未知节点估计位置,使未知节点的定位精度较低。利用未知节点间相互通信的协作信息,可以进一步缩小使用三边测量法得到的定位区域,有效提高未知节点定位精度。

图2所示为协作缩小定位区域图。O1未知节点B使用三边测量法的定位区域,根据节点A与节点B间的接收信号强度RSSI,利用信号传播模型可以得到节点A与节点B间的测量距离为d12,以节点A为圆心,d12为半径作圆与节点B定位区域O1相交得到区域O1′,可将节点B的位置区域缩小到O1′里,这样对节点B的位置估计就会更加精确。

图2 协作缩小定位区域原理

2.3.2 精度优选协作节点的协作策略

根据协作缩小定位区域原理可知,协作时要根据协作节点的位置对未知节点进行误差修正,协作节点本身存在误差,但在协作时可能会产生累计误差。正是因为协作求精时可能会产生累计误差,所以前面才会采用subset子集判断方法和锚节点置换准则以确保筛选出的协作节点精度足够高,这样协作节点参与协作时,就可以将协作求精时的累计误差降到最低,同时也能提高协作效率。基于此,本文提出一种基于精度优选协作节点的协作策略,在每次协作中,分为骨干节点和普通未知节点的协作求精。骨干节点协作求精:对每个骨干节点,以邻居优选协作骨干节点作为优选协作对象,如果没有邻居优选协作骨干节点,则以邻居次选协作骨干节点作为次选协作对象,使用协作算法对节点位置进行协作求精。普通未知节点协作求精:未知节点同样以邻居优选协作骨干节点作为优选协作对象,以邻居次选协作骨干节点作为次选协作对象,使用协作算法对节点位置进行协作求精。最后,直到协作前后节点位置无变化则停止。这样,既可以提高节点定位精度,同时也减少了计算时间。协作策略的具体步骤如算法2所示。

算法2 精度优选协作节点的协作算法。

Input:低精度未知节点i粗定位坐标(xN,yN),骨干节点j粗定位坐标(xbackbone,ybackbone)。

m→ 骨干节点数

for allj← 1:mdo

p→ 邻居优选骨干节点

ifp>0 then

以p为协作对象

(xbackbone′,ybackbone′) ← 协作求精

else

p′ → 邻居次选协作骨干节点

以p′为协作对象

(xbackbone′,ybackbone′) ← 协作求精

end if

X←xbackbone-xbackbone′

Y←ybackbone-ybackbone′

end for

m1← 低精度未知节点数

for alli← 1:m1do

l← 邻居优选协作骨干节点

ifl>0 then

以l为协作对象

(xN,yN) ← 协作求精

else

l′ ← 邻居次选协作骨干节点

以l′为协作对象

(xN,yN) ← 协作求精

end if

X′ ←xN-xN′

Y′ ←yN-yN′

end for

ifX′=0 andY′=0 andX=0 andY=0 then

stop

Output:未知节点协作求精坐标(xN′,yN′)、(xbackbone′,ybackbone′)。

整个协作过程中,都是尽量选择精度高节点作为协作对象,以协作节点精度决定协作次序,提高协作效率,避免因参与协作未知节点因为自身精度低而无法达到对定位精度修正效果,减少计算时间。

2.4 精度优选RSSI协作定位算法时间复杂度分析

正文内容这里采用大O记法O()来体现本文算法中各部分的时间复杂度,O1~O3分别表示RSSI粗定位、筛选协作骨干节点和协作算法的时间复杂度。

1)RSSI粗定位算法。

设初始未知节点总数为P,对每个节点进行三边定位判断,时间复杂度为:

T1=O1(P)

(12)

2)筛选协作骨干节点。

最坏的情况是每个未知节点都满足RSSI阈值判断和锚节点置换原则,因此要进行P次运算,则时间复杂度为:

T2=O2(P)

(13)

3)协作定位。

设优选协作骨干节点数为M,次选协作骨干节点数为N,迭代次数为Q,则骨干节点协作求精的时间复杂度为:

T3′=O3′((M+N)×Q)

(14)

未知节点协作求精时间复杂度为:

T3″=O3″((P-M-N)×Q)

(15)

总的时间复杂度为:

T3=O3(P×Q)

(16)

RSSI粗定位和筛选协作骨干节点计算简单,为后期协作求精作准备,算法代价不高。最后的协作求精阶段,基于一种精度优选协作策略,前面的节点筛选减少了该阶段的计算时间,整体算法时间复杂度相对较低。

3 实验结果与分析

为验证所提出定位算法效果,本文在CPU Intel Core i5- 4590@ 3.30 GHz、内存4 GB、Matlab R2015a仿真平台下,对所提算法定位效果进行模拟仿真。

实验中,设置定位区域为100 m×100 m正方形区域,节点随机部署在该区域内,节点总数目、参考节点数和通信半径等参数根据具体实验要求来设置。设第i个未知节点实际位置坐标为(xi,yi),估计位置坐标为(xei,yei),节点定位误差Ei定义如下:

(17)

其中:i=1,2,…,N,代表未知节点序号;R代表通信半径。节点平均定位误差定义如下:

(18)

节点平均定位误差越小,表明算法定位精度越高。

实验中,将本文算法分别与文献[15]、文献[16]和传统协作定位算法定位效果进行对比分析。其中,文献[15]是一种改进的针对各阶段实施定位误差抑制的基于RSSI定位算法;文献[16]是一种改进的基于RSSI概率估计函数的网格定位算法。文献[15-16]相较于传统的RSSI协作定位算法,定位精度都有较大的提升。传统协作定位算法,即对邻居未知节点信息不加筛选盲目利用的协作定位算法。本文通过分析锚节点数、未知节点数以及节点通信半径对定位精度影响,分别将本文算法与文献[15-16]两种改进的RSSI定位算法进行对比。在时间效率上将本文算法和传统协作定位算法进行了对比。

3.1 协作节点筛选

图3为在100 m×100 m的网络区域内,节点最大通信半径为20 m时,优选协作骨干节点分布。图3(a)为未知节点数为50,锚节点数为25时,得到优选协作骨干节点分布图;图3(b)为未知节点数为100,锚节点数为25时,得到的优选协作骨干节点分布。

由图3可知,在其他条件相同的情况下,优选协作骨干节点数随着未知节点数的增加而增加。

3.2 锚节点数对定位精度的影响

图4为在100 m×100 m的网络区域内,节点最大通信半径为20,未知节点数为100,锚节点数为10,15,20,25,30,35,40时本文算法和文献[15-16]改进RSSI定位算法对比曲线。

由图4可知,在外部条件相同的情况下,本文算法明显优于文献[15-16]算法。在锚节点数较小时,节点平均定位精度较文献[15-16]算法也有所提高,但定位精度仍较低;随着锚节点数增加,节点平均定位精度也不断提高;当锚节点数增加到35以后,节点平均定位精度变化缓慢趋于稳定。实验表明,本文算法具有很好的鲁棒性和稳定性。

图3 优选协作骨干节点分布

图4 锚节点数对定位精度影响

3.3 未知节点数对定位精度影响

图5为在100 m×100 m的网络区域内,节点最大通信半径为20,未知节点数分别为20,50,100时,使用本文算法得到的节点平均定位误差对比曲线。

图5 未知节点数对定位精度影响

从图5可知,未知节点数越多,节点定位精度越高。未知节点的密度影响着协作骨干节点的数量,因为未知节点数越多,协作骨干节点也越多,协作后节点定位精度相应越高。由此可见,本文算法在节点密集部署环境下能取得较好的效果。

3.4 通信半径对定位精度影响

图6为100 m×100 m网络区域内,未知节点总数为100个,锚节点数为20,节点通信半径分别设置为10,15,20,25,30,35,40时,本文算法与文献[15]、文献[16]两种改进RSSI算法平均定位误差随节点通信半径变化对比。

图6 通信半径对定位精度影响

由图6可知,随着通信半径的增大,本文算法节点平均定位精度逐渐提高。在外部条件相同的情况下,本文算法明显由于文献[15]算法、文献[16]算法。在通信半径较小的情况下,本文算法节点平均定位精度相较于文献[15]算法、文献[16]算法有所提高,但效果不明显;当节点通信半径大于20 m时,本文算法能够取得较好的效果,节点平均定位精度较文献[15]算法、文献[16]算法有较大提升。可见,本文算法在大范围网络能取得较好的效果。

3.5 协作次数对定位精度的影响

在100 m×100 m的网络区域里,设置节点最大通信半径为20,锚节点的数量为20,未知节点数为100,图7是本文算法、传统协作定位算法和文献[15]改进RSSI定位算法平均定位误差与协作次数的关系。

图7 协作次数对定位精度影响

从图7中节点平均定位误差与协作次数关系曲线可知:本文算法和传统协作定位算法,节点定位精度随着协作次数的增加而不断提高;在相同的协作次数下,本文协作定位算法节点定位精度明显高于传统协作定位算法。因为本位算法实行的精度优选协作节点的策略,避免了因参与协作的未知节点因为自身精度低而无法对定位精度修正,提高了协作效率,因此在相同时间内,本文算法要比传统协作算法取得更高的定位精度。

3.6 节点定位时间

图8是在100 m×100 m网络区域内,节点最大通信半径为20 m时,锚节点数为20时,本文算法和传统协作算法定位时间随未知节点数变化对比。

图8 节点定位时间对比

由图8可知,节点定位消耗的平均时间随着未知节点数的增加而增大。在外部条件相同,未知节点一定的情况下,本文算法节点平均定位时间比传统协作定位算法下降了20%,在定位效率上取得极大提升。

4 结语

无线传感器网络定位是无线传感器网络应用的一个重要前提,考虑到传统算法定位精度不足、时间复杂度高等不足,本文提出了无线传感器网络RSSI协作定位算法。仿真实验结果表明,在外部条件相同的情况下,相较于传统算法,本文算法在定位精度上提高了15%,在时间效率提高了20%,在定位精度和时间效率上都有大幅提升,适合节点在大规模密集环境下实现快速精确定位。本文算法主要适用于大规模密集部署的网络,下一步将考虑如何实现在稀疏网络中的高精度快速定位,已进一步减小其在实际应用中的成本。

猜你喜欢

信号强度测距定位精度
北方海区北斗地基增强系统基站自定位精度研究
光学相干断层成像不同扫描信号强度对视盘RNFL厚度分析的影响
基于RSSI测距的最大似然估计的节点定位算法
Galileo中断服务前后SPP的精度对比分析
基于STM32的多通道超声波测距系统设计
GPS定位精度研究
GPS定位精度研究
基于单片机的超声波测距导盲杖设计
钻铤对随钻电磁波测井信号的影响分析
TETRA数字集群通信系统在露天矿山的应用