modelThermalZone
Extends from AixLib.ThermalZones.ReducedOrder.ThermalZone.BaseClasses.PartialThermalZone.
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
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | internalGainsMode | 1 | decides which internal gains model for persons is used |
| Boolean | use_MechanicalAirExchange | false | Consider mechanical ventilation by setting true |
| Boolean | use_NaturalAirExchange | use_MechanicalAirExchange | Consider natural infiltration and ventilation by setting true |
| DataBase.ThermalZones.ZoneBaseRecord | zoneParam | Choose setup for this zone | |
| IdealHeaterCooler › Modes | |||
| Boolean | recOrSep | true | Use record or seperate parameters |
| IdealHeaterCooler › Heater | |||
| Boolean | Heater_on | true | Activates the heater |
| Real | h_heater | 0 | Upper limit controller output of the heater |
| Real | l_heater | 0 | Lower limit controller output of the heater |
| Real | KR_heater | 1000 | Gain of the heating controller |
| Modelica.Units.SI.Time | TN_heater | 1 | Time constant of the heating controller |
| IdealHeaterCooler › Cooler | |||
| Boolean | Cooler_on | true | Activates the cooler |
| Real | h_cooler | 0 | Upper limit controller output of the cooler |
| Real | l_cooler | 0 | Lower limit controller output of the cooler |
| Real | KR_cooler | 1000 | Gain of the cooling controller |
| Modelica.Units.SI.Time | TN_cooler | 1 | Time constant of the cooling controller |
| CO2 | |||
| Modelica.Units.SI.MassFraction | XCO2_amb | 6.12157E-4 | Massfraction of CO2 in atmosphere (equals 403ppm) |
| Modelica.Units.SI.Area | areaBod | 1.8 | Body surface area source SIA 2024:2015 |
| Modelica.Units.SI.DensityOfHeatFlowRate | metOnePerSit | 58 | Metabolic rate of a relaxed seated person [1 Met = 58 W/m^2] |
| Moisture › Pools | |||
| Integer | nPools | 1 | Number of pools in thermal zone |
| AixLib.DataBase.Pools.IndoorSwimmingPoolBaseDataDefinition[nPools] | poolParam | fill(DataBase.Pools.IndoorSwimmingPoolDummy(), nPools) | Setup for swimming pools |
| AixLib.DataBase.Walls.WallBaseDataDefinition[nPools] | poolWallParam | fill(DataBase.Walls.ASHRAE140.DummyDefinition(), nPools) | Setup for swimming pool walls |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| AixLib.BoundaryConditions.InternalGains.Humans.HumanSensibleHeatTemperatureDependent | humanSenHeaDependent | ||
| AixLib.BoundaryConditions.InternalGains.Humans.HumanSensibleHeatTemperatureIndependent | humanSenHeaIndependent | ||
| AixLib.BoundaryConditions.InternalGains.Humans.HumanTotalHeatTemperatureDependent | humanTotHeaDependent | ||
| AixLib.BoundaryConditions.InternalGains.Machines.MachinesAreaSpecific | machinesSenHea | Internal gains from machines | |
| AixLib.BoundaryConditions.InternalGains.Lights.LightsAreaSpecific | lights | Internal gains from light | |
| corG | corGMod | Correction factor for solar transmission | |
| EquivalentAirTemperature.VDI6007WithWindow | eqAirTempWall | Computes equivalent air temperature | |
| EquivalentAirTemperature.VDI6007 | eqAirTempRoof | Computes equivalent air temperature for roof | |
| Modelica.Blocks.Sources.Constant[zoneParam.nOrientationsRoof] | constSunblindRoof | Sets sunblind signal to zero (open) | |
| BoundaryConditions.SolarIrradiation.DiffusePerez[zoneParam.nOrientations] | HDifTilWall | Calculates diffuse solar radiation on titled surface for both directions | |
| BoundaryConditions.SolarIrradiation.DirectTiltedSurface[zoneParam.nOrientations] | HDirTilWall | Calculates direct solar radiation on titled surface for both directions | |
| BoundaryConditions.SolarIrradiation.DirectTiltedSurface[zoneParam.nOrientationsRoof] | HDirTilRoof | Calculates direct solar radiation on titled surface for roof | |
| Utilities.Sources.HeaterCooler.HeaterCoolerPI | heaterCooler | Heater Cooler with PI control | |
| Utilities.Sources.HeaterCooler.HeaterCoolerController | heaterCoolerController | ||
| Modelica.Blocks.Interfaces.RealInput | TSetCool | Set point for cooler | |
| Modelica.Blocks.Interfaces.RealInput | TSetHeat | Set point for heater | |
| Modelica.Blocks.Interfaces.RealOutput | PHeater | Power for heating | |
| Modelica.Blocks.Interfaces.RealOutput | PCooler | Power for cooling | |
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a[zoneParam.nIze] | izeHeaFlow | surface heat port for nz borders - inner surface if zone index is higher than index of other zone, outer if lower | |
| SolarGain.SimpleExternalShading | simpleExternalShading | ||
| Controls.VentilationController.VentilationController | ventCont | Calculates natural venitlation and infiltration | |
| Utilities.Psychrometrics.MixedTemperature | mixedTemp | Mixes temperature of infiltration flow and mechanical ventilation flow | |
| HighOrder.Components.DryAir.VarAirExchange | airExc | Heat flow due to ventilation | |
| Modelica.Blocks.Interfaces.RealInput | ventTemp | Ventilation and infiltration temperature | |
| Modelica.Blocks.Interfaces.RealInput | ventRate | Ventilation and infiltration rate | |
| Modelica.Blocks.Math.MultiSum | SumQLat1_flow | ||
| Modelica.Blocks.Math.MultiSum | SumQLat2_flow | ||
| BoundaryConditions.InternalGains.Moisture.MoistureGains | moistureGains | Internal moisture gains by plants, etc. | |
| Modelica.Blocks.Sources.Constant | noMoisturePerson | ||
| Modelica.Blocks.Interfaces.RealOutput | X_w | Humidity output | |
| Modelica.Blocks.Interfaces.RealInput | ventHum | Ventilation and infiltration humidity | |
| HighOrder.Components.MoistAir.VarMoistAirExchange | airExcMoi | Heat flow due to ventilation | |
| BoundaryConditions.InternalGains.CO2.CO2Balance | cO2Balance | ||
| Modelica.Blocks.Interfaces.RealOutput | CO2Con | CO2 concentration in the thermal zone in ppm | |
| Modelica.Blocks.Sources.RealExpression | XCO2 | Mass fraction of co2 in ROM in kg_CO2/ kg_TotalAir | |
| BoundaryConditions.SolarIrradiation.DiffusePerez[zoneParam.nOrientationsRoof] | HDifTilRoof | Calculates diffuse solar radiation on titled surface for roof | |
| Modelica.Blocks.Interfaces.RealOutput[3] | QIntGains_flow | Heat flow based on internal gains from lights[1], machines[2], and persons[3] | |
| Fluid.Pools.IndoorSwimmingPool[nPools] | indoorSwimmingPool | ||
| Modelica.Blocks.Math.MultiSum | SumQPool | ||
| Modelica.Blocks.Math.MultiSum | SumPPool | ||
| Modelica.Blocks.Math.MultiSum | SumPool_m_flow_add | ||
| Modelica.Blocks.Interfaces.RealInput | timeOpe | Input profiles for opening hours for pools | |
| Fluid.Pools.BaseClasses.AirFlowMoistureToROM | airFlowMoistureToROM |
Contents
| Name | Description |
|---|---|
| corG | |
| MediumPoolWater | Medium 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.