卫星导航实验报告.docx
《卫星导航实验报告.docx》由会员分享,可在线阅读,更多相关《卫星导航实验报告.docx(14页珍藏版)》请在冰豆网上搜索。
![卫星导航实验报告.docx](https://file1.bdocx.com/fileroot1/2022-10/11/2a2501b1-d1c8-4c78-bab9-09f3c2f7ca09/2a2501b1-d1c8-4c78-bab9-09f3c2f7ca091.gif)
卫星导航实验报告
电子科技大学通信与信息工程学院
本科教学
卫星与导航系列实验
标准实验报告
课程名称:
● 定位与导航原理与应用
● 定位与导航工程
电子科技大学教务处制表
电子科技大学通信与信息工程学院
标准实验报告
实验名称:
导航信号传输模型仿真
电子科技大学教务处制表
电子科技大学
实验报告
学生姓名:
侯玉皓学号:
*************提交日期:
2015.6.24
得分
项目名称:
实时卫星位置、速度和时间解算(PVT 解算)及结果分析
【实验目的】
1) 理解实时卫星位置解算在卫星导航解算过程中所起的作用,了解为完成
卫星位置解算所需的条件;
2) 了解 GPS 时间、卫星的额定轨道周期的含义,了解星历的构成、周期
及应用条件;
3) 了解 Doppler 频移的成因、作用以及根据已知条件预测 Doppler 频移
的方法;
4) 了解 Doppler 频移的变化范围及其与卫星仰角之间的关系;
5) 能够根据实验数据编写求解 Doppler 频移的相关程序。
【实验原理】
实时卫星位置解算在整个导航解算过程中具有举足轻重的作用,通常我们为
了获得接收机的地理位置,需要对卫星发射导航电文时的时间及运行速度有所
了解,所以可以说,卫星的实时速度和时间是解算卫星实时位置的基础,而卫
星的实时位置又是解算接收机三维位置坐标的基础。
可见卫星实时位置、时间
及速度在整个定位过程中的重要地位。
一般来说要确定接收机的三维位置,需
要同时解算出至少四颗卫星的实时位置。
卫星某一时刻发出的信号可以分为三部分:
载波(L1)、测距码(C\A)、导
航电文。
对 GPS 某颗卫星进行实时位置的解算,需要已知这颗卫星的星历和周内
时,这些信息都包含在速率为 50bps 的导航电文中(图 3.1 中的数据码)。
导航
电文通过测距码(C/A 码)进行扩频,然后用扩频的信号去调制频率为 L1 的正弦
波载波,然后卫星将调制后的载波信号播发出去。
其模型可以用如下公式表示:
SL1(t) = Ap (P (t)⊕ Di (t)) cos(ω L1t +ψ 1) + Ac (Ci (t)⊕ Di (t)) sin(ω L1t +ψ 1)
(3.1)
测距码 数据码
载波
i
其中 Ap 和 Ac 是调制幅度, P , Ci 是精码和粗码,它们都是对数据码 Di 的扩
频码,数据码经过扩频后分为两路进行调制。
在本地接收机收到卫星信号后,
通过剥离载波 L1,还原其扩频之后的信号,然后按照导航电文的格式最终将数
据码编译成导航电文(数据码)。
它可分为 5 个部分:
●遥测字导航电文前导+授权用户信息
●交接字由于 P 码数据长,不易捕获,需要 C\A 码的辅助来捕获
●数据块 1 钟修正参数、期龄、星期编号等
●数据块 2 星历(在子帧 2、3 中),用于计算卫星位置
●数据块 3 历书(子帧 4、5 中)提供卫星布局,健康状况等信息
本实验的一个重点在于通过导航电文来获取其卫星发射时间和星历从而得到
卫星的实时位置。
GPS 卫星在空间中的位置是时间 t 的函数,要计算卫星的位置首先要收集齐
时钟和星历参数,然后需要确定卫星的发射时刻。
导航信号的发射时刻可以通过
导航电文在每一子帧的的交接字中的周内时计数器(Z 计数)得知,通过该计数
器可以得到估算的发射时刻 tc 。
同时在子帧 1 中包含钟改正参数 a0 , a1, a2 来对
估算的时钟进行修正。
导航电文中的数据块 2 是卫星星历信息,数据块 3 是卫星的历书信息。
星历
主要向用户提供有关计算卫星运行位置的信息,而历书主要向用户提供 GPS 卫星
参数(子帧 2 中)
意义
参数(子帧 3
中)
意义
crs
轨道半径的正弦调
和修正幅度
cic
倾斜角的余弦调和
修正项幅度
Δn
计算值的平均移动
误差
Ωe
在每星期历元轨道
平面上升点的经度
m0
参考时间的平近点
角
cis
倾斜角的正弦调和
修正项的幅度
cuc
纬度辅角的余弦调
和修正项幅度
i0
参考时间的倾斜角
es
离心率
crc
轨道半径的正弦调
和修正项幅度
cus
纬度辅角的正弦调
和修正项幅度
ω
近地点的幅度
as
长半轴平方根
Ω
赤径的速度
toe
参考时间星历
IODE
数据与星历发布号
IDOT
倾斜角的速度
的概略星历及卫星的工作状态等。
在数据块 2(子帧 2 和 3)中包含有许多重要星历参数。
星历数据参数如
下表所示(一颗卫星):
表 3.1 星历数据参数
后续导航解算单元根据导航电文中相应的参数进行卫星位置解算、各种实时
误差的消除、本地接收机位置解算以及定位精度因子(DOP)的计算等工作。
也
就是说,根据收到的导航电文,接收端就可以通过相关公式计算出发送电文时刻
卫星的大致位置,这对于解算出接收机的地理位置尤为重要。
卫星的角速度和切向速度可以通过卫星轨道模型来进行估计。
GPS 卫星的额
定轨道周期是半个恒星日,或者说 11 小时 58 分钟 2.05 秒;各轨道接近于圆形,
轨道半径(即从地球质心到卫星的额定距离)大约为 26560km。
由此可以计算得
到卫星的运行的角速度和切向速度(如图 3.3):
ω=2π/(11*3600+58*60+2.05)≈0.0001458 rad/s(3.2)
然后通过角速度ω和已知的轨道半径 rs(26560km)计算切向速度
vs=rs*ω≈26560km*0.0001458≈3874m/s(3.3)
本实验的另一个重要内容是 Doppler 频移的预测,即通过对卫星进行相隔时
间为 1s 的多点测量(本实验给出了三点),进而估计 Doppler 频移。
● Doppler 频移产生原理:
由于卫星与接收机存在相对径向运动,因此信号接收频率会随这种相对运
动而发生偏移,称为 Doppler 频移,其直接表现是接收机接收到的卫星信号不
在 L1 频点(1575.42MHz)上,而是在其基础上叠加了一个大约为-5KHz 到
+5KHz 左右的频率偏移。
Doppler 频移的存在给前端相关器进行频域搜索和卫星
信号捕获带来了诸多困难。
如果事先能够估算出 Doppler 频偏,就会降低捕获
难度,缩短捕获时间,进而缩短接收机的启动时间。
接收机的启动时间是衡量
接收机性能好坏的重要参数之一,而实现卫星信号的快速捕获,缩短接收机的
启动时间也是目前 GNSS 领域的热点问题。
● Doppler 频移的计算:
已知卫星位置和本地接收机的初始位置,根据空间两点间的距离公式,可
以得出卫星到接收机的距离 d。
设某卫星在短时间 t 内经过点 S1、S2,接收机
到点 S1、S2 的距离分别为 d1、d2,。
在 t 相对较小(本实验取 t=1s)的情况下,
我们可近似认
d2 - d1
t
是卫星与接收机在 t 时间内的平均相对径向运动速度,再
将此速度转换为频率的形式就可以得到 Doppler 频移的估计值。
设本地接收机的初始位置为 R(xr,yr,zr),卫星所经历的空间两点的坐
标分别为 S1 (x1,y1,z1)、S2(x2,y2,z2),间隔时间为 t,卫星与接收机
平均相对径向运动速度为 vd,光速为 c,Doppler 频移为 fd,则 Doppler 频
移预测的具体公式如下所示:
d1 = (x1 - xr )2 + ( y1 - yr )2 + (z1 - xr )2
vd
22
d2 = (x2 - xr )2 + ( y2 - yr )2 + (z2 - xr )2
d1d2
22
d2 - d1
1
c
图 3.1
其中, d1, d2 , d3 为一颗卫星不同时刻到接收机的伪距, vd 为两个时刻之间
的径向速度。
Doppler 频移与卫星的仰角有关,卫星仰角越大,Doppler 频移越小。
当卫
星的仰角为 90 度(即卫星在接收机正上方的天顶上)时,理论上 Doppler 频
移为零。
本实验根据卫星位置和本地接收机的初始位置算出卫星的仰角,来验
证 Doppler 频移同卫星仰角之间的关系.
【实验步骤】
1) 查阅资料建立相应模型,在 C/C++或者 Matlab 平台上根据星历数据及其定
义实现对卫星实时位置的解算;
2)运行主程序以取得可视卫星的实时导航数据(如 GPS 时间、各颗卫星的星
历等)。
将实验平台仪器的 USB 端口接入电脑,待驱动安装成功后,打开
实验一程序;
3)在 “选 择 GPS 时 刻 ”列 表 框 的 下 拉 菜 单 中 , 任 意 选 择 一 个 GPS 时 刻 。
(注:
北斗和 GPS 系统由于存在系统时差而具有不同的周内时。
这里的
GPS 时刻,对于 GPS 卫星指其系统周内时,对于北斗卫星则表示将北斗的
周内时加上系统时差换算之后的 GPS 系统周内时);
4)在“所选时刻可视卫星星历”列表框中出现所选时刻天空中所有可视卫星的
星历信息,如图 3.6 所示。
选定一颗卫星,将“所选时刻可视卫星星历”中
该卫星对应的参数输入到 1)中的解算代码中,计算卫星位置。
5)在“选择卫星号”列表框的下拉菜单中,出现所选时刻天空中所有可视 卫
星的序号。
北斗卫星的编号从 101 开始,即北斗 1 号星的编号为 101。
选择与 4)中对应的卫星序号,在“卫星位置信息”中会列出所选时刻该卫
星的实时位置如图 3.7。
对比该位置与之前代码解算的结果。
并将其记录在
表格中(表格一);
6)在“卫星位置信息”列表框中同时会出现所选卫星在所选 GPS 时刻一秒和
两秒后的所对应的 ECEF 坐标系下的三维坐标以及接收机在 ECEF 坐标系
下的初始位置坐标,这些数据用于求解 Doppler 频移,根据附表记录其值
(表格一);
7)在“卫星位置信息”列表框中还会出现该卫星在 11 小时 58 分后的 ECEF
位置坐标,这是根据卫星在所选 GPS 时刻的星历数据推算出来的,用以验
证卫星的额定轨道周期。
根据附表记录其值(表格一);
8)根据步骤 6)记录的数据,在 C/C++或 Matlab 环境下编写代码,实现对
Doppler 频移估值的求解,将所得数据记录在附表中(表格一);
9)重复前面实验,记录并解算出所选时刻天空中所有可视卫星的相关数据,按
附表格式将所得数据记录下来(表格二);
10) 重复前面实验,比较并分析不同时刻同一卫星的仰角、ECEF 坐标系下的坐标
以及 Doppler 频移的差异和同一时刻不同卫星仰角、坐标及 Doppler 频移差
异;
11) 重复步骤 2 到步骤 11,选择不同时间段进行记录、求解、分析。
【核心程序代码】
%% Find satellite's position ------------------------------------------
----
%Restore semi-major axis
a= eph(prn).sqrtA * eph(prn).sqrtA;
%Time correction
tk = check_t(time - eph(prn).t_oe);
%Initial mean motion
n0 = sqrt(GM / a^3);
%Mean motion
n= n0 + eph(prn).deltan;
%Mean anomaly