Skip to content

Architecture v2 — Index

> 基准:本目录的所有内容均对齐 dev_doc/Refactoring/PCR_Master_Blueprint.md v1.0。 > 职责分工:Blueprint 定义 WHAT / WHERE(架构决策、目录映射、迁移计划);本目录描述 HOW(每个组件的内部实现、API 形态、跨组件 pattern)。 > 过去dev_doc/Architecture/ 是上一代文档,已与 v1.0 严重偏离,将在 v2 全部完工后整体删除。Git 历史是唯一备份。


1. 目录树(镜像 v1.0 的 13 库依赖图,自下而上)

Architecture_v2/
├── 00_Index.md                          ← 本文件

├── 01_Foundation/                       # types/ frames/ monad/ contracts/
│   ├── Monad_Toolkit.md                 ◇→■
│   ├── Time_and_Clock.md                ◇→■
│   ├── Coordinate_Frames.md             ■
│   └── Contracts_PerBodyFrames.md       ■

├── 02_Physical_World/                   # environment/ + plant/
│   ├── Environment_Fields.md            ■
│   ├── Plant_Model_Assets.md            ■
│   ├── Plant_Physics_Constitutive.md    ■
│   └── Plant_Hardware_Mech.md           ■

├── 03_Avionics_and_Bus/                 # avionics/ + bus/
│   ├── Device_Dual_Face.md              ■
│   ├── Sensor_Modeling.md               ■
│   ├── Hardware_Physics_Boundary.md     ■
│   └── Semantic_Bus_Pattern.md          ■

├── 04_FCC/                              # fcc/
│   ├── Three_Layer_Architecture.md      ✓
│   ├── Free_Monad_DSL.md                ■
│   ├── Interpreter_and_RWS.md           ■
│   ├── FCC_State_Machine.md             ■
│   ├── Pipeline_Factory_and_Compilation.md ■
│   ├── Navigation.md                    ✓
│   ├── Data_Driven_Scheduling.md        ✓
│   ├── Hardware_Decoupling.md           ✓
│   └── Static_Compilation_FSM.md        ✓

├── 05_Dynamics_Core/                    # dynamics_core/(普适内核)
│   ├── SpatialState_and_Frames.md       ✓
│   ├── Universal_ODE_Kernel.md          ■
│   ├── Forces_Monoid.md                 ■
│   └── Topology_Algebra.md              ■

├── 06_Simulation/                       # simulation/(跨域绑定层)
│   ├── Dual_Layer_RWS.md                ■
│   ├── RocketBody_Composite.md          ■
│   ├── WorldEnv_Assembly.md             ■
│   └── Body_World_Tick.md               ■

├── 07_Runtime/                          # runtime/
│   ├── Assembler_and_Runner.md          ■
│   ├── IDynChannel_SIL_HIL.md           ■
│   ├── PlantScope.md                    ■
│   └── PCR_Configuration.md             ✓

├── 08_Cross_Cutting/                    # 跨子域 pattern
│   ├── Symmetric_RWS_Philosophy.md      ■
│   ├── Config_and_Interpolation.md      ◇→■
│   ├── Algorithm_Integration_Guide.md   ■
│   ├── Testing_Framework.md             ✓
│   └── Implementation_Roadmap.md        ■

└── 09_Vision/
    └── Attitude_Stabilization_Frequency.md  ✓

图例

  • = 已对齐 v1.0(从旧目录直接搬运,内容无需改动)
  • = 新建或重写并已对齐 v1.0(v2 阶段从零写成 / 重写至闭环)
  • ◇→■ = 经过 PATCH 后已对齐 v1.0
  • = 已搬运,待 PATCH(路径/术语对齐)
  • = 待新建

2. v1.0 词汇基准表

阅读本目录前,请确认你使用的是 v1.0 术语,而不是旧 4 层架构的术语。

2.1 顶层命名变更

v0 / 旧 4 层模型v1.0 命名所属库
Util/, src/util/types/, monad/, frames/foundation
src/rocket/(整个域)拆分为 avionics/ + plant/
src/rocket/device/avionics/devices/(电子)+ plant/hardware/(机械)
src/dynamics/(含 pipeline)dynamics_core/(仅 universal kernel)dynamics_core
src/dynamics/pipeline/Thrust.hsrc/plant/physics/Thrust.hplant
src/dynamics/state/RocketBody.hsrc/simulation/state/RocketBody.hsimulation
src/runtime/WorldEnv.hsrc/simulation/env/WorldEnv.hsimulation
src/rocket/interface/src/contracts/contracts

2.2 类型与对象命名变更

v0 名称v1.0 名称备注
DynEnvBodyEnv(per-body)+ WorldEnv(global)双层 RWS 分别的 Reader
DynLogBodyLog + WorldLog双层 Writer 分别的 Log
WorldState(在 dynamics 下)sim::WorldState现属 simulation
RocketBody(只装物理状态)sim::RocketBody(复合体)含 spatial + devices + bus + fcc
AvionicsState(单一 POD)拆分为 per-device 的 mech + electronic state整合进 RocketBody
SemanticMsgcontracts::BusMessageheader-only POD
PhysicalEffectcontracts::EngineEffect(具体)+ Forces(累加器)
LifecycleEventcontracts::DiscreteEventDynInFrame.events 传输
RocketManager不存在设备编排在 sim::body_tick
BusManagerbus::IBus(多协议接口)返回 BusM<A> = Writer<BusLog, A>
BusMonitor折叠进 BusLog(Writer monad)

2.3 坐标系命名变更

旧术语v1.0 术语备注
pos_eci, vel_ecipos_ecf, vel_ecfECF = Earth-Centered Equatorial(WGS84)
ECEF 作为真值ECF 作为真值ECEF 标记为 legacy
Vec3Vec3_T<frame::X>全部需要 phantom-type 包装
att_eciQuat_T<frame::LIC, frame::BODY>强类型四元数

Frame 枚举完整清单ECF(truth)/ LIC(local inertial Cartesian, 积分用)/ BODY(体坐标)/ AERO(气动)/ NUE(FCC 内部导航)/ LLA(FCC 内部测地)。

2.4 配置与文件路径变更

旧路径v1.0 路径备注
data/input/dynamics/env.yamldata/input/world/atmosphere.yaml环境场(普适)
data/input/dynamics/engine.yamldata/input/rocket_vN/engines.yaml对象资产(per-rocket)
data/input/dynamics/aero.yamldata/input/rocket_vN/aero/同上
单一 stage_configs.yamlrocket_vN/ + fcc_vN/ + sim/deployments/*.yamlPCR 三分

详见 07_Runtime/PCR_Configuration.md 与 Blueprint §2.8。


3. 与 Blueprint 的双向链接

本目录的核心架构决策都在 Blueprint v1.0 中有定义。以下是反向索引:

本目录文档Blueprint 章节
01_Foundation/Monad_Toolkit.md§2.5, §3.1, §7.12
01_Foundation/Time_and_Clock.md§0, §2.6.4, §2.7
01_Foundation/Contracts_PerBodyFrames.md§2.2
02_Physical_World/Environment_Fields.md§2.3, §7.15
02_Physical_World/Plant_Model_Assets.md§2.4
02_Physical_World/Plant_Physics_Constitutive.md§2.4, §4.1
02_Physical_World/Plant_Hardware_Mech.md§2.4, §7.5
03_Avionics_and_Bus/Device_Dual_Face.md§2.6.1, §7.5
03_Avionics_and_Bus/Semantic_Bus_Pattern.md§2.10, §7.1
04_FCC/Three_Layer_Architecture.md§3, §3.1
04_FCC/FCC_State_Machine.md§3.4, §3.5, §7.3
04_FCC/Pipeline_Factory_and_Compilation.md§2.6.4, §3.1, §3.3, §7.3
05_Dynamics_Core/Universal_ODE_Kernel.md§2.5, §7.16, §4.1
05_Dynamics_Core/Forces_Monoid.md§2.5, §4.1
05_Dynamics_Core/Topology_Algebra.md§2.9, §7.3, §2.6.4
06_Simulation/Dual_Layer_RWS.md§2.6, §2.6.4, §1.2
06_Simulation/RocketBody_Composite.md§2.6.1, §7.5, §7.16
06_Simulation/WorldEnv_Assembly.md§2.6.2, §2.6.3, §4.3
06_Simulation/Body_World_Tick.md§1.2, §2.6.4, §2.9
07_Runtime/Assembler_and_Runner.md§2.7, §7.18
07_Runtime/IDynChannel_SIL_HIL.md§1.3, §2.10
07_Runtime/PlantScope.md§2.8
08_Cross_Cutting/Symmetric_RWS_Philosophy.md§2.6, §2.6.4, §3.1, §7.1
08_Cross_Cutting/Algorithm_Integration_Guide.md§3.1, §3.4, §7.12
08_Cross_Cutting/Implementation_Roadmap.md§6

设计裁定全表见 Blueprint §7。讨论推理过程见 dev_doc/Refactoring/PCR_Discussion_Log.md


4. 推荐阅读路径

4.1 新人入门(不熟悉本项目)

  1. 09_Vision/Attitude_Stabilization_Frequency.md — 项目愿景与 Code-First MBSE 哲学
  2. Blueprint §1(设计哲学)+ §2.1(13 库依赖图)
  3. 08_Cross_Cutting/Symmetric_RWS_Philosophy.md — 全局对称性
  4. 01_Foundation/Coordinate_Frames.md — 坐标系
  5. 06_Simulation/Dual_Layer_RWS.md — 主循环骨架
  6. 08_Cross_Cutting/Testing_Framework.md — 怎么跑测试

4.2 算法工程师(想加新 GNC 算法)

  1. 01_Foundation/Contracts_PerBodyFrames.md — 输入输出契约
  2. 04_FCC/Three_Layer_Architecture.md — FCC 三层
  3. 04_FCC/Free_Monad_DSL.md — 怎么写 DSL + 四段式 strategy
  4. 04_FCC/Pipeline_Factory_and_Compilation.md — 工厂 / firmware / Assembler / FccTick 职责分离
  5. 04_FCC/FCC_State_Machine.md — GNC Mealy + FccStage 代数
  6. 04_FCC/Navigation.md — 现有 SINS 实现参考
  7. 08_Cross_Cutting/Algorithm_Integration_Guide.md — 集成步骤

4.3 物理工程师(想加新力源 / 新本构)

  1. 01_Foundation/Coordinate_Frames.md + 01_Foundation/Contracts_PerBodyFrames.md
  2. 02_Physical_World/Plant_Model_Assets.md — 资产规格
  3. 02_Physical_World/Plant_Physics_Constitutive.md — 本构计算
  4. 05_Dynamics_Core/Forces_Monoid.md — 力如何累加
  5. 06_Simulation/Body_World_Tick.md — 流水线如何调用

4.4 硬件 / 嵌入式工程师(想加新设备)

  1. 03_Avionics_and_Bus/Device_Dual_Face.md — 双面实体模型
  2. 02_Physical_World/Plant_Hardware_Mech.md — 机械面
  3. 03_Avionics_and_Bus/Semantic_Bus_Pattern.md — 总线
  4. 03_Avionics_and_Bus/Sensor_Modeling.md — 传感器
  5. 06_Simulation/RocketBody_Composite.md — 如何挂载

4.5 系统集成 / 部署工程师

  1. 07_Runtime/PCR_Configuration.md — 配置三分
  2. 07_Runtime/PlantScope.md — 部署切片
  3. 07_Runtime/Assembler_and_Runner.md — 启动流程
  4. 07_Runtime/IDynChannel_SIL_HIL.md — SIL / HIL 切换
  5. 08_Cross_Cutting/Implementation_Roadmap.md — 当前进度

5. 文档维护约定

  1. 路径写法:所有源码路径都用 src/<lib>/<path> 形式(如 src/simulation/state/RocketBody.h)。不写 <lib>/<path>,因为这会和 Blueprint 的库名混淆。
  2. 代码示例:用 C++20 标准,namespace 全限定(sim::, plant::, avionics:: 等)。
  3. 不复制 Blueprint 的内容,只引用(用 → Blueprint §X.X)。如果发现某条信息在 Blueprint 和这里都写了,以 Blueprint 为准。
  4. 裁定追溯:架构决策的"为什么"放在 Blueprint §7 或 PCR_Discussion_Log.md,本目录不重复论证。
  5. 图例统一:依赖图用 表示依赖方向(A → B 表示 A 依赖 B),双向数据流用 ,状态机箭头用实线。