60 lines
2.8 KiB
Markdown
60 lines
2.8 KiB
Markdown
---
|
||
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]]
|