一种基于时空域联合处理的分布式协作定位系统和方法与流程

文档序号:18562125发布日期:2019-08-30 23:26阅读:487来源:国知局
一种基于时空域联合处理的分布式协作定位系统和方法与流程

本发明属于导航领域,是一种基于时空域联合处理的分布式协作定位系统和方法。



背景技术:

实时、高精度的定位信息对于很多无线网络来说至关重要。通常情况下,传统的定位系统,如全球卫星定位系统(gnss),能够为这些网络提供较高精度的定位信息。但是,出于成本和功耗的考虑,给网络中每个节点都安装一个gnss接收机是不现实的。另外,在恶劣环境条件下,例如城市峡谷、森林等,gnss信号容易受到干扰,此时,gnss提供的位置信息的精度大大降低。协作定位能够有效利用网络中节点间的协作来提高定位的性能。在协作定位系统中,所有的节点可以大致分为两类:(1)参考节点,这些节点能够通过传统的定位方法对自身进行定位;(2)非参考节点,这些节点无法进行自定位,需要通过协作获得自身位置信息。协作定位的性能与数据融合方法有很大的关系,扩展卡尔曼滤波算法和置信度传播算法是比较常用的协作定位方法,其他方法还包括无迹卡尔曼滤波算法、最小二乘算法和最大似然估计算法等。基于扩展卡尔曼滤波算法的协作定位算法具有较低的复杂度,它利用一个线性系统对非线性的协作定位系统进行近似,这个近似大大降低了系统的定位性能。无迹卡尔曼滤波算法利用一个非线性变换对非线性的定位系统进行近似,它具有比扩展卡尔曼滤波算法更好的性能。基于因子图的置信度传播算法,如spawn算法,也被广泛运用。该算法对于解算初值的精度比较敏感,在静态或者准静态的网络环境下可以提供较高的定位精度,但是当运用于高速运动的环境时,该算法的解算初值的误差比较大,因而其最终的定位精度也较差。最小二乘算法或者最大似然算法在高斯白噪声条件下渐近最优,但是由于目标问题是非凸的,其解算难度比较大。

上述的协作定位方法可以分为两类:集中式方法和分布式方法。在集中式协作定位系统中,所有的计算都在中心处理节点中完成,在这之前中心处理节点需要把网络中所有节点的观测数据收集起来。这类方法具有较高的定位精度,但是当运用于大规模网络时,会导致较大的通信负担和计算复杂度。分布式方法在牺牲一定定位精度的情况下能够有效减小通信负担和计算复杂度。具体来讲,在分布式协作定位系统中,各个节点位置的计算是在各自内部完成的,每个节点只需收集邻近节点的观测信息即可。另外,上述所有的协作定位算法在每个时间片只考虑了当前时间片内的观测信息,当节点运动速度比较大或者连接数不足时,这些算法的定位精度比较差甚至会发散。

本发明针对大规模网络中节点的定位问题,提出了一种基于时空域联合处理的分布式协作定位系统和方法。该系统针对大规模移动网络中部分节点无法完成自定位,并且会出现连接数不足等问题,基于节点的轨迹信息约束,对目标节点若干跳范围内所有节点在多个时间片内的位置信息以及相对距离信息进行融合,进而完成目标节点的定位。所提出的协作定位方法在每个时间片内,目标节点首先收集若干跳范围内所有节点在往前回溯的多个时间片内的位置信息以及相对距离信息;然后基于上述多跳节点的历史测量信息,对这些节点到当前时刻为止的多个时间片内所有的测量信息进行预测;接着基于这些节点在当前时刻的状态信息变量,反演出这些节点在这些时间片内的轨迹信息;随后基于历史测量信息,利用传统的协作定位方法计算出这些节点在当前时刻状态信息的初始估计值,作为节点轨迹信息的初始解算值;最后基于节点的轨迹信息约束,对多时间片内的历史测量信息以及预测信息进行融合,得到更高精度的关于当前时刻目标节点状态信息的估计值。



技术实现要素:

本发明的目的是针对恶劣的环境条件下,高速运动的大规模无线网络中部分节点无法通过传统的定位方法,如gnss,进行定位,并且会出现连接数不足的情况,提出一种基于时空域联合处理的分布式协作定位系统和方法。

本发明一方面公开了一种基于时空域联合处理的分布式协作定位系统,分布式协作定位系统中存在多个节点,各个节点通过与邻近节点的协作完成自身的定位;系统中的每个节点均包括多时间片观测信息缓存模块、观测信息预测模块、节点轨迹信息反演模块、节点状态信息初估计模块、时空域联合处理模块;观测信息同时作为多时间片观测信息缓存模块、节点状态信息初估计模块的输入,多时间片观测信息缓存模块的输出作为观测信息预测模块的输入,当前时刻各节点状态变量作为节点轨迹信息反演模块的输入,观测信息预测模块、节点轨迹信息反演模块、节点状态信息初估计模块的输出同时作为时空域联合处理模块的输入,时空域联合处理模块的输出作为结果。

本发明另一方面还公开了一种所述系统的分布式协作定位方法,包括如下步骤:

(1)在每个时间片,多时间片观测信息缓存模块缓存了目标节点若干跳范围内节点在当前时刻往前回溯的多个时间片内的所有观测信息,将这些观测信息送入到观测信息预测模块;

(2)在分布式网络中,目标节点需要经过中间节点进行多跳通信才能获得多跳节点的测量信息,也就是说目标节点并不能获得多跳节点在当前时刻的测量信息,观测信息预测模块基于多跳节点的历史测量信息,对这些节点到当前时刻为止的多个时间片内所有的测量信息进行预测,将历史测量信息和预测信息送入到时空域联合处理模块;

(3)节点轨迹信息反演模块基于目标节点多跳范围内的所有节点在当前时刻的状态信息变量,推算出这些节点在往前回溯的多个时间片内的位置信息,得到这些节点在这些时间片内的轨迹信息,将轨迹信息送入到时空域联合处理模块;

(4)节点状态信息初估计模块基于历史测量信息,利用基于单时间片测量信息的协作定位方法对目标节点若干跳范围内的所有节点在当前时刻的状态信息进行初估计;将这些状态信息初估计送入到时空域联合处理模块;

(5)时空域联合处理模块将节点状态信息初估计模块提供的节点状态信息估计作为解算的初值,利用运动轨迹约束对目标节点若干跳范围内所有节点在多时间片内的历史测量信息和预测信息进行时空域的联合处理,得到这些节点在当前时刻的状态估计,这其中就包括了目标节点位置的估计值。

本发明基于系统中各节点的运动轨迹约束,对目标节点若干跳范围内的所有节点在多个时间片内的历史测量信息及预测信息进行时空域的联合处理,通过增加时间域的协作,可以有效提高节点的定位精度和定位结果的稳定性。另外,本发明将所有的计算分散到系统中的各个节点,可以有效减小系统的通信负担和各节点的计算复杂度。

附图说明

图1是基于时空域联合处理的分布式协作定位方法的框图;

图2是非参考节点的定位误差累积密度图;

图3是参考节点的定位误差累积密度图。

具体实施方式

本发明设计了一种分布式的协作定位系统和方法。该系统是针对大规模的移动网络中部分节点无法完成自定位的问题,利用目标节点多跳范围内所有节点在往前回溯的多个时间片内的位置信息及相对距离信息完成目标节点的定位。所提出的分布式协作定位方法基于目标节点多跳范围内所有节点在当前时刻的状态信息反演出这些节点在往前回溯的多个时间片内的轨迹信息。然后基于节点的轨迹信息约束对这些节点在多个时间片内的观测信息进行时空域的联合处理,得到目标节点在当前时刻的位置估计。该方法能够有效提高节点的定位精度以及定位结果的可靠性。

基于时空域联合处理的分布式协作定位系统中每个节点包含了以下五个模块:多时间片观测信息缓存模块、观测信息预测模块、节点轨迹信息反演模块、节点状态信息初估计模块、时空域联合处理模块。针对该系统所设计的分布式协作定位方法包括如下步骤:

(1)在分布式协作定位中,网络中各个节点的定位由节点自身完成,定义m为待定位节点,称之为目标节点,定义ξm为在目标节点m若干跳范围内所有节点的集合。首先建立系统的状态模型,确定系统的观测方程:

其只,为节点n在t时刻的位置信息,为参考节点的位置观测信息,表示位置观测误差;为节点n与节点j之间的相对距离信息观测值,表示的是真实距离,表示的是相对距离信息观测误差;

(2)在当前时间片k,缓存目标节点m若干跳范围所有内节点在τ=k-k+1时刻到k时刻的k个时间片内的位置估计信息以及这些节点间的相对距离信息:

其中,gm,l表示节点m的l跳节点,表示节点n在t时刻的位置估计值。如果节点n不是参考节点,为空。将这些观测信息送入到观测信息预测模块;

(3)观测信息预测模块基于ξm中所有节点的历史测量信息,对这些节点到当前时刻为止的多个时间片内所有的测量信息进行预测,将这些节点位置的历史测量信息和预测信息定义为将节点间相对距离的历史测量信息和预测信息定义为其中然后将这些历史测量信息和预测信息送入到时空域联合处理模块;

(4)基于节点n∈ξm在当前时刻位置变量结合节点的运动状态变量,如速度加速度等,推算出该节点在前k-1个时刻的位置信息。假定各个节点在这k个时间片内处于匀加速直线运动状态,基于k时刻节点的运动状态,定义节点n在时刻的位置信息为:

其中,δtt=(t-k)δt,δt表示时间片的长度。上式表示了节点n从τ时刻到k时刻的k个时刻的轨迹信息,定义节点的状态变量为

则节点n的轨迹信息可以表示为

将这些节点的轨迹信息送入到时空域联合处理模块;

(5)节点状态信息初估计模块采用传统的基于单时间片观测信息的协作定位方法,如扩展卡尔曼滤波算法、无迹卡尔曼滤波算法等,计算出ξm中所有节点在当前时刻k状态信息的初始估计值,作为多时间片观测信息联合处理时节点轨迹信息的初始解算值。将节点状态信息的初始估计值送入到时空域联合处理模块;

(6)时空域联合处理模块基于节点状态信息初估计模块提供的节点状态信息的初始估计值,利用节点的运动轨迹约束对ξm中所有节点在多个时间片内的观测信息进行融合,得到这些节点在当前时刻的状态估计,这其中就包括了目标节点的位置估计值。具体来讲,定义基于多时间片的观测信息以及αk的最大似然估计为

(7)将时空域联合处理模块的结果输出,即可得到在当前时刻目标节点状态的最终估计值,其中就包括了目标节点位置的估计值。

协作定位系统的系统框图如图1所示,包括了多时间片观测信息缓存模块101、观测信息预测模块102、节点轨迹信息反演模块103、节点状态信息初估计模块104、时空域联合处理模块105。观测信息同时输入到多时间片观测信息缓存模块101、节点状态信息初估计模块104,多时间片观测信息缓存模块的输出端连接到观测信息预测模块的输入端102,当前时刻各节点状态变量输入到节点轨迹信息反演模块103,观测信息预测模块102、节点轨迹信息反演模块103、节点状态信息初估计模块104的输出端均连接到时空域联合处理模块105的输入端。

实施例

以扩展卡尔曼滤波算法作为节点状态信息初估计算法,然后基于最大似然准则对目标节点两跳范围内所有节点在k=3个时间片内的观测信息进行融合,利用sqp算法来求解目标问题为例。设定在一个运动网络中,有113个节点,其中13个节点可以通过gnss获得自身的位置信息,gnss观测信息存在一定的误差,其余的节点不能完成自定位,所有节点一开始随机分布在一个1000m×1000m的区域内。由于距离与功耗的限制以及障碍物的遮挡,每一个节点只能与网络中的部分节点进行通信,这里设定各个节点的通信半径均为200m。通过通信链路可以得到与邻近节点间的相对距离信息以及邻近节点的位置信息。另外,所有节点的初始速度均设定为40m/s,加速度满足均值为0m/s2,标准差为0.2m/s2的高斯分布。参考节点通过gnss所得位置的误差标准差为4m,节点间相对距离信息的误差标准差为0.4m。

基于时空域联合处理的分布式协作定位系统中的每个节点包含了以下五个模块:多时间片观测信息缓存模块、观测信息预测模块、节点轨迹信息反演模块、节点状态信息初估计模块、时空域联合处理模块。针对该系统所设计的分布式协作定位方法包括如下步骤:

(1)针对目标节点m的定位,首先建立系统的状态模型,确定系统的观测方程:

其只,为节点n在t时刻的位置信息,为参考节点的gnss观测信息,表示位置观测误差,其满足均值为零,协方差矩阵为的高斯分布;为节点n与节点j之间的相对距离信息观测值,表示的是真实距离,表示的是相对距离信息观测误差,其满足均值为零,方差为的高斯分布;

(2)在分布式网络中,目标节点需要经过中间节点进行多跳通信才能获得多跳节点的测量信息,并且多跳通信存在延时,也就是说在当前时间片k,目标节点m只能获得gm,1中节点直到k时刻的位置信息以及这些节点所获得的直到k-1时刻的相对距离信息,也只能获得gm,2中节点直到k-1时刻的位置信息以及这些节点所获得的直到k-2时刻的相对距离信息,以此类推。随着跳数l的增加,gm,l中的节点到目标节点的传输时延就越大,对于目标节点定位性能的提升也会逐渐变小,还会增加计算复杂度。这里只考虑目标节点两跳范围内的节点,此时,ξm={m}∪gm,1∪gm,2。在当前时间片k,目标节点m的多时间片测量信息缓存模块缓存ξm中节点在τ时刻到k时刻的k个时间片内的位置估计信息以及这些节点间的相对距离信息:

其中,表示节点n在t时刻的位置估计值。如果节点n不是参考节点,为空。将这些观测信息送入到观测信息预测模块;

(3)目标节点m的多时间片测量信息缓存模块并不能获得ξm中所有节点直到当前时刻k的所有观测信息,观测信息预测模块基于ξm中所有节点的历史测量信息,对这些节点到当前时刻为止的多个时间片内所有的测量信息进行预测:

其中,函数fm和fl表示节点位置的预测函数,hl是相对距离信息的预测函数,本发明均基于扩展卡尔曼滤波算法对节点的位置信息和相对距离信息进行预测。进一步,定义:

表示所有用于定位目标节点m的节点位置估计信息的历史测量信息和预测信息,表示所有相对距离信息的历史测量信息和预测信息。假设的误差满足均值为零,协方差矩阵为的高斯分布,的误差满足均值为零,方差为的高斯分布。将这些历史测量信息和预测信息送入到时空域联合处理模块;

(4)从τ时刻到k时刻的k个时间片的测量信息不仅与当前时刻k的节点位置有关,还与前面k-1个时刻内节点的位置有关。因此,基于当前时刻节点的位置变量,结合节点的运动状态变量,如速度、加速度等,推算出前k-1个时刻所有节点的位置信息。定义k时刻节点n∈ξm的速度变量为加速度为考虑到较多时间片之前的测量信息对当前时刻节点的定位性能影响比较小,因此k值不宜太大,这里选取k=3,在这种情况下,可以假定各个节点在这k个时间片内处于匀加速直线运动状态。此时,基于k时刻节点的运动状态,我们可以定义节点n在时刻的位置信息为:

其中,δtt=(t-k)δt,δt表示时间片的长度。可以看出,对于节点n,从τ时刻到k时刻的所有位置信息表示的是该节点在这k个时刻的轨迹信息,定义节点的状态变量为

则节点n的轨迹信息可以表示为

其中,矩阵ft

i2表示2×2的单位阵,将所有节点的轨迹信息送入到时空域联合处理模块;

(5)为了提高多时间片历史测量信息以及预测信息的融合效率,节点状态信息初估计模块基于单时间片内的历史测量信息,利用扩展卡尔曼滤波算法计算出ξm中所有节点在当前时刻k状态信息的初始估计值,作为多时间片信息联合处理时节点轨迹信息的初始解算值。定义为t时刻节点n的待估计状态量,其中首先,基于t-1时刻的后验估计对当前时刻的进行预测

其中,矩阵f为

02表示2×2的全零矩阵。表示估计量的协方差矩阵,为系统建模噪声的协方差矩阵。然后计算出观测数据关于的雅克比矩阵:

接着,计算出测量余量及测量余量协方差矩阵:

其中

表示节点n的所有邻近节点,nn表示节点n的邻近节点数目。矩阵是一个对角阵:

然后计算出卡尔曼增益:

最后,计算出的后验估计及其协方差矩阵:

考虑到在k时刻,目标节点m只能得到gm,1中节点直到k-1时刻的历史测量信息,所以上述方法只能得到gm,1中节点到k-1时刻的状态后验估计,为了得到k时刻的状态信息,我们基于k-1时刻状态后验估计做一个一步预测:

将一步预测值作为k时刻的状态估计值,同理,需要对gm,2中节点做两步预测才能得到这些节点在k时刻的状态估计值。将这些估计信息作为节点状态信息的初始估计值,送入到时空域联合处理模块;

(6)时空域联合处理模块基于节点状态信息初估计模块提供的各个节点状态信息的初始估计值,利用ξm中所有节点的运动轨迹约束对多时间片的历史测量信息以及预测信息进行融合,得到当前时刻各个节点的状态估计。具体来讲,定义包含了ξm中所有节点在k时刻的状态信息,基于多时间片的观测信息以及αk的最大似然估计为

在高斯白噪声的假设下,上式等效于一个非线性最小二乘问题:

nm表示节点m的邻近节点数目,表示节点n与节点j之间是连通的,否则

(7)利用matlab的sqp算法求解上述问题,即可得到当前时刻目标节点状态的最终估计值,其中就包括了目标节点位置的估计值。

定义为节点m在k时刻的定位误差,其中为估计值,为真实位置。图2表示非参考节点的定位误差累计密度曲线,图3表示参考节点的定位误差累计密度曲线。jstp-dmle是本发明所提出的一种基于时空域联合处理的分布式协作定位方法。ekf、ukf以及spawn是三个对比方法,其中,ekf指的是扩展卡尔曼滤波算法,ukf指的是无迹卡尔曼滤波算法,spawn是一种基于因子图的协作定位方法。图3中“gnss”表示参考节点通过传统的gnss定位方法所得到的节点定位误差累积密度曲线。

从图2和图3中可以看出来,当运用于大规模移动网络中时,jstp-dmle能够提供比对比算法更高的定位精度,另外,基于gnss观测信息,这些协作定位方法还能够进一步提高参考节点的定位精度。具体来讲,定义为节点定位的均方误差,则对于非参考节点,jstp-dmle的rmse为0.4561m,ekf为0.6031m,ukf为0.5762m,spawn为0.6320m;对于参考节点来讲,jstp-dmle的rmse为0.4182m,ekf为0.5718m,ukf为0.4902m,spawn为0.5409m。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1