modelFlowControlled_m_flow

Fan or pump with ideally controlled mass flow rate as input signal

Extends from IBPSA.Fluid.Movers.BaseClasses.PartialFlowMachine (Partial model to interface fan or pump models with the medium).

Information

This model describes a fan or pump with prescribed mass flow rate. The efficiency of the device is computed based on the efficiency and pressure curves that are defined in record per, which is of type IBPSA.Fluid.Movers.SpeedControlled_Nrpm.

See the User's Guide for more information.

Parameters

TypeNameDefaultDescription
IBPSA.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.SIunits.MassFlowRateconstantMassFlowRatem_flow_nominalConstant pump mass flow rate, used when inputType=Constant
Modelica.SIunits.MassFlowRatemassFlowRatesm_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 › 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.DynamicsmassDynamics (from LumpedVolumeDeclarations)energyDynamicsType of mass 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
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
Nominal condition
Modelica.SIunits.MassFlowRatem_flow_nominal (from PartialTwoPortInterface)Nominal mass flow rate
Modelica.SIunits.PressureDifferencedp_nominalif rho_default < 500 then 500 else 10000Nominal pressure raise, used for default pressure curve if not specified in record per
Advanced
Modelica.SIunits.MassFlowRatem_flow_small (from PartialTwoPortInterface)1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow
Advanced › Diagnostics
Booleanshow_T (from PartialTwoPortInterface)false= true, if actual temperature at port is computed
Control
IBPSA.Fluid.Types.InputTypeinputType (from PartialFlowMachine)IBPSA.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 › Nominal condition
Modelica.SIunits.Timetau (from PartialFlowMachine)1Time constant of fluid volume for nominal flow, used if energy or mass balance is dynamic
Dynamics › Filtered speed
Booleanuse_inputFilter (from PartialFlowMachine)true= true, if speed is filtered with a 2nd order CriticalDamping filter
Modelica.SIunits.TimeriseTime (from PartialFlowMachine)30Rise time of the filter (time to reach 99.6 % of the speed)
Modelica.Blocks.Types.Initinit (from PartialFlowMachine)Modelica.Blocks.Types.Init.InitialOutputType of initialization (no init/steady state/initial state/initial output)
Realy_start (from PartialFlowMachine)0Initial value of speed
Modelica.SIunits.MassFlowRatem_flow_start0Initial value of mass flow rate

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 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_inPrescribed mass flow rate
Modelica.Blocks.Interfaces.RealOutputm_flow_actualActual mass flow rate

Components

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

Revisions

  • March 24, 2017, by Michael Wetter:
    Renamed filteredSpeed to use_inputFilter.
    This is for #665.
  • November 10, 2016, by Michael Wetter:
    Changed default values for massFlowRates.
    This is for #583.
  • March 2, 2016, by Filip Jorissen:
    Refactored model such that it directly extends PartialFlowMachine. This is for #417.
  • April 2, 2015, by Filip Jorissen:
    Added code for supporting stage input and constant input.
  • January 6, 2015, by Michael Wetter:
    Revised model for OpenModelica.
  • February 14, 2012, by Michael Wetter:
    Added filter for start-up and shut-down transient.
  • May 25, 2011, by Michael Wetter:
    Revised implementation of energy balance to avoid having to use conditionally removed models.
  • July 27, 2010, by Michael Wetter:
    Redesigned model to fix bug in medium balance.
  • March 24, 2010, by Michael Wetter:
    Revised implementation to allow zero flow rate.
  • October 1, 2009 by Michael Wetter:
    Model added to the IBPSA library.