Model that is used as a container for an HVAC system that is to be exported as an FMU and that serves multiple zones.
To use this model as a container for an FMU, simply extend from this model, rather than instantiate it, and add your HVAC system. By extending from this model, the top-level signal connectors on the right stay at the top-level, and hence will be visible at the FMI interface. The example Buildings.Fluid.FMI.ExportContainers.Examples.FMUs.HVACZones shows how a simple HVAC system that serves two rooms can be implemented and exported as an FMU. The example Buildings.Fluid.FMI.ExportContainers.Validation.RoomHVAC shows how such an FMU can be connected to a room model that has signal flow.
The following two parameters need to be assigned by the user:
Set nZon to the number of thermal zones to which the
FMU will be connected. Set nPorts to the largest
number of fluid ports that the thermal zones has. For example, if
nZon=2 and zone 1 has one inlet and one outlet
(hence it has 2 ports), and zone 2 has one inlets and two
outlets (hence it has 3 ports), then set nPorts=3.
This will add more fluid ports than are needed for zone 1,
but this causes no overhead if they are not connected.
The conversion between the fluid ports and signal ports is done
in the HVAC adapter hvacAda. This adapter has a vector
of fluid ports called ports. The supply and return air
ducts, including any resistance model for the inlet diffusor or
exhaust grill, need to be connected to these ports. Also, if a
thermal zone has interzonal air exchange or air infiltration, these
flows need to be connected to ports. This model
outputs at the port fluPor the mass flow rate for each
flow that is connected to ports, together with its
temperature, water vapor mass fraction per total mass of the air
(not per kg dry air), and trace substances. These quantities are
always as if the flow enters the room, even if the flow is zero or
negative. If a medium has no moisture, e.g., if
Medium.nXi=0, or if it has no trace substances, e.g.,
if Medium.nC=0, then the output signal for these
properties are removed. These quantities are always as if the flow
enters the room, even if the flow is zero or negative. Thus, a
thermal zone model that uses these signals to compute the heat
added by the HVAC system need to implement an equation such as
Qsen = max(0, ṁsup) cp (Tsup - Tair,zon),
where Qsen is the sensible heat flow rate
added to the thermal zone, ṁsup is the supply air
mass flow rate from the port fluPor (which is negative
if it is an exhaust), cp is the specific heat
capacity at constant pressure, Tsup is the supply
air temperature and Tair,zon is the zone air
temperature. Note that without the max(·, ·), the energy
balance would be wrong.
The input signals of this model are the radiative temperature of
each zone. The the zone air temperatures, the water vapor mass
fractions per total mass of the air (unless
Medium.nXi=0) and trace substances (unless
Medium.nC=0) are obtained from the connector
fluPor.backward. The outflowing fluid stream(s) at the
port ports will be at the states obtained from
fluPor.backward. For any given izon ∈
{1, ..., nzon}, for each iports ∈ {1,
..., nports} all fluid streams at port
ports[izon, iports] are at the
same pressure. For convenience, the instance hvacAda
also outputs the properties obtained from
fluPor.backward. These can be used to connect a
controller. The properties are available for each flow path in
fluPor.backward. For a thermal zone with mixed air,
these are all equal, while for a stratified room model, they can be
different.
See Buildings.Fluid.FMI.ExportContainers.Examples.FMUs.HVACZones for a model that uses this model.
For models that only have one thermal zone connected to the HVAC system, use the simpler model Buildings.Fluid.FMI.ExportContainers.HVACZone.
The mass flow rates at ports sum to zero, hence
this model conserves mass for each thermal zone.
This model does not impose any pressure, other than, for any
given izon ∈ {1, ..., nzon} and for
each j,k ∈ {1, ..., nports}, setting the pressure
of ports[izon, j].p = ports[izon,
k].p to be the same. The reason is that setting a pressure
can lead to non-physical system models, for example if a mass flow
rate is imposed and the HVAC system is connected to a model that
sets a pressure boundary condition such as Buildings.Fluid.Sources.Outside.
Also, setting a pressure would make it impossible to use multiple
instances of this model (one for each thermal zone) and build in
Modelica an airflow network model with pressure driven mass flow
rates.
The model has no pressure drop. Hence, the pressure drop of an
air diffuser or of an exhaust grill needs to be modelled in models
that are connected to ports.
| Name | Description |
|---|---|
| Medium in the component |