modelPartialPumpParallel

Partial model for pump parallel

Extends from Buildings.Fluid.Interfaces.PartialTwoPortInterface, Buildings.Fluid.Actuators.BaseClasses.ValveParameters.

Information

Partial model for num parallel pumps, each with an isolation valve to avoid recirculation.

Parameters

TypeNameDefaultDescription
Buildings.Fluid.Movers.Data.Generic[num]per
BooleanhomotopyInitializationtrue= true, use homotopy method
Integernum2The number of pumps
Realthreshold0.05Hysteresis threshold
Pump
BooleanaddPowerToMediumfalseSet to false to avoid any power (=heat and flow work) being added to medium (may give simpler equations)
Dynamics › Pump
Modelica.Units.SI.Timetau1Time constant at nominal flow (if energyDynamics <> SteadyState)
Booleanuse_riseTimetrueSet to true to continuously change motor speed
Modelica.Units.SI.TimeriseTime30Time needed to change motor speed
Modelica.Blocks.Types.InitinitModelica.Blocks.Types.Init.InitialOutputType of initialization (no init/steady state/initial state/initial output)
RealyPump_startfill(0, num)Initial value of pump signals
Dynamics › Valve
Booleanuse_strokeTimetrueSet to true to continuously change valve position
Modelica.Units.SI.TimestrokeTimeriseTimeTime needed to open or close valve
RealyValve_startfill(1, num)Initial value of valve signals
Two-way valve
Reall0.0001Valve leakage, l=Kv(y=0)/Kv(y=1)
Dynamics › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamicsModelica.Fluid.Types.Dynamics.DynamicFreeInitialType of energy balance: dynamic (3 initialization options) or steady state
Initialization
Medium.AbsolutePressurep_startMedium.p_defaultStart value of pressure
Medium.TemperatureT_startMedium.T_defaultStart value of temperature
Medium.MassFraction[Medium.nX]X_startMedium.X_defaultStart value of mass fractions m_i/m
Medium.ExtraProperty[Medium.nC]C_startfill(0, Medium.nC)Start value of trace substances
Medium.ExtraProperty[Medium.nC]C_nominalfill(1E-2, Medium.nC)Nominal value of trace substances. (Set to typical order of magnitude.)
Flow resistance
Booleanfrom_dpfalse= true, use m_flow = f(dp) else dp = f(m_flow)
BooleanlinearizeFlowResistancefalse= true, use linear relation between m_flow and dp for any flow rate

Components

TypeNameDefaultDescription
Modelica.Blocks.Interfaces.RealInput[num]uContinuous input signal for the flow machine
Modelica.Blocks.Interfaces.RealOutput[num]PElectrical power consumed by the pumps
Buildings.Fluid.Movers.BaseClasses.PartialFlowMachine[num]pum
Buildings.Fluid.Actuators.Valves.TwoWayLinear[num]valIsolation valves
Buildings.Controls.OBC.CDL.Reals.Hysteresis[num]hysHysteresis for isolation valves
Buildings.Controls.OBC.CDL.Reals.Switch[num]swiSwitch to enable pump only once the valve is commanded open

Revisions

  • March 1, 2023, by Michael Wetter:
    Changed constants from 0 to 0.0 and 1 to 1.0.
    This is for #3267.
  • November 16, 2022, by Michael Wetter:
    Improved sequence to avoid switching pump on when the valve is commanded off.
  • November 15, 2022, by Michael Wetter:
    Set initial state of valve to be open, and changed rise time of valve to be the same as pump.
    This is for IBPSA, issue 1659.
  • March 3, 2022, by Michael Wetter:
    Moved massDynamics to Advanced tab and added assertion for correct combination of energy and mass dynamics.
    This is for IBPSA, issue 1542.
  • April 14, 2020, by Michael Wetter:
    Changed homotopyInitialization to a constant.
    This is for IBPSA, Buildings, #1341.
  • September 2, 2017, by Michael Wetter:
    Removed sign with hysteresis to avoid chattering.
  • June 30, 2017, by Yangyang Fu:
    First implementation.