跳轉到

D-20260811-05|能量域熱模型與固定熱庫接觸

2026-08-11 關聯追補:輪胎磨耗來源與倍率曲線已由 D-20260811-10 修訂為逐 region 接觸耗散與 1+2r²;J/W 熱帳、固定熱庫與 HUD 語意仍有效。

背景與驅動力

舊熱模型混用溫度直加、未閉合量綱的散熱式與宣告功率,地面材質熱參數也沒有接線;大時間步 或高導熱時可能越過環境溫度,輪胎滑移熱與溫度磨耗則完全缺席。專案尚未公開,不保留舊資產 或存檔相容層,直接建立完整的單一能量域。

考慮過的選項

  • 保留各來源直接 temperature +=:量綱混雜,來源順序會改結果,也無法一致接入接觸熱,棄。
  • 顯式 Euler 更新:高熱導或大時間步會越過固定熱庫並震盪,棄。
  • J/W ledger 加單次 backward Euler,並在 manifest 烘焙所有幾何/材質熱輸入(採納)。

決定

  • PhysicsManifest v4 對每個 part 烘焙 heatCapacityJPerCambientConductanceWPerC 與 weakest thermalLimitC;每個 deterministic convex proxy 另帶 thermalExchangeFactorthermalContactAreaM2。同一 part 內,整個三角面被另一水密 region 嚴格包覆時不算 ambient exposed area;接觸邊界、部分相交面不猜裁切面積。跨 part 裝配遮蔽 單資產無法得知,留待整車級 bake。
  • 所有熱源只以 J 或 W 進帳,單幀每 part 只解算一次 backward Euler: Tnext=(C*T+E+dt*(Q+Hair*Tair+ΣHcontact*Tsurface))/(C+dt*(Hair+ΣHcontact))。 溫度只允許初始化、restore 與這次解算寫入,並鉗制在 -273.15..5000°C
  • motor 與 battery 發熱依本幀實際輸入/供能功率;skill、burn、freeze 都轉入同一 ledger。 burn 的正熱量受被動武器耐熱折抵,freeze 的負熱量不受折抵。晶片跨過熱限的該次技能仍完整 執行,之後 chip broken。
  • tire/roller 與 solid surface 的接觸導熱,把天氣溫度視為不耗竭的固定地表熱庫。 Hcontact 由雙方量化 sqrt(k×ρ×c) 的 harmonic mean、baked contact area 與實際 normal impulse 合成;滑移熱使用實際 tangential impulse × tangential slip speed,禁止以材質預估替代。
  • 輪胎溫度相對環境至熱限的比例,線性把行駛磨耗放大至 1 + K_TIRE_THERMAL_WEAR_MAX; 超過熱限直接 broken。HUD 增加全車最熱輪胎,只顯示環境相對色階/狀態,不公開精確溫度。
  • 開發期直接升 open4wd_version v5、builtin_assets_version v5、SavedState v7,重烘全部 builtin, 不提供舊 thermal 欄位 fallback。暫定 K 值只對 synthetic reference 校準,不把半成品公版 GLB 當作平衡權威。

後果與影響

高導熱與大 dt 仍單調、有限且不越過固定熱庫;所有發熱路徑可加總稽核,地表材質、接觸力、 滑移與輪胎壽命形成同一可測鏈。代價是 admission bake 增加包覆面與 proxy 熱參數計算,runtime contact manifold 增加固定量的熱聚合,因此最大合法拓撲 benchmark、determinism、snapshot/restore、 conformance 與 builtin rebake 都是必要驗證門檻。