Pythonには、『iapws』という蒸気表と物性値を求めることがライブラリがあります。
以前は、飽和条件における記事を出しましたが、今回はそれの改訂版になります。
前記事と同様に主にIF-97を中心に紹介します。
今回、紹介するライブラリは『iapws.iapws97.IAPWS97(**kwargs)』のみです。これだけでほぼ網羅できることがわかりましたので、これだけを重点的に解説します。
iapws.iapws97.IAPWS97(**kwargs)
このライブラリは、蒸気や水の物性値やエンタルピーをIAPW97に沿って、算出してくれます。
また、蒸気(Region②)、水(Region①)、飽和二相流(Region④)、臨界状態(Region③)、いずれの場合において扱うことができます。
ただし、飽和条件以外も扱える関数のため、必ず2変数を与える必要があります。
ちなみに、『**kwargs』 とは、パラメータとして2つ与えてくださいということです。
与えることができるパラメータは、以下の6種類です。
Parameter パラメータ
・T (float) – 温度, Temperature, [K]
・P (float) – 絶対圧力, Pressure, [MPa]
・h (float) – 比エンタルピー, Specific enthalpy, [kJ/kg]
・s (float) – 比エントロピー, Specific entropy, [kJ/kgK]
・x (float) – 乾き度, Vapor quality, [-]
パラメータの組み合わせと組み合わせによる算出制限
どの2つのパラメータを選ぶかによって、蒸気、水、または臨界条件など異なる物性値が返されます。どの2つを選択するのかは、制限があります。また、選択したパラメータによっては、regionが制限されます。
以下の6パターンです。
・T,P(温度、圧力)
温度、圧力の場合、二相流の領域(Region④)は扱えません。
飽和条件の場合、温度(圧力)が決まれば、圧力(温度)が一意に決まるので、温度と圧力が選択されると必然的に他の領域になります。
・T,x(温度、乾き度)、またはP,x(圧力、乾き度)
乾き度を選択した場合、蒸気と熱水が共存することになります。その領域は、二相流の領域(Region④)に限定されます。
ただし、乾き度を0(x=0)にすれば、飽和水の物性値を出すことができます。regionはなぜか①になります。
乾き度を1(x=1)に設定した場合も同様に、飽和蒸気の物性値を出すことができます。こちらもregionはなぜか②になります。
・P, h(圧力、比エンタルピー)、P, s(圧力、比エントロピー)、h, s(比エンタルピー、比エントロピー)
この場合は、どの領域でも対応可能です。
求めることができる物性値
ここでは主に使用する物性値だけを記載してあります。。
詳細、その他物性値については、公式ドキュメントをご確認ください。
項目 | 英語表記 | 記述表記 | 単位 |
圧力 | Pressure | P | [MPa] |
温度 | Temperature | T | [K] |
ギブス自由エネルギー | Specific Gibbs free energy | g | [kJ/kg] |
ヘルムホルツ自由エネルギー | Specific Helmholtz free energy | a | [kJ/kg] |
比体積 | Specific volume | v | [m³/kg] |
密度 | Density | rho | [kg/m³] |
比エンタルピー | Specific enthalpy | h | [kJ/kg] |
比エントロピー | Specific entropy | s | [kJ/kg] |
定圧比熱 | Specific isobaric heat capacity | cp | [kJ/kg·K] |
定積比熱 | Specific isochoric heat capacity | cv | [kJ/kg·K] |
等エントロピー指数 | Isentropic exponent | gamma | [-] |
粘性係数 | Dynamic viscosity | mu | [Pa·s] |
動粘性係数 | Kinematic viscosity | nu | [m²/s] |
熱伝導率 | Thermal conductivity | k | [W/m·K] |
表面張力 | Surface tension | sigma | [N/m] |
流体の領域 | Region | region |
記述方法
記述方法は、二相流領域では水か蒸気を指定する必要がありますが、それ以外では非常にシンプルです。
二相流(Region④)の場合は、蒸気(Vapor)か水(Liquid)か選択する必要があります。
from iapws import iapws97 as if97
# 単相の場合
parameter1 = if97.IAPWS97(P=10,h=800)
print(parameter1.region)
>>> 1 # region1
print(parameter1.T)
>>> 460.49837652065094 # [K]
print(parameter1.rho)
>>> 885.0590565967536 # [kg/m³]
# 二相流(飽和蒸気&飽和水)の場合
parameter2 = if97.IAPWS97(T=120+273.15,x=0.5)
print(parameter2.region)
>>> 4 # region4
print(parameter2.P)
>>> 0.19866539973930203 # [MPa]
print(parameter2.Vapor.rho)
>>> 1.1219517174818008 # [kg/m³]
print(parameter2.Liquid.rho)
>>> 943.105677458354 # [kg/m³]
自動計算サイト
二相流には対応していませんが、圧力と温度から蒸気 or 熱水の物性値を取得できるWebサービスを作成しました。
https://www.isenthalpiccalc.com/steam/steam_property
※RenderというSaasを無料で使用しているため、サーバーがすぐに寝てしまいます。表示に時間がかかります。ご了承ください。
まとめ
変数が少なく、多くの物性値が得られるため、非常に使いやすいライブラリになります。
前記事で紹介した飽和条件では、平均比体積や二相流状態での比エンタルピーを計算してくれるメリットがある一方で、返してくれる物性値が少ないです。
物性値を出したいときは、こちらのライブラリをオススメします。