2012年9月12日水曜日

放送暦の計算(2)

前に放送暦で衛星座標を計算したらRTKLIBのsatpossと100m以上の差が出てしまった。
(ちなみにQZS)

なんでかなと思っていたら、satposを使うと受信機から衛星までの伝搬時間分が補正されてしまうためだった。(前にメモした話のやつ)
単に時刻決め打ちで衛星座標を計算するなら、eph2posを使えば良い。

計算してみると、


------------------------------------------------------------------
2012/08/16 00:00:00 (x, y, z)
(自前)    -23318436.155264, 18586028.182482, -25160301.817461 
(eph2pos) -23318436.155244, 18586028.182504, -25160301.817463 (RTKLIB API) 
------------------------------------------------------------------


一応計算は合っているぽい。

この微妙な差はEkを計算する際のiteration方法で出るのだろうか??

ちなみにEkの計算は、ただのiterationと、Newton-Raphson法の2種類試してみたのだけど、収束まで1,2回しか変わらなかった。

------------------------------------------------------------------
static double upd_E(const double E, const double M, const double e) {
    /* return M+e*sin(E); */ /* simple */
    return E-(E-M-e*sin(E))/(1-e*cos(E)); /* Newton-Raphson */
}
------------------------------------------------------------------

0 件のコメント:

コメントを投稿