无线传感器网络差分修正定位算法的改进
扫描二维码
随时随地手机看文章
摘要:提出了无线传感器网络中一种基于接收信号指示强度的改进差分修正算法,与传统的差分修正算法相比,在该算法中,通过各个信标节点分别作为差分参考节点进行定位,避免了单个差分参考节点对未知节点定位决定权过大。同时,提出加权因子的概念,体现了各差分参考点对定位效果的决定权。实验结果表明,改进的差分修正算法的定位精度和稳定性有明显提高。
关键词:无线传感器网络;接收信号指示强度;改进的差分修正算法;加权因子;定位
0 引言
无线传感器网络(Wireless Sensor Network,WSN)通过部署在目标区域的大量传感器节点,对目标进行监测。WSN实现了对目标的定位和追踪,实时地确定事件发生的位置,将改变人与客观世界的交互方式。监测事件发生的位置或获取信息节点的位置是WSN最基本的功能之一,所以节点定位成为WSN的关键支撑技术之一。
当前,定位算法的研究已经成为一个重要的研究方向和热点问题。典型的定位算法可分为基于距离的(Range-based)定位算法和距离无关的(Range-free)定位算法。Range-based定位通过测量节点间点到点的距离或角度信息,使用三边测量法、三角测量法或最大似然估计法计算未知节点位置;Range-Free定位则无需距离和角度信息,仅根据网络连通性等信息即可实现,常用的有DV-Hop算法、APIT算法、质心算法等。距离无关的定位算法对节点的硬件结构要求较低,但是其定位精度不高,很难满足室内定位精度的要求。本文重点关注基于距离的定位算法,常用的测距技术有RSSI,TOA,TDOA和AOA等。其中由于RSSI测距借助的硬件设备少,而且许多无线通信模块都可以直接提供RSS值,因此,基于RSSI的测距方法被广泛应用。
如何提高定位精度成为了一个比较实际的问题,文献提出了一种基于RSSI测距的差分修正定位算法,把距离目标节点最近的信标节点作为差分参考节点,对未知节点进行差分定位。该算法要想获得较好的定位精度,必须使未知节点附近有一个信标节点,这在信标节点密度不够大时往往不容易满足。本文提出了一种基于RSSI测距的多个差分修正参考点的方法,分别对未知节点进行差分修正。首先判断未知节点所在的最小区域,然后利用路径损耗模型计算未知节点与各信标节点的距离,利用区域内的各信标节点分别作为参考节点,进一步校正,得出未知节点的坐标。该算法更具有普遍的实用性,定位精度也得到很大提高。
1 算法模型
在基于接收信号强度指示的RSSI定位中,已知发射节点的发射信号强度,接收节点根据接收到的信号强度,计算出传播损耗,利用理论和经验模型将传输损耗转化为距离,再利用三边测量法算出它的位置。
1.1 无线电传播路径损耗模型分析
无线电传播路径损耗对于RSSI定位算法的定位精度有很大影响。常用的传播路径损耗模型有:自由空间传播模型、对数距离路径损耗模型、哈它模型、对数-常态分布模型等。
自由空间无线电传播路径损耗模型如下:
Loss=32.44+10nlg(d0)+10nlg(f) (1)
式中:Loss为自由空间损耗(单位:dB);d0为距信源的距离(单位:km);f为频率(单位:MHz);n为路径衰减因子。在实际应用环境中,由于多径、绕射、障碍物等因素,对数-常态分布模型将更加合理。对数-常态分布模型如下:
式中:PL(d)为经过距离d后的路径损耗;Xδ为平均值为0的高斯分布随机变数,其标准差范围为4~10;n的范围为2~5。取d0为参考距离(单位:m),通常取1 m,代入式(1),得到Loss即的值。
未知节点接收到信标节点的信号强度RSSI为:
RSSI=Psend+Pamplify-PL(d) (3)
式中:RSSI是接收到的功率;Psend是发射信号的功率;
Pamplify是天线的增益;PL(d)是路径损耗。将式(2)代入式(3),简化后可得式(4)。
RSSI=b-10nlg(d) (4)
式中,由式(4)可知,RSSI与10lg(d)成线性关系。在具体环境下,根据公式计算出相应的b和n,此环境的信号传输模型便确定下来,进而为定位做好准备。
1.2 三边测量法
三边测量法中,已知3个信标节点的坐标分别为Bi(xi,yi),Bi(x,yi),Bk(xk,yk),以及各信标点到未知节点的距离分别为di,dj,dk,假设未知节点的坐标为M(x,y)。根据二维空间的距离计算公式,可得到一个非线性方程组:
1.3 差分修正定位算法
传统差分修正算法如图1所示,信标节点为A(x1,y1),B(x2,y2),C(x3,y3),未知节点M(x,y)。D(x4,y4)是与未知节点M最近的信标节点,令其为差分参考节点。差分参考节点D到信标节点A,B,C的实际距离分别为dDA,dDB,dDC;未知节点M到信标节点A,B,C的测量距离分别为dA,dB,dC。通过信标节点对差分参考节点的定位实现对未知节点坐标的校正。
首先通过A,B,C用三边测量法求出D点的测量坐标,与D点的实际坐标相比较,得出偏移量(△x,△y)。用同样的办法通过A,B,C对M点进行定位,得出M点的测量坐标。在这里,可以将差分参考点D的偏移量近似作为未知节点M的偏移量。M点的测量坐标加上差分参考点D的偏移量,得出M的定位坐标(x,y)。如式(7)所示:
2 改进的差分修正算法与实现
传统的差分修正算法中,差分修正参考点的选取存在一些不合理的因素。该算法要取得较好的定位效果必须有一个信标节点在未知节点附近。在实际应用场合,这一条件通常难以满足:在信标节点密度有限的情况下,未知节点处于信标节点附近不是一个大概率事件。如图2所示,未知节点距离各个信标节点的距离都不是很接近,在定位区域内无法选出最优参考点,那么此时采用最近的参考点对未知节点校正,就会产生很大的误差。
本文提出改进的差分修正算法,利用各信标节点分别作为参考点进行差分修正,从一定程度上可以避免此类问题的出现。
2.1 改进的差分修正定位算法模型
首先,根据接收到的RSSI的大小,确定距离未知节点M最近的三个信标节点。以这三个信标节点确定一个三角形,求出这个三角形的质心。距离该质心最近的信标节点作为定位计算的第四个信标节点,此四点所围成的区域,便是未知节点所在的最小区域。
然后,以A,B,C,D为信标节点对未知节点M进行定位。首先以A点作为差分修正参考点,B,C,D作为信标节点,利用式(7)得出M以A为差分修正点的定位坐标(xma,yma)。然后分别以B,C,D作为差分修正参考点对M(X,Y)进行定位,得到差分修正坐标(xmb,ymb),(xmc,ymc),(xmd,ymd)。
在传统的差分修正算法中,没有充分利用其他信标节点对节点位置影响力的大小,影响了定位精度。改进的差分修正算法,通过加权因子来体现信标节点对节点位置坐标决定权的大小。根据差分参考点到未知节点的距离对差分修正坐标进行加权修正,计算出M的坐标。
式中:dA,dB,dC,dD为信标节点到未知节点的距离。因子体现了距离未知节点越近的信标节点作为参考点时,对未知节点坐标位置的影响力越大。通过这种内在关系的反映来达到提高定位精度的目的。
2.2 算法实现过程
基于上面提出的改进差分修正算法,其实现的步骤如下:
(1)信标节点周期性地发送自身信息:节点ID、自身位置信息。
(2)未知节点在收到信息后,对同一信标节点的RSSI求均值。
(3)当未知节点接收到一定数量的信标节点的信息后,不再接收信息。未知节点根据RSSI从强到弱的顺序,建立RSSI值与节点到信标节点距离的映射。建立以下三个集合。
信标节点集合:B_set={b1,b2,…,bm};
未知节点到信标节点的距离集合:D_set={d1,d2,…,dm},d1<d2<…<dm;
信标节点的位置集合:P_set={(x1,y1),(x2,y2),…,(xm,ym)};
(4)选取RSSI值大的前几个信标节点进行定位计算。在这里按照本文改进的算法,选取未知节点所在最小区域的四个信标节点用于定位。用改进的差分修正定位算法对这四个信标节点分别进行差分定位,利用式(8)求出未知节点的坐标(x,y)。
(5)计算定位误差,其中(x,y)为未知节点的真实位置。
3 仿真结果
在Matlab平台上,分别对差分定位算法和改进的差分定位算法进行仿真。仿真条件是在一个30 m的正方形区域内,传播路径损耗模型选择经典的自由空间模型和对数一常态模型。在该区域的四个顶点,分别放函数来生成,在该区域内随机分布,一共生成20个未知节点。然后根据RSSI与距离的关系,由式(4)生成RSSI数据,这里b取30,n取2,并在数据中添加均值为0,方差δ为3和7的高斯噪声,作为RSSI的随机分量,以模拟实际环境中反射、多径等带来的影响。按照上述方法,在两种情况下分别对两种算法进行仿真运算,得出未知节点的测量位置。两种算法的仿真结果与对比如图3~图6所示。
从图中可以看出,改进的差分修正定位算法的位置偏移量明显小于传统的差分修正定位算法。改进的差分修正定位算法,通过选取多个差分参考点的方法,很好地解决了由于选择单个差分参考节点,从而导致误差过大的问题。
表1给出了两种差分修正算法定位效果的比较,从表中可以看出,改进的差分修正算法和差分修正算法相比,定位精度和稳定性有明显提高。
4 结论
传统的差分修正算法由于只考虑距离未知节点最近的信标点作为参考节点,在定位过程中就会使差分参考节点对未知节点坐标的决定权过大。本文提出的改进的差分修正算法,利用区域内的信标节点分别作为差分参考节点,进行差分定位,并且通过采用差分参考节点到未知节点的距离的倒数作为权值,更好地体现了各个差分参考节点对未知节点的决定权。在相同条件下仿真,定位精度较传统的差分修正算法有很大提高,定位的稳定性也有明显提升。