卫星导航定位算法与程序设计_第13课_卫星位置钟差计算
卫星定位计算

卫星状态计算 卫星钟钟差计算 对流层影响改正 电离层影响改正 单点定位解算 用户速度解算及时间传递 滤波平滑计算
卫星状态计算
1. 星历的不同形式; 2. 任意时刻卫星状态计算; 3. 地球自转影响修正; 4. 卫星钟钟差;
卫星状态计算
开普勒轨道根数法:主要用6个开普勒轨 道根数描述卫星的运动,摄动采用改正参 数的形式进行描述;如GPS的卫星星历。
WGS-84); 若顾及极移的影响可转换至真地球坐标系中。
卫星状态计算
x r cos f
y
r
sin
f
r : r a(1 e cos E)
f
: cos
f
cos 1 e
E cos
e E
a, e 已知
E M esin E
y
M M 0 M M0 已知
)
Y
Z TS
Z CS
卫星状态计算
(11)观测时刻格林威治恒星时GAST的计算
在卫星导航电文中提供了一个星期的开始时刻tw (为星期六子夜至星期日凌晨的交换时刻)的格林 威治恒星时GAST( tw)。
已知地球自转角速度ω
e 7.292 115 67 105 rad / s
需知道观测时刻轨道倾角i 需知道观测时刻升交点赤经Ω
X
x
Y
R3
()R1(i)
y
Z CS
0
卫星状态计算
(9)观测时刻轨道倾角i 和升交点赤经Ω计算
i i0 i i (t toe )
o &(t toe )
卫星导航定位算法与程序设计——实验报告

2013 级测绘工程专业卫星导航定位算法与程序设计实验报告实验名称: 卫星导航基本程序设计班级:学号:姓名:实验时间: 2016年6月28日~2016年6月30中国矿业大学目录实验一时空基准转换 (2)一、实验目得 (2)二、实验内容 (2)三、实验过程ﻩ2四、实验感想ﻩ6实验二RINEX文件读写ﻩ7一、实验目得ﻩ7二、实验内容 (7)三、实验过程ﻩ712实验三卫星轨道计算ﻩ一、实验目得 (12)二、实验内容..................................................................................................................................... 12三、实验过程ﻩ12四、实验感想................................................................................................................................... 15实验一时空基准转换一、实验目得1、加深对时空系统及其之间转换关系得理解2、掌握常用时空基准之间得转换模型与软件实现3、每人独立完成实验规定得内容二、实验内容本实验内容包括:内容一:编程实现GPS起点1980年1月6日0时对应得儒略日内容二:编程实现2011年11月27日对应得GPS周数与一周内得秒数内容三:在WGS84椭球得条件下,编程实现当中央子午线为117度时,计算高斯坐标x = 3548910、811290287,y =179854.6172135982对应得经纬度坐标?内容四:WGS84椭球下,表面x=-2408000; y=4698000;z= 3566000处得地平坐标系坐标为:e=704。
8615;n=114、8683;u=751、9771得点对应得直角坐标为多少?三、实验过程1.针对第一、二部分内容:1。
卫星位置,速度,钟差和钟漂计算

tk = tk + 604800, 当tk < −302400 t , 其它情况 k
根据广播星历计算卫星位置(2/5)
4. 对平均运动角速度进行改正
n = n0 + ∆n
5. 计算平近点角
M k = M 0 + ntk
6. 计算偏近点角(利用下面的开普勒方程, 迭代求解)
M k = Ek − e sin Ek
cos Ω k = sin Ω R k 0
− sin Ωk cos ik cos Ω k cos ik sin ik
− ( x 'k sin Ωk + y 'k cos Ω k cos ik ) ( x 'k cos Ωk − y 'k sin Ωk cos ik ) 0
y 'k sin Ω k sin ik y 'k cos Ω k sin ik y 'k cos ik
x 'k = rk cos uk y 'k = rk sin uk
'k = r k cos uk − rk u k sin uk x 'k = r k sin uk + rk u k cos uk y
17
卫星运动速度计算②
=Ω −ω Ω k
=i + 2 ( Cis cos 2uk − Cis sin 2uk ) uk I k
toe , A , e, M 0 , ω , i0 , Ω ( IDOT ) , Ω ∆n, i Cus , Cuc , Crs , Crc , Cis , Cic toc , ClkBias, ClkDrift , ClkDriftRate
卫星导航定位算法与程序设计_单点定位程序流程

卫星导航定位算法与程序设计_单点定位程序流程(总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)进行迭代。
计算卫星位置的程序

计算卫星位置一、C语言程序#include <stdio.h>#include <math.h>#include <stdlib.h>#define bGM84 3.986005e14#define bOMEGAE84 7.2921151467e-5void main(){long double roota=0.515365263176E+04; //轨道长半轴的平方根(根号a)long double toe=0.720000000000E+04; //观测时刻toelong double m0=-0.290282040486E+00; //参考时刻toe的平近点角long double e=0.678421219345E-02; //轨道偏心率elong double delta_n=0.451411660250E-08;//卫星的摄动改正数△nlong double smallomega=-0.258419417299E+01;//近地点角距ωlong double cus=0.912137329578E-05;//纬度幅角正弦调和项改正的振幅(弧度)long double cuc=0.189989805222E-06;//纬度幅角余弦调和项改正的振幅(弧度)long double crs=0.406250000000E+01;//轨道半径的余弦调和项改正的振幅(m)long double crc=0.201875000000E+03;//轨道半径的正弦调和项改正的振幅(m)long double cis=0.949949026108E-07;//轨道倾角的余弦调和项改正的振幅(弧度)long double cic=0.130385160446E-07;//轨道倾角的正弦调和项改正的振幅(弧度)long double idot=-0.253939149013E-09;//轨道倾角变化率Ilong double i0=0.958512160302E+00; //轨道倾角(弧度)long double bigomega0=-0.137835982556E+01;//升交点赤经long double earthrate=bOMEGAE84; //地球自转的速率welong double bigomegadot=-0.856928551657e-08;long double t=0.720000000000E+04; //加入卫星钟差改正的归化时间long double A;long double n0=0,n,tk;long double mk,ek,tak,ik,omegak,phik,uk,rk;long double corr_u,corr_r,corr_i;long double xpk,ypk,xk,yk,zk;int i;printf("输入的数据:\n");printf("√a=%e \n",roota);printf("toe=%e \n",toe);printf("e=%e \n",e);printf("i0=%e \n",i0);printf("ω=%e \n",smallomega);printf("△n=%e \n",delta_n);printf("Ω0=%e \n",bigomega0);printf("I=%e \n",idot);printf("Cuc=%e \n",cuc);printf("Crc=%e \n",crc);printf("Crs=%e \n",crs);printf("Cic=%e \n",cic);printf("Cis=%e \n",cis);printf("\n\n输出的结果为:\n",e);A=roota*roota;n0=sqrt(bGM84/(A*A*A));//平均角速度n0printf("n0=%.10lf \n",n0);tk=t-toe;//相对于参考时刻toe的归化时间tkprintf("tk=%.10lf \n",tk);n=n0+delta_n;//加摄动改正后的卫星平均角速度printf(" n=%.10lf \n",n);mk=m0+n*tk;//卫星平近点角printf("mk=%.10lf \n",mk);ek=mk;for(i=0;i<10;i++) ek=mk+e*sin(ek);//利用迭代法求偏近点角ekprintf("ek=%.10lf \n",ek);tak=atan2(sqrt(1.0-e*e)*sin(ek),cos(ek)-e);//真近点角Vk的计算printf("Vk=%.10lf \n",tak);phik=tak+smallomega;//升交距角φk的计算printf("φk=%.10lf \n",phik);corr_u=cus*sin(2.0*phik)+cuc*cos(2.0*phik);//升交距角u的摄动改正δu printf("δu=%.10lf \n",corr_u);corr_r=crs*sin(2.0*phik)+crc*cos(2.0*phik);//卫星矢量r的摄动改正δr printf("δr=%.10lf \n",corr_r);corr_i=cis*sin(2.0*phik)+cic*cos(2.0*phik);//轨道倾角i的摄动改正δi printf("δi=%.10lf \n",corr_i);uk=phik+corr_u;//升交距角uprintf("uk=%.10lf \n",uk);rk=A*(1.0-e*cos(ek))+corr_r;//卫星矢量rprintf("rk=%.10lf \n",rk);ik=i0+idot*tk+corr_i;//轨道倾角iprintf("ik=%.10lf \n",ik);xpk=rk*cos(uk);//卫星在轨道平面坐标系的坐标ypk=rk*sin(uk);printf("ypk=%.10lf \n",ypk);omegak=bigomega0+(bigomegadot-earthrate)*tk-earthrate*toe;//升交点经度Ωk的计算printf("Ωk=%.10lf \n\n",omegak);xk=xpk*cos(omegak)-ypk*sin(omegak)*cos(ik);//地心固定坐标系的直角坐标yk=xpk*sin(omegak)+ypk*cos(omegak)*cos(ik);zk=ypk*sin(ik);printf("Xk=%.4lf \n",xk);printf("Yk=%.4lf \n",yk);printf("Zk=%.4lf \n",zk);}二、计算结果计算结果如截图所示:。
卫星导航定位算法与程序设计_单点定位程序流程

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 玻。
卫星导航定位解算与误差处理方法资料课件

02
卫星导航定位系统通过接收卫星信号,利用信号传播时间、频率等参数,计算 出卫星至地面接收机的距离,再结合卫星轨道参数,最终确定地面接收机的位 置和速度。
03
卫星导航定位系统通常采用三角测量法来确定地面物体的位置,即通过比较接 收到的卫星信号与卫星轨道参数,计算出接收机至多颗卫星的距离差,再利用 几何学原理确定接收机的位置。
卫星轨道误差
由于卫星轨道不准确引起的定位误差。处理方法包括利用星历数据中的轨道参数进行修正,以及利用实时监测的 卫星轨道数据进行修正。
卫星钟差
由于卫星时钟与标准时间不同步引起的定位误差。处理方法包括利用差分技术进行卫星钟差估计和修正,以及利 用已知的控制点进行卫星钟差校准。
卫星导航定位数据
04
处理软件介绍
接收机钟差
由于接收机时钟与卫星时钟不同步,导致定位误差。处理方法包括利用差分技 术进行接收机钟差估计和修正,以及利用卫星钟信号进行接收机钟差修正。
接收机位置误差
由于接收机位置不准确引起的定位误差。处理方法包括利用差分技术进行接收 机位置修正,以及利用已知的控制点进行接收机位置校准。
卫星轨道误差处理
时间同步与时间传递
01
02
03
时间同步
利用卫星导航系统提供的 精确时间信息,将接收机 的时间与卫星时间同步。
时间传递
利用卫星信号传递时间信 息,实现接收机之间的时 间同步。
时间偏差修正
根据时间同步结果,修正 接收机时间传递过程中的 时间偏差,提高时间同步 精度。
卫星导航定位误差
03
处理方法
卫星信号传播误差处理
卫星导航定位系统的组成
01
卫星导航定位系统主要由空间段、控 制段和用户段三部分组成。空间段包 括多颗卫星,负责发送导航信号;控 制段包括地面监测站和主控站,负责 监测卫星轨道和信号质量,修正卫星 轨道参数和信号误差;用户段包括各 种卫星导航定位接收机,用于接收卫 星信号并计算位置、速度等信息。
卫星导航定位算法与程序设计_常用参数和公式讲解

卫星导航定位算法与程序设计_常用参数和公式讲解卫星导航定位算法是通过接收多颗卫星发出的信号来确定接收器的位置的算法。
常用的卫星导航系统有美国的全球定位系统(GPS)、俄罗斯的格洛纳斯系统和欧洲的伽利略系统等。
下面将讲解卫星导航定位算法中的常用参数和公式。
1.GPS系统参数GPS系统中的常用参数包括信号传播速度、卫星时钟频率、卫星位置、接收机时钟误差等。
信号传播速度是指电磁波在真空中传播的速度,约为3×10^8米/秒。
卫星时钟频率是指卫星发射信号的频率,它与卫星位置和传播速度有关。
卫星位置是指卫星在天空中的位置坐标,它是通过星历数据确定的。
接收机时钟误差是指接收器时钟与它所处的卫星系统时钟之间的差异。
2.GPS接收机参数GPS接收机中的常用参数包括接收机观测量、接收机时钟和接收机位置等。
接收机观测量是指接收机接收到的卫星信号的信息,包括卫星信号的到达时间、信号强度等。
接收机时钟是指接收机内部的时钟,它用于测量到达时间和计算位置信息。
接收机位置是指接收机的地理位置坐标,它是待求解的定位参数,通过卫星信号的到达时间和卫星位置计算得出。
3.定位算法卫星导航定位算法主要包括距离测量和位置计算两个步骤。
距离测量是通过测量接收机与卫星之间的距离,从而确定接收机与卫星的空间几何关系。
常用的距离测量方法有伪距测量和载波相位测量两种。
伪距测量是通过测量卫星信号的传播时间来计算距离,利用的是卫星信号中的导航消息和接收机观测量。
载波相位测量是通过测量卫星信号的相位差来计算距离,具有更高的精度,但需要更复杂的算法和硬件支持。
位置计算是根据距离测量结果和卫星位置信息,利用三角测量原理来计算接收机的位置。
常用的位置计算方法有单点定位和差分定位两种。
单点定位是通过接收机与至少四颗卫星之间的距离测量结果,利用三边测量原理计算接收机的位置。
差分定位是在单点定位的基础上,利用额外的参考站测量数据对接收机的位置进行修正,提高定位精度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
卫星位置的计算(2)
• 任意时刻t卫星位置的计算
– 原理:插值法 – 方法:拉格朗日插值法、切比雪夫多项式、三次样 条内插、三角多项式内插等 已知函数y f ( x)的n个结点x0 , x1 ,..., xn 及其对应的
函数值y0 , y1 ,..., yn 对于插值区间内的任一点x,其函数 值为 x xi f ( x) ( ) yk k 0 i 0 xk xi ik
xk rk cos uk yk rk sin uk
18
计算卫星位置(5/5)
14 计算改正后的升交点经度
Lk 0 earth t toe
15计算在地固坐标系下的位置
xk X Y RZ ( k ) Rx (ik ) yk Z 0
GM
e 7.2921151467 105 rad s
地球自转角速度
卫星星历
toe , A , e, M 0 , , i0 , n, i IDOT , Cus , Cuc , Crs , Crc , Cis , Cic toc , ClkBias, ClkDrift , ClkDriftRate
星历计算中常用常量和参数 星历参数详解
广播星历参数
精密星历参数
根据广播星历计算卫星位置等参数 根据精密星历计算卫星位置等参数 上机实习
星历计算中常用常数和符合
3.1415926535898
c 2.99792458 108 m s
真空中的光速
2
3.9860047 1014 m3 s
9
广播星历
A , e, M 0 , , i0 , toe , 轨道根数 n, i IDOT , Cus , Cuc , Crs , Crc , Cis , Cic 轨道摄动量
toc , ClkBias, ClkDrift , ClkDriftRate 卫星钟参数
6. 计算偏近点角(利用开普勒方程迭代求解) M k Ek e sin Ek 7. 计算真近点角
sin vk f arctan cos vk 1 e2 sin E arctan cos E e
16
计算卫星位置(3/5)
10
精密星历
X , Y, Z, X , Y, Z
tclock , tclock
11
内容
星历概述 根据广播星历计算卫星位置等参数
计算卫星位置
计算卫星钟差
计算卫星速度
根据精密星历计算卫星位置等参数 上机实习
根据广播星历计算卫星参数
计算思路
首先计算卫星在轨道平面坐标系下的坐标
n n0 n
A:轨道长半轴的平方根
6
星历参数详解②
e:偏心率 E (t ) M (t ) e sin E (t ) 1 e 2 sin E (t ) 真近点角 (t ) arctg cos E (t ) e
0:参考时刻升交点赤经( oe )与GPS周开始时格林尼治赤经(GASTW )之差 设 e为地球自转角速度, k (t )为升交点经度,(t )为升交点赤经,则 0 oe GASTW (t t ) (t ) oe oe GAST (t ) GASTW e t k (t ) (t ) GAST (t ) (t t )] [GAST t ] [ oe oe W e (t t ) (t t ) t ] [ oe GASTW ] [ oe e oe e oe ) (t t ) t (
5
星历参数详解①
M 0:参考时刻的平近点角 M (t ) M 0 n (t toe ) 其中n为平均角速度
n:平均角速度的改正值
GM 平均角速度的计算值n0 3 a ( a )3 称为地球引力常数,在WGS 84系中定义为3.9860047 1014 m3 s 2
0 e oe e oe
7
星历参数详解③
8
星历参数详解④
i0:参考时刻的轨道倾角 (t toe ) i i (t ) i0 i
:近地点角距
未经改正的升交距交(t ) (t )
Cuc,Cus:升交距角的余弦和正弦调和改正的振幅 Crc,Crs:轨道半径的余弦和正弦调和改正的振幅 Cic,Cis:轨道倾角的余弦和正弦调和改正的振幅 升交距角、轨道向径和轨道倾角的改正项
4, Lk earth
计算卫星运动速度(2)
xk cos uk y sin u k k rk sin uk rk u rk cos uk k
xk X y k Y R Lk Z Ik
cos k R sin k 0 sin k cos ik cos k cos ik sin ik x 'k sin k y 'k cos k cos ik y 'k sin k sin ik x ' cos y ' sin cos i y ' cos sin i k k k k k k k k 0 y 'k cos ik
8. 计算升交角距(未经改正的) u ' f 9. 计算二阶调和改正数
计算升交角距的改正数 uk Cus sin 2u ' Cuc cos 2u ' 计算向径的改正数 rk Crs sin 2u ' Crc cos 2u '
计算轨道倾角改正数 ik Cis sin 2u ' Cic cos 2u '
内容
星历概述 根据广播星历计算卫星位置等参数 根据精密星历计算卫星位置等参数 上机实习
卫星位置的计算(1)
精密星历 按一定时间间隔给出卫星在地固坐标系下的三维位 置、三维速度和钟差
* P P P P P P P P 2004 1 15 0 0 0.00000000 1 5945.509635 15759.608404 20698.949374 2 1141.101111 22665.359989 14690.489309 3 -10344.447068 24021.826531 -3968.233325 4 22798.349665 -6520.820872 12310.795279 5 -12628.924903 -23445.674881 -1192.036791 6 -13958.380086 -7542.103497 21489.237683 7 18939.291158 -12511.028058 -13257.166627 8 26246.825668 -918.226411 -5165.342142 324.533285 -257.156064 77.825932 -43.522805 13.422888 -2.952584 635.667094 383.670428
然后将上述坐标分别绕X轴旋转-i角、绕Z轴旋 转-k角,求出卫星在地固系下的坐标
13
卫星
轨道平面坐标系
轨道参数
升 交距 角 y 真 近点 角 近 地点 地心 近 地点 角距 升 交点
x
计算卫星位置(1/5)
1. 计算轨道长半轴
GM 2. 计算平均运动角速度 n0 3 A
A
A
2
3. 计算相对于星历参考历元的时间 tk t toe
u (t ) Cuc cos(2(t )) Cus sin(2(t )) r (t ) Crc cos(2(t )) Crs sin(2(t )) i (t ) Cic cos(2(t )) Cis sin(2(t ))
toe:星历参考时刻
t为信号发射时的时间 tk 604800, 当tk 302400 tk的取值
tk tk 604800, 当tk 302400 t , 其它情况 k
15
计算卫星位置(2/5)
4. 对平均运动角速度进行改正
n n0 n
5. 计算平近点角
M k M 0 ntk
tr Fe A sin Ek F 2 10 -1 2 4.442807633 10 sec m c2
2
tr TGD
其中: tr为相对论效应改正。
20
计算卫星运动速度(1)
1,
n Ek 1 e cos Ek
2
f 1/ 2 cos 2, 1 e 2 E k vk k E 1 e 2 cos k 2 uk k 1 2Cus cos 2 k 2Cuc sin 2 k 3, rk Ek Ae sin Ek 2 k Crs cos 2 k Crc sin 2 k I k IODT 2 k Cis cos 2 k Cic sin 2 k
n n
内插精度:采用17阶多项式,精度可优于5mm
25
轨道内插(☆)
拉格朗日多项式内插
26
算法
内插精度
采用17阶多项式,精度可优于5mm
26
轨道内插
拉格朗日多项式内插(续)
27
注意事项:
要对某一时段的轨道进行内插,精密轨道数据应完 全覆盖该时段,并且前后各有至少9个历元的延伸 下载数据时,需要观测当天及前后各一天的数据
X xk cos Lk yk cos ik sin Lk Y xk sin Lk yk cos ik cos Lk Z y sin i k k