卫星导航定位算法与程序设计_单点定位程序流程培训讲学
- 格式:doc
- 大小:183.00 KB
- 文档页数:6
《卫星导航定位算法与程序设计》课程常用参数和常用公式一览编制人:刘晖最后更新:2010年11月26日1、常用参考框架的几何和物理参数1.1 ITRFyy 主要的大地测量常数长半轴a=6.3781366×106m;地球引力常数(含大气层)GM=3.986004418×1014 m3/s2;地球动力因子J2=1.0826359×10-3;地球自转角速度ω=7.292115×10-5 rad/s。
扁率1/f =298.25642;椭球正常重力位U0=6.26368560×107 m2/s2;γ=9.7803278 m/s2;赤道正常重力e光速c=2.99792458×108 m/s。
1.2 GTRF主要的大地测量常数长半轴a=6.37813655×106 m;地球引力常数GM=3.986004415×1014 m3/s2;地球动力因子J2=1.0826267×10-3;扁率1/f =298.25769。
1.3 WGS84(Gwwww)主要的大地测量常数长半轴a=6.3781370×106 m;地球引力常数(含大气层)GM=3.986004418×1014 m3/s2;地球自转角速度ω=7.292115×10-5 rad/s。
扁率1/f =298.257223563;椭球正常重力位U0=62636860.8497 m2/s2;γ=9.7803267714m/s2;赤道正常重力e短半轴b=6356752.3142m;引力位二阶谐系数2,0C=-484.16685×10-6;第一偏心率平方2e=0.00669437999013;e'=0.006739496742227。
第二偏心率平方21.4 PZ90 主要的大地测量常数长半轴a=6.378136×106m;地球引力常数GM=3.9860044×1014 m3/s2;fM=3.5×108 m3/s2;地球大气引力常数a地球自转角速度ω=7.292115×10-5 rad/s。
卫星导航定位算法与程序设计_单点定位程序流程(总5页)本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.MarchGPS 单点定位程序流程一、计算流程1、 读取RINEX N 文件,将所有星历放到一个列表(数组)ephlst 中。
2、 读取RINEX O 文件,读取一个历元观测值epoch3、数据预处理根据epoch 中的卫星号和历元时刻R T 在ephlst 查找相应的卫星星历, 准则3600.0R T TOE -<s 。
4、程序初始化,置测站概略位置为r X ,接收机钟差初值r dt 。
000r r r X X Y X cdt Z cdt ⎡⎤⎢⎥⎡⎤⎢⎥==⎢⎥⎢⎥⎣⎦⎢⎥⎣⎦第一次迭代,取000000X ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦ 5、 选择epoch 中一颗卫星i S 观测值,设其伪距为i S ρ 6、计算卫星i S 的信号发射的概略时刻i s T 方法如下:a) 卫星i S 的信号传播时间:0/i i i S S S r c dt dt τρ=-+;i S dt 为卫星钟差,需要进行相对论改正;b) 卫星i S 的信号发射时刻:0i i S S R T T τ=-; c) 卫星i S 在i S T 时刻的位置()()i i iiiS iT S S S S S T X T X Y Z =;d) 对卫星位置()i i S S X T 进行地球自转改正,得到()ii S S w X T ; e) 根据()i i S S w X T 和测站概略位置r X 计算卫星和测站的几何距离i S Rf) 根据几何距离i S R 求信号传播时间1/i i S S R c τ=。
g) 如果10710i i S S ττ--< ,则退出迭代。
11i i S S R T T τ=-即为卫星信号发射时刻。
h) 否则01i i S S ττ= ,回带到b)进行迭代。
GPS 单点定位程序流程、计算流程读取RINEX N 文件,将所有星历放到一个列表(数组) ephlst 中。
数据预处理根据epoch 中的卫星号和历元时刻T R 在ephlst 查找相应的卫星星历,1、 2、 读取RINEX 以件,读取一个历元观测值epoch3、 4、 准则T R TOE3600.0s 。
程序初始化,置测站概略位置为X r ,接收机钟差初值dt r 。
X oX 0 X YdtZ 第一次迭代,取X 。
o cdt r 00 05、选择epoch 中一颗卫星S i 观测值,设其伪距为 S6、计算卫星§的信号发射的概略时刻T*方法如下:a )卫星S i 的信号传播时间:0S Si / c dt r dt Si ;dt Si 为卫星钟差,需要进行相对论改正;b )卫星S i 的信号发射时刻:T S T RSi;c )卫星S i在T Si 时刻的位置X ST SiX SY SiZ Sid )对卫星位置X Si T Si 进行地球自转改正,得到Xje )根据X W i T Si 和测站概略位置X r 计算卫星和测站的几何距离 R Sf )根据几何距离R Si 求信号传播时间IS R S /cg ) 如果/ o S 10 7,则退出迭代。
T 1SiT R :即为卫星信号发射时刻h )否则0siSi,回带到b )进行迭代。
7、 求卫星§方向余弦V V siVW S77Ss入入 I S 丫丫 sZZ s At o'S —,b iS ,炬’S,b ; 1R iR S R S8、 求卫星S 在观测方程式中的余数项:其中:Si ——卫星S j 的伪距观测值;R Si ——卫星S 到测站的几何距离;c dt S 以米表示的卫星S i 的钟差;d trop ——对流层延迟改正量,单位米,用简化的hopfield 模型计算;diono ——电离层延迟改正量,单位米,采用无电离层伪距组合观测值时,此项为 0;D RTCM ——对伪距的差分改正值,此处为 0;10、 重复第6— 9步,计算每颗卫星的系数和余数项11、 将所有卫星的系数组成误差方程,以x,y,z,cdt r为未知参数进行求解,形式应该是:AX Lb S 0 t 1So 玻。
卫星导航定位算法与程序设计_常用参数和公式讲解卫星导航定位算法是通过接收多颗卫星发出的信号来确定接收器的位置的算法。
常用的卫星导航系统有美国的全球定位系统(GPS)、俄罗斯的格洛纳斯系统和欧洲的伽利略系统等。
下面将讲解卫星导航定位算法中的常用参数和公式。
1.GPS系统参数GPS系统中的常用参数包括信号传播速度、卫星时钟频率、卫星位置、接收机时钟误差等。
信号传播速度是指电磁波在真空中传播的速度,约为3×10^8米/秒。
卫星时钟频率是指卫星发射信号的频率,它与卫星位置和传播速度有关。
卫星位置是指卫星在天空中的位置坐标,它是通过星历数据确定的。
接收机时钟误差是指接收器时钟与它所处的卫星系统时钟之间的差异。
2.GPS接收机参数GPS接收机中的常用参数包括接收机观测量、接收机时钟和接收机位置等。
接收机观测量是指接收机接收到的卫星信号的信息,包括卫星信号的到达时间、信号强度等。
接收机时钟是指接收机内部的时钟,它用于测量到达时间和计算位置信息。
接收机位置是指接收机的地理位置坐标,它是待求解的定位参数,通过卫星信号的到达时间和卫星位置计算得出。
3.定位算法卫星导航定位算法主要包括距离测量和位置计算两个步骤。
距离测量是通过测量接收机与卫星之间的距离,从而确定接收机与卫星的空间几何关系。
常用的距离测量方法有伪距测量和载波相位测量两种。
伪距测量是通过测量卫星信号的传播时间来计算距离,利用的是卫星信号中的导航消息和接收机观测量。
载波相位测量是通过测量卫星信号的相位差来计算距离,具有更高的精度,但需要更复杂的算法和硬件支持。
位置计算是根据距离测量结果和卫星位置信息,利用三角测量原理来计算接收机的位置。
常用的位置计算方法有单点定位和差分定位两种。
单点定位是通过接收机与至少四颗卫星之间的距离测量结果,利用三边测量原理计算接收机的位置。
差分定位是在单点定位的基础上,利用额外的参考站测量数据对接收机的位置进行修正,提高定位精度。
卫星导航定位算法与程序设计讲义导航定位是指通过卫星导航系统获取位置信息的过程。
在卫星导航系统中,定位算法和程序设计起着至关重要的作用。
本讲义将介绍卫星导航定位算法的基本原理和程序设计的要点。
一、卫星导航定位算法基本原理接收信号:接收器接收到卫星发射的信号,通过测量信号的到达时间来计算接收器与卫星之间的距离。
由于信号传播速度是已知的,所以可以通过测量时间的差异来计算距离。
伪距测量:伪距是指信号从卫星发射到接收器接收到的时间乘以光速。
接收器以测量接收信号的到达时间为基础,通过乘以光速得到信号传播的距离。
位置计算:通过接收到的多颗卫星的伪距测量结果,结合卫星的位置和钟差等信息,使用三角定位或者加权最小二乘法等方法来计算出接收器的位置。
二、卫星导航定位程序设计要点接收信号的处理:接收信号的处理包括信号接收和时间测量两个方面。
在接收信号的过程中,需要考虑信号的衰减和干扰等问题,可以通过信号处理算法来提高信号的质量。
时间测量可以使用硬件设备或者操作系统提供的时间戳功能来实现。
伪距测量的计算:伪距测量的计算需要根据接收到的信号和接收器的时钟同步信息来计算出信号传播的时间,并乘以光速得到伪距。
在计算过程中需要考虑钟差和多径干扰等因素,并使用滤波算法来提高测量的准确性。
位置计算的实现:位置计算的实现可以使用三角定位或者加权最小二乘法等方法。
在使用三角定位时,需要知道至少三颗卫星的位置信息和伪距测量结果。
在使用加权最小二乘法时,可以通过考虑误差权重来提高位置计算的精度。
三、总结卫星导航定位算法和程序设计是卫星导航系统的核心部分。
通过了解卫星导航定位算法的基本原理和程序设计的要点,可以更好地理解和实现卫星导航定位功能。
同时,还可以通过改进算法和程序设计来提高定位的准确性和稳定性。
卫星导航定位算法与程序设计_单点定位程序流程单点定位是卫星导航中最基本的应用,其基本思路是通过接收多颗卫星发送的信号,计算出接收点的位置。
下面是单点定位的程序流程,包括信号接收、时间同步、伪距测量、卫星位置计算和接收点位置计算等过程。
1.信号接收首先,需要接收卫星发送的信号。
接收设备通常包括天线、前端放大器和接收机等部分。
天线用于接收来自卫星的信号,并将其转化为电信号。
前端放大器用于增强信号的强度。
接收机用于解调信号,并转化为数字信号。
2.时间同步接收到的信号包含了卫星发射时的时间信息。
根据信号传播的速度,可以计算信号传播的时间,从而获取卫星发送信号的时刻。
由于信号传播时间非常短(大约为纳秒级别),所以需要高精度的时钟和时间同步技术来确保准确性。
3.伪距测量根据接收到的时间信息,可以计算接收点到卫星的距离,称为伪距。
计算伪距需要考虑信号传播的时间以及信号在大气中的传播速度变化等因素。
此外,由于信号在传播过程中会受到噪声、多径效应等干扰,需要进行滤波和信号处理等技术来提高测量的准确性。
4.卫星位置计算卫星的位置信息是通过星历数据进行描述的。
星历数据包含了卫星的轨道参数、时刻信息等。
根据接收到的伪距数据,可以通过解算的方法计算出卫星的位置。
解算的方法有很多种,常用的有最小二乘法、扩展卡尔曼滤波等。
通过解算,可以得到每颗卫星的位置坐标。
5.接收点位置计算根据接收到多颗卫星的位置信息和伪距数据,可以通过三角测量的方法计算出接收点的位置坐标。
三角测量的原理是利用多个已知位置的点,通过测量到这些点的距离,计算出目标点的位置。
根据接收点到不同卫星的伪距数据,可以得到多个方程,通过求解这些方程可以计算出接收点的坐标。
6.坐标转换和精度提高计算出接收点的坐标后,可以进行坐标转换,将其转化为地理坐标或其他坐标系。
此外,由于测量误差和卫星位置误差等因素,单点定位的精度一般较低。
为了提高精度,可以采用差分定位、精密定位等方法。
《卫星导航定位算法与程序设计》课程常用参数和常用公式一览编制人:刘晖最后更新:2010年11月26日1、常用参考框架的几何和物理参数1.1 ITRFyy 主要的大地测量常数长半轴a=6.3781366×106m;地球引力常数(含大气层)GM=3.986004418×1014 m3/s2;地球动力因子J2=1.0826359×10-3;地球自转角速度ω=7.292115×10-5 rad/s。
扁率1/f =298.25642;椭球正常重力位U0=6.26368560×107 m2/s2;γ=9.7803278 m/s2;赤道正常重力e光速c=2.99792458×108 m/s。
1.2 GTRF主要的大地测量常数长半轴a=6.37813655×106 m;地球引力常数GM=3.986004415×1014 m3/s2;地球动力因子J2=1.0826267×10-3;扁率1/f =298.25769。
1.3 WGS84(Gwwww)主要的大地测量常数长半轴a=6.3781370×106 m;地球引力常数(含大气层)GM=3.986004418×1014 m3/s2;地球自转角速度ω=7.292115×10-5 rad/s。
扁率1/f =298.257223563;椭球正常重力位U0=62636860.8497 m2/s2;γ=9.7803267714m/s2;赤道正常重力e短半轴b=6356752.3142m;引力位二阶谐系数2,0C=-484.16685×10-6;第一偏心率平方2e=0.00669437999013;e'=0.006739496742227。
第二偏心率平方21.4 PZ90 主要的大地测量常数长半轴a=6.378136×106m;地球引力常数GM=3.9860044×1014 m3/s2;fM=3.5×108 m3/s2;地球大气引力常数a地球自转角速度ω=7.292115×10-5 rad/s。
卫星导航定位算法与程序设计卫星导航定位算法与程序设计主讲:刘晖副教授武汉大学卫星导航定位技术研究中心课程讲授次序中的位置建立起软件设计的宏观概念(战略层次); 巩固软件设计方法的知识; 训练从设计到实现的工作流程;软件设计相关编程语言相关掌握软件编程平台的使用(战术层次); 培养良好的编程习惯编程技巧的训练定位算法相关巩固卫星定位导航算法知识;软件设计和编程能力的实际应用;进一步了解卫星定位导航的发展第二讲软件工程方法概述内容软件工程方法概述概述传统方法――瀑布模型传统方法――瀑布模型面向对象的方法――快速原型法面向对象的方法――快速原型法两种方法的比较及其在软件开发中的作用传统方法软件设计概述面向对象的设计方法概述软件建模语言概述软件工程方法概述软件工程一般要经过需求分析、设计、编码、测试、运行维护等几个阶段传统的软件工程方法采用的是瀑布模型,即顺序模型现代软件工程一般采用面向对象的软件工程方法瀑布模型(线形顺序模型)线形顺序模型)定义阶段可行性研究与计划需求分析开发阶段维护阶段设计编码测试运行维护6按照传统瀑布模型开发软件的特点1.阶段间具有顺序性和依赖性。
1.阶段间具有顺序性和依赖性。
2.推迟实现的观点。
2.推迟实现的观点。
3.每个阶段必须完成规定的文档;3.每个阶段必须完成规定的文档;每个阶段结束前完成文档审查,每个阶段结束前完成文档审查,及早改正错误。
7 面向对象的软件工程方法对传统软件工程的改进:快速原型法(试用-反馈-修改,多次反复) 面向对象的软件工程:面向对象的方法(基本概念:对象、类、消息、继承、多态性、封装)优点:思维一致、稳定性好、可重用性好、可维护性好原型模型(快速原型法)原型模型(快速原型法)听取用户意见建造/修改原型用户测试运行原型原型范型9采用原型模型的软件生存周期分析定义系统需求生成原型原型化系统设计运行和维护含原型化的软件生存期测试编码程序设计10方法比较两种途径并不是相互排斥的,相反,它们是相互促进相互补充的。
卫星导航定位算法与程序设计_常用参数和公式1.常用参数a.卫星位置参数:卫星导航系统中的卫星位置是定位算法的基础。
通过测量卫星与接收机之间的距离和时间来确定卫星位置。
常用参数包括卫星的位置坐标、卫星的高度角。
b.接收机位置参数:接收机位置是定位算法的另一个重要参数。
接收机的位置可以通过卫星和地面测量设备测量得到。
常用参数包括接收机的位置坐标、接收机的高度。
c.时间参数:时间也是定位算法中的关键参数。
接收机和卫星之间的时间差可以用来计算距离和速度。
常用参数包括接收机时间、卫星时间。
2.常用公式a.距离公式:距离是定位算法中的重要计算量。
可以使用众多的距离计算公式来计算接收机和卫星之间的距离。
最常用的距离公式是通过信号传播速度和时间差来计算的。
公式如下:距离=传播速度*时间差b.速度公式:速度是定位算法中的另一个重要计算量。
可以使用卫星和接收机之间的多组距离和时间差来计算速度。
最常用的速度公式基于速度是距离对时间的导数的事实。
速度=(距离1-距离2)/(时间1-时间2)c.定位公式:定位是定位算法的最终目标。
定位公式是通过卫星位置参数、接收机位置参数和距离参数来计算接收机的位置。
最常用的定位公式是三角法和多边形法。
公式如下:定位结果=三角法(卫星1位置,卫星2位置,卫星3位置,距离1,距离2,距离3)d.距离修正公式:由于信号传播过程中存在着多种误差,如系统误差、大气延迟等,需要对测量得到的距离进行修正。
最常用的修正公式是通过卫星与接收机之间的时间差、大气延迟和信号传播速度对距离进行修正。
公式如下:真实距离=测量距离+大气延迟-传播速度*时间差以上是卫星导航定位算法和程序设计中常用的一些参数和公式。
这些参数和公式是定位算法的基础,通过合理选择和使用这些参数和公式,可以有效地实现卫星导航定位算法,并得到准确的定位结果。
卫星导航定位算法与程序设计_单点定位程
序流程
GPS 单点定位程序流程
一、计算流程
1、 读取RINEX N 文件,将所有星历放到一个列表(数组)ephlst 中。
2、 读取RINEX O 文件,读取一个历元观测值epoch
3、
数据预处理
根据epoch 中的卫星号和历元时刻R T 在ephlst 查找相应的卫星星历, 准则3600.0R T TOE -<s 。
4、
程序初始化,置测站概略位置为r X ,接收机钟差初值r dt 。
000r r r X X Y X cdt Z cdt ⎡⎤⎢⎥
⎡⎤⎢⎥
==⎢⎥⎢⎥
⎣⎦⎢⎥
⎣⎦第一次迭代,取000000X ⎡⎤
⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦ 5、 选择epoch 中一颗卫星i S 观测值,设其伪距为i S ρ 6、
计算卫星i S 的信号发射的概略时刻i s T 方法如下:
a) 卫星i S 的信号传播时间:0/i i i S S S r c dt dt τρ=-+;i S dt 为卫星钟差,需要进行
相对论改正;
b) 卫星i S 的信号发射时刻:0i i S S R T T τ=-; c) 卫星i S 在i S T 时刻的位置()()
i i i
i
i
S i
T S S S S S T X T X Y Z =;
d) 对卫星位置()i i S S X T 进行地球自转改正,得到()
i
i S S w X T ; e) 根据()
i i S S w X T 和测站概略位置r X 计算卫星和测站的几何距离i S R
f) 根据几何距离i S R 求信号传播时间1/i i S S R c τ=。
g) 如果10710i i S S ττ--< ,则退出迭代。
11i i S S R T T τ=-即为卫星信号发射时刻。
h) 否则01i i S S ττ= ,回带到b)进行迭代。
7、
求卫星i S 方向余弦
()()()01
2
3
,,,1i
i
i
i
i
i
i
i
i
i
S S S S S S S S S S X X Y Y Z Z b b
b
b
R
R
R
---====
8、
求卫星i S 在观测方程式中的余数项:
i i i i S S S S trop iono RTCM l R c dt d d D ρ=-+⋅--+
其中:
hopfield 0i
i i S i S i S i trop iono RTCM S R S c dt S d d D ρ⋅——卫星的伪距观测值;
——卫星到测站的几何距离;——以米表示的卫星的钟差;
——对流层延迟改正量,单位米,用简化的模型计算;
——电离层延迟改正量,单位米,采用无电离层伪距组合观测值时,此项为;——对伪距的差分改正值,此处为0;
9、
选择epoch 中下一颗卫星j S 观测值,设其伪距为j S
ρ
10、 重复第6—9步,计算每颗卫星的系数和余数项
11、 将所有卫星的系数组成误差方程,以(),,,r x y z cdt 为未知参数进行求解,
形式应该是:AX L =
[]
()
0001110
1
0120120121110,1,,1i i i i S S S S S S T
S S S S S S b b b b b b A X x
y
z cdt L l l l b b b i svnum ⎡⎤⎢⎥⎢⎥⎡⎤===⎣
⎦
⎢⎥⎢⎥⎢⎥⎣⎦=-
12、 求解法方程()()1ˆT T X
A PA A PL -=,求出定位结果 0000ˆˆˆi r r i X X x
Y Y y X Z Z z cdt cdt cdt ⎡⎤+⎡⎤⎢⎥
⎢⎥+⎢⎥⎢
⎥==⎢⎥⎢⎥+⎢
⎥⎢⎥+⎢⎥⎣⎦⎣⎦
13、 与0X 进行比较,判断位置差值,
a) 如果各分量差值>0.001m ,则令0i X X =,返回第6步继续迭代计算。
b) 若小于则退出迭代。
14、 输出该历元定位结果。
15、 继续下一历元计算,下一历元的坐标初始值= 上一历元的定位结果。
16、 返回2,直到全部历元计算完毕。
二、程序流程图
2.1总体流程图
2.2 卫星信号发射时刻迭代的流程图。