modelPump_m_flow

Pump with prescribed mass flow rate

Extends from Buildings.Fluid.Movers.Preconfigured.FlowControlled_m_flow (Fan or pump with ideally controlled mass flow rate as input signal and pre-configured parameters).

Information

This is a steady-state model of a pump with ideally controlled mass flow rate as input signal, and no heat added to the medium.

Parameters

TypeNameDefaultDescription
Buildings.Fluid.Movers.Data.Genericper (from PartialFlowMachine)
BooleancomputePowerUsingSimilarityLaws (from PartialFlowMachine)= true, compute power exactly, using similarity laws. Otherwise approximate.
BooleanaddPowerToMedium (from PartialFlowMachine)trueSet to false to avoid any power (=heat and flow work) being added to medium (may give simpler equations)
BooleannominalValuesDefineDefaultPressureCurve (from PartialFlowMachine)falseSet to true to avoid warning if m_flow_nominal and dp_nominal are used to construct the default pressure curve
Modelica.Units.SI.MassFlowRateconstantMassFlowRate (from FlowControlled_m_flow)m_flow_nominalConstant pump mass flow rate, used when inputType=Constant
Modelica.Units.SI.MassFlowRatemassFlowRates (from FlowControlled_m_flow)m_flow_nominal*{per.speeds[i]/per.speeds[end] for i in 1:size(per.speeds, 1)}Vector of mass flow rate set points, used when inputType=Stage
Dynamics › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamics (from LumpedVolumeDeclarations)Modelica.Fluid.Types.Dynamics.DynamicFreeInitialType of energy balance: dynamic (3 initialization options) or steady state
Modelica.Fluid.Types.DynamicssubstanceDynamics (from LumpedVolumeDeclarations)energyDynamicsType of independent mass fraction balance: dynamic (3 initialization options) or steady state
Modelica.Fluid.Types.DynamicstraceDynamics (from LumpedVolumeDeclarations)energyDynamicsType of trace substance balance: dynamic (3 initialization options) or steady state
Modelica.Units.SI.Timetau (from PartialFlowMachine)1Time constant of fluid volume for nominal flow, used if energy or mass balance is dynamic
Advanced › Dynamics
Modelica.Fluid.Types.DynamicsmassDynamics (from LumpedVolumeDeclarations)energyDynamicsType of mass balance: dynamic (3 initialization options) or steady state, must be steady state if energyDynamics is steady state
Initialization
Medium.AbsolutePressurep_start (from LumpedVolumeDeclarations)Medium.p_defaultStart value of pressure
Medium.TemperatureT_start (from LumpedVolumeDeclarations)Medium.T_defaultStart value of temperature
Medium.MassFraction[Medium.nX]X_start (from LumpedVolumeDeclarations)Medium.X_defaultStart value of mass fractions m_i/m
Medium.ExtraProperty[Medium.nC]C_start (from LumpedVolumeDeclarations)fill(0, Medium.nC)Start value of trace substances
Medium.ExtraProperty[Medium.nC]C_nominal (from LumpedVolumeDeclarations)fill(1E-2, Medium.nC)Nominal value of trace substances. (Set to typical order of magnitude.)
Dynamics
RealmSenFac (from LumpedVolumeDeclarations)1Factor for scaling the sensible thermal mass of the volume
Assumptions
BooleanallowFlowReversal (from PartialTwoPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal
Control
Buildings.Fluid.Types.InputTypeinputType (from PartialFlowMachine)Buildings.Fluid.Types.InputType.ContinuousControl input type
RealconstInput (from PartialFlowMachine)0Constant input set point
Real[:]stageInputs (from PartialFlowMachine)Vector of input set points corresponding to stages
Dynamics › Motor speed
Booleanuse_riseTime (from PartialFlowMachine)trueSet to true to continuously change motor speed
Modelica.Units.SI.TimeriseTime (from PartialFlowMachine)30Time needed to change motor speed between zero and full speed
Modelica.Blocks.Types.Initinit (from PartialFlowMachine)Modelica.Blocks.Types.Init.InitialOutputType of initialization (no init/steady state/initial state/initial output)
Modelica.Units.SI.MassFlowRatem_flow_start (from FlowControlled_m_flow)0Initial value of mass flow rate
Advanced
Modelica.Units.SI.MassFlowRatem_flow_small (from PartialFlowMachine)1E-4*abs(_m_flow_nominal)Small mass flow rate for regularization of zero flow
Modelica.Units.SI.PressuredpMax (from FlowControlled_m_flow)2*max(eff.per.pressure.dp)Maximum pressure allowed to operate the model, if exceeded, the simulation stops with an error
Advanced › Diagnostics
Booleanshow_T (from PartialFlowMachine)false= true, if actual temperature at port is computed
Nominal condition
Modelica.Units.SI.MassFlowRatem_flow_nominal (from FlowControlled_m_flow)Nominal mass flow rate
Modelica.Units.SI.PressureDifferencedp_nominal (from FlowControlled_m_flow)if rho_default < 500 then 500 else 10000Nominal pressure raise, used for default pressure curve if not specified in record per

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_a (from PartialTwoPort)Fluid connector a (positive design flow direction is from port_a to port_b)
Modelica.Fluid.Interfaces.FluidPort_bport_b (from PartialTwoPort)Fluid connector b (positive design flow direction is from port_a to port_b)
Modelica.Blocks.Interfaces.IntegerInputstage (from PartialFlowMachine)Stage input signal for the pressure head
Modelica.Blocks.Interfaces.RealOutputy_actual (from PartialFlowMachine)Actual normalised fan or pump speed that is used for computations
Modelica.Blocks.Interfaces.RealOutputP (from PartialFlowMachine)Electrical power consumed
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_aheatPort (from PartialFlowMachine)Heat dissipation to environment
Modelica.Blocks.Interfaces.RealInputm_flow_in (from FlowControlled_m_flow)Prescribed mass flow rate
Modelica.Blocks.Interfaces.RealOutputm_flow_actual (from FlowControlled_m_flow)Actual mass flow rate

Components

TypeNameDefaultDescription
Modelica.Units.SI.VolumeFlowRateVMachine_flow (from PartialFlowMachine)eff.V_flowVolume flow rate
Modelica.Units.SI.PressureDifferencedpMachine (from PartialFlowMachine)-preSou.dpPressure difference
Realeta (from PartialFlowMachine)eff.etaGlobal efficiency
RealetaHyd (from PartialFlowMachine)eff.etaHydHydraulic efficiency
RealetaMot (from PartialFlowMachine)eff.etaMotMotor efficiency
Modelica.Units.SI.MassFlowRatem_flow (from PartialFlowMachine)port_a.m_flowMass flow rate from port_a to port_b (m_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp (from PartialFlowMachine)port_a.p - port_b.pPressure difference between port_a and port_b
Medium.ThermodynamicStatesta_a (from PartialFlowMachine)if allowFlowReversal then Medium.setState_phX(port_a.p, noEvent(actualStream(port_a.h_outflow)), noEvent(actualStream(port_a.Xi_outflow))) else Medium.setState_phX(port_a.p, noEvent(inStream(port_a.h_outflow)), noEvent(inStream(port_a.Xi_outflow)))Medium properties in port_a
Medium.ThermodynamicStatesta_b (from PartialFlowMachine)if allowFlowReversal then Medium.setState_phX(port_b.p, noEvent(actualStream(port_b.h_outflow)), noEvent(actualStream(port_b.Xi_outflow))) else Medium.setState_phX(port_b.p, noEvent(port_b.h_outflow), noEvent(port_b.Xi_outflow))Medium properties in port_b

Revisions

  • December 12, 2023, by Ettore Zanetti:
    Changed to preconfigured pump model, This is for issue 3431.
  • July 31, 2020, by Antoine Gautier:
    First implementation.