modelDpControlled_dp

Pump or fan including pressure control (constant or variable)

Extends from AixLib.Fluid.Interfaces.LumpedVolumeDeclarations (Declarations for lumped volumes), AixLib.Fluid.Interfaces.PartialTwoPortInterface (Partial model with two ports and declaration of quantities that are used by many models).

Information

This model represents a pump or fan which includes already a controller. Be aware that this model does not only represent the physical behavior of an HVAC component but also controls this HVAC component.

In addition to the standard characteristic curve (should equal per.pressure), the controller is able to store two further characteristic/control curves. This enables the user to quickly select between the two common control modes constant pressure (dpConst) and variable pressure (dpVar). The common control modes of pumps are concisely explained in the referenced white paper [1].

Often, the AixLib.Fluid.Movers.FlowControlled_dp. This means no speed control is possible. Please use AixLib.Fluid.Movers.SpeedControlled_y for this application.

The model has a standard parametrization for the three curves basing on the parameter m_flow_nominal and dp_nominal. See the figure and table below.

1

m_flow

dp_total

dp_constCtrl

dp_varCtrl

0

1.3

1

0.5

1

1

1

1

1.5

0.75

0.75

0.75

2

0

0

0

References

[1] Robinson, Reece. 2019. Pumping Control Methods and Their Impact on System Effciency. Link to PDF.

Parameters

TypeNameDefaultDescription
BooleanaddPowerToMediumtrueSet to false to avoid any power (=heat and flow work) being added to medium (may give simpler equations)
BooleannominalValuesDefineDefaultPressureCurvefalseSet to true to avoid warning if m_flow_nominal and dp_nominal are used to construct the default pressure curve
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
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
Nominal condition
Modelica.Units.SI.MassFlowRatem_flow_nominal (from PartialTwoPortInterface)Nominal mass flow rate
Modelica.Units.SI.PressureDifferencedp_nominalif rho_default < 500 then 500 else 10000Nominal pressure raise, used to normalized the filter if use_riseTime=true, to set default values of constantHead and heads, and and for default pressure curve if not specified in record per
Advanced
Modelica.Units.SI.MassFlowRatem_flow_small (from PartialTwoPortInterface)1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow
BooleanprescribeSystemPressurefalse=true, to control mover such that pressure difference is obtained across two remote points in system
Advanced › Diagnostics
Booleanshow_T (from PartialTwoPortInterface)false= true, if actual temperature at port is computed
Machine characteristics
AixLib.Fluid.Movers.Data.GenericperRecord with performance data
AixLib.Fluid.Movers.BaseClasses.Characteristics.flowParameterspressureCurve_defaultGeneral mover curve: volume flow rate vs. total pressure head
Control characteristics
AixLib.Fluid.Movers.DpControlledMovers.Types.CtrlTypectrlTypeAixLib.Fluid.Movers.DpControlledMovers.Types.CtrlType.dpTotalType of mover control
AixLib.Fluid.Movers.BaseClasses.Characteristics.flowParameterspressureCurve_dpConstdpConst control: volume flow rate vs. total pressure head
AixLib.Fluid.Movers.BaseClasses.Characteristics.flowParameterspressureCurve_dpVardpVar control: volume flow rate vs. total pressure head
Dynamics › Nominal condition
Modelica.Units.SI.TimetauMov1Time constant in mover (pump or fan) of fluid volume for nominal flow, used if energy or mass balance is dynamic
Dynamics › Filtered speed
Booleanuse_riseTimetrue= true, if speed is filtered with a 2nd order CriticalDamping filter
Modelica.Units.SI.TimeriseTime30Rise time of the filter (time to reach 99.6 % of the speed)
Modelica.Blocks.Types.InitinitModelica.Blocks.Types.Init.InitialOutputType of initialization (no init/steady state/initial state/initial output)
Realy_start0Initial value of speed
Modelica.Units.SI.PressureDifferencedp_start0Initial value of pressure raise
Sensor
Modelica.Units.SI.TimetauSen0Time constant at nominal flow rate (use tau=0 for steady-state sensor, but see user guide for potential problems)
Sensor › Initialization
Modelica.Blocks.Types.InitinitTypeModelica.Blocks.Types.Init.InitialStateType of initialization (InitialState and InitialOutput are identical)
Modelica.Media.Interfaces.Types.Densityd_startMedium.density(Medium.setState_pTX(senVolFlo.p_start, senVolFlo.T_start, senVolFlo.X_start))Initial or guess value of density
Curve / Table › Table data interpretation
Modelica.Blocks.Types.SmoothnesssmoothnessModelica.Blocks.Types.Smoothness.LinearSegmentsSmoothness of table interpolation
BooleanverboseExtrapolationfalse= true, if warning messages are to be printed if table input is outside the definition range

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.RealInputdpMeaMeasurement of pressure difference between two points where the set point should be obtained
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_aheatPortHeat dissipation to environment
Modelica.Blocks.Interfaces.RealOutputPElectrical power consumed
Modelica.Blocks.Interfaces.RealOutputy_actualActual normalised pump speed that is used for computations
Modelica.Blocks.Interfaces.RealOutputdp_actualPressure difference between the mover inlet and outlet

Components

TypeNameDefaultDescription
Modelica.Units.SI.MassFlowRatem_flow (from PartialTwoPortInterface)port_a.m_flowMass flow rate from port_a to port_b (m_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp (from PartialTwoPortInterface)port_a.p - port_b.pPressure difference between port_a and port_b
Medium.ThermodynamicStatesta_a (from PartialTwoPortInterface)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 PartialTwoPortInterface)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
AixLib.Fluid.Sensors.VolumeFlowRatesenVolFloSensor to measure volume flow rate
Modelica.Blocks.Tables.CombiTable1DvpressureCurveSelectedTable with points of selected curve to calculate dp from V_flow
AixLib.Fluid.Movers.FlowControlled_dpmovMover: pump or fan

Contents

NameDescription
checkDpCurvesprotected

Revisions

  • October 28, 2021, by Philipp Mehrfeld:
    #1151 Added model to library.