轨道力学:兰伯特问题

轨道力学:兰伯特问题

引言

在轨道力学中,兰伯特问题是指在已知两个位置矢量和它们之间的飞行时间的情况下,求解连接这两个位置的轨道路径问题。该问题以18世纪的数学家约翰·海因里希·兰伯特(Johann Heinrich Lambert)命名,他提出了与此相关的定理。兰伯特问题在航天任务规划、轨道设计和星际导航中具有重要的应用,被广泛用于计算轨道转移和推进剂优化。

问题描述

给定:

  • 初始位置矢量 r 1 \boldsymbol{r}_1 r1 和终止位置矢量 r 2 \boldsymbol{r}_2 r2。
  • 从 r 1 \boldsymbol{r}_1 r1 到 r 2 \boldsymbol{r}_2 r2 的飞行时间 Δ t \Delta t Δt。

要求:

  • 求解满足上述条件的轨道路径,以及在 r 1 \boldsymbol{r}_1 r1 和 r 2 \boldsymbol{r}_2 r2 处的速度矢量 v 1 \boldsymbol{v}_1 v1 和 v 2 \boldsymbol{v}_2 v2。

兰伯特问题的数学基础

根据轨道力学理论,在中央引力场中运动的物体,其轨道方程由开普勒定律描述。兰伯特定理指出,飞行时间仅由轨道的半长轴和两个位置矢量所决定,与轨道的特定形状无关。

求解算法

求解兰伯特问题通常采用数值方法,以下是详细的求解步骤,附带推导过程和公式解释:

1. 初始参数计算

步骤简介

首先,我们需要计算已知位置矢量的模长和它们之间的夹角,以获取运动的几何关系,这将为后续计算奠定基础。

计算位置矢量的模长

给定初始位置矢量 r 1 \boldsymbol{r}_1 r1 和终止位置矢量 r 2 \boldsymbol{r}_2 r2,它们的模长(即距离原点的距离)为:

r 1 = ∣ r 1 ∣ = ( x 1 ) 2 + ( y 1 ) 2 + ( z 1 ) 2 r_1 = |\boldsymbol{r}_1| = \sqrt{(x_1)^2 + (y_1)^2 + (z_1)^2} r1=∣r1∣=(x1)2+(y1)2+(z1)2

r 2 = ∣ r 2 ∣ = ( x 2 ) 2 + ( y 2 ) 2 + ( z 2 ) 2 r_2 = |\boldsymbol{r}_2| = \sqrt{(x_2)^2 + (y_2)^2 + (z_2)^2} r2=∣r2∣=(x2)2+(y2)2+(z2)2

其中, ( x 1 , y 1 , z 1 ) (x_1, y_1, z_1) (x1,y1,z1) 和 ( x 2 , y 2 , z 2 ) (x_2, y_2, z_2) (x2,y2,z2) 分别是 r 1 \boldsymbol{r}_1 r1 和 r 2 \boldsymbol{r}_2 r2 的坐标分量。

计算两位置矢量的夹角余弦

两矢量之间的夹角余弦由它们的点积和模长决定:

cos ⁡ Δ θ = r 1 ⋅ r 2 r 1 r 2 = x 1 x 2 + y 1 y 2 + z 1 z 2 r 1 r 2 \cos \Delta \theta = \frac{\boldsymbol{r}_1 \cdot \boldsymbol{r}_2}{r_1 r_2} = \frac{x_1 x_2 + y_1 y_2 + z_1 z_2}{r_1 r_2} cosΔθ=r1r2r1⋅r2=r1r2x1x2+y1y2+z1z2

计算两位置矢量的夹角

通过反余弦函数,得到两位置矢量之间的夹角:

Δ θ = arccos ⁡ ( cos ⁡ Δ θ ) \Delta \theta = \arccos\left( \cos \Delta \theta \right) Δθ=arccos(cosΔθ)

需要注意的是, Δ θ \Delta \theta Δθ 的取值范围决定了航天器的飞行方向:

  • 如果 0 < Δ θ < π 0 < \Delta \theta < \pi 0<Δθ<π,表示顺行轨道,即飞行路径为短路径。
  • 如果 π < Δ θ < 2 π \pi < \Delta \theta < 2\pi π<Δθ<2π,表示逆行轨道,即飞行路径为长路径。
2. 计算 A 参数

步骤简介

参数 A A A 是兰伯特问题中的一个关键量,它与位置矢量的模长和它们之间的夹角有关,影响着后续的径向变量计算。

计算公式

A = sin ⁡ Δ θ r 1 r 2 1 − cos ⁡ Δ θ A = \sin \Delta \theta \sqrt{ \frac{r_1 r_2}{1 - \cos \Delta \theta} } A=sinΔθ1−cosΔθr1r2

公式解释

  • sin ⁡ Δ θ \sin \Delta \theta sinΔθ 体现了两位置矢量之间的夹角对轨道的影响。
  • 分母中的 1 − cos ⁡ Δ θ 1 - \cos \Delta \theta 1−cosΔθ 确保了当 Δ θ \Delta \theta Δθ 接近零或 π \pi π 时,公式仍然有效。
  • 整个表达式计算的是与轨道几何形状相关的参数。
3. 定义待求解的径向变量 z z z

步骤简介

引入径向变量 z z z,方便利用斯塔姆夫(Stumpff)函数处理椭圆、抛物线和双曲线轨道的统一计算。

定义斯塔姆夫参数 y y y

y = r 1 + r 2 + A ( z S ( z ) − 1 ) C ( z ) y = r_1 + r_2 + \frac{A (z S(z) - 1)}{\sqrt{C(z)}} y=r1+r2+C(z) A(zS(z)−1)

斯塔姆夫函数的定义

  • 当 z ≠ 0 z \ne 0 z=0 时:

    S ( z ) = z − sin ⁡ z ( z ) 3 , C ( z ) = 1 − cos ⁡ z z S(z) = \frac{\sqrt{z} - \sin \sqrt{z}}{ (\sqrt{z})^3 }, \quad C(z) = \frac{1 - \cos \sqrt{z}}{ z } S(z)=(z )3z −sinz ,C(z)=z1−cosz

  • 当 z = 0 z = 0 z=0 时(使用极限处理):

    S ( 0 ) = 1 6 , C ( 0 ) = 1 2 S(0) = \frac{1}{6}, \quad C(0) = \frac{1}{2} S(0)=61,C(0)=21

公式解释

  • 斯塔姆夫函数 C ( z ) C(z) C(z) 和 S ( z ) S(z) S(z) 用于简化关于 z z z 的计算,适用于不同轨道类型(椭圆、抛物线、双曲线)。
  • 参数 y y y 是径向距离的辅助量,与 z z z 相关,为后续飞行时间计算提供必要信息。
4. 建立飞行时间与径向变量 z z z 的关系

飞行时间公式

Δ t ( z ) = y 3 / 2 S ( z ) A μ \Delta t(z) = \frac{ y^{3/2} S(z) }{ A \sqrt{ \mu } } Δt(z)=Aμ y3/2S(z)

其中:

  • μ \mu μ 是引力常数(地球引力参数 μ = 398600   km 3 / s 2 \mu = 398600\,\text{km}^3/\text{s}^2 μ=398600km3/s2)。
  • A A A 和 y y y 是前面步骤中计算的参数。

公式推导

  • 根据轨道运动的能量和几何关系,飞行时间可以表达为径向变量的函数,通过这种方式,我们将时间参数与待求解的变量 z z z 联系起来。
5. 数值迭代求解 z z z

步骤简介

由于飞行时间公式无法直接求解 z z z,因此需要采用数值方法进行迭代,常用的方法是牛顿-拉夫森(Newton-Raphson)方法。

迭代过程

  • 初始猜测值 :选择 z 0 z_0 z0 作为初始值,通常取 z 0 = 0 z_0 = 0 z0=0。

  • 迭代公式

    z i + 1 = z i − f ( z i ) f ′ ( z i ) z_{i+1} = z_i - \frac{ f(z_i) }{ f'(z_i) } zi+1=zi−f′(zi)f(zi)

    其中, f ( z ) f(z) f(z) 定义为:

    f ( z ) = Δ t ( z ) − Δ t given f(z) = \Delta t(z) - \Delta t_{\text{given}} f(z)=Δt(z)−Δtgiven

    Δ t given \Delta t_{\text{given}} Δtgiven 是已知的飞行时间。

  • 求导数 f ′ ( z ) f'(z) f′(z)

    为了应用牛顿-拉夫森法,需要计算 f ( z ) f(z) f(z) 对 z z z 的导数 f ′ ( z ) f'(z) f′(z)。

    计算 f ′ ( z ) f'(z) f′(z) 时,需要对 Δ t ( z ) \Delta t(z) Δt(z) 关于 z z z 求导,包括对 S ( z ) S(z) S(z)、 C ( z ) C(z) C(z) 和 y y y 的求导,推导较为复杂,需慎重处理。

迭代步骤

  1. 计算 C ( z i ) C(z_i) C(zi) 和 S ( z i ) S(z_i) S(zi)

  2. 计算 y i y_i yi

    y i = r 1 + r 2 + A ( z i S ( z i ) − 1 ) C ( z i ) y_i = r_1 + r_2 + \frac{ A ( z_i S(z_i) - 1 ) }{ \sqrt{ C(z_i) } } yi=r1+r2+C(zi) A(ziS(zi)−1)

  3. 计算 Δ t ( z i ) \Delta t(z_i) Δt(zi)

  4. **计算 f ( z i ) = Δ t ( z i ) − Δ t given f(z_i) = \Delta t(z_i) - \Delta t_{\text{given}} f(zi)=Δt(zi)−Δtgiven。

  5. 计算 f ′ ( z i ) f'(z_i) f′(zi)

  6. 更新 z i + 1 z_{i+1} zi+1

  7. 检查收敛条件 :如果 ∣ z i + 1 − z i ∣ |z_{i+1} - z_i| ∣zi+1−zi∣ 或 ∣ f ( z i + 1 ) ∣ |f(z_{i+1})| ∣f(zi+1)∣ 小于预设精度,迭代结束;否则,返回步骤 1。

公式解释

  • 牛顿-拉夫森法通过在当前点的切线线性近似来求解非线性方程,是一种收敛速度较快的迭代方法。
6. 更新径向变量 y y y

在每次迭代中,使用更新的 z z z 值重新计算参数 y y y:

y = r 1 + r 2 + A ( z S ( z ) − 1 ) C ( z ) y = r_1 + r_2 + \frac{ A ( z S(z) - 1 ) }{ \sqrt{ C(z) } } y=r1+r2+C(z) A(zS(z)−1)

公式解释

  • y y y 的更新对保证 Δ t ( z ) \Delta t(z) Δt(z) 的准确计算至关重要,因为它直接影响到飞行时间。
7. 计算拉格朗日系数

步骤简介

拉格朗日系数 F F F 和 G G G 用于计算初始和终止速度矢量,它们与轨道几何和动力学性质相关。

计算拉格朗日系数 F F F 和 G G G

  • 拉格朗日系数 F F F

    F = 1 − y r 1 F = 1 - \frac{ y }{ r_1 } F=1−r1y

  • 拉格朗日系数 G G G

    G = A y μ G = A \sqrt{ \frac{ y }{ \mu } } G=Aμy

公式解释

  • F F F 表示位置变化对速度的影响。
  • G G G 体现了飞行时间和轨道形状对速度的影响。
8. 计算速度矢量

步骤简介

利用拉格朗日公式,将位置和拉格朗日系数结合,计算初始和终止速度矢量。

计算初始速度 v 1 \boldsymbol{v}_1 v1

v 1 = 1 G ( r 2 − F r 1 ) \boldsymbol{v}_1 = \frac{ 1 }{ G } \left( \boldsymbol{r}_2 - F \boldsymbol{r}_1 \right ) v1=G1(r2−Fr1)

计算终止速度 v 2 \boldsymbol{v}_2 v2

首先,计算 F ′ F' F′( F F F 对时间的导数):

F ′ = μ r 1 r 2 ( C ( z ) / y ) ( z S ( z ) − 1 ) F' = \frac{ \sqrt{ \mu } }{ r_1 r_2 } \left( \sqrt{ C(z) } / y \right ) \left( z S(z) - 1 \right ) F′=r1r2μ (C(z) /y)(zS(z)−1)

然后,计算 v 2 \boldsymbol{v}_2 v2:

v 2 = 1 G ( F ′ r 2 − r 1 ) \boldsymbol{v}_2 = \frac{ 1 }{ G } \left( F' \boldsymbol{r}_2 - \boldsymbol{r}_1 \right ) v2=G1(F′r2−r1)

公式解释

  • v 1 \boldsymbol{v}_1 v1 和 v 2 \boldsymbol{v}_2 v2 通过拉格朗日公式直接得到,反映了航天器在起点和终点的位置和速度关系。
  • F ′ F' F′ 的计算考虑了径向变量的变化,对于准确计算终止速度至关重要。

实际例子

已知条件

  • 引力常数: μ = 398600   km 3 / s 2 \mu = 398600\,\text{km}^3/\text{s}^2 μ=398600km3/s2
  • 初始位置 r 1 = [ 5000 , 10000 , 2100 ]   km \boldsymbol{r}_1 = [5000, 10000, 2100]\,\text{km} r1=[5000,10000,2100]km
  • 终止位置 r 2 = [ − 14600 , 2500 , 7000 ]   km \boldsymbol{r}_2 = [-14600, 2500, 7000]\,\text{km} r2=[−14600,2500,7000]km
  • 飞行时间 Δ t = 3600   s \Delta t = 3600\,\text{s} Δt=3600s

求解步骤

1. 计算位置矢量的模长

r 1 = 500 0 2 + 1000 0 2 + 210 0 2 ≈ 11220.7   km r_1 = \sqrt{5000^2 + 10000^2 + 2100^2} \approx 11220.7\,\text{km} r1=50002+100002+21002 ≈11220.7km

r 2 = ( − 14600 ) 2 + 250 0 2 + 700 0 2 ≈ 16357.0   km r_2 = \sqrt{(-14600)^2 + 2500^2 + 7000^2} \approx 16357.0\,\text{km} r2=(−14600)2+25002+70002 ≈16357.0km

2. 计算夹角 Δ θ \Delta \theta Δθ

cos ⁡ Δ θ = r 1 ⋅ r 2 r 1 r 2 = 5000 × ( − 14600 ) + 10000 × 2500 + 2100 × 7000 r 1 r 2 \cos \Delta \theta = \frac{\boldsymbol{r}_1 \cdot \boldsymbol{r}_2}{r_1 r_2} = \frac{5000 \times (-14600) + 10000 \times 2500 + 2100 \times 7000}{r_1 r_2} cosΔθ=r1r2r1⋅r2=r1r25000×(−14600)+10000×2500+2100×7000

cos ⁡ Δ θ ≈ − 0.3207 \cos \Delta \theta \approx -0.3207 cosΔθ≈−0.3207

Δ θ = arccos ⁡ ( − 0.3207 ) ≈ 10 9 ∘ \Delta \theta = \arccos(-0.3207) \approx 109^\circ Δθ=arccos(−0.3207)≈109∘

3. 计算 A 参数

A = sin ⁡ Δ θ r 1 r 2 ( 1 + cos ⁡ Δ θ ) ≈ 0.9479 × 11220.7 × 16357.0 × ( 1 + ( − 0.3207 ) ) A = \sin \Delta \theta \sqrt{r_1 r_2 (1 + \cos \Delta \theta)} \approx 0.9479 \times \sqrt{11220.7 \times 16357.0 \times (1 + (-0.3207))} A=sinΔθr1r2(1+cosΔθ) ≈0.9479×11220.7×16357.0×(1+(−0.3207))

A ≈ 18699.6   km A \approx 18699.6\,\text{km} A≈18699.6km

4. 初始猜测 z 值并迭代求解
  • 设初始 z 0 = 0 z_0 = 0 z0=0,开始迭代。
  • 计算 C ( z ) C(z) C(z) 和 S ( z ) S(z) S(z),以及飞行时间 f ( z ) f(z) f(z),更新 z z z,直到 f ( z ) = Δ t f(z) = \Delta t f(z)=Δt。
5. 计算径向变量 y

在每次迭代中,根据当前的 z z z 计算 y y y。

6. 计算拉格朗日系数 F、G 和 F'
  • 根据求得的 y y y 和 z z z,计算 C ( z ) C(z) C(z)、 S ( z ) S(z) S(z),进而计算 F、G、F'。
7. 计算速度矢量
  • 初始速度

    v 1 = 1 G ( r 2 − F r 1 ) \boldsymbol{v}_1 = \frac{1}{G} \left( \boldsymbol{r}_2 - F \boldsymbol{r}_1 \right) v1=G1(r2−Fr1)

  • 终止速度

    v 2 = 1 G ( F ′ r 2 − r 1 ) \boldsymbol{v}_2 = \frac{1}{G} \left( F' \boldsymbol{r}_2 - \boldsymbol{r}_1 \right) v2=G1(F′r2−r1)

结果

经过迭代计算,得到:

  • 初始速度 v 1 = [ ...   ]   km/s \boldsymbol{v}_1 = [ \dots ]\,\text{km/s} v1=[...]km/s
  • 终止速度 v 2 = [ ...   ]   km/s \boldsymbol{v}_2 = [ \dots ]\,\text{km/s} v2=[...]km/s

(由于计算过程复杂,此处略去具体数值,实际计算中可借助计算机完成。可能结果为: v 1 = [ 7.8 , − 2.5 , 3.1 ]   km/s \boldsymbol{v}_1 = [7.8, -2.5, 3.1]\,\text{km/s} v1=[7.8,−2.5,3.1]km/s和 v 2 = [ − 4.2 , 6.3 , 5.0 ]   km/s \boldsymbol{v}_2 = [-4.2, 6.3, 5.0]\,\text{km/s} v2=[−4.2,6.3,5.0]km/s)

应用

1. 轨道交会与拦截

兰伯特问题在轨道交会和拦截任务中起着关键作用。当两个航天器需要在空间中会合,如载人飞船与国际空间站对接、卫星维修或补给任务等,工程师需要精确计算航天器的轨道和推进计划。通过求解兰伯特问题,可以确定从当前轨道到目标轨道的最优路径和所需时间,确保航天器在预定的时间和位置成功实现交会。这对于提高任务的成功率和安全性至关重要。在拦截任务中,如防御潜在威胁的小行星或空间碎片,兰伯特问题帮助设计拦截器的轨道,使其能够准确地在指定时间到达目标位置。

2. 发射机会搜寻

在行星际探测和深空任务中,发射窗口的选择对任务的成败具有决定性影响。由于行星和其他天体在空间中的位置不断变化,为了以最小的能量消耗实现轨道转移,必须在合适的时间发射。兰伯特问题被用于计算从地球到目标天体的最佳轨道,确定发射机会。通过求解不同时间的兰伯特问题,工程师可以绘制能量消耗与发射时间的关系曲线,选择最优的发射窗口。这不仅节省了推进剂,也提高了任务的效率和可靠性。

3. 策略优化与轨道转移设计

兰伯特问题在轨道转移和策略优化中发挥着关键作用。对于航天器需要从一个轨道改变到另一个轨道的任务,如从低地球轨道转移到地球同步轨道,或从地球轨道前往月球或其他行星,兰伯特问题提供了计算最优转移轨道的方法。通过比较不同的转移方案,工程师可以选择燃料消耗最少、时间最短或满足其他特定需求的轨道策略。这对于降低任务成本、延长航天器寿命具有重要意义。

4. 推进剂优化

推进剂是航天器进行轨道机动的关键资源,其使用效率直接影响任务的持续时间和可达性。兰伯特问题通过提供最小能量消耗的轨道方案,帮助优化推进剂的使用。通过精确计算所需的速度增量(ΔV),工程师可以制定出最节省推进剂的轨道机动计划。这不仅延长了航天器的运行寿命,也降低了发射和运行成本。

5. 多目标任务规划

在需要依次访问多个目标天体的任务中,如小行星采样返回、多行星探测等,兰伯特问题被用于规划航天器在不同目标之间的转移轨道。通过求解一系列的兰伯特问题,可以确定每一段转移所需的最优轨道和时间安排。这样,航天器能够在有限的资源和时间内完成多项任务,最大化科学成果和任务价值。

6. 避免空间碰撞与轨道修正

随着近地空间中航天器和空间碎片数量的增加,碰撞风险也在上升。兰伯特问题在轨道修正和碰撞避免中起到重要作用。当预测到潜在的碰撞威胁时,工程师可以利用兰伯特问题计算必要的轨道机动,使航天器避开危险区域。通过精确的轨道调整,确保了航天器的安全运行。

7. 战略规划与任务设计

在军事和商业航天领域,兰伯特问题被用于战略规划和任务设计。例如,卫星星座的部署、快速响应的发射任务等,都需要精确的轨道计算。兰伯特问题提供了在特定时间和位置到达目标轨道的方法,支持了复杂航天任务的规划和实施。

相关推荐
梦境虽美,却不长18 分钟前
C语言学习日志 结构体 2024/12/12
学习
IT古董32 分钟前
【机器学习】机器学习的基本分类-无监督学习-t-SNE(t-分布随机邻域嵌入)
人工智能·学习·机器学习·分类
逆光的July42 分钟前
arthas学习笔记
笔记·学习
hacker7071 小时前
Datawhale AI冬令营学习笔记--定制你的专属大模型
人工智能·笔记·学习
南宫生1 小时前
力扣-图论-10【算法学习day.60】
java·学习·算法·leetcode·图论
秋刀鱼不做梦2 小时前
前端小案例——520表白信封
开发语言·前端·css·学习·html
woodykissme2 小时前
内圆弧转子泵绘制工具开发
学习·机械·齿轮泵·转子泵·摆线泵
在在进步2 小时前
R学习——因子
开发语言·学习·r语言
sealaugh322 小时前
aws(学习笔记第十七课) SQS Amazon Simple Queue Service服务
笔记·学习·aws
-self-disciplinese6 小时前
从零开始学Java,学习笔记Day22
java·笔记·后端·学习