资源简介
使用Matlab,利用卫星星历文件计算坐标,包括数据、代码以及算法的流程图。代码包括两个文件,一个计算GPS时,一个计算坐标。
代码片段和文件信息
%卫星星历计算坐标
%分别计算卫星的坐标
% 规定数据格式
%导入卫星文件
data = importdata(‘PRN7.txt‘); %计算PRN4卫星坐标时,将文件名改为‘PRN4.txt‘
%1.求轨道长半轴a
a =data(24)^2;
%2.计算平均角速度
GM = 3.9860047*10^14; % 地球引力常数
n_0 = sqrt(GM/(a^3));
%3.计算从需要时刻到参考时刻的时间差tk
t_0 = data(31);
for j = 1:21
tk(j) = getGPStime(413016j-10) - t_0;
if tk(j)>302400
tk(j) = tk(j) - 604800;
elseif tk(j) < -302400
tk(j) = tk(j)+604800;
end
%4.改正平角速度
n = n_0 + data(13);
%5.计算平近点角Mk
M_0 =data(14);
Mk = M_0 + n * tk(j);
%6.计算偏近点角Ek;
% 开普勒方程迭代
e=data(22);
i = 1;
Ek(i) = Mk; %设置迭代初值
change_Ek = Ek(i);
while i<10
i = i + 1;
Ek(i) = Mk + e*sin(Ek(i-1));
change_Ek = abs(Ek(i)-Ek(i-1));
end
Ek_ = Ek(i); %迭代最后的结果为偏近点角
%7.计算真近点角fk
fk_cos = cos(Ek_)-e;
fk_sin = sqrt(1-e^2)*sin(Ek_);
fk = atan(abs(fk_sin/fk_cos));
% 在此处需要主注意,需要对fk的象限进行改正
if fk_cos < 0 && fk_sin > 0
fk = pi-fk;
end
if fk_cos < 0 &&fk_sin < 0
fk = pi+fk;
end
if fk_cos > 0 && fk_sin < 0
fk=2*pi-fk;
end
%8.计算升交角距faik
omega = data(43);
faik = fk + omega;
%9.计算卫星轨道摄动改正数(6个)
Cus = data(23);
Crs = data(12);
Crc = data(42);
Cis = data(34);
Cic = data(32);
Cuc = data(21);
duk = Cus*sin(2*faik)+Cuc*cos(2*faik);
drk = Crs*sin(2*faik)+Crc*cos(2*faik);
dik = Cis*sin(2*faik)+Cic*cos(2*faik);
%10.计算改正后的向径
rk = a*(1-e*cos(Ek_)) + drk;
%11.计算改正后的倾角 ik
i_0 = data(41);
i_d = data(51);
ik = i_0 +dik +i_d*tk(j);
%12.计算升交角经度Lk
O_0 = data(33);
O_d = data(44);
% O = Ot +O_d * tk; % 观测瞬间的升交点赤经
omega_e = 7.292115*10^-5; %地球自转角速度
Lk = (O_0+(O_d-omega_e)*tk(j)-omega_e*t_0);
%13.计算卫星在轨道平面内的坐标
uk = faik + duk;
x_k(j) = rk * cos(uk);
y_k(j) = rk * sin(uk);
z_k(j) = 0;
%14.计算卫星在协议地球坐标系中的位置
%计算旋转矩阵
R(11) = cos(Lk);
R(12) = -sin(Lk)*cos(ik);
R(13) = sin(Lk)*sin(ik);
R(21) = sin(Lk);
R(22) = cos(Lk)*cos(ik);
R(23) = -cos(Lk)*sin(ik);
R(31) = 0;
R(32) = sin(ik);
R(33) = cos(ik);
XYZ(:j) = R * [x_k(j);y_k(j);z_k(j)];
fprintf(‘分钟:%d\n‘j-1)
fprintf(‘所测坐标X=%f\n‘XYZ(1))
fprintf(‘所测坐标Y=%f\n‘XYZ(2))
fprintf(‘所测坐标Z=%f\n‘XYZ(3))
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2705 2019-06-05 09:35 依据卫星星历计算坐标(含代码、数据以及算法流程图)\代码\calGPS.m
文件 1303 2019-06-04 15:03 依据卫星星历计算坐标(含代码、数据以及算法流程图)\代码\getGPStime.m
文件 1569 2019-05-28 11:37 依据卫星星历计算坐标(含代码、数据以及算法流程图)\数据\20040130.04N - 未修改.txt
文件 557 2019-06-03 09:42 依据卫星星历计算坐标(含代码、数据以及算法流程图)\数据\PRN4.txt
文件 552 2019-06-03 11:26 依据卫星星历计算坐标(含代码、数据以及算法流程图)\数据\PRN7.txt
文件 36747 2019-06-04 15:08 依据卫星星历计算坐标(含代码、数据以及算法流程图)\算法流程图.vsdx
目录 0 2020-05-18 17:49 依据卫星星历计算坐标(含代码、数据以及算法流程图)\代码
目录 0 2020-05-18 17:49 依据卫星星历计算坐标(含代码、数据以及算法流程图)\数据
目录 0 2020-05-18 17:49 依据卫星星历计算坐标(含代码、数据以及算法流程图)
----------- --------- ---------- ----- ----
43433 9
相关资源
- Matlab强化学习_网格迷宫问题_SarsaLam
- MATLAB强化学习_多臂赌机问题_时变eg
- MATLAB强化学习_多臂赌机问题_softmax策
- GPS-INS组合导航Matlab程序.zip
- 协同粒子群matlab程序
- 粒子群算法应用在路径规划matlab
- matlab模拟复杂网络攻击源代码.zip
- 一维非稳态对流扩散问题有限体积
- MATLAB 元胞自动机交通流双车道
- mdp马尔科夫过程的MATLAB代码
- 电力系统状态估计-最小二乘+不良数据
- 投影寻踪-遗传算法MATLAB程序
- 霍夫变换MATLAB程序代码
- 电力电子AC-AC变换器MATLAB仿真.rar
- matlab图形取点程序
- 凯斯西储大学轴承故障特征频率计算
- 电力系统机组组合优化问题
- 二维傅里叶变换二维峰值检索MATLAB代
- bp神经网络的matlab实现.m文件
- matlab电池模型
- matlab车牌识别字符模版
- STBC-code.zip
- MIMO-OFDM.zip
- ARMA功率谱估计
- 单点经纬度转换坐标
- 永磁同步电机模型预测控制仿真模型
- GALLAGER校验矩阵详细构造代码
- Matlab 由轨道根数计算地心惯性坐标系
-
MATLAB-创建simuli
nk - GA遗传算法matlab程序
评论
共有 条评论