ポンプ
- Visual Studio Code バージョン: 1.104.2
- 拡張機能:Jupyter バージョン 2025.8.0
- Python 3.12.10
- biosteam 2.52.13
- graphviz-14.0.2
ポンプ
class Pump(ID='', ins=None, outs=(), P=None, pump_type='Default', material='Cast iron', dP_design=101325, ignore_NPSH=True, thermo=None, **kwargs ) [source]
流出ストリームを指定圧力まで上昇させるポンプのモデルです。- パラメータ
- ID (str、省略可) - 識別子(ID)。
- ins (Sequence(順序付きコレクション)[Stream|str]、省略可) - 混合される流入ストリーム
- outs (Sequence(順序付きコレクション)[Stream|str]、省略可) - 流出ストリーム
- P ( float、省略可) - 流出ストリームの圧力[Pa]。指定圧力が流入圧力と同じ場合は、dP_desihnの差圧を発生させます。
- pump_type ( str、省略可) - ポンプの種類。'Default'指示の場合は、経験則に基づいて選択されます。
- material ( str、省略可) - 材質。デフォルトは'Cast iron'(鋳鉄)です。
- dP_design ( float、省略可) - ポンプの発生する差圧。デフォルトは101325 Paです。
- ignore_NPSH ( bool、省略可) - ポンプ形式を選定する際に、NPSH(必要吸入ヘッド)を考慮するかどうか。 NPSH (Net Positive Suction Head)とは、ポンプの吸込側でキャビテーション(気泡の発生)を防ぐために必要な圧力(ヘッド)のこと、だそうです。 デフォルトは考慮あり、です。
- 注意
- 例
- 'Default' : 経験則に基づく自動選択
- 'CentrifugalSingle' : 単段遠心ポンプ
- 'CentrifugalDouble' : 二段遠心ポンプ
- 'Gear' : ギヤ式ポンプ
- 'MeteringPlunger' : プランジャー型定量ポンプ
- 'Default' :デフォルトは'Cast iron'(鋳鉄)
- ポンプ
- 遠心ポンプ
- \( F_D \) : 購入費用に対する設計の係数(Design factor)
- ベースライン購入価 サイズファクター \(S = \text{流量} \cdot \text{ヘッド圧} ^ {0.5} \)となっています。さらに、下限補正をして、\(S_{new} = S \) ただし、\(S \) が 400以下の時は \(S_{new} = 400 \)とします。このサイズファクターの自然対数 \(ln(S_{new}) \)を基に \begin{align*} \textit{ポンプ}&\textit{のベースライン購入価[USD]} \\ & = CE/567 * S/S_{new} * exp(12.1656-1.1448*ln(S_{new})+0.0862*ln(S_{new})^2) \end{align*}
- ギヤ式ポンプ
- \( F_D \) : 1
- ベースライン購入価 サイズファクターは\( q\text{(流量)} \)で、下限補正を50とした\(q_{new} = q\text{(流量) if q > 50 else 50} \)、\(q_{new} \)の自然対数 \(ln(q_{new}) \)を基に \begin{align*} \textit{ポンプ}&\textit{のベースライン購入価[USD]} \\ & = CE/567 * q/q_{new} * exp(8.2816-0.2918*ln(q_{new})+0.0743*ln(q_{new})^2) \end{align*}
- プランジャー型
- \( F_D \) : 1
- ベースライン購入価 サイズファクターは\( p\text{(出力)} \)で、\(p \)の自然対数 \(ln(p) \)を基に \begin{align*} \textit{ポンプ}&\textit{のベースライン購入価[USD]} \\ & = CE/567 * exp(7.9361-0.26986*ln(q_{new})+0.06718*ln(q_{new})^2) \end{align*} となっています。
- 電動モーター
- 例
from biosteam import Stream, settings
from biosteam.units import Pump
settings.set_thermo(['Water', 'Ethanol'], cache=True)
feed = Stream('feed', Water=200, T=350)
P1 = Pump('P1', ins=feed, outs='out', P=2e5)
P1.simulate()
P1.show()
Pump: P1
ins...
[0] feed
phase: 'l', T: 350 K, P: 101325 Pa
flow (kmol/hr): Water 200
outs...
[0] out
phase: 'l', T: 350 K, P: 200000 Pa
flow (kmol/hr): Water 200
流出ストリームの圧力が指定通り200000 Pa になっています。必要な負荷等はresults()を確認します。
P1.results()
| Pump | Units | P1 | |
|---|---|---|---|
| Electricity | Power | kW | 0.288 |
| Cost | USD/hr | 0.0225 | |
| Design | Type | Centrifugal | |
| Ideal power | hp | 0.136 | |
| Flow rate | gpm | 16.3 | |
| Efficiency | 0.352 | ||
| Power | hp | 0.386 | |
| Head | ft | 96.3 | |
| Motor size | hp | 0.5 | |
| Purchase cost | Pump | USD | 4.37e+03 |
| Motor | USD | 273 | |
| Total purchase cost | USD | 4.64e+03 | |
| Utility cost | USD/hr | 0.0225 | |
pump_type プロパティ
material プロパティ
_cost()
ポンプの値段は、ポンプ本体のpump
と電動モーター
の2つに分けて計算されます。
まず、ポンプの方ですが、ポンプの値段に影響する因子として、種類(タイプ)、流量、ヘッド圧(揚程)出力があります。まず、流量とヘッドは流量が50(gpm、ガロン毎分?)以下の時は計算上は50、ヘッド圧が50(ft)以下の時は計算上は50とします。
また、ポンプの種類よって計算式が違います。 ポンプの種類は大きく分けて、'Centrifugal(遠心ポンプ)'と'Gear(ギヤ式ポンプ)'、'MeteringPlunger(プランジャー型定量ポンプ)'で分かれています。
遠心ポンプの\( F_D \): 購入費用に対する設計の係数(Design factor)は流量とヘッド圧(揚程)、出力によって違います。
| 条件 | 式 | |
|---|---|---|
| 出力 | 75 [hp]以下 | 'VSC3600' |
| 流量 | 50 ~ 900 [gpm] | |
| ヘッド圧(揚程) | 50 ~ 400 [ft] | |
| 出力 | 200 [hp]以下 | 'VSC1800' |
| 流量 | 50 ~ 3500 [gpm] | |
| ヘッド圧(揚程) | 50 ~ 2000 [ft] | |
| 出力 | 150 [hp]以下 | 'VSC3600' |
| 流量 | 100 ~ 1500 [gpm] | |
| ヘッド圧(揚程) | 100 ~ 450 [ft] | |
| 出力 | 250 [hp]以下 | 'VSC1800' |
| 流量 | 250 ~ 5000 [gpm] | |
| ヘッド圧(揚程) | 50 ~ 500 [ft] | |
| 出力 | 250 [hp]以下 | '2HSC3600' |
| 流量 | 50 ~ 1100 [gpm] | |
| ヘッド圧(揚程) | 300 ~ 1100 [ft] | |
| 出力 | 1450 [hp]以下 | '2+HSC3600' |
| 流量 | 100 ~ 1500 [gpm] | |
| ヘッド圧(揚程) | 650 ~ 3200 [ft] | |
| 出力 | 1450 [hp]以下 | '2+HSC3600' |
| 流量 | 1500 ~ 5000 [gpm] | |
| ヘッド圧(揚程) | 650 ~ 3200 [ft] | |
biosteam.units.design_tools.specification_factorsにありました。この値が\( F_D \)になります。
| 型番 | pump_centrifugal_factors |
|---|---|
| 'VSC3600 | 1 |
| 'VSC1800' | 1.5 |
| 'HSC3600' | 1.7 |
| 'HSC1800' | 2 |
| '2HSC3600' | 2.7 |
| '2+HSC3600' | 8.9 |
としています。
となっています。
biosteam.units.design_tools.mechanicalにありました。計算式として書くと、 \begin{align*} \textit{モータ}&\textit{のベースライン購入価[USD]} \\ & = exp(5.9332 + 0.16829 * log(p) - 0.110056*log(p)^2 + 0.071413*log(p)^3- 0.0063788*log(p)^4) * CE / 567 \end{align*} となっています。
2成分(バイナリ)蒸留塔には塔本体の他に凝縮器(コンデンサー)、留出タンク(リフラックスドラム)、ポンプ、リボイラーのモデルが含まれています。そこでポンプのコスト計算についても検証しましたので、その部分を抜き出します。ポンプのベースライン購入価格を確認しておくと、
D1.pump.baseline_purchase_costs
{'Pump': 4371.7419498990475, 'Motor': 367.57377129373225}
でした。まず、種類を調べます。
D1.pump.design_results['Type']
'Centrifugal'
遠心ポンプのようです。
次に、流量が50(gpm、ガロン毎分?)以下の時は計算上は50、ヘッド圧が50(ft)以下の時は計算上は50となるので流量、ヘッド圧を調べます。
D1.pump.design_results['Flow rate']
35.480211800804824
D1.pump.design_results['Head']
95.44450175635913以下の計算では、流量の方は50となります。 サイズファクター \(S = \text{流量} \cdot \text{ヘッド圧} ^ {0.5} \) となっているので計算すると、
50 * D1.pump.design_results['Head'] **0.5
488.4785096510366
400 より大きいので、 \(S_{new} = S = 488.4785096510366 \) で、
\begin{align*} \textit{ポンプ}&\textit{のベースライン購入価[USD]} \\ & = CE/567 * S/S_{new} * exp(12.1656-1.1448*ln(S_{new})+0.0862*ln(S_{new})^2) \end{align*}となるので、
\( S/S_{new} = 1 \)になることも考慮して計算すると、S = 50 * D1.pump.design_results['Head'] **0.5
lnS = ln(S_{new})
bst.CE /567 * exp(12.1656-1.1448*lnS+0.0862*lnS**2)
4371.7419498990475D1.pump.baseline_purchase_costsの'Pump'と同じになりました。
'Motor'の方は、electric_motor_cost(p)でpはポンプの出力、となっていました。electric_motor_cost(p)はbiosteam.units.design_tools.mechanical
にあり、計算式として書くと、
p=D1.pump.design_results['Power']
exp(5.9332 + 0.16829 * ln(p) - 0.110056*ln(p)**2 + 0.071413*ln(p)**3- 0.0063788*ln(p)**4) * bst.CE / 567
367.57377129373225D1.pump.baseline_purchase_costsの'Motor'と同じ値になりました。
参考文献
-
[1]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)
