APP下载

基于RSSI的加权质心定位算法的改进

2021-11-25任晓奎于百川

传感器与微系统 2021年11期
关键词:质心定位精度测距

任晓奎, 于百川, 李 岩

(辽宁工程技术大学葫芦岛校区 电子与信息学院, 辽宁 葫芦岛 125105)

0 引 言

到目前为止,无线传感器网络(wireless sensor networks,WSNs)的定位问题也越来越受人们的关注,由于环境的复杂性和不确定性,极大影响了无线定位的精度。目前的无线定位技术主要分为基于测距的定位算法和基于非测距的定位算法[1]。测距的算法包括接收信号强度指示(received signal strength indication,RSSI)算法、到达时间(time of arrival,TOA)算法、到达时间差(time difference of arrival,TDOA)算法、到达角(angle of arrival,AOA)算法;非测距包括DV-Hop算法[2]、近似三角形内点测试(APIT)算法、质心定位算法、凸规划定位算法。其中,最常用的是RSSI算法来估计锚节点(又称参考节点)与未知节点(测量节点),RSSI测量灵活方便,成本低,但是基于RSSI的定位算法因为锚节点与未知节点之间的通信信道复杂多变,使得测距误差较大,所以不同的环境应对应不同的信号传输模型及参数。文献[3]对加权质心算法存在的不合理因素进行改进,采用测试距离倒数之和代替距离和的倒数作为权重,提高了定位精度。刘运杰等人[4]采用了加权质心算法,在文献[3]的基础上,提出了修正系数的概念,但忽略了三圆不相交的情况。文献[5]对文献[3]进行了改进,对权值的选择上加入了指数进行修正,但其指数划分过于粗糙,在圆不相交的情况下,直接取下一组锚节点进行补位,舍弃了较大的RSSI值,加大了精度误差。文献[6]使用了距离比例来解决圆不相交的问题,但仍然使用传统的加权质心算法。文献[7]通过对三圆中的任意两圆半径进行延长修正,虽然使圆相交,但在延长圆半径过程中仍会造成较大误差。文献[8]采用四圆相交产生的四边形公共区域,通过求取四个三角形的质心作为初始值来求解待测点坐标。但四圆相交会出现不同情况,需要对参与定位的圆进行选择,会丢失一些较大RSSI值的点,造成误差。

针对以上问题,提出了一种基于RSSI的测距质心算法和加权质心定位算法相结合(RSSI-based ranging centroid and weighted centroid,RSSI-RCWC)的定位算法,提高了定位精度。

1 RSSI测距

1.1 RSSI原理

在室内定位中,通常采用更合理的对数常态分布模型[5]数学表达式,如式(1)

式中PL(d)为经过距离d后的路径损耗,dBm;PL(d0)为单位距离之后的路径损耗;n为损耗因子;d为发射节点到接收节点的距离,m;d0为单位距离,通常取1 m;X0为均值为0的高斯分布随机数。接收节点的RSSI值表达式为式(2)

RSSI=Pt-PL(d)

(2)

设d0处的信号强度为A,则式(2)为

PL(d0)=Pt-A

(3)

由于通常d0取1 m,X0为均值为0,所以,将式(3)代入式(1)中可以化简为下式

PL(d0)=Pt-A+10nlg(d)

(4)

将式(4)代入式(2)可得

RSSI=A-10nlg(d)

(5)

式中A为距离为1 m处的RSSI值,n为路径损耗因子,随着定位节点的移动,n为变化的,不同的环境对应着的参数也是不同的,所以选择合适的A和n值对定位精度的准确有着关键的意义,本文n取3。

1.2 高斯滤波

在实际应用当中,由于室内环境的复杂性和随机性,会导致所采集到的信号强度存在较大的误差,所以要先对RSSI值进行滤波,常用的滤波算法有均值滤波、高斯滤波和卡尔曼滤波。文献[9]通过使用卡尔曼滤波对RSSI进行循环滤波处理,实验表明算法明显减少了测距误差,但带来了大量的通信开销和计算数据,且循环随机性增加了算法的不确定性。均值滤波是对采集到的RSSI值求取平均值作为估计值,忽略了复杂的环境因素变化,在运算过程中产生了奇异值,从而导致了较大的误差。文献[10]采用了多重滤波算法,对采集到的RSSI进行数据滤波处理,提高了一定的定位精度。程远国和朱明辉等人[11,12]通过使用高斯模型对采集到的RSSI值进行筛选,滤除了短暂的扰动和突发干扰造成较大偏差的值,使得测距误差下降。所以,本文采用一个高斯滤波器来平滑RSSI的值,假设在实验区的某个参考点采集到n个RSSI值,分别为Xn={x1,x2,…,xn-1,xn},其中每一个对应的概率P为Pn={p1,p2,…,pn-1,pn},均值和方差为μ和δ2,则高斯滤波模型为

通过设定高概率最小值应大于0.6的范围,减少了小概率事件对于采集的RSSI值的影响,如式(9)所示

0.15δ+μ≤x≤3.09δ+μ

(9)

通过式(7)和式(8)得出μ和δ2,代入式(9)确定出RSSI的范围。为了消除误差,选取式(9)得出的值通过式(10)进行均值优化,得到RSSI信号的优化值

2 质心定位

加权质心算法中假设已知三个锚节点的坐标为A(x1,y1),B(x2,y2),C(x3,y3),未知节点为O(x,y),该点到各个锚节点的距离分别为d1,d2,d3,就可以通过方程组(11)计算出未知节点的坐标,式(11)如下所示

通过式(11)可得,未知节点O(x,y)为

(12)

但在实际应用当中,受到各种复杂环境变化的影响路径损耗往往比理论数值大,通过RSSI距离转化公式得到的半径大于实际距离,会导致锚节点构成的三个圆相交于一个区域,所求出的未知节点会有一定的偏差,如图1所示。

图1 三点定位算法

首先计算出三个圆的公共区域的顶点坐标,通过式(11)可以算出顶点坐标D(xD,yD),E(xE,yE),F(xF,yF),通过式(13)的加权质心算法可以得出未知节点(xi,yi)。

3 算法改进

3.1 距离比例模型

在质心定位过程中,需要锚节点圆相交来推测未知节点的区域,在锚节点圆不相交的情况下,选择取下一组锚节点进行补位[4~6],直到出现三圆相交时再进行定位,这样会丢失一些数值比较大的RSSI的点,不断选用下一组锚节点进行补位会造成累积误差,最终使定位精度与原有精度相差较大。本文选用距离比例模型,解决了因圆不相交造成的式(13)的无解情况。

当圆不相交时,如图2所示,连接三圆的圆心,就F点为例,当圆的半径越大时,距离未知节点越远,误差越大, 所以应使F点靠近半径较小的A点,使得圆A发挥更大的作用,则F点的位置应为AF/CF=d1/d3,根据式(14)可求得F(xF,xF)

图2 距离比例模型

同理可以求出E(xE,xE)和D(xD,xD),的坐标。通过求得的D点,E点和F点,构成一个新的三角形区域,对D,E,F点构成的三角形求质心,求得质心O。

3.2 改进的三角形加权质心算法

传统的三角形质心定位算法[13,14]并没有考虑未知节点和锚节点距离的远近对于定位的影响,式(13)中的三角加权质心定位算法虽然考虑到了距离的不同对定位精度造成的影响,但是在权值的选择上仍有不足之处。本文提出了RSSI-RCWC定位算法,前期通过接收到的RSSI值进行从大到小的排列,选出前4个点其中任意3个进行排列组合,如图2所示,通过距离比例模型得到D,E,F坐标点,以这三个点为顶点构成一个三角形,求出这个三角形的质心O1(xo1,yo1),其中,xo1=(xD+xE+xF)/3,Yo1=(yD+yE+yF)/3,质心O1的权值为1/(d1+d2+d3)。同理可以求得其他三个排列组合,其质心和权值分别为O2(xo2,yo2),O3(xo3,yo3),O4(xo4,yo4),1/(d1+d2+d4),1/(d1+d3+d4),1/(d2+d3+d4),则未知节点的坐标为O(x,y)

对式(15)中的权值增加幂值,来进一步提高定位精度,使权值由原来的1/(d1+d2+d3)变为1/(d1+d2+d3)n修正后的算法公式为式(16)

3.3 程序流程

RSSI-DSW定位算法的具体步骤如下:1)锚节点周期性地向周围发送自身信息,包括节点ID和自身位置信息。2)未知节点接收到一定的坐标信息后,不再接收新的信息,对接收到的信息进行高斯滤波,并将接收到的RSSI值根据式(1)~式(5)转换成对应的距离值。3)根据得到的距离值进行从小到大排列,取前4个锚节点。4)使用距离比例模型,对4个锚节点中随机3个进行排列组合求出相对应的三角形质心O1,O2,O3和O4坐标。5)根据RSSI-RCWC定位算法,根据得到的质心坐标计算出未知节点坐标O(x,y)。6)计算未知节点误差如式(17)所示

4 仿真与实验

在空旷的室内场地,选取10 m×10 m的矩形区域进行实验,在顶点位置以及该区域的中心,共设置9个锚节点,无线信号载频为2.4 GHz,使用相同型号的路由器斐讯FWR—706,未知节点通过随机生成函数来生成,权值n取5,按照上述的步骤进行仿真定位,得到接收到的信号强度再利用MATLAB R2018a对算法进行仿真实验。

在实际测试中,选用普通质心算法和加权质心算法进行比较,随机选用15个点位,实验的定位精度误差仿真结果如图3(a)所示。从图3(a)可以看出,普通质心算法存在较大的误差,效果较差,RSSI-RCWC算法误差减小效果明显,从整体效果看,RSSI-RCWC算法定位误差也明显要优于其他两种算法,存在较大的优势。

通过取不同的权值n进行仿真实验,实验进行100次,取其平均值,画出平均定位误差曲线,如图3(b)所示。根据图3(b)的结果,选取权值n为6,对随机抽取的15个点进行定位,实验进行100次,求取平均定位误差,对以上三种方法的定位及其误差仿真结果如图3(c)所示。

图3 仿真实验结果

实验结果表明,相对于传统的质心算法,改进算法的最小误差减少了0.40 m,最大误差减少了0.47 m,平均误差减少了0.37 m,提高了56.06 %;相对于加权质心算法,改进算法的最小误差减少了0.12 m,最大误差减少了0.05 m,平均误差减少了0.088 m,精度提高了23.16 %。

表1 误差计算

5 结 论

针对无线传感器网络中RSSI测距误差的问题,对加权质心算法存在的不合理因素进行改进,提出了RSSI-RCWC定位算法。RSSI-RCWC定位算法解决了锚节点圆不相交状态下,选取其他锚节点进行补位造成RSSI获取精度误差增大的问题,提出的改进的加权质心算法,是一种更精确的距离倒数和权重的比例公式。实验结果表明:与传统的算法相比,RSSI-RCWC定位算法的定位精度提高了56.06 %,比加权质心算法提高了23.16 %,提高了定位精度,具有较高的实际应用价值。

猜你喜欢

质心定位精度测距
北斗定位精度可达两三米
重型半挂汽车质量与质心位置估计
基于GNSS测量的天宫二号质心确定
类星体的精准测距
GPS定位精度研究
GPS定位精度研究
组合导航的AGV定位精度的改善
浅谈超声波测距
基于PSOC超声测距系统设计
相对差分单项测距△DOR