基金项目:陕西省自然科学基础研究计划资助项目(2015JM6341)
通信作者:李旭虹(1970-),女,新疆乌鲁木齐人,副教授,E-mail:lixhong105@xust.edu.cn
(西安科技大学 通信与信息工程学院,陕西 西安 710054)
(College of Communication and Information Engineering,Xi'an University of Science and Technology,Xi'an 710054,China)
DOI: 10.13800/j.cnki.xakjdxxb.2018.0517
由于矿井下巷道空间有限且存在弯曲,因此通信传播大多为非视距(NLOS)传播环境。传统的基于距离的无线传感网络定位技术易产生较大误差,从而导致定位精度不高。超宽带(UWB)信号具有穿透能力强、抗多径能力强的特点,能够提供较高的定位精度,因此成为NLOS环境下定位的首选。针对NLOS环境下的定位精度不高的问题,在接收信号强度(RSSI)测距和三边算法联合定位的基础上,提出以联合定位得到的初始坐标做为无迹卡尔曼滤波(UKF)算法的观测值,并对UKF的测量更新方程进行修正,使该算法能适应NLOS环境下的定位跟踪。通过仿真验证并与扩展卡尔曼滤波(EKF)算法进行比较,在NLOS环境下改进的UKF定位算法,能够对目标进行实时跟踪并提高定位的精度。
Due to the limited space and bend in the tunnel under the mine,communication propagation is largely non-line of sight(NLOS)propagation environment.The traditional localization technology of wireless sensor network based on distance causing large errors easily,thus the positioning accuracy is low.Ultra wideband(UWB)signals have the characteristics of strong penetrating ability and strong anti multipath capability,providing a high positioning accuracy.Therefore it becomes the preferred location method in NLOS environment aimed at the location and tracking problem in NLOS environment,initial positioning coordinate was achieved by Received Signal Strength Indication(RSSI)and three side algorithm,and the initial coordinates obtained by joint positioning as the observation value of Untraced Kalman filter(UKF)algorithm.The measurement update equation of UKF was modified so that it could adapt to the tracking and positioning in NLOS environment.Compared with the extended Kalman filter(EKF)algorithm,the improved UKF localization algorithm in NLOS environment can track the target in real time and improve the positioning accuracy.
近些年,无线传感定位技术在生活中、军事上等很多方面都起着非常重要的作用,比如,地图导航、灾难救援、精确制导等都要运用定位技术。在有阻碍物阻挡的环境下对未知节点的定位和跟踪,与视距环境下的定位有很大不同,视距环境下无需考虑障碍物的影响。所以,NLOS(non line of sight,非视距)环境下的定位和跟踪,需要更高的技术要求[1]。因为矿井下的地理环境与地面有很大不同,所以传统的地面定位方案不适用于井下的应用。UWB(ultra wideband,超宽带)无线定位技术凭借着其硬件设备简单、抗多径衰落能力强、抗干扰能力强等优点,使其在井下定位的应用中得到广泛的关注[2]。
在各类无线传感网络定位系统中,运用的基本定位方法和技术都是大同小异的,对移动台的定位是通过传感器检测信号的到达角度、到达时间差等特征值来实现的。目前已有许多方法来解决NLOS问题,这些方法大致可以分为2类:静态定位分析的方法和移动跟踪分析的方法。
参考文献[3]针对NLOS环境下静态定位问题总结了几种常用的方法。因为这些方法无法利用时间序列的冗余测量信息,所以在移动跟踪系统中定位效果并不十分明显。文献[4-5]利用卡尔曼滤波技术实现移动跟踪,并减小了NLOS误差的影响。文献[6]对于移动目标的定位跟踪使用了交互式多模型粒子滤波器,由于该算法计算量很大,在一定程度上影响跟踪的实时性。文献[7]在RSSI(Received Signal Strength Indication,接收信号强度)算法基础上将EKF(Extended Kalman Filter,扩展卡尔曼滤波)应用到无线定位技术中。但是EKF在线性化过程中,由于它舍去高阶项和对微小量的近似使其会引入较大的舍入误差[8]。
文中针对矿井下巷道NLOS环境较多无法进行精确定位的问题,提出基于RSSI的测距模型对传感器节点进行测距。利用三边测量定位算法根据测距结果进行初始定位,用初始定位的坐标作为UKF(unscented Kalman filter,无迹卡尔曼滤波)的观测量,并对UKF的测量更新方程进行修正,以获得较高的跟踪定位精度。此算法不需要对NLOS进行统计和鉴别,并且计算复杂度与EKF相比也大大的降低了[9]。
RSSI测距技术对硬件要求简单,并且能够充分利用超宽带抗多径衰落和抗干扰能力强的特点[10]。要得到目标节点二维空间的坐标,至少需要3个参考节点进行测量。由于阻碍物的阻挡信号是以反射的形式到达传感节点,所以NLOS条件下信号的传播路径相比LOS(line of sight,视距)条件下要长。在进行人员的RSSI测距估计时会受到NLOS的影响,产生一个均值为正的误差。该误差引起的超量延时如图1.图为矿井NLOS环境下RSSI对目标节点的测距估计,在LOS环境下目标节点应为测距圆的交点,而NLOS下目标节点是在测距圆的重叠区内且节点坐标与A,B,C 3点的距离之和应为最小[11]。
RSSI是最简单、最基础的测距方法之一,一般不需要借助额外的硬件设备,并且实现方法简单,在能量有限的节点定位中是非常重要的[12]。在基于接收信号强度的测距模型中,根据发射节点信号强度和接收节点信号强度得出信号传播的路径损耗模型为[13]
P(d)=P(d0)+10ηlog10(d/d0)+Xσ(1)
式中 d为发未知节点与参考节点之间的未知距离,m; p(d)为经过距离d后的路径损耗,db; η为信道衰减指数,该值是由矿井下实际测量得到,非视距环境越复杂,d0值越大; d0为参考距离,一般取值为1 m; Xσ为噪声变量并且服从均值为0,标准差为δ的高斯分布,标准差的取值一般为4~10.
根据(1)式可得未知节点处接收到的RSSI值为[14]
RSSI=P+G-P(d)=P+G-P(d0)-10ηlog10(d/(d0))(2)
式中 P为发射功率,db; G为天线增益。
假设di处未知节点的RSSI值为Pi,则根据式(2)推导出
di=d0*10(P+G-P(d0)-Xσ-Pi)/(10k)(3)
信号在传播时,会受到噪声以及障碍物的干扰,所以实际测试距离会比di大[15]。未知节点到传感节点的距离越近,RSSI模型的距离估计误差就越小。在定位过程中,未知节点可能会收到多个信源的信号,所以应优先选择RSSI值大的信源信号进行测距计算[16]。
三边算法是通过公式(3)计算得到的未知节点与参考节点之间的距离,通过参考节点的位置坐标来计算未知节点的位置坐标[17]。假设未知节点范围内有3个参考节点,其位置坐标分别为(xa,xa)T,(xb,xb)T,(xc,xc)T,利用RSSI测距模型计算得到参考节点与未知节点间的距离分别为da,db,dc,假设未知节点的初始定位坐标为(x,y),则有如下公式
{((x-xa)2+(y-ya)2)1/2=da
((x-xb)2+(y-yb)2)1/2=db
((x-xc)2+(y-yc)2)1/2=dc(4)
计算式(4)可得到未知节点的初始坐标向量为
[x
y]=[2(xa-xc)2(ya-yc)
2(xb-xc)2(ya-yc)]-1×
[x2a-x2c+y2a-y2c+d2c-d2a
x2a-x2c+y2b-y2c+d2c-d2b](5)
公式(5)已经得到的未知节点的初始定位坐标,根据NLOS环境特性修正UKF算法来进行精确定位及位置跟踪。
UKF是一种新型的非线性滤波估计算法,是以UT(Unscented,无味变换)为基础的[18]。在对非线性函数进行线性化的问题上UKF与EKF的做法是不同的,UKF使用UT变换来处理均值和协方差的非线性传递,并且是直接使用系统的非线性模型。而EKF是对非线性函数进行近似而且需要计算雅可比矩阵,大大增加了计算量。UKF算法通过产生Sigma点得到更多的观测假设值,并且没有线性化的忽略高阶项,因此在NLOS环境下的非线性问题上,UKF比EKF的计算精度高,适应性更强[19]。对于非视距环境下离散时间非线性系统,其状态方程和量测方程分别为
xk+1=fk(xk)+wk(6)
zk=hk(xk)+vk+nk(7)
式中 k∈N是时间变量; xk∈Rn为k时刻的系统状态向量; zk∈Rm为k时刻的量测向量; fk为n维状态的传播函数; hk为m维向量的测量函数; wk,vk为互不相关的,均值为零的高斯白噪声; nk代表实际产生的NLOS误差,由于NLOS 误差引起信号传播距离大于真实距离,所以nk>0.在式(6)(7)中,x的统计特性是((-overx),Px),则设计2n+1个Sigma点,设ξi(i=0,1,2,…,2n),产生Sigma点的方法如式(8)所示[20-21]
{ξ0=(-overx)
ξi=(-overx)+(((n+λ)Px)1/2)i,i=1,2,…,n
ξi=(-overx)-(((n+λ)Px)1/2)i,i=n+1,n+2,…,2n(8)
式中 λ=α2(n+k)-n,α决定了Sigma的散布程度(一般取0.01),k一般取为0;(((n+λ)Px)1/2)i为矩阵((n+λ)Px)1/2平方根矩阵的第i列。
UKF算法过程主要分为状态预测、量测预测和更新3个部分:通过公式(8)计算出k-1时刻的Sigma点ξ(i)k-1|k-1,由状态方程传播ξ(i)k-1|k-1,获得传播后的Sigma点ξ(i)k-1|k-1来计算状态值的一步提前预测(^overx)k|k-1; 根据状态预测计算新的Sigma点ξ(i)k,由量测方程传播ξ(i)k,获得传播后的Sigma点ξ(i)k来计算量测值得一步提前预测(^overz)k|k-1,误差获得新的观测值zk后,对k时刻状态估计进行更新[22]。
状态预测
{ξ(i)k|k-1=fk(ξ(i)k-1|k-1),i=0,1,…,2n
(^overx)k|k-1=2ni=0ω(m)iξ(i)k|k-1
Pk|k-1=2ni=0ω(c)i(ξ(i)k|k-1-(^overx)k|k-1)(ξ(i)k|k-1-(^overx)k|k-1)T
+Qk-1(9)
量测预测
{ζ(i)k|k-1=hk(ξ(i)k),i=0,1,…,2n
(^overz)k|k-1=2ni=0ω(m)iζ(i)k|k-1
Pxkzk=2ni=0ω(c)i(ξ(i)k|k-1-(^overx)k|k-1)(ζ(i)k|k-1-(^overz)k|k-1)T
Pzk=2ni=0ω(c)i(ζ(i)k|k-1-(^overz)k|k-1)(ζ(i)k|k-1-(^overz)k|k-1)T+Rk(10)
更新
{(^overx)k|k=(^overx)k|k-1+Kk(zk-(^overz)k|k-1)
Kk=PxkzkP-1zk
Pk|k=Pk|k-1+KkPzkKTk(11)
在LOS环境下,只有测量的误差,并且该误差通常认为服从高斯分布,因此,在LOS下可以得出最优估计结果[23]。但在NLOS环境下,tk时刻的滤波值会有Kk倍的错误修正,从而使滤波后的值偏离真实状态,甚至使UKF发散。假设NLOS误差服从指数分布[24],数学模型如下
p(τ)={1/(τrmsexp)(τ/(τrms))τ>0
0 其他(12)
式中 τrms=T1dξ,d为未知节点与参考节点之间的距离,m; T1为d处的时延扩展的中值; ξ为服从对数正态分布的随机变量[25]。
文中针对这种情况对无迹卡尔曼滤波器的更新方程进行修正,修正如下
(^overx)k|k=(^overx)k|k-1-Kk(zk-(^overz)k|k-1-nk)(13)
该方法的NLOS误差,在更新方程中直接减去,使误差不会进入到下一次迭代方程中,避免UKF滤波的发散。
假设未知节点在定位过程中能收到3个基站的信号,且基站坐标分别为(0 m,0 m)、(250 m,433 m)、(500 m,0 m)。位置节点的真实坐标为X(100 m,0 m),通过RSSI测距模型得到未知节点到每个基站间的距离,再用三边测量法初步计算未知节点的初始位置坐标为X0(86.6 m,-9.7 m),将该初始的定位坐标作为UKF滤波的初值。
设UKF算法的初始状态误差协方差P=5,过程噪声协方差Q=10,观测噪声方差R=1.在matlab环境下对未知节点进行精确定位及跟踪,并与EKF滤波进行比较。
图2,图3分别给出了未知节点在随时间运动的过程中UKF和EKF 2种算法估计的坐标状态轨迹,从图中可以看出UKF滤波估计算法估计的节点坐标在真实位置附近,而EKF的波动较大。使用文中的修正误差算法后,定位性能逼近无NLOS的状态。
节点定位误差表达式为
errorx=|x-xk|(14)
errory=|y-yk|(15)
式中 x,y是未知节点真实的横纵坐标; xk,yk是时刻k节点定位估计的横纵坐标。2种算法的定位误差如图4,图5所示,通过对比图可以看出,由于UKF没有忽略高阶项,与EKF相比计算复杂度不高,所以估计误差明显比EKF算法的小。
1)矿井下巷道空间有限且存在弯曲,因此通信传播大多为非视距传播环境,这种条件下采用传统的RSSI测距算法会出现较大的估计误差;
2)利用无迹卡尔曼滤波的非线性特性,在一定程度上降低了计算量,同时在它的更新阶段对滤波器进行Kk倍的错误修正,避免误差进入下一步的迭代中;
3)基于修正的无迹卡尔曼滤波的非线性定位估计算法与扩展卡尔曼滤波算法相比,目标节点在X和Y倍的错误修正,避免误差进入下一步的迭代中;
3)基于修正的无迹卡尔曼滤波的非线性定位估计算法与扩展卡尔曼滤波算法相比,目标节点在方向的误差明显减小,且更接近真实值。