ポンプ

バイオ・リファイナリー(再生可能資源であるバイオマスを原料にバイオ燃料や樹脂などを製造するプラントや技術)のシミュレーションソフト"BioSTEAM"のポンプモデルの使い方について説明しています。 オリジナルのページはPumpです。 ソースコードは以下の実行環境で確認しています。
  • 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)とは、ポンプの吸込側でキャビテーション(気泡の発生)を防ぐために必要な圧力(ヘッド)のこと、だそうです。 デフォルトは考慮あり、です。
  • 注意
  • デフォルトのポンプ選定と諸元決定、コスト推定はSeiderら[1]を基にしています。
  • 圧力を増加させるポンプをシミュレーションします。
    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 PowerkW0.288
    CostUSD/hr0.0225
    Design TypeCentrifugal
    Ideal powerhp0.136
    Flow rategpm16.3
    Efficiency0.352
    Powerhp0.386
    Headft96.3
    Motor sizehp0.5
    Purchase cost PumpUSD4.37e+03
    MotorUSD273
    Total purchase cost USD4.64e+03
    Utility cost USD/hr0.0225

    pump_type プロパティ

    ポンプの種類。
    • 'Default' : 経験則に基づく自動選択
    • 'CentrifugalSingle' : 単段遠心ポンプ
    • 'CentrifugalDouble' : 二段遠心ポンプ
    • 'Gear' : ギヤ式ポンプ
    • 'MeteringPlunger' : プランジャー型定量ポンプ

    material プロパティ

    ポンプの材質。
    • 'Default' :デフォルトは'Cast iron'(鋳鉄)

    _cost()

    ポンプの値段は、ポンプ本体のpump電動モーターの2つに分けて計算されます。 まず、ポンプの方ですが、ポンプの値段に影響する因子として、種類(タイプ)、流量、ヘッド圧(揚程)出力があります。まず、流量とヘッドは流量が50(gpm、ガロン毎分?)以下の時は計算上は50、ヘッド圧が50(ft)以下の時は計算上は50とします。

    また、ポンプの種類よって計算式が違います。 ポンプの種類は大きく分けて、'Centrifugal(遠心ポンプ)'と'Gear(ギヤ式ポンプ)'、'MeteringPlunger(プランジャー型定量ポンプ)'で分かれています。

    • ポンプ
      • 遠心ポンプ
        • \( F_D \) : 購入費用に対する設計の係数(Design factor)
        • 遠心ポンプの\( 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]
          'VSC3600'、'VSC1800'が何か、ということですが、biosteam.units.design_tools.specification_factorsにありました。この値が\( F_D \)になります。
          型番 pump_centrifugal_factors
          'VSC36001
          'VSC1800'1.5
          'HSC3600'1.7
          'HSC1800'2
          '2HSC3600'2.7
          '2+HSC3600'8.9
        • ベースライン購入価
        • サイズファクター \(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*} となっています。
    • 電動モーター
    • electric_motor_cost(p)pはポンプの出力、となっています。electric_motor_cost(p)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.7419498990475
      D1.pump.baseline_purchase_costsの'Pump'と同じになりました。

      'Motor'の方は、electric_motor_cost(p)pはポンプの出力、となっていました。electric_motor_cost(p)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*} この式に従って計算すると、
      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.57377129373225
      D1.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)

このブログの人気の投稿

さあ、始めよう!

蒸留塔

機器ユニットの計算結果