基于C++ 实现GPS和INS组合导航系统【100010363】

GPS/INS组合导航系统设计

一、摘要

单独的GPS或者INS导航系统,都存在自己的固有缺陷。GPS/INS组合导航系统以GPS导航系统为主,INS导航系统为辅,将两者组合起来,改善了总体性能。GPS/INS组合导航系统无论在军事还是民用上都具有很大的价值和更加广泛的应用前景。本文针对GPS/INS组合导航技术、GPS/INS组合导航系统软硬件设计等为题展开较为深入的研究,所做的主要工作可以归纳为以下几方面:一、分析了GPS导航系统和INS导航系统的工作原理和通常的应用场景。研究GPS导航系统和INS导航系统的优点、缺陷及缺陷产生的原因。二、结合GPS和INS导航技术的特点,提出GPS/INS组合导航系统的概念。分析GPS/INS组合导航系统的关键技术与工作原理为软硬件设计提供初步理论依据。三、提出GPS/INS组合导航系统的软硬件设计方案。详细介绍了数据采集模块和数据处理模块的软硬件设计。四、探讨了Kalman滤波器原理以及联邦式卡尔曼滤波器在GPS/INS组合导航系统中的应用。

关键词: GPS,INS,组合导航系统,数据处理,Kalman

二、绪论

2.1 课题背景

全球卫星定位系统(Global Positioning System),简称GPS,是一个中距离圆型轨道卫星导航系统,它可以为地球表面绝大部分地区(98%)提供准确的定位、测速和高精度的时间标准。系统由美国国防部研制和维护,可满足位于全球任何地方或近地空间的军事用户连续精确的确定三维位置、三维运动和时间的需要。该系统包括太空中的24颗GPS卫星;地面上一个主控站,3个数据注入站和5个监测站及作为用户端的GPS接收机。最少只需其中3颗卫星,就能迅速确定用户端在地球上所处的位置及海拔高度。GPS信号分为民用的标准定位服务(SPS,Standard Positioning Service)和军规的精确定位服务(PPS,Precise Positioning Service)两类。由于SPS无须任何授权即可任意使用,原本美国因为担心敌对国家或组织会利用SPS对美国发动攻击,故在民用讯号中人为地加入误差 (即SA政策,Selective Availablity)以降低其精确度,使其最终定位精确度大概在左右;军规的精度在以下。

GPS系统拥有如下多种优点:全天候,不受任何天气的影响;全球覆盖(高达98%);三维定速定时高精度;快速、省时、高效率;应用广泛、多功能;可移动定位;不同于双星定位系统,使用过程中接收机不需要发出任何信号增加了隐蔽性,提高了其应用效能。但是由于GPS的致命弱点:动态性能较差、信号丢失会引起失锁以及定位精度亟待提高等。因此,如何进一步提高GPS导航定位的精度和动态性能,成为目前研究的一个重点。

GPS导航系统能为全球任何地点和近空间用户提供连续的导航能力,能提供高精度的三维速度、三维位置和时间信息,误差不随时间积累。惯性导航系统是一种高度自主的导航系统,有很强的抗干扰能力,实时导航数据快,并能给出全部的导航数据( 位置、 速度和姿态) ,因此在军事上得到了广泛的应用[1]。GPS 导航系统价格低廉,但其动态特性差,实时导航数据更新慢,不能输出姿态角。

组合导航系统将具有不同特性的单一导航系统或设备借助计算机组合起来,并对各个导航设备的输出信息进行综合处理,以提高整个系统的导航性能。信息处理的方法也由围绕着单个特定传感器所获得的数据集进行单一信息处理, 向着多传感器多数据集的信息融合方向发展。惯性导航系统分为INS (平台式)和SIS (捷联式) ,随着计算机的发展,INS目前己经逐渐被SINS (捷联式) 所替代,但两者的主要构成部件仍然是一样的,他们的缺点都是制导误差随时间累计,价格昂贵。

2.2 组合导航系统现状

随着现代控制理论、现代数学和计算机技术的不断进步,20 世纪 80 年代,组合导航技术也得到了迅速发展,取得了令人瞩目的成就。相对于单一导航系统,组合导航系统具备更强的协和超越能力、冗余互补能力和更宽的应用范围和可靠性。严格的组合导航系统研究产生于上世纪 60 年代。微型计算机的发展与广泛应用,为组合导航奠定了物质基础,而最优估计理论和信息融合理论的发展,则提供了有力的处理工具。组合导航系统已迅速发展成为一种多系统、多功能、高性能、高可靠性的导航系统,成为当前军用和民用导航领域技术发展的主流。

传统的惯性导航技术、卫星导航技术、光学标校技术、星光导航技术以及新型的重力匹配、海底地形、地磁匹配技术等对组合导航系统的研究具有重要的影响。随之产生不同类型的组合导航系统,大型的组合系统主要用于航空母舰、预警飞机与大型舰船等,INS/GPS、GPS/TRN(地形辅助导航) 、 GPS/Loran-C、GPS/奥米加、INS/TRN 等组合应用较多。例如 INS/TRN,既不依赖路基、也不依赖星基,隐蔽性好,定位精度可达 10-15 米(2drms)。20 世纪80年代以来,美、英、 法等国都十分积极地开展这方面的研制工作, 并已开始装备空军, 如“旋风”、“海鹞”、 AV-8B等机种, 有的曾在海湾战争中投入应用, 效果良好。 又如 INS/GPS组合,一开始就得到人们的欢迎和重视,成为主流的组合方式之一。随着目前高精度姿态测量产品的日渐成熟,使得 GPS 系统从传统单纯的定位测速提升到可以实时向用户提供精确连续的三维位置、速度、姿态和时间,系统不仅具有较高的精度,同时还克服了INS固有的积累误差。基于新型GPS测姿系统和 INS的组合导航系统成为目前研究的新领域。

组合导航理论与组合导航技术始终同步发展,其中最常用的组合导航算法即以最优估计 Kalman 滤波理论为基础。该理论从 1960 年提出起,便率先应用于导航领域,成为现代控制理论确定的标志。多种资料表明,Kalman 滤波方法仍然是国内外本领域信息融合技术研究的重点[2]。在Kalman滤波理论的发展过程中,线性 Kalman 滤波器(LKF)被最早提出,多应用于间接法组合导航系统,由于计算量少,便于转换等优点,被组合导航算法研究广泛采用。随后出现了诸如扩展Kalman滤波(EKF)、分散Kalman滤波(DKF)、联邦Kalman滤波(FKF) 、自适应 Kalman滤波(AKF)、U-Kalman滤波(UKF)等多种方法,应用在不同的组合导航类型和方式中。

2.3 课题意义

要提高导航系统性能,仅靠提高单一导航系统的精度,不仅在技术上难度很大,而且无法满足精度、低成本、体积小等多方面的要求。INS与GPS构成的组合导航系统可以克服两者单独工作的缺点,两者相互取长补短。GPS可以作为INS强有力的外部修正信息源, 而INS可以提高GPS 的跟踪和抗干扰能力,两者有机结合可提供较高精度的长期导航服务,并且它们都具有体积小、成本低的优点。

本文主要介绍了一个GPS/INS组合导航系统的软硬件平台的设计和建立,以及联邦式卡尔曼滤波器在组合导航系统的应用。GPS/INS组合导航系统无论是军事领域还是在民用领域,都有着广泛的应用前景和现实意义。

2.4 本文主要内容

单独的GPS或者INS导航系统,都存在自己的固有缺陷。GPS/INS组合导航系统以GPS导航系统为主,INS导航系统为辅,将两者组合起来,改善了总体性能。使GPS/INS组合导航系统无论在军事还是民用上都具有很大的价值和更加广泛的应用前景。本文针对GPS/INS组合导航技术、GPS/INS组合导航系统软硬件设计等为题展开较为深入的研究,所作主要工作可以归纳为以下几方面:

第一部分:简单介绍了GPS导航系统和INS导航系统的工作原理和通常的应用场景。研究GPS导航系统和INS导航系统的优点和缺陷,缺陷产生的原因。

第二部分:介绍当今导航定位、监控技术发展趋势,结合GPS和INS导航技术的特点,提出GPS/INS组合导航系统,介绍GPS/INS组合导航系统的工作原理,其优点和应用范围,为软硬件设计提供初步理论依据

第三部分:介绍了GPS、INS导航系统各自的优缺点。GPS/INS组合导航系统的各种组合方式,本次课题采用速度平台式组合方式的原因

第四部分:介绍GPS/INS组合导航系统的软硬件设计方案。综合几种常用的微处理器和嵌入式操作系统,选择ARM和嵌入式Linux搭建系统。阐述了软硬件选型的原因。

第五部分:简单介绍卡尔曼滤波原理。详细介绍了如何设计本课题中使用的联邦式卡尔曼滤波器。联邦式卡尔曼滤波器对组合导航系统的导航数据进行数据融合和计算。

2.5 本章小结

本章主要介绍组合导航系统发展的现状,本课题的现实意义。同时介绍本文的主要内容和组织结构。

三、GPS、INS导航系统分析

3.1 GPS系统简介

全球卫星定位系统(GPS) 作为一种新型导航系统,是由美国在1973年提出,并于1993年建成,历时20年,投资300亿美元。它的显著优点是能够提供高精度、可连续的、三维坐标、三维速度分量的实时导航,其定位误差与时间无关,且有很高的定位与测速精度。GPS不仅对军事极为重要,同时对全世界经济发展也有深远影响。

GPS主要由三大部分组成:空间部分(GPS卫星星座);地面控制部分(运行控制系统);用户部分(GPS信号接收机)。

3.1.1 GPS空间部分组成

空间部分包括分布在与地球赤道面倾角为55°的六个轨道面上的24颗卫星(21颗工作星,3颗备用星)其运行周期为1小时58分,轨道平面高度为20200km,每个卫星能覆盖地球地面面积的38%左右[3]。这样的分布保证每天出现在地平线上的卫星数目在4-11颗左右,在地球的任何地方都能同时收到4颗 以上卫星发出的信号,计算机根据这些信号可计算出用户目前在地球坐标系中的位置。如图2.1

基于C++ 实现GPS和INS组合导航系统【100010363】_第1张图片

​ 图2.1 GPS卫星空间组成

GPS卫星上装配的主要系统有:控制卫星自身工作的遥测、跟踪、指令系统,用于轨道调整与姿态稳定的控制和推进系统,具有长期稳定度的原子钟 ( 其误差为1s/ 300万年) 、L波段双频发射机、5波段接收机、伪随机码发生器及导航电文存储器。卫星的主要任务是播发导航信号。在卫星飞越地面控制部分上空时,接收由地面控制部分用5波段发送到卫星的导航电文和其他信息,并用L波段发送给地面用户:同时接收地面控制部分发送的卫星调度和控制命令,适时地改正运行偏差或启用备用时钟等[4]。卫星采用两种伪随机码对发射信息进行调制,一种是保密的精密码 (P码),主要是向美国及其盟国的军事用户提供精密定位服务(PPS):另一种是粗 捕获码(C/A码),向全世界民用用户提供标准定位服务 (SPS) [5]。卫星发播的导航电文包括:卫星星历、时钟偏差校正参数、信号传播延迟参数、卫星状态信息、时间同步信息和全部卫星的概略星历。导航电文通过两种伪随机码的扩频调制后发射给用户。用户通过对导航电文的解码,可以得到以上各参数用于定位计算。

3.1.2 GPS地面部分组成

GPS地面控制部分包括1个主控站,3个注入站和5个监测站,它们分布在地球的东西两半球。在卫星的应用时卫星本身的位置必须要被了解,地面各站对卫星进行测量并计算每颗卫星的星历,编辑成电文发送到卫星,然后由卫星实时地播发给地面用户,这就是卫星提供广播星历的依据。

主控站主要任务时收集和处理本站和各监测站的跟踪测量数据,计算卫星的轨道和时钟参数,将预侧的卫星星历、钟差、状态数据以及大气传播改正参数编制成导航电文传送到3个注入站,由注入站最终向卫星加载数据。主控站还负责纠正卫星的轨道偏离,必要时调度卫星,让备用卫星取代失效的工作卫星。此外,主控站还负责检测整个地面系统的工作,检验注入给卫星的导航电文,监测卫星是否将导航电文发送给了用户。

5个监控站的主要任务是向主控站提供卫星的测量数据。在主控站的遥控下,监控站每隔1.5s进行一次伪距测量,每15min 进行一次数据平滑,然后发送给主控站。

3个注入站的主要任务是将主控站发送来的导航电文,使用5 波段射频链上行传送到相应的导航卫星上。上行注入每天1次或2次,每次注入14d的星历。如果某地面站发生故障,那么,在各卫星中预存的导航信息还可用一段时间,但导航精度却会逐渐降低[6] [7] [8]。注入站还将每分钟自动向主控站发射信号,报告一次自己的工作状态。

3.1.3 GPS用户部分组成

GPS信号接收机主要由主机、天线、电源和数据处理软件等组成。GPS信号接收机作为客户端主要任务是:捕获所选择的待测卫星的信号,并跟踪这些卫星的运行,对所接收到GPS信号进行变换、放大和处理,以便测量出GPS信号从卫星到接收机天线的传播时间[9],解析出GPS卫星所发送的电文,实时地计算出测站的三维位置、三维速度、时间以及姿态。

3.2 GPS导航系统工作原理

GPS定位的方法有多种,如果按参考点的不同位置进行定位可分为绝对定位和相对定位;如果按用户接收机天线在测量中所处的状态进行定位可分为静态定位和动态定位[10]。而在绝对定位和相对定位中,又都可能包含静态与动态两种方式。

GPS导航系统的基本原理是无线电3点定位的原理,通过测量四个已知点上信号传播的延迟时间,计算出已知位置到用户的距离,根据这四个量测距离计算出待测点的三维位置和用户与已知位置的时钟差。根据高速运动的卫星的瞬间位置作为已知的起算数据,采用空间距离后方交汇的方法,确定待测点的位置。如图2.2:

基于C++ 实现GPS和INS组合导航系统【100010363】_第2张图片

​ 图2.2GPS定位原理

假设在时刻t,地面待测点坐标(x0,y0,z0),四颗卫星的坐标(x1,y1,z1),(x2,y2,z2),(x3,y3,z3),(x4,y4,z4)。地面待测点坐标(x0,y0,z0)到四颗卫星的距离分别为R1,R2,R3,R4。根据三球交会的几何原理:如果用户到卫星S1的真实距离为R1,那么用户的位置必定在以S1为球心,R1为半径的球面C1上;同样若用户到卫星S2 的真实距离为R2,那么,用户的位置也必定在以S2为球心,以R2为半径的另一球体上,那它必定在处在C1和C2这两球面的交线L1上。类似可得,如果再有一个以卫星S3为球心,以R3为半径的球体,那么用户的位置也必定在C3和C2这两个球面的交线L3上。用户的位置即在交线L1,又在交线L2上,它必定在交线L1和L2的交点上。可得公式:

基于C++ 实现GPS和INS组合导航系统【100010363】_第3张图片

联立这3个方程,可得出用户坐标(x0,y0,z0)。但在实际应用中 ,用户不可能得到十分准确的时钟,也不能和卫星准确同步,因此GPS用户接收机测量得出的卫星信号在空间中的传播是不准确的,计算得到的距离也不是用户接收机和卫星直接的真实距离,这时计算出来的距离叫做伪距。假设用户接收机在接收卫星信号的瞬间,接受机的时钟与卫星导航系统所用时间差为,则公式将改写成

式中,c是电磁波传播速度(光速),t是未知数。只要接收机能测出距4颗卫星的伪距,便有4 个这样的方程,把它们联立起来,便可以解出4个未知量x0 、y0 、z0和,即能求出接收机的位置和准确的时间。

当用户不运动时,由于卫星在运动,在接收到的卫星信号中会有多普勒频移。这个频移的大小和正负是可以根据卫星的星历和时间,以及用户本身的位置算出来的。 如果用户本身也在运动,则这个多普勒频移便要发生变化,其大小和正负取决于用户运动的速度与方向。根据这个变化,用户便可以算出自己的三维运动速度,这就是GPS测速的基本原理。另一种求解用户速度的方法是,知道用户在不同时间的准确三维位置,用三维位置的差除以所经过的时间,求解用户的三维运动速度。

综上所述,GPS卫星导航系统可以给出用户准确的三维位置、三维速度和时间信息。另外人们还在研究利用GPS载波相位进行高精度定位和姿态确定问题。利用载波相位测量技术,可使定位精度达到恤甚至画级。这方面原理已经取得突破,非实时应用已无问题,在测绘中还能用作动态测量,通过进一步努力,还可用于导航。用载波相位测量载体的航向与姿态角(俯仰与横滚)也可达到很高的精度。

3.2.1 惯性导航系统

惯性导航系统是一个使用一个(inertial frame)通过测量物体和(rotation)来判断其方位和海拔的系统。它只定位自己,不定位其他物体,所以它有较好的抗干扰和误差的能力。惯性导航系统是利用惯性元件来测量移动载体的运动加速度或者位移,通过积分运算,从而导出导航参数以确定载体位置。该系统与GPS卫星导航系统不同,它完全自主式、全天候、不受外界环境的干扰影响,无信号丢失等问题。惯性导航可配合其他导航系统,以提高准确度。,特别是,提供综合各感应器输入之理论架构。

3.2.2 惯性导航系统原理

惯性导航系统需要随时获取系统当前的瞬时地理位置、运行速度、运行角度等参数,这些参数称为导航参数。惯性导航以牛顿力学定律为基础,在系统内用加速度计测量系统当前的加速度,通过一次积分运算便可以得到载体相对导航坐标系的即时速度信息。再一次积分得到载体相对地理坐标系的即时位置信息,即地速和经度,纬度和高度信息。通过陀螺可以得到载体相对当地地理坐标系的姿态信息,即航向角,俯仰角和滚转角。这样通过惯性导航系统的工作,可以即时的提供出全部导航参数。

惯性导航系统主要有平台式惯性导航系统和捷联式导航系统两种。

其中平台式惯性导航采用如下的物理模型实现导航定位。

根据牛顿力学定律,位移、速度和加速度存在如下关系:

在INS中安装一个稳定的平台,以该平台模拟当地水平面为标准,建立一个空间直角坐标系,三个坐标轴分别指向东向e ,北向n和天顶方向u,这个坐标系通常被称为东北天坐标系。在载体运动过程中, 利用陀螺式平台始终跟踪当地水平面,三个轴始终指向东、北、天方向。在这三个轴上分别安装东向加速度计、北向加速度计和垂直加速度计。东向加速度计测量载体沿东西方向的运动加速度ae ,北向加速度计测量载体沿南北方向的加速度an,而垂直加速度计则用来测量载体沿着天顶方向的加速度au。 将这三个方向上的加速度分量进行积分,便可得到载体沿这三个方向上的速度分量:

基于C++ 实现GPS和INS组合导航系统【100010363】_第4张图片

式中M表示地球椭球的子午圈曲率半径,N表示地球椭球的卯酉圈曲率半径。我们如将地球近似的看成一个球体,球体的半径为R,则M=N=R。

在捷联式惯性导航系统中,惯性元件与载体采用固联安装,加速度计沿载体坐标系的三个方向安装,陀螺仪沿载体坐标系的三个转动轴安装,通过软件校准,粗对准以及精对准这三步后,通过计算得出载体的初始方位矩阵和姿态矩阵。计算的基本坐标系为地理坐标系(北东天);通过计算得出的方位矩阵和姿态矩阵称为“数字平台”。捷联式惯性导航系统就是以“数字平台”为依据,进行载体的导航计算。

3.2.3 惯性导航系统组成

由上文所述原理可见,一个完整的惯性导航系统一般需要以下几个部分:

  1. 加速度计。加速度计主要用于测量系统的运动加速度。

  2. 陀螺稳定平台。为加速度计提供一个准确的坐标基准,以保持加速度计始终沿三个轴向上测定加速度,同时也使惯性测量元件与运动载体的运动相隔离。

  3. 导航计算机。导航计算机主要用于进行诸如积分、多传感器融合以及最优理论估计等计算工作,导航计算机同时也提供陀螺施距的指令信号。

  4. 显示终端。显示终端主要任务是输出显示导航参数等,还可进行必要的控制操作,如输入初始数据等。

  5. 外围必要的附属电路,包括电源等。

3.3 本章小结

本章主要介绍了GPS导航系统和惯性导航系统各自的工作原理和各自的组成结构。介绍了常用的两种惯性导航系统,比较了两者的差异,并阐述了选择平台式惯性导航系统作为组合导航系统的惯性导航平台的原因。

四、GPS/INS组合导航系统

GPS导航系统和INS导航系统作为在导航定位领域最为常用的两个导航系统,有着各自的优势和劣势。GPS导航系统定位低廉、精度高,不存在误差累计的问题,但是GPS易受地理环境等因素的制约,在动态环境中可靠性差。INS导航系统完全自主式,保密性强,全天候,不受外界信号的干扰,但是惯导系统始终存在着误差随时间迅速积累增长的问题。下面将针对GPS导航系统和INS导航系统的优缺点展开具体的分析,并提出GPS/INS组合导航系统,GPS/INS组合导航系统将两种导航系统有机结合,取长补短,达到优异的导航效果。

4.1 GPS/INS导航系统优缺点分析

GPS是当前应用最为广泛的卫星导航定位系统,使用方便、成本低廉,精度高,其最新的实际定位精度已经达到5米以内,尤其是利用GPS卫星信号的高精度载波相位观测量进行定位,在数千公里的距离上,其精度可达几个PPM,误差不随时间而积累。但是GPS系统军事应用还存在易受干扰、动态环境中可靠性差以及数据输出频率低等不足。GPS的误差主有卫星的轨道误差、卫星钟差、.接收机钟差、大气折射误差、卫星信号的多路径效应和观测误差。

  1. 与惯性导航系统相比,GPS是纯粹的几何定位方法,无法测定重力矢量,无法直接测定航行姿态信息。
  2. GPS定位是非自主式的。其应用受到美国政府的GPS政策和外界环境等多方面的限制。
  3. GPS使用收到地理环境的制约,GPS定位,要求至少接收到四颗卫星的信号,而在城市、峡谷、桥梁等环境下,很可能丢失卫星信号,从而不能准确的进行导航
  4. GPS动态环境中可靠性差。GPS定位,要求至少接收到四颗卫星的信号,而在动态环境下尤特备是进行告诉激动时,多颗卫星同时失锁是可能的。此外,利用GPS载波相位观测量进行精密定位,要求无周跳发生。然而在动态环境下由于信噪比的下降及其它原因,与静态环境相比,较容易产生周跳。虽然目前己有不少修复周跳和整周模糊度参数瞬时求解的方法,但这些方法的精度和可靠性在高动态环境下都会出现问题,使得定位结果的可靠性难以保证。但在实际的应用中保证定位结果的可靠性十分重要,即使90%的情况定位精度达到mm级,若有5 %的情况精度下降至几百米,这也是不允许的。
  5. 卫星的轨道误差、卫星钟差、.接收机钟差、大气折射误差等不可避免的误差,造成测量产生误差。

4.2 INS组合导航系统优缺点分析

惯性导航技术已有较长发展历史,并在军事和民用上获得了广泛的应用。惯性导航定位的优点有:

  1. 完全自主式,保密性强。只需利用自身惯性元件的观测量推求位置、速度等导航参数,不受外界条件及其它人为因素的影响。
  2. 既不发射信号又不接收信号,不存在电磁波传播问题。因而没有无线电干扰.也没有大气折射等问题。
  3. 无通视问题。传统定位方法要求地面点间通视;GPS要求接收机与卫星之间“通视”。INS不但没有视线通视要求,同时也没有无信号遮挡、丢失等问题。
  4. 全天候。不受天气限制,无论白天黑夜、各种恶劣气象条件下均能正常工作。
  5. 机动灵活。整个系统装在载体上,无论是隐蔽地带还是坑道、水下,只要载体 (汽车、飞机、潜艇)能够到达就能导航定位。
  6. 多功能。惯导系统能提供的导航参数,相比其它导航系统而言,提供的导航参数更为齐全。既可定位、测速,而且能输出姿态信息,还可以测定重力异常和垂线偏差、相对大地水准面起伏等等。

但是,惯导系统始终存在着误差随时间迅速积累增长的问题,这是惯导系统的固有缺点,从初始对准开始,其导航误差就一直随时间而增长。而且,对一般惯导系统而言,加温和初始对准所需时间也比较长,这对远距离、高精度的导航和某些特殊条件下需要的快速反应等性能要求,就成了比较突出的问题。由于以上这些原因,对纯惯性导航系统来说,需要有高质量的惯性元件和温控系统,特备是对陀螺仪具有很高要求。正因如此,单纯的靠改进惯导系统本身来解决这些问题,只是做到有限程度的改善,始终不能从根本上解决问题。如果要从根本上解决问题,只能换种思路,利用外部信息进行辅助,这就需要寻求另外一种导航系统,该导航系统的的误差不随时间累积而累积,那么就可以用它来校正惯导系统,控制其误差随时间的积累。这就是惯导系统求和其它导航系统进组合的主要原因。

4.3 GPS/INS组合导航系统

综合上节描述,GPS和INS各有所长,并具有互补性。如果将INS和GPS组合起来,组成新的GPS/ INS组合系统,可以取各子系统之长,提高整个系统导航的稳定性和准确度,构成一个有机的整体。

4.3.1 GPS/INS组合导航优势

GPS/INS组合制导的优势主要体现在:

1.GPS/INS组合改善了系统精度

高精度的GPS信息可以用来修正INS,控制其误差随时间的积累。利用GPS信息可以估计出INS的误差参数以及GPS接收机的钟差等量。另一方面,利用INS短时间内定位精度较高和数据采样率高的特点,可以为GPS提供辅助信息。利用这些辅助信息,GPS接收机可以保持较低的跟踪带宽,从而可以改善系统重新俘获卫星信号的能力。

2.GPS/INS组合加强了系统的抗干扰能力。当GPS信号受到高强度干扰;或当卫星系统接收机出现故障时,INS系统可以独立地进行导航定位。当GPS信号条件显著改善到允许跟踪时,INS系统向GPS接收机提供有关的初始位置、速度等信息,以供在迅速重新获取GPS码和载波时使用。INS系统信号也可用来辅助GPS接收机的天线对准GPS卫星,从而减小了干扰对系统的影响。

3.解决周跳问题。对于GPS载波相位测量,INS可以很好地解决GPS周跳和信号失锁后整周模糊度参数的重新解算,也降低了至少4颗卫星可见的要求。

4.解决GPS动态应用采样频率低的问题。在某些动态应用领域,高频INS数据可以在GPS定位结果之间高精度内插所求事件发生的位置(如航空相机曝光瞬间的位置测定)

5.用途更广。GPS/INS组合系统是GPS与INS互补的、互相提高的集成,而不是二者的简单结合。组合系统性能更强,应用领域更广。

正是由于这两套系统具有极好的互补性,可以以低成本提供全球精确导航的能力。

4.3.2 组合导航系统组合方式

组合导航系统根据不同的应用要求,可以有不同层次的组合,按照综合深度的不同。可分为松散组合方案和紧密组合方案。

1.松散组合

松散组合是一种低水平的组合,GPS和惯导仍独立工作,用GPS辅助惯导。分为以下两种:

用GPS重调惯导。GPS重调惯导是一种最简单的组合方式,可以有两种工作方式:一是用GPS给出的位置、速度信息直接重调惯导系统的输出。实际上,就是在GPS工作期间,惯导显示的是GPS的位置和速度;GPS停止工作时。惯导在原显示的基础上变化,即GPS停止工作的瞬间的置和速度作为惯导系统的初值;另一种是把惯导和GPS输出的位置和速度进行加权平均。对其原理框图如图3-1所示。

基于C++ 实现GPS和INS组合导航系统【100010363】_第5张图片

​ 图3.1 GPS/INS组合导航系统原理框图

在图3.1种,INS和GPS输出的导航信息,会分别根据设定的加权值进行平均并计算得出载体当前的位置。

在短时间工作情况下,第二种工作方式精度较高。而长时间工作时,由于惯导误差随时间增长,因此惯导输出的加权随时问增长而减小,因而长时间工作时,性能和第一种工作方式基本相同。

位置、速度组合。位置、速度组合属于松散组合,采用卡尔曼滤波进行组合,如图3-2所示。

基于C++ 实现GPS和INS组合导航系统【100010363】_第6张图片

​ 图3-2卡尔曼滤波器在组合导航系统应用

在上图中,位置、速度组合用GPS和惯导输出的位置和速度信息的差值作为测量值,经卡尔曼滤波器的处理,估计惯导系统的误差,然后对惯导系统进行校正。这种综合模式的优点是组合工作比较简单,便于工程实现,而且两个系统仍能独立工作,使导航信息有一定余度。缺点是GPS的位置和速度误差通常是时间相关的,而且卡尔曼滤波器要求量测噪声为白噪声才能保证估计的无偏性。

2.紧密组合

紧密组合是高水平的组合:

其主要特点是GPS接收机和惯导系统互相辅助,可以把GPS和惯导系统按综合的要求进行一体化设计。高动态飞行器上一般都采用紧密组合模式。伪距、伪距率组合是一种常用的紧密组合模式.从结构和实现方式上说,都不同于位置、速度组合。GPS发送机提供的伪距、伪距率信号被接收机接收后的效果比位置、速度组合方式好。但是其计算工作量大,精确补偿伪距误差有一定的难度。在工程实际中其组合效果反而未必比位置、速度组合更好。

鉴于本课题的研究目的并考虑到工程应用的需要,本课题组合导航工程实现所采用的是位置、速度的组合模式。该方式组合算法简单,于工程实现,且组合效果良好。

4.4 本章小结

本章主要探讨了GPS导航系统和惯性导航系统各自的优势和劣势,提出了GPS/INS组合导航系统的优点和常见的组合方式。阐述了本课题采用位置、速度的组合模式的原因。

五、GPS/INS组合导航系统软硬件平台设计

本章主要将介绍GPS/INS组合导航系统的软硬件设计。软硬件平台的设计在实现系统功能的基础上将统合考虑系统的通用性,稳定性和利于二次开发。

5.1 GPS/INS组合导航系统硬件平台设计

本次课题的硬件平台主要分为两部分:数据采集模块和数据处理模块。其中数据采集模块,选取ATmega128-16AU芯片为核心,外围采用了MMA7260QT的加速度计和ENC—03MA的陀螺仪来采集惯性导航系统所需的北东天方向加速度和三轴转动的角速度,使用SiRF IIe/LP 低耗GPS模块来采集GPS数据。数据处理模块选用了S3C2440芯片作为核心,主要负责数据的融合和导航数据的计算。数据采集模块和数据处理模块之间通过RS232进行通讯。

平台的硬件设计首先考虑它的性能[16] [17],其次还要顾及它的成本和开发时间,力求它的性价比及开发时间等各个指标之间取得平衡。此外,在设计中还要遵循以下两个因素:

第一、通用性,可以为其他设备的软件开发提供底层硬件平台,而且就其自身而言也可以开发成为一种控制系统中的控制模块,例如组合导航系统的硬件平台;

第二、要有利于二次开发,即在本系统的基础上进行二次开发,开发工作具有简单性、易行性等优点。

硬件系统结构图如图4.1所示。

硬件平台主要分为两部分:数据采集模块和数据处理模块。数据采集模块,通过A/D转换,将加速度计和陀螺仪传送过来的模拟信号转换为数字信号,从而获取载体当前三方向的加速度和角速度。通过串口读取GPS的数据。在获取到GPS和INS系统的信息后,将GPS的信息和INS的信息通过串口传送到数据处理的模块。数据处理模块将GPS和INS的导航信息通过卡尔曼滤波算法进行数据融合和处理。

基于C++ 实现GPS和INS组合导航系统【100010363】_第7张图片

​ 图4.1硬件系统结构图

综合以上因素,系统的硬件设计将数据采集模块和数据处理的模块分别独立设计,两者之间通过RS232进行数据的通讯。导航系统的数据采集部分工作量较小,不需要强大的计算能力,而导航系统的数据处理部分需要进行数据的融合和导航数据的计算,涉及到矩阵计算,需要较为强大的计算能力。设计中将导航系统的数据采集部分独立出来,数据采集模块不依赖于具体的操作系统,耳数据处理的模块只需要通过就能获取到加速度,角速度和GPS的信息,提高了系统设计的灵活性。

5.1.1 数据采集模块硬件设计

数据采集模块主要负责采集北东天三个方向的加速度和三轴转动的角速度,并通过RS232和数据处理模块进行通讯。主控CPU选取了ATmega128-16AU芯片。数据采集模块的硬件系统结构图如图4.2所示:
基于C++ 实现GPS和INS组合导航系统【100010363】_第8张图片

​ 图4.2数据采集模块硬件结构图

原理图如图4.3所示。

基于C++ 实现GPS和INS组合导航系统【100010363】_第9张图片

​ 图4.3数据采集模块原理图

ATmega128-16AU是一款基于AVR RISC结构的8位高性能低功耗CMOS微处理器,主频可以达到16MHz。由于其先进的指令集以及单周期指令执行时间,ATmega128 的数据吞吐率高达 1MIPS/MHz,从而可以有效缓减系统在功耗和处理速度之间的矛盾。ATmega128-16AU可以工作在6种睡眠模式下:空闲模式、ADC噪声抑制模式、省电模式、掉电模式、Standby 模式以及扩展的Standby 模式。通过具体情况选择合适的睡眠模式,可以有效的降低系统功耗。ATmega128-16AU同时也具有丰富的片内资源和外设,包括:

  • 非易失性的程序和数据存储器

    –128K 字节的系统内可编程 Flash

  • 寿命: 10,000 次写/擦除周期

    – 具有独立锁定位、可选择的启动代码区

  • 通过片内的启动程序实现系统内编程

  • 真正的读-修改-写操作

    –4K 字节的EEPROM

  • 寿命: 100,000 次写/擦除周期

    –4K 字节的内部SRAM

    – 多达64K字节的优化的外部存储器空间

    – 可以对锁定位进行编程以实现软件加密

    – 可以通过SPI实现系统内编程

    – 两个具有独立的预分频器和比较器功能的8 位定时器/计数器

    – 两个具有预分频器、比较功能和捕捉功能的16 位定时器/计数器

    – 具有独立预分频器的实时时钟计数器

    – 两路8 位PWM

    –6路分辨率可编程(2 到16 位)的 PWM

    – 输出比较调制器

    –8路 10 位ADC

  • 8个单端通道

  • 7个差分通道

  • 2个具有可编程增益(1x, 10x, 或200x)的差分通道

    – 面向字节的两线接口

    – 两个可编程的串行USART

    – 可工作于主机/从机模式的 SPI串行接口

    – 具有独立片内振荡器的可编程看门狗定时器

    – 片内模拟比较器

采用ATmega128-16AU作为数据采集模块的主控芯片,能够有效的完成数据的采集并将数据通过RS232传送给数据处理模块。

5.1.1 GPS信号采集模块硬件设计

GPS信号采集模块主要负责采集GPS的数据,并通过串口向ATmega128发送GPS的导航数据。通讯为标准UART方式,只需三根线即可:TXD、RXD和GND。因为GPS输出信号的电平为RS232电平,所以GPS通过MAX232相连。对于GPS卫星信号,需要采用高精度的GPS接收机来获得GPS定位数据。

综合成本、性能等各方面考虑,选用高精度、低成本、性能稳定的GPS接收机是接收采集GPS信号的关键。SiRF IIe/LP GPS模块的性能参数:

12并行通道

超低耗电,体积小巧,仅为41x41x18毫米

增强运算处理功能,提供精准的城市、峡谷、 森林中定位效果

产品规格:

位置精准 度:位置:2米无S/A

加速度: 0.1米/秒无SA码

时间:1微秒

定位时间:冷启动:40秒(平 均)

暖启动:33秒(平均)

热启动:2秒(最快)

信号感度:Tracking:-152dBm

动 态条件:海拔高度:最大18000米

速度:最大500米/秒

加速度:最快4g

刷新速度:1s

坐 标系统: WGS84

电源消耗: DC3V-6V正常(tracking):380毫瓦

操作温 度: -40°~+85°C

存贮温度: -55°~+100°C

操作湿度: 5%到95%无压缩条件下

SiRF IIe/LP GPS模块性能参数表明该GPS卫星接收机具有快速定位能力,仅需1.6秒就可重新捕获卫星信号,可以连续接收卫星数据。实验证明在无线电波阻挡较为严重的环境下,也具有超强的抗遮挡能力。很适合本次在组合导航定位系统中使用。

5.1.1 INS信号采集模块硬件设计

INS惯性导航系统实际上是一套多传感器系统,它主要包括作为角速度传感器的陀螺仪和作为加速度传感器的加速度仪,分别提供移动载体在运动中实时的角度变化信息和速度变化信息。

陀螺仪和加速度计输出的都是模拟信号,要被系统使用,还需要进行A/D转换,将模拟信号转换为数字信号。ATmega128片内有A/D转换功能。陀螺仪和加速度计的输出管脚和ATmega128芯片的A/D转换管连接,将模拟信号转换为数字信号。

角速度传感器-陀螺仪ENC-03MA。

陀螺仪中有利用转动惯量的旋转陀螺仪,利用光干涉和相位差的光纤陀螺仪;以及利用气流和温度差的气体速率陀螺仪等;新近发展的应用压电振动子的振动陀螺仪已经实用化,它通过正确确定谐振频率,稳定振动模态,提高压电陶瓷变换率等改进,能够有效提供高灵敏度的测量数据,而且具有驱动、检测电路简单、信噪比高等特点。它不受安装位置、方向的影响,安装于载体的任意地方都可正确敏感角速度。

ENC-03MA是村田公司出品的一款稳定微型压电陀螺仪ENC-03MA应用科氏力原理,输出一个和角速度成正比的模拟电压信号,采用2.7V至5.5V电源,电流消耗为5mA,能检测最大角速度±300°/s,响应时间20ms,额定工作温度范围在-5℃至75℃之间。尺寸:12.2×7×2.6mm,重量:0.4g。这种微机械陀螺具有体积小、重量轻、能承受极大的冲击和成本低廉的特点。

陀螺仪是惯性导航系统中最重要的测量元件,它随着移动载体一起运动以敏感载体的角速率,它输出信号的动态范围接近140dB。为了能获得高分辨率的陀螺数据,一般要求采集器的动态范围大于140dB,这就对采集器中A/D转换器提出了较高的要求。电荷平衡式电压一频率( VF ) 转换电路具有抗干扰能力强,接口简单等优点,应用于一般惯性导航系统时其转换速度和实时性均能满足动态性能,在动态范围和测量分辨率上可以满足陀螺仪的动态性能要求。

加速度传感器MMA7260QT:

MMA7260QT是飞思卡尔公司出品的一款微型电容式三轴加速度传感器,采用了信号调理、单极低通滤波器和温度补偿技术,并且提供1.5g/2g/4g/6g 4个量程可选,用户可在4个灵敏度中根据需求自由的选择。该器件带有低通滤波并已做零g补偿。MMA7260QT较高的性价比和优异的性能,十分适合在本课题中使用。

5.1.2 数据处理模块硬件设计

数据处理模块主要调用各种算法进行导航数据的计算,并负责人机交互。硬件结构如图4-4:

基于C++ 实现GPS和INS组合导航系统【100010363】_第10张图片

​ 图4-4数据处理模块硬件结构图

处理器是构建导航系统平台的核心,关系到导航软件的开发和系统导航功能的实现。因此嵌入式处理器器的选择显的至关重要。

常用的嵌入式处理器有单片机、DSP、ARM等四种,由于数据处理部分的处理器负责整个导航系统的运行:需要接收GPS和惯性导航的导航信息,调用各种算法进行计算(数据的融合、卡尔曼滤波等),涉及到矩阵运算,需要强大的运算能力,传统的8位或16为单片机显然无法胜任,只能在ARM和DPS之间取舍。DSP是基于RISC架构的处理器,采用哈佛总线技术,功能也很强,DPS擅长密集的数值运算,单本系统的数据处理模块需要运行嵌入式操作系统,在其上进行各种算法的调用同时进行人机界面的交互,需要进行多任务的调度,因此DPS不适合在本系统的数据处理模块中使用。

自然的ARM内核的处理器成为数据处理模块最理想的选择。ARM内核处理器采用RISC架构的ARM微处理器一般具有如下特点:体积小、低功耗、低成本、高性能;支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;大量使用寄存器,指令执行速度更快;大多数数据操作都在寄存器中完成;寻址方式灵活简单,执行效率高;指令长度固定。基于ARM处理器的优异性能,十分适合用于GPS导航系统的实现。目前使用最为普遍的是ARM7TDMl、ARM9TDMI两种。

1.ARM7TDMI(Thumb):这是ARM公司授权用户最多的一项产品,将ARM7

指令集同Thumb扩展组合在一起,以减少内存容量和系统成本。同时,它还利用嵌入式ICE调试技术来简化系统设计,并用一个DSP增强扩展来改进性能。

2.ARM9TDMI:采用5阶段管道化ARM9内核,同时配备Thumb扩展、调试和Harvard总线。在生产工艺相同的情况下,性能达ARM7TDMI的两倍之多。ARM9是低功耗的32位核,运行速度可达200MHz,适用高性能的要求,具有MMU(Memory Management Unit,内存管理单元)和缓存,可以运行WinCE和嵌入式Linux这样的高级嵌入式操作系统。

三星公司的S3C2440就是一款基于ARM9TDMI内核的杰出ARM9处理器。S3C2440处理器工作频率可以达到400MHZ,有丰富的片内资源:

外部储存控制器(SDRAM控制盒片选逻辑),集成LCD专用DMA的LCD控制器(支持最大4K的STN和256K色TFT),4路拥有外部请求引脚的DMA控制器,3路URAT(IrDA1.0,64-Byte Tx FIFO,64Byte Rx FIFO),2路SPI,IIC总线接口(多主支持),IIS音频编解码器接口,AC97编解码器接口,1.0SD主接口,兼容2.11版MMC接口,2路USB HOST /1路USB控制(ver1.1),4路PWM定时器/1路内部定时器/看门狗定时器,8路10位ADC和触摸屏接口,具有日历功能的RTC,摄像头接口(支持最大4096x4096的输入,2048x2048缩放输入),130个通用I/O,24个外部中断源。

处理的强大性能和丰富的片内资源有效的满足了数据处理部分的需要,同时也具有较高的性价比,能够有效的支持Linux、Vxworks等嵌入式操作系统。综合以上原因,选择S3C2440芯片作为本系统数据处理部分的主控芯片。

5.2 GPS/INS组合导航系统软件平台设计

5.2.1 数据采集模块软件设计

数据采集模块主要负责采集北东天三个方向的加速度和三轴转动的角速度,并通过RS232和数据处理模块进行通讯。软件结构如图4.5所示:

基于C++ 实现GPS和INS组合导航系统【100010363】_第11张图片

​ 图4.5数据采集模块软件结构图

5.2.1 GPS数据获取

GPS模块通过串口输出数据,所以主控芯片通过串口与GPS进行通讯。GPS报文遵循NEMA0183格式。NEMA0183报文格式如表4-1所示:

表4-1 GPS报文说明 (InStruction ofGPS message)

NMEA标签 内容
GPGSA GPSDOPandActive Satellites(GSA)当前卫星信息
GPGSV GPS Satellites in View(GSV)可见卫星信息
GPGGA Global PositioningSymem FixData(GGA)GPS定位信息
GPRMC Recommended Minimum Specific GPS Data(RMC)推荐定位信息
GPVTR TrackMadeGood andGround Speed(VTG)地面速度信
GP ZDA PPStimingmessage PPS秒脉冲信息

但本系统需要使用的主要报文$GPRMC。GPRMC报文格式如下:

$GPRMC,UTC time,Status,Latitude,Latitude hemisphere,Longitude,Longitude hemisphere,Speed,Course,UTC date,Magnetic Variation,Magnetic Variation direction,Mode indicator

数据说明如下:

  1. $GPRMC:代表GPS推荐的最短数据。

  2. UTC time:24小时制的标准时间,按照小时/分钟/秒的格式。

  3. Status:A/V,其中A表示数据“OK“,V表示一个数据无效。

  4. Latitude:纬度值,格式为ddmm.mmmm(d表示度,m表示分,起始数据零也必须发送,精确到小数点前4位,后4位。

  5. Latitude hemisphere:N/S,其中N表示北纬,S表示南纬。

  6. Longitude:纬度值,格式位格式为dddmm.mmmm。

  7. Longitude hemisphere:E/W,其中W表示西经,E表示东经。

例如,报文:

$GPRMC,095150,A,4501.8441,N,12114.5410,E,000.0,000.0,28l102,003.3,W*7C

表示现在的UTC时间是9点51分50秒,目前GPS数据有效,北纬45度01.8441分,东经121度14.5410分。

AVR单片机以中断的方式来读取GPS从串口发送的数据。接收到中断后,将报文进行初步的解析,并等待陀螺仪和加速度计传送的数据。

5.2.1 惯性导航系统数据获取

惯性导航系统的数据包括两部分:陀螺仪绕三轴转动角速度和加速度计的三轴方向加速度。陀螺仪的输出信号通过滤波和A/D转换以获得对应的角速率变化量。加速度计输出的信号也通过A/D转换以获得对应方向的加速度。这两个数据供惯性导航定位数据计算并最终通过Kalman 滤波器和GPS的数据融合,获得最佳的定位导航数据参数。

5.2.2 数据处理模块软件设计

数据处理部分的处理器负责整个导航系统的运行:需要接收GPS和惯性导航系统提供的的导航信息,调用各种算法进行计算(数据的融合、卡尔曼滤波等),并负责人机交互的功能。数据处理模块软件流程如图4.6所示。

基于C++ 实现GPS和INS组合导航系统【100010363】_第12张图片

​ 图4.6数据处理模块软件结构图

数据处理模块需要负责各种导航数据的计算,同时也需要提供良好的人机界面,这些工作如果能在一个嵌入式的操作系统上进行,可以有效的降低开发的难度。Linux是个和Unix相似、以核心为基础的、完全内存保护、多任务多进程的操作系统。支持广泛的计算机 硬件,包括X86 ,Alpha, Sparc, MIPS, PPC, ARM, NEC, MOTOROLA 等现有的大部分芯片。程式源码全部公开,任何人可以修改并在GNU通用公共许可证(GNU General Public License)下发行, Linux 用户遇到问题时可以通过Internet向网上成千上万的Linux开发者请教,这使最困难的问题也有办法解决。Linux 带有Unix 用户熟悉的完善的开发工具,几乎所有的Unix系统的应用软件都已移植到了Linux 上。Linux还提供了强大的网络功能,有多种可选择窗口管理器(X windows)。其强大的语言编译器gcc、g++等也可以很容易得到。不但成熟完善、而且使用方便。嵌入式Linux与其他嵌入式操作系统的比较如下优点:开放源码、所需容量小(最小的安装大约需要2MB)、不需版权费用、成熟与稳定(经历这些年的发展与使用)、良好的支援。综合以上原因,数据处理模块选择嵌入式Linux系统作为软件开发的平台。

static double rad(double d)
{
    return d * PI / 180.0;
}

static double GetDistance(double lat1, double lng1, double lat2, double lng2)
{
    double radLat1 = rad(lat1);
    double radLat2 = rad(lat2);
    double a = radLat1 - radLat2;
    double b = rad(lng1) - rad(lng2);
    double s = 2 * EARTH_RADIUS*asin(sqrt(pow(sin(a/2),2) + cos(radLat1)*cos(radLat2)*pow(sin(b/2),2)));
    return s;
}
void cmdParse(void)
{
/*	for(int i=0;i<(int)m_arrValue.size();i++)
	{
		infof("m_arrValue[%d]=%s\r\n",i,m_arrValue[i].c_str());
	}*/
	
	CGuard guard(m_mutexGpsInfo);
	
	CConfigTable cfgGps = m_configGpsInfo;
	if (m_arrValue[0].find("$GPRMC") == 0
		&& m_arrValue.size()>(uint)GPRMC_Valid_Idx
		&& m_arrValue[GPRMC_Valid_Idx].find("A") == 0 )
	{
		getLongitude(cfgGps["Longitude"]);
		getLatitude(cfgGps["Latitude"]);
		getTime(cfgGps["Time"]);
		getSpeed(m_configGpsInfo, cfgGps, cfgGps["Speed"]);
		getAzimuth(cfgGps["Bearing"]);
	}
	else if (m_arrValue[0].find("$GPGGA") == 0)
	{
		if (m_arrValue.size() > (uint)GPGGA_Valid_Idx
			&&m_arrValue[GPGGA_Valid_Idx].find("1") == 0)
		{
			getAltitude(cfgGps["Altitude"]);
		}
	}
	m_configGpsInfo = cfgGps;
}

5.3 本章小结

本章主要介绍了组合导航系统的软硬件结构。介绍将数据采集模块和数据处理模块分别进行独立设计的原因,阐述了软硬件选型的原因。

六、卡尔曼滤波器在组合导航系统中的应用

6.1 卡尔曼滤波器分析

卡尔曼滤波是一种高效率的(), 它能够从一系列的不完全及包含的(英文:measurement)中,估计的状态。

卡尔曼滤波的一个典型实例是从一组有限的,包含噪声的,对物体位置的观察序列(可能有偏差)预测出物体的位置的及。在很多工程应用(如、)中都可以找到它的身影。同时,卡尔曼滤波也是以及工程中的一个重要课题。

卡尔曼滤波建立在和(hidden Markov model)上。其基本动态系统可以用一个表示,该马尔可夫链建立在一个被高斯(即正态分布的噪声)干扰的上的。系统的可以用一个元素为实数的表示。 随着的每一个增加,这个就会作用在当前上,产生一个新的状态,并也会带入一些噪声,同时系统的一些已知的控制器的控制信息也会被加入。同时,另一个受噪声干扰的线性算子产生出这些隐含状态的可见输出。

为了从一系列有噪声的观察数据中用卡尔曼滤波器估计出被观察过程的内部状态,我们必须把这个过程在卡尔曼滤波的框架下建立模型。也就是说对于每一步k,定义Fk, Hk, Qk, Rk,有时也需要定义Bk。[18]

卡尔曼滤波模型假设k时刻的真实状态是从(k=1)时刻的状态演化而来,符合下式:

基于C++ 实现GPS和INS组合导航系统【100010363】_第13张图片

初始状态以及每一时刻的噪声{x0, w1, …, wk, v1 … vk} 都为认为是互相的。

实际上,很多真实世界的动态系统都并不确切的符合这个模型。但是由于卡尔曼滤波器被设计在有噪声的情况下工作,一个近似的符合已经可以使这个滤波器非常有用了。更多其它更复杂的卡尔曼滤波器的变种,在下边讨论中有描述。

卡尔曼滤波是一种的估计,即只要获知上一时刻状态的估计值以及当前状态的观测值就可以计算出当前状态的估计值,因此不需要记录观测或者估计的历史信息。卡尔曼滤波器与大多数滤波器不同之处,在于它是一种纯粹的滤波器[20],它不需要像等滤波器那样,需要在频域设计再转换到时域实现。

卡尔曼滤波器的状态由以下两个变量表示:

Xk| k,在时刻k的状态的估计;

Pk| k,误差相关矩阵,度量估计值的精确程度。

卡尔曼滤波器的操作包括两个阶段:预测与更新。在预测阶段,滤波器使用上一状态的估计,做出对当前状态的估计。在更新阶段,滤波器利用对当前状态的观测值优化在预测阶段获得的预测值,以获得一个更精确的新估计值。

基于C++ 实现GPS和INS组合导航系统【100010363】_第14张图片

使用上述公式计算Pk| k仅在最优卡尔曼增益的时候有效。不变量(Invariant)

如果模型准确,而且X0|0与P0|0的值准确的反映了最初状态的分布,那么以下不变量就保持不变:所有估计的误差均值为零

6.2 联邦式卡尔曼滤波算法

如果利用卡尔曼滤波技术对组合导航系统进行最优组合一般有两种途方法:集中式卡尔曼滤波和分布式卡尔曼滤波。集中式卡尔曼滤波是利用一个卡尔曼滤波器来集中地处理所有导航子系统的信息。虽然在理论上可给出误差状态的最优估计,但存在一下几个缺点:

1.集中式卡尔曼滤波器包含了所有子系统的误差状态,它的状态维数高,计算量以滤波器维数的三次方递增,因而计算负担重,不利于滤波的实时运行,即所谓的“维数灾难"。降维滤波又会损失滤波精度,甚至带来滤波发散。

2.集中式卡尔曼滤波器的容错性能差,不利于故障诊断。这是因为任一导航子系统的故障在集中式卡尔曼滤波器中会污染其他子系统的状态,使组合系统的导航信息不可靠。

因为以上局限性的存在,如使用集中式卡尔曼滤波会使得组合系统的潜力无法充分发挥。而并行处理技术、对于系统容错性能的重视以及多种类传感器的研制成功促进了分布式卡尔曼滤波技术的发展。在众多的分散化滤波方法中,Calson提出的联邦滤波器,由于利用信息分配原则来消除各子状态估计的相关性,设计灵活,计算量小,容错性能好,只需进行简单、有效的融合,就能得到全局最优或次优估计,因而受到重视。

6.3 联邦式卡尔曼滤波算法设计

在本次课题设计中,使用了联邦式卡尔曼滤波算法。整个组合导航系统在工作时,数据处理模块同时接受来自GPS定位系统和INS导航系统的数据,根据组合导航系统的数学模型对郎中导航系统提供的导航信息进行数据融合,得到最优的定位结果,获得最好的定位精度。当GPS信号丢失,无法导航的时候,可以利用INS导航系统的定位结果进行导航。此外,也可以当GPS由于可见星少于四颗,从而导致定位精度较低时,利用INS的在短期内的较高精度来改善GPS的定位精度。

组合导航系统使用联邦式卡尔曼滤波器结构如图式5.1:

基于C++ 实现GPS和INS组合导航系统【100010363】_第15张图片

​ 图式5.1联邦式卡尔曼滤波器结构图

其中,将GPS作为局部传感器1,采用卡尔曼滤波算法,对连续采集的GPS定位信息进行局部滤波估计。将INS导航系统提供的信息作为局部传感器2,由于陀螺仪和加速度计短期精度相对较高,所以不对局部滤波器2进行滤波,而只根据INS导航系统提供的导航信息完成载体的位置对算。

载体运动的坐标系为北东天地理坐标系,一般认为载体的运动模型为Singer模型,在此以Singer模型作为载体的运动模型,取系统的状态变量为:

​ X=[e Ve n Vn]T 式5.10

分别为载体东向及北向的位置,Ve、Vn分别是车辆东向及北向的速度。由于GPS定位数据中含有的相关噪声不能通过普通的卡尔曼滤波来进行补偿,因此,将GPS无偿作为状态变量的一部分,通过扩展的卡尔曼滤波算法来不差GPS导航数据中得到相关误差,从而达到提高GPS定位精度的目的。

子滤波器1使用卡尔曼滤波器对GPS数据进行滤波处理,可得递推方程如下:

基于C++ 实现GPS和INS组合导航系统【100010363】_第16张图片

式 表明,在GPS/INS组合导航系统中,如果某一个子滤波器的状态估计精度高,则主滤波器在对该子滤波器输出的利用权重就大,反之对子滤波器的输出的利用权重就小。

这种滤波器结构的各子滤波器独立滤波,没有反馈作用带来的相互影响,能够提供最大的系统容错性能,而且没有重置减少了主滤波器到子滤波器的反馈信息,因此数据计算量下降,同时,由于没有反馈信息,使子滤波器的估计精度属于常规水平。

6.4 本章小结

本章主要介绍了卡尔曼滤波器工作原理。介绍了联邦式卡尔曼滤波器在组合导航系统中的应用。

七、总结和展望

本文主要介绍了一个GPS/INS组合导航系统的软硬件平台的设计和建立。本组合导航系统主要分为两个部分,分别是数据采集部分和数据处理部分。数据采集模块以ATmega128芯片为核心,搭建起了相应的软硬件平台,负责GPS导航信息和INS导航信息的采集。数据处理模块以S3C2440的ARM9芯片和嵌入式Linux系统为核心,搭建了相应的硬件平台,主要完成系统的导航数据融合和计算,以及人机交互的工作。

以后可以进一步开展的工作:

  1. 数据处理模块需要根据卡尔曼滤波算法进行导航数据的融合与运算,需要强大的计算能力,DSP比较擅长于密集的计算。数据处理模块同时也需要运行一个嵌入式的操作系统,并负责和用户的交互,而这些是ARM所擅长。可以考虑设计一个DSP+ARM的平台,DSP主要负责算法的处理,而ARM负责与人机交互和任务的调度等工作。

  2. 本次课题将精力主要放在了软硬件平台的设计上,没有对卡尔曼滤波算法进行较为深入的研究。下一步可以对卡尔曼滤波算法进行深入的研究,研究、如何提高算法的执行效率,如何进一步提高导航的精度。

  3. 在GPS/INS的组合方式上,本课题没有选择捷联式组合。捷联式组合导航系统的应用越来越广泛,并且在导航精度上较而言优势很明显。可以考虑在组合方式上采用捷联式组合。

♻️ 资源

基于C++ 实现GPS和INS组合导航系统【100010363】_第17张图片

大小: 6.25MB
➡️ 资源下载:https://download.csdn.net/download/s1t16/87368169

你可能感兴趣的:(课程设计,人工智能,物联网,算法)