2016年11月22日火曜日

第1回:関数電卓で行う衛星位置の計算

おわび

今シリーズで扱う計算式ですが、式自体に大きな誤りは無いと思いますが、手順に問題があります。既知の問題として、離心率が大きい軌道を計算した場合に不正な値となります。以後で使用する軌道の離心率は充分に小さいので大きな問題とはなりませんが、追って修正したいと思っています。
***


何回かの連載で「関数電卓で行う衛星位置の計算」というネタを扱おうかと思います。途中で失速するかもしれませんが。。。

なお、僕は衛星とか軌道とかちゃんと勉強したこと無いので間違ってたらごめんなさい。


初回の今回は起動計算は行いません。
軌道計算に必用な情報を集めるところから開始します。

これからのシリーズで使うデータは以下のTLEを元にします。

ISS (ZARYA)             
1 25544U 98067A   16326.55347831  .00003030  00000-0  53814-4 0  9995
2 25544  51.6454 353.2810 0006168 238.1568 278.5578 15.53693589 29460

見て分かる通り、ISS(国際宇宙ステーション)のデータです。

軌道計算に必用な要素は1)Epoch Time, 2)BSTAR drag, 3)軌道傾斜角, 4)昇交点赤経, 5)離心率, 6)近地点引数, 7)平均近点角, 8)平均運動 の8要素になります。
さらに、観測日時であるとか、計算に必用ないくつかの定数がありますが、定数については必要になった時に説明していきます。

また、観測日時については2016年11月22日 21時53分15秒(JST)を使用します。このブログを書いている時間です。もっとも、今回は観測日時の情報は使いませんが。


さて、突然ですが参考資料です。
きどうようそのひみつ
・人工衛星位置推算の実際(国土情報処理工学の"人工衛星の位置推算"というリンク)

前者は今回説明することをわかりやすく説明してくれます。まずはここを読めばTLEに何が書いてあるかわかります。
後者で扱っていることは今回は扱いませんが、要素の名前をこの資料と一致させています。


とりあえずTLEから情報を抜き出してみます。

Epoch TimeET16年326.55347831日
BSTAR dragM20.53814*10^-4
軌道傾斜角i51.6454
昇交点赤経Ω0353.2810
離心率e0.0006168
近地点引数ω0238.1568
平均近点角M0278.5578
平均運動M115.53693589

基本的にTLEからのコピペです。同じ数字があるはずですから、探してみて下さい。
例えばBSTAR dragはTLEでは先頭の"0."が省略されています。またこの値は指数ですが、"e"もしくは"*10^"が省略されているので書き加えています。
離心率についても同様で、この値は指数ではありませんが、0以上1未満であることが保証されているため、先頭の"0."は省略されています。
その他、EpochTimeは年の下2桁のみ書かれています。その為1999年から2000年へ切り替わるタイミング等で問題が発生する可能性があります。もっとも、次回は2100年でまだ80年以上先ですから、当分は気にしなくてもいいでしょう。もちろん、「俺の作ったプログラムは100年以上使われるはずだ!」という人はちゃんと考慮しておく必要があります。今回は関数電卓で計算する以上、途中で人間が適切に判断するはずだという期待において気にしないことにします。


地球直径や重力定数といった定数類を除けば、以上の値があれば衛星の位置を計算することができます。というところで、今回はおしまい。
次回は衛星の位置をECIという座標系で表現できるところまでを行いたいと思っています。
その後でECEFやBLHになりますから、おそらく第3回あたりで衛星の位置を緯度経度高度に算出できていると思います。

0 件のコメント:

コメントを投稿