GPS 卫星轨道计算及其MATLAB 仿真
黎奇,白征东,李帅,陈波波
(清华大学地球空间信息研究所,北京100084)
一、程序设计思路
1. 读取RINEX 文件(注意:文件路径)
2. 计算测量日周积秒(测量日的格里历→GPST )
3. 按卫星轨道计算步骤计算WGS-84 坐标系坐标 (内插)
4. 按需要将WGS-84 坐标系下坐标转换为所需坐标系坐标
5. 画图输出
主程序
function tracePlot() % 主程序
format long
%读取RINEX格式n文件
data = RinexNreader('C:\Users\Richie\Desktop\卫星轨迹\brdc2750.16n',1); % 注意读取路径和卫星编号
%计算测量日的周积秒
[JD,FOD,GPSW,SOW,DOY,DOW] =
GCtoGPS(data(1,1),data(2,1),data(3,1),data(4,1),data(5,1),data(6,1));
t0 = SOW; % SOW-周积秒
%计算卫星坐标
i = 1;
for t = t0:10*60:(t0+86400) % 从 t0 到 t0+86400秒(1天) 间隔 600秒(10min),决定轨迹疏密
satPosECEF(:,i) = orbitDetermine(data,t);
% 输入:卫星PRN编号、时刻t
% 输出:卫星WGS-84坐标x、y、z
[B_ECEF(i),L_ECEF(i)] = XYZtoBLH(satPosECEF(1,i),satPosECEF(2,i),satPosECEF(3,i));
% XYZtoBLH - 将卫星坐标的XYZ形式变为BLH形式,东经为正,西经为负,北纬为正,南纬为负
i = i + 1;
end
geoshow('landareas.shp','FaceColor', [0.15 0.5 0.15]),hold on % 绘制底图地球
plot(L_ECEF,B_ECEF,'r.'); % 绘制坐标
end
二、n 文件说明及读取程序
参考时刻 的 RINEX 格式的 “ . n ”广播星历文件具体如下:(加粗部分为本次轨道
t
oe
计算中实际使用的参数)
(头文件)
END OF HEAD
(61-73)
卫星PRN 号 参考时刻toe 2
卫星钟差常数项a ,秒 卫星钟差漂移项a ,秒/秒 卫星钟差漂移速率a ,秒/秒
f 0 f 1 f 2