円筒物体周りの流れによる強制空冷について ( その1 )¶
図のような体系を考える.
円筒形状の物体(冷却対象)に直行して流体(水、空気、etc.)が流れて強制対流によって冷却される. この場合の熱伝達率、及び、冷却対象の定常状態の温度を考える. 内容については文献[1]を参考にしている.
基本式¶
以下に計算に用いる基本式を示す.
Reynolds数の計算¶
直径Dの円筒まわりの流れに対するReynold数を計算する.
ここで、もちろん、Uは流速 [m/s], Dは円筒の直径 [m]、 は流体の密度 [kg/m3]、 は粘性率 [Pa s] であり、 は動粘度 [m2/s] である.
計算例(シンプル)¶
物性値は温度依存性をもつ. そのため、一度の冷却対象の温度の算出で、系の定常状態は決定されない. 一方、initial guess として、また、計算手法を記す目的で、反復をしない計算例を以下に挙げる. 例えば、流速 U=10 m/s, 円筒の直径 D=15 mm、を空気で冷やすことを考えれば、Reynolds数は
Nusselt数は、空気のPrandtl数 0.7 、及び、係数 C=0.193, m=0.618 を用いて、
これより、熱伝達率は、
無限遠での空気の温度を 25 ℃として、発熱量を 100 W, 円筒長さが 100 mmとすれば、表面積Aはおよそ A=0.005 であるので、
シンプル計算用のスクリプト¶
スクリプト¶
上記計算を実行するスクリプトは以下である.
import numpy as np
# ========================================================= #
# === formula__forcedCoolingAroundCylinder.py === #
# ========================================================= #
def formula__forcedCoolingAroundCylinder():
# ------------------------------------------------- #
# --- [1] load constants --- #
# ------------------------------------------------- #
import nkUtilities.load__constants as lcn
cnsFile = "dat/parameter.conf"
const = lcn.load__constants( inpFile=cnsFile )
# ------------------------------------------------- #
# --- [2] calculate Reynolds Number --- #
# ------------------------------------------------- #
const["pipe.area"] = const["pipe.diameter"]**2 * np.pi / 4
const["pipe.flow.m3_s"] = const["pipe.flow.L_min"] * 1e-3 / 60.0
const["fluid.velocity"] = const["pipe.flow.m3_s"] / const["pipe.area"]
const["fluid.Re"] = const["fluid.velocity"] * const["target.diameter"] \
/ const["fluid.viscosity"]
# ------------------------------------------------- #
# --- [3] Nusselt Number & heat transfer --- #
# ------------------------------------------------- #
const["fluid.Nu"] = const["coeff.c"] * const["fluid.Re"]**const["coeff.m"] \
* const["fluid.prandtl"] ** ( 1./3. )
const["heat_transfer"] = const["fluid.Nu"] * const["fluid.thermalConductivity"] \
/ const["target.diameter"]
# ------------------------------------------------- #
# --- [4] tempature estimation --- #
# ------------------------------------------------- #
const["target.area"] = 2.0*( np.pi / 4 * const["target.diameter"]**2 ) \
+ np.pi * const["target.diameter"] * const["target.length"]
const["target.dT"] = const["target.heatload"] \
/ ( const["heat_transfer"] * const["target.area"] )
const["target.T"] = const["fluid.temperature_infty"] + const["target.dT"]
# ------------------------------------------------- #
# --- [5] display results --- #
# ------------------------------------------------- #
print( "\n" + "-" * 70 )
print( "{0:>30} :: {1:>30}".format( "key", "value" ) )
print( "-" * 70 )
for key,value in const.items():
print( "{0:>30} :: {1:>30}".format( key, value ) )
print( "-" * 70 + "\n" )
return()
# ========================================================= #
# === Execution of Pragram === #
# ========================================================= #
if ( __name__=="__main__" ):
formula__forcedCoolingAroundCylinder()
parameter.confで計算条件を与える.
Reference¶
[1] 小山敏行, 例題で学ぶ伝熱工学, 森北出版, 2012 [2] R.Helpert Warmeabgabe von geheizen Drahten und Rohren, Forsch. Geb Ingenieurwes vol.4, 1933 [3] J.D. Kundsen, D.L.Katz Fluid Dynamics and Heat Transfer, McGraw-Hill, 1958