投稿

蒸留塔のモデル化と設計

イメージ
バイオ・リファイナリー(再生可能資源であるバイオマスを原料にバイオ燃料や樹脂などを製造するプラントや技術)のシミュレーションソフト" BioSTEAM "で、蒸留塔のモデル化と設計について説明しています。 オリジナルのページは Distillation modeling & design です。 ソースコードは以下の実行環境で確認しています。 Visual Studio Code バージョン: 1.104.2 拡張機能:Jupyter バージョン 2025.8.0 Python 3.12.10 biosteam 2.52.13 graphviz-14.0.2 蒸留塔のモデル化と設計 蒸留塔は化学工業で最も幅広く用いられている装置で、石油化学、医薬品、バイオマス利用工業で応用されています。混合物を分離したい場合に、多くの成分で蒸留は有効な選択肢となります。このため、新しい分離技術(例えば膜分離や、吸着)は、しばしば蒸留を基盤としたプロセスと比較されます。ここでは、炭化水素の分離や小さな有機分子の精製のために、蒸留塔を設計しシミュレーションしてみます。 簡易蒸留モデル 一般的に、蒸留は複雑でモデル化が難しい装置です。段数を M、成分数を N とすると、物質収支・エネルギー収支・相平衡に対して、\( M\cdot (3N+1) \) 個の非線形かつ強く連成した方程式を解くことになります。蒸留塔の最適化はさらに挑戦的な課題となります。そこで、最初は蒸留塔の設計やモデル化に、単純化した仮定を用いる“簡易的”手法を利用します。良く使われる簡易的な手法として、2成分系の蒸留に用いられる「マッケーブ・ シール 」法と「フェンスキー・アンダーウッド・ギランド」法という2つの方法があります。これらの手法は場合によっては驚くほど高い精度を示すことがあり、高精度が求められない迅速な解析にもしばしば利用されます。 マッケーブ・シール法による2成分系の蒸留 マッケーブ・ティーレ法では、1モルの液体が蒸発すると1モルの蒸気が凝縮する、すなわち、モル流量が一定である、と仮定しています。この仮定のもとでは、蒸留塔の各段は、沸点/露点計算と単純な物質収支を用いて順番に解くことができます。この仮定は、蒸...

Chemical

バイオ・リファイナリー(再生可能資源であるバイオマスを原料にバイオ燃料や樹脂などを製造するプラントや技術)のシミュレーションソフト" BioSTEAM "の固体、液体、気体を含むプロセス流体を表す Chemical の使い方を説明しています。 オリジナルのページは Chemical です。本家ページは巨大なので、調査した部分のみ、記載しています。徐々に充実させていく予定です。 ソースコードは以下の実行環境で確認しています。 Visual Studio Code バージョン: 1.104.2 拡張機能:Jupyter バージョン 2025.8.0 Python 3.12.10 biosteam 2.52.13 graphviz-14.0.2 Chemical class Chemical ( ID, cache =None , search_ID =None , eos =None , phase_ref =None , CAS =None , default =False , phase =None , V =None , Cn =None , mu =None , Cp =None , rho =None , sigma =None , kappa =None , epsilon =None , Psat =None , Hvap =None , method =None , db ='default' , search_db =True , **data ) [source] Chemical オブジェクトを生成します。 Chemical オブジェクトは一定の物性値に加えて、温度および圧力の関数としての熱力学的性質および輸送物性を含みます。 Tb : プロパティ 標準状態(=101.325kPa)での沸点 [K]。 Tsat ( P, Tguess =None , Tmin =None , Tm...

Unit クラスの継承(2)

イメージ
バイオ・リファイナリー(再生可能資源であるバイオマスを原料にバイオ燃料や樹脂などを製造するプラントや技術)のシミュレーションソフト" BioSTEAM "で、プロセス・パラメータを動的に変更する方法について説明しています。 オリジナルのページは Inheriting from Unit です。 ソースコードは以下の実行環境で確認しています。 Visual Studio Code バージョン: 1.104.2 拡張機能:Jupyter バージョン 2025.8.0 Python 3.12.10 biosteam 2.52.13 graphviz-14.0.2 << 目次 >> Unit クラスの継承 共通の設定 サブクラスの例 シミュレーション テスト Graphvizで作図 装置のコスト計算 付随設備 参考文献 << 本文 >> Unit クラスの継承 装置のコスト計算 各機器の購入価格は、FOB(本船渡し価格)を、基準となるサイズからの指数関数的計算方法を デコレータ構文 [1] を使って計算します。各機器の基準となる代表寸法S(例えば物理的な大きさ、流量、消費電力など)の時のコストを基準に、推定したい装置のサイズをS new とすると、Sからの比率をn乗し、さらに化学工学プラント費用指数(Chemical Engineering Plant Cost Index、CEPCI)を使った年次のコスト上昇を加味して推定します。推定したい装置の購入コスト New cost は計算式で表すと以下のようになります。 \begin{align*} \textit{New cost} & = N \cdot \textit{cost} \left( \frac{CE_{new}}{CE} \right) \left( \frac{S_{new}}{N \cdot S} \right) ^n \\ \end{align*} ここで、 \( N \) : 装置の個数で、 \begin{align*} N & = ceil \left( \frac{S_{new}}{...

Unit クラスの継承(1)

イメージ
バイオ・リファイナリー(再生可能資源であるバイオマスを原料にバイオ燃料や樹脂などを製造するプラントや技術)のシミュレーションソフト" BioSTEAM "で、プロセス・パラメータを動的に変更する方法について説明しています。 オリジナルのページは Inheriting from Unit です。 ソースコードは以下の実行環境で確認しています。 Visual Studio Code バージョン: 1.104.2 拡張機能:Jupyter バージョン 2025.8.0 Python 3.12.10 biosteam 2.52.13 graphviz-14.0.2 << 目次 >> Unit クラスの継承 共通の設定 サブクラスの例 シミュレーション テスト Graphvizで作図 装置のコスト計算 付随設備 参考文献 << 本文 >> Unit クラスの継承 共通の設定 Unit クラスを継承する各機器のモデル(サブクラス)は、以下のクラス変数を持ち、特に指定のない時のデフォルトの値が決められています。 _F_BM_default : [str, float]の組み合わせの辞書型配列で、設置に関するコストを見積るための係数のデフォルト値。 _units :[str, float]の組み合わせの辞書型配列で、計算結果である辞書型配列 design_results の値の単位。 _N_ins =1:[int]流入ストリームの数。デフォルトは1。 _N_outs =1:[int]流出ストリームの数。デフォルトは1。 _ins_size_is_fixed =True:[bool]流入ストリームの数が固定値かどうか。デフォルトはTrue。 _out_size_is_fixed =True:[bool]流出ストリームの数が固定値かどうか。デフォルトはTrue。 auxiliary_unit_names =():tuple[str]補助装置の名前。 _graphics =():[biosteam Graphics]機器を表す図のグラフィック オブジェクト。デフォルトは四角。 _default...

プロセス・パラメータの動的変更

イメージ
バイオ・リファイナリー(再生可能資源であるバイオマスを原料にバイオ燃料や樹脂などを製造するプラントや技術)のシミュレーションソフト" BioSTEAM "で、プロセス・パラメータを動的に変更する方法について説明しています。 オリジナルのページは Process specifications です。 ソースコードは以下の実行環境で確認しています。 Visual Studio Code バージョン: 1.104.2 拡張機能:Jupyter バージョン 2025.8.0 Python 3.12.10 biosteam 2.52.13 graphviz-14.0.2 プロセス・パラメータの動的変更 仕様を満たすためにプロセスのパラメータを動的に調整することは、生産プロセスを設計する上で極めて重要であり、特に不確実な条件がある場合ではなおさら重要です。 BioSTEAM はプロセス仕様を、分析的仕様と数値解析的仕様の 2 つのカテゴリーに分類しています。 分析的仕様とはシステムの単一ループ内で解くことが出来るもの、 一方、数値解析的仕様は、機器ユニットを繰り返し実行したり、リサイクル系を収束させて解く必要があるものとしています。 以下の実例によって、この点が詳しく説明されます。 分析的に求める仕様 バイオ・エタノール製造プラントでの変性剤投入工程 バイオエタノールの流量に応じて添加する変性剤の量を、出来上がり時に変性剤の比率が質量比で2%になるように調整します。 仕様を満たすための関数( specification function ) from biosteam import settings, Chemical, Stream, units, main_flowsheet import biosteam as bst; bst.nbtutorial() # フローシートに名前を付けます main_flowsheet.set_flowsheet('mix_ethanol_with_denaturant') # 使用する成分の熱力学特性を設定します # 実際のプロセスではもっと多くの物質を扱うと思いますが、 # ここでは例として少ない種類で試行します。 set...