RoR 平滑设置指南
RoR 曲线决定了你能否及时捕捉烘焙趋势。为了让它既稳定又灵敏,需要理解三件事:探针噪声必须被平滑处理;平滑度和响应度始终互相牵制;HiBean 的 RoR 计算链路分成前置温度处理、核心算法以及后置平滑三个阶段。掌握这条链路,就能用最少的调节获得可重复的曲线。
1. 为什么需要平滑?
烘焙过程中,BT 探针会受到热风波动、豆子翻搅以及采样抖动的影响。若直接用原始 BT 求导,RoR 曲线通常会出现 5–10°C/min 的瞬时尖峰。多组算法仿真表明:在关闭平滑时,RoR 虽能捕捉瞬时变化,但噪声会盖过真正的趋势;当套用轻量移动平均后,噪声降低约 10%–15%,可明显看清一爆前后的趋势。因此平滑的目标不是让曲线“好看”,而是保证豆温决策依据稳定可靠。
1.1 平滑度与响应度如何量化?
- 平滑度(smoothness):对 RoR 的滑动标准差进行归一化,和无平滑的基线对比,落在 0–1 之间,越高代表曲线更顺。
- 响应度(response):统计 RoR 相对真实转折点的延迟,折算为
response = exp(-|lag| / 12s),越接近 1 表示滞后越小。 - 综合评分:
0.55 * smoothness + 0.45 * response。权重来自 HiBean 内部烘焙师群体测试,大家普遍认为平滑度的重要性略高于响应,但不能忽视后者。
延时(lag)又是如何得到的?我们会把同一批烘焙数据拆成“未经平滑的 RoR”与“经过当前设置后的 RoR”两条序列:先对两条曲线各做一次低通滤波,避免把高频噪声误认为转折;再寻找第一处“由负转正”的零点(RoR 从下降转为上升)。如果存在这个零点,就用它作为曲线响应的关键点;若整段曲线都未越过 0,则退而求其次,取 RoR 最低点。两条曲线关键点的时间差就是延时 dt,再将 dt 套入上面的指数公式,就得到 0–1 区间内的响应度。这样即可准确反映“新曲线比原始曲线慢了多少秒”,同时避免被偶发噪声干扰。
2. 平滑度 vs 响应度:一对互斥的拨杆
平滑和响应本质是一对此消彼长的拨杆:增大窗口、减小权重虽然会让曲线更顺滑,但也意味着为每一个 RoR 值累积更多历史数据,滞后自然变大。以 Polyfit 中档为例,后置平滑窗口从 1 提高到 4(相当于从关闭 → deadband EMA),复合平滑指标仅提升约 0.04,而额外的滞后达 6–8 秒。LWMA 中档更明显:温度前处理窗口从 0 → 4,滞后增量约 3 秒。实际操作时,应先决定自己要的是“快”还是“稳”,再针对性调参。
3. RoR 计算链路拆解
| 阶段 | 是否默认开启 | 作用 | 主要配置 |
|---|---|---|---|
| 前置温度平滑(BT Smoothing) | 默认关闭 | 先对 BT 做均值或 EMA,减少传感器噪声 | 开关、算法(移动平均 / EMA)、窗口或 α |
| RoR 核心算法 | 开启 | 由 BT 推算 RoR。当前提供 LWMA(衰减均值)与 Polyfit(滑动拟合) | 选择算法 + 低/中/高档或自定义参数 |
| RoR 后置平滑(PostSmoother) | 开启 | 针对 RoR 输出做最后的滤波,弥补核心算法不足 | 算法(移动平均 / Butterworth / Deadband EMA)+ 窗口 |
系统的默认策略是:前置温度滤波保持关闭,避免在链路最前端就引入不可逆的滞后;RoR 核心算法根据用户选择的预设来决定响应度;最后再用轻量级后置滤波削掉剩余噪声。只有当探针噪声远超 RoR 后段可抑制的范围时,才建议从最前端开始加平滑。
4. 何时需要开启前置温度平滑?
测试(Polyfit 中档 + 关闭 PostSmoother)显示:无论移动平均还是 EMA,“完全关闭”都拿到了最高综合分(0.696 / 0.645)。把移动平均窗口调到 2 时,平滑度虽增加约 0.02,但滞后立刻多出 1 秒;窗口增至 8 或 EMA α 降至 0.25 时,滞后甚至翻倍。换句话说,BT 前置滤波的收益远小于它带来的延迟。
只有以下情况值得开启:
- 探针噪声异常大(例如环境粉尘、传感器松动),后置滤波仍无法稳定曲线。
- 正在调试硬件,需要先把前端噪声压到一个可控范围,再研究 RoR 算法的区别。
即便如此,也建议把参数限制在 移动平均窗口 ≤ 2 或 EMA α ≥ 0.7,这样滞后只会增加 1–1.5 秒。如果想要进一步抑噪,应优先调整后置 RoR 滤波,而不是继续放大会拖垮实时性。
5. 何时选择 LWMA,何时选择 Polyfit?
| 维度 | Polyfit | LWMA (Decay Average) |
|---|---|---|
| 工作原理 | 在滑动窗口内拟合温度趋势,支持预测偏移与输出再平滑 | 对每个样本施加温度衰减权重,快速滚动平均 |
| 响应特性 | 在低/中档时滞后更小,适合追踪趋势变化 | 先天更稳,噪声大时更易控制;但同档位滞后比 Poly 大 2–5s |
| 参数易懂度 | 窗口、lag、预测偏移可以独立微调,适合追求细节的人 | 主要关注一个衰减权重,调参成本更低 |
| 测试结论 | Poly 低档在关闭后置滤波时拿到最高综合分;标准档 + Butterworth 是大多数场景的甜 spot | 在高平滑档表现可靠,配合 Deadband EMA 能得到最稳的曲线 |
选择指引:
- 需要细腻追踪、想及时看到一爆前的 RoR 起伏 → 选 Polyfit。
- 想要“拖尾更稳、少调参”或环境噪声大 → 选 LWMA。
- 若不确定,可先用 Polyfit 标准档,等熟悉曲线后再尝试 LWMA 作为对照。
6. 三种预设平滑度
| 算法 | 档位 | 典型场景 | 核心参数(摘自 RoR 预设) | 后置滤波 |
|---|---|---|---|---|
| Polyfit | 低 | 调试、抓瞬时反应 | window=5、lag=10s、offset=-1s | 移动平均窗口=1(等同关闭) |
| Polyfit | 标准 | 日常烘焙默认 | window=10、lag=18s、offset=0 | Butterworth 窗口=3 |
| Polyfit | 高 | 演示、噪声很多的环境 | window=10、lag=30s、offset=-1s | Deadband EMA 窗口=4 |
| LWMA | 低(Less) | 想要快速反馈但又偏好 LWMA | 温度衰减=6 | 移动平均窗口=1 |
| LWMA | 中(Medium) | 与 Poly 标准档体验接近 | 温度衰减=10 | Butterworth 窗口=3 |
| LWMA | 高(High) | 需要最稳的 RoR 线 | 温度衰减=16 | Deadband EMA 窗口=4 |
内部仿真结果显示:Butterworth 窗口 3 与 Deadband EMA 窗口 4 分别站在帕累托前沿,既能兼顾 Poly/LWMA 的表现,又能把实现复杂度控制在合理范围。
7. 自定义参数说明
建议按照“先设定响应目标 → 调整核心算法 → 最后再看是否需要前置/后置辅助”的顺序。以下说明均与 UI 滑杆保持一致,滑到更高或更低会如何可参照备注。
7.1 前置温度平滑
- 启用开关:默认关闭。打开后整条链路都会在更慢的温度序列上运行,任何滞后都不可逆。
- 算法:移动平均适合直观地“拉长窗口就更稳”;EMA 则通过
α(0–1)控制对最新样本的敏感度,α 越大越灵敏。 - 移动平均窗口:每增加 1,大约追加 1 秒的反应延迟,同时平滑度提升约 2%(来自 Poly 中档测试)。
- EMA α:从 0.9 降到 0.3 会让曲线明显变钝,但滞后也会成倍增长;将 α 控制在 0.7 以上更安全。
7.2 LWMA(Decay Average)参数
- 温度衰减权重:范围 2–20。数字越大表示“更看重历史数据”,因此曲线更平顺但反应更慢;越小越接近原始 RoR。预设分别停在 6 / 10 / 16。
- RoR 后置滤波器:在 LWMA 自定义模式同样可选移动平均、Butterworth、Deadband。可直接沿用预设里的组合,或者根据当前需求切换。
- 后置移动平均窗口:仅对选择
movingAverage时生效。窗口=1 等于关闭;窗口>1 则按窗口值线性增长滞后。
7.3 Polyfit 参数
- 拟合窗口长度:控制参与拟合的 BT 样本量。窗口越大,曲线越平顺但也越滞后。建议 5–15,除非你刻意想做超长周期分析。
- 拟合 lag(秒):类似于把拟合结果“挪到未来”。更大的 lag 代表观察的是更长时间尺度上的趋势;lag 减小时曲线更灵敏。
- 预测偏移:用于补偿烘焙机特性的系统性偏差(单位毫秒)。负值可以提前看到趋势,正值则让曲线更靠后。
- 输出平滑窗口:Polyfit 运算完成后自带一个轻量均值。窗口=1 等于直接输出拟合结果;调大可以再抑制一次短期抖动。
- RoR 后置滤波器与窗口:与 LWMA 一致,可选择三种滤波并设定窗口 1–10。Butterworth 窗口 3 与 Deadband 窗口 4 即来自此处。
8. 常见情境建议
- 需要最快响应(调火、调风):关闭前置平滑,选择 Polyfit 低档或 LWMA Less,并把后置滤波设为移动平均窗口 1。
- 日常烘焙/复刻曲线:沿用 Polyfit 标准档 + Butterworth 窗口 3。它在我们所有评估中都位于帕累托前沿,兼顾平滑与滞后。
- 噪声极大或想要“演示级”曲线:选择任一算法的高档 + Deadband EMA 窗口 4,同时视情况把前置移动平均开到 2(仅在噪声确实严重时)。
- 想验证硬件或滤波差异:关闭全部辅助(前置和平置窗口都拉到 1),以便看到最原始的 RoR,再逐一加回滤波器观察变化。
通过以上结构化的调校方法,你可以迅速看懂每个选项的意义,并在“平滑”与“响应”之间找到适合自己的节奏。下表节选自同一批烘焙记录在仿真环境中的测算结果(RoR 周期 60s、采样 1s、BT 平滑关闭),用于直观展示不同组合的取舍:
| 配置 | 平滑度 | 滞后 (s) | 响应度 exp(-|lag| / 12s) | 综合评分 | | --- | --- | --- | --- | --- | | Polyfit 低档 + 关闭后置 | 0.780 | 4.18 | 0.70 | 0.746 | | Polyfit 标准 + Butterworth(3) | 0.793 | 6.40 | 0.59 | 0.700 | | Polyfit 高档 + Deadband(4) | 0.807 | 14.82 | 0.29 | 0.575 | | LWMA Less + 关闭后置 | 0.803 | 5.12 | 0.65 | 0.735 | | LWMA Medium + Butterworth(3) | 0.836 | 10.39 | 0.42 | 0.649 | | BT 前置 MA 窗口 2(Poly 中档) | 0.810 | 7.23 | 0.54 | 0.692 | | BT 前置 MA 窗口 8(Poly 中档) | 0.840 | 14.55 | 0.30 | 0.596 |
这些结果清楚展示了“越平滑 = 越滞后”的经验法则;只要拉高参数,平滑度就会上升,但响应度一定会下降。根据自己对实时性的容忍度,选择合适的档位即可。***
