modelMultiple
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)
yfor 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
-
If
-
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
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | addPowerToMedium (from PartialPump) | false | Set to false to avoid any power (=heat and flow work) being added to medium (may give simpler equations) |
| Buildings.Templates.Components.Data.PumpMultiple | dat (from PartialPumpMultiple) | Design and operating parameters | |
| Configuration | |||
| Buildings.Templates.Components.Types.Pump | typ (from PartialPump) | Equipment type | |
| Boolean | have_var (from PartialPump) | true | Set to true for variable speed pump, false for constant speed pump |
| Boolean | have_varCom (from PartialPump) | true | Set to true for single common speed signal, false for dedicated signals |
| Boolean | have_valChe (from PartialPump) | true | Set to true to include a check valve in pump line |
| Integer | nPum (from PartialPumpMultiple) | Number of pumps | |
| Dynamics › Nominal condition | |||
| Modelica.Units.SI.Time | tau (from PartialPump) | 1 | Time constant of fluid volume for nominal flow, used if energy or mass balance is dynamic |
| Dynamics › Conservation equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from PartialPump) | Modelica.Fluid.Types.Dynamics.DynamicFreeInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
| Assumptions | |||
| Boolean | allowFlowReversal (from PartialPump) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal |
| Graphics | |||
| Integer | text_rotation (from PartialPump) | 0 | Text rotation angle in icon layer |
| Boolean | text_flip (from PartialPump) | false | True to flip text horizontally in icon layer |
| Integer | icon_dy (from PartialPumpMultiple) | 300 | Distance in y-direction between each unit in icon layer |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate[nPum] | m_flow_nominal (from PartialPumpMultiple) | dat.m_flow_nominal | Nominal mass flow rate |
| Modelica.Units.SI.PressureDifference[nPum] | dp_nominal (from PartialPumpMultiple) | dat.dp_nominal | Pump 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
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Templates.Components.Interfaces.Bus | bus (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
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Templates.Components.BaseClasses.MoverSpeedControlled_y[nPum] | pum | Pumps | |
| Fluid.FixedResistances.CheckValve[nPum] | valChe | Check valve | |
| Routing.PassThroughFluid[nPum] | pas | Fluid pass through if no check valve | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToReal[nPum] | sigSta | Start/stop signal | |
| Buildings.Controls.OBC.CDL.Reals.Multiply[nPum] | sigCon | Resulting control signal | |
| Buildings.Controls.OBC.CDL.Routing.RealScalarReplicator | reaSpe | Replicate signal in case of common unique commanded speed | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant[nPum] | speCst | Constant signal in case of constant speed pump | |
| Buildings.Controls.OBC.CDL.Routing.RealExtractSignal | pasSpe | Direct pass through for dedicated speed signals | |
| Controls.StatusEmulator[nPum] | sta | Emulate 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.