地月空间入门指南地月空间入门指南
  • 卫星轨道仿真教学平台
  • 史学思辨
地月空间术语词典
资源与工具
Space News
AI问答
论坛
首页
Gitee
GitHub
  • 简体中文
  • English
  • 卫星轨道仿真教学平台
  • 史学思辨
地月空间术语词典
资源与工具
Space News
AI问答
论坛
首页
Gitee
GitHub
  • 简体中文
  • English
  • 全站导览

    • 首页(知识总览)
    • 入门 · 地月空间是什么
    • 轨道 · 飞行器运行轨道
    • 前沿 · 科研方向与机构
    • 术语 · 定义与概念
    • 工具 · 数据与代码
    • 动态 · 航天新闻归档
  • 资源与工具(数据、代码与数据集)

    • 地月空间资源与工具
    • 仿真软件

      • /resources-tools/gmat/
      • /resources-tools/stk/
      • /resources-tools/atk/
      • /resources-tools/cesium/
    • 核心算法库

      • e2m2e - 地月空间轨道设计库
      • scipy - Python科学计算库
      • r2s2 - 地月空间时空坐标转换库
      • /resources-tools/orekit/
      • /resources-tools/poliastro/
      • /resources-tools/basilisk/
      • /resources-tools/pykep/
    • 数据资源

      • 星历、轨道、环境数据下载
    • AI与云平台

      • /resources-tools/digital-lunar/
      • /resources-tools/llm/
      • /resources-tools/naoc-data/

e2m2e — Earth to Moon, Moon to Earth

e2m2e(Earth to Moon, Moon to Earth)是一个基于圆型限制性三体问题(CR3BP)和历表动力学(N-body + SPICE)的Python库,专注于设计和分析地月空间转移轨道。支持从理论CR3BP模型到高精度星历模型的完整轨道设计工作流。

核心功能

  • CR3BP 系统建模:支持地月、日地、日木等常见天体系统
  • 历表动力学:基于 SPICE 内核的 N-body 高精度动力学
  • 太阳辐射压摄动:CR3BP 框架下的 SRP 建模
  • 多种轨道类型:DRO、ARO、RO、Halo、Lyapunov、Lissajous、Butterfly、Dragonfly
  • 轨道设计算法:策略模式微分修正、自然/伪弧长延拓、多射击法、稳定性分析
  • 转移轨道搜索:DRO/RO 转移搜索、NLP 优化、脉冲转移设计
  • MBSE 架构:基于 Protocol 的系统建模、需求管理、架构组件

支持的轨道类型

轨道类型描述
DRO远距离逆行轨道 (Distant Retrograde Orbit)
RO共振轨道 (Resonant Orbit),支持 3:2、4:3 等多种共振
ARO轴向共振轨道 (Axial Resonant Orbit)
HaloHalo 轨道,周期轨道的一种
LyapunovLyapunov 轨道,平面周期轨道
LissajousLissajous 轨道,拟周期轨道
ButterflyButterfly 轨道,关于 xy 面对称
DragonflyDragonfly 轨道,多重对称性

新增模块

历表动力学与 SPICE

基于 NASA SPICE 内核的高精度 N-body 动力学,支持多天体引力摄动。通过 EphemerisSystem 配置多体系统,EphemerisDynamics 进行高精度轨道传播。适合需要真实星历精度的任务设计。

from e2m2e.core import EphemerisSystem, EphemerisDynamics

system = EphemerisSystem(bodies=["earth", "moon", "sun"])
dynamics = EphemerisDynamics(system=system)

太阳辐射压

在 CR3BP 框架中引入太阳辐射压摄动,适用于大面积质量比航天器(如太阳帆)的轨道分析。

from e2m2e.core import CR3BP_SRP_Dynamics

srp_dynamics = CR3BP_SRP_Dynamics(system=system, area=10.0, mass=100.0, Cr=1.5)

MBSE 架构

基于 Python Protocol 接口的系统建模框架,包含架构组件、需求管理和数据模型。支持轨道设计的系统工程全流程。

  • mbse/architecture/ — 系统架构组件定义
  • mbse/requirements/ — 需求管理与追溯
  • mbse/data/ — Pydantic 数据模型与枚举
  • mbse/diagrams/ — 架构图生成

多射击法

多段打靶法用于复杂转移轨道的高精度求解,支持多进程并行计算。

from e2m2e.algorithms import MultipleShooting, sample_patch_points

patch_points = sample_patch_points(orbit, n_segments=10)
ms = MultipleShooting(dynamics=dynamics)
result = ms.solve(patch_points)

安装方式

pip install e2m2e

开发依赖安装:

pip install e2m2e[dev]

示例调用

import e2m2e
from e2m2e.core import CR3BP_System, Orbit
from e2m2e.algorithms import DifferentialCorrection, Continuation
from e2m2e.visualization import FamilyPlotter

# 1. 创建地月系统并计算平动点
system = CR3BP_System(mu=0.01215, primary="earth", secondary="moon")
system.compute_libration_points()

# 2. 创建动力学对象
dynamics = e2m2e.core.dynamics.CR3BP_Dynamics(system=system)

# 3. 微分修正生成 DRO 轨道
corrector = DifferentialCorrection(dynamic=dynamics)
corrector.setup_2D_symmetric_x_fixed_x0(x0=0.79188556619742)
seed_orbit = Orbit(states=[[0.79188556619742, 0, 0, 0, 0.53682, 0]], times=[0])
seed_orbit.period = 3.472526005624708
seed_dro = corrector.iterate_correction(initial_guess=seed_orbit)

# 4. 自然延拓生成轨道族
continuation = Continuation(corrector=corrector)
family = continuation.natural_continuation(
    seed_orbit=seed_dro,
    param_range=(0.14, 0.9),
    step_size=0.005,
)

# 5. 可视化轨道族
plotter = FamilyPlotter(system)
plotter.plot_family_2d(family, jacobi_values=family.get_jacobi_constants())

项目结构

e2m2e/
├── core/                          # 核心模块
│   ├── system.py                  # CR3BP 系统定义
│   ├── dynamics.py                # CR3BP 动力学模型
│   ├── srp_dynamics.py            # 太阳辐射压摄动
│   ├── ephemeris_system.py        # 历表多体系统
│   ├── ephemeris_dynamics.py      # N-body 历表动力学
│   ├── spice.py                   # SPICE 内核管理
│   ├── orbit.py                   # 轨道数据结构
│   └── coordinate.py              # 坐标变换
├── algorithms/                    # 算法模块
│   ├── differential_correction.py # 微分修正
│   ├── continuation.py            # 轨道延拓
│   ├── stability.py               # 稳定性分析
│   ├── multiple_shooting.py       # 多射击法
│   └── strategies/                # 策略模式修正配置
│       ├── halo.py                # Halo 轨道策略
│       ├── symmetric_2d.py        # 2D 对称轨道策略
│       └── symmetric_3d.py        # 3D 对称轨道策略
├── transfer/                      # 转移轨道设计
│   ├── transfer.py                # 转移轨道类
│   ├── transfer_search.py         # DRO/RO 转移搜索
│   ├── transfer_optimization.py   # NLP 优化
│   └── search_config.py           # 搜索配置
├── mbse/                          # 系统工程建模
│   ├── architecture/              # 系统架构组件
│   ├── requirements/              # 需求管理
│   ├── data/                      # Pydantic 数据模型
│   └── diagrams/                  # 架构图生成
└── visualization/                 # 可视化
    ├── plotting.py                # 基础绘图
    ├── family.py                  # 轨道族绘图
    ├── transfer.py                # 转移轨道绘图
    ├── stability.py               # 稳定性分析图
    └── config.py                  # 绘图配置

相关资源

  • e2m2e 官方文档
  • e2m2e GitHub 仓库
完善页面
最近更新: 2026/4/26 13:26
Contributors: ouyangjiahong, Hermes Agent
Next
scipy - Python科学计算库
地月空间入门指南
地月空间入门指南探索地月空间知识
在 GitHub 查看

导航

  • 首页
  • 关于本站
  • 航天动态
  • 术语表

内容

  • 地月轨道
  • 研究前沿
  • 资源工具

English

  • Home
  • About
  • Space News
  • Glossary

关注我们

© 2026 地月空间入门指南  |  湘ICP备2026006405号-1
友情链接:智慧学习助手 UStudy航天任务工具箱 ATK
支持我
鼓励和赞赏我感谢您的支持