转移轨道设计概述

e2m2e 实现了基于 Cui et al. (2025) 的"搜索-优化"两步法,用于 DRO(Distant Retrograde Orbit)到 RO(Regular Orbit)的转移轨道设计。

设计方法

两步法流程:

  1. 搜索阶段:在参数空间中搜索可行的转移窗口

  2. 优化阶段:对搜索结果进行 NLP 精化优化

转移类型:

  • DIRECT: 直接转移

  • LGA: 月球引力辅助转移

  • EXTERNAL: 外部转移

设计变量

搜索和优化的核心变量:

  • α (alpha): 切向速度比,控制出发速度方向

  • T: 转移时间

  • t_ins: 从轨道远地点到插入点的时间

目标函数

最小化总脉冲:

\[J = \Delta v_1 + \Delta v_2\]

其中 \(\Delta v_1\) 为出发脉冲,\(\Delta v_2\) 为插入脉冲。

约束条件

  • 位置连续性:转移轨道与目标轨道在插入点位置匹配

  • 速度平行性:转移轨道速度方向与目标轨道速度方向平行

  • 碰撞避免:避免与地球和月球碰撞

使用示例

from e2m2e.transfer.transfer import TransferConfig, TransferOptimizer
from e2m2e.core.system import CR3BP_System
from e2m2e.core.dynamics import CR3BP_Dynamics

system = CR3BP_System.from_known_system("earth_moon")
dynamics = CR3BP_Dynamics(system)

# 配置转移参数
config = TransferConfig(
    alpha_min=0.5,
    alpha_max=2.5,
    use_copt=False,  # 使用 SciPy
    fallback_to_scipy=True
)

# 执行优化
optimizer = TransferOptimizer(system, dynamics, config)
result = optimizer.optimize(departure_orbit, arrival_orbit)

if result.success:
    print(f"总脉冲: {result.total_delta_v}")
    print(f"转移时间: {result.transfer_time}")