固体分離
バイオ・リファイナリー(再生可能資源であるバイオマスを原料にバイオ燃料や樹脂などを製造するプラントや技術)のシミュレーションソフト"BioSTEAM"の固体分離モデルの使い方について説明しています。
オリジナルのページはsolids_separationです。
ソースコードは以下の実行環境で確認しています。
moisture_content (float) - 濃縮液側の含水率。デフォルトは0.35%。
- Visual Studio Code バージョン: 1.104.2
- 拡張機能:Jupyter バージョン 2025.8.0
- Python 3.12.10
- biosteam 2.52.13
- graphviz-14.0.2
固体分離
このモジュールは遠心分離機(centrifugation)、圧搾機(expression)、濾過器(filtration)など、固体を分離する機器をまとめています。分配器(Splitter)を継承しています。class SolidsSeparator(ID='', ins=None, outs =(), thermo=None, split, order=None, **kwargs) [source]
固体分離機です。splitで指定された割合で最初の流出ストリームouts[0]に、残りをouts[1]に分離します。- パラメータ
- ID (str、省略可) - 識別子(ID)。
- ins (Sequence(順序付きコレクション)[Stream|str]、省略可) - 固体を含む流入ストリーム
- outs (Sequence(順序付きコレクション)[Stream|str]、省略可) - 流出ストリーム
- [0] 濃縮液(Retentate)
- [1] 透過液(Permeate)
- split (array_like or dict [str, float]) - 成分ごとの流出ストリームouts[0]への分離比。
- order (順番付き
[str])
- 成分ごとの流出ストリームouts[0]への分離比を配列で指定した時の成分の順番。デフォルトは
Stream.chemicals.IDs で指定した順番。 - moisture_content (float) - 固体分の含水率。outs[0] 濃縮液(Retentate)側の水分に反映し、残りの水分はouts[1]に設定されます(separations.mix_and_split_with_moisture_content)。
class SolidsCentrifuge(ID='', ins=None, outs =(), thermo=None, split, order=None, solids=None, moisture_content=0.40, centrifuge_type='scroll_solid_bowl', **kwargs ) [source]
固体をユーザー指定の比率で分離する遠心分離機(centrifugation)です。設備費はSeiderらの文献[1]によります。- パラメータ
- ID (str、省略可) - 識別子(ID)。
- ins (Sequence(順序付きコレクション)[Stream|str]、省略可) - 固体を含む流入ストリーム
- outs (Sequence(順序付きコレクション)[Stream|str]、省略可) - 流出ストリーム
- [0] 濃縮液(Retentate)
- [1] 透過液(Permeate)
- split (array_like or dict [str, float]) - 成分ごとの流出ストリームouts[0]への分離比。
- order (Iterable[ str]、省略可) - splitで指定する成分の順番。 デフォルトはStream.chemicals.IDsで指定した順。
- solids (タプル[ str]、省略可) - 固体とする成分のID。
- moisture_content (float) - 固体分の含水率。outs[0] 濃縮液(Retentate)側の水分に反映し、残りの水分はouts[1]に設定されます(separations.mix_and_split_with_moisture_content)。
- centrifuge_type (str)
- 遠心分離機の形式。
reciprocating pusher(往復式プッシャー)
(固体の流量が1-20 ton/hr)かscroll_solid_bowl(スクロール式ソリッドボウル)
(固体の流量が2-40 ton/hr )。指定がない場合はscroll_solid_bowl(スクロール式ソリッドボウル)
。
class RotaryVacuumFilter(ID='', ins=None, outs =(), thermo=None, split, moisture_content, **kwargs) [source]
ドラム式真空濾過器(RotaryVacuumFilter)です。回転ドラム+真空吸引でスラリーを連続処理し、固体ケーキと濾液を効率的に分離する装置だそうです。- パラメータ
- ID (str、省略可) - 識別子(ID)。
- ins (Sequence(順序付きコレクション)[Stream|str]、省略可) - 流入ストリーム
- [0] 固体を含む流入ストリーム
- [1] 洗浄水
- outs (Sequence(順序付きコレクション)[Stream|str]、省略可) - 流出ストリーム
- [0] 濃縮液(Retentate)
- [1] 透過液(Permeate)
- split (array_like or dict [str, float]) - 成分ごとの流出ストリームouts[0]への分離比。
- moisture_content (float) - 固体分の含水率。outs[0] 濃縮液(Retentate)側の水分に反映し、残りの水分はouts[1]に設定されます(separations.mix_and_split_with_moisture_content)。
class CrushingMill(ID='', ins=None, outs =(), thermo=None, split, moisture_content, **kwargs)
サトウキビのバガスから搾汁を分離する裁断機の想定ですが、動作はSolidsSeparatorと同じです。設置コストが計上されます。- パラメータ
- ID (str、省略可) - 識別子(ID)。
- ins (Sequence(順序付きコレクション)[Stream|str]、省略可) - 流入ストリーム
- [0] 裁断されたサトウキビ
- [1] 洗浄水
- outs (Sequence(順序付きコレクション)[Stream|str]、省略可) - 流出ストリーム
- [0] バガス
- [1] 搾汁
- split (array_like or dict [str, float]) - バガスとしたい成分の比率。
- moisture_content (float) - バガスの含水率(separations.mix_and_split_with_moisture_content)。
- 例
サトウキビ由来のバイオ・エタノール製造設備での使用例を示します。 浸漬水と混合し、原料を裁断する想定で、灰分の92%、繊維分の92%、固形分100%と糖分のうち4%をバガスとして分離。バガスの含水率は50%とします。
U201 = units.CrushingMill('U201', [T201-0, imbibition_water_recycle],
split=dict(Ash=0.92,
Fiber=0.92,
Sugar=0.04,
Solids=1),
moisture_content=0.5)
U201.show('cwt10')
CrushingMill: U201
ins...
[0] s5 from EnzymeTreatment-T201
phase: 'l', T: 323.15 K, P: 101325 Pa
composition (%): Water 70.1
Glucose 1.2
Sucrose 13.6
Cellulose 6.13
Hemicellulose 3.6
Lignin 3.27
Solids 1.5
Ash 0.598
------------- 3.72e+05 kg/hr
[1] s6 from Mixer-M201
phase: 'l', T: 334.46 K, P: 101325 Pa
composition (%): Water 93
Glucose 0.408
Sucrose 4.62
Cellulose 0.874
Hemicellulose 0.513
Lignin 0.466
Ash 0.0853
------------- 1.43e+05 kg/hr
outs...
[0] s7 to ConveyingBelt-U202
phase: 'l', T: 326.7 K, P: 101325 Pa
composition (%): Water 50
Glucose 0.177
Sucrose 2.01
Cellulose 19.4
Hemicellulose 11.4
Lignin 10.3
Solids 4.87
Ash 1.89
------------- 1.14e+05 kg/hr
[1] s8 to VibratingScreen-S201
phase: 'l', T: 326.7 K, P: 101325 Pa
composition (%): Water 84
Glucose 1.21
Sucrose 13.7
Cellulose 0.48
Hemicellulose 0.282
Lignin 0.256
Ash 0.0469
------------- 4e+05 kg/hr
ストリームs5、s7の合計が、指示された割合でs7に、残りがs8に分割されています。計算してみると、ケミカルグループ"Fiber"は、設定時の成分の割合に関係なく、"Fiber"のメンバーのCellulose、Hemicellulose、Ligninがそれぞれ0.92と0.08に分けられるようです。
class PressureFilter(ID='', ins=None, outs =(), thermo=None, split, moisture_content, **kwargs)
構造性炭水化物、リグニン、細胞成分およびその他の固体の分離に用いる加圧式フィルター。設備費はHumbirdらの文献[2]によります。- パラメータ
- ID (str、省略可) - 識別子(ID)。
- ins (Sequence(順序付きコレクション)[Stream|str]、省略可) - 構造性炭水化物、リグニン、細胞成分およびその他の固体
- outs (Sequence(順序付きコレクション)[Stream|str]、省略可) - 流出ストリーム
- [0] 濃縮液(Retentate)
- [1] 透過液(Filtrate)
- split (array_like or dict [str, float]) 指定された割合で濃縮側に分離します。デフォルトでは、以下の2011年の セルロースからのエタノール製造に関するNREL レボート[2]に記載された割合を使用します。
split = dict(
Furfural=0.03571,
Glycerol=0.03714,
LacticAcid=0.03727,
SuccinicAcid=0.03714,
HNO3=0.03716,
Denaturant=0.03714,
DAP=0.03716,
AmmoniumAcetate=0.03727,
AmmoniumSulfate=0.03716,
NaNO3=0.03716,
Oil=0.03714,
HMF=0.03571,
Glucose=0.03647,
Xylose=0.03766,
Sucrose=0.0359,
Mannose=0.0359,
Galactose=0.0359,
Arabinose=0.0359,
Extract=0.03727,
Tar=0.9799,
CaO=0.9799,
Ash=0.9799,
NaOH=0.03716,
Lignin=0.98,
SolubleLignin=0.03727,
GlucoseOligomer=0.03722,
GalactoseOligomer=0.03722,
MannoseOligomer=0.03722,
XyloseOligomer=0.03722,
ArabinoseOligomer=0.03722,
Z_mobilis=0.9799,
T_reesei=0.9799,
Protein=0.98,
Enzyme=0.98,
Glucan=0.9801,
Xylan=0.9811,
Xylitol=0.03714,
Cellobiose=0.0359,
DenaturedEnzyme=0.98,
Arabinan=0.9792,
Mannan=0.9792,
Galactan=0.9792,
WWTsludge=0.9799,
Cellulase=0.03727
)
参考文献
-
[1]Seider, Warren D., et al. (2017). “Cost Accounting and Capital Cost Estimation”. In Product and Process Design Principles: Synthesis, Analysis, and Evaluation (pp. 481-485). New York: Wiley.
-
[2]
