前にやったときは太陽の計算とかはだいぶ端折ってたけど、今回はそのあたりの確認がメイン。
で、調子に乗って、動画で出力し始めて、処理に凄まじく時間がかかるという。。。
APNGで出力してて、FFmpegでエンコードしてるんだけど、FFmpegでAPNG出すと、差分だけ出してるのね。さすが動画エンコーダ。めっちゃ遅いけど。。。MP4を指定するとガンガン吐き出してくれる。画像で突っ込むんだからAPNGで出したほうが早いかな、と思ってたけど、動画で空間・時間圧縮するほうが早い。さすが世界中で使われてるエンコード形式だけあって最適化も凄まじいらしい。
軌道速度で見ると、1フレーム1分、20フレーム毎秒、くらいが上限かなぁ。それでも4.5秒位で地球1週するので目まぐるしい。しかし、1年分を表示すると7.3時間かかる。太陽の動きとかを見るには1年分が必要だが、衛星の表示も考えるとそこまではできない。悩ましい。
試しに、1フレームあたり1day/MeanMotionを進めたら、太陽と同期して1日に地球1週するような動きになった。なるほど…… 軌道面は慣性空間に固定されてるから、地球から見ると太陽も衛星もどんどん動いていく。
太陽を基準にした日向・日陰の領域は、太陽を中心に半径90度の範囲なわけだけど、衛星から見た日向は更に広い範囲で、一見、判定処理に失敗しているような見た目になる。衛星の可視園に日向の範囲が重なっていれば、衛星にも日照がある。
衛星の日向判定は、太陽方向の単位ベクトルと衛星の単位ベクトルの内積を取り、acos(地球半径/衛星ベクトル長さ)と比較して、行っている。もうちょっとかんたんな処理で行けると予想してたんだけど、思ってたより複雑。
ググると、70年代から80年代頃の資料がいくつか出てくる。当時は計算能力に余裕がないので、近似的に高精度な判定を高速に行う処理が発展していたらしい。最近だとキューブサットの資料とかに計算方法が書いてある。それ以外だと、特記するような話じゃないのか、実用衛星周りだとあまり出てこない。「ウチの衛星運用ソフトならこんな事ができますよ!!」みたいなパンフにしれっと「できます」と書いてある程度。
地球観測衛星で、特に光学観測メインの場合、「ある場所を観測するときに昼間なのはいつか」とか「ある時期に観測する場合に昼間なのはどこか」みたいな計算が必要になる。あるいは、偵察衛星みたいな用途だと、撮影したときの太陽の方向がわかれば、影から高さを計算したり、といったことができるので、太陽の情報は重要。他にも、高感度なミッション機器だと太陽入射に制限があって、観測機器が太陽に向かないような制御が必要な場合もあるので、姿勢変更指示の前に太陽のシミュレーションが必要、といった用途もある。
ただ、掩体観測みたいな、それ自体がミッションでない限りは、あまり高精度にやる必要はない気がする。地球を球体に近似すると南北方向で数十kmの誤差があるけど、軌道速度で言えば数秒から数十秒くらいの誤差で収まるはず。それに、地球を楕円体で扱ったとしても、今度は大気の屈折とか、あるいは雲の影響とかも出てくるし、日向・日陰の移動も、大気の影響である程度時間をかけて移動するし。
一番支配的なのは、TLEの計算誤差かな。少なくとも10km前後の誤差はあるので、地球の楕円体や雲と同じ程度には誤差要因となるはず。
***
ISSと太陽を表示すると、こんな感じ

ユーラシア大陸中央部の橙色の点がISS。ISSから伸びる線が未来予想位置で、オレンジが日向、茶色が日陰、となる。
オーストラリアの右にある赤点が太陽。太陽から赤い線までが地上の明暗境界、その外側の白い線までがISSの高度の明暗境界。地上の明暗境界と上空の明暗境界の差は、その高さでの可視範囲と同じ角度の広さを持つ。
地上が暗闇側で衛星が日照側にいるときに地上から衛星を見れば、観測者の周囲が暗く、衛星が輝点として見えるので観測しやすいが、地上からの太陽の判定は、それはそれで処理が面倒。
簡略的には、その地点のECEFをECIに変換して、その後は衛星と同じように日照判定かなぁ。地上側が明暗境界ギリギリだと、すでにかなり明るいはずなので、そのあたりもある程度余裕を持ったしきい値を作らなきゃいけないだろうし。
アニメーションで見てみると、図法による歪みがかなり大きくて、両極付近で急激に動く。離心率の大きい衛星みたいな見た目だけど、軌道1週で遠地点が2個ある軌道はありえないので、よく見れば離心率による実際の速度の違いと、図法による見かけ上の速度の違いが、わかるかも。極端に離心率大きくないとわからない気もするけど。
***
とりあえず、日向・日陰の判定ができるようになったので、3D表示に反映。軌道伝搬は作ってないので、テストデータにALOS2のTLEを使用。


太陽(白線の方向)側にあるときは白で、日陰側ではグレーで表示するようにした。法線による陰影処理で分かりづらいけど、いちおう、それらしく反映されてる。
日陰チューブは、やはり透過しないと見づらいので、非表示にした。
姿勢は慣性空間に対して固定しているので、太陽電池パドルやSARアンテナが変な方向を向いてる。
ISSのデータを表示すると、太陽方向が変わっても、軌道面は慣性空間にほぼ固定されている。ALOS2のデータだと、太陽に追従して軌道面が変化してる気がする。太陽同期軌道って本当に太陽に同期してるんだな。
3D表示は、いろいろ機能が増えてきて、だいぶ使いづらくなってきた。
そもそも、元々は軌道変更のΔVインパルスをGUIで表示したい、というだけだったのに、どんどん機能が増えていってる。。。
このあたりで一旦軽くリファクタリングして、軌道計算に戻りたい。
0 件のコメント:
コメントを投稿