2012年5月25日金曜日

Excelによる計算化学工学(Part1)

以前にも触れたが、ASPENやPro/2といった市販のプロセス・シミュレータを用いて、反応器解析や反応速度解析を実施するには、多くの制約がある。たとえば、反応器の混合モデルとしてプラグフローモデルや完全混合槽モデルなどの理想モデルは用意されているが、混合拡散モデルはないとか組み合わせモデルがないことが例として挙げられる。それ以上に反応速度式を組み込むことが基本的に不可能に近い。簡単な1成分のn次反応で、速度定数がArrhenius型であれば定数を組み込むだけで、特別にコードを追加し、シミュレータ本体にリンクさせる必要はない。しかし、コードを組まずに反応器シミュレーションを実施することは、特別の場合を除き基本的に出来ない。


そのため高級言語と言われるFortranを用いたコード開発をしなければならない。たとえば反応器解析で、理想流れモデルであるプラグフロー型反応器や完全混合槽型反応器では、反応速度定数部分を自分でコーディングし、市販のシミュレータとリンクさせればこうした反応器の解析は可能である。

市販のプロセスシミュレータでは、出力先にExcelを指定し、物質収支表や物性値を表形式で出力することが可能であり、シミュレータ以外にも単位操作の計算を始め、多くのエンジニアリング・ワークをExcelで実施することが常態となっている。プラントの設計業務、各種検討業務、FS、コスト積算、コスト評価など、エンジ会社ではMicrosoft社のExcelを用いて、各種の計算をすることが多い。

プロセス設計に現れる化学工学計算に限れば、Excelの表計算だけで、またちょっと複雑な計算ではExcelのVBA(Visual Basic Application)を用いることで間に合う場合が多い。しかしながら、化学メーカー(製造会社)やエンジ会社ではExcelだけで済ませられる業務ばかりでなく、流体解析(CFD)を始めとし、上述のプロセス・シミュレータなどの専用ソフトを用いた設計を実施するケースが数多い。

「Excelで気軽に化学工学」とか化学工学会から図書が発売されていたり、また講座が開催されたりしているが、Excelが万能であるかのような表現は、誤解を招く恐れがある。Excelは確かに便利な道具ではある。連立線形方程式が解けたり、Runge-Kutta法のような微分方程式が解けたり、場合によっては二次元の偏微分方程式が解けることをしきりに宣伝している。ある意味では何でも可能であるように見える。

流体解析(CFD)も連立の非線形方程式を解いているが、Excelで果たして(CPU時間がかかっても)解けるのか、あるいは反応速度解析のように、活性化エネルギーと頻度因子を実験データに合うように最小二乗で最適化するコードをExcelのVBAで組めるのか、Excelのソルバーやゴールシークを使い最適化ができるのか、といった複雑系計算がExcelで可能なのかはなはだ疑問である。

保兵衛の30年近い研究開発に携わった経験では、こうしたExcelだけ(表計算+マクロ)ではどうしても限界があり、流体解析の問題は専用のCFDソフトを使うべきだし、プロセス・フローの最適化にはプロセス・シミュレータを使うべきと考える。反応器モデルや化学反応モデルを取り扱うための汎用の市販ソフトはほとんど皆無であり、研究者自らが開発せざるを得ない。汎用の反応器シミュレータがないのは、取り扱う物質の物性値がいつも違う、反応速度式(反応モデル)が簡単でない、相変化を伴う反応のときには物質移動を考慮した反応器設計が必要になるなど、汎用性のあるソフトウェアを開発することは事実上不可能である。気相反応を取り扱うChemkinなどが唯一のソフトであろう。

反応器解析(特に非理想流れモデルのとき)や反応速度解析では、化学反応モデルの知識はもちろんのこと、物性推算、混合・流れのモデル、数値解析の知識を必要とする。また知識だけでなく、類似プロセスを取り扱った経験が必要である。

以上、Excelを用いた反応器解析、反応速度解析には限界があり、この限界を打破するには高級言語であるFortranによるコーディング・プログラミングが必須であることが理解できるであろう。

反応器解析や反応速度解析以外の化学工学計算・単位操作計算で、Excelの表計算機能を有効利用することが可能であるが、さらにFortran言語による外部計算ライブラリを作成し、Excelから呼び出して利用することが可能である。外部ライブラリとすることで、コードを公開する必要はなく、コードの機密性を保ち、またコンパイル言語を使用することで、インタプリタ方式よりレスポンスの良い速い計算を可能とする。

外部計算ライブラリをFortranで構築する方法は別途述べたい。

0 件のコメント:

コメントを投稿