# ast **Repository Path**: space-ast/ast ## Basic Information - **Project Name**: ast - **Description**: ast (/æst/) 是一个专注于航天仿真领域的算法库,提供了轨道力学、姿态控制、轨迹规划等核心算法的现代C++实现。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://space-ast.github.io/ast - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 1 - **Created**: 2025-11-15 - **Last Updated**: 2026-02-06 ## Categories & Tags **Categories**: mathlibs **Tags**: 航天, 算法 ## README # ast - 航天仿真算法库 [![Codacy Badge](https://app.codacy.com/project/badge/Grade/dad4615cdda145a5a4a3ed6681b66ed9)](https://app.codacy.com/gh/space-ast/ast/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade) [![codecov](https://codecov.io/gh/space-ast/ast/graph/badge.svg?token=FIUMJKSPGZ)](https://codecov.io/gh/space-ast/ast) ![build](https://img.shields.io/github/actions/workflow/status/space-ast/ast/build.yml?branch=master&style=flat-square&logo=windows) ![C++](https://img.shields.io/badge/C++-11+-blue.svg) ![License](https://img.shields.io/badge/License-Apache2.0-green.svg) ![Platform](https://img.shields.io/badge/platform-linux%20%7C%20windows%20%7C%20mingw%20%7C%20wasm-lightgrey.svg) **ast** (/æst/) 是一个用C++编写的开源航天仿真算法库,为航天任务分析和设计提供计算基础。 *像星辰般精准,为航天仿真而生* ## 🌟 项目简介 **ast** (/æst/) 是一个专注于航天仿真领域的算法库,提供了轨道力学、姿态控制、轨迹规划等核心算法的现代C++实现。 如果你想要了解更多,请参考:[在线文档](https://space-ast.github.io/ast/), [Github](https://github.com/space-ast/ast)以及 [Gitee](https://gitee.com/space-ast/ast) 和 [GitCode](https://gitcode.com/space-ast/ast)。 ## 🚀 核心特性 ### 🛰️ 算法领域 - **轨道力学**:二体问题、轨道外推、兰伯特问题求解 - **姿态系统**:四元数运算、姿态动力学、控制算法 - **坐标转换**:J2000, MOD, TOD, ECF, LVLH等坐标系间的转换 - **环境模型**:大气密度、引力场、太阳辐射压 - **数值方法**:常微分方程数值积分、线性代数求解 ## 📦 快速开始 ### 环境要求 - C++11兼容编译器 (MSVC 2015+, GCC 5+, clang) - [xmake 2.9+](https://xmake.io/) ### 构建项目 ```bash git clone https://github.com/space-ast/ast.git --recursive cd ast xmake ``` ## 🏗️ 项目架构 ``` ast/ ├── data/ # 数据 ├── docs/ # 文档 ├── examples/ # 示例代码片段 ├── include/ # 头文件 ├── projects/ # 示例工程 ├── repo/ # 第三方库配置文件 ├── scripts/ # 工具脚本 ├── src/ # 源文件 ├── test/ # 测试工程 └── thirdparty/ # 第三方库 ``` ## 🎯 API 设计理念 ### 命名规范 项目采用以下命名约定: ```cpp // 命名空间 ast namespace ast { // ... } // 全局函数 - 单个'a'前缀 aPropagateOrbit(); aSolveLambert(); aRotateQuaternion(); // 类型别名 - 'A'前缀 typedef ast::OrbitPropagator AOrbitPropagator; typedef ast::AttitudeController AAttitudeController; // 枚举 - 'E'和'e'前缀 enum EFrame { eECI, eECEF }; // 常量 - 'k' 前缀 const kEps15 = 1e-15; ``` 可以发现:在以上命名规范里,所有以小写字母开头的都有值或者地址 ## 🤝 参与贡献 我们欢迎各种形式的贡献!无论是代码改进、文档完善、bug报告还是新功能建议,都是对项目的宝贵支持。 ### 贡献流程 1. Fork 本仓库 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request 请确保代码遵循项目的编码规范,并添加相应的测试用例。 ## 📄 许可证 本项目采用 Apache2.0 许可证 - 详见 [LICENSE](LICENSE) 文件。 ## 🛠️ 开发状态 **当前状态**: 🟢 积极开发中 项目目前处于早期开发阶段,API可能会有较大变化。我们正在积极完善核心功能,欢迎早期使用者的反馈和建议。 ### 模块规划 内核模块将仔细设计与开发,并通过测试工程提升测试覆盖率 - AstUtil: 工具函数 - AstCore: 动力学核心 - AstOpt: 非线性规划接口库 - AstOCP: 最优控制问题求解 - AstSim: 仿真引擎 下面的模块将通过AI辅助进行开发 - AstScript: 脚本系统 - AstInterp: 交互式控制台 - AstMex: MatLab封装 - AstPy: Python封装 - AstWasm: Web Assembly封装 - AstGfx: 可视化 - AstGui: 图形化界面 - AstCoder: 代码生成器 ## 📞 联系我们 - 💬 讨论区: [GitHub Discussions](https://github.com/space-ast/ast/discussions) - 🐛 问题报告: [GitHub Issues](https://github.com/space-ast/ast/issues) ## 参考资料 ast项目的开发参考和使用了很多资料与工具,感谢所有开源社区贡献者的辛勤工作,以及航天仿真领域研究人员的理论贡献,这些宝贵的资源为ast项目的开发提供了坚实的基础。 ### 开源代码 - [Orekit](https://www.orekit.org/): Java语言编写的航天动力学库,提供丰富的轨道和姿态算法 - [GMAT](https://gmat.atlassian.net/): 通用任务分析工具,NASA开源的航天任务分析软件 - [AstroLib](https://gitee.com/wanghmail/AstroLib): 航天/卫星建模与仿真算法库AstroLib - [Pagmo2](https://esa.github.io/pagmo2/): 欧洲空间局开发的并行全局优化库 - [PyGMO2](https://esa.github.io/pygmo2/): Pagmo2的Python绑定,用于科学计算的优化工具 - [PyKEP](https://esa.github.io/pykep/): 欧洲空间局的航天动力学Python库,专注于轨道优化 - [Eigen](http://eigen.tuxfamily.org/): 高性能C++模板库,用于线性代数、矩阵和向量运算 - [Scipy](https://scipy.org/): 一个Python库,用于科学计算和技术计算,提供了许多数学、科学和工程领域的功能 - [GNU Octave](https://octave.org/): 开源数值计算软件,提供与MATLAB兼容的语法 - [Hipparchus](https://hipparchus.org/): 一个Java数学库,提供了丰富的数学函数和算法 - [Qt](https://www.qt.io/): 跨平台C++图形用户界面应用程序开发框架 - [Python](https://www.python.org/): 流行的通用编程语言,在科学计算领域广泛应用 - [julia](https://julialang.org/): 一种高性能的动态编程语言,专为科学计算和数值分析而设计 - [glibc](https://www.gnu.org/software/libc/): GNU C库,提供了C语言标准库的实现 - [abseil](https://abseil.io/): 一个C++库,提供了许多常用的功能,如字符串处理、内存管理、并发编程等,是Google开源的一个项目 ## 项目依赖 ### 工具链 - [Xmake](https://xmake.io/): 基于Lua的现代化C/C++构建工具 ### 第三方库 - [iau-sofa](https://www.iausofa.org/): 一个C库,提供了许多常用的天文计算函数 - [Eigen](http://eigen.tuxfamily.org/): 高性能C++模板库,用于线性代数、矩阵和向量运算 - [fmt](https://fmt.dev/): 一个用于格式化字符串的C++库,提供了类似于Python的格式化语法 - [openscenegraph](https://www.openscenegraph.org/): 一个跨平台的3D图形库,用于渲染和交互显示3D场景 - [opengl](https://www.opengl.org/): 一个跨平台的3D图形库,用于渲染和交互显示3D场景 - [Qt](https://www.qt.io/): 跨平台C++图形用户界面应用程序开发框架 ## 🌌 项目名称灵感 **ast** 这个名字蕴含着多重深意,每一层都呼应着航天仿真的本质: ### 🪐 **词源深意** - **星辰之源**:源自希腊语词根 `aster` (ἀστήρ),意为"星辰" - **天文传承**:与 astronomy(天文学)、astronaut(宇航员)、Astrodynamics(航天动力学)等同源 - **宇宙探索**:象征着我们通过仿真技术探索宇宙奥秘的使命 ### 🚀 **专业内涵** - **Aerospace Simulation Tool** - 航天仿真工具 - **Advanced Space Technology** - 先进空间技术 - **Astrodynamics Solver Tool** - 航天动力学求解工具 --- "在代码的宇宙中,我们绘制航天的星辰轨迹" ---