modelMultizoneEquipped
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 adds heater/cooler devices and an air handling unit to AixLib.ThermalZones.ReducedOrder.Multizone.Multizone. 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 and heater/cooler properties. An additional tab allows configuring the air handling unit. The air handling unit facilitates heating, cooling, humidification, dehumidification and heat recovery modes. 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. The multizone model calculates heat load and indoor air profiles.
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 | buildingID (from PartialMultizone) | Unique identifier of the building | |
| Modelica.Units.SI.Volume | VAir (from PartialMultizone) | Indoor air volume of building | |
| Modelica.Units.SI.Area | ABuilding (from PartialMultizone) | Net floor area of building | |
| Modelica.Units.SI.Area | ASurTot (from PartialMultizone) | Total surface area of building walls and windows (including interior walls) | |
| Integer | numZones (from PartialMultizone) | Number of zones | |
| Integer | nZonCon (from PartialMultizone) | 1 | Actual 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 | |
| Boolean | use_izeCon (from PartialMultizone) | false | Consider heat flow connection between interzonal elements of thermal zones by setting true |
| Boolean | use_MechanicalAirExchange (from PartialMultizone) | true | Consider mechanical ventilation by setting true |
| Boolean | use_NaturalAirExchange (from PartialMultizone) | use_MechanicalAirExchange | Consider natural ventilation and infiltration by setting true |
| Integer | internalGainsMode (from PartialMultizone) | Decides which internal gains model for persons is used | |
| Dynamics › Conservation equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from LumpedVolumeDeclarations) | Modelica.Fluid.Types.Dynamics.DynamicFreeInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
| Modelica.Fluid.Types.Dynamics | substanceDynamics (from LumpedVolumeDeclarations) | energyDynamics | Type of independent mass fraction balance: dynamic (3 initialization options) or steady state |
| Modelica.Fluid.Types.Dynamics | traceDynamics (from LumpedVolumeDeclarations) | energyDynamics | Type of trace substance balance: dynamic (3 initialization options) or steady state |
| Advanced › Dynamics | |||
| Modelica.Fluid.Types.Dynamics | massDynamics (from LumpedVolumeDeclarations) | energyDynamics | Type of mass balance: dynamic (3 initialization options) or steady state, must be steady state if energyDynamics is steady state |
| Initialization | |||
| Medium.AbsolutePressure | p_start (from LumpedVolumeDeclarations) | Medium.p_default | Start value of pressure |
| Medium.Temperature | T_start (from LumpedVolumeDeclarations) | Medium.T_default | Start value of temperature |
| Medium.MassFraction[Medium.nX] | X_start (from LumpedVolumeDeclarations) | Medium.X_default | Start 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 | |||
| Real | mSenFac (from LumpedVolumeDeclarations) | 1 | Factor for scaling the sensible thermal mass of the volume |
| General › Ports | |||
| Integer | nPorts (from PartialMultizone) | 0 | Number of fluid ports |
| CO2 | |||
| Boolean | use_C_flow (from PartialMultizone) | false | Set to true to enable input connector for trace substance |
| Modelica.Units.SI.MassFraction | XCO2_amb (from PartialMultizone) | 6.12157E-4 | Massfraction of CO2 in atmosphere (equals 403ppm) |
| Modelica.Units.SI.Area | areaBod (from PartialMultizone) | 1.8 | Body surface area source SIA 2024:2015 |
| Modelica.Units.SI.DensityOfHeatFlowRate | metOnePerSit (from PartialMultizone) | 58 | Metabolic rate of a relaxed seated person [1 Met = 58 W/m^2] |
| Moisture | |||
| Boolean | use_moisture_balance (from PartialMultizone) | false | If true, input connector QLat_flow is enabled and room air computes moisture balance |
| IdealHeaterCooler › Modes | |||
| Boolean | recOrSep (from PartialMultizone) | true | Use record or seperate parameters |
| IdealHeaterCooler › Heater | |||
| Boolean | Heater_on (from PartialMultizone) | true | Activates the heater |
| Real | h_heater (from PartialMultizone) | 0 | Upper limit controller output of the heater |
| Real | l_heater (from PartialMultizone) | 0 | Lower limit controller output of the heater |
| Real | KR_heater (from PartialMultizone) | 1000 | Gain of the heating controller |
| Modelica.Units.SI.Time | TN_heater (from PartialMultizone) | 1 | Time constant of the heating controller |
| IdealHeaterCooler › Cooler | |||
| Boolean | Cooler_on (from PartialMultizone) | true | Activates the cooler |
| Real | h_cooler (from PartialMultizone) | 0 | Upper limit controller output of the cooler |
| Real | l_cooler (from PartialMultizone) | 0 | Lower limit controller output of the cooler |
| Real | KR_cooler (from PartialMultizone) | 1000 | Gain of the cooling controller |
| Modelica.Units.SI.Time | TN_cooler (from PartialMultizone) | 1 | Time constant of the cooling controller |
| Moisture › Pools | |||
| Boolean | use_pools_tot (from PartialMultizone) | false | use swimming pools within at least one zone of the multizone |
| AirHandlingUnit › AHU Modes | |||
| Boolean | heatAHU | Status of heating of AHU | |
| Boolean | coolAHU | Status of cooling of AHU | |
| Boolean | dehuAHU | if heatAHU and coolAHU then true else false | Status of dehumidification of AHU (Cooling and Heating must be enabled) |
| Boolean | huAHU | if heatAHU and coolAHU then true else false | Status of humidification of AHU (Cooling and Heating must be enabled) |
| Boolean | HRS | true | Status of Heat Recovery System of AHU |
| AirHandlingUnit › Settings AHU Value | |||
| Real | BPFDehuAHU | By-pass factor of cooling coil during dehumidification | |
| Real | effHRSAHU_enabled | Efficiency of HRS when enabled | |
| Real | effHRSAHU_disabled | Efficiency of HRS when disabled | |
| AirHandlingUnit › Settings for State Machines | |||
| Modelica.Units.SI.Time | sampleRateAHU | 1800 | Time period for sampling |
| AirHandlingUnit › Fans | |||
| Modelica.Units.SI.Pressure | dpAHU_sup | Pressure difference over supply fan | |
| Modelica.Units.SI.Pressure | dpAHU_eta | Pressure difference over extract fan | |
| Modelica.Units.SI.Efficiency | effFanAHU_sup | Efficiency of supply fan | |
| Modelica.Units.SI.Efficiency | effFanAHU_eta | Efficiency of extract fan | |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| 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.Bus | weaBus (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.RealInput | timeOpe (from PartialMultizone) | Input profiles for opening hours for pools | |
| Modelica.Blocks.Interfaces.RealInput[4] | AHU | Input for AHU Conditions [1]: Desired Air Temperature in K [2]: Desired minimal relative humidity [3]: Desired maximal relative humidity [4]: Schedule Desired Ventilation Flow | |
| Modelica.Blocks.Interfaces.RealOutput | Pel | Electrical power of AHU | |
| Modelica.Blocks.Interfaces.RealOutput | PHeatAHU | Thermal power of AHU for heating | |
| Modelica.Blocks.Interfaces.RealOutput | PCoolAHU | Thermal power of AHU for cooling | |
| Modelica.Blocks.Interfaces.RealOutput[numZones] | CO2Con | CO2 concentration in the thermal zone in ppm |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| AixLib.ThermalZones.ReducedOrder.ThermalZone.ThermalZone[numZones] | zone (from PartialMultizone) | Thermal zone model | |
| AixLib.ThermalZones.ReducedOrder.Multizone.BaseClasses.FlowArrayRearranging | izeArrCon (from PartialMultizone) | Distributor for connection between adjacent zones | |
| AHUMod | AirHandlingUnit | Air Handling Unit |
Contents
| Name | Description |
|---|---|
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. - February 26, 2016, by Moritz Lauster:
Fixed bug in share of AHU volume flow. - April 25, 2015, by Ole Odendahl:
Implemented.