次にもう少し化学的な計算をしてみる。ここでは、Canteraのmixing.pyの例題を例にとる。
PythonのCanteraが使える環境で、以下のコマンドで計算できる。
python mixing.py
この例題では、空気とメタンを理論混合比で混合し、化学平衡を計算している。以下で、mixing.pyの中身を説明する。
import cantera as ct
gas = ct.Solution('gri30.xml')
Canteraをインポートし、gri30.xmlをgasオブジェクトに定義する。gri30.xmlは、gri30.ctiと同じ反応メカニズムがXML形式で定義されたファイルだ。
# Stream A (air)
A = ct.Quantity(gas, constant='HP')
A.TPX = 300.0, ct.one_atm, 'O2:0.21, N2:0.78, AR:0.01'
次に、AにエンタルピーH、圧力P一定の状態を定義する。Aは空気で条件は、温度T=300[K]、圧力P=1[atm]、組成X=(O2=0.21, N2=0.78, Ar=0.01)[モル分率]である。ちなみに、#で始まる行はコメント行。
次に、BにメタンCH4を定義する。
# Stream B (methane)
B = ct.Quantity(gas, constant='HP')
B.TPX = 300.0, ct.one_atm, 'CH4:1'
空気AとメタンBを理論混合比で設定する。
# Set the molar flow rates corresponding to stoichiometric reaction,
# CH4 + 2 O2 -> CO2 + 2 H2O
A.moles = 1
nO2 = A.X[A.species_index('O2')]
B.moles = nO2 * 0.5
A.moles で、空気Aを1[kmol]と設定する。次のnO2 = A.X[A.species_index('O2')]は、空気AのO2(酸素)の物質量XをnO2という変数に代入している。B.molesでは、nO2の半分の量をメタンの量として設定している。これで、空気AとメタンBを理論混合比で投入することになる。
# Compute the mixed state
M = A + B
print(M.report())
混合は、空気AとメタンBを実際にプラスしてやればよい。混合気をMとしている。printで混合気Mを出力してやると、
gri30:
temperature 300 K
pressure 101325 Pa
density 1.12691 kg/m^3
mean mol. weight 27.7414 amu
1 kg 1 kmol
----------- ------------
enthalpy -2.5351e+05 -7.033e+06 J
internal energy -3.4342e+05 -9.527e+06 J
entropy 7222 2.003e+05 J/K
Gibbs function -2.4201e+06 -6.714e+07 J
heat capacity c_p 1070.4 2.97e+04 J/K
heat capacity c_v 770.71 2.138e+04 J/K
X Y Chem. Pot. / RT
------------- ------------ ------------
O2 0.190045 0.219211 -26.3342
CH4 0.0950226 0.0549513 -54.6765
N2 0.705882 0.712806 -23.3814
AR 0.00904977 0.0130318 -23.3151
[ +49 minor] 0 0
となる。Xはモル分率、Yは質量分率を表す。
# Show that this state corresponds to stoichiometric combustion
M.equilibrate('TP')
print(M.report())
最後に、温度圧力一定で化学平衡を計算し、結果を出力する。
gri30:
temperature 300 K
pressure 101325 Pa
density 1.12691 kg/m^3
mean mol. weight 27.7414 amu
1 kg 1 kmol
----------- ------------
enthalpy -3.0024e+06 -8.329e+07 J
internal energy -3.0924e+06 -8.579e+07 J
entropy 7204.3 1.999e+05 J/K
Gibbs function -5.1637e+06 -1.432e+08 J
heat capacity c_p 1104.2 3.063e+04 J/K
heat capacity c_v 804.53 2.232e+04 J/K
X Y Chem. Pot. / RT
------------- ------------ ------------
H2O 0.190045 0.123416 -121.321
CO2 0.0950226 0.150747 -185.827
N2 0.705882 0.712806 -23.3814
AR 0.00904977 0.0130318 -23.3151
[ +49 minor] 1.77109e-19 2.0429e-19
完全燃焼して、H2O、CO2、N2、Arが残る。
組成や混合比、温度、圧力などの条件を変えて計算してみるとよい。