シミュレーション水素燃焼率

これは、燃焼学校のコースワークの内容です。

水素燃焼プロセスにおいて、関心の3つの成分の濃度があります。

  • (反応を表す)、酸素
  • 水素原子(中間体を表すが、反応の速度を決定します)
  • 水(製品)

各素反応段階の分析によれば、それが描くことができる:反応の全体的な速度を、最も遅いステップで反応
[OHのH + O_2 \ \
+ O \]を決定し、したがって水素原子の濃度が重要です。:水素原子の増殖および終了を考慮した水素原子の濃度変化を特徴づける線形常微分方程式をリストでき
タウ+のW_Hは= \ [\ FRAC {\ mathrmのC_H} {D} {\ mathrm {D} \} FC_H-gc_Hは\]
前記\(W_H \)は、水素原子の形成の初期速度を特徴とする、\(F \)は、増殖効果を示し、および\(G \)は、破壊効果を特徴付けました。

水素原子濃度の分析

以下、本製剤の問題:既知の\(\ omega_H = 0.01 \)、\ (F = 3の\。)

  1. 求めています\(G = 2.9、3、 3.1 \) 、\(C_H \)対時間の曲線を。
  2. \(F = 3の\。) および\(T <30 \)場合、\(2.9 G = \) ; \ (T \ geq30 \) \(G = 0.1(50 C_H)\) 探している\(C_H \)対時間の曲線を。

ここでは、2つの部品一つに、合計\(4 \)曲線は、同図にプロット。

ソリューション

これは、常微分方程式のクラスの問題を解決する最も簡単な数値オイラー法をお勧めします。ここで最も簡単には、この種の接近しようとする最適化合成オイラー法と形成する後退オイラー法:-補正式を予測以下のための一般的な一次線形境界値問題の
\ [開始{ケース} yは\
「(x)は、F(x、y)は\\ Y(X_0)= Y_0 \端を= {ケースは} \]は次のように記載されています反復:
\ [\ケースが開始{P_I} = Y_I + F(X_I、Y_I)\ CDOT \ \\ X Y_デルタ+ 1 {I} = Y_I + F(+ X_ {I} 1、P_I。)\ CDOT X \端{ケース} \デルタ
\] ここで、\(P_I \)はオイラー法に対応することによるものである\(Y_ {I + 1} \) 事前に予測し、次いで隠れ避けるために後退オイラー法に代入ありません以下のための方程式を解きます。

次の手順は、この問題を解決するために従います。

プログラムのソースコードと結果

import numpy as np
import matplotlib.pyplot as plt

必要なライブラリとnumpyのmatplotlibのライブラリの導入よりももっと。

def init():
    '初始化各基本参数'
    global t, dt, c, w
    t = [0]
    dt = 0.05
    c = [0]
    w = .01

上記のinit機能は事前計算パラメータで使用される各変数にシミュレーションを初期化するために使用されます。

f = 3  # 增殖因子
g_list = [2.9,3,3.1]  # 销毁因子

for num in range(4):
    init()
    for i in range(750):
        t = t + [t[i] + dt]
        if num == 3:
            if t[i] < 30: g = 2.9
            else: g = 0.1 * (50 - c[i])
        else: g = g_list[num]
        p = c[i] + (0.01 + (f - g) * c[i]) * dt
        c = c + [c[i] + (0.01 + (f - g) * p) * dt]
    if num == 3: plt.plot(t, c)
    else: plt.plot(t, c, linewidth=1, linestyle='--')


plt.title('$c_H$ versus $t$')
plt.xlabel('$t$')
plt.ylabel('$c_H$')
plt.legend(['$g=2.9$', '$g=3.0$', '$g=3.1$', '$g=0.1(50-c_H)$'])
plt.show()

PNG

その結果、から\(gが= 2.9 \) より高い生産速度は、水素濃度が指数関数的に上昇\(G = 3.0 \)水素の形成の初期速度で生成されたフラット増殖及び破壊、唯一線形;場合(G = 3.1 \)を\率は増殖速度、水素原子の濃度はほとんど変化よりも高い場合に破壊しました。

破壊係数に被写体の変化(2)記載の場合、特に、水素原子の濃度\(G \)は、急速に近い分岐点変異、で発生する(0 \)\レベル。背景入力精査そのような法律を提案し、反応物を急停止、反応温度、および他の多くの可能なディップから来るかもしれません。反応速度の中間生成物としてのトータルパッケージを反映し、水素原子の濃度は、直接反応の終わりを意味急落しました。

法の改正

注意深い検査は、すべての増殖(それがあるが、それは数学的に破壊することができない)プロセスを破壊するために、水素原子から生成された、それを見ることができる:反応物質のない連続的な供給がない場合には、最終バルク水素原子をもたらしますないすべての\(グラム\)値の増加、しかしされるべきである(Fの\)\の値を減少させた-さらに反応物につながる排出されると言わ\(fが\)から\(3 \)がありますすぐに落ちた\(1 \)の周りに-フラットと消費、非分枝鎖反応になります。

シミュレートするためには\(のF \)減少した値を、以下の2つのルールを考慮してください。

  1. \(F \)の値(\ 10 \)秒から(3 \)は\直線的にするために減少し(0 \)\します
  2. \(F \)(\タウ= \ FRAC {\ \ 20} {\ mathrm {E}を}) 指数関数的な減少の時定数をする傾向がある(0 \)\します(定数は、以下の結果を参照して、試行から誘導されます)

以下の両方の手順をシミュレートしました。最初は線形減少です。

g = 1 # 销毁因子固定为 1

# 线性下降规律
init()
for i in range(1000):
    t = t + [t[i] + dt]
    if t[i] <= 10: f = 3 - .3 * t[i]
    else: f = 0
    p = c[i] + (w + (f - g) * c[i]) * dt
    c = c + [c[i] + (w + (f - g) * p) * dt]
plt.plot(t, c)

# 指数下降规律
init()
tau = 20 / np.e
for i in range(1000):
    t = t + [t[i] + dt]
    f = 3 * np.exp(- t[i] / tau)
    p = c[i] + (w + (f-g) * c[i]) * dt
    c = c + [c[i] + (w + (f - g) * p) * dt]
plt.plot(t, c)

plt.title('$c_H$ versus $t$ (with $f$ decreasing)')
plt.xlabel('$t$')
plt.ylabel('$c_H$')
plt.legend(['$f=0.3(10-t)$', '$f=3\exp(-t\cdot\mathrm{e}/20)$'])
plt.show()

PNG

結果は図からわかるように、2つの注意深く採取所与法はほぼ同様の結果が得られた:\を(T = 10 \)時間未満である、水素原子濃度を迅速に上昇したが、すぐに起因近くに落ちる反応物質の枯渇(0 \)\レベル。

生成物濃度の分析

水素原子の濃度の変化 - 中間体は、上記のように分析しました。また、製品 - 水の濃度の変化は、勉強する価値がある、また、非常に重要な指標です。

各プリミティブ反応の分析によれば、水の発生率ができ
[\ FRAC {\ mathrm {\
D}、C_ {H_2O}} {\ mathrm {D}、T} = 2kc_Hc_ {O_2} \] 計算され、ここで反応を定数\(K \)は、等温条件下で変化しないままであり、\(C_ {O_2は} \)の反応物の一方の消費で、我々は、反応中の酸素の過剰な場合と考えている、との反応物は、指数関数的減衰によるものです-水素濃度は、分析前にステープルするためには、迅速に指数関数的に正の数(空乏化水素の残りの部分)に減衰するであろう最後のシーン\(C_ {O_2、\ RES {テキスト}} \ )以下の反応は、この仮定をしたいことがあります。

  • 前のセクションの最後の水素原子の濃度\(F \)によって\(\タウ= 20 / \ mathrm {E} \) の結果は、(反応中間体との相互作用に含まれていない指数関数的減衰を考慮しますこの効果は、同じ減衰法で)十分な値を示します。
  • 同じ減衰時間中の酸素濃度が一定の初期値が設定されている\(10 \) 終了値\(5 \)
  • 定数\(2K = K \)をするように設定されている(0.002 \)\します

次に、上記の仮定アナログに従って - このシミュレーションは、製品濃度、なし具体的な数値基準値の全体的な変化を算出することができます。

# 部分参数直接用上面已有的结果

c_w = [0]
for i in range(1000):
    c_o = 5 + 5 * np.exp(-t[i] / tau)
    c_w = c_w + [c_w[i] + .002 * c[i] * c_o]

plt.title('Concentration of water over time')
plt.xlabel('$t$')
plt.ylabel('$c_{H_2O}$')
plt.plot(t, c_w)
plt.show()

PNG

我々の期待と一致している成長率の変化を、水の濃度は、「 - 安定した発電を - - 高速からターンを遅らせるために発生を停止、低速から高速ターン」提示し、この仮定で見ることができます。修正及び改善を必要とする唯一の具体的な詳細 - 上記以前の水素原子の濃度の変化が妥当であると仮定することができる説明し、反応条件は、特定の状況下で一致している必要があります。

おすすめ

転載: www.cnblogs.com/xjtu-blacksmith/p/hydrogen-combustion.html