modelMultizone

Multizone model

Extends from AixLib.ThermalZones.ReducedOrder.Multizone.BaseClasses.PartialMultizone (Partial model for multizone models).

Information

This is a ready-to-use multizone model with a variable number of thermal zones. It defines connectors and a replaceable vector of AixLib.ThermalZones.ReducedOrder.ThermalZone models. Most connectors are conditional to allow conditional modifications according to parameters or to pass-through conditional removements in AixLib.ThermalZones.ReducedOrder.ThermalZone and subsequently in AixLib.ThermalZones.ReducedOrder.RC.FourElements.

Moisture and CO2 balances are conditional submodels which can be activated by setting use_moisture_balance or use_C_flow true.

Typical use and important parameters

The model needs parameters describing general properties of the building (indoor air volume, net floor area, overall surface area) and a vector with length of number of zones containing AixLib.DataBase.ThermalZones.ZoneBaseRecord records to define zone properties. The user can redeclare the thermal zone model choosing from AixLib.ThermalZones.ReducedOrder.ThermalZone. Further parameters for medium, initialization and dynamics originate from AixLib.Fluid.Interfaces.LumpedVolumeDeclarations. A typical use case is a simulation of a multizone building for district simulations where the model is connected via heat ports and fluid ports to a heating system. The multizone model serves as boundary condition for the heating system and calculates the building's reaction to external and internal heat sources.

References

For automatic generation of thermal zone and multizone models as well as for datasets, see https://github.com/RWTH-EBC/TEASER

  • German Association of Engineers: Guideline VDI 6007-1, March 2012: Calculation of transient thermal response of rooms and buildings - Modelling of rooms.
  • Lauster, M.; Teichmann, J.; Fuchs, M.; Streblow, R.; Mueller, D. (2014): Low order thermal network models for dynamic simulations of buildings on city district scale. In: Building and Environment 73, p. 223–231. DOI: 10.1016/j.buildenv.2013.12.016.

Examples

See AixLib.ThermalZones.ReducedOrder.Examples.Multizone.

Parameters

TypeNameDefaultDescription
IntegerbuildingID (from PartialMultizone)Unique identifier of the building
Modelica.Units.SI.VolumeVAir (from PartialMultizone)Indoor air volume of building
Modelica.Units.SI.AreaABuilding (from PartialMultizone)Net floor area of building
Modelica.Units.SI.AreaASurTot (from PartialMultizone)Total surface area of building walls and windows (including interior walls)
IntegernumZones (from PartialMultizone)Number of zones
IntegernZonCon (from PartialMultizone)1Actual number of adjacent zone connectors
Integer[max(nZonCon, 1),2]zonConPaiArr (from PartialMultizone)fill(1, max(nZonCon, 1), 2)List of pairs of interzonal element indices to connect, each index pointing to a concatenated array of all ThermalZones' interzonal element ports
AixLib.DataBase.ThermalZones.ZoneBaseRecord[numZones]zoneParam (from PartialMultizone)Setup for zones
Booleanuse_izeCon (from PartialMultizone)falseConsider heat flow connection between interzonal elements of thermal zones by setting true
Booleanuse_MechanicalAirExchange (from PartialMultizone)trueConsider mechanical ventilation by setting true
Booleanuse_NaturalAirExchange (from PartialMultizone)use_MechanicalAirExchangeConsider natural ventilation and infiltration by setting true
IntegerinternalGainsMode (from PartialMultizone)Decides which internal gains model for persons is used
Dynamics › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamics (from LumpedVolumeDeclarations)Modelica.Fluid.Types.Dynamics.DynamicFreeInitialType of energy balance: dynamic (3 initialization options) or steady state
Modelica.Fluid.Types.DynamicssubstanceDynamics (from LumpedVolumeDeclarations)energyDynamicsType of independent mass fraction balance: dynamic (3 initialization options) or steady state
Modelica.Fluid.Types.DynamicstraceDynamics (from LumpedVolumeDeclarations)energyDynamicsType of trace substance balance: dynamic (3 initialization options) or steady state
Advanced › Dynamics
Modelica.Fluid.Types.DynamicsmassDynamics (from LumpedVolumeDeclarations)energyDynamicsType of mass balance: dynamic (3 initialization options) or steady state, must be steady state if energyDynamics is steady state
Initialization
Medium.AbsolutePressurep_start (from LumpedVolumeDeclarations)Medium.p_defaultStart value of pressure
Medium.TemperatureT_start (from LumpedVolumeDeclarations)Medium.T_defaultStart value of temperature
Medium.MassFraction[Medium.nX]X_start (from LumpedVolumeDeclarations)Medium.X_defaultStart value of mass fractions m_i/m
Medium.ExtraProperty[Medium.nC]C_start (from LumpedVolumeDeclarations)fill(0, Medium.nC)Start value of trace substances
Medium.ExtraProperty[Medium.nC]C_nominal (from LumpedVolumeDeclarations)fill(1E-2, Medium.nC)Nominal value of trace substances. (Set to typical order of magnitude.)
Dynamics
RealmSenFac (from LumpedVolumeDeclarations)1Factor for scaling the sensible thermal mass of the volume
General › Ports
IntegernPorts (from PartialMultizone)0Number of fluid ports
CO2
Booleanuse_C_flow (from PartialMultizone)falseSet to true to enable input connector for trace substance
Modelica.Units.SI.MassFractionXCO2_amb (from PartialMultizone)6.12157E-4Massfraction of CO2 in atmosphere (equals 403ppm)
Modelica.Units.SI.AreaareaBod (from PartialMultizone)1.8Body surface area source SIA 2024:2015
Modelica.Units.SI.DensityOfHeatFlowRatemetOnePerSit (from PartialMultizone)58Metabolic rate of a relaxed seated person [1 Met = 58 W/m^2]
Moisture
Booleanuse_moisture_balance (from PartialMultizone)falseIf true, input connector QLat_flow is enabled and room air computes moisture balance
IdealHeaterCooler › Modes
BooleanrecOrSep (from PartialMultizone)trueUse record or seperate parameters
IdealHeaterCooler › Heater
BooleanHeater_on (from PartialMultizone)trueActivates the heater
Realh_heater (from PartialMultizone)0Upper limit controller output of the heater
Reall_heater (from PartialMultizone)0Lower limit controller output of the heater
RealKR_heater (from PartialMultizone)1000Gain of the heating controller
Modelica.Units.SI.TimeTN_heater (from PartialMultizone)1Time constant of the heating controller
IdealHeaterCooler › Cooler
BooleanCooler_on (from PartialMultizone)trueActivates the cooler
Realh_cooler (from PartialMultizone)0Upper limit controller output of the cooler
Reall_cooler (from PartialMultizone)0Lower limit controller output of the cooler
RealKR_cooler (from PartialMultizone)1000Gain of the cooling controller
Modelica.Units.SI.TimeTN_cooler (from PartialMultizone)1Time constant of the cooling controller
Moisture › Pools
Booleanuse_pools_tot (from PartialMultizone)falseuse swimming pools within at least one zone of the multizone

Connectors

TypeNameDefaultDescription
Modelica.Blocks.Interfaces.RealInput[3*numZones]intGains (from PartialMultizone)Input profiles for internal gains persons, machines, light
Modelica.Blocks.Interfaces.RealOutput[numZones]TAir (from PartialMultizone)Indoor air temperature
Modelica.Blocks.Interfaces.RealOutput[numZones]TRad (from PartialMultizone)Mean indoor radiation temperature
BoundaryConditions.WeatherData.BusweaBus (from PartialMultizone)Weather data bus
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a[size(zone, 1)]intGainsConv (from PartialMultizone)Convective internal gains
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a[size(zone, 1)]intGainsRad (from PartialMultizone)Radiative internal gains
Modelica.Blocks.Interfaces.RealInput[numZones]TSetHeat (from PartialMultizone)Set point for heater - used only if zoneParam[i].HeaterOn is true
Modelica.Blocks.Interfaces.RealInput[numZones]TSetCool (from PartialMultizone)Set point for cooler - used only if zoneParam[i].CoolerOn is true
Modelica.Blocks.Interfaces.RealOutput[numZones]PHeater (from PartialMultizone)Power for heating
Modelica.Blocks.Interfaces.RealOutput[numZones]PCooler (from PartialMultizone)Power for cooling
Modelica.Blocks.Interfaces.RealOutput[numZones,3]QIntGains_flow (from PartialMultizone)Heat flow based on internal gains for each zone from lights[1], machines[2], and persons[3]
Modelica.Blocks.Interfaces.RealInputtimeOpe (from PartialMultizone)Input profiles for opening hours for pools
Modelica.Blocks.Interfaces.RealInput[numZones]ventTempVentilation and infiltration temperature
Modelica.Blocks.Interfaces.RealInput[numZones]ventRateVentilation and infiltration rate
Modelica.Blocks.Interfaces.RealInput[numZones]ventHumVentilation and infiltration humidity
Modelica.Blocks.Interfaces.RealOutput[size(zone, 1)]CO2ConCO2 concentration in the thermal zone in ppm
Modelica.Blocks.Interfaces.RealOutput[size(zone, 1)]X_wHumidity output

Components

TypeNameDefaultDescription
AixLib.ThermalZones.ReducedOrder.ThermalZone.ThermalZone[numZones]zone (from PartialMultizone)Thermal zone model
AixLib.ThermalZones.ReducedOrder.Multizone.BaseClasses.FlowArrayRearrangingizeArrCon (from PartialMultizone)Distributor for connection between adjacent zones

Revisions

  • November 20, 2020, by Katharina Breuer:
    Combine thermal zone models
  • August 27, 2020, by Katharina Breuer:
    Add co2 balance
  • April, 2019, by Martin Kremer:
    Add moisture balance
  • September 27, 2016, by Moritz Lauster:
    Reimplementation based on Annex60 and AixLib models.
  • June 22, 2015, by Moritz Lauster:
    First implementation.