apsis-book/content/concepts/overview.zh.md

60 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 概念总览
tags: 总览, 范围
summary: ApsisRS 计算内核的覆盖范围,以及本概念文档集的组织方式。
---
# 概念总览
ApsisRS 是一套面向商业航天与卫星互联网系统的计算内核。这些内核以可审计为目标编写:除 Rust 标准库外不依赖任何外部 crate,每个物理量都在类型系统中携带单位,每个算法都注明其所遵循的公开标准。
本文档解释这些内核实现的概念。它面向手中已有数据、需要知道这些数据含义、单位以及方法适用边界的读者。每篇文档给出定义、数学含义、单位约定、适用边界与公开来源。
## 分层顺序
工作区按层组织,并强制一条单向依赖规则:每一层可以使用其左侧的层,不得使用其右侧的层。
```text
foundation -> physics -> orbit -> rf -> network -> ops -> sim
```
本服务展示的是前三层:
| 层 | 内容 | 示例 |
|----|------|------|
| foundation | 共享类型、单位、线性代数 | `Vec3`、`Mat3`、物理量 newtype |
| physics | 时间、坐标系、大地测量 | `Epoch`、`EarthRotationAngle`、`WGS84` |
| orbit | 元素集、传播、机动 | `TwoLineElement`、`Satellite`、`Orbit` |
其余层覆盖射频链路、星座网络、运行调度与仿真,超出本服务所展示接口目录的范围。该目录由 foundation、physics 与 orbit 三个层的 crate 生成。
## 如何阅读一篇概念文档
一篇概念文档回答五个问题:
1. **定义。** 该概念是什么,一段话说明。
2. **数学含义。** 相关公式,或对操作的描述,并给出符号含义。
3. **单位。** 每个量的单位,以及角度的约定。
4. **适用边界。** 方法在何处有效,在何处无效。
5. **来源。** 实现所遵循的公开标准或论文。
同一问题存在多种方法时,文档以对比表并列列出,表的列为*方法*、*精度*、*计算开销*、*适用场景*、*参考标准*以及 *apsis-rs 是否实现*。
## 角度约定
除非名称另有说明,`apsis-rs` 公共接口中的角度以**弧度**表示。唯一的例外是两行元素集格式:其姿态角以**度**表示,因为格式本身如此书写,解析器也保留度。弧度转换发生在传播器中,而不是解析器中。
经度以向东为正。纬度是大地纬度,自椭球法线量起,不是地心纬度。
## 时间约定
时刻以国际原子时尺度上的约化儒略日存储。统一存储在一个尺度上使两个时刻之差恰为经过的时间。见 [[time-scales]]。
## 接下来
- 工作区结构:[[architecture-apsis-rs]]
- 时间:[[time-scales]]、[[leap-seconds]]、[[calendar-and-mjd]]
- 坐标系与地球:[[reference-frames]]、[[geodesy-wgs84]]
- 元素集与传播:[[tle-format]]、[[sgp4]]、[[keplerian-elements]]
- 方法对比:[[propagator-comparison]]