Skip to content

关键技术分析总览

本分区从工程实现视角深入剖析系统在三大核心技术维度上的设计决策、算法实现与已知局限,为论文核心章节提供技术支撑。

课题三大技术要求

水声网络数字孪生调度平台的技术核心可分解为三个相互耦合的子问题:

编号技术维度核心挑战系统中对应模块
T-1分布式时间同步在多节点仿真中维持统一时钟基准,保证事件因果序orchestrator/runner.py, barrier.py, clock.py
T-2资源动态分配根据实时信道质量动态调整节点发送配额与调度策略scheduler/base.py, round_robin.py, adaptive_qos.py
T-3信道建模与适配屏蔽底层仿真器差异,提供统一的帧发送/接收抽象unet_adapter/base.py, fjagepy_impl.py, arlpy_impl.py

三者的关系为:时间同步提供全局一致的时序基准,资源分配在每个时间步内决定"谁发送、发多少",信道适配层则负责将调度决策转化为实际的水声帧传输。

技术选型论证

编程语言:Python 3.11+

选择 Python 作为主要实现语言基于以下考量:

  • 生态兼容性:UNetStack 官方提供 fjagepy 和 arlpy 两套 Python SDK,系统需与之深度集成
  • 科学计算支持:指标计算依赖 NumPy(参见 metrics/compute.py:14-17),Python 生态在此领域成熟度高
  • 开发效率:作为原型验证系统,Python 的动态类型和丰富标准库显著提升迭代速度

Web 框架:FastAPI

后端 API 层(api/main.py)选用 FastAPI,核心优势:

  • 基于 Python type hints 的自动 OpenAPI schema 生成,降低前后端对接成本
  • 原生 async/await 支持,适配 WebSocket 实时推送需求
  • Pydantic 模型验证与序列化,与 scenario YAML 配置解析(config/load.py)无缝衔接

前端框架:React + TypeScript + Vite

Dashboard 层选用 React 生态,理由:

  • 组件化架构适配多面板仪表盘(拓扑、曲线、控制台)
  • TypeScript 类型安全减少前后端数据结构不一致的运行时错误
  • Vite 构建工具提供快速热更新,适合频繁调试的开发阶段

仿真引擎适配:UNetStack (fjagepy / arlpy)

系统通过适配器模式(UnetAdapter 抽象基类,unet_adapter/base.py:16-61)屏蔽底层仿真引擎差异。选择 UNetStack 作为首要支持目标,原因:

  • UNetStack 是当前学术界最广泛使用的水声网络仿真框架之一
  • 提供基于 fjage agent 的 Gateway API,支持运行时动态控制
  • 内置 PHYSICAL/LINK 层服务代理,可直接发送/接收声学帧

系统整体技术架构

                    +-----------------+
                    |   React UI      |
                    | (Dashboard)     |
                    +--------+--------+
                             | REST / WebSocket
                    +--------v--------+
                    |   FastAPI        |
                    |   (api/main.py)  |
                    +--------+--------+
                             |
              +--------------+--------------+
              |                             |
    +---------v---------+        +----------v----------+
    |   RunService      |        |  Persistence        |
    | (execution_worker)|        | (repo/trace_repo)   |
    +---------+---------+        +---------------------+
              |
    +---------v---------+
    |   Orchestrator     |
    |   (runner.py)      |
    +---------+---------+
              |
    +---------v---------+
    |   Scheduler        |
    | (策略: RR / AQoS)  |
    +---------+---------+
              |
    +---------v---------+
    |   UnetAdapter      |
    | (fjagepy/arlpy/    |
    |  logonly)           |
    +---------+---------+
              |
    +---------v---------+
    |   UNetStack        |
    |   仿真器实例        |
    +-------------------+

文档索引

文档内容
01-time-sync分布式时间同步技术分析
02-resource-allocation资源动态分配技术分析
03-channel-modeling信道建模与适配技术分析
04-future-roadmap缺陷分析与未来发展路线图