《武汉工程大学学报》  2015年03期 68-73   出版日期:2015-04-23   ISSN:1674-2869   CN:42-1779/TQ
物联网目标定位算法的MATLAB仿真


0 引 言基于物联网的无线定位算法是由已知坐标信息的锚节点和未知节点构成,各节点可以通过相互协调工作来发送、接受、处理、存储数据,通过无线方式连接,进而共同完成特定的应用任务. 算法允许位置任意存放,灵活度较高,相比于基于非测距的节点相比,由于可随意放置,精确度较高而用途广泛. 因为存在一定的冗余度,即使大部分不能工作,只要还有少许节点正常工作,仍可以获得较高的定位精度. 基于非测距定位算法,以大量简单的定位节点获得估计定位置,而基于测距的定位算法以少量复杂的定位节点换取较高的定位精度[1-2]. 通过MATLAB软件仿真结果对比得到了实用的基于测距的目标定位算法即TOA、TDOA、AOA、RSS及TDOA-AOA联合算法. 在定位系统中全球卫星定位系统(GPS)占全球定位应用中绝大部分市场,但由于成本、体积等因素限制使得这四大系统均不适用于低成本的物联网应用,为此需要针对物联网定位区域相对较小、低成本等特性设计合适的定位算法及其应用. 无线定位算法可大体分为两类,基于测距的定位算法和基于非测距的定位算法. 基于非测距的定位算法主要有质心算法、DV-Hop算法、凸规划定位算法、APIT算法. 着重介绍基于测距的定位算法TOA、DTOA、RSS、AOA及TDOA-AOA算法. 具体实现的主要功能如下:主要实现基于测距的算法,包含TOA、DTOA、RSS、AOA及TDOA-AOA算法的定位,每个算法首先会建立相应的模型,考虑误差以便更加符合实际情况.其次用TOA、DTOA、RSS、DTOA-AOA测量的值运用受限地加权最小二乘法(CWLS)建立方程,接下来利用AOA结合加权最小二乘法、拉格朗日乘法来建立方程,以及最大似然估计等方法处理方程,这样定位点比较精确. 通过求定位误差方差的克拉美罗下界(CRLB)来比较定位算法性能[3-4]. 1 定位算法的模型1.1 TDOA定位算法TDOA算法定位原理是首先选择一个基站为参考基站,运动站方发送无线信号,可以获得这个参考基站BS1与其他每个基站BSi接收信号的时间差,从而知道了BSi与BS1基站到移动站之间的距离差. 通过这些几何关系建立BSi与BS1之间双曲线,双曲线焦点为这两个基站,根据双曲线的点到焦点距离差为一个定值,可以确定运动站的可能存在轨迹,通过两个以上的双曲线即可确定移动站的坐标. TDOA算法几何模型如图1所示.图1 TDOA几何模型Fig.1 The geometric model of TDOA假设将第一个基站作为参考基站,将模型归纳成公式(1)形式: rTDOA,i=(di-d1)+nTDOA,i=■- ■+nTDOA,i (1)而nTDOA,i代表噪声、即每个测量距离差值的误差. 如果rTDOA,i直接由DOA处获得的数据获得,那么 nTDOA,i=nDOA,i-nDOA,l如果没有误差,可将公式(1)改写成rTDOA,i=■-■?圯 rTDOA,i+■=■(2)令R=■,带入方程,然后对公式(2)两边平方,可以得到(x-x1)(xi-x1)+(y-y1)(yi-y1)+rTDOA,iR= 0.5*[(xi-x1)2+(yi-y1)2-r■■](3)将以上对所有的i,方程改成矩阵的形式 Gg=h (4) 其中: G=x2-x1 y2-y1 rTDOA,i■ ■ ■xn-x1 yn-y1 rTDOA,i h=■(x2-x1)2+(y2-y1)2-r■■ ■ (xn-x1)2+(yn-y1)2-r■■ (5)而参数向量g=[x-x1,y-y1,R]T同时(x2-x1)2+(y2-y1)=R2,可以将此公式改写成 gTMg=0 (6)其中M=diag([1,1,-1]). 如此一来,对于受限制的加权最小二乘法的矩阵转化为拉格朗日乘法来求解. ?灼TDOA(g,?浊)=(Gg-h)T?酌-1(Gg-h)+?浊gTMg(7)求出此方程极值点,取值使公式(7)最小时的g即可. 1.2 RSS定位算法在测量信号时,如果没有出现测量信号的误差,由移动站发送信号、基站i接收信号,接受的信号功率为P■■,这可以建立以下的模型[5] P ■■=ki■ (8)其中P ■■指的发送频率,ki指的可以影响接收信号功率的参数,a指的是传输参数,对于固定的空间,a的值也是确定的,在真空中,a=2,但是在某些环境中,a的取值可以由3到6的变化. 对于有测量误差等因数影响下,则定位模型也会随之改变.rRSS,i=ki■+nRSS,i=[(x-xi)2+(y-yi)2]■+nRSS,i (9)nRSS,i代表着误差,如果a=1,那么该模型RSS与DOA模型一样. 如果RSS定位算法没有测量误差,公式(9)可以变成公式(10)形式[6]: rRSS,i=da/2=[(x-xi)2+(y-yi)2]■(10)对其公式(10)转变得 r■■=R2-2xxi-2yyi+(x■■+y■■)?圯 xxi+yyi-0.5R2=0.5(x■■+y■■-r■■)(11)其中R=■,这样做的好处是将非线性方程转化为线性方程. 其中对于所有的i,可以将其转化为矩阵形式,表达式如下: Aθ=b (12)其中: A= x1 y1 -0.5■ ■ ■ xn yn -0.5 ?兹= x yR2 b=■x12+y12-r■■ ■ xn2+yn2-r■■参照TDOA方法,由于Aθ=b无解,对其进行受限制的加权最小二乘法的方差进行处理,得到公式(13)为 (A■-b)T?鬃-1(A■-b) (13)其中γ-1是相应的加权矩阵,并且受约束条件R=■转化为矩阵形式如下: qT■+■TP■=0(14)其中: ■= ■ ■■2 P=1 0 00 1 00 0 0 q= 0 0-1求式(12)最小值,应用拉格朗日乘法列方程如下:?灼RSS(■,?姿)=(A■-b)T?鬃-1(A■-b)+?姿qT■+■TP■(14)求出方程(14)极值点,取值使公式(13)最小时的g即可. 1.3 AOA定位算法AOA算法测量的由移动站发送到基站i的信号方向,这个方向与(x,y)及(xi,yi)相关,方向角度有?准i表示,有公式(15)[7-8]: Tan(?准i)=■ (15)图2为AOA算法角度测量几何图形. 图2 AOA算法定位的几何图形Fig.2 The geometric model of AOA algorithm localization一般来说,?准i由第 i个基站到移动站之间的直线与x轴之间形成的夹角,如果存在误差,那么测量的角度由rAOA,i表示,可以根据测量的角度建立如下模型: rAOA,i=?准i+nAOA,i=tan-1(■)+nAOA,i (16)其中nAOA,i代表着测量rAOA,i时附带的误差. 对于AOA算法,如果没有出现误差干扰,则公式(16)可以写成: tan(rTDOA,i)=■=■(17)可以将公式(17)转化为xsin(rAOA,i)-ycos(rAOA,i)=xisin(rAOA,i)-yicos(rAOA,i)(18)对于所有的i,以向量的形式写出来,可以得到公式(19): Hx=k (19)其中: H= sin(rAOA,1) -cos(rAOA,1) ■ ■ sin(rAOA,n) -cos(rAOA,n) k= x1sin(rAOA,1) -y1cos(rAOA,1) ■ ■ xnsin(rAOA,n) -yncos(rAOA,n) (20)如同TDOA,RSS一样,为了提高运动站定位精度,用加权最小二乘法,可以建立如下方程:x=argmin(Hx-k)TΩ-1(Hx-k)=(HTΩ-1H)HTΩ-1H(21)其中Ω-1是加权矩阵,x=(x,y)T,根据最佳线性无偏估计(BLUE)来求Ω. 1.4 TDOA-AOA定位算法显而易见,若把两者算法混合,很可能提高算法的精度,或者可以减少使用基站的数量. 在可能混合算法中,AOA和TDOA最容易混合起来,为了能够定位,需要重写公式(17)定位模型,两边同时加变量:yicos(rAOA,1)-xisin(rAOA,n)得到如下等式[9-10]: (x-xi)sin(rAOA,i)-(y-y1)cos(rAOA,i)= (xi-x1)sin(rAOA,i)-(yi-y1)cos(rAOA,i)(22)把式(3)和式(17)合并到一个向量中,可以转化为如下的等式: Bg=w (23)式(23)中:      B= GH 0n       w=hk′其中: k′= 0n(x2-x1)sin(rAOA,2)-(y2-y1)cos(rAOA,2) ■(xn-x1)sin(rAOA,n)-(yn-y1)cos(rAOA,n)0n指n×1的零向量,要求合适的g只需保证取值最小. (Bg-w)Tw-1(bg-w) (24)并保证约束条件 gTMg=0 (25)其中,矩阵w是相应的加权矩阵. 然后根据第1.1节求TDOA中g的过程来求TDOA-AOA中的g. 同样的道理,把AOA与RSS,或者TOA结合,也可以提高单个算法的精度. 1.5 各种定位算法的克拉美罗下界对于方差达到克拉美罗下界(CRLB)的无偏估计称为有效方差. 克拉美罗下界表示定位误差的最小值,通过比较克拉美罗下界和提出的算法来验证算法的精度. 2 定位算法仿真及分析下面的仿真结果由于要比较各种定位算法在噪声较小时的定位精度,故对仿真图片图3进行放大. 由图4可看出,当噪声较小时,RSS定位精度比较准确,甚至超过了TDOA-AOA联合算法,但是RSS定位算法对误差也很敏感,当干扰功率大于-30dB时,定位误差突然变大,但同比其他算法,误差也基本保持比较低,整体上说该算法仍是性能比较好的算法. 接着定位第二准确的是TDOA-AOA,由图4所示,TDOA-AOA算法定位精度相对于TDOA算法、AOA算法都有所提高,在AOA部分测量误差干扰为-30dB,该算法误差也比较低,精度比较好. TDOA-AOA、TDOA,AOA算法对噪声有一定的抵抗力,当噪声功率提高时,定位精度也随之平稳地下降. 当误差较大时,RSS与AOA定位误差相对较小,即精度较高. 图3 各种算法定位坐标变化Fig.3 The coordinate variation of localization algorithms图4 各种算法的定位噪声与定位误差变化Fig.4 The positioning noise and positioning errorvariation of positioning algorithms因此,总的来讲当噪声都充分小时,TDOA-AOA算法、TDOA算法、AOA算法、RSS算法定位都可以很好地定位.当噪声变大时误差超过-30 dB,相当于测量距离误差定位精度都严重下降. 在实际工程运用中,就要根据实际情况选择定位算法. 当噪声较小时,选择RSS算法比较好,当噪声相对较大时,选择TDOA-AOA算法合适些. 虽然给出了DOA算法的模型,但是由于当a=1时,RSS算法即转化为DOA算法处理过程,故不在本文中推导算法处理过程. 算法处理思想是根据测量结果得到的非线性方程转化为线性方程. 而这些线性方程应用加权最小二乘法与拉格朗日乘法来处理[10-13]. 3 总结及展望现有实现定位的两类算法:基于测距(Range-Based)和基于非测距(Range-Free)各有千秋. 若仅采用基于非测距的算法虽然无需根据角度和距离等信息,可仅根据网络连通性等约束条件实现节点定位,节约了开支,但以牺牲了精度为代价. 而基于测距的定位算法一般利用自身所配置的设备所拥有的一定测量技术来测量相关信息,例如距离、信号到达角度、深度等信息,它虽然能提供定位精度很高的定位效果,但是实现定位成本相对较高. 因此通过比较与仿真得出了统一的用加权最小二乘法/受限制的加权最小二乘法来解决TDOD算法、AOA算法、RSS算法及TDOA-AOA算法. 该算法是将根据测量结果得到的非线性方程转化为线性方程,而这些线性方程应用加权最小二乘法与拉格朗日乘法来处理,它可以很容易扩展到TDOA-AOA算法中. 仿真结果已经证明了所述算法在噪声相对较小时,算法的性已经可以达到克拉美罗下界(CRLB)和无偏性和准确性.当然仍有部分内容有待进一步探讨和研究,如可将TDOA、RSS、TOD中受限制的加权最小二乘法转换成不受限制的算法改进. 致 谢本文得到湖北省教育科学“十二五”规划2013年度立项课题:地方性高校新兴交叉学科建设的研究--以网络科学为例(2013B060)项目资助,在此表示衷心的感谢.