The model Buildings.ThermalZones.Detailed.CFD is a room model in which the room air heat and mass balance is computed using the Computational Fluid Dynamics (CFD).
The model is identical with Buildings.ThermalZones.Detailed.MixedAir, except for the following points:
sensorName.
This parameter is an array of strings. The same strings must be used
in the CFD input file when declaring the sensor in order to send the
CFD results to the output signal of Modelica.
ports using the parameter
portName.
This parameter is an array of strings. The same strings must be used
in the CFD input file when declaring the inlet and outlet boundary conditions.
The following conventions are made:
The port heaPorAir contains the average room air temperature, defined as
Ta = 1 ⁄ V ∫V T(dV) dV,
where Ta is the average room air temperature, V is the room air volume and T(dV) is the room air temperature in the control volume dV. The average room air temperature Ta is computed by the CFD program.
heaPorAir, then the heat will be distributed to all
cells. The amount of heat flow rate that each cell exchanges with heaPorAir is
proportional to its volume.
The quantities that are exchanged between the programs are defined as follows:
Xi.
It does not do a moisture balance for each cell.
However, for trace substances C, CFD does a contaminant balance for each cell
and return C_outflow to be the contaminant concentration of that cell.
This section explains how the data exchange between Modelica and CFD is implemented. The section is only of interest to developers. Users may skip this section.
Interfacing CFD with the Modelica room air heat and mass balance is done in the model Buildings.ThermalZones.Detailed.BaseClasses.CFDAirHeatMassBalance. To interface variables from Modelica and CFD, the following classes and conventions are used in this model.
ports,
then no variables are exchanged for this quantity with the block cfd.
bouCon, two of these ports are conditionally removed.
This allows to use the parameter bouCon to specify whether
the surface should be used with a temperature or a heat flow rate
boundary condition.
Therefore, the inputs and outputs to the instance cfd
are either temperatures or heat flow rates.
The parameter surIde of this model, which is also
propagated to the instance cfd, declares what
type of boundary condition is used.
ports are exchanged with the CFD block
through the instance intFlu.
This interface is implemented in
Buildings.ThermalZones.Detailed.BaseClasses.CFDFluidInterface.
Its output and input signals are connected to the cfd block as follows:
cfd block is a vector
[p, m_flow[nPorts], T_inflow[nPorts], X_inflow[nPorts*Medium.nXi],
C_inflow[nPorts*Medium.nC]].
The quantity p is the total pressure of the fluid ports (all fluid ports have the same
total pressure).
Therefore, the flow resistance of the diffusor or exhaust grill must be computed in the
Modelica HVAC system that is connected to the room model.
The quantities X_inflow and C_inflow (or X_inflow and C_inflow)
are vectors with components X_inflow[1:Medium.nXi] and C_inflow[1:Medium.nC].
For example, for moist air, X_inflow has one element which is equal to the mass fraction of air,
relative to the total air mass and not the dry air.
[T_outflow[nPorts], X_outflow[nPorts*Medium.nXi], C_outflow[nPorts*Medium.nC]].
The quantities *_outflow are the fluid properties of the cell to which the port is
connected.
Medium.nXi=0 (e.g., for dry air) or Medium.nC=0,
then these signals are not present as input/output signals of the CFD block.
The data exchange with the CFD interface is done through the instance
cfd, and implemented in
Buildings.ThermalZones.Detailed.BaseClasses.CFDExchange.
This block exchanges the following data with the CFD simulation:
During the initialzation, the following data are sent from Modelica to CFD:
name.
The orders of elements in this array are as follows:
nConExt elements are the names of the exterior constructions
declared as datConExt. The order is the same as
in the declaration of datConExt.
nConExtWin elements are the names of the exterior constructions
declared as datConExtWin. These constructions embed windows
and a frame. Therefore, what follows are
nConExtWin elements where each string is the same as above,
but ' (glass, unshaded)' has been appended,
then -- if and only if the window has a shade --
nConExtWin elements follow with
' (glass, shaded)' appended, and,
finally,
nConExtWin elements follow with ' (frame)' appended.
nConPar elements for the surface a of datConPar.
To these names, the string ' (surface a)' is appended.
Next, there are nConPar elements with ' (surface b)' appended.
nConBou elements for the surfaces of datConBou.
nSurBou elements for the surfaces of nSurBou.
A,
an array for the surface tilt til
and the type of the boundary conditions bouCon for each of these surfaces.
If bouCon[i] = 1,
then temperature is sent from Modelica to CFD.
If bouCon[i] = 2, then
heat flow rate is sent from Modelica to CFD.
sensorName that contains the names of all sensors,
in the same order as they are declared when instantiating the model
Buildings.ThermalZones.Detailed.CFD.
If no sensors are declared in Modelica, then this array will have zero elements.
How many sensor are declared in Modelica can be checked through the variable nSen,
which is sent from Modelica to CFD.
AirProperty that contains the properties of the air.
The orders of elements in this array are as follows:
During the time integration, and array u is sent from Modelica to CFD, and Modelica
receives an array y from CFD.
The elements of the array u are as follows:
name. The units are [K] or [W].
The array bouCon that is sent during the
initialization declares the type of boundary
condition.
There are nSur elements for surfaces.
nConExtWin
elements are the shading control signals. u=0 means
that the shade is not deployed,
and u=1 means that the shade is
completely deployed (blocking solar radiation).
If there is no window in the room, then these elements are not present.
nConExtWin
elements are the radiations in [W] that are absorbed by the
respective shades.
If there is no window in the room, then these elements are not present.
nPorts elements are the mass flow rates
into the room in [kg/s].
A positive value is used if the air flows into the room,
otherwise the value is negative.
The first element is connected to ports[1], the second to
ports[2] etc.
nPorts elements are the air temperatures
that the medium has
if it were flowing into the room, e.g., the "inflowing medium"
computed based on inStream(h_outflow).
nPorts*Medium.nXi elements are the
species concentration of the inflowing
medium.
The first Medium.nXi elements are for port 1, then for
port 2 etc.
The units are in [kg/kg] total mass, and not in [kg/kg] dry air.
nPorts*Medium.nC elements are the trace substances
of the inflowing
medium.
The first Medium.nC elements are for port 1, then for
port 2 etc.
y that is sent from CFD to Modelica are as follows:
name.
The array bouCon that is sent during the
initialization declares the type of boundary
condition.
If bouCon[i] = 1, then heat flow rate in [W]
is sent from CFD to Modelica.
If bouCon[i] = 2, then temperature in [K]
is sent from CFD to Modelica.
There are nSur elements for surfaces.
nConExtWin elements are the temperature of the
shade in [K].
nPorts elements are the air temperatures
in [K]
of the cells that are connected to the inlet or outlet diffusor
of ports[1], ports[2], etc..
nPorts*Medium.nXi elements are the
species concentration of the cells to which the ports are
connected.
The first Medium.nXi elements are for port 1, then for
port 2 etc.
The units are in [kg/kg] total mass, and not in [kg/kg] dry air.
nPorts*Medium.nC elements are the trace substances
of the cells to which the ports are connected to.
The first Medium.nC elements are for port 1, then for
port 2 etc.
Wangda Zuo, Michael Wetter, Wei Tian, Dan Li, Mingang Jin, Qingyan Chen.
Coupling Indoor Airflow, HVAC, Control and Building Envelope Heat Transfer in the Modelica Buildings Library.
Journal of Building Performance Simulation, 9(4), pp. 366-381, 2016.
http://dx.doi.org/10.1080/19401493.2015.1062557.
Wangda Zuo, Michael Wetter, Dan Li, Mingang Jin, Wei Tian, Qingyan Chen.
Coupled Simulation of Indoor Environment, HVAC and Control System by Using Fast Fluid Dynamics and the Modelica Buildings Library.
Proc. of the 2014 ASHRAE/IBPSA-USA Building Simulation Conference, Atlanta, GA, September 10-12, 2014.