modelDoorOperable
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, V̇clo.
The air flow rate for the closed door is computed as
V̇clo = Cclo ΔpmClo,
where V̇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
V̇ope is computed as described in
Buildings.Airflow.Multizone.DoorOpen
with the parameters CDOpe and mOpe.
The actual air flow rate is computed as
V̇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
| Type | Name | Default | Description |
|---|---|---|---|
| Assumptions | |||
| Boolean | allowFlowReversal1 (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1 |
| Boolean | allowFlowReversal2 (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2 |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | m1_flow_nominal (from PartialFourPortInterface) | Nominal mass flow rate | |
| Modelica.Units.SI.MassFlowRate | m2_flow_nominal (from PartialFourPortInterface) | Nominal mass flow rate | |
| Advanced | |||
| Medium1.MassFlowRate | m1_flow_small (from PartialFourPortInterface) | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Medium2.MassFlowRate | m2_flow_small (from PartialFourPortInterface) | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Modelica.Units.SI.PressureDifference | dp_turbulent (from Door) | 0.01 | Pressure difference where laminar and turbulent flow relation coincide |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialFourPortInterface) | false | = true, if actual temperature at port is computed |
| Geometry | |||
| Modelica.Units.SI.Length | wOpe (from Door) | 0.9 | Width of opening |
| Modelica.Units.SI.Length | hOpe (from Door) | 2.1 | Height of opening |
| Open door | |||
| Real | CDOpe | 0.65 | Discharge coefficient of open door |
| Real | mOpe | 0.5 | Flow exponent for door of open door |
| Closed door | |||
| Modelica.Units.SI.Area | LClo | Effective leakage area of closed door | |
| Real | mClo | 0.65 | Flow exponent for crack of closed door |
| Closed door rating conditions | |||
| Modelica.Units.SI.PressureDifference | dpCloRat | 4 | Pressure drop at rating condition of closed door |
| Real | CDCloRat | 1 | Discharge coefficient at rating conditions of closed door |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a1 (from PartialFourPort) | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b1 (from PartialFourPort) | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) | |
| Modelica.Fluid.Interfaces.FluidPort_a | port_a2 (from PartialFourPort) | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b2 (from PartialFourPort) | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) | |
| Modelica.Blocks.Interfaces.RealInput | y | Opening signal, 0=closed, 1=open |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Medium1.MassFlowRate | m1_flow (from PartialFourPortInterface) | port_a1.m_flow | Mass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp1 (from PartialFourPortInterface) | port_a1.p - port_b1.p | Pressure difference between port_a1 and port_b1 |
| Medium2.MassFlowRate | m2_flow (from PartialFourPortInterface) | port_a2.m_flow | Mass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp2 (from PartialFourPortInterface) | port_a2.p - port_b2.p | Pressure difference between port_a2 and port_b2 |
| Medium1.ThermodynamicState | sta_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.ThermodynamicState | sta_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.ThermodynamicState | sta_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.ThermodynamicState | sta_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.VolumeFlowRate | VAB_flow (from Door) | Volume flow rate from A to B if positive | |
| Modelica.Units.SI.VolumeFlowRate | VBA_flow (from Door) | Volume flow rate from B to A if positive | |
| Modelica.Units.SI.Velocity | vAB (from Door) | Average velocity from A to B | |
| Modelica.Units.SI.Velocity | vBA (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 ofVABp_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.