第 1 级 · 餐后的一大批辣豆酱
晚餐时段结束了。一口 24 kg 的浓稠辣豆酱锅刚从炉上端下,温度 70 °C,必须冷却好留到明天。惯常的做法是把锅推进冷库就回家。要在《食品法典》(Food Code)限值内把它冷却下来,缩短它处于危险温度区的时间,而且不要把它扔掉。
- 结束时没有不合规的食物
- 没有丢弃任何东西
- 这批食物在危险区(5–57 °C)停留 ≤ 100 分钟
- 库存产品始终不高于 5 °C
你经营一家繁忙餐厅的厨房:一间冷库、一个冰水浴水槽、一台小型急速冷却机、一个保温台和一排厨师。热食必须迅速通过危险温度带,冷食必须保持低温,而订单还在不断进来。这是一个运营模拟器,不是 HACCP 计划,也不是法律建议。
把所有仍在冷却的批次分到 5 cm 深的餐盘里(每公斤约占厨师 1 分钟)。
把整批食物放在冰水中搅拌(最多 25 kg)。搅拌和换冰要占用半个厨师的人手。
−5 °C 强制冷风,一次最多 40 kg;它的热量排到室外,而不是排进冷库。
每位厨师一次做一张单(每张 12 分钟)。
按计划成批取备料,并保持塑料门帘关闭:开门次数更少、开口更小。
冷却空气必须低于 5 °C,否则放在冷库中冷却的食物永远降不到这个温度。
保温槽里的食物温度会低于设定值,高峰期盖子频繁打开时更明显。
扔掉所有超出冷却限值的批次;如果没有,就扔掉处于危险温度带时间最长的那一批。
| 批次中心温度 | 3.0 °C |
|---|---|
| 冷库空气 | 3.0 °C |
| 不合规的食物 | 0 kg |
| 已丢弃的食物 | 0 kg |
| 处于危险温度带的时间 | 0 min |
| 产气荚膜梭菌增殖潜力 | 0.0 log |
| 温度高于 5 °C 的库存产品 | 0 min |
| 厨房里的订单 | 0 |
| 当班厨师 | 6 |
| 冷库压缩机负荷 | 0.00 kW |
| 开门渗入热负荷 | 0.00 kW |
| 热批次释放的热量 | 0.00 kW |
晚餐时段结束了。一口 24 kg 的浓稠辣豆酱锅刚从炉上端下,温度 70 °C,必须冷却好留到明天。惯常的做法是把锅推进冷库就回家。要在《食品法典》(Food Code)限值内把它冷却下来,缩短它处于危险温度区的时间,而且不要把它扔掉。
这是个忙碌的晚上,冷库压缩机开始出故障:在大约五个半小时后技师到来之前,只剩十分之一的制冷能力。一小时后,一锅 15 kg 的浓稠酱汁下了灶,必须冷却。要让库存食物保持在 5 °C 或以下,并按时冷却酱汁。
四位厨师应付傍晚早些时候毫无压力。然后高峰来了:订单量在三个半小时内增加到两倍多。要把出单时间控制得短,让保温台的食物保持热度,同时不要人手过剩,也不要把保温的食物煮过头。
模拟器使用的每一个关系式及其来源。标注为假设的常数是示意性校准值。
τ = ρc · L_c / U, 1/U = 1/h + L_c/(3k); L_c: pot 6 cm, 5-cm pans 2.5 cm; h: walk-in 20, ice bath 100, blast 50 W/m²K[6][3][4][5]假设:深度、传热系数、冷库大小、开门和压缩机负荷以及烹饪时间均为中型餐厅的示意值。毕奥数修正只是一阶近似,对深锅而言比较粗略。57 °C → 21 °C within 120 min; 57 °C → 5 °C within 360 min; else out of compliance → discard[1][2]cold holding ≤ 5 °C; hot holding ≥ 57 °C; abuse = Σ Δt while 5 °C < T < 57 °C[1]Food Code profile ≈ log10(T − 2.8 °C) falling 0.2312 per h ⇔ τ ≈ 1.9 h[3]μ(T) = μopt·(T−Tmax)(T−Tmin)² / {(Topt−Tmin)[(Topt−Tmin)(T−Topt) − (Topt−Tmax)(Topt+Tmin−2T)]}; growth = Σ μ/ln10 · Δt [log10][8][7]仅作指示:参数按熟鸡肉拟合,忽略了迟滞期,因此会高估增殖。它不是安全结论。n_door ~ Poisson(rate·Δt); C_air·dT/dt = UA·(T_kitchen − T) + n_door·E_door·(T_kitchen − T)/Δt + Q_batches + UA_p·(T_product − T) − Q_comp[9][6]假设:深度、传热系数、冷库大小、开门和压缩机负荷以及烹饪时间均为中型餐厅的示意值。毕奥数修正只是一阶近似,对深锅而言比较粗略。tickets ~ Poisson(λΔt); each station: one ticket, 12 cook-min (M/D/c); W = L / X, L = waiting + on stations, X = cook-min delivered in the last 30 min ÷ 12 per h (≥ 1/h; warm-up: opening steady state)[11][10]T_hot → (setpoint − 0.2 °C × tickets served per h), τ = 30 min[1]假设:深度、传热系数、冷库大小、开门和压缩机负荷以及烹饪时间均为中型餐厅的示意值。毕奥数修正只是一阶近似,对深锅而言比较粗略。ρc = 3.9 MJ/m³K, c = 3.9 kJ/kgK · k: stock 1.2, thick sauce 0.5 W/mK, ×2 when stirred in ice · ice bath 0 °C, ≤25 kg · blast chiller −5 °C air, ≤40 kg · walk-in: air node 0.4 MJ/K, 300 kg stored product (3.6 kJ/kgK, 60 W/K to air), walls 10 W/K, compressor 3 kW · door openings 10/h + 0.8 per ticket/h, 2.7 kJ/K each; discipline: 40 % of openings, half the exchange (strip curtain) · ticket 12 cook-min · portioning 1 cook-min/kg · ice-bath stirring 0.5 cook per batch · throughput window 30 min (a station counts only when fully staffed) · kitchen 30 °C假设:深度、传热系数、冷库大小、开门和压缩机负荷以及烹饪时间均为中型餐厅的示意值。毕奥数修正只是一阶近似,对深锅而言比较粗略。随机性:带种子的 mulberry32 生成器;所用分布包括均匀分布、指数分布(逆 CDF)、正态分布(Box–Muller)和泊松分布(Knuth)。种子会显示出来,并且可以分享。
教育模型,不可用于实际运营决策。真实站点会根据自己的设备和数据校准每一个常数。