バッチ反応のモデリングと数値計算
はじめに
バッチ反応(液相、一次反応)の非常に簡単な例でモデリング、数値計算を行う。
モデリング
下図に示すとおり成分Aから成分Bを生じる液相バッチ反応について、時刻tにおける成分Aの量を求めることを考える。
物質収支
(成分A物質量の変化速度) = (成分Aの反応速度)であり、時刻をt [s]として次式で表される。
両辺を定数である体積Vで割り、(濃度)とすると
反応速度
成分Aの反応速度は成分Aの濃度の1次に比例とすると、反応速度定数を[1/s]として次式で表される。
(Aは消失するのでマイナスが付く)解析解
物質収支と反応速度から次の形となる。
ここで初期条件を at として方程式を解くととの関係が求まる。
数値解
オイラー法を用いると時刻におけるとその微小時間後のは次式で関連付けられる。
微分部分を代入すると、
具体的な微小時間値を決めたら初期条件から順次数値を計算していけばよい。
解析解と数値解の比較
Pythonを用いて計算した。ソースコードは下記リンク先にある。
cemodeling/batch_reaction.py at master · nakamura-13/cemodeling · GitHub
初期濃度[mol/m3]、反応速度定数[1/s]、微小時間を30秒として計算した結果を下グラフに示す。横軸は時刻、縦軸は濃度である。600秒くらいで成分Aは反応してほぼ無くなる。青い線が数値解である。
微小時間を1秒にすると、解析解と数値解はほぼ一致する。