37 lines
817 B
Matlab
37 lines
817 B
Matlab
|
function dtr = sv_clock_bias(t, toc, a0, a1, a2, e, sqrtA, toe, Delta_n, M0)
|
|||
|
% 输入:
|
|||
|
% a0 a1 a2 toc: 卫星时钟校正模型方程中3个参数, toc: 第一数据块参考时间, 被用作时钟校正模型中时间参考点
|
|||
|
|
|||
|
% dtr: 卫星时钟偏差
|
|||
|
|
|||
|
dtr = a0+a1*(t-toc)+a2*(t-toc).^2;%t为未做钟差改正的观测时刻
|
|||
|
|
|||
|
|
|||
|
F = -4.442807633e-10;
|
|||
|
mu = 3.986005e14;
|
|||
|
A = sqrtA^2;
|
|||
|
cmm = sqrt(mu/A^3); % computed mean motion
|
|||
|
tk = t - toe;
|
|||
|
% account for beginning or end of week crossover
|
|||
|
if (tk > 302400)
|
|||
|
tk = tk-604800;
|
|||
|
end
|
|||
|
if (tk < -302400)
|
|||
|
tk = tk+604800;
|
|||
|
end
|
|||
|
% apply mean motion correction
|
|||
|
n = cmm + Delta_n;
|
|||
|
|
|||
|
% Mean anomaly
|
|||
|
mk = M0 + n*tk;
|
|||
|
|
|||
|
% solve for eccentric anomaly
|
|||
|
Ek = mk;
|
|||
|
Ek = mk + e*sin(Ek);
|
|||
|
Ek = mk + e*sin(Ek);
|
|||
|
Ek = mk + e*sin(Ek);
|
|||
|
|
|||
|
% dsv 时间为s
|
|||
|
dtr = dtr + F*e*sqrtA*sin(Ek);
|
|||
|
|
|||
|
end
|