跳轉到內容

天體力學/開普勒問題

來自華夏公益教科書,開放的書籍,開放的世界

開普勒問題

[編輯 | 編輯原始碼]

開普勒問題是一個二體問題,用於找到軌道體的在一段時間內的位置和速度。給定質量、位置和速度,或者可以給出六個開普勒軌道元素。

使用開普勒軌道元素

[編輯 | 編輯原始碼]

假設軌道由半長軸 、偏心率 、傾角 、升交點赤經 和 近心點幅角 定義。 則可以找到軌道體在時間 的位置。步驟如下

1. 計算平均近心點角

其中, 是引力引數, 是軌道體經過近心點的時間。 為方便起見,平均近心點角可以在 區間內表示。

2. 使用開普勒方程計算偏心近心點角

雖然開普勒方程很容易求解時間,但逆問題沒有一般解。要確定給定時間點的偏心近心點角(以及航天器的位置),通常使用迭代數值方法,例如牛頓法

其中

迭代採用以下形式

對於大多數橢圓軌道,初始猜測E0 = M 就足夠了;對於偏心率大於 0.8 的軌道,可以使用E0 = π。 更好的初始猜測是可能的,但通常不需要。 迭代過程重複進行,直到達到所需的精度條件,例如

其中 是所需的精度。

此外,與平均異常一樣,偏心異常可以限制在區間 內。

3. 計算真近點角

注意,由於正切函式及其反函式的取值範圍和定義域,需要進行象限檢查。 如果偏心異常被限制在區間 內,那麼當 時,不需要進行象限檢查。

使用笛卡爾座標

[edit | edit source]

從二體問題的特例可以看出,運動的控制方程如上所示,其中 是引力引數。 給定一個初始位置向量, ,以及對應的速度向量, ,可以使用數值積分求解未來位置。 為了使用 ODE 朗格-庫塔方法,控制方程必須表示為一階 ODE 系統,如下所示。 注意,下面顯示的系統是向量化控制方程的標量表示。

龍格-庫塔方法是一種迭代半隱式數值方法,許多軟體包括這種方法,例如 MATLAB 和 Python 的 SciPy 積分方法。這些方法使用自適應步長,透過使用兩種方法階數來估計區域性截斷誤差。例如,RK45 將使用 4 階和 5 階,RK89 將使用 8 階和 9 階。誤差將與使用者定義的誤差進行比較和檢查,並根據誤差是否過小或過大來調整步長,使其變小或變大。一個簡單的常數正步長,,4 階龍格-庫塔方法如下所示。

假設一個 ODE 系統如上所示,帶有初始條件。

那麼 4 階龍格-庫塔方法可以表述為

其中,

數值解

[編輯 | 編輯原始碼]
華夏公益教科書