- PDR:网关去重后成功收到的 readings / 生成的 readings。
- 平均/P95 时延:首次发送到 ACK 的时间(含重传)。
- 平均 RSSI / SNR。
- 重传次数、碰撞次数。
- 占空比 = 总空口时间 / (时长 × 节点数)。
- 平均电流、理论电池寿命(2000mAh)。
| 场景 | PDR | 平均时延 | RSSI | 电池寿命 | 占空比 |
|---|---|---|---|---|---|
| SF7 / 1km | 1.000 | 0.00s | -98.3 | 636d | 0.077% |
| SF12 / 1km | 1.000 | 0.00s | -98.3 | 78d | 0.853% |
| SF7 / 10km | 0.662 | 1.59s | -125.2 | 329d | 0.164% |
| SF12 / 10km | 1.000 | 0.08s | -125.3 | 76d | 0.885% |
解释:
- 1km:SF7 和 SF12 都能全收;SF7 电池寿命高一个数量级。
- 10km:SF7 在 2 次重传后仍只有 0.662 PDR;SF12 灵敏度更高,PDR 1.0,但占空比/功耗显著上升。
- 结论:距离/可靠性/功耗是三角取舍;远距离优先 SF12 或中继,近距离优先 SF7。
.venv\Scripts\python -m lora_sim sweep --nodes 5 --hours 6 --sf 7 9 12 --distances 1000 5000 10000 --out output/sweep.csv --summary output/sweep.json- 输出
output/sweep.csv/output/sweep.json:每个 SF × 距离的 PDR/时延/RSSI/电池/占空比。 - 用于画“可靠性 vs 距离 vs 功耗”曲线;不同窗口/节点数结果会有小幅差异。
- 硬件 bring-up 见 bringup.md。
- 节点 + 网关在 10m/100m/1km/5km 测试;记录 RSSI/SNR/PDR。
- 用可调电源测睡眠/唤醒/TX/RX 电流;算实际电池寿命。
- 对比仿真与实测;解释差异(天线、遮挡、干扰、模块差异)。
- 至少 3 个场景 × 每场景 100 帧;记录失败原因。
- 仿真简化为 ALOHA 碰撞、对数距离路径损耗;没有真实地形/干扰/多径。
- ACK 假设与 DATA 同链路成功;实物可能 ACK 丢失。
- 电池寿命是理想模型;不含自放电/温度/老化。
论文必须把“仿真结果”和“实测结果”分开写。