modelThermalZone

Thermal zone containing moisture balance

Extends from AixLib.ThermalZones.ReducedOrder.ThermalZone.BaseClasses.PartialThermalZone (Partial model for thermal zone models).

Information

Overview

Comprehensive ready-to-use model for thermal zones, combining caclulation core, handling of solar radiation and internal gains. Core model is a AixLib.ThermalZones.ReducedOrder.RC.FiveElements model. Conditional removals of the core model are passed-through and related models on thermal zone level are as well conditional. All models for solar radiation are part of IBPSA library. Internal gains are part of AixLib.

Models for infiltration and natural ventilation, moisture and CO2 balance are conditional and can be activated by setting the parameters true. Moisture is considered in internal gains.

Typical use and important parameters

All parameters are collected in one AixLib.DataBase.ThermalZones.ZoneBaseRecord record. Further parameters for medium, initialization and dynamics originate from AixLib.Fluid.Interfaces.LumpedVolumeDeclarations. A typical use case is a single thermal zone connected via heat ports and fluid ports to a heating system. The thermal zone model serves as boundary condition for the heating system and calculates the room's reaction to external and internal heat sources. The model is used as thermal zone core model in AixLib.ThermalZones.ReducedOrder.Multizone.BaseClasses.PartialMultizone

Dependent on the paramter internalGainsMode different models for internal gains by humans will be used. For a correct moisture balance the paramter should be set to 3. Otherwise no moisture gain from persons will be considered. Using CO2 balance trace substances in the media package must be activated. For example AixLib.Media.Air(extraPropertiesNames={"C_Flow"}) can be used.

Assumptions

There is no moisture exchange through the walls or windows. Only moisture exchange is realized by the internal gains, through the fluid ports and over the ventilation moisture. This leads to a steady increase of moisture in the room, when there is no ventilation.

The moisture balance was formulated considering the latent heat with the aim, that the temperature is not influenced by the moisture.For this reason every humidity source is assumed to be in gaseous state.

Accuracy

Due to usage of constant heat capacaty for steam and constant heat of evaporation, the temperature is slightly influenced. Comparing the ThermalZone with dry air to the ThermalZone with moist air, the maximum difference between the simulated air temperature in the zone is 0.07 K for weather data from San Francisco and using the zoneParam for office buildings. See therefore: ExampleComparisonMoistAndDryAir

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.ThermalZone.

Parameters

TypeNameDefaultDescription
DataBase.ThermalZones.ZoneBaseRecordzoneParam (from PartialThermalZone)Choose setup for this zone
IntegerinternalGainsMode1decides which internal gains model for persons is used
Booleanuse_MechanicalAirExchangefalseConsider mechanical ventilation by setting true
Booleanuse_NaturalAirExchangeuse_MechanicalAirExchangeConsider natural infiltration and ventilation by setting true
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 PartialThermalZone)0Number of fluid ports
IntegernPortsROM (from PartialThermalZone)if use_pools then nPorts + 2 else nPortsNumber of fluid ports
Moisture › Pools
Booleanuse_pools (from PartialThermalZone)falseIf true, pool model and corresponding connections are enabled
IntegernPools1Number of pools in thermal zone
AixLib.DataBase.Pools.IndoorSwimmingPoolBaseDataDefinition[nPools]poolParamfill(DataBase.Pools.IndoorSwimmingPoolDummy(), nPools)Setup for swimming pools
AixLib.DataBase.Walls.WallBaseDataDefinition[nPools]poolWallParamfill(DataBase.Walls.ASHRAE140.DummyDefinition(), nPools)Setup for swimming pool walls
CO2
Booleanuse_C_flow (from PartialThermalZone)falseSet to true to enable input connector for trace substance
Modelica.Units.SI.MassFractionXCO2_amb6.12157E-4Massfraction of CO2 in atmosphere (equals 403ppm)
Modelica.Units.SI.AreaareaBod1.8Body surface area source SIA 2024:2015
Modelica.Units.SI.DensityOfHeatFlowRatemetOnePerSit58Metabolic rate of a relaxed seated person [1 Met = 58 W/m^2]
Moisture
Booleanuse_moisture_balance (from PartialThermalZone)falseIf true, input connector QLat_flow is enabled and room air computes moisture balance
IdealHeaterCooler › Modes
BooleanrecOrSeptrueUse record or seperate parameters
IdealHeaterCooler › Heater
BooleanHeater_ontrueActivates the heater
Realh_heater0Upper limit controller output of the heater
Reall_heater0Lower limit controller output of the heater
RealKR_heater1000Gain of the heating controller
Modelica.Units.SI.TimeTN_heater1Time constant of the heating controller
IdealHeaterCooler › Cooler
BooleanCooler_ontrueActivates the cooler
Realh_cooler0Upper limit controller output of the cooler
Reall_cooler0Lower limit controller output of the cooler
RealKR_cooler1000Gain of the cooling controller
Modelica.Units.SI.TimeTN_cooler1Time constant of the cooling controller

Connectors

TypeNameDefaultDescription
Modelica.Blocks.Interfaces.RealInput[3]intGains (from PartialThermalZone)Input profiles for internal gains persons, machines, light
Modelica.Blocks.Interfaces.RealOutputTAir (from PartialThermalZone)Indoor air temperature
Modelica.Blocks.Interfaces.RealOutputTRad (from PartialThermalZone)Mean indoor radiation temperature
BoundaryConditions.WeatherData.BusweaBus (from PartialThermalZone)Weather data bus
Modelica.Fluid.Vessels.BaseClasses.VesselFluidPorts_b[nPorts]ports (from PartialThermalZone)Auxilliary fluid inlets and outlets to indoor air volume
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_aintGainsConv (from PartialThermalZone)Convective internal gains
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_aintGainsRad (from PartialThermalZone)Radiative internal gains
Modelica.Blocks.Interfaces.RealInputTSetCoolSet point for cooler
Modelica.Blocks.Interfaces.RealInputTSetHeatSet point for heater
Modelica.Blocks.Interfaces.RealOutputPHeaterPower for heating
Modelica.Blocks.Interfaces.RealOutputPCoolerPower for cooling
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a[zoneParam.nIze]izeHeaFlowsurface heat port for nz borders - inner surface if zone index is higher than index of other zone, outer if lower
Modelica.Blocks.Interfaces.RealInputventTempVentilation and infiltration temperature
Modelica.Blocks.Interfaces.RealInputventRateVentilation and infiltration rate
Modelica.Blocks.Interfaces.RealOutputX_wHumidity output
Modelica.Blocks.Interfaces.RealInputventHumVentilation and infiltration humidity
Modelica.Blocks.Interfaces.RealOutputCO2ConCO2 concentration in the thermal zone in ppm
Modelica.Blocks.Interfaces.RealOutput[3]QIntGains_flowHeat flow based on internal gains from lights[1], machines[2], and persons[3]
Modelica.Blocks.Interfaces.RealInputtimeOpeInput profiles for opening hours for pools

Components

TypeNameDefaultDescription
AixLib.ThermalZones.ReducedOrder.RC.FiveElementsROM (from PartialThermalZone)RC calculation core
AixLib.BoundaryConditions.InternalGains.Humans.HumanSensibleHeatTemperatureDependenthumanSenHeaDependent
AixLib.BoundaryConditions.InternalGains.Humans.HumanSensibleHeatTemperatureIndependenthumanSenHeaIndependent
AixLib.BoundaryConditions.InternalGains.Humans.HumanTotalHeatTemperatureDependenthumanTotHeaDependent
AixLib.BoundaryConditions.InternalGains.Machines.MachinesAreaSpecificmachinesSenHeaInternal gains from machines
AixLib.BoundaryConditions.InternalGains.Lights.LightsAreaSpecificlightsInternal gains from light
corGcorGModCorrection factor for solar transmission
EquivalentAirTemperature.VDI6007WithWindoweqAirTempWallComputes equivalent air temperature
EquivalentAirTemperature.VDI6007eqAirTempRoofComputes equivalent air temperature for roof
Modelica.Blocks.Sources.Constant[zoneParam.nOrientationsRoof]constSunblindRoofSets sunblind signal to zero (open)
BoundaryConditions.SolarIrradiation.DiffusePerez[zoneParam.nOrientations]HDifTilWallCalculates diffuse solar radiation on titled surface for both directions
BoundaryConditions.SolarIrradiation.DirectTiltedSurface[zoneParam.nOrientations]HDirTilWallCalculates direct solar radiation on titled surface for both directions
BoundaryConditions.SolarIrradiation.DirectTiltedSurface[zoneParam.nOrientationsRoof]HDirTilRoofCalculates direct solar radiation on titled surface for roof
Utilities.Sources.HeaterCooler.HeaterCoolerPIheaterCoolerHeater Cooler with PI control
Utilities.Sources.HeaterCooler.HeaterCoolerControllerheaterCoolerController
SolarGain.SimpleExternalShadingsimpleExternalShading
Controls.VentilationController.VentilationControllerventContCalculates natural venitlation and infiltration
Utilities.Psychrometrics.MixedTemperaturemixedTempMixes temperature of infiltration flow and mechanical ventilation flow
HighOrder.Components.DryAir.VarAirExchangeairExcHeat flow due to ventilation
Modelica.Blocks.Math.MultiSumSumQLat1_flow
Modelica.Blocks.Math.MultiSumSumQLat2_flow
BoundaryConditions.InternalGains.Moisture.MoistureGainsmoistureGainsInternal moisture gains by plants, etc.
Modelica.Blocks.Sources.ConstantnoMoisturePerson
HighOrder.Components.MoistAir.VarMoistAirExchangeairExcMoiHeat flow due to ventilation
BoundaryConditions.InternalGains.CO2.CO2BalancecO2Balance
Modelica.Blocks.Sources.RealExpressionXCO2Mass fraction of co2 in ROM in kg_CO2/ kg_TotalAir
BoundaryConditions.SolarIrradiation.DiffusePerez[zoneParam.nOrientationsRoof]HDifTilRoofCalculates diffuse solar radiation on titled surface for roof
Fluid.Pools.IndoorSwimmingPool[nPools]indoorSwimmingPool
Modelica.Blocks.Math.MultiSumSumQPool
Modelica.Blocks.Math.MultiSumSumPPool
Modelica.Blocks.Math.MultiSumSumPool_m_flow_add
Fluid.Pools.BaseClasses.AirFlowMoistureToROMairFlowMoistureToROM

Contents

NameDescription
corG
MediumPoolWaterMedium in the component

Revisions

  • April 20, 2023, by Philip Groesdonk:
    Added five element RC model (for heat exchange with neighboured zones) and an option choice for set temperatures of soil, i.e. floor element outdoor surface temperatures. This is for issue 1080.
  • November 20, 2020, by Katharina Breuer:
    Combine thermal zone models
  • August 27, 2020, by Katharina Breuer:
    Add co2 balance
  • January 09, 2020, by David Jansen:
    Integration of ideal heater and cooler into the thermal zone.
  • July 10, 2019, by David Jansen and Martin Kremer:
    Integration of changeable internal gain models for humans.
  • April, 2019, by Martin Kremer:
    Add moisture balance
  • March 01, 2019, by Niklas Huelsenbeck:
    Integration of new Internal Gains models, HumanSensibleHeatAreaSpecific and MachinesAreaSpecific
  • September 27, 2016, by Moritz Lauster:
    Reimplementation based on Annex60 and MSL models.
  • March, 2012, by Moritz Lauster:
    First implementation.