从官方与社区 Profile 验证的烘焙逻辑
早期 kpro-tools 从 38 个真实 profile 中总结基础规律。当前 KL Profile 又使用
Kaffelogic 最新 16 条官方海拔矩阵、99 条 Community 曲线及多组第三方曲线完成
交叉验证:Natural / Washed 直接从官方目标曲线和风扇曲线出发,产区、含水率、
风味目标与烘焙节奏作为受限的阶段变换叠加,而不是重新生成一条通用曲线。
海拔(同处理法、同冲煮方式下)
| 项目 | 0-1200m | 1000-1700m | 1500-2200m | 2000-2700m |
|---|---|---|---|---|
| 一爆温度 expect_fc(Filter-Natural) | 212 | 209 | 206 | 205 |
| 一爆温度(Filter-Washed) | 213 | 208 | 206 | 204 |
| 一爆温度(Espresso-Natural) | 208 | 206 | 204 | 202 |
| 一爆温度(Espresso-Washed) | 210 | 205 | 203 | 201 |
| roast_levels(Filter-Natural 第0档) | 215 | 211.8 | 209 | 207.4 |
| 预热功率(Filter-Natural) | 850 | 850 | 850 | 800 |
| 风扇降速起始点 | 365s | 370s | 375s | 380s |
规律:海拔越高 → 探针一爆温度越低(每档约 -2~-3°C)、roast_levels 整体 下移、曲线前期更慢、风扇更早保持高速、预热功率略低。高海拔豆密度大、 内部结构紧,需要更稳的前段能量管理和更短的「表观」一爆温度。
处理法
- 同海拔下 Washed 比 Natural 的
expect_fc高约 1°C(Filter 213 vs 212; Espresso 210 vs 208); - Washed 的预热功率明显更低(Espresso 670 vs 770),roast_levels 整体高 约 1°C;
- Washed 曲线中段(~160°C)更晚到达:Espresso Washed 189s vs Natural 172s (0-1200m)。
对应专业烘焙经验:水洗豆更「干净」、吸热/放热行为更温和,需要略低的起始 能量;日晒豆糖分多、美拉德反应更活跃,起始能量更高、一爆探针温度更低。
新增处理法:湿刨法 / 蜜处理
expect_fc(Filter,4 档海拔):
| 处理法 | 0-1200m | 1000-1700m | 1500-2200m | 2000-2700m |
|---|---|---|---|---|
| 日晒 | 212 | 209 | 206 | 205 |
| 水洗 | 213 | 208 | 206 | 204 |
| 湿刨法 | 210 | 207 | 204 | 203 |
| 蜜处理 | 213 | 210 | 207 | 206 |
预热功率(Filter):
| 处理法 | 0-1200m | 1000-1700m | 1500-2200m | 2000-2700m |
|---|---|---|---|---|
| 日晒 | 850 | 850 | 850 | 800 |
| 水洗 | 870 | 840 | 840 | 790 |
| 湿刨法 | 840 | 840 | 840 | 790 |
| 蜜处理 | 830 | 830 | 830 | 780 |
规律与说明:
- 湿刨法 fc 最低(低酸、多孔,一爆探针温度低)。预热最初按黄金曼特宁样例 设为很低(570W),但标准曲线第一分钟升温快,低预热与曲线斜率不匹配会触发 Studio「预热过低 / 加热太慢」提示,已校准到与曲线一致(≈日晒 −10W);
- 蜜处理 fc 依据两份真实样例(埃塞 Elto、哥伦比亚粉波旁厌氧蜜处理)校准为 ≈日晒 +1°C(水洗水平);
- 预热功率必须与曲线第一分钟斜率匹配(约 12W 每 °C/分,120g / 14700rpm), 否则机器会报预热过低。
冲煮方式
- Espresso 官方曲线点更密,在推荐档位的 DTR 约为 13%;
- Filter 官方曲线在推荐档位的 DTR 约为 14%,完整曲线末端不等于实际停火点;
- Espresso 的
roast_levels通常为一爆温度 +[0,2,4,6,8,10,12]; - Filter 档位表随官方模板保留,不再假定所有曲线都有同一固定步长。
烘焙度(深烘)
Natural / Washed 的官方海拔模板本身覆盖 0–6 档,普通深烘继续使用模板档位,
「深浅」由 recommended_level 的停火阈值实现。Very Dark 仍使用专用长曲线。
Community 语料没有支持“所有深烘 Filter 都增加 Zone 1 +3°C/min”的泛化,
因此默认不再注入该区域。控制区域只跟随已经验证的具体模板;目前自动保留的
是官方 Espresso Natural / Washed 在一爆附近的 Zone 3 -0.1°C/min。
四阶段曲线优化
Natural / Washed 的产区、含水率、风味与节奏调整建立在官方完整 Bézier 曲线上。算法先在 110°C 早期节点、175°C 黄点/梅纳节点、一爆点和发展中点 精确切分曲线,再分别变换:
- 官方基线保真:平衡且无额外调整时,温度曲线、风扇、档位、预热和 高级控制参数与对应官方模板一致;
- 阶段化变换:前段调整预热与干燥,中段调整黄点至一爆,后段调整发展 时间;FC 与末端温度只做小幅温度偏移。切分使用 De Casteljau 算法,不会 改变原曲线几何形状,也不会让发展期调整反向移动一爆;
- 生成后安全验证:对实际 Bézier 插值结果检查负 RoR、时间倒序、 0–5.9 档位可达性、推荐档位、最小期望 RoR 和控制区域重叠;
- 节奏包络标定:Balanced 保持官方基线;Fast 采用 profiles-2026 快速精品曲线的保守侧(典型 FC 约提前 24 秒、发展缩短约 10–20 秒); Slow 参考 CLAB/XCLAB Sweet/Strong 曲线(典型 FC 约延后 12 秒、发展 延长约 5–10 秒)。这些幅度不自动改变用户选择的烘焙档位。
Very Dark 和暂缺官方矩阵的 Wet-Hulled / Honey 仍使用保守回退曲线,但同样 必须通过全曲线安全验证;回退曲线会保证完整 0–5.9 档位可达。
高级参数的安全边界
- PID
0.717 / 0 / 3.55、比热修正2.1 / 4.0和预测参数在官方与绝大多数 Community 曲线中保持一致,不按风味目标动态修改; - 最小期望 RoR 与结束比例跟随官方模板,并校验其低于完整目标曲线最低 RoR;
- Corner、Power Analysis 区域和非默认 Kp/Kd 只在导入时保留,不自动生成;
- 官方 Filter 的
expect_colrchange为 0,官方 Espresso 为 175,均随模板写入。