卫星坐标计算实验
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 的倒数。
卫星坐标计算实验

卫星坐标计算实验
1.准备工作:首先,需要准备一台GPS接收机,该接收机能够接收卫星信号,并能够测量接收机与卫星之间的距离。
同时,需要准备地面控制点,这些点的坐标已经被精确测量过。
2.数据采集:在测量过程中,需要将接收机安装在需要测量的位置,并进行信号接收和数据采集。
通常,需要同时接收至少4颗卫星的信号,以便进行测量。
采集的数据包括每颗卫星的位置和接收机与卫星之间的距离。
3.数据处理:采集到的数据被传输到计算机中进行处理。
首先,通过信号传播速度和接收时间的差异,可以计算出接收机与卫星之间的距离。
然后,利用解算算法,可以计算出接收机的坐标。
4.坐标计算:在计算过程中,需要使用地面控制点的坐标作为参考。
通过对接收机与卫星之间的距离进行多次计算和优化,可以得到更准确的坐标信息。
卫星坐标计算实验的目的是为了确定地球上其中一点的准确位置。
这项实验在地理测量、航海、导航等领域都有广泛的应用。
例如,在地理测量中,通过测量多个地面控制点的坐标,可以绘制出地球的三维模型。
在航海中,通过测量船只的坐标,可以确定船只的位置和航线。
在导航中,通过接收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 的倒数。
gnss解算坐标

gnss解算坐标
全球导航卫星系统(GNSS)是一种利用卫星信号进行定位和导航的技术。
通过接收至少四颗卫星的信号,可以确定接收设备的位置。
GNSS 解算坐标的过程通常涉及以下步骤:
1. 卫星信号接收:接收设备(如 GPS 接收器)接收来自卫星的信号。
这些信号包含了卫星的位置和时间信息。
2. 信号处理:接收设备对卫星信号进行处理,包括捕获、跟踪和解调。
这有助于提取有用的信息,如卫星的伪距和相位。
3. 位置计算:利用接收到的卫星信号,接收设备可以计算出与每个卫星的距离。
通过至少四颗卫星的距离信息,可以使用三角测量原理确定接收设备的位置。
4. 坐标转换:确定的位置通常以地球坐标系(如 WGS84)表示。
如果需要将其转换为其他坐标系(如UTM 或当地坐标系),则需要进行坐标转换。
5. 误差修正:由于各种因素(如卫星信号传播延迟、多径效应等),GNSS 测量存在误差。
为了提高定位精度,通常会使用各种误差修正模型和算法来减少这些误差。
需要注意的是,GNSS 解算坐标的精度受到多种因素的影响,包括卫星几何分布、信号遮挡、多径效应、大气影响等。
在实际应用中,可能需要使用辅助技术(如差分 GPS)来提高定位精度。
以上是 GNSS 解算坐标的一般过程。
具体的实现方式可能因使用的设备和算法而有所不同。
GPS卫星位置的计算(C++程序计算)

GPS卫星位置的计算利用C++编写了一段能计算单一瞬时卫星坐标的程序,在运行程序之前,需做部分准备工作:(1)在F盘下建立一名为“单一卫星广播星历”的txt文件。
(2)从“广播星历.txt”文件中拷贝从卫星PRN号开始的8行数据到“单一卫星广播星历.txt”中(3)在编辑选项中,将全部的“D”替换为“E”。
下面为我所选取的一个广播星历:18 06 8 25 6 0 0.0-2.472363412380E-04-1.023*********E-12 0.000000000000E+001.410000000000E+02-1.721875000000E+01 4.502687555010E-09 1.413760604187E+00-7.990747690201E-07 7.598234573379E-03 1.118145883083E-05 5.153709835052E+034.536000000000E+05-1.303851604462E-08-1.095067942661E-01 1.527369022369E-079.571235745530E-01 1.640000000000E+02-2.656176299285E+00-8.0374********E-09-5.193073455211E-10 1.000000000000E+00 1.389000000000E+03 0.000000000000E+002.000000000000E+00 0.000000000000E+00-1.024*********E-08 1.410000000000E+024.464490000000E+05 4.000000000000E+00程序设计部分:#include<stdio.h>#include<math.h>int main(){int i = 0;double n[50], n0, nn, t, tk, Mk, Ek, Vk, Yk, Gu, Gr, Gi, uk, rk, ik, xk, yk, zk, X, Y, Z, Lk, UT, yy, mm, JD, gpsz;FILE *fp;fp = fopen("F:\\单一卫星广播星历.txt", "r");if (fp == NULL){printf ("文件打开失败!\n");return 0;}while (! feof (fp)){fscanf(fp, "%lf", &n[i]);i++;}n0 = (sqrt(3986005E+8))/pow(n[17], 3);nn = n0 + n[12];/*计算卫星运行的平均角速度*/UT = n[4] + (n[5] / 60) + (n[7] / 3600);/*民用日的时分秒化为实数时*/if (n[1] >= 80)/*广播星历中年只有后两位,化为4位,参考1980年1月6日0点*/ {if (n[1] == 80 && n[2] == 1 && n[3] < 6){n[1] = n[1] + 2000;}n[1] = n[1] + 1900;}else{n[1] = n[1] + 2000;}if (n[2] <= 2){yy = n[1] - 1;mm = n[2] + 12;}if (n[2] > 2){yy = n[1];mm = n[2];}JD = (int)(365.25 * yy) + (int)(30.6001 * (mm + 1)) + n[3] + (UT / 24) + 1720981.5;/*化为儒略日*/gpsz = (int)((JD - 2444244.5) / 7);/*计算GPS周*/t = (JD - 2444244.5 - 7 * gpsz) * 24 * 3600;/*得出GPS秒*/tk = t - n[18];/*tk1为中间值,用以判断tk与正负302400的关系,然后返回到tk上*/ while (tk > 302400 || tk < -302400){if (tk > 302400){tk = tk - 604800;}else{tk = tk + 604800;}}/*计算归化观测时间*/Mk = n[13] + nn * tk;/*观测时刻的卫星平近点角*/Ek = Mk;Ek = Mk + n[15] * sin(Ek);Ek = Mk + n[15] * sin(Ek);/*迭代两次计算观测时刻的偏近点角*/Vk = atan(sqrt(1 - n[15] * n[15]) * sin(Ek)) / (cos(Ek) - n[15]);/*真近点角*/Yk = Vk + n[24];/*升交距角*/Gu = n[14] * cos(2 * Yk) + n[16] * sin(2 * Yk);Gr = n[23] * cos(2 * Yk) + n[11] * sin(2 * Yk);Gi = n[19] * cos(2 * Yk) + n[21] * sin(2 * Yk);/*摄动改正项*/uk = Yk + Gu;rk = n[17] * n[17] * (1 - n[15] * cos(Ek)) + Gr;ik = n[22] + Gi + n[26] * tk;/*经摄动改正后的升交距角、卫星矢径、轨道倾角*/xk = rk * cos(uk);yk = rk * sin(uk);zk = 0;/*卫星在轨道坐标系的坐标*/Lk = n[20] + (n[25] - 7.29211515E-5) * tk - 7.29211515E-5 * n[18];/*观测时刻t的升交点经度*/X = xk * cos(Lk) - yk * cos(ik) * sin(Lk);Y = xk * sin(Lk) + yk * cos(ik) * cos(Lk);Z = yk * sin(ik);/*卫星在WGS-84坐标系的坐标*/printf("该卫星在WGS-84坐标系中的坐标为:\nX = %lf m\nY = %lf m\nZ = %lf m\n", X, Y, Z);fclose(fp);return 0;}计算结果:该卫星在WGS-84坐标系中的坐标为:X = 9223153.692525 mY = 24133486.931401 mZ = 6032585.919385 m。
GPS用户位置求解Matlab仿真121118

2、伪距测量模拟函数 CalculatePseudoRange
function Prange=CalculatePseudoRange(SatellitePosition,UserPosition) 算机模拟伪距测量 %计
c=3e5; %光速,单位:km/s; DeltaT=1e-4; %钟差为 1e-4 数量级秒,假设卫星钟间时钟一致,DeltaT=Tu-Ts;钟差不 宜超过 3e-4,否则不收敛; VisSatNum=0; %首先找出可以观测到的卫星数量 SatellitePosNew=[]; for k=1:24 if SatellitePosition(k,4)==1 VisSatNum=VisSatNum+1; SatellitePosNew=[SatellitePosNew; SatellitePosition(k,1:3)];
end %if end %for Prange=ones(1,VisSatNum); %求解用户接收机收到的伪距信息 for n=1:VisSatNum Prange(1,n)=sqrt( (SatellitePosNew(n,:)-UserPosition) (SatellitePosNew(n,:)-UserPosition)' + c*DeltaT ); end
三、实验内容
1、熟悉 Matlab 编程的语法、环境。 2、定位程序是一个迭代运算程序,卫星坐标和用户坐标由上述语句给出,运行程序,
计算卫星位置

3. 卫星视位置计算
3. 卫星视位置计算
• 已知条件
➢ 测站在地心地固坐标系中的坐标 ➢ 卫星在地心地固坐标系中的坐标
X P ,YP , Z P
XS ,Y S ,Z S
• 未知数
➢ 卫星在站心直角坐标系中的坐标 N , E,U
➢ 卫星在站心极坐标系中的坐标 A, h, d
(1)站心直角坐标系
• 坐标原点:P点 • N:指向真北 • E:指向东方 • U:法向 • 左手坐标系
d
Rz G
dt
X Y Z
cs
Rz
G
X
Y
Z
cs
d
Rz G
dt
e
地球自转角速度
(4)协议地球坐标系的速度
X
X
Y Ry (xp )Rx ( yp ) Y
Z
CTS
Z
et
X Y Z
CTS
X
R2( xp )R1( yp ) Y Z
et
§2.4 二体问题的卫星星历计算
• 1. 卫星的瞬时位置 • 2. 卫星的运行速度 • 3. 卫星视位置计算 • 4. 卫星位置和速度计算的实用方法
知识回顾
Z
赤道
地心
ω
春分点
Ω
f 近地点
i
Y
X
轨道
升交点
b
a
• a:轨道椭圆长半轴。
• e:轨道椭圆的偏心率。
以上2个参数,确定了开普勒椭圆的形状和 大小。
知识回顾
Z
赤道
地心
ω
春分点
Ω
f 近地点
i
Y
X
轨道
升交点
ω:近地点角距。即在轨道平面上,升交点与近地点之间的地心夹角。 这1个参数表达了开普勒椭圆在轨道面上的定向。
GPS卫星坐标计算分解

主要内容 2.1卫星坐标系简介 2.2偏近点角E与真近点角f的关系公式推导 2.3卫星位置计算推导过程 2.4二体问题的星位置计算解析
第二章 GPS卫星位置的计算
2.1卫星坐标系简介
一、WGS-84大地坐标系 1、WGS-84大地坐标系定义
WGS-84(World Geodetic System,1984年)是美国国防 部研制确定的大地坐标系,其 坐标系的几何定义是:
顶为正),以子午线方向为x轴(向北为正 ),y轴与x、z轴垂直(向东为正)。
站心赤道直角坐标系与站心地平直角坐 标系之间的关系
X sin B cos L
Y
sin
B
sin
L
Z
站赤
cos B
sin L cos L
0
cos B cos L x
cos
B
sin
L
y
sin B z 地平
站心地平直角坐标系与球心空间直角坐
椭球第一偏心率: e2=0.00669437999013 地球引力常数: GM=(39860050.6)108(m3/s2)
正常化二阶带谐系数:J2=(–484.166851.30)10–9(rad/s) 地球自转角速度: ω=(72921150.1500)10–11(rad/s)
国际大地测量与地球物理联合会(IUGG)——International Union of Geodesy and Geophysics
1 e2 sin E
cos f
,sin f
1 e cos E
1 e cos E
第二章 GPS卫星坐标的计算 2.3 卫星在轨瞬时位置计算
2.3.1 广播星历
GPS-RTK三种校正方法的实验与精度分析报告

GPS-RTK三种校正方法的实验与精度分析吴松涛(本钢设计研究院有限责任公司 117000)摘要:载波相位差分技术(Reat Time Kinematic简称RTK)又称实时动态定位技术,能够实时提供指定坐标系的三维坐标成果,在测程20km以可以达到厘米级精度。
广泛应用于工程放样、工程地形图测绘、房产测绘,地籍测量及某些控制测量,极大的提高了作业效率。
由于GPS定位是直接测定点位在WGS84坐标系中的坐标和高程,故我们需要通过点位校正或求得转换参数将测得的WGS84坐标系成果转换为我们所需要的坐标系。
文章以南方灵锐S86T型RTK为例对GPS —RTK的三种常见的校正方法(单点校正、两点校正、参数校正)的点位精度进行对比分析。
关键词:GPS-RTK;单点校正;二点校正;参数校正GPS—RTK系统由一个基准站,若干个流动站及通讯系统三部分组成,基准站包括GPS接收机、GPS天线、无线电通讯发射设备、基准站控制器、电源等部分组成,基准站GPS接收机本身具有传输参数、测量参数及坐标系统等容的设置功能,使控制器与GPS接收机合为一体。
一个流动站由GPS天线、GPS接收机、电源、接收天线、通讯设备,电子手簿组成。
图1为RTK系统结构图。
(引自参考文献【1】)基准站 移动站图1 RTK 系统结构图1、 GPS-RTK 点校正理论GPS 点校正主要目的是建立GPS 接收机采集的WGS84数据与地方控制网之间关系,不同坐标系之间的坐标转换通常有两类转换模式:一类是二维转换模式;一类是三维转换模式。
二维转换模式只适合于小区域转换且只需要两个坐标系的二维坐标成果;三维转换模式适合任何区域坐标转换。
二维转换模式通常采用平面四参数模型、三维转换模式通常采用布尔莎(Bursa )七参数转换模型。
1.1、单点校正单点校正并不依据上述转换模型,而是通过观测,求出校正点的WGS84坐标,再根据校正点的已知坐标求出3个平移参数(△X ,△Y ,△H ),不考虑旋转参数及比例因子。
GPS卫星坐标计算

卫星定位技术与方法--根据广播星历参数计算卫星坐标作业报告指导教师:熊永良班级:测绘二班学生姓名:段海东学生学号: 2 0 0 8 0 7 8 3作业日期:2010 年12月08 日目录一. 已知数据 (2)二. 计算步骤 (2)1.平均角速度 (mean angular speed) (2)2.规化时刻(normal time) (3)3.平近点角(mean anomaly) (3)4.偏近点角(eccentric anomaly) (3)5.真近点角(true anomaly) (3)6.升交距角(argument of ascending node) (3)7. 轨道向径(Orbital radius) (3)8. 扰动改正(Perturbed correction) (4)10.卫星在升交点轨道直角坐标系中的坐标 (4)11. 升交点经度(Longitude of ascending node) (5)三. 源程序 (5)四.程序运行结果 (14)七.作业体会 (15)根据广播星历参数计算卫星坐标一. 已知数据: 根据以下的广播星历参数计算UTC2004年1月30日8点0分00秒—20分00秒,每隔一分钟的PRN7的卫星坐标。
Compute the coordinate of PRN7 with interval of 1 minute.Navigation data:卫星导航文件格式:二. 计算步骤:The steps for satellite coordinates1.平均角速度 (mean angular speed):∆n 由广播星历获得, GM=3.986005e+14 nn n ∆+=030a GM n =2.规化时刻(normal time):t0已知(由广播星历获得),t 为GPS 周秒3.平近点角(mean anomaly):M0已知(由广播星历获得)4.偏近点角(eccentric anomaly):迭代求解:初始值取E=M ,以弧度为单位5.真近点角(true anomaly):6.升交距角(argument of ascending node):ω近地点角距(argument of perigee)7. 轨道向径(Orbital radius ):k k t n M M ⋅+=0)cos 1(k k E e a r ⋅-⋅=e E E e V k kk --=cos sin 1arctan 2k k k E e M E sin ⋅+=0t t t k -=ωφ+=k 0V8. 扰动改正(Perturbed correction ):• 升交角距(Argument of ascending node )•• 轨道向径(Orbital radius )• 轨道顷角(Orbital inclination )是升交角距 (the argument of ascending node)9. 改正后升交角距、轨道向径、轨道倾角改正后升交角距(Corrected argument of ascending nod )改正后的轨道向径(Corrected orbital radius)改正后的轨道倾角(Corrected orbital inclination )10.卫星在升交点轨道直角坐标系中的坐标:如下图所示0φ00i 2sin 2cos φφδiS iC C C +=00r 2sin 2cos φφδrS rC C C +=00u 2sin 2cos φφδuS uC C C +=rk k )cosE e 1(a r δ+⋅-⋅=u0k u δφ+=ki 0k t )IDOT (i i ++=δ11. 升交点经度(Longitude of ascending node ):如下图所示12. 在地固坐标系中的卫星位置(Expressed in spheric coordinate system )三. 源程序:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO;using System.Text.RegularExpressions;kk k k k k sinu r y cosu r x ==s/rad 102921151467.7t t )(5-e 0e k e 0t ⨯=--Ω+Ω=ωωωλekk k k k k k k k k i y Z i y x Y i y x sin cos cos sin sin cos cos k k k k k =+=-=X λλλλnamespace Test{public partial class Form1 : Form{public Form1(){InitializeComponent();listView1.Columns.Add("序号", 40);listView1.Columns.Add("星历内容", 130);listView1.Columns.Add("导航数据", 130);listView1.GridLines = true; //显示表格线listView1.View = View.Details;//显示表格细节listView1.HeaderStyle = ColumnHeaderStyle.Clickable;//对表头进行设置listView2.Columns.Add("时间", 60);listView2.Columns.Add("x坐标", 150);listView2.Columns.Add("y坐标", 150);listView2.Columns.Add("z坐标", 150);listView2.GridLines = true; //显示表格线listView2.View = View.Details;//显示表格细节listView2.HeaderStyle = ColumnHeaderStyle.Clickable;//对表头进行设置}private void button1_Click(object sender, EventArgs e){//读取相对路径string str1 =AppDomain.CurrentDomain.SetupInformation.ApplicationBase;string filename = str1 + "navigation data.txt ";//读取卫星广播星历文件StreamReader myreader = new StreamReader(filename, Encoding.Default);string myinfo = myreader.ReadToEnd();myreader.Close();//把卫星广播星历里的D改为e,以便后续计算string mystring = myinfo;string myinfor = mystring;myinfor = mystring.Replace("D", "e");//把数据分开读入到一个数组中存储string[] split = new string[] { " " };string[] arrs = myinfor.Split(split,StringSplitOptions.RemoveEmptyEntries);double[] M = new double[arrs.Length];//星历代码string[] N = new string[arrs.Length];N[0] = "PRN"; N[1] = "Yer"; N[2] = "Mon"; N[3] = "day"; N[4] = "H"; N[5] = "M"; N[6] = "sec"; N[7] = "a0"; N[8] = "a1"; N[9] = "a2"; N[10] = "IODE"; N[11] = "Crs"; N[12] = "delta-n"; N[13] = "M0";N[14] = "Cuc"; N[15] = "e"; N[16] = "Cus"; N[17] = "sqrt(a)"; N[18] = "t0e"; N[19] = "Cic"; N[20] = "omega0"; N[21] = "Cis"; N[22] = "i0"; N[23] = "Crc"; N[24] = "omega"; N[25] = "omega-spot";N[26] = "IDOT"; N[27] = "Codes on L2 channel"; N[28] = "GPS Week"; N[29] = "L2 P data flag";N[30] = "SV accuracy"; N[31] = "SV health"; N[32] = "TGD"; N[33] = "IODC Issue of Data";N[34] = "Transmission time of message";//把卫星广播星历读入到数组中for (int i = 0; i < arrs.Length; i++){ListViewItem li = new ListViewItem();li.Text = (i + 1).ToString();li.SubItems.Add(N[i]);li.SubItems.Add(arrs[i]);listView1.Items.Add(li);M[i] = double.Parse(arrs[i]);}double t0e=460800.00;double t;double[] XK = new double[21];double[] YK = new double[21];double[] ZK = new double[21];for (int l = 0; l < 21;l++ ){//计算平均角速度double GM = 3986004.418e008;double n, n0;n0 = Math.Sqrt(GM / (Math.Pow(M[17], 6)));n = M[12] + n0;//规划时刻t=t0e+l*60;double tk = t-t0e;double Mk = M[13] + n * tk;// 迭代计算平近点角的计算double Ek, Ek1;Ek = Mk;Ek1 = Mk + M[15] * Math.Sin(Ek);do{Ek = Ek1;Ek1 = Mk + M[15] * Math.Sin(Ek);}while (Math.Abs(Ek1 - Ek) > 1e-15);//计算真近点角double Vk = Math.Atan(((Math.Sqrt(1 - M[15] * M[15]) * Math.Sin(Ek))) / (Math.Cos(Ek) - M[15]));//反正切值的象限处理double A1 = Math.Atan(((Math.Sqrt(1 - M[15] * M[15]) * Math.Sin(Ek))));double A2 = Math.Cos(Ek) - M[15];if (Vk < 0){if (A1 < 0 && A2 > 0){Vk += 2 * Math.PI;}if (A1 > 0 && A2 < 0){Vk += Math.PI;}}else{if (A1 <= 0 && A2 <= 0)Vk = Vk + Math.PI;}//计算升交角距double fk = Vk + M[24];//摄动改正值的计算double du = M[14] * Math.Cos(2 * fk) + M[16] * Math.Sin(2 * fk);double dr = M[23] * Math.Cos(2 * fk) + M[11] * Math.Sin(2 * fk);double di = M[19] * Math.Cos(2 * fk) + M[21] * Math.Sin(2 * fk);//摄动改正double uk = fk + du;double rk = Math.Pow(M[17], 2) * (1 - M[15] * Math.Cos(Ek))+ dr;double ik = M[22] + di + M[26] * tk;//计算卫星在升交点轨道直角坐标系的坐标double xk = rk * Math.Cos(uk);double yk = rk * Math.Sin(uk);//计算升交点经度double we = 7.2921151467e-05;double jdt = M[20] + (M[25] - we) * tk - we * M[18];//卫星在地固坐标系中的空间直角坐标XK[l] = xk * Math.Cos(jdt) - yk * Math.Cos(ik) * Math.Sin(jdt);YK[l] = xk * Math.Sin(jdt) + yk * Math.Cos(ik) * Math.Cos(jdt);ZK[l] = yk * Math.Sin(ik);}//输出卫星在地固坐标系中的空间直角坐标for (int i = 0; i < 21; i++){ListViewItem list = new ListViewItem();list.Text = "第" + i.ToString() + "分钟";list.SubItems.Add(XK[i].ToString());list.SubItems.Add(YK[i].ToString());list.SubItems.Add(ZK[i].ToString());listView2.Items.Add(list);}}private void button2_Click(object sender, EventArgs e) {//读取相对路径string str1 =AppDomain.CurrentDomain.SetupInformation.ApplicationBase;string filename = str1 + "navigation data.txt ";//读取卫星广播星历文件StreamReader myreader = new StreamReader(filename, Encoding.Default);string myinfo = myreader.ReadToEnd();myreader.Close();//把卫星广播星历里的D改为e,以便后续计算string mystring = myinfo;string myinfor = mystring;myinfor = mystring.Replace("D", "e");//把数据分开读入到一个数组中存储string[] split = new string[] { " " };string[] arrs = myinfor.Split(split, StringSplitOptions.RemoveEmptyEntries);//星历代码string[] N = new string[arrs.Length];N[0] = "PRN"; N[1] = "Yer"; N[2] = "Mon"; N[3] = "day"; N[4] = "H"; N[5] = "M"; N[6] = "sec"; N[7] = "a0"; N[8] = "a1"; N[9] = "a2"; N[10] = "IODE"; N[11] = "Crs"; N[12] = "delta-n"; N[13] = "M0";N[14] = "Cuc"; N[15] = "e"; N[16] = "Cus"; N[17] = "sqrt(a)"; N[18] = "t0e"; N[19] = "Cic"; N[20] = "omega0"; N[21] = "Cis"; N[22] = "i0"; N[23] = "Crc"; N[24] = "omega"; N[25] = "omega-spot";N[26] = "IDOT"; N[27] = "Codes on L2 channel"; N[28] = "GPS Week"; N[29] = "L2 P data flag";N[30] = "SV accuracy"; N[31] = "SV health"; N[32] = "TGD"; N[33] = "IODC Issue of Data";N[34] = "Transmission time of message";//把卫星广播星历文件内容输出到listView进行查看for (int i = 0; i < arrs.Length; i++){ListViewItem li = new ListViewItem();li.Text = (i + 1).ToString();li.SubItems.Add(N[i]);li.SubItems.Add(arrs[i]);listView1.Items.Add(li);}}}}四.程序运行结果:星历内容的读取、显示:卫星坐标计算结果:运行界面:作业体会:此次作业,收获颇多。
GPS卫星WGS-84坐标计算

������������ = ������0 + ������������ + i������������ (9) 计算卫星在轨道平面上的坐标 ������������ = ������������ ������������������������������ ������������ = ������������ ������������������������������ (10) 计算观测时刻 t 的升交点经度������������ ������������ = Ω0 + Ω − ������������ ������������ − ������������ ������������������ (11) 计算卫星在 WGS-84 坐标系中的坐标 ������������ = ������������ ������������������������������ − ������������ ������������������������������ ������������������������������ ������������ = ������������ ������������������������������ + ������������ ������������������������������ ������������������������������ ������������ = ������������ ������������������������������
下面是用户位置Байду номын сангаас算
估计位置坐标表示估计位置与真实位置的偏移量
设
GPS 卫星的广播星历提供 16 个星历参数,其中包括 1 个参考时刻、6 个相应参考时刻的开普 勒轨道参数和 9 个轨道摄动修正参数。 用广播星历参数计算任一时刻 t 的卫星位置的步骤如 下: (1) 计算卫星运行的平均角速度 n 卫星运行的平均角速度������ = ������0 + ∆������,式中������0 =
卫星定位测量综合技能实训

《卫星定位测量》课程综合技能训练一、技能要求《卫星定位测量》综合技能训练是高职测量工程专业学生一项重要的实践环节。
学生通过实训,掌握利用卫星定位测量技术进行控制测量、地形测量和放样等测绘工作的方法,培养和提高利用所学理论知识解决实际问题的能力。
使学生了解卫星定位测量定位的特点,工程控制网建立的过程;与常规工程控制网的不同点和相同点。
使所学理论知识与实践相结合,巩固和加深对新知识的理解,增强学生的动手能力,培养学生解决问题、分析问题的能力。
通过综合技能训练,应达到如下要求:1.熟练掌握卫星定位测量接收机的使用方法,外业观测的记录,控制网选点、埋石等要求。
2.合理分配时段、掌握星历预报对时段的要求。
掌握PDOP值的大小对观测精度的影响,图形结构的设计及外业采集工作。
3. 熟练掌握各种型号的RTK的操作,包括基准站、流动站的设置、数据的转换、数据的采集和放样的工作,4.培养学生热爱本职工作,关心集体、爱护仪器及工具的良好职业道德以及对工作认真负责,对技术精益求精的工作作风,遵守校纪校规,保护群众利益的社会公德。
通过卫星定位测量综合技能训练,将所学知识融会贯通,从外业准备工作开始,测区踏勘、资料收集、人员组织、外业观测计划,GPS网与地面网的联测方案,编写技术设计书并实施。
二、作业内容及要求卫星定位测量综合技能训练时间为2周。
具体内容和时间安排如下表:三、作业程序(1) GPS静态测量A:要求1)等级:国家E级;2)控制网覆盖范围:学院周围;3)点数:至少6个;4) 平均点间距:500m;5) 选点:必选点(2个)6) 成果:以组为单位,完成设计、选点、观测,每人分别制作一个点的点之记。
布点示意图如下:B:已知成果数据(C级GPS成果)利用静态测量的接收机如Trimble5800,莱卡GS15,拓普康等接收机进行数据采集。
1)根据已有的坐标点作为已知点,设计GPS控制网,其各项技术要求、技术指标均以GPS规范为依据。
GPS卫星位置的计算(C++程序计算)

GPS卫星位置的计算利用C++编写了一段能计算单一瞬时卫星坐标的程序,在运行程序之前,需做部分准备工作:(1)在F盘下建立一名为“单一卫星广播星历”的txt文件。
(2)从“广播星历.txt”文件中拷贝从卫星PRN号开始的8行数据到“单一卫星广播星历.txt”中(3)在编辑选项中,将全部的“D”替换为“E”。
下面为我所选取的一个广播星历:18 06 8 25 6 0 0.0-2.472363412380E-04-1.023*********E-12 0.000000000000E+001.410000000000E+02-1.721875000000E+01 4.502687555010E-09 1.413760604187E+00-7.990747690201E-07 7.598234573379E-03 1.118145883083E-05 5.153709835052E+034.536000000000E+05-1.303851604462E-08-1.095067942661E-01 1.527369022369E-079.571235745530E-01 1.640000000000E+02-2.656176299285E+00-8.0374********E-09-5.193073455211E-10 1.000000000000E+00 1.389000000000E+03 0.000000000000E+002.000000000000E+00 0.000000000000E+00-1.024*********E-08 1.410000000000E+024.464490000000E+05 4.000000000000E+00程序设计部分:#include<stdio.h>#include<math.h>int main(){int i = 0;double n[50], n0, nn, t, tk, Mk, Ek, Vk, Yk, Gu, Gr, Gi, uk, rk, ik, xk, yk, zk, X, Y, Z, Lk, UT, yy, mm, JD, gpsz;FILE *fp;fp = fopen("F:\\单一卫星广播星历.txt", "r");if (fp == NULL){printf ("文件打开失败!\n");return 0;}while (! feof (fp)){fscanf(fp, "%lf", &n[i]);i++;}n0 = (sqrt(3986005E+8))/pow(n[17], 3);nn = n0 + n[12];/*计算卫星运行的平均角速度*/UT = n[4] + (n[5] / 60) + (n[7] / 3600);/*民用日的时分秒化为实数时*/if (n[1] >= 80)/*广播星历中年只有后两位,化为4位,参考1980年1月6日0点*/ {if (n[1] == 80 && n[2] == 1 && n[3] < 6){n[1] = n[1] + 2000;}n[1] = n[1] + 1900;}else{n[1] = n[1] + 2000;}if (n[2] <= 2){yy = n[1] - 1;mm = n[2] + 12;}if (n[2] > 2){yy = n[1];mm = n[2];}JD = (int)(365.25 * yy) + (int)(30.6001 * (mm + 1)) + n[3] + (UT / 24) + 1720981.5;/*化为儒略日*/gpsz = (int)((JD - 2444244.5) / 7);/*计算GPS周*/t = (JD - 2444244.5 - 7 * gpsz) * 24 * 3600;/*得出GPS秒*/tk = t - n[18];/*tk1为中间值,用以判断tk与正负302400的关系,然后返回到tk上*/ while (tk > 302400 || tk < -302400){if (tk > 302400){tk = tk - 604800;}else{tk = tk + 604800;}}/*计算归化观测时间*/Mk = n[13] + nn * tk;/*观测时刻的卫星平近点角*/Ek = Mk;Ek = Mk + n[15] * sin(Ek);Ek = Mk + n[15] * sin(Ek);/*迭代两次计算观测时刻的偏近点角*/Vk = atan(sqrt(1 - n[15] * n[15]) * sin(Ek)) / (cos(Ek) - n[15]);/*真近点角*/Yk = Vk + n[24];/*升交距角*/Gu = n[14] * cos(2 * Yk) + n[16] * sin(2 * Yk);Gr = n[23] * cos(2 * Yk) + n[11] * sin(2 * Yk);Gi = n[19] * cos(2 * Yk) + n[21] * sin(2 * Yk);/*摄动改正项*/uk = Yk + Gu;rk = n[17] * n[17] * (1 - n[15] * cos(Ek)) + Gr;ik = n[22] + Gi + n[26] * tk;/*经摄动改正后的升交距角、卫星矢径、轨道倾角*/xk = rk * cos(uk);yk = rk * sin(uk);zk = 0;/*卫星在轨道坐标系的坐标*/Lk = n[20] + (n[25] - 7.29211515E-5) * tk - 7.29211515E-5 * n[18];/*观测时刻t的升交点经度*/X = xk * cos(Lk) - yk * cos(ik) * sin(Lk);Y = xk * sin(Lk) + yk * cos(ik) * cos(Lk);Z = yk * sin(ik);/*卫星在WGS-84坐标系的坐标*/printf("该卫星在WGS-84坐标系中的坐标为:\nX = %lf m\nY = %lf m\nZ = %lf m\n", X, Y, Z);fclose(fp);return 0;}计算结果:该卫星在WGS-84坐标系中的坐标为:X = 9223153.692525 mY = 24133486.931401 mZ = 6032585.919385 m。
GPS(RTK)静态控制测量实习报告

GPS(RTK)实习报告一:实习目的:通过实习进一步深入了解GPS原理以及在测绘中的应用,巩固课堂所学的知识.熟练掌握GPS仪器的使用方法,学会GPS进行控制测量的基本方法并掌握GPS数据处理软件的使用方法.二:实习地点:扬州环境资源职业技术学院三:实习内容:测量学校四:实验原理:GPS定位的原理是GPS 卫星发射的测距信号和导航电文,导航电文中含有卫星位置的信息,用户用GPS接收机在某一时刻接收三颗或三颗以上的GPS卫星,测出测站点(GPS天线中心)到卫星的距离并解算出该时刻卫星的空间位置根据距离,并解算出卫星的空间位置,根据距离交会法求测站点坐标.其基本思想为:在基准站上安置一台GPS 接收机,对所有可见卫星进行连续观测并将其观测数据通过无线电传输设备实时地发送给用户观测站,用户站在接收GPS卫星信号的同时,通过无线电接收机设备接收基准站传输的观测数据,实时计算测站点的三维坐标.五:实验过程:(一). 参考站要求参考站的点位选择必须严格。
因为参考站接收机每次卫星信号失锁将会影响网络内所有流动站的正常工作。
1..周围应视野开阔,截止高度角应超过15度,周围无信号反射物(大面积水域、大型建筑物等),以减少多路径干扰。
并要尽量避开交通要道、过往行人的干扰。
2.参考站应尽量设置于相对制高点上,以方便播发差分改正信号。
3.参考站要远离微波塔、通信塔等大型电磁发射源200米外,要远离高压输电线路、通讯线路50米外。
4.RTK作业期间,参考站不允许移动或关机又重新启动,若重启动后必须重新校正。
根据以上要求在校园里选择合适的已知点,将天线架设是该点做为基准站,同时开机.打开主机和电台,主机开始自动初始化和搜索卫星,当卫星数和卫星质量达到要求后(大约1分钟),主机上的DL指示灯开始5秒钟快闪2次,同时电台上的RX指示灯开始每秒钟闪1次。
这表明基准站差分信号开始发射,整个基准站部分开始正常工作。
(二).移动站要求1.将移动站主机接在碳纤对中杆上,并将接收天线接在主机顶部,同时将手簿夹在对中杆的适合位置。
GNSS实验报告

GNSS原理及应用实验报告课程名称: GNSS原理及应用专业班级:姓名学号:小组组号:实验一GNSS接收机的认识及操作一、目的实验目的:巩固卫星定位测量原理。
认识GNSS接收机构造及各部件功能,练习GNSS 接收机使用方法。
内容及要求:1,GNSS认识实验,熟悉操作步骤。
2,了解仪器构造,认识各部件名称及使用方法。
3,练习安置、整平、与参数设置。
结果和数据:观测一组数据并记录二、仪器及用具中海达RTK一套,三脚架一个,钢卷尺一把,记录手簿一本三、测区图及测点实拍图测区图点位图四、实验步骤1,实验前,熟悉中海达RTK的各项技术指标,熟悉接收机的构造各部件的名称、功能和作用2,实验中,电源(电池)的安装,安装电池时,先松开固连螺旋,按电源盒上的提示安装上电池;GPS接收机安装,将GPS接收机固定安装在三脚架基座上,对中整平。
3,实验时,GPS接收机操作,开机,参数输入(静态模式),数据接收30分钟以上,状态面板,关机4,实验后,数据的下载传输与保存分析五、实验感想和体会1,注意小心使用仪器,防潮防湿2,对中整平气泡必严格对中,选点选在开阔处,避免建筑物遮挡信号3,操作过程中,注意各指示灯的情况,避免因电池电量不足带来的实验问题4,实验之前必须熟悉实验内容与步骤GNSS外业观测记录表接收机型号及编号3052 测点号---------班级及组号天气晴小组成员观测日期2017年 10 月 14 日观测者小组成员时段号 1 开始时间14时 15 分结束时间14时 50 分时段号 2 开始时间时分结束时间时分时段号 3 开始时间时分结束时间时分时段号 4 开始时间时分结束时间时分斜量(m)测前测后平均测点实拍图天线高(第1时段) 1.7000 1.7000 1.7000天线高(第2时段)天线高(第3时段)天线高(第4时段)时间(UTC) 第1时段第2时段第3时段第4时段接收卫星号及PDOP值(15min)卫星:19PDOP值:2.1卫星:PDOP值:卫星:PDOP值:卫星:PDOP值:接收卫星号及PDOP值(30min)卫星:22PDOP值:2.3卫星:PDOP值:卫星:PDOP值:卫星:PDOP值:接收卫星号及PDOP值(45min)卫星:PDOP值:卫星:PDOP值:卫星:PDOP值:卫星:PDOP值:接收卫星号及PDOP值(60min)卫星:PDOP值:卫星:PDOP值:卫星:PDOP值:卫星:PDOP值:备注本次实验只进行了一个时段35分钟的静态测量实验二GNSS接收机野外静态数据采集一、目的实验目的:了解相对静态定位原理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西南交通大学
《卫星坐标计算实验》
实验报告
专业:
班级:
姓名:
学号:
成绩:
2017年3月20日
一、实验步骤:
1、将星历文件中需要的数据作为矩阵导入MA TLAB 中的变量。
2、编写计算程序代码
1)计算平均角速度0n :
03GM n a
=
2)改正平角速度n : 0n n n =+∆
3)计算平近点角t M :
0()t e M M n t t =+⨯-
4)通过迭代计算,计算偏近点角t E :
sin t t t E M e E =+
5)计算真近点角ν:
21sin =atan cos t t e E E e
ν-- 6)计算升交距角0u :
0u νω=+
7)计算卫星轨道摄动项改正数:
2cos sin cos sin cos sin u u Cuc Cus r Crc Crs i Cic Cis ϕϕϕ
ϕϕ
ϕϕ
=⨯∆=+∆=+∆=+
8)计算改正后的真近点角ν: 0t u u u =+∆
9)计算改正后的向径t r :
0t r r r =+∆
10)计算改正后的倾角t i :
0()t e i i i i t t =+∆+⨯-
11)计算轨道平面内的坐标:
cos sin 0t t t t t
t t x r u y r u z ⎡⎤⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦
12)计算观测瞬间升交点的经度t l :
0()t e e e
l l t t t ω=+Ω++ 13)计算旋转矩阵:
1000cos()sin()0sin()cos()x t t t t R i i i i ⎡⎤
⎢⎥=-⎢⎥⎢⎥⎣⎦ cos()sin()0sin()cos()
000
1t t z
t t
l l R l l -⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦
14)卫星坐标:
t z x t t X x Y R R y Z z ⎡⎤⎡⎤
⎢⎥⎢
⎥
=⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦
15)计算钟差:
2012()()e e t a a t t a t t ∆=+⨯-+⨯-
二、实现代码:
function pos=SPOS(br,dt)
GM=3.986005e+14;
we=7.2921151467e-5;
%a0 a1 a2
a0=br(1,2);
a1=br(1,3);
a2=br(1,4);
% IODE Crs dn M0
Crs=br(2,2);
dn=br(2,3);
M0=br(2,4);
% Cuc e Cus sqA
Cuc=br(3,1);
e=br(3,2);
Cus=br(3,3);
sqA=br(3,4);
% toe Cic OM0 Cis
toe =br(4,1);
Cic =br(4,2);
OM0 =br(4,3);
Cis =br(4,4);
% i0 Crc w DOM
i0 =br(5,1);
Crc =br(5,2);
w =br(5,3);
DOM =br(5,4);
% Di week
Di=br(6,1);
n0=sqrt(GM)/sqA^3;
n=n0+dn;
Mk=M0+n*dt;
Ek=Mk;Te=inf;
while abs(Te-Ek)>1e-14
Te=Ek;
Ek=Mk+e*sin(Ek);
end
xx=cos(Ek)-e;yy=sqrt(1-e*e)*sin(Ek);
v=atan2(yy,xx);
u=v+w;
du=Cuc*cos(2*u)+Cus*sin(2*u);
dr=Crc*cos(2*u)+Crs*sin(2*u);
di=Cic*cos(2*u)+Cis*sin(2*u);
uk=u+du;
rk=sqA*sqA*(1-e*cos(Ek))+dr;
ik=i0+di+Di*dt;
X=[rk*cos(uk);rk*sin(uk);0];
Rx=[1 0 0;0 cos(ik) -sin(ik);0 sin(ik) cos(ik)]; lt=OM0+(DOM-we)*(toe+dt)-DOM*toe;
Rz=[cos(lt) -sin(lt) 0;sin(lt) cos(lt) 0;0 0 1];
%计算钟差
ddt=a0+a1*(dt-toe)+a2*(dt-toe)^2;
disp(ddt);
pos=Rz*Rx*X;
end
三、实验结果:。