Files
lora_route_py/docs/plan/update.md

5.8 KiB
Raw Blame History

下面是可直接交给执行 AI 的 update.md。 它不是重新设计系统,而是进入 Phase-2协议验证与优化阶段的明确任务分解。

目标非常明确:

让仿真从“能运行”升级为“可解释 + 可优化 + 可移植 STM32WL”。


update.md


LoRa Gradient Routing 仿真工程

Phase-2 更新任务Validation & Optimization


0. 当前状态

项目已完成:

  • 仿真框架
  • 协议运行
  • 自动测试
  • 基础统计

当前问题:

PDR 偏低
大量节点直连 Sink
信道竞争严重

说明:

系统功能正确,但协议行为尚未被验证与解释。

1. Phase-2 目标

执行 AI 必须将项目升级为:

Self-Explaining Simulation

即:

  • 能解释性能来源
  • 能定位瓶颈
  • 能指导参数优化
  • 能评估 STM32 可移植风险

2. 新增目录结构

必须新增:

sim/
├── analysis/
│   ├── validation_report.md
│   ├── topology_export.json
│   ├── timeseries.csv
│   └── plots/
│
├── analysis_tools/
│   ├── topology.py
│   ├── convergence.py
│   ├── channel_analysis.py
│   └── reliability_analysis.py

3. 必须新增的 Metrics核心

扩展 metrics.py


3.1 路由稳定性指标

新增统计:

route_changes[node_id]
parent_history[node_id]
cost_history[node_id]

计算:

route_change_rate =
    total_parent_changes / sim_time

验收标准:

收敛后 ≈ 0

3.2 Hop 分布

统计:

hop_count_per_packet

输出:

hop_histogram

必须证明:

存在 hop ≥ 2

否则判定:

多跳未形成

3.3 信道利用率(必须)

Channel 记录:

busy_time
idle_time
collision_time

计算:

channel_utilization =
    busy_time / total_time

输出:

利用率 判断
<30% 健康
3060% 可接受
>70% 拥塞

3.4 丢包原因分解(非常重要)

新增 loss 分类:

LOSS_COLLISION
LOSS_NO_ROUTE
LOSS_RETRY_EXCEEDED
LOSS_CHANNEL_BUSY

输出比例。


4. 拓扑导出功能

新增:

analysis/topology_export.json

格式:

{
  "nodes":[
    {"id":1,"x":10,"y":22,"cost":3,"parent":0}
  ]
}

用于:

  • 外部绘图
  • 拓扑检查
  • 论文图生成

5. 时间序列记录

生成:

analysis/timeseries.csv

字段:

time,
avg_cost,
route_changes,
channel_utilization,
pdr_window

采样周期:

1s

6. 自动生成验证报告

必须自动生成:

analysis/validation_report.md

包含以下章节。


6.1 Topology Analysis

输出:

  • parent tree
  • hop distribution
  • unreachable nodes

结论字段:

MULTIHOP_FORMED = TRUE/FALSE

6.2 Convergence Analysis

绘制:

time vs avg_cost
time vs route_changes

计算:

convergence_time

定义:

route_changes < threshold 持续30s

6.3 Channel Analysis

输出:

collision_rate
channel_utilization
tx_attempt_distribution

判断:

NETWORK_STATE:
    LIGHT_LOAD
    SATURATED

6.4 Reliability Breakdown

表格:

原因 比例
collision
retry_exceeded
no_route

6.5 STM32 Transfer Risk

自动生成:

Risk
airtime realism LOW/MED/HIGH
ACK timeout safety
channel saturation risk

7. 参数扫描系统(新增)

新增:

analysis_tools/parameter_sweep.py

扫描参数:

HELLO_PERIOD ∈ [5,10,20]
DATA_PERIOD ∈ [20,40,60]
BACKOFF_MAX ∈ [1,2,4]

输出:

sweep_results.csv

包含:

PDR
avg_delay
collision_rate
utilization

8. 新测试(必须新增)


test_multihop_exists.py

断言:

assert max_hop >= 2

test_route_stability.py

断言:

route_change_rate < threshold

test_channel_not_saturated.py

断言:

utilization < 0.7

9. 禁止事项

执行 AI 禁止:

❌ 修改 routing 算法
❌ 修改 cost 函数
❌ 引入新协议

当前阶段只允许:

观察 + 测量 + 分析

10. Phase-2 验收标准

全部满足:

  • 自动生成 validation_report.md
  • 网络形成多跳
  • 收敛时间可测量
  • 信道利用率可计算
  • 丢包原因可分解
  • 新 tests 全通过

11. 完成后提交内容

执行 AI 必须输出:

analysis/
 ├── validation_report.md
 ├── topology_export.json
 ├── timeseries.csv
 └── plots/*.png

12. Phase-2 完成意义

完成后将获得:

协议行为模型Behavior Model

这一步完成后才允许进入:

STM32WL 移植阶段

13. 下一阶段(仅说明)

Phase-3 将进行:

MAC 优化
负载感知 routing
参数自动推导

但当前禁止提前实施。


执行优先级(严格顺序):

1 metrics扩展
2 topology导出
3 timeseries记录
4 validation_report生成
5 新测试
6 参数扫描

完成 Phase-2 后,将仿真结果提交用于协议级评估。