modelOrifice
Orifice
Extends from Buildings.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 V̇ 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
| Type | Name | Default | Description |
|---|---|---|---|
| Real | m (from PowerLawResistanceParameters) | Flow exponent, m=0.5 for turbulent, m=1 for laminar | |
| Real | C (from Coefficient_V_flow) | Flow coefficient, C = V_flow/ dp^m | |
| Assumptions | |||
| Boolean | allowFlowReversal (from PartialTwoPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | m_flow_nominal (from PartialTwoPortInterface) | Nominal mass flow rate | |
| Advanced | |||
| Modelica.Units.SI.MassFlowRate | m_flow_small (from PartialTwoPortInterface) | 1E-4*abs(m_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Boolean | forceErrorControlOnFlow (from ErrorControl) | true | Flag to force error control on m_flow. Set to true if interested in flow rate |
| Boolean | homotopyInitialization (from PartialOneWayFlowElement) | true | = true, use homotopy method |
| Boolean | useDefaultProperties (from PartialOneWayFlowElement) | true | Set to false to use density and viscosity based on actual medium state, rather than using default values |
| Modelica.Units.SI.PressureDifference | dp_turbulent (from PartialOneWayFlowElement) | 0.1 | Pressure difference where laminar and turbulent flow relation coincide. Recommended = 0.1 |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialTwoPortInterface) | false | = true, if actual temperature at port is computed |
| Orifice characteristics | |||
| Modelica.Units.SI.Area | A | Area of orifice | |
| Real | CD | 0.65 | Discharge coefficient |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a (from PartialTwoPort) | Fluid connector a (positive design flow direction is from port_a to port_b) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b (from PartialTwoPort) | Fluid connector b (positive design flow direction is from port_a to port_b) |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.MassFlowRate | m_flow (from PartialTwoPortInterface) | port_a.m_flow | Mass flow rate from port_a to port_b (m_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp (from PartialTwoPortInterface) | port_a.p - port_b.p | Pressure difference between port_a and port_b |
| Medium.ThermodynamicState | sta_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.ThermodynamicState | sta_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.VolumeFlowRate | V_flow (from PartialOneWayFlowElement) | m_flow/rho | Volume flow rate through the component |
| Modelica.Units.SI.Density | rho (from PartialOneWayFlowElement) | Fluid density at port_a | |
| Modelica.Units.SI.Velocity | v | V_flow/A | Average 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 parameterlWetas it is only used to compute the Reynolds number, and the Reynolds number is not used by this model. Also removed the variableRefor 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 parameteruseConstantDensitytouseDefaultPropertiesto use consistent names within this package. A conversion script can be used to update this parameter. -
December 6, 2011 by Michael Wetter:
Replacedrhowithrho_nominalbecauserhois computed in anequationsection and not in theinitial equationsection. -
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.