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 AixLib.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 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 AixLib.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 AixLib.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
AixLib.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 | Medium in the component |