「物体の中の温度ムラを無視する」──これ、熱設計の現場でめちゃくちゃ使えるんです。
熱い金属球を水にポチャン。あなたは「中心まで冷えるのに何秒かかる?」と聞かれたら、どう答えますか? 普通に考えれば「内部の熱伝導」と「表面の対流」の両方を考えなきゃいけない…面倒ですよね。
でも、ある条件さえ満たせば、物体全体が一つの温度で一様に変化すると仮定してOK。計算が一気にシンプルになる。これが集中容量法(Lumped Capacitance Method) です。
しかも、その「ある条件」を判定するビオ数(Bi) と、温度変化の速さを決める時定数(τ) を理解すれば、あなたはもう熱設計の第一歩を踏み出せます。
今回は、実際にブラウザで動くシミュレーターを使って、理論→実装→実験→落とし穴まで徹底解説します。
💡 ざっくり本質:物体を「ひとつの塊」として扱う魔法
集中容量法のエッセンスはたった一言です。
「物体の中の温度はどこも同じだ」と仮定する
つまり、熱い金属球も、冷たい金属球も、球全体が一つの温度で表現される。内部に温度差がないから、エネルギー収支は「物体全体の熱量の変化」と「表面から逃げる熱量」の釣り合いだけで決まる。
これが成り立つ条件はただ一つ:
ビオ数(Bi)が0.1より小さいこと
Bi = (内部の熱伝導抵抗) / (表面の対流熱伝達抵抗)
Biが小さい=内部の熱はあっという間に均一になる。だから「温度ムラがない」と近似してOK。
📐 数式で理解する:指数関数が描く美しい冷却曲線
基本の微分方程式
物体のエネルギー収支を考えます。
\rho V c_p \frac{dT}{dt} = -h A_s (T - T_\infty)
| 記号 | 意味 | 単位 |
|---|---|---|
| ρ | 密度 | kg/m³ |
| V | 体積 | m³ |
| c_p | 比熱 | J/(kg·K) |
| T | 物体温度 | °C |
| t | 時間 | s |
| h | 対流熱伝達率 | W/(m²·K) |
| A_s | 表面積 | m² |
| T_∞ | 流体温度 | °C |
左辺は「物体の熱量変化」、右辺は「表面から逃げる熱量」。これらが等しいというシンプルな式です。
解:指数関数的な温度変化
この微分方程式を解くと(変数分離法で簡単に解けます)、
T(t) = T_\infty + (T_i - T_\infty) \cdot \exp\left(-\frac{t}{\tau}\right)
ここで登場するのが時定数τ:
\tau = \frac{\rho c_p V}{h A_s}
τの意味:
- t = τ のとき、温度差は初期の約37%(= 1/e)に減少
- τが小さい → 早く冷める(or温まる)
- τが大きい → なかなか温度が変わらない
ビオ数(適用条件の判定)
\mathrm{Bi} = \frac{h L_c}{k} \leq 0.1
ここで特性長さ L_c は:
L_c = \frac{V}{A_s}
- k: 熱伝導率 [W/(m·K)]
- Bi ≤ 0.1 が集中容量法の適用目安
💻 コードで実装する:JavaScriptで集中容量法シミュレーター
ここが最重要パート。ツールの計算ロジックを完全再現したコードです。
/**
* 集中容量法 温度履歴計算
* @param {Object} params - 計算パラメータ
* @param {number} params.rho - 密度 [kg/m³]
* @param {number} params.cp - 比熱 [J/(kg·K)]
* @param {number} params.k - 熱伝導率 [W/(m·K)]
* @param {number} params.h - 対流熱伝達率 [W/(m²·K)]
* @param {number} params.Lc - 特性長さ [m] (体積/表面積)
* @param {number} params.Ti - 初期温度 [°C]
* @param {number} params.Tinf - 流体温度 [°C]
* @param {number} params.tMax - 計算時間 [s]
* @param {number} params.nSteps - 時間分割数
* @returns {Array} [{t: 時間, T: 温度, theta: 無次元温度}]
*/
function lumpedCapacitance(params) {
const { rho, cp, k, h, Lc, Ti, Tinf, tMax, nSteps } = params;
// ビオ数計算
const Bi = (h * Lc) / k;
console.log(`Bi = ${Bi.toFixed(4)}`);
if (Bi > 0.1) {
console.warn('⚠ Bi > 0.1: 集中容量法の適用には注意が必要です');
}
// 時定数 τ = ρ·cp·V / (h·As) = ρ·cp·Lc / h
const tau = (rho * cp * Lc) / h;
console.log(`τ = ${tau.toFixed(2)} s`);
// 温度履歴の計算
const dt = tMax / nSteps;
const results = [];
for (let i = 0; i <= nSteps; i++) {
const t = i * dt;
// 解析解: T(t) = T∞ + (Ti - T∞)·exp(-t/τ)
const T = Tinf + (Ti - Tinf) * Math.exp(-t / tau);
// 無次元温度 θ = (T - T∞) / (Ti - T∞) = exp(-t/τ)
const theta = Math.exp(-t / tau);
results.push({ t, T, theta });
}
return { results, Bi, tau };
}
// 使用例: 鋼の球(直径10mm)を空気中で冷却
const steelBall = {
rho: 7800, // 鋼の密度 [kg/m³]
cp: 500, // 比熱 [J/(kg·K)]
k: 50, // 熱伝導率 [W/(m·K)]
h: 20, // 自然対流 [W/(m²·K)]
Lc: 0.01 / 6, // 球の特性長さ = 直径/6 (直径10mm)
Ti: 200, // 初期温度 [°C]
Tinf: 25, // 室温 [°C]
tMax: 600, // 10分間計算
nSteps: 100
};
const result = lumpedCapacitance(steelBall);
console.log(`最終温度: ${result.results[100].T.toFixed(1)} °C`);
console.log(`99%到達時間: ${(-Math.log(0.01) * result.tau).toFixed(1)} s`);
このコード、実務でそのまま使えます。パラメータを変えれば、どんな材料・形状でも計算可能。
🔢 数値例で確かめる:鋼の球が冷めるまで
設定条件
- 材料: 鋼(ρ=7800 kg/m³, cp=500 J/(kg·K), k=50 W/(m·K))
- 形状: 球, 直径10mm → Lc = V/As = (4/3πr³)/(4πr²) = r/3 = 0.005/3 = 0.001667 m
- 対流: 自然対流 h=20 W/(m²·K)
- 初期温度: 200°C → 室温25°Cへ冷却
計算ステップ
Step 1: ビオ数確認
\mathrm{Bi} = \frac{h L_c}{k} = \frac{20 \times 0.001667}{50} = 0.000667
Bi = 0.00067 << 0.1 → 集中容量法 適用可能!
Step 2: 時定数計算
\tau = \frac{\rho c_p L_c}{h} = \frac{7800 \times 500 \times 0.001667}{20} = 325 \, \text{s}
時定数は約5分25秒。つまり5分半経っても、まだ室温との温度差が37%残っている計算。
Step 3: 99%冷却時間
t_{99\%} = -\tau \cdot \ln(0.01) = 325 \times 4.605 = 1497 \, \text{s} \approx 25 \, \text{分}
直径1cmの鋼球が室温の99%まで冷めるのに約25分。意外と時間かかりますね。
Step 4: 30分後の温度
T(1800) = 25 + (200 - 25) \cdot e^{-1800/325} = 25 + 175 \cdot 0.0039 = 25.68 \, \text{°C}
ほぼ室温に達しています。
🎮 シミュレーターで遊ぶ:3つの実験
実際にツールを触りながら、理論を体感しましょう。
実験1:材料を変えて時定数を比較
| 材料 | ρ [kg/m³] | cp [J/(kg·K)] | k [W/(m·K)] | τ [s] | 特徴 |
|---|---|---|---|---|---|
| 鋼 | 7800 | 500 | 50 | 325 | 冷却が遅い |
| アルミ | 2700 | 900 | 200 | 203 | 鋼より1.6倍速い |
| 銅 | 8900 | 385 | 385 | 285 | 鋼より少し速い |
| セラミック | 3900 | 800 | 3 | 2600 | 超遅い! |
なぜ? τ = ρ·cp·Lc/h を見ると、ρ×cp(体積あたりの熱容量)が小さいほどτが小さい。アルミはρ×cpが小さい上にkが大きい(Biが小さくなる)ので、集中容量法が使いやすい材料です。
セラミックはkが極端に小さいため、Biが0.1を超える可能性が高い。シミュレーターで確認してみてください。
実験2:対流係数hを変えてみる
スライダーでhを動かすだけで、劇的に冷却曲線が変わります。
- h=5(弱い自然対流): τが大きく、なかなか冷めない
- h=100(強制対流・ファン): τが小さく、急激に冷却
- h=1000(水冷): 一瞬で冷めるが、Biが0.1を超える可能性大
注意: hを大きくしすぎるとBi > 0.1になり、集中容量法の近似が破綻します。ツールが警告を出したら、「内部温度ムラを考慮すべき」というサインです。
実験3:形状を変えて特性長さを比較
- 無限平板(厚さ10mm): Lc = 厚さ/2 = 0.005m
- 無限円柱(直径10mm): Lc = 直径/4 = 0.0025m
- 球(直径10mm): Lc = 直径/6 = 0.00167m
同じ材料・同じhでも、形状によって冷却速度が変わる。球が最も早く冷める(表面積あたりの体積が小さい)。これがLcの効果です。
⚠️ 現場でハマるポイント:3つの落とし穴
落とし穴1:「Bi<0.1なら絶対安全」という思い込み
教科書的には正しい。でも現場では安全マージンを取るべきです。
- 発熱がある部品(抵抗発熱など)では、内部温度分布が問題になるケースがある
- 熱応力がクリティカルな部品では、Bi=0.05でも詳細解析が必要なことも
- 「適用可能」=「第一近似として使える」という意味。最終判断はFEMなどの詳細解析で
落とし穴2:特性長さLcの選び間違い
Lc = V/As は形状によって値が変わります。
| 形状 | Lc |
|---|---|
| 球 | 直径/6 |
| 無限円柱 | 直径/4 |
| 無限平板 | 厚さ/2 |
| 直方体 | 体積/表面積(一般形) |
細長い棒を一つの塊として扱うと、実際より遅く冷えると予測してしまいます。そんな時は、棒を短いセグメントに分割して、それぞれに集中容量法を適用するセグメント化というテクニックを使います。
落とし穴3:対流係数hの「魔術的な調整」
計算結果が実測と合わないからといって、hを自由に調整するのは危険です。
- hは物理的に決まる値(自然対流5-25、強制対流10-500、水冷500-1000+)
- hを「合わせるためのパラメータ」にすると、物理的意味が失われる
- 実測と合わない時は、Biの条件が崩れていないかを先に確認
📝 まとめ:今日から使える集中容量法
- 集中容量法の本質: Bi < 0.1なら、物体内部の温度ムラを無視してOK。計算が爆速になる
- 時定数τが全て: τ = ρ·cp·Lc/h。これが冷却/加熱の速さを決める最重要パラメータ
- ツールで実験しよう: パラメータを変えながら、理論と実感を一致させるのが最短ルート
▶ 実際に動かしてみるならこちら:
集中容量法・冷却/加熱曲線 シミュレーター
ブラウザで即動作、登録不要。材料を切り替えたり、hを動かしたり、Biの警告を確認しながら、集中容量法の世界を体感してください。
NovaSolverでは700以上の工学シミュレーターを無料公開中 👉 一覧はこちら
「熱設計、最初の一歩は集中容量法から」──この言葉、覚えておいて損はありません。