蒸留塔
バイオ・リファイナリー(再生可能資源であるバイオマスを原料にバイオ燃料や樹脂などを製造するプラントや技術)のシミュレーションソフト"BioSTEAM"の蒸留塔モデルの解説をしています。蒸留塔モデルはいくつか種類がありますが、ここでは基となる抽象クラスの説明をしています。
オリジナルのページはdistillationです。また、ソースコードは以下の実行環境で確認しています。
- Visual Studio Code バージョン: 1.104.2
- 拡張機能:Jupyter バージョン 2025.8.0
- Python 3.12.10
- biosteam 2.52.13
- graphviz-14.0.2
蒸留塔
class distillation(ID='', ins=None, outs=(), thermo=None, **kwargs)[source]
蒸留塔のモデル distillation column クラスの抽象クラス。マーフリー効率は、修正されたオコンネル相関式に基づいています[2]。塔の直径はトレイ間隔およびフラッディング速度に基づいて決定されます[1][3]。購入価格は、Warren らによってまとめられた相関式[4]に基づいています。- パラメータ
- ID (str、省略可) 他で使われていない、一意の識別子(ID)。IDが
- ins (Sequence(順序付きコレクション)[Stream | str]、省略可) フィード層で混合される流入ストリーム。
- outs (Sequence(順序付きコレクション)[Stream | str]、省略可)
- [0] 塔頂留出物
- [1] ボトム生成物
- LHK (tuple[str]) 軽質成分と重質成分としたい成分。
- y_top (float) 塔頂留出物の軽質成分のモル分率。
- x_bot (float) 塔底の軽質成分のモル分率。
- Lr (float) 塔頂留出成分のリカバリ
- Hr (float) ボトム流出成分のリカバリ
- k (float) 最小還流比に対する還流比の比率。還流比/最小還流比
- Rmin (float、省略可) ユーザー指定最小還流比。実際の最少還流比がRminより大きい場合は無視される。デフォルトは0.3。
- product_specification_format=None ("Composition" or "Recovery") "Composition"の場合はy_top、x_botの指定が必須。"Recovery"の場合はLr、Hrの指定が必須。
- P (float) 運転圧力。デフォルトは101325 Pa。
- vessel_material (str、省略可) 容器の構造材。デフォルトは
- tray_material (str、省略可) トレイの構造材。デフォルトは
- tray_type (str) トレイのタイプ。
- tray_spacing (float) トレイ間隔。一般的には152から915 mm。デフォルトは450 mm。
- stage_efficiency (float) ユーザー指定ステージ効率。指定がない場合はオコンネル相関式[2]より計算されます。
- velocity_fraction (float) フラッディング限界速度に対する実速度比。デフォルトは0.8。
- foaming_factor (float) 0と1の間であることが必要。デフォルトは1。
- open_tray_area (float) トレイの面積に対する有効な面積の比。デフォルトは0.1。
- downcomer_area_fraction ( float) ユーザーが指定するトレイ全体面積に対するダウンカマー面積の比率。指定がない場合はオリバー式[1]を基に推定します。
- is_divided (bool) 分離塔と精留塔が分離型構成の時、True。デフォルトはFalse
- partial_condenser (bool) 塔頂の凝縮器が部分凝縮器の場合はTrue。デフォルトはTrue
- 設計諸元の見積り
- 分離型構成の時
- Rectifier stages 精留(Rectifier)塔段数。_compute_N_stages()
- Stripper stages 分離(Stripper)塔段数_compute_N_stages()
- Rectifier height 精留塔の高さ。compute_tower_height(トレイ間隔, 段数)
- Stripper height 分離塔の高さ。compute_empty_tower_cost(塔の重量)
- Rectifier diameter 精留塔の直径。compute_tower_diameter(リボイラ流量, 最大べーパー流量, 蒸気分率, ダウンカマー面積)
- Stripper diameter 分離塔の直径。compute_tower_diameter(リボイラ流量, 最大べーパー流量, 蒸気分率, ダウンカマー面積)
- Rectifier wall thickness 精留塔壁の板厚。compute_tower_wall_thickness(圧力, 精留塔直径, 精留塔高さ)
- Stripper wall thickness 分離塔壁の板厚。compute_tower_wall_thickness(圧力, 分離塔の直径, 分離塔高さ)
- Rectifier wall weight 精留塔の重量。compute_tower_weight(精留塔の直径, 精留塔高さ, 精留塔壁板厚, 材料密度)
- Stripper wall weight 分離塔壁の重量。compute_tower_weight(分離塔の直径, 分離塔高さ, 分離塔壁板厚, 材料密度)
- 一体型構成の時
- Actual stages 段数_compute_N_stages()
- Height 塔の高さ。compute_tower_height(トレイ間隔、段数)
- Diameter 塔の直径。compute_tower_diameter(リボイラ流量, 最大べーパー流量, 蒸気分率, ダウンカマー面積)
- Wall thickness 塔の板厚。compute_tower_wall_thickness(圧力, 塔の直径, 塔の高さ)
- Weight 塔の重量。compute_tower_weight(塔直径, 塔高さ, 塔壁板厚, 材料密度)
- コスト計算
- 塔本体 塔の段数、直径、重量から、
- 分離型構成の時
- Rectifier tray 精留(Rectifier)塔のトレイ代。精留塔段数と塔の直径より計算。compute_purchase_cost_of_trays(段数,直径)
- Stripper trays 分離(Stripper)塔のトレイ代。分離塔段数と塔の 直径より計算。compute_purchase_cost_of_trays(段数,直径)
- Rectifier tower 精留塔の塔そのもの。精留塔の重量より計算。 compute_empty_tower_cost(塔の重量)
- Rectifier platform and ladders 基礎とはしご代。精留塔の高さ、塔の直径より計算。 compute_plaform_ladder_cost(塔の高さ、塔の直径)
- Stripper tower 分離(ストリッパ)塔の塔そのもの。分離(ストリッパ)塔の重量より計算。 compute_empty_tower_cost(塔の重量)
- Stripper platform and ladders 分離塔の基礎とはしご代。分離(ストリッパ)塔の高さ、塔の直径より計算。 compute_plaform_ladder_cost(塔の高さ、塔の直径)
- 一体型構成の時
- Tray 段数と塔の直径より計算。compute_purchase_cost_of_trays(段数,直径)
- Tower 塔の重量より計算。compute_empty_tower_cost(塔の重量)
- Platform and ladders 塔の高さ、塔の直径より計算。compute_plaform_ladder_cost(塔の高さ、塔の直径)
- トレイ 棚段数、直径から計算されます。 compute_purchase_cost_of_trays(段数,直径)によると、
- \( N_T \): トレイの枚数
- \( F_{CE} \): CE/500(CEPCIによる補正)
- \( C_{BT} \): トレイ1枚のベース購入価格 = \(412.6985 e^{0.1482 D_i} \) ※ CE が 500の時のトレイ1枚のベース購入価格
- \( F_{NT} \): トレイのコスト補正係数 \( \begin{cases} 2.25/1.0414^{N_T} & N_T < 20 \\ 1 & \text{その他} \end{cases} \)
- 塔 塔の重量より計算。compute_empty_tower_cost(塔の重量)を見ると、 \[ \text{塔のベースライン購入価[USD]} = \text{CE} / 500. e^{7.2756 + 0.18255*logW + 0.02297*(logW)^2} \] となっているのが確認できます。ここでもCEPCIによる補正あり、で、 重量による指数関数になっています。
- 基礎とはしご代 塔の高さ、塔の直径より計算。compute_plaform_ladder_cost(塔の高さ、塔の直径)によると、 \[ \text{基礎とはしごのベースライン購入価格[USD]} = \text{CE} / 500. * 300.9 Di^{0.63316} L^{0.80161} \] となっているのが確認できます。ここでもCEPCIによる補正あり、で、塔の直径、 高さ(長さ)による指数関数なっています。
- 凝縮器(コンデンサー) 凝縮器(コンデンサー)は
- Condenser 熱交換器の有効面積より推定。heat_exchange
- 留出タンク(リフラックスドラム) 留出タンク(リフラックスドラム)は
- pressure vessel 耐圧容器代。容器の重量より計算。_vessel_purchase_cost(重量、直径、長さ)
- Platform and ladders 基礎はしご代。容器の直径、容器の長さより計算。_vessel_purchase_cost(重量、直径、長さ)
- ポンプ ポンプは
- Pump ポンプ本体(ケーシング部?)。ポンプの流量、水圧ヘッドより計算。 _vessel_purchase_cost(重量、直径、長さ)
- Motor モーター代。要求パワーからモーター効率を考慮して計算。 electric_motor_cost(モーター効率を考慮した要求パワー)
- リボイラー リボイラーは
- Reboiler 熱交換器の有効面積より推定。heat_exchange
Noneの場合、ストリームはフローシートに登録されません。IDが指定されていない場合は、自動的に一意のIDが付与されます。
炭素鋼。
炭素鋼。
シーブトレイ(Sieve)か
バルブトレイ(Valve)か
バブルキャップトレイ(Bubble cap)。デフォルトは
シーブトレイ(Sieve)。
供給原料の流量、密度等から、蒸留塔の段数、直径、高さ、板厚を見積り、さらに重量を計算します。設計をまとめたcolumn_designの各メソッドを使って計算しています。
塔本体はこのクラスから、設計をまとめた/units/design_tools/column_design.pyの各メソッドを使って計算しています。凝縮器(コンデンサー)、留出タンク(リフラックスドラム)、ポンプ、リボイラーはそれぞれ基になる機器(クラス)を通じて計算し、塔本体の要素と合わせて辞書型配列 baseline_purchase_costsに格納されます。ここでのコストは、化学工学プラント費用指数(CEPCI)によるコスト上昇分は加味されています。
トレイ、
塔、
基礎とはしごのコストを 推定します。
\[
\text{トレイのベースライン購入価格[USD]} = N_T * F_{CE} * F_{NT} * C_{BT}
\]
HXutilityクラスとして計算されます。
RefluxDrumクラスとして計算されます。
RefluxDrumクラスは
PressureVesselクラスを継承していて、 耐圧容器代と基礎はしご代に分けて試算されています。
Pumpクラスとして計算されます。
Pumpクラスは、ポンプ本体(ケーシング部?)代とモーター代に分けて 試算されています。
HXutilityクラスとして計算されます。
_units : dict [str, str] = {}
計算結果である辞書型配列 design_results の値の単位。
- Minimum reflux : Ratio
- Reflux : Ratio
- Rectifier height : ft
- Rectifier diameter : ft
- Rectifier wall thickness : in
- Rectifier weight : lb
- Stripper height : ft
- Stripper diameter : ft
- Stripper wall thickness : in
- Stripper weight : lb
- Height : ft
- Diameter : ft
- Wall thickness : in
- Weight : lb
_F_BM_default : dict [str,float]
設置に関するコストを見積るための係数のデフォルト値。設備単体の価格から、実際に稼働状態にするための据付・配管・電気・計装なのどの補助設備費を推定する。
- Rectifier tower : 4.3
- Stripper tower : 4.3
- Rectifier trays : 4.3
- Stripper trays : 4.3
- Platform and ladders : 1.0
- Rectifier platform and ladders : 1.0
- Stripper platform and ladders : 1.0
- Tower : 4.3
- Trays : 4.3
- Vacuum system : 1.0
class BinaryDistillation(ID='', ins=None, outs=(), thermo=None, **kwargs)[source]
軽質および重質成分がそれぞれ塔頂およびボトム製品に完全に分離されると仮定した2成分(バイナリ)蒸留塔を構築します。詳細はこちら BinaryDistillation。class ShortcutColumn(ID='', ins=None, outs=(), thermo=None, **kwargs)[source]
フェンスキー・アンダーウッド・ギリランド法を用いて、蒸留塔の理論設計および非主要成分の分離を行う多成分蒸留塔を構築します[1]。詳細はこちら ShortcutColumn。class MESHDistillation(ID='', ins=None, outs=(), thermo=None, **kwargs)[source]
MESH(物質収支、平衡、総和、エンタルピー)式を厳密に収束させる蒸留塔を構築します。詳細はこちら MESHDistillation。class AdiabaticMultiStageVLEColumn(ID='', ins=None, outs=(), thermo=None, **kwargs)[source]
リボイラー、凝縮器(コンデンサー)なしの吸収塔もしくは分離塔を生成します。 詳細はこちら AdiabaticMultiStageVLEColumn。参考文献
-
[1]J.D. Seader, E.J. Henley, D.K. Roper. (2011) Separation Process Principles 3rd Edition. John Wiley & Sons, Inc.
-
[2]M. Duss, R. Taylor. (2018) Predict Distillation Tray Efficiency. AICHE
-
[3]Green, D. W. Distillation. In Perry’s Chemical Engineers’ Handbook, 9 ed.; McGraw-Hill Education, 2018.
-
[4]Seider, W. D., Lewin, D. R., Seader, J. D., Widagdo, S., Gani, R., & Ng, M. K. (2017). Product and Process Design Principles. Wiley. Cost Accounting and Capital Cost Estimation (Chapter 16)