Equipment

Pumps

Total head

indsl.equipment.total_head(discharge_pressure: Union[Series, float], suction_pressure: Union[Series, float], den: Union[Series, float], align_timesteps: bool = False) Series

Total head

Head is a measure of the potential of a liquid to reach a certain height. The head is essentially a unit of pressure. The total head is the difference in pressure of the discharge to the suction of the pump.he formula for total head \(h\) [m] given inputs discharge pressure \(P_{discharge}\) [Pa], suction pressure \(P_{suction}\) [Pa] and liquid density \(\rho_L\:[\frac{kg}{m^3}]\).

\[h = \frac{P_{discharge} - P_{suction}}{9.81\rho_L}\]
Parameters
  • discharge_pressure – Discharge pressure [Pa]. Discharge pressure of a centrifugal pump.

  • suction_pressure – Suction pressure [Pa]. Suction pressure of a centrifugal pump.

  • den – Density of the fluid [\(\mathrm{\frac{kg}{m^3}}\)].

  • align_timesteps – Auto-align. Automatically align time stamp of input time series. Default is False.

Returns

Total head [m]

Difference in total discharge head and the total suction head.

Return type

pandas.Series

Best Efficiency Point (BEP) from flowrate

indsl.equipment.percent_BEP_flowrate(pump_liquid_flowrate: Union[Series, float], BEP_flowrate: Union[Series, float], align_timesteps: bool = False) Series

BEP from flowrate [%]

Centrifugal pumps operate optimally at a specific liquid flowrate which is typically called the Best Efficiency Point (BEP). This function calculates the flowrate relative to BEP as a percentage. i.e. 100% means the current flowrate is at the BEP, 110% means the current flowrate is 10% above BEP. The formula for this equation is:

\[BEP\:from\:flowrate\:[\%]=\frac{Pump\:liquid\:flowrate} {BEP}*100\]
Parameters
  • pump_liquid_flowrate – Pump liquid flowrate [\(\mathrm{\frac{m^3}{s}}\)]. The current flowrate of the pump.

  • BEP_flowrate – Best efficiency point [-]. The best efficiency flowrate point of the pump.

  • align_timesteps – Auto-align. Automatically align time stamp of input time series. Default is False.

Returns

BEP to current flowrate [%].

Percentage of current flowrate to BEP

Return type

pandas.Series

Hydraulic power

indsl.equipment.pump_hydraulic_power(pump_liquid_flowrate: Union[Series, float], total_head: Union[Series, float], den: Union[Series, float], align_timesteps: bool = False) Series

Pump hydraulic power

Pump hydraulic power [W] is the amount of energy per unit time delivered to the liquid. Pump hydraulic power can be calculated if the pump liquid flowrate \(Q_L\:[\frac{m^3}{s}]\), total head across the pump \(h\) [m], and density of the fluid \(\rho_L\:[\frac{kg}{m^3}]\).

\[Pump\:hydraulic\:power=9.81Q_L\rho_Lh\]
Parameters
  • pump_liquid_flowrate – Pump liquid flowrate [\(\mathrm{\frac{m^3}{s}}\)]. The current flowrate of the pump.

  • total_head – Total head across pump [m]. Difference in pressure between discharge and suction of pump.

  • den – Density of the fluid [\(\mathrm{\frac{kg}{m^3}}\)].

  • align_timesteps – Auto-align. Automatically align time stamp of input time series. Default is False.

Returns

Pump hydraulic power [W].

Pump hydraulic power of pump.

Return type

pandas.Series

Shaft power

indsl.equipment.pump_shaft_power(pump_hydraulic_power: Union[Series, float], pump_liquid_flowrate: Union[Series, float], eff_parameter_1: Union[Series, float], eff_parameter_2: Union[Series, float], eff_intercept: Union[Series, float], align_timesteps: bool = False) Series

Pump shaft power

Pump shaft power is the input power delivered by the shaft. Pump shaft power can be calculated by dividing the pump hydraulic hp by the pump efficiency. Pump efficiency is a function of liquid flowrate \(\eta(Q_L)\). The pump efficiency curve as a function of liquid flowrate is assumed to be a 2nd order polynomial. Therefore the input parameters of the curve are coefficients to \(x^2\) and \(x\) and the \(y\) intercept of the curve.

\[Pump\:shaft\:power=\frac{Pump\:hydraulic\:power}{\eta(Q_L)}\]
Parameters
  • pump_hydraulic_power – Pump hydraulic power [W].

  • pump_liquid_flowrate – Pump liquid flowrate [\(\mathrm{\frac{m^3}{h}}\)]. The current flowrate of the pump.

  • eff_parameter_1\(x^2\) coefficient [-]. Coefficient of \(x^2\).

  • eff_parameter_2\(x\) coefficient [-]. Coefficient of \(x\).

  • eff_intercept\(y\)-intercept [-]. Coefficient of \(y\)-intercept of curve

  • align_timesteps – Auto-align. Automatically align time stamp of input time series. Default is False.

Returns

Pump shaft power [W]

Pump shaft power of pump.

Return type

pandas.Series

Recycle valve power loss

indsl.equipment.recycle_valve_power_loss(Q_valve: Union[Series, float], total_head: Union[Series, float], den: Union[Series, float], align_timestamps: bool = False) Series

Pump recycle valve power loss

This calculation can be used where there is a recirculation line with a recycle valve whose purpose is to maintain a minimum flow through the pump. The calculation does not take into account the difference in pump efficiency at different flow rates. This is acceptable because pumps are usually sized to take into account extra flow due to recirculation.

\[Power\:loss=9.81Q_{valve}\rho_Lh\]
Parameters
  • Q_valve – Valve flow rate [\(\mathrm{\frac{m^3}{h}}\)]. Flow rate through the recycle valve.

  • total_head – Pump total head [m].

  • den – Density of the fluid [\(\mathrm{\frac{kg}{m^3}}\)].

  • align_timestamps – Auto-align. Automatically align time stamp of input time series. Defaults to False.

Returns

Power loss [W].

Power loss by recirculation though the pump.

Return type

pd.Series

Volumetric flow through valve

indsl.equipment.flow_through_valve(inlet_P: Union[Series, float], outlet_P: Union[Series, float], valve_opening: Union[Series, float], SG: float, min_opening: float, max_opening: float, min_Cv: float, max_Cv: float, type: Literal['Linear', 'EQ'] = 'Linear', align_timestamps: bool = False) Series

Valve volumetric flow rate

This calculation can be used when there is no flow meter, but the pressure difference over the valve is known. The calculated flow rate is only exactly applicable for ideal fluids (incompressible and with zero viscosity). The availible valve characteristics are

  • Linear: \(C_v = ax + b\).

  • Equal percentage: \(C_v = ae^x + b\).

The formula for the flow rate is

\[Q = C_v \sqrt{\frac{p_{in} - p_{out}}{SG}}.\]
Parameters
  • inlet_P – Pressure at inlet [bar].

  • outlet_P – Pressure at outlet [bar].

  • valve_opening – Valve opening [-]. Note that this is the proportional and not percentage valve opening.

  • SG – Specific gravity of fluid [-].

  • min_opening – Min opening [-]. Valve opening at minimum flow.

  • max_opening – Max opening [-]. Valve opening at maximum flow.

  • min_Cv – Min \(C_v\) [\(\mathrm{\frac{gpm}{psi^{0.5}}}\)]. Valve \(C_v\) at minimum flow. Note that the flow coefficient should be expressed in imperial units.

  • max_Cv – Max \(C_v\) [\(\mathrm{\frac{gpm}{psi^{0.5}}}\)]. Valve \(C_v\) at maximum flow. Note that the flow coefficient should be expressed in imperial units.

  • type – Valve characteristic. Valve characteristic, either “Linear” or “EQ” (equal percentage). Default is “Linear”.

  • align_timestamps – Auto-align. Automatically align time stamp of input time series. Default is False.

Raises

ValueError – If the valve characteristic is not recognized.

Returns

Valve flow rate [m3/h].

Return type

pd.Series