modelPressureDropWithVaryingFlowCoefficient

Flow resistance with a varying flow coefficient

Extends from Buildings.Airflow.Multizone.BaseClasses.PartialOneWayFlowElement (Partial model for flow resistance with one-way flow), Buildings.Airflow.Multizone.BaseClasses.PowerLawResistanceParameters (Power law resistance parameters).

Information

Model of a flow resistance with a varying flow coefficient.

This block is implemented based on Buildings.Fluid.FixedResistances.PressureDrop and inherits most of its configuration. However, its mass flow rate is calculated differently by using

m_flow / √dp = m_flow_nominal / (√dp_nominal*dpCor),

where dpCor is a correction factor of the flow coefficient. Therefore, if dpCor=1.2, at the nominal mass flow rate m_flow_nominal, there will be 20% more pressure drop than dp_nominal.

Parameters

TypeNameDefaultDescription
Realm (from PowerLawResistanceParameters)Flow exponent, m=0.5 for turbulent, m=1 for laminar
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_nominalPressure difference of clean filter at m_flow_nominal
Advanced
Modelica.Units.SI.MassFlowRatem_flow_small (from PartialTwoPortInterface)1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow
BooleanforceErrorControlOnFlow (from ErrorControl)trueFlag to force error control on m_flow. Set to true if interested in flow rate
BooleanhomotopyInitialization (from PartialOneWayFlowElement)true= true, use homotopy method
BooleanuseDefaultProperties (from PartialOneWayFlowElement)trueSet to false to use density and viscosity based on actual medium state, rather than using default values
Modelica.Units.SI.PressureDifferencedp_turbulent (from PartialOneWayFlowElement)0.1Pressure difference where laminar and turbulent flow relation coincide. Recommended = 0.1
Advanced › Diagnostics
Booleanshow_T (from PartialTwoPortInterface)false= true, if actual temperature at port is computed

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)
Buildings.Controls.OBC.CDL.Interfaces.RealInputdpCorFlow coefficient correction factor

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
Modelica.Units.SI.VolumeFlowRateV_flow (from PartialOneWayFlowElement)m_flow/rhoVolume flow rate through the component
Modelica.Units.SI.Densityrho (from PartialOneWayFlowElement)Fluid density at port_a

Revisions

  • December 10, 2025, by Michael Wetter:
    Deleted old implementation as it assumed the pressure drop to be quadratic to the flow rate, which is not the case for a filter.
  • December 22, 2023, by Sen Huang:
    First implementation.