modelOrifice

Orifice

Extends from IDEAS.Airflow.Multizone.Coefficient_V_flow (Power law with coefficient for volume flow rate).

Information

This model describes the mass flow rate and pressure difference relation of an orifice in the form

V̇ = C Δpm,

where is the volume flow rate, C is a flow coefficient and m is the flow exponent. The flow coefficient is

C = CD A (2/ρ0)0.5,

where CD is the discharge coefficient, A is the cross section area and ρ0 is the mass density at the medium default pressure, temperature and humidity.

For turbulent flow, set m=1/2 and for laminar flow, set m=1. Large openings are characterized by values close to 0.5, while values near 0.65 have been found for small crack-like openings (Dols and Walton, 2002).

References

  • W. Stuart Dols and George N. Walton, CONTAMW 2.0 User Manual, Multizone Airflow and Contaminant Transport Analysis Software, Building and Fire Research Laboratory, National Institute of Standards and Technology, Tech. Report NISTIR 6921, November, 2002.
  • Michael Wetter. Multizone Airflow Model in Modelica. Proc. of the 5th International Modelica Conference, p. 431-440. Vienna, Austria, September 2006.

Parameters

TypeNameDefaultDescription
Realm (from PowerLawResistanceParameters)Flow exponent, m=0.5 for turbulent, m=1 for laminar
RealC (from Coefficient_V_flow)Flow coefficient, C = V_flow/ dp^m
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
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
Orifice characteristics
Modelica.Units.SI.AreaAArea of orifice
RealCD0.65Discharge coefficient

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)

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
Modelica.Units.SI.VelocityvV_flow/AAverage velocity

Revisions

  • February 2, 2022, by Michael Wetter:
    Revised implementation.
    This is for IBPSA, #1436.
  • Apr 6, 2021, by Klaas De Jonge:
    Changes due to changes in the baseclass, velocity is now a top-level variable.
  • June 27, 2018, by Michael Wetter:
    Corrected old parameter annotation.
  • June 24, 2018, by Michael Wetter:
    Removed parameter lWet as it is only used to compute the Reynolds number, and the Reynolds number is not used by this model. Also removed the variable Re for the Reynolds number.
    This change is non-backward compatible.
    This is for IBPSA, #932.
  • May 30, 2018, by Michael Wetter:
    Improved documentation for IBPSA, #546.
  • October 8, 2013 by Michael Wetter:
    Changed the parameter useConstantDensity to useDefaultProperties to use consistent names within this package. A conversion script can be used to update this parameter.
  • December 6, 2011 by Michael Wetter:
    Replaced rho with rho_nominal because rho is computed in an equation section and not in the initial equation section.
  • July 20, 2010 by Michael Wetter:
    Migrated model to Modelica 3.1 and integrated it into the Buildings library.
  • February 4, 2005 by Michael Wetter:
    Released first version.