pythonで飽和蒸気表を作成には、『iapws.iapws97』というモジュールを使用します。
このモジュールは、国際規格であるIAPWS-IF97に基づいた計算になります。
ここでは、以下を紹介します。
- 飽和圧力から飽和温度の導出
- 飽和温度から飽和圧力の導出
- 気液二相流の見かけの物性値(h,v,s)
- 飽和条件のその他物性値(Cp,Cv,w,alfav,kt)
別途、こちらの記事も書きました。飽和条件以外を扱う場合はこちらをオススメします。
準備
まず、iapwsをインストールします。
pip intall iapws
import iapws
飽和圧力から飽和温度の導出
飽和圧力(絶対圧 MPaA)を『iapws.iapws97._TSat_P』に代入します。ただし、圧力は0.00061121 ≤ P ≤ 22.064 が適用範囲です。
圧力がゲージ圧を代入したい場合には、P = P +0.1013で補正して使用します。
import iapws
# 飽和圧力から飽和温度の導出
P = pressure # MPaA 0.00061121 ≤ P ≤ 22.064
T = iapws.iapws97._TSat_P(P) # K
飽和温度から飽和圧力の導出
飽和温度(ケルビン K)を『iapws.iapws97._PSat_T』に代入します。ただし、温度は273.15 ≤ T ≤ 647.096が適用範囲です。
温度が℃の場合は、T= T +273.15で補正して使用します。
import iapws
# 飽和温度から飽和圧力の導出
T = tempareture # K 273.15 ≤ T ≤ 647.096
P = iapws.iapws97._PSat_T(T) #MPaA
気液二相流の見かけの物性値(h,v,s)
蒸気と水の二相流における見かけの比エンタルピーと比エントロピーと比体積を求めます。これらの物性値の水は存在せず、乾き度を用いて計算した平準化数値を導出している。
関数は、『iapws.iapws97._Region4(P, x)』を使用します。圧力と乾き度を与える必要があります。
import iapws
# 気液二相流の見かけの物性値(h,v,s)
P = pressure # MPaA 0.00061121 ≤ P ≤ 22.064 飽和圧力
x = Vapor quality # 乾き度 0.0 ≤ x ≤ 1.0
properties = iapws.iapws97._Region4(P, x)
Specific_volume = properties['v'] # [m³/kg] 比体積
Specific_enthalpy = properties['h'] # [kJ/kg] 比エンタルピー
Specific_entropy = properties['s'] # [kJ/kgK] 比エントロピー
Saturated_temperature = properties['T'] # K 飽和温度
飽和条件のその他物性値(Cp,Cv,w,alfav,kt)
その他飽和条件の物性値として、定圧比熱(Cp)、定積比熱(Cv)、膨張係数(alfav)、等温圧縮率(kt)について求めます。これらは、上記のような見かけの物性値はないので、飽和熱水と飽和蒸気それぞれで導出します。
そのため、飽和曲線上(Region4)で計算を行うモジュールにはこれらの物性値はないので、水と蒸気条件を飽和になるように入れて求めます。
# 飽和条件のその他物性値(Cp,Cv,w,alfav,kt)
P = pressure # MPaA 0.00061121 ≤ P ≤ 22.064 飽和圧力
T = iapws.iapws97._TSat_P(P) # K 飽和温度
#飽和熱水の物性値
properties_water = iapws.iapws97._Region1(T, P)
Specific_volume = properties_water['v'] # [m³/kg] 比体積
Specific_enthalpy = properties_water['h'] # [kJ/kg] 比エンタルピー
Specific_entropy = properties_water['s'] # [kJ/kgK] 比エントロピー
Cp = properties_water['cp'] # [kJ/kgK] 定圧比熱
Cv = properties_water['cv'] # [kJ/kgK] 定積比熱
alfav = properties_water['alfav'] # [1/K],Cubic expansion coefficient
kt = properties_water['kt '] # [1/MPa],Isothermal compressibility
#飽和蒸気の物性値
properties_steam = iapws.iapws97._Region2(T, P)
Specific_volume = properties_steam['v'] # [m³/kg] 比体積
Specific_enthalpy = properties_steam['h'] # [kJ/kg] 比エンタルピー
Specific_entropy = properties_steam['s'] # [kJ/kgK] 比エントロピー
Cp = properties_steam['cp'] # [kJ/kgK] 定圧比熱
Cv = properties_steam['cv'] # [kJ/kgK] 定積比熱
alfav = properties_steam['alfav'] # [1/K],Cubic expansion coefficient
kt = properties_steam['kt '] # [1/MPa],Isothermal compressibility
作成したwebアプリケーション
以下、Flaskで作成したアプリケーションです。
http://isenthalpiccalc.com/steam/table_temp
http://isenthalpiccalc.com/steam/table_pre
まとめ
詳しいドキュメントは、以下に掲載されていますので、ご覧ください