Buildings.Templates.Components.Pumps

Pump models

Information

This package contains models for pumps.

Extends from Modelica.Icons.VariantsPackage (Icon for package containing variants).

Package Content

Name Description
Buildings.Templates.Components.Pumps.Multiple Multiple Multiple pumps in parallel
Buildings.Templates.Components.Pumps.Single Single Single pump

Buildings.Templates.Components.Pumps.Multiple Buildings.Templates.Components.Pumps.Multiple

Multiple pumps in parallel

Buildings.Templates.Components.Pumps.Multiple

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.

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.

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

Parameters

TypeNameDefaultDescription
BooleanaddPowerToMediumfalseSet to false to avoid any power (=heat and flow work) being added to medium (may give simpler equations)
replaceable package MediumWaterMedium in the component
PumpMultipledat Design and operating parameters
SpeedControlled_ypum[nPum]pum(redeclare each final pac...Pumps
Configuration
PumptypBuildings.Templates.Componen...Equipment type
Booleanhave_vartrueSet to true for variable speed pump, false for constant speed pump
Booleanhave_varComtrueSet to true for single common speed signal, false for dedicated signals
Booleanhave_valChetrueSet to true to include a check valve in pump line
IntegernPum Number of pumps
Nominal condition
PressureDifferencedpValChe_nominal[nPum]fill(Buildings.Templates.Dat...Check valve pressure drop at design conditions [Pa]
Dynamics
Nominal condition
Timetau1Time constant of fluid volume for nominal flow, used if energy or mass balance is dynamic [s]
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Assumptions
BooleanallowFlowReversaltrue= false to simplify equations, assuming, but not enforcing, no flow reversal
Graphics
Integertext_rotation0Text rotation angle in icon layer
Booleantext_flipfalseTrue to flip text horizontally in icon layer
Integericon_dy300Distance in y-direction between each unit in icon layer

Connectors

TypeNameDescription
BusbusControl bus
FluidPorts_aports_a[nPum]Vectorized fluid connector a (positive design flow direction is from port(s)_a to port(s)_b)
FluidPorts_bports_b[nPum]Vectorized fluid connector b (positive design flow direction is from port(s)_a to port(s)_b)

Modelica definition

model Multiple "Multiple pumps in parallel" extends Buildings.Templates.Components.Interfaces.PartialPumpMultiple( final typ=Buildings.Templates.Components.Types.Pump.Multiple); replaceable Buildings.Fluid.Movers.SpeedControlled_y pum[nPum]( redeclare each final package Medium=Medium, final per=dat.per, each final inputType=Buildings.Fluid.Types.InputType.Continuous, each final addPowerToMedium=addPowerToMedium, each final energyDynamics=energyDynamics, each final tau=tau, each final allowFlowReversal=allowFlowReversal) "Pumps"; Fluid.FixedResistances.CheckValve valChe[nPum]( redeclare each final package Medium = Medium, final m_flow_nominal=m_flow_nominal, final dpValve_nominal=dpValChe_nominal) if have_valChe "Check valve"; Routing.PassThroughFluid pas[nPum]( redeclare each final package Medium = Medium) if not have_valChe "Fluid pass through if no check valve"; Buildings.Controls.OBC.CDL.Conversions.BooleanToReal sigSta[nPum] "Start/stop signal"; Buildings.Controls.OBC.CDL.Reals.Multiply sigCon[nPum] "Resulting control signal"; Buildings.Controls.OBC.CDL.Routing.RealScalarReplicator reaSpe( final nout=nPum) if have_var and have_varCom "Replicate signal in case of common unique commanded speed"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant speCst[nPum]( final k=fill(1, nPum)) if not have_var "Constant signal in case of constant speed pump"; Buildings.Controls.OBC.CDL.Routing.RealExtractSignal pasSpe( final nin=nPum, final nout=nPum) if have_var and not have_varCom "Direct pass through for dedicated speed signals"; Controls.StatusEmulator sta[nPum] "Emulate pump status"; equation connect(pum.port_b,valChe. port_a); connect(sigSta.y, sigCon.u2); connect(sigCon.y, pum.y); connect(valChe.port_b, ports_b); connect(ports_a, pum.port_a); connect(bus.y1, sigSta.u); connect(reaSpe.y, sigCon.u1); connect(bus.y, reaSpe.u); connect(speCst.y, sigCon.u1); connect(bus.y, pasSpe.u); connect(pasSpe.y, sigCon.u1); connect(pum.port_b, pas.port_a); connect(pas.port_b, ports_b); connect(sta.y1_actual, bus.y1_actual); connect(bus.y1, sta.y1); end Multiple;

Buildings.Templates.Components.Pumps.Single Buildings.Templates.Components.Pumps.Single

Single pump

Buildings.Templates.Components.Pumps.Single

Information

This is a model for a single pump with an optional check valve (depending on the value of the parameter have_valChe).

By default, a variable speed pump is modeled. A constant speed pump can be modeled by setting the parameter have_var to false.

Control points

The following input and output points are available.

Model parameters

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

Extends from Buildings.Templates.Components.Interfaces.PartialPumpSingle (Interface class for single pump).

Parameters

TypeNameDefaultDescription
BooleanaddPowerToMediumfalseSet to false to avoid any power (=heat and flow work) being added to medium (may give simpler equations)
replaceable package MediumWaterMedium in the component
PumpSingledat Design and operating parameters
SpeedControlled_ypumpum(redeclare final package ...Pump
Configuration
PumptypBuildings.Templates.Componen...Equipment type
Booleanhave_vartrueSet to true for variable speed pump, false for constant speed pump
Booleanhave_varComtrueSet to true for single common speed signal, false for dedicated signals
Booleanhave_valChetrueSet to true to include a check valve in pump line
Nominal condition
PressureDifferencedpValChe_nominalBuildings.Templates.Data.Def...Check valve pressure drop at design conditions [Pa]
Dynamics
Nominal condition
Timetau1Time constant of fluid volume for nominal flow, used if energy or mass balance is dynamic [s]
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Assumptions
BooleanallowFlowReversaltrue= false to simplify equations, assuming, but not enforcing, no flow reversal
Graphics
Integertext_rotation0Text rotation angle in icon layer
Booleantext_flipfalseTrue to flip text horizontally in icon layer
Advanced
MassFlowRatem_flow_small1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow [kg/s]
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed

Connectors

TypeNameDescription
BusbusControl bus
FluidPort_aport_aFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_bFluid connector b (positive design flow direction is from port_a to port_b)

Modelica definition

model Single "Single pump" extends Buildings.Templates.Components.Interfaces.PartialPumpSingle( final typ=Buildings.Templates.Components.Types.Pump.Single); replaceable Buildings.Fluid.Movers.SpeedControlled_y pum( redeclare final package Medium=Medium, final per=dat.per, final inputType=Buildings.Fluid.Types.InputType.Continuous, final addPowerToMedium=addPowerToMedium, final energyDynamics=energyDynamics, final tau=tau, final allowFlowReversal=allowFlowReversal) "Pump"; Buildings.Controls.OBC.CDL.Conversions.BooleanToReal sigSta "Start/stop signal"; Buildings.Controls.OBC.CDL.Reals.Multiply sigCon "Resulting control signal"; Fluid.FixedResistances.CheckValve valChe( redeclare final package Medium = Medium, final m_flow_nominal=dat.m_flow_nominal, final dpValve_nominal=dpValChe_nominal) if have_valChe "Check valve"; Routing.PassThroughFluid pas( redeclare final package Medium=Medium) if not have_valChe "Fluid pass through if no check valve"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant speCst( final k=1) if not have_var "Constant signal in case of constant speed pump"; Modelica.Blocks.Routing.RealPassThrough pasSpe if have_var "Direct pass through for variable speed signal"; Controls.StatusEmulator sta "Emulate pump status"; equation connect(sigSta.y, sigCon.u2); connect(sigCon.y, pum.y); connect(port_a, pum.port_a); connect(bus.y, pasSpe.u); connect(pasSpe.y, sigCon.u1); connect(speCst.y, sigCon.u1); connect(bus.y1, sigSta.u); connect(pum.port_b, valChe.port_a); connect(valChe.port_b, port_b); connect(pum.port_b, pas.port_a); connect(pas.port_b, port_b); connect(bus.y1, sta.y1); connect(sta.y1_actual, bus.y1_actual); end Single;