一种提高便携设备定位精度的方法与流程

文档序号:20685896发布日期:2020-05-08 18:49阅读:496来源:国知局
一种提高便携设备定位精度的方法与流程

本发明涉及卫星导航技术领域,具体涉及一种提高便携设备定位精度的方法。



背景技术:

gps(全球定位系统)与bds(北斗导航系统)都是基于卫星的导航系统,可以提供接收端的空间位置和速度等信息。这两种导航系统在便携导航设备中都有着广泛的应用,例如手持gps导航仪、手机定位、车载导航设备等。导航设备在接收到卫星发出的电文后解算出其中空间坐标和速度等信息。但是受到相关政策以及环境因素比如电离层延迟等的影响,普通接收端的定位的精度以及准确度往往不尽如人意,有时还会出现较为严重的漂移,严重的减弱了定位效果。

由于高精度gps价格昂贵,导航型gps往往采用普通gps芯片,定位精度低于预期,在gps信号不好的地方会出现明显的漂移。提高定位精度则需要考虑处理器的运算能力,不能采用过于复杂的算法,以免对处理器造成过重的负担降低定位的实时性。如果采用多个普通gps芯片进行定位,需要确定一个合理的数量,既要能够有效的消除误差,又要考虑经济性和处理器的运算能力,还需要考虑如何才能最好的利用多个gps芯片结构产生的优势。

卡尔曼滤波是一种用于时变线性系统的递归滤波器,其计算过程只需要k时刻的测量值与k-1时刻的最优估计值就能获得当前最优状态估计,不需要存储大量数据,而且每一个步骤的计算量都较小,能够提供较好的实时性,比较适合便携设备的应用场景。



技术实现要素:

本发明所要解决的技术问题是:受限于政策和环境因素以及普通gps芯片本身的性能,便携导航设备容易出现定位不准确和漂移现象,不能够提供精准和稳定的定位服务。

针对上述情况,提出了一种利用多个普通gps/bds芯片同时进行定位,将每个普通gps/bds芯片的数据不同的权重进行融合,然后用卡尔曼滤波器对融合后的数据进行滤波,从而提高便携设备定位精度。

一种提高便携设备定位精度的方法,包括以下步骤:

步骤一、将四个普通gps/bds定位芯片摆放成一个边长为a的正方形,定位芯片的txd引脚、rxd引脚分别与单片机rx、tx引脚连接,必要时可为每个定位芯片连接有源天线增强搜星能力。通过四个芯片采集位置信息,得到初始gps坐标。

步骤二、将步骤一种四个芯片采集到的定位信息按如下方式处理后得到所需的权值:将四个gps坐标点生成一个四边形,从左上顶点开始按顺时针方向依次记为a、b、c、d,分别计算各顶点对应内角的角度θi。计算每个顶点相邻两边的长度di,j和di,k,其中i表示两边的公共顶点,j,k表示与i相邻的两顶点。计算角度权值:其中,θi与前述θi含义相同,变量i取值为a、b、c、d。分母表示每个内角与直角之差绝对值的余弦值的和。计算边长权值:其中,a,di,j与di,k与前述含义相同。分母表示每两个相邻所述gps/bds芯片之间距离减去其gps坐标间距离后用sigmoid函数处理结果的总和的两倍。取角度权值、边长权值加权结果的平均值:

更新顶点gps坐标。以上两式xi’、yi’分别表示所述gps/bds芯片测得的纬度和经度,其余各标记含义同前。

步骤三、计算加权后四个坐标值的平均值:其中x、y代表经过加权计算后的纬度、经度坐标,通过加权运算修正了单个定位芯片的漂移,作为卡尔曼滤波的输入。其余符号同前,i取值同前。

步骤四、将步骤三所得平均值输入卡尔曼滤波器,对下一步的状态做出最优估计。具体如下:

步骤1、建立系统状态方程:xk=axk-1+wk-1;xk为k时刻系统状态变量,a为状态转移矩阵,wk-1为系统噪声向量。根据实际需要选取纬度、经度的位置以及相应方向上的速度和误差。其中x,y为步骤三得出的结果,是下x,y对时间的导数即速度,εx,εy为x,y方向上的位置误差。如果考虑三维坐标,则可以加入海拔信息和相应误差,同时如果考虑到gps定位原理,接收机钟差等因素也可以作为状态向量。

确定状态转移矩阵a,a的选取根据不同的模型有多种选择,例如cv模型、ca模型、singer模型、cs模型。

考虑到算法的复杂度,以及实际情况中不论是行人还是汽车总以匀速运动的时间居多,选择cv模型:t为所述gps/bds芯片采样周期。确定wk-1:wk-1=[00wx00wy];

其中表示系统受到x方向与y方向的均值为0,方差为高斯噪声的干扰;

步骤2、建立观测方程:zk=hxk+vk;仅考虑平面坐标时系统的输出为经纬度,故zk=[xy]t,观测矩阵用于转换维度,故取:同时考虑vk=[vxvy]为服从均值为0,方差分别为的高斯噪声,即

步骤3、给定第一次执行下一步骤所需的初始条件:状态向量状态估计误差p0,至此,初始化部分完成,连续运行时前三步仅需执行一次。

步骤4、预测:其中是先验状态估计值;根据状态向量初始值或k-1时刻的最优估计值输出的先验状态估计值;表示k时刻的先验估计误差,由初始估计值或pk求得;q是过程噪声的协方差矩阵,为一对角阵,且元素值较小,通过调节这一矩阵调整滤波效果。在前面建立的系统状态空间模型的基础上,得到了k时刻的先验状态估计值和先验状态估计误差为下一步计算k时刻的后验状态估计值与系统误差做准备。

步骤5、更新:其中kk是一个中间变量,称作卡尔曼增益。r为测量噪声的协方差矩阵,可用实验确定来调节滤波效果;是k时刻的后验状态估计值,也就是滤波的结果;在k时刻的系统误差。

完成上述步骤后,转步骤二,重新获取当前gps坐标更新权重,直到被打断(如断电、中断等)。

本发明与现有方法相比,优点在于:相对于单gps/bds芯片结构,本发明中的多gps/bds芯片结构的定位精度有明显的优化,并且大大克服了普通gps/bds芯片受到干扰产生漂移的问题。加权方法用gps/bds芯片间的相对几何位置对检测数据进行约束,从而解决了多个gps数据间的加权问题,相比于“多数表决法”的加权更加可以削弱漂移数据的影响。没有复杂的数学计算,既有利于工程实现,又有利于减轻处理器的运算负担。

附图说明

图1为gps/bds芯片位置示意图;

图2为本发明的流程图;

图3为卡尔曼滤波的流程图。

具体实施方式

以下结合附图及实施例,对本发明进一步的详细说明。

一种提高便携设备定位精度的方法,如图1所示,通过固定四个gps/bds芯片的位置,将它们的位置关系作为已知条件,将四边形的角度和边长作为加权的依据,计算出各个gps/bds芯片数据的权重,加权后再取平均值,输入到卡尔曼滤波器,滤波器采用匀速运动模型,对下一时刻的位置给出最优估计,在滤波结束前,滤波器需要不断的计算卡尔曼增益、后验估计协方差的矩阵,但是其每一步的计算量都很小,而且只需要存储当前的测量值和前一个采样周期的估计值就可以得到最优估计值。

如图2所示,本发明所述方法包括以下步骤:

步骤一、将四个gps/bds芯片固定成边长为a的正方形,且每个芯片都给定一个标号。例如应用在汽车定位时空间较大可选择a=0.5m,从左上角开始顺时针标记为a、b、c、d,采用相应的标号来表示所接收到的数据来自哪一个芯片。通过四个芯片采集定位信息,得到初始gps坐标。

步骤二、将步骤一中正方形的每个角标记为θi,两个点之间的距离标记为di,j。例如顶点a所在的角为θa,a、b间的距离为da,b。计算角度权值:以顶点a为例,其角度权值为:

例如θa、θb、θc、θd均为直角,这时的角度权值就是各占1/4。

计算边长权值:以顶点a为例,其相邻的两个顶点为b、d,那么有i=a,j=b,k=d,取a=0.5,则a的边长权值为:分母中的系数“2”是为了使得所有权值之和为1添加的,分母中另一项代表着对四边形每一条边都用sigmoid函数进行计算并求和,sigmoid函数的定义如下:计算加权结果:

以上两式;xi、yi分别表示所述gps/bds芯片测得的纬度和经度,通过芯片解读接收到的电文获取,左侧为加权结果。

步骤三、计算加权后四个坐标值的平均值:其中x、y代表经过加权计算后的纬度、经度坐标,通过加权运算修正了单个定位芯片的漂移,作为卡尔曼滤波的输入。单位采用ntu单位:ntu=度*100000;

步骤四、将步骤三所得平均值输入卡尔曼滤波器,对未来的状态做出最优的估计:具体如下:前三步是初始化,第4步是用初始值或第5步的最优估计值进行不可靠预测,第5步是根据不可靠预测得到最优估计值。

步骤1、建立系统状态方程:xk=axk-1+wk-1;选择系统状态变量以及状态转移矩阵:wk-1=[00wx00wy];其中x,y为步骤三所得结果,是下x,y对时间的导数即速度,εx,εy为x,y方向上的位置误差,t是芯片的采样周期,一般为0.1秒左右,具体的可以在芯片的技术手册中找到采样频率换算;其中是符合高斯分布的白噪声。

步骤2、建立观测方程:zk=hxk+vk;仅考虑平面坐标时系统的输出为经纬度,故zk=[xy]t,观测矩阵h用于将状态向量xk转换到二维的zk故取:提取其中的经纬度。同时考虑vk=[vxvy]为服从高斯分布的噪声,

步骤3、给定第一次执行步骤4时所需的初始条件:卡尔曼滤波是递推算法,因此需给定状态向量初始值等。这里给出一组初始值:p0=100000e;e为单位矩阵,阶数与状态转移矩阵相同,这里为6阶,e前的系数应该是一个较大的数以保证结果的无偏性。至此,初始化部分完成,连续运行时前三步仅需执行一次。

步骤4、预测:将初值或k-1时刻最优估计值代入上式计算。此步骤在前面建立的系统状态空间模型的基础上,得到了k时刻的先验状态估计值和先验状态估计误差为下一步计算k时刻的后验状态估计值与系统误差做准备。

步骤5、更新:zk测量值向量,是步骤2的结果。更新后k自增,将上三式中的后二式代入计算,同时也是滤波器输出的结果,即最优估计。如此循环直到被打断。

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