.ThermofluidStream.Processes.CentrifugalPump

Model of a centrifugal pump (under development; subject to change; see documentation)

Information

Remark: This model is scheduled for release in v1.3.0 due to its advantages. However, it currently combines multiple features that are likely to be separated into dedicated models in future revisions. Please take this into account.

Model of a centrifugal pump based on similarity laws: volume flow rate V_flow ∼ w, head/pressure difference head ∼ w^2, power P ∼ rho*w^3, where rho is the density and w is the pump speed.
The model assumes incompressible fluid rho = constant, which implies that the hydraulic work P_hyd = dp*V_flow.

Additionally quadratic polynomials are used to approximate head/pressure difference and power/torque depending on volume flow rate V_flow:

head_n =  c_head[1]*w_n^2 + c_head[2]*w_n*V_n + c_head[3]*V_n^2
P_n/w_n = tau_n = rho_n*(c_power[1]*w_n^2 + c_power[2]*w_n*V_n + c_power[3]*V_n^2)

where:

The centrifugal pump can be parameterized either with a measurement record or with a coefficient record. There are already measurements records and coefficient records for some exemplary centrifugal pumps.
User specific pumps can be added by creating a new measurement record or by calculating the coefficient record using the example CalculateCoefficientsFromMeasurements.
Furthermore coefficient records are designed to enable the user to generate a reasonable pump curve by scaling, e.g. by applying similarity laws.

The centrifugal pump can be used in different modes:

The pump mode is displayed on icon level in terms of for mass flow rate, V for volume flow rate, dp for pressure difference, pr for pressure ratio, p for outlet pressure and w for speed.

The parameter setpointFromInput enables switching between setpoint by parameter or from input signal.

Further assumptions:

The model is supposed to be used for non negative speed w >= 0 and non negative volume flow rate V_flow >= 0, but the implemented modification:

head_n =  c_head[1]*w_n^2 + c_head[2]*w_n*V_n + c_head[3]*V_n*abs(V_n)
P_n/w_n = tau_n = if noEvent(V_n > 0) then rho_n*(c_power[1]*w_n^2 + c_power[2]*w_n*V_n + c_power[3]*V_n^2) else rho_n*c_power[1]*w_n^2

yields at least qualitative reasonable results for head at negative volume flow rates V_flow < 0. For quantitative results or for negative speeds w < 0 further modifications are necessary.

Revisions


Generated at 2026-05-09T18:18:56Z by OpenModelicaOpenModelica 1.26.7 using GenerateDoc.mos