modelDoorOperable

Door model for bi-directional air flow between rooms that can be open or closed

Extends from Buildings.Airflow.Multizone.BaseClasses.Door (Partial door model for bi-directional flow).

Information

Model for bi-directional air flow through a large opening such as a door which can be opened or closed based on the control input signal y.

For the control input signal y=1, this model is identical to Buildings.Airflow.Multizone.DoorOpen, and for y=0, the door is assumed to be closed and the air flow rate is set to the air flow rate through the crack posed by the open door, clo.

The air flow rate for the closed door is computed as

clo = Cclo ΔpmClo,

where clo is the volume flow rate, Cclo is a flow coefficient and mClo is the flow exponent. The flow coefficient is

Cclo = Lclo CDCloRat ΔpRat(0.5-mClo) (2/ρ0)0.5,

where Lclo is the effective air leakage area, CDCloRat is the discharge coefficient at the reference condition, ΔpRat is the pressure drop at the rating condition, and ρ0 is the mass density at the medium default pressure, temperature and humidity.

The effective air leakage area Lclo can be obtained, for example, from the ASHRAE fundamentals (ASHRAE, 1997, p. 25.18). In the ASHRAE fundamentals, the effective air leakage area is based on a reference pressure difference of ΔpRat = 4 Pa and a discharge coefficient of CDCloRat = 1. A similar model is also used in the CONTAM software (Dols and Walton, 2002). Dols and Walton (2002) recommend to use for the flow exponent mClo=0.6 to mClo=0.7 if the flow exponent is not reported with the test results.

For the open door, the air flow rate ope is computed as described in Buildings.Airflow.Multizone.DoorOpen with the parameters CDOpe and mOpe.

The actual air flow rate is computed as

clo = (y-1) V̇clo + y V̇ope,

where y ∈ [0, 1] is the control signal. Note that for values of y that are different from 0 and 1, the model simply interpolates the air flow rate between a fully open and a fully closed door. In practice, the air flow rate would likely increase quickly if the door is slightly opened, and hence we do not claim that the model is accurate for values other than y = 0 and y = 1.

References

  • ASHRAE. ASHRAE Fundamentals, American Society of Heating, Refrigeration and Air-Conditioning Engineers, 1997.
  • Dols and Walton. 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.

Parameters

TypeNameDefaultDescription
Assumptions
BooleanallowFlowReversal1 (from PartialFourPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1
BooleanallowFlowReversal2 (from PartialFourPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2
Nominal condition
Modelica.Units.SI.MassFlowRatem1_flow_nominal (from PartialFourPortInterface)Nominal mass flow rate
Modelica.Units.SI.MassFlowRatem2_flow_nominal (from PartialFourPortInterface)Nominal mass flow rate
Advanced
Medium1.MassFlowRatem1_flow_small (from PartialFourPortInterface)1E-4*abs(m1_flow_nominal)Small mass flow rate for regularization of zero flow
Medium2.MassFlowRatem2_flow_small (from PartialFourPortInterface)1E-4*abs(m2_flow_nominal)Small mass flow rate for regularization of zero flow
Modelica.Units.SI.PressureDifferencedp_turbulent (from Door)0.01Pressure difference where laminar and turbulent flow relation coincide
Advanced › Diagnostics
Booleanshow_T (from PartialFourPortInterface)false= true, if actual temperature at port is computed
Geometry
Modelica.Units.SI.LengthwOpe (from Door)0.9Width of opening
Modelica.Units.SI.LengthhOpe (from Door)2.1Height of opening
Open door
RealCDOpe0.65Discharge coefficient of open door
RealmOpe0.5Flow exponent for door of open door
Closed door
Modelica.Units.SI.AreaLCloEffective leakage area of closed door
RealmClo0.65Flow exponent for crack of closed door
Closed door rating conditions
Modelica.Units.SI.PressureDifferencedpCloRat4Pressure drop at rating condition of closed door
RealCDCloRat1Discharge coefficient at rating conditions of closed door

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_a1 (from PartialFourPort)Fluid connector a1 (positive design flow direction is from port_a1 to port_b1)
Modelica.Fluid.Interfaces.FluidPort_bport_b1 (from PartialFourPort)Fluid connector b1 (positive design flow direction is from port_a1 to port_b1)
Modelica.Fluid.Interfaces.FluidPort_aport_a2 (from PartialFourPort)Fluid connector a2 (positive design flow direction is from port_a2 to port_b2)
Modelica.Fluid.Interfaces.FluidPort_bport_b2 (from PartialFourPort)Fluid connector b2 (positive design flow direction is from port_a2 to port_b2)
Modelica.Blocks.Interfaces.RealInputyOpening signal, 0=closed, 1=open

Components

TypeNameDefaultDescription
Medium1.MassFlowRatem1_flow (from PartialFourPortInterface)port_a1.m_flowMass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp1 (from PartialFourPortInterface)port_a1.p - port_b1.pPressure difference between port_a1 and port_b1
Medium2.MassFlowRatem2_flow (from PartialFourPortInterface)port_a2.m_flowMass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp2 (from PartialFourPortInterface)port_a2.p - port_b2.pPressure difference between port_a2 and port_b2
Medium1.ThermodynamicStatesta_a1 (from PartialFourPortInterface)if allowFlowReversal1 then Medium1.setState_phX(port_a1.p, noEvent(actualStream(port_a1.h_outflow)), noEvent(actualStream(port_a1.Xi_outflow))) else Medium1.setState_phX(port_a1.p, inStream(port_a1.h_outflow), inStream(port_a1.Xi_outflow))Medium properties in port_a1
Medium1.ThermodynamicStatesta_b1 (from PartialFourPortInterface)if allowFlowReversal1 then Medium1.setState_phX(port_b1.p, noEvent(actualStream(port_b1.h_outflow)), noEvent(actualStream(port_b1.Xi_outflow))) else Medium1.setState_phX(port_b1.p, port_b1.h_outflow, port_b1.Xi_outflow)Medium properties in port_b1
Medium2.ThermodynamicStatesta_a2 (from PartialFourPortInterface)if allowFlowReversal2 then Medium2.setState_phX(port_a2.p, noEvent(actualStream(port_a2.h_outflow)), noEvent(actualStream(port_a2.Xi_outflow))) else Medium2.setState_phX(port_a2.p, inStream(port_a2.h_outflow), inStream(port_a2.Xi_outflow))Medium properties in port_a2
Medium2.ThermodynamicStatesta_b2 (from PartialFourPortInterface)if allowFlowReversal2 then Medium2.setState_phX(port_b2.p, noEvent(actualStream(port_b2.h_outflow)), noEvent(actualStream(port_b2.Xi_outflow))) else Medium2.setState_phX(port_b2.p, port_b2.h_outflow, port_b2.Xi_outflow)Medium properties in port_b2
Modelica.Units.SI.VolumeFlowRateVAB_flow (from Door)Volume flow rate from A to B if positive
Modelica.Units.SI.VolumeFlowRateVBA_flow (from Door)Volume flow rate from B to A if positive
Modelica.Units.SI.VelocityvAB (from Door)Average velocity from A to B
Modelica.Units.SI.VelocityvBA (from Door)Average velocity from B to A

Revisions

  • September 19, 2025, by Michael Wetter:
    Revised implementation to improve computing efficiency if flow exponent is 0.5.
    This is for IBPSA, #2043.
  • June 11, 2021, by Michael Wetter:
    Removed duplicate declaration of VABp_flow.
    This is for #1496.
  • January 22, 2020, by Michael Wetter:
    Revised buoyancy-driven flow.
  • October 6, 2020, by Michael Wetter:
    First implementation for #1353.