modelMultiple

Multiple pumps in parallel

Extends from Buildings.Templates.Components.Interfaces.PartialPumpMultiple (Interface class for multiple pumps in parallel arrangement).

Information

This is a model for a parallel arrangement of nPum pumps with optional check valves (depending on the value of the parameter have_valChe).

Note that the inlet and outlet manifolds are not included in this model. The manifolds may be modeled with Buildings.Templates.Components.Routing.MultipleToMultiple. This allows representing both headered and dedicated arrangements.

By default, variable speed pumps are modeled. Constant speed pumps can be modeled by setting the parameter have_var to false.

Control points

The following input and output points are available.

  • Pump Start/Stop command (VFD Run or motor starter contact) y1: DO signal dedicated to each unit, with a dimensionality of one
  • Pump speed command (VFD Speed) y for variable speed pumps only:
    • If have_varCom: AO signal common to all units, with a dimensionality of zero
    • If not have_varCom: AO signal dedicated to each unit, with a dimensionality of one
  • Pump status (through VFD interface, VFD status contact, or current switch) y1_actual: DI signal dedicated to each unit, with a dimensionality of one

Model parameters

The design parameters and the pump characteristics are specified with an instance of Buildings.Templates.Components.Data.PumpMultiple. The documentation of this record class provides further details on how to properly parameterize the model.

Parameters

TypeNameDefaultDescription
BooleanaddPowerToMedium (from PartialPump)falseSet to false to avoid any power (=heat and flow work) being added to medium (may give simpler equations)
Buildings.Templates.Components.Data.PumpMultipledat (from PartialPumpMultiple)Design and operating parameters
Configuration
Buildings.Templates.Components.Types.Pumptyp (from PartialPump)Equipment type
Booleanhave_var (from PartialPump)trueSet to true for variable speed pump, false for constant speed pump
Booleanhave_varCom (from PartialPump)trueSet to true for single common speed signal, false for dedicated signals
Booleanhave_valChe (from PartialPump)trueSet to true to include a check valve in pump line
IntegernPum (from PartialPumpMultiple)Number of pumps
Dynamics › Nominal condition
Modelica.Units.SI.Timetau (from PartialPump)1Time constant of fluid volume for nominal flow, used if energy or mass balance is dynamic
Dynamics › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamics (from PartialPump)Modelica.Fluid.Types.Dynamics.DynamicFreeInitialType of energy balance: dynamic (3 initialization options) or steady state
Assumptions
BooleanallowFlowReversal (from PartialPump)true= false to simplify equations, assuming, but not enforcing, no flow reversal
Graphics
Integertext_rotation (from PartialPump)0Text rotation angle in icon layer
Booleantext_flip (from PartialPump)falseTrue to flip text horizontally in icon layer
Integericon_dy (from PartialPumpMultiple)300Distance in y-direction between each unit in icon layer
Nominal condition
Modelica.Units.SI.MassFlowRate[nPum]m_flow_nominal (from PartialPumpMultiple)dat.m_flow_nominalNominal mass flow rate
Modelica.Units.SI.PressureDifference[nPum]dp_nominal (from PartialPumpMultiple)dat.dp_nominalPump head at design conditions
Modelica.Units.SI.PressureDifference[nPum]dpValChe_nominal (from PartialPumpMultiple)fill(Buildings.Templates.Data.Defaults.dpValChe, nPum)Check valve pressure drop at design conditions

Connectors

TypeNameDefaultDescription
Buildings.Templates.Components.Interfaces.Busbus (from PartialPump)Control bus
Modelica.Fluid.Interfaces.FluidPorts_a[nPum]ports_a (from PartialPumpMultiple)Vectorized fluid connector a (positive design flow direction is from port(s)_a to port(s)_b)
Modelica.Fluid.Interfaces.FluidPorts_b[nPum]ports_b (from PartialPumpMultiple)Vectorized fluid connector b (positive design flow direction is from port(s)_a to port(s)_b)

Components

TypeNameDefaultDescription
Buildings.Templates.Components.BaseClasses.MoverSpeedControlled_y[nPum]pumPumps
Fluid.FixedResistances.CheckValve[nPum]valCheCheck valve
Routing.PassThroughFluid[nPum]pasFluid pass through if no check valve
Buildings.Controls.OBC.CDL.Conversions.BooleanToReal[nPum]sigStaStart/stop signal
Buildings.Controls.OBC.CDL.Reals.Multiply[nPum]sigConResulting control signal
Buildings.Controls.OBC.CDL.Routing.RealScalarReplicatorreaSpeReplicate signal in case of common unique commanded speed
Buildings.Controls.OBC.CDL.Reals.Sources.Constant[nPum]speCstConstant signal in case of constant speed pump
Buildings.Controls.OBC.CDL.Routing.RealExtractSignalpasSpeDirect pass through for dedicated speed signals
Controls.StatusEmulator[nPum]staEmulate pump status

Revisions

  • July 17, 2026, by Antoine Gautier:
    Refactored to use a compiler-friendly mover model. This is for #4653.
  • November 18, 2022, by Antoine Gautier:
    First implementation.