跳转至

温度、高度与冷却模型

引擎温度是一个连续量,由引擎 controller 每 tick 在服务端用牛顿冷却模型计算,并持久化到 controller 的 NBT。本页详解发热与散热的具体计算方式——包括驱动它们的高度→温度与高度→气压关系。

适用于流体引擎。蒸汽引擎不用这套模型——其闭式锅炉自调节(见蒸汽动力室)。

模型一览

发热      Q_heat = Σ运行室 × 油门 × 燃料.heat × BASE_HEAT_FLUID × heatFactor(m_eff)
散热      P_loss = K_total × (T − T_amb)
                 K_total = (K_CORE×节数 + K_AMB×运行室数 + K_DUCT×风道数×风门) × ram(速度) × f(气压)

积分      T += (Q_heat − P_loss) / C_th / 20      (每 tick;C_th = C_TH_BASE × 节数)
钳制      T ∈ [T_amb, OVERHEAT_TEMP × 1.2]
过热      T ≥ 220°C 硬停;T ≤ 200°C 恢复(滞回)

引擎在发热 = 散热时达到平衡——油门、高度、冷却的任何变化都会移动平衡温度。

发热(Q_heat)

只有运行中的流体燃烧室发热,且仅在引擎运行、未过热时:

Q_heat = 运行室数 × 油门 × 燃料.heat × BASE_HEAT_FLUID(30) × heatFactor(m_eff)
项 含义
运行室数 正在燃烧的流体燃烧室数量
油门 0..1——发热与油门成正比
燃料.heat 燃料 datapack 条目的 heat 倍率(见燃料)
BASE_HEAT_FLUID 30 °C/s——流体室基础热
heatFactor(m_eff) 混合比热因子(见下)

混合比热因子

m_eff = 杆 × autoRichness(气压)(混合比杆与高空自动富油见流体燃烧室):

  • 双侧统一线性公式:heatFactor = 1 − (m_eff − 1)(即 2 − m_eff),斜率 −1,无凸曲线、无下限钳制。
  • 拉稀(m_eff < 1):heatFactor > 1,越稀越热(m_eff=0.8 → ×1.20)。
  • 富油(m_eff ≥ 1):heatFactor < 1,越浓越凉(m_eff=1.4 → ×0.60)。
  • 高度自动浓稀 = 免费调温:化油器按进气体积配油——高空天然变浓(autoRichness 最高 ×1.25)只降温(满自动富油时 heatFactor 最低 ≈0.75);海平面以下高气压天然变稀(最低 ×0.75)只升温——绝不费油。

热因子只缩放发热——绝不反哺油耗(经济系数只乘消耗)。

散热(K_total)

K_total = (K_CORE×节数 + K_AMB×运行室数 + K_DUCT×风道数×风门) × ram(速度) × f(气压)
项 含义
K_CORE 每节 0.02——引擎自身被动散热。停机也一直生效(所以停机的引擎会缓慢降温)。
K_AMB 每个运行室 0.05——运行室的环境对流散热。停机的室不计(停机引擎只靠 K_CORE 散热)。
K_DUCT 每个冷却气道 0.05——气道鳍片。按冷却风门(setCooling,见冷却气道)缩放。
风门 coolingStrength(0..1,默认 1.0)——只缩风道散热分量(真实 cowl flap)。
ram(速度) 冲压冷却:10 m/s 以下 ×1.0,线性爬升到 30 m/s 时 ×2.0——飞得快免费降温。静态(非物理体)方块 = 1.0。
f(气压) 气压因子:气压^0.8(钳位下限 0.25)。越高空气越稀 → 换热越差 → 高空散热更差。

环境温度(高度→温度)

引擎按世界高度 Y 读取环境温度 T_amb:

  • 物理体取物理体世界位置 Y(sub-level 原点);静态方块取方块自身 Y。
  • 主世界——Minecraft 尺度分段线性:
高度 Y 环境温度
Y ≤ 63(海平面) 恒 20°C
63 → 200(云层) 线性 20°C → 0°C
200 → 320(世界顶) 线性 0°C → −40°C
Y ≥ 320 恒 −40°C
  • 地狱:全高度恒 155°C——热环境。
  • 末地:全高度恒 0°C——冷寂环境。

为什么用 Minecraft 尺度而不是真实递减率

真实对流层递减率(≈0.0065°C/m)在整个 63→320 世界里只降 ~1.7°C——高度几乎无差异。Minecraft 尺度曲线(海平面→云层→世界顶)让高度真正影响引擎冷却。

气压因子(高度→气压)

气压因子与航电传感器共用同一空气模型(Sable 维度大气曲线,锚点间三次 Hermite 插值):

  • 主世界默认锚点:(−38, 1.5) / (63, 1.0) / (263, 0.4493) / (280, 0.4198) / (320, 0)——海平面 = 1.0 大气压,Y≥320 = 0。
  • pressureFactor = max(气压, 0.25)^0.8。
  • 同一气压还驱动高度自动浓稀(autoRichness = 1 + 0.45×(1−气压),钳制 [0.75, 1.25];高气压海平面以下自动稀油)——见流体燃烧室页。

高空玩法小结

高空三件事同时发生:

效应 方向 结果
环境更冷(越高越冷) 帮助散热 平衡温度更低
空气稀 → 气压因子下降 伤害散热 平衡温度更高
自动富油(免费降温) 帮助散热 heatFactor 下降,不费油

两个冷却效应部分抵消;自动富油是玩家免费的海拔补偿工具(把混合比杆拉到 m_eff≈1.0 还能吃到经济系数)。

过热与滞回(流体引擎)

  • T ≥ 220°C → 引擎硬停(不烧油)并置 overheated。
  • T ≤ 200°C → 解锁并允许重启(滞回避免在阈值附近高频启停)。
  • 所有阈值(155°C 经济目标 / 100°C 过冷 / 220°C 过热)都是引擎固定常量——不随燃料/油门变化,如同真实引擎的设计点/节温器。