例題
例題は簡単なものから順に並んでいます。どの例題も、1つの物理モデルと1つの目的関数だけを扱い、 1つの Python ファイルで条件設定から描画まで完結します。
各ページでは、まず問題の状況と数式(運動方程式・境界条件・制約・目的関数)を説明し、 次に OpenGoddard で解いた結果の図と動画を示します。図の点は計算で直接求めたノードでの値、線はそれらを通る多項式です。 解析解がある例題では、黒の破線で重ねて示します。
基本:直線上の運動と最速降下
Section titled “基本:直線上の運動と最速降下”状態と制御が少なく、手計算の答えと比べられる問題です。問題の書き方に慣れるのに向いています。

例題 01最小操作量の移動点を距離 2 だけ動かすとき、「早く着くこと」と「操作を小さくすること」をどう両立させればよいかを求める。最適制御問題の最小の例。

例題 02加速して停止する移動止まっている台車を 10 m 先まで運んでぴったり止めるとき、加速度の大きさに上限があるなら、最も早く着くには加速度をどう変えればよいかを求める。

例題 03最速降下静止した玉を重力だけで転がし、水平に 1 m 離れた鉛直線まで最も早く届かせるには、どんな形の坂を作ればよいかを求める。答えはサイクロイドになる。

例題 04深さ制限付き最速降下最速降下の坂に「深さ 0.3 m より下には掘れない」という床を設けたとき、最速の坂の形はどう変わるかを求める。

例題 05東京・大阪の最速降下東京と大阪を結ぶ 600 km の地下トンネルを、重力だけで最も早く滑り抜けるにはどんな形に掘ればよいかを求める。実際の単位で書いた問題を、スケーリングで解きやすくする。

例題 06単純な2次元ロケット一定の大きさの加速度を出せる機体が、向きだけを操って、高さ 1 m で水平速度 1 m/s・鉛直速度 0 の状態に最も早く到達するにはどう向きを変えればよいかを求める。
ロケットの上昇と着陸
Section titled “ロケットの上昇と着陸”質量の変化、空気抵抗、区間分割、段分離を順に導入します。

例題 07Goddard問題・単一区間決まった量の推進剤で、鉛直に上がるロケットを最も高く上げる推力の出し方を求める。空気抵抗のため「全開で吹かす」が最適にならない。

例題 08Goddard問題・区間分割例題07と同じ「決まった推進剤でロケットを最も高く上げる」問題を、燃焼終了の時刻で2つの区間に分けて解く。推力がゼロへ不連続に切り替わるところを、振動なしに表せるかを見る。

例題 09月面への鉛直軟着陸月面の上空 100 m を毎秒 10 m で降下している着陸機を、高度 0・速度 0 でそっと降ろす。使う燃料を最も少なくするには、いつ・どれだけ噴射すればよいかを求める。

例題 10単段ロケット上昇質量 5 トンの単段ロケットを地表から鉛直に打ち上げ、3 トンの推進剤で最も高い到達高度を得る推力の出し方を求める。Goddard 問題を実際の単位と大気・重力のモデルで解く。

例題 112段ロケット上昇例題10のロケットを2段式にし、1段目の推進剤を使い切ったあとで1段目の構造 1200 kg を切り離す。質量が分離の瞬間に跳ぶ問題を2つの区間と接続条件で表し、到達高度を最大にする推力の出し方を求める。
軌道投入と軌道遷移
Section titled “軌道投入と軌道遷移”地球を回る軌道へ入るための2次元の飛行です。単位のスケーリングと多くの制約を扱います。

例題 12極座標・単段軌道投入推進剤が質量の99%を占める単段ロケットを、地上から高度400 kmの円軌道へ投入する。軌道に着いたときの質量を最大にするには、推力をどの向きにどれだけ出せばよいかを求める。

例題 13極座標・2段軌道投入2段式ロケットを地上から高度500 kmの円軌道へ投入する。段ごとに性能の違う2つの区間をつなぎ、分離の時刻も含めて、軌道に残る2段目の質量を最大にする飛び方を求める。

例題 14大樹からの2段軌道投入北海道大樹町から、小型2段ロケットで100 kgの荷物を傾斜角96.7°・高度561 kmの円軌道へ投入する。表で与えた大気と抵抗係数、地球の自転、高度による比推力の変化を入れたモデルで、軌道に残る質量を最大にする飛び方を求める。

例題 15低推力軌道遷移重力の1%しかない小さな推力で、半径1の円軌道から半径4の円軌道へ移る。決められた時間内で、使う燃料(速度変化の合計)を最も少なくする推力の出し方を求める。
リポジトリのルートで次のように実行します(環境の準備ははじめにを参照)。
uv run python examples/07_goddard_0knot.py各ファイルの PARAMETERS(または Rocket クラス)の値を変えると、条件を変えて解き直せます。