Model that is used as a container for an HVAC system that is to be exported as an FMU and that serves a single zone.

Typical use and important parameters

To use this model as a container for an FMU, 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.HVACZone shows how a simple HVAC system 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 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 needs 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 zone radiative temperature. The the zone air temperature, the water vapor mass fraction 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. All fluid streams at port ports 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.HVACZone for a model that uses this model.

For models that multiple thermal zones connected to the HVAC system, use the model Buildings.Fluid.FMI.ExportContainers.HVACZones.

Assumption and limitations

The mass flow rates at ports sum to zero, hence this model conserves mass.

This model does not impose any pressure, other than setting the pressure of all fluid connections to ports to be equal. 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 Medium in the component


Generated at 2021-04-19T01:01:50Z by OpenModelicaOpenModelica 1.18.0~dev-228-gf450566 using GenerateDoc.mos