理系的な戯れ

理工学系とくにロボットやドローンに関する計算・プログラミング等の話題を扱って、そのようなことに興味がある人たちのお役に立てればと思っております。

3体問題アポロ8号のキセキ

f:id:kouhei_ito:20200326004526p:plain

はじめに

こんにちは、こうへいです。

いつの間にか記事数が50記事になりました!

COVID-19に関する情報が気になりブログ更新をサボっていて申し訳ないのですが 今日は前回に引き続き、3体問題について見ていきます。

取り扱う話題のベースはアポロ8号です。

1968年に打ち上げられたアポロ8号は今となっては初めて月面着陸を成功させた11号に比べて 有名ではないかもしれませんが、人類が初めて地球以外の天体の周りを周回しました。 宇宙飛行士自体も成功率を50%と考えていたと言う話も伝わっています。 アポロ計画全体もそうですが、まさに「奇跡」的な成功だったと言えます。

次の写真はアポロ8号が撮影した「地球の出」で当時最も有名な写真と言われました。

f:id:kouhei_ito:20200326010110j:plain
月から昇る地球

3体問題

前回も申しましたが、2体の問題は解析的に解けるのですが、3体の問題以上は解けないので 数値計算に頼ることになります。

幸いにも、前回作ったプログラムはいくらでも天体を増やせるので、地球、月にに加えて アポロ8号(司令船・機械船)を入れたいと思います。

3体の場合は、下の図のように,それぞれが他の2つの天体からの万有引力を受けます。

f:id:kouhei_ito:20200411123004p:plain
互いに万有引力が作用する

フリーフライトで地球に戻ってくる

歴史ではアポロ8号宇宙船が地球を飛び立ち,月に行き,月を周回して,また地球に戻ってきます. 月を周回するには,月の近くで,ロケットを噴射して,月軌道に乗せないとダメなのですが, 今回の簡易的な計算では,地球を飛び立つ初速と角度をうまく調整して,地球に帰れるようにします. 途中で,軌道修正用のロケットの噴射などは一切行わない設定です.

地球を飛び立ったアポロ宇宙船は,ロケットの噴射が終わり推進力が失われると,地球の引力に引かれ,徐々にスピードが落ちていきます. 推進力が失われたときに適度なスピードになっていれば,地球に落ちずに月に向かうことができます.

運よく,地球に逆戻りにならずに,やがて, 月に近づくと,今度は月の引力につかまり,月に落ちていきます.

その際に,適度な速度があると,月に落下せずに,月の外周を回って(スイングバイ),また地球に戻ってきます.

f:id:kouhei_ito:20200411140200p:plain
8の字飛行

実際のアプロ8号はフリーフライト(飛行途中に軌道修正しない)ではないですが,当時のロゴマークは8の字飛行になっています.

f:id:kouhei_ito:20200411140805p:plain
アポロ8号のロゴマーク

フリーフライトの飛行シミュレーション結果

総当たり法で解を見出す.

初速度と発射角の与え方によっては,地球に落ちたり,月を素通りしたり,大変シビアなものです. あまり賢くないやり方ですが,総当たり法を採用してみました.

総当たりで解を探すのですが,ある範囲を均等に探索するのではなく,初速度と角度をある範囲でランダムに決めて 100回計算を行いました.

100回の試行の中でよさそうな結果に対して,範囲を狭めて,同じようにランダムに値を決めて,同様に100回の計算を行い 良い結果を選び出しました.

f:id:kouhei_ito:20200411153654p:plain
アポロ8号シミュレーションの結果

1枚目のグラフは青い点が地球,緑の円弧が月の軌道,赤い線がアポロの軌道です.

2枚目はアポロの地球からの距離の時間的な変化を示しています.

3無い目はアポロの速度の時間的変化です.月に近づいたときにスイングバイして,少し速度を増やせていることがわかります.

次は計算結果をアニメーションで示します.

f:id:kouhei_ito:20200411154309g:plain
アポロ8号飛行シミュレーションアニメ

中心の青い点は地球で小さい緑の点が月です.地球と月の距離,地球と月の大きさは実際の比率と合っています. 赤い点はアポロ宇宙船ですが,こちらは比率を合わせると見えない点になっているので,実際の比率と違いかなり大きめに描かれています.

Pythonソースコード

参考までにソースコードを紹介します.

github.com

おわりに

今日はアポロ8号の月旅行を題材にした,地球と月と宇宙船に作用しあう万有引力によって, それぞれの天体がどのような運動をするのか計算してみました.

初速と角度の与え方で,いろいろな飛び方をするのですが,上手に値を選ぶと,示したように 宇宙船が8の字を描き出発点に戻ってくるような面白い結果が得れれます.

更に太陽を加えて,太陽の周りをまわる地球からアポロが月に向かうような計算ができればいいなと妄想しています.

家にいなければならない昨今ですので,宇宙船の計算などして,宇宙のロマンに浸ってみるのも 良いのではないでしょうか.

では,また!