GPS广播星历计算卫星位置和速度

合集下载

读取广播星历文件计算卫星位置及显示读取原始观测文件实现单点定位

读取广播星历文件计算卫星位置及显示读取原始观测文件实现单点定位

读取广播星历文件计算卫星位置及显示读取原始观测文件实现单点定位单点定位是一种基本的卫星定位方法,通过读取广播星历文件和原始观测文件,可以计算出卫星的位置,并进行显示。

首先,我们需要读取广播星历文件。

广播星历文件中包含了卫星的轨道信息,可以通过它来计算卫星的位置。

广播星历文件通常是以文本格式存储的,包含了每颗卫星的编号、时间、位置、速度等信息。

我们需要逐行读取文件,并将每颗卫星的信息提取出来。

1.打开星历文件,使用文件流读取文件内容。

2.逐行读取文件内容,将每行数据存储为字符串。

3.提取有用的信息,例如卫星编号、时间、位置、速度等。

4.将提取的信息存储到数据结构中,例如列表或字典,便于后续计算和显示。

在读取星历文件时需要注意的是,星历文件可能是以不同格式存储的,例如SP3格式、RINEX格式等,需要根据实际情况选择相应的解析方法。

接下来,我们需要读取原始观测文件。

原始观测文件包含了接收机对卫星信号的观测结果,通常包括时间、卫星编号、接收机接收到的卫星信号信息等。

通过观测文件,我们可以得到接收机与卫星之间的距离,从而实现单点定位。

读取原始观测文件的大致步骤如下:1.打开观测文件,使用文件流读取文件内容。

2.逐行读取文件内容,将每行数据存储为字符串。

3.提取有用的信息,例如时间、卫星编号、观测结果等。

4.根据卫星编号和广播星历文件中的数据,计算出接收机与卫星之间的距离。

在读取观测文件时需要注意的是,观测文件也可能是以不同格式存储的,例如RINEX格式、UBX格式等,需要根据实际情况选择相应的解析方法。

计算卫星位置的方法有多种,常用的方法包括伪距定位(Pseudorange Positioning)、载波相位定位(Carrier Phase Positioning)等。

伪距定位是一种简单、常用的卫星定位方法,通过接收机和卫星之间的距离差(伪距)计算出接收机的位置。

单点定位的大致步骤如下:1.获取接收机的位置,可以通过其他方法获得,例如使用全球定位系统(GPS)接收机或输入当前位置坐标。

从广播星历计算卫星位置

从广播星历计算卫星位置

从广播星历计算卫星位置: 1. 计算卫星运动的平均角速度n首先根据广播星历中给出的参数A 计算出参考时刻TOE 的平均角速度0n :30)(A GM n =,式中,GM 为万有引力常数G 与地球总质量M 之积。

然后根据广播星历中给出的摄动参数n ∆计算观测时刻卫星的平均角速度n :n n n ∆+=0。

2. 计算观测瞬间卫星的平近点角M :)(0TOE t n M M -+=式中,0M 为参考时刻TOE 时的平近点角,由广播星历给出。

3. 计算偏近点角E :E e M E sin +=解上述方程可用迭代法或微分方程改正法。

4. 计算真近点角f⎪⎪⎩⎪⎪⎨⎧--=--=E e E e f Ee e Ef cos 1sin 1sin cos 1cos cos 2式中,e 为卫星轨道的偏心率,由广播星历给出。

5. 计算升交距角u ':f u +='ω式中,ω为近地点角距,由广播星历给出。

6. 计算摄动改正项i r u δδδ,,:广播星历中给出了下列6个摄动参数:is ic rs rc us uc C C C C C C ,,,,,,据此可以求出由于2J 项而引起的升交距角u 的摄动改正项u δ、卫星矢径r 的摄动改正项u δ和卫星轨道倾角i 的摄动改正项i δ。

计算公式如下:⎪⎩⎪⎨⎧'+'='+'='+'=u C u C u C u C u C u C is ic irs rc r us uc u 2sin 2cos 2sin 2cos 2sin 2cos δδδ 7. 计算0,,i r u ''进行摄动改正⎪⎪⎩⎪⎪⎨⎧-++=+-=+'=+'=)()cos 1(0TOE t dt di i i E a r r u u i r r u δδδδ 式中:a 为卫星轨道的长半径,2)(A a =,0i 为TOE 时刻的轨道倾角,由广播星历中的开普勒六参数给出,dtdi为i 的变化率,由广播星历中的摄动九参数给出。

GPS卫星的坐标计算

GPS卫星的坐标计算

第三章GPS 卫星的坐标计算在用GPS 信号进行导航定位以及制订观测计划时,都必须已知GPS 卫星在空间的瞬间位置。

卫星位置的计算是根据卫星导航电文所提供的轨道参数按一定的公式计算的。

3.1卫星运动的轨道参数3.1.1基本概念 1.作用在卫星上力卫星受的作用力主要有:地球对卫星的引力,太阳、月亮对卫星的引力,大气阻力,大气光压,地球潮汐力等。

中心力:假设地球为匀质球体的引力(质量集中于球体的中心),即地球的中心引力,它决定卫星运动的基本规律和特征,决定卫星轨道,是分析卫星实际轨道的基础。

此种理想状态时卫星的运动称为无摄运动,卫星的轨道称为无摄轨道。

摄动力:也称非中心力,包括地球非球形对称的作用力、日月引力、大气阻力、大气光压、地球潮汐力等。

摄动力使卫星运动产生一些小的附加变化而偏离理想轨道,同时这种偏离量的大小随时间而改变。

此种状态时卫星的运动称为受摄运动,卫星的轨道称为受摄轨道。

虽然作用在卫星上的力很多,但这些力的大小却相差很悬殊。

如果将地球引力当作1的话,其它作用力均小于10-5。

2.二体问题研究两个质点在万有引力作用下的运动规律问题称为二体问题。

3.卫星轨道和卫星轨道参数卫星在空间运行的轨迹称为卫星轨道。

描述卫星轨道状态和位置的参数称为轨道参数。

3.1.2卫星运动的开普勒定律 (1)开普勒第一定律卫星运行的轨道为一椭圆,该椭圆的一个焦点与地球质心重合。

此定律阐明了卫星运行轨道的基本形态及其与地心的关系。

由万有引力定律可得卫星绕地球质心运动的轨道方程。

r 为卫星的地心距离,as 为开普勒椭圆的长半径,es 为开普勒椭圆的偏心率;fs 为真近点角,它描述了任意时刻卫星在轨道上相对近地点的位置,是时间的函数。

(2)开普勒第二定律卫星的地心向径在单位时间内所扫过的面积相等。

表明卫星在椭圆轨道上的运行速度是不断变化的,在近地点处速度最大,在远地点处速度最小。

近地点远地点ss s s f e e a r cos 1)1(2+-=(3卫星运行周期的平方与轨道椭圆长半径的立方之比为一常量,等于GM 的倒数。

GPS广播星历计算卫星位置和速度

GPS广播星历计算卫星位置和速度

GPS广播星历计算卫星位置和速度GPS(全球定位系统)是一种通过卫星定位的技术,它利用卫星发射的广播星历来计算卫星的位置和速度。

星历数据是需要事先计算和上传给卫星的。

在GPS系统中,有31颗运行在中轨道上的卫星,其中至少有24颗是激活状态的。

这些卫星分布在不同的轨道上,每个轨道上约有4颗卫星。

卫星轨道分为6个球形环,每个环的倾角不同,倾角越大表示距离地球赤道越远。

每颗GPS卫星都具有精确的时钟,它们通过广播信号发送自身的位置和速度信息。

这些广播信号被接收器接收后,通过计算接收时间差来确定卫星与接收器之间的距离。

利用三个以上的卫星的广播信号,可以计算出接收器所在的位置。

星历数据是卫星的位置和速度信息,它用于计算接收器附近的卫星位置和速度。

星历数据包括每颗卫星的轨道参数(半长轴、偏心率、轨道倾角、升交点赤经、近地点幅角、运动角频率)、卫星钟差和卫星偏差改正参数等。

星历数据的计算是一个复杂的过程,需要考虑多个因素。

首先,需要从测量数据中估算卫星位置和速度。

接着,根据卫星轨道的数学模型和测量数据,通过插值和拟合等算法计算出卫星的位置和速度数据。

最后,通过计算误差和改正项进行数据校正。

这些校正项包括大气延迟、钟差、轨道摄动等。

星历数据的计算过程是集中在地面控制站完成的,然后通过双向通信链路上传给卫星。

卫星接收到星历数据后,会将其存储在内部存储器中,并通过广播信号发送给地面的接收器。

在接收器接收到卫星广播信号后,会利用星历数据来计算卫星与接收器之间的距离。

首先,接收器会粗略估算卫星位置,然后通过星历数据进行细化校正,最终得到精确的卫星位置和速度信息。

利用卫星位置和速度信息,接收器可以计算出自身的位置。

通过接收多个卫星的广播信号,接收器可以确定自身在地球的经度、纬度和海拔高度。

在接收器上,还可以通过计算卫星位置的变化来确定速度。

通过不同时刻测量卫星位置的变化,可以计算出接收器的速度矢量。

总结起来,GPS广播星历是用于计算卫星位置和速度的关键数据。

GPS(5):GPS星历计算

GPS(5):GPS星历计算

1.2、广播星历文件格式(2)

• • • • • • • • • • • • • • • •
+--------------------------------+--------------------------------------------------------+-----------------+ *|ION ALPHA | Ionosphere parameters A0-A3 of almanac | 2X,4D12.4 |* | | (page 18 of subframe 4) | | +--------------------------------+---------------------------------------------------------+----------------+ *|ION BETA | Ionosphere parameters B0-B3 of almanac | 2X,4D12.4 |* +---------------------------------+--------------------------------------------------------+----------------+ *|DELTA-UTC: A0,A1,T,W | Almanac parameters to compute time in UTC | 3X,2D19.12, |* | | (page 18 of subframe 4) | 2I9 | | | A0,A1: terms of polynomial | | | | T : reference time for UTC data | *) || | | W : UTC reference week number. | | | | Continuous number, not mod(1024)! | | +---------------------------------+-------------------------------------------------------+-----------------+ *|LEAP SECONDS | Delta time due to leap seconds | I6 |* +--------------------------------+--------------------------------------------------------+-----------------+ |END OF HEADER | Last record in the header section. | 60X | +--------------------------------+--------------------------------------------------------+-----------------+

GPS广播星历参数说明

GPS广播星历参数说明
GPS广播星历参数说明
序号
符号
名称
单位
1
卫星PRN号
卫星编号
---
2

年份后两位
a
3

月份
mon
4

日期
d
5


h6Leabharlann 分分min
7


s
8
卫星钟差常数项
s
9
卫星钟差漂移项
s/s
10
卫星钟差漂移速率项
s/s2
11
星历数据的年龄
12
在星历参考时刻 在轨道径向方向上周期改正正弦项的振幅
m
13
平近点角的长期变化(近地点参数)
rad/s
28
Code on channel
29
GPS星期数
30
P data flag
31
本广播星历精度指标
m
32
卫星是否健康指标
33
电离层群延迟改正参数
s
34
卫星钟数据年龄
35
信息传送时间(与接收机对接收到的卫星信号解码有关)
s
rad/s
14
参考时刻的平近点角
rad
15
在星历参考时刻 在轨道延迹方向上周期改正余弦项的振幅
rad
16
偏心率
17
在星历参考时刻 在轨道延迹方向上周期改正正弦项的振幅
rad
18
长半轴的平方根
m1/2
19
星历参考时刻(星期中的秒数)
s
20
在星历参考时刻 轨道倾角(近似于法向)周期改正余弦项的振幅
rad
21

广播星历的名词解释

广播星历的名词解释

广播星历的名词解释广播星历是一种用于卫星导航系统的重要数据源,广泛应用于全球定位系统(GPS)和其他卫星导航系统中。

它提供了卫星位置、速度以及时间等信息,帮助用户确定其精确的地理位置和导航方向。

在本文中,我们将详细解释广播星历的含义、作用以及相关的技术原理,以帮助读者更好地理解广播星历的重要性。

一、广播星历的定义广播星历指的是卫星导航系统通过无线电信号将卫星的轨道参数等信息广播到用户终端,以便用户准确进行定位和导航的一种数据格式。

它包含了卫星编号、卫星位置、速度、钟差等信息,以及其他一些校验和控制数据。

用户通过接收卫星发送的广播星历数据,根据其中的信息进行计算,从而确定其准确的地理位置。

二、广播星历的作用广播星历在卫星导航系统中起着至关重要的作用。

首先,它是用户终端确定自身位置所必需的数据源。

用户终端通过接收到的广播星历数据,根据卫星的位置和其他参数,进行复杂的计算和推算,从而确定自身的地理位置。

其次,广播星历还提供了卫星的速度和时间等信息,为用户终端提供了更为准确和可靠的导航指引。

三、广播星历的技术原理广播星历的传输技术主要借助无线电信号,通过卫星发射到空中,由用户设备接收并解码。

卫星导航系统通过卫星上搭载的精密钟表不断生成星历数据,并定期对其进行更新。

然后,系统将更新后的星历数据编码成特定格式,通过卫星的无线电信号进行广播。

用户设备接收到信号后,通过信号解码器将广播星历数据还原,并基于其中的信息进行位置计算。

四、广播星历的特点广播星历具有以下几个特点。

首先,广播星历的数据是间接测量而得,其定位精度受到卫星本身定位误差、卫星钟差以及传输和接收误差等多种因素的影响。

因此,在实际应用中,需要对广播星历数据进行相应的纠正和校准。

其次,广播星历具有广播性质,任何连接到卫星导航系统的用户终端都可以接收到相同的广播星历数据,这意味着无需与地面的信息中心进行实时的数据交换。

最后,广播星历具有一定的延迟性,即卫星发送的星历数据需要经过一定的传输时间才能到达用户终端,因此,在位置计算时需要考虑这种延迟。

GPS考试名词解释简答

GPS考试名词解释简答

1卫星星历:是描述卫星运动轨道的信息,是一组对应某一时刻的轨道根数及其变率。

根据卫星星历可以计算出任时刻的卫星位置及其速度,GPS卫星星历分为预报星历和后处理星历。

2广播星历:是定位卫星发播的无线电信号上载有预报一定时间内卫星根数的电文信息。

3导航电文:导航信息的二进制数据码。

包括卫星星历、时钟改正数、卫星工作状态、轨道摄动改正、大气折射改正等信息。

4无摄运动:仅考虑地球质心引力作用的卫星运动称为无摄运动。

5受摄运动:在摄动力的作用下的卫星运动称为受摄运动。

6载波重建:重建载波相位是输入的(经多普勒位移的)GPS载波相位与接收仪产生的(名为固定的)参考频率相位,两者之的差。

7周跳:在GPS载波相位观测中,因卫星信号失锁引起的相位整周跳变。

8章动:指真北天极绕平北天极所做的顺时针椭圆运动。

9重复基线闭合差:当某条基线被两个或多个时段观测时,就构成了所谓的重复基线闭合差条件。

(不同观测时段,对于同一条基线的观测结果就是重复基线)10世界时:以平子夜为0时起算的格林威治平太阳时UT。

11岁差:地球在绕太阳运行时,地球自转轴的方向在天球上缓慢移动,春分点在黄道上随之缓慢移动的现象。

12黄道:地球绕太阳公转的轨道平面称为黄道面,它与天球相交的大圆称为黄道。

它就是当地球绕太阳公转时,观测者所看到的太阳在天球上运动的轨道。

13 伪距:GPS定位采用的是被动式单程测距。

它的信号发射时刻是卫星钟确定的,收到时刻则是由接收机钟确定的,这就在测定的卫星至接收机的距离中,不可避免地包含着两台钟不同步的误差影响,所以称其为伪距。

14整周未知数:指卫星信号从发射时刻到接收机接受时刻这个阶段载波的整个周数。

15升交点:指当卫星轨道平面与地球赤道平面的夹角即轨道倾角不等于零时,轨道与赤道面有两个交点,卫星由南向北飞行时的交点称为升交点。

16升交点赤经:含地轴和春分点的子午面与含地轴和升交点的子午面之间的交角等。

17真近点角:天体从近点起沿轨道运动时其向径扫过的角度。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

“GPS广播星历计算卫星位置和速度”
及“GPS伪距定位”计算试验
1.试验内容及上交成果
1.1试验内容
应用C语言按预定格式(函数、输入输出变量之名称、类型)编写“GPS广播星历计算卫星位置和速度”函数SatPos_Vel()、“GPS伪距定位”函数Positioning()。

将此两个函数组成文件F2.cpp,并包含于文件GPS_Positioning.cpp中。

编译、连接并运行文件GPS_Positioning.cpp,逐一时刻读取广播星历(Ephemeris.dat)、观测时间及伪距、卫星号(Observation.dat)信息,计算WGS84坐标系中观测时刻相应的卫星位置、速度以及载体位置,结果保存于文件Position.dat中。

1.2上交成果
磁盘文件F2.cpp、Position.dat,并存于“学号作者中文姓名”目录中。

2.函数说明
2.1星历文件读取函数
void EFileReading(Efile)
功能:读取星历文件,给星历数据结构体Ephemeris赋值。

输入变量:EFile字符串,文件名。

2.2观测数据读取函数
int ObsReading(fp_Obs,Time,Rho,Mark)
功能:从文件Observation.dat中读取某一时刻的伪距、卫星号。

读取成功函数值返回“1”,失败返回“-1”(读错,或至文件尾)。

输入变量:fp_Obs文件指针;
输出变量:Time double,时间(秒);
Rho double[12],伪距(米);
Mark int[12],卫星号,“-1”表示此通道无卫星、无伪距。

2.3最小二乘估计函数
int LeastSquareEstimation(Y,A,P,m,n,X)
功能:最小二乘方法求解观测方程Y=AX+ε,其中观测值方差阵的逆阵为P(也称为权阵),得未知参数X。

成功返回“1”,失败返回“-1”(亏秩)。

输入变量:Y double[m],观测方程自由项(米);
A double[m×n],系数阵(无量纲),按第1行第1、2……n元素,
第2行……顺序存放;
P double[m],权矩阵对角线元素,0或1(无量纲);
m int,观测值个数;
n int,未知参数个数;
输出变量:X double[n],未知参数(米)。

原理:X=(A T PA)-1A T PY
例:Y=[1,2,3,6],A=[1,0,0,0,1,0,0,0,1,1,1,1],P=[1,1,1,1],m=4,n=3。

调用LeastSquareEstimation(Y,A,P,m,n,X),求得X=[1,2,3]。

2.4计算卫星位置、速度函数
int SatPos_Vel(Num,Time,SatPos,SatVel)
功能:计算WGS84坐标系中卫星位置、速度。

成功返回“1”,失败返回“-1”(无星历)。

输入变量:Num int,卫星号;
Time double,时间(秒)。

(隐含引用全局变量Ephemeris[32],星历数据结构体)输出变量:SatPos double[3],位置(米,WGS84);
SatVel double[3],速度(米/秒,WGS84)。

2.5伪距测量定位
int Positioning(Time,Rho,Mark,Pos,dt)
功能:由单一时刻伪距计算载体位置,并保存接收机钟面时、卫星位置、速度及载体位置于定位结果文件Position.dat中。

成功返回“1”,失败返回“-1”(观测
值数量不够,亏秩)。

输入变量:Time double,伪距观测时刻接收机钟面时(秒);
Rho double[12],伪距(米);
Mark int[12],卫星号,“-1”表示此通道无信号;
输出变量:Pos double[3],载体位置(米,WGS84);
dt double,钟差(秒)。

3.全局变量说明
LightVelocity字符常量,光速(米/秒),299792458;
PI字符常量,圆周率,3.141592653589793;
MU字符常量,地球引力常数(米3秒-2),3.986005e14;
OMEGAE字符常量,地球自转角速度(弧度·秒-1),7.292115e-5;
fp_Obs文件指针,观测数据文件;
fp_Pos文件指针,位置结果文件。

Structure Eph_Str
{
Mark整型,标识,“1”有,“-1”无
wn整型,星期数
toc卫星钟差改正参考时刻(秒)
af2卫星钟差改正系数(秒/秒2)
af1(秒/秒)
af0(秒)
aode数据龄期
deltan平均角速度改正(半周/秒)
m0参考时刻平近点角(半周)
e偏心率;
roota a1/2(米1/2)
toe星历参考时刻(秒)
cic(弧度)
crc(米)
cis(弧度)
crs(米)
cuc(弧度)
cus(弧度)
omega0准升交点赤经(半周)
omega近地点角距(半周)
i0轨道倾角(半周)
omegadot升交点赤经变化率(半周/秒)
idot轨道倾角变化率(半周/秒)
}Ephemeris[32]星历数据结构体。

注:数据类型除注明整型外,其余为双精度型。

4.文件说明
4.1观测数据文件Observation.dat
Time,n伪距观测时间,卫星颗数
Rho_1,n_1伪距(米),卫星号
……
Rho_n,n_n伪距(米),卫星号
Time,n伪距观测时间,卫星颗数
……
4.2卫星星历数据文件Ephemeris.dat
svprn整数,卫星号
wn整数,星期数
……
idot轨道倾角变化率(半周/秒)
(详细说明请参见数据结构体Structure Eph_Str Ephemeris[32])svprn整数,卫星号
……
4.3位置计算结果文件Position.dat
Time伪距观测时刻(秒)
n_1,x_1,y_1,z_1,xdot_1,ydot_1,zdot_1卫星号,卫星坐标(米,WGS84),速度(米/秒)……
n_n,x_n,y_n,z_n,xdot_n,ydot_n,zdot_n卫星号,卫星坐标(米,WGS84),速度(米/秒)x,y,z载体坐标(米,WGS84)
Time伪距观测时刻(秒)
……
4.4GPS_Positioning.cpp
作为主函数,调用Parameter.h、Function.h、F1.cpp、F2.cpp。

逐一时刻读取广播星历、伪距等信息,计算卫星位置、速度及载体位置。

4.5Parameter.h
字符常量定义、全局变量说明。

4.6Function.h
函数说明。

4.7F1.cpp
包含辅助函数如下;
广播星历读取函数EFileReading();
观测数据(时间、卫星个数、伪距、卫星号)读取函数ObsReading();
最小二乘法求解函数LeastSquareEstimation();
矩阵相乘计算函数MatrixMultiply();
高斯选主元消去法矩阵求逆函数MatrixInverse();
三维向量长度计算函数VectorLength()。

4.8F2.cpp
包含函数如下:
卫星位置、速度计算函数SatPos_Vel();
伪距定位函数Positioning()。

5.首历元观测时刻参考答案(Position.dat)
193645.0
29-15567798.7945675.621321624.5249.3-2743.6303.3 014665363.69394841.820224091.6-2310.31043.61194.9 20-10127606.021492092.3-10899994.3-90.1-1466.0-2807.9 21-1578334.526219741.9-284477.9-409.9-14.93151.8 28-20375527.015214719.77639734.1-975.7140.2-2976.3 24-2456690.116712706.920740220.7-2203.1-1370.0828.0 5-24924627.93359562.99069955.6937.9-673.82850.3
1311881411.212148251.420386065.1-509.32539.5-1217.6 -2196881.65177555.22998042.2。

相关文档
最新文档