[0005] 本发明所要解决的技术问题是:受限于政策和环境因素以及普通GPS芯片本身的性能,便携导航设备容易出现定位不准确和漂移现象,不能够提供精准和稳定的定位服务。
[0006] 针对上述情况,提出了一种利用多个普通GPS芯片同时进行定位,将每个普通GPS芯片的数据不同的权重进行融合,然后用卡尔曼滤波器对融合后的数据进行滤波,从而提高便携设备定位精度。
[0007] 一种提高便携设备定位精度的方法,包括以下步骤:
[0008] 步骤一、将四个普通GPS定位芯片摆放成一个边长为a的正方形,定位芯片的TXD引脚、RXD引脚分别与单片机RX、TX引脚连接,必要时可为每个定位芯片连接有源天线增强搜星能力。通过四个芯片采集位置信息,得到初始GPS坐标。
[0009] 步骤二、将步骤一中四个芯片采集到的定位信息按如下方式处理后得到所需的权值:将四个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芯片之间距离减去其GPS坐标间距离后用sigmoid函数处理结果的总和的两倍。取角度权值、边长权值加权结果的平均值:
[0010]
[0011]
[0012] 更新顶点GPS坐标。以上两式xi、yi分别表示所述GPS芯片测得的纬度和经度,xi’、yi’表示加权结果。
[0013] 步骤三、计算加权后四个坐标值的平均值: 其中x、y代表经过加权计算后的纬度、经度坐标,通过加权运算修正了单个定位芯片的漂移,作为卡尔曼滤波的输入。其余符号同前,i取值同前。
[0014] 步骤四、将步骤三所得平均值输入卡尔曼滤波器,对下一步的状态做出最优估计。具体如下:
[0015] 步骤1、建立系统状态方程:xk=Axk‑1+wk‑1;xk为k时刻系统状态变量,A为状态转移矩阵,wk‑1为系统噪声向量。根据实际需要选取纬度、经度的位置以及相应方向上的速度和误差。 其中x,y为步骤三得出的结果, 是x,y对时间的导数即速度,2x,εy为x,y方向上的位置误差。如果考虑三维坐标,则可以加入海拔信息和相应误差,同时如果考虑到GPS定位原理,接收机钟差等因素也可以作为状态向量。
[0016] 确定状态转移矩阵A,A的选取根据不同的模型有多种选择,例如CV模型、CA模型、singer模型、CS模型。
[0017] 考虑到算法的复杂度,以及实际情况中不论是行人还是汽车总以匀速运动的时间居多,选择CV模型: T为所述GPS/BDS芯片采样周期。确定wk‑1:wk‑1=[0 0 wx 0 0 wy];
[0018] 其中 表示系统受到x方向与y方向的均值为0,方差为 高斯噪声的干扰;
[0019] 步骤2、建立观测方程:zk=Hxk+vk;仅考虑平面坐标时系统的输出为经纬度,故zkT=[x y] ,观测矩阵用于转换维度,故取: 同时考虑vk=[vx
vy]为服从均值为0,方差分别为 的高斯噪声,即
[0020] 步骤3、给定第一次执行下一步骤所需的初始条件:状态向量 状态估计误差P0,至此,初始化部分完成,连续运行时前三步仅需执行一次。
[0021] 步骤4、预测: 根据状态向量初始值 或k‑1时刻的最优估计值 输出的先验状态估计值 表示k时刻的先验估计误差,由初始估计误差P0或系统误差 求得;Q是过程噪声的协方差矩阵,为一对角阵,且元素值较小,通过调节这一矩阵调整滤波效果。在前面建立的系统状态空间模型的基础上,得到了k时刻的先验状态估计值 和先验状态估计误差 为下一步计算k时刻的后验状态估计值 与系统误差 做准备。
[0022] 步骤5、更新:其中Nk是一个中间变量,称作卡尔曼增益。R为测量噪声的协方差矩
阵,可用实验确定来调节滤波效果; 是k时刻的后验状态估计值,也就是滤波的结果;
是在k时刻的系统误差。
[0023] 完成上述步骤后,转步骤二,重新获取当前GPS坐标更新权重,直到被打断(如断电、中断等)。
[0024] 本发明与现有方法相比,优点在于:相对于单GPS/BDS芯片结构,本发明中的多GPS/BDS芯片结构的定位精度有明显的优化,并且大大克服了普通GPS/BDS芯片受到干扰产生漂移的问题。加权方法用GPS/BDS芯片间的相对几何位置对检测数据进行约束,从而解决了多个GPS数据间的加权问题,相比于“多数表决法”的加权更加可以削弱漂移数据的影响。没有复杂的数学计算,既有利于工程实现,又有利于减轻处理器的运算负担。