基于RSSI测距的改进加权质心定位算法*王振朝1,2,张琦1,张峰1(1.河北大学电子信息工程学院,河北保定071002;2.河北大学河北省数字医疗工程重点实验室,河北保定071002)摘要:基于RSSI(ReceivedSignalStrengthIndication)的三角形加权质心定位算法在测距和定位中存在较大误差,针对这一缺点提出一种改进的加权算法。在该算法中采用节点距离倒数之和代替距离和的倒数作为权值,并且根据节点距离给出加权因子作为修正,以充分利用节点信息。仿真结果验证了该算法的有效性,与原有定位算法比较其定位精度得到提升,最高可达50%。关键词:定位;RSSI;加权;修正系数中图分类号:TM933文献标识码:A文章编号:1001-1390(2014)21-0000-00ImprovedWeightedCentroidPositioningAlgorithmbasedonRSSIRangingWANGZhen-chao1,2,ZHANGQi1,ZHANGFeng1(1.CollegeofElectronicandInformationEngineering,HebeiUniversity,Baoding071002,China.2.KeyLaboratoryofDigitalMedicalEngineeringofHebeiProvince,HebeiUniversity,Baoding071002,Hebei,China)Abstract:AimingattheerrorexistingintriangularweightedcentroidpositioningalgorithmbasedonRSSI(ReceivedSignalStrengthIndication)ranging,animprovedweightedalgorithmisputforwardinthispaper.Thesumofreciprocalofdistancebetweennodesinsteadofthereciprocalofsumofdistancehasbeentakenastheweightedvalue.Tomakefulluseofthenodeinformation,thealgorithmhasbeencorrectedaccordingtotheweightedfactors.Thesimulationresultsverifytheeffectivenessoftheproposedalgorithmandshowthattheimprovedweightedcentroidpositioningalgorithmcanprovideanadditionalmaximumprecisiongainof50%.Keywords:positioning,RSSI,weighted,modifiedcoefficient0引言无线传感器网络[1-2]是面向应用的,贴近客观世界的网络系统。在大多数的传感器网络实际应用中,准确知道节点的方位是至关重要的。在无线传感网络的定位机制中,需要测量节点间的实际距离或方位时经常采用的方法主要有TOA(TimeofArrival),TDOA(TimeDifferenceofArrival),RSSI和AOA(AngleofArrival)等。但TOA需要精确的时钟同步,TDOA同样需要比较准确的时钟,AOA需要专门的天线阵列来测量特定信号的来源方向,而RSSI测距是一种廉价的测距技术,不需要额外的硬件支持,RADAR[3]是一个经典的基于RSSI的室内定位系统,基于RSSI的定位算法[4-5]是目前研究的热点。本文对文献[5]中提出的基于RSSI的无线传感器网络加权质心定位算法进行了研究,对其算法进行了分析和讨论,并且在此基础上提出了更为合理的加权方法,使得定位更加精确。*基金项目:国家自然科学基金资助项目(61074175:61203160);河北省自然科学基金(F2014201168)1算法模型1.1无线信号传播模型无线信号常用的传播路径损耗模型有:自由空间传播模型,对数距离路径损耗模型,Hata模型,对数-常态分布模型等[5]。在这些理论模型中最常用的是对数-常态分布模型:假设节点A发射信号到节点B,损耗的功率为PAB,传播的距离为dAB,则路径损耗计算公式如下:AB010AB0()10log(/)PPdkddx(1)整理可得:AB0tx0(())/10(())/10AB1010PxPdkPPxPdkd(2)式中Pt是节点A的信号发射功率,Px是节点B接收到的信号功率。是平均xσ值为0的高斯分布随机变数,其标准差范围为4~10;系数k根据传输位置的不同取值也不一样,其范围在2~5之间;d0典型取值为1m。考虑RSSI理想模型,k=2,忽略xσ的影响,代入上式,整理(2)式可得:tx0(())/20AB10PPPdd(3)同时可以得到,B接收A信号时的信号强度为:RSSI=发射功率+天线增益-路径损耗(PAB)在实际的应用中,可以通过多次测量得到接收功率的平均值来有效的降低RSSI的系统误差。1.2三角形加权质心定位算法基于RSSI的三角形质心定位算法是将RSSI测量与三角形质心定位法相结合的新型定位算法。该算法是利用各个已知节点的发射信号强度,根据未知节点接收到的每个已知节点的信号强度,计算出各条路径的信号传播损耗。在众多路径中选取其中三个信号传播损耗较小的,利用理论模型和经验模型[5-6]将传输损耗转化为距离,分别以传输距离为半径,已知节点为圆心画圆,如图1所示,计算出三个圆的交点坐标,以这三个点为顶点能够组成一个三角形,三角形的质心坐标即为未知节点的坐标[6]。但是以上定位算法并没有考虑未知节点与已知节点距离的远近对定位的影响,而将三个参与定位的节点的作用等同,造成较大的定位误差。文献[5]提出了一种改进的定位算法,为参与定位的节点增加了权值,以体现不同顶点的贡献值。根据对数-常态分布模型绘制的RSSI曲线分析图[5]可知,已知节点到未知节点的距离越近,由RSSI值的偏差产生的绝对距离误差越小。因此,距离越近的节点权重越大,距离远近与权重大小呈反比的关系[7]。而三角形的每个顶点由两个距离确定,故权值选择为AB1dd(假设圆A与圆B相交,圆心距交点的距离分别为dA和dB,如图1),故将算法的公式修正为:CABABBCACABBCACCABABBCACABBCAC111111xxxddddddxddddddyyyddddddydddddd(4)hdBdCdA图1加权质心算法原理图Fig.1Schematicoftriangularweightedcentroidpositioningalgorithm2改进的三角形加权质心定位算法上述的加权算法虽然考虑到了距离的不同对定位造成的不同影响,提出加权因子AB1dd,进而提高了定位精度,然而在权值[8]的选择上依然存在一些不合理的地方。两个已知节点的半径和的倒数这个因子的选取,使得dA和dB成为决定未知节点位置的关键。然而dA和dB中数值较大的一个会在这个因子中起到更大的作用,使得较小的数值对应的节点所发挥的作用弱化,造成定位误差。在本论文的算法中,对权值的选择上进行了修正。首先是改变权重中dA和dB地位上的主导关系,将AB1dd变为AB11dd,充分利用了节点测量数据的信息;其次为了进一步改善权值的决定权,防止修正过度,采取增加幂值的方法:ABAB111nmdddd这个修正方法起到了避免次要数据起主要作用的情况发生,并且可以有效地防止修正过度。例如,dAdB时,与dA相关的已知节点和未知节点的距离更远,在公式中应该起次要作用,而对于修正前的系数AB1dd来说,dA却起到了主要作用,淹没了应该起主要作用的dB。而本文给出的修正系数可以使较小的数起主要作用,即距离未知节点较近的已知节点有较大权重,并通过调整n、m的值调整修正的程度。修正程度n、m的研究较为繁琐,由于n、m是与距离dA、dB有关的两个变量,(1)式中参数的变化会影响dA、dB与n、m的取值,所以如果直接研究dA、dB与n、m关系会比较复杂。为了计算方便同时提高定位精度,这里采用比值的方法,利用两者的比值ABdd作为dB的幂值。考虑到应用实际,我们这里主要讨论已知节点与未知节点间的距离都大于1的情况。在dA和dB都大于1的条件下,假设n=1,ABdmd。例如当dAdB时,m1,这时因子B1md的存在使得在系数AB11dd中原本起主要作用的dB所起作用稍微弱化,以防止过度修正,这样可以进一步充分利用数据信息。修正以后的算法公式为:AAAABBCCAABCAAAABBCCAABCAAABBCCABCABCAABBCCABC111111()()()1112()111111()())()1112()BCddddddddddddddddddddddddxxxddddddxdddyyyddddddyddd(5)3改进后的定位算法实现步骤改进后的三角形质心算法定位的实现过程:(1)将已知节点命名为锚节点[9-10],锚节点周期性地向周围广播信息,信息中包括自身节点ID号及其坐标。(2)未知节点根据接收到的信息,只记录同一个锚节点的RSSI值,当接收到一定数量的RSSI值后,对多个RSSI数据取均值,作为接收到的这个锚节点的RSSI值;(3)当未知节点收到一定数量的锚节点信息后,停止接收信息,将RSSI从强到弱对锚节点排序,建立2个集合。锚节点集合:111222333444{(,,),(,,),(,,),(,,),...,(,,)}nnnfaxyaxyaxyaxyaxy锚节点依据RSSI从大到小排列的集合:1234{,,,,...,}ndaaaaa(4)选取RSSI值大的前三个并利用理论模型和经验模型将其转化为锚节点与未知节点之间的距离,即:112233{,},{,},{,}adadad。(5)利用本文的算法,能够得出未知节点的估计位置(xh,yh)。(6)定义定位误差为Er,其真实位置为(x0,y0),则定位误差Er为:22rh00()()Enxxyy4仿真利用Matlab对算法进行仿真实验以验证该算法的有效性,并与加权的三角形质心定位算法进行对比。假设在100m×100m的正方形区域内,均匀地放置锚节点的数量分别为25、36、64、81,节点的无线射程距离相同,通信半径为30m,且为圆形区域,能够保证各个节点都可以正常接收RSSI信息,然后在该区域内随机放置一个节点进行定位,试验进行100次,得到定位误差数据如下所示:表1两种算法的误差对比数据Tab.1Datacontrastofthetwoalgorithms锚节点数量/个加权的三角形质心算法(误差/m)改进的加权三角形质心算法(误差/m)误差下降比例(%)253.42.429362.91.838641.10.645810.80.450203040506070809000.511.522.533.5锚节点个数/个误差距离/米加权算法改进的加权算法---图2两种算法的误差分析对比Fig.2Erroranalysiscontrastofthetwoalgorithms从表1以及图2中可以看出:本文提出的改进后的三角形加权质心定位算法对于未知节点的定位精度较文献[5]中的算法有了较大程度的提高;随着锚节点数量的增多,定位精度也随之提高,这是因为当未知节点距离锚节点距离相对较远时,利用RSSI测距技术定位会存在较大的干扰,造成定位有较大的误差。本文的算法是在RSSI的基础上对三角形质心定位算法的改进,故修正的精度会跟锚节点的数量有一定的关系,在一定范围内,锚节点数量越多,定位的精度也越高。5结束语基于RS