
中央の青丸が地球、高度400kmの円軌道から開始して、2回の軌道変更で半径9000kmの軌道に遷移する、といった図。
最初の高度と目的の高度を使って2回のdVを計算して、必要な増速量に従って吹けば、ちゃんと目的の軌道に乗れるのが楽しい。昔、iOSのゲームで2次元平面でロケットを飛ばすゲームを遊んでたことがあったけど、あれは噴射方向や噴射量を手動で調整するので、なかなか狙った噴射が行えなかった。
今のところは2回だけインパルス噴射を行うだけのコマンドしかないけど、もう少し細かく調整できるようにしたい。あとは、インパルス噴射だけでなく、連続的な噴射も再現して、電気推進でのスパイラル遷移とかもやってみたい。
あるいは、3次元空間で計算すれば、軌道面の変更とかも遊べるようになる。表示の問題とかいろいろ大変そうだけど。
もしくは、連続噴射ができるなら、高度ゼロ、速度ゼロ(実際には0.46km/sくらい)からの連続噴射を行えば、ロケットの再現もできる。
しばらくは、こいつで遊ぶ予定。
まぁ、軌道変更のパラメータを変えて遊びたいだけなら、Steamとかで探せばいろいろ出てくるんだろうけどね。。。
***
追記
近地点からの位相を指定して吹けるようにした。

最初に0.1revで100m/s、その後は近地点からのオフセットで吹いてる。遠地点で吹きたい場合は、近地点からpiずらした場所で吹いている。
噴射効率で言えば遠地点を基準にするべきかもしれないが、Argument Of Perigeeを基準にしてるので、プログラム的にはこっちのほうが自然な感じがする。
ある程度の誤差はあるけど、おおよそ狙い通りの位相で吹けてるので、問題ないんじゃなかろうか。
今は増速量は予め配列に決め打ちだが、目標高度とかを指定できるようにしたい。まぁ、それくらいならなんとかなるはず。そのうち実装する。
2次元平面とはいえ、カルテシアン軌道要素そのものなので、それに準じた計算が必要になる。TLEのグラフ化でも、ランデブ飛行を扱おうとするとケプラリアンでは扱いづらいので、いずれはカルテシアンも扱わなきゃな、と思ってただけど、思わぬところで片鱗に触れてしまった。
日本語圏だとカルテシアンはあまり情報が出てこない。というか、英語圏でもさほど扱われてない。今回は惑星の計算のページのJavaScriptコードを参考に2次元空間に簡略化して実装している。
0 件のコメント:
コメントを投稿