.ThermofluidStream.Processes.Internal.TurboComponent.dp_tau_centrifugal

Model of a centrifugal pump

Information

Deprecation notice:

The legacy Reynolds formulation (useLegacyReynolds = true) is deprecated. When enabled, a warning is issued to inform the user about the upcoming removal. The legacy option will be removed in v2.0 of the ThermoFluidStream Library.

Recommended usage:

Remark:

The legacy Reynolds formulation overestimated friction effects by a factor of 1000. Depending on the operating point, the legacy formulation may lead to deviations of the pump characteristic by a factor of approximately 2–5 compared to the corrected implementation. Simulation results will likely change. Closed loop controllers might have to be adapted.

Documentation:

Centrifugal pump model with head–flow (H–Q) and torque–flow (T–Q) characteristic curves.

H–Q characteristic:
TDH := f_H * (a_h*omega*abs(omega) - b_h*omega*abs(V_flow) - c_h*V_flow*abs(V_flow));

T–Q characteristic:
tau_st := (f_Q*f_H/f_eta) * (v_ref/v_in*a_t*abs(omega)*V_flow - v_ref/v_in*b_t*abs(V_flow)*V_flow + v_i*abs(omega)*omega + v_s*abs(omega));

Both characteristic curves are extended to all four quadrants of the V_flowomega operating map.

The parameters a, b, c, and v can either be specified directly or derived from three scaling factors alpha, beta, and gamma, which scale a reference pump.

Reference pump parameters:

omega_D     = 314.2 rad/s
V_flow_D    = 3.06e-3 m3/s
TDH_D       = 3.6610 m

a_h_ref     =  4.864e-5 m.s2/rad2
b_h_ref     = -2.677 s2/(m2.rad)
c_h_ref     =  3.967e+5 s2/m5
a_t_ref     =  5.427e-1 N.m.s2/(rad.m3)
b_t_ref     =  2.777e+4 N.m.s2/m6
v_i_ref     =  1.218e-6 N.m.s2/rad2
v_s_ref     =  1.832e-4 N.m.s/rad
f_q_ref     =  1
K_D_ref     =  9.73e-06 m3/rad
rho_ref_ref =  1.00e3 kg/m3
r_ref       =  1.60e-2 m
    

The characteristic curves are scaled to account for variations in fluid density and viscosity, following the approach described in Gülich, Kreiselpumpen: Handbuch für Entwicklung, Anlageplanung und Betrieb, 3rd edition, Chapter 13.1.

Interface

function dp_tau_centrifugal
  extends partial_dp_tau;
  import Modelica.Constants.g_n;
  input Boolean useLegacyReynolds = true "= true, if legacy Reynolds formulation is used (overestimates viscosity). Set to false to enable the corrected formulation. Will be removed in ThermoFluidStream v2.0." annotation(
    Dialog(enable = true),
    Evaluate = true,
    choices(checkBox = true));
  input Boolean parametrizeByScaling = true "= true, if pump characteristic curve is computed from one design point" annotation(
    Dialog(enable = true));
  input SI.Height TDH_D = 3.6610 "Design pressure head (max efficiency)" annotation(
    Dialog(group = "Scaling", enable = parametrizeByScaling));
  input SI.VolumeFlowRate V_flow_D = 3.06e-3 "Design volume flow (max efficiency)" annotation(
    Dialog(group = "Scaling", enable = parametrizeByScaling));
  input SI.AngularVelocity omega_D = 314.2 "Design angular velocity" annotation(
    Dialog(group = "Scaling", enable = parametrizeByScaling));
  input Real K_D_input(unit = "m3/rad") = 9.73e-06 "Vflow_D / omega_D" annotation(
    Dialog(group = "General", enable = not parametrizeByScaling));
  input Integer f_q_input = 1 "Number of floods" annotation(
    Dialog(group = "General", enable = not parametrizeByScaling));
  input SI.Radius r_input = 1.60e-2 "Pump radius (r2)" annotation(
    Dialog(group = "General", enable = not parametrizeByScaling));
  input SI.Density rho_ref_input = 1.00e3 "Reference density" annotation(
    Dialog(group = "General", enable = not parametrizeByScaling));
  input Real a_h_input(unit = "m.s2/rad2", displayUnit = "m.min2") = 4.864e-5 "HQ factor 1" annotation(
    Dialog(group = "HQ characteristic", enable = not parametrizeByScaling));
  input Real b_h_input(unit = "s2/(m2.rad)", displayUnit = "m.h.min/l") = -2.677 "HQ factor 2" annotation(
    Dialog(group = "HQ characteristic", enable = not parametrizeByScaling));
  input Real c_h_input(unit = "s2/m5", displayUnit = "m.h2/l2") = 3.967e+5 "HQ factor 3" annotation(
    Dialog(group = "HQ characteristic", enable = not parametrizeByScaling));
  input Real a_t_input(unit = "N.m.s2/(rad.m3)", displayUnit = "N.m.min.h/l") = 5.427e-1 "TQ factor 1" annotation(
    Dialog(group = "TQ characteristic", enable = not parametrizeByScaling));
  input Real b_t_input(unit = "N.m.s2/m6", displayUnit = "N.m.h2/l2") = 2.777e+4 "TQ factor 2" annotation(
    Dialog(group = "TQ characteristic", enable = not parametrizeByScaling));
  input Real v_i_input(unit = "N.m.s2/rad2", displayUnit = "N.m.min2") = 1.218e-6 "TQ factor 4" annotation(
    Dialog(group = "TQ characteristic", enable = not parametrizeByScaling));
  input Real v_s_input(unit = "N.m.s/rad", displayUnit = "N.m.min") = 1.832e-4 "TQ factor 3" annotation(
    Dialog(group = "TQ characteristic", enable = not parametrizeByScaling));
  input Real Re_mod_min(unit = "1") = 1e2 "Minimum modified Reynolds number" annotation(
    Dialog(tab = "Advanced", enable = true));
  input String name = getInstanceName() "Hack to access the instance name";
end dp_tau_centrifugal;

Revisions


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