modelSlabOnGround
opaque floor on ground slab
Extends from IDEAS.Buildings.Components.Interfaces.PartialOpaqueSurface (Partial component for the opaque surfaces of the building envelope).
Information
This is a floor model that should be used to simulate floors on solid ground. See IDEAS.Buildings.Components.Interfaces.PartialOpaqueSurface for equations, options, parameters, validation and dynamics that are common for all surfaces.
Typical use and important parameters
The model contains several parameters that are used to set up a simplified model of the influence of the environment on the ground temperature. The model assumes that the floor plate is connected to a (heated) zone that is surrounded by air at the ambient temperature.
References
ISO 13370: Thermal performance of buildings - Heat transfer via the ground - Calculation methods.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| IDEAS.Buildings.Data.Interfaces.Construction | constructionType (from PartialOpaqueSurface) | ||
| Integer | incOpt (from PartialSurface) | 4 | Tilt angle option from simInfoManager, or custom using inc |
| Modelica.Units.SI.Angle | inc (from PartialSurface) | sim.incOpts[incOpt] | Custom inclination (tilt) angle of the wall, default wall |
| Integer | aziOpt (from PartialSurface) | 5 | Azimuth angle option from simInfoManager, or custom using azi |
| Modelica.Units.SI.Angle | azi (from PartialSurface) | sim.aziOpts[aziOpt] | Custom azimuth angle of the wall, default south |
| Modelica.Units.SI.Area | A (from PartialSurface) | Component surface area | |
| Real | nWin (from PartialSurface) | 1 | Use this factor to scale the component to nWin identical components |
| Real | q50_internal (from PartialSurface) | Surface air tightness | |
| Modelica.Units.SI.Length | hzone_a (from PartialSurface) | ||
| Modelica.Units.SI.Length | hAbs_floor_a (from PartialSurface) | ||
| Modelica.Units.SI.Length | Habs_surf (from PartialSurface) | hAbs_floor_a + hRelSurfBot_a + (hVertical/2) | Absolute height of the middle of the surface, can be used to check the heights after initialisation |
| Modelica.Units.SI.Length | PWall | 4*sqrt(A) | Total floor slab perimeter |
| Modelica.Units.SI.Temperature | TeAvg | 273.15 + 10.8 | Annual average outdoor temperature |
| Modelica.Units.SI.Temperature | TiAvg | 273.15 + 22 | Annual average indoor temperature |
| Modelica.Units.SI.TemperatureDifference | dTeAvg | 4 | Amplitude of variation of monthly average outdoor temperature |
| Modelica.Units.SI.TemperatureDifference | dTiAvg | 2 | Amplitude of variation of monthly average indoor temperature |
| Advanced › Design power | |||
| Modelica.Units.SI.Power | QTra_design (from PartialSurface) | Design heat losses at reference temperature of the boundary space | |
| Dynamics › Initial condition | |||
| Modelica.Units.SI.Temperature | T_start (from PartialSurface) | 293.15 | Start temperature for each of the layers |
| Modelica.Units.SI.Temperature[nLayGro] | T_start_gro | fill(TeAvg, nLayGro) | Initial temperatures of the ground layers (with first value = deepest layer and last value = shallowest layer |
| Convection | |||
| Boolean | linIntCon_a (from PartialSurface) | sim.linIntCon | = true, if convective heat transfer should be linearised |
| Modelica.Units.SI.TemperatureDifference | dT_nominal_a (from PartialSurface) | 1 | Nominal temperature difference used for linearisation, negative temperatures indicate the solid is colder |
| Boolean | linearise | sim.lineariseDymola | = true, if heat flow to ground should be linearized |
| Dynamics › Equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from PartialSurface) | Modelica.Fluid.Types.Dynamics.FixedInitial | Static (steady state) or transient (dynamic) thermal conduction model |
| Airflow › Airtightness | |||
| Boolean | use_custom_q50 (from PartialSurface) | false | check to disable the default q50 computation and to assign a custom q50 value |
| Real | custom_q50 (from PartialSurface) | 2 | Surface air tightness |
| Vertical position (important if interZonalAirFlowType is TwoPorts) | |||
| Modelica.Units.SI.Length | hVertical (from PartialSurface) | if IDEAS.Utilities.Math.Functions.isAngle(incInt, IDEAS.Types.Tilt.Floor) or IDEAS.Utilities.Math.Functions.isAngle(incInt, IDEAS.Types.Tilt.Ceiling) then 0 else hzone_a | Vertical surface height, height of the surface projected to the vertical (e.g. 0 for floors and ceilings) |
| Modelica.Units.SI.Length | hRelSurfBot_a (from PartialSurface) | if IDEAS.Utilities.Math.Functions.isAngle(incInt, IDEAS.Types.Tilt.Ceiling) then hzone_a else 0 | Height between the lowest point of the surface (bottom) and the floor level of the zone connected at propsBus_a (e.g. 0 for walls at floor level and floors.) |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| IDEAS.Buildings.Components.Interfaces.ZoneBus | propsBus_a (from PartialSurface) | If inc = Floor, then propsbus_a should be connected to the zone above this floor. If inc = ceiling, then propsbus_a should be connected to the zone below this ceiling. If component is an outerWall, porpsBus_a should be connect to the zone. | |
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a[constructionType.nGain] | port_emb (from PartialOpaqueSurface) | Port for gains by embedded active layers |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| IDEAS.BoundaryConditions.SimInfoManager | sim (from PartialSurface) | Simulation information manager for climate data | |
| IDEAS.Buildings.Components.BaseClasses.ConvectiveHeatTransfer.InteriorConvection | intCon_a (from PartialSurface) | Convective heat transfer correlation for port_a | |
| IDEAS.Buildings.Components.BaseClasses.ConductiveHeatTransfer.MultiLayer | layMul (from PartialSurface) | Multilayer component for simulating walls, windows and other surfaces | |
| Modelica.Units.SI.MassFlowRate | mBA_flow_1 (from PartialSurface) | crackOrOperableDoor.m1_flow | Flow outwards relative to propsBus_a, part 1 |
| Modelica.Units.SI.MassFlowRate | mBA_flow_2 (from PartialSurface) | -crackOrOperableDoor.m2_flow | Flow outwards relative to propsBus_a, part 2 |
| Q50_parameterToConnector | q50_zone (from PartialSurface) | ||
| IDEAS.Airflow.Multizone.CrackOrOperableDoor | crackOrOperableDoor (from PartialSurface) | ||
| Modelica.Blocks.Sources.RealExpression | AExp (from PartialSurface) | Area expression | |
| Modelica.Blocks.Routing.BooleanPassThrough | use_custom_q50PassThrough (from PartialSurface) | ||
| Modelica.Blocks.Routing.RealPassThrough | v50PassThrough (from PartialSurface) | ||
| Modelica.Units.SI.HeatFlowRate | Qm | if not linearise then UEqui*A*(TiAvg - TeAvg) - Lpi*dTiAvg*cos(2*3.1415/12*(m - 1 + alfa)) + Lpe*dTeAvg*cos(2*3.1415/12*(m - 1 - beta)) else sum({UEqui*A*(TiAvg - TeAvg) - Lpi*dTiAvg*cos(2*3.1415/12*(i - 1 + alfa)) + Lpe*dTeAvg*cos(2*3.1415/12*(i - 1 - beta)) for i in 1:12})/12 | Two-dimensional correction for edge flow |
| Modelica.Blocks.Routing.RealPassThrough | TdesGround | Design temperature passthrough | |
| IDEAS.Fluid.Sources.MassFlowSource_T | boundary1 | ||
| IDEAS.Fluid.Sources.MassFlowSource_T | boundary2 |
Revisions
-
January 30, 2025, by Klaas De Jonge:
UseTdesGround.yfor calculatingQTra_designto avoid causality warning. See #1402. -
November 7, 2024, by Anna Dell'Isola and Jelger Jansen:
Update calculation of transmission design losses. See #1337 -
May 16, 2024, by Lucas Verleyen:
Created final and protected parameterT_start_grofor initial temperature of the ground (layGro).
See #1292 for more information. -
Februari 18, 2024, by Filip Jorissen:
Modifications for supporting trickle vents and interzonal airflow. -
April 26, 2020, by Filip Jorissen:
RefactoredSolBusto avoid many instances inPropsBus. See #1131 -
October 13, 2019, by Filip Jorissen:
Refactored the parameter definition ofincandaziby adding the option to use radio buttons. See #1067 -
January 25, 2019, by Filip Jorissen:
Revised initial equation implementation. See issue #971. -
August 10, 2018 by Damien Picard:
Set nWin final to 1 as this should only be used for windows. See #888. -
May 14, 2018, by Filip Jorissen:
Revised value ofenergyDynamicsfor ground layers such that unique initial conditions can be defined. -
January 2, 2017, by Filip Jorissen:
Added default values for parametersincandazi. -
October 22, 2016, by Filip Jorissen:
Revised documentation for IDEAS 1.0. -
December 7, 2016 by Damien Picard:
Set placeCapacityAtSurf_b to false for the last layMul layer. This is necessary due to the initialization which is overspecified when two capacities are connected to each other without resistances between. Using dynamicFreeInitial for both the first layer of layGro and the last one of LayMul did not solve the problem. -
September 27, 2016 by Filip Jorissen:
Different initialisation for state between layMul and layGround for avoiding conflicting initial equations. -
February 10, 2016, by Filip Jorissen and Damien Picard:
Revised implementation: cleaned up connections and partials. -
June 14, 2015, Filip Jorissen:
Adjusted implementation for computing conservation of energy.