5.8 KiB
5.8 KiB
下面是可直接交给执行 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% | 健康 |
| 30–60% | 可接受 |
| >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 后,将仿真结果提交用于协议级评估。