Buildings.BoundaryConditions.GroundTemperature.BaseClasses

Package with base classes for Buildings.BoundaryConditions.GroundTemperature

Information

This package contains base classes that are used to construct the models in Buildings.BoundaryConditions.GroundTemperature.

Extends from Modelica.Icons.BasesPackage (Icon for packages containing base classes).

Package Content

Name Description
Buildings.BoundaryConditions.GroundTemperature.BaseClasses.surfaceTemperature surfaceTemperature Function to correct the climatic constants using <i>n</i>-factors

Buildings.BoundaryConditions.GroundTemperature.BaseClasses.surfaceTemperature Buildings.BoundaryConditions.GroundTemperature.BaseClasses.surfaceTemperature

Function to correct the climatic constants using <i>n</i>-factors

Information

This function corrects the surface temperature climatic constants by applying n-factors with the methodology prescribed in the District Cooling Guide (ASHRAE, 2013).

n-factors corresponds to the ratio of freezing (/thawing) degree days or index between the air and the ground surface and can be used to couple the air and ground surface temperatures.
For example, a freezing n-factor of 1.35 means that during the freezing season, the daily average ground surface temperature is on average 1.35 times colder than the air (using the freezing temperature of water as a reference).
In its guide, ASHRAE suggests to first apply the n-factors to the uncorrected ground temperature at zero burial depth, and to fit a new sinusoidal curve to the result.
In this function, the freezing n-factor is applied to days where the daily mean air temperature is below the freezing temperature (0degC), whereas the thawing n-factor is applied to the remaining days.

Tground - Tfreezing = ηfreezing * (Tair - Tfreezing)   if Tair <= Tfreezing
Tground - Tfreezing = ηthawing * (Tair - Tfreezing)   if Tair > Tfreezing

The sinusoidal curve is then fitted using the analytical solution proposed in Appendix B of the District Heating Guide.

n-factors are specific to a climate and surface cover, and should be extrapolated from other sites with caution. As a first approximation, tabulated values of n-factors are available in Lunardini (1981) and Freitag and McFadden (1997).

References

ASHRAE (2013). District Cooling Guide. ASHRAE, Atlanta, GA.
ASHRAE (2013). District Heating Guide. ASHRAE, Atlanta, GA.
D.W. Riseborough (2003). Thawing and freezing indices in the active layer. Proceedings of the 8th International Conference on Permafrost, Swets & Zeitlinger.
V.J. Lunardini (1981). Heat Transfer in Cold Climates. Van Nostrand Reinhold Company.
D.R. Freitag and T. McFadden (1997). Introduction to Cold Regions Engineering. American Society of Civil Engineers.

Extends from Modelica.Icons.Function (Icon for functions).

Inputs

TypeNameDefaultDescription
GenericcliCon Surface temperature climatic conditions
RealnFacTha Thawing n-factor (TAir > 0degC)
RealnFacFre Freezing n-factor (TAir <= 0degC)

Outputs

TypeNameDescription
GenericcorCliConCorrected surface temperature climatic conditions

Modelica definition

function surfaceTemperature "Function to correct the climatic constants using <i>n</i>-factors" extends Modelica.Icons.Function; input ClimaticConstants.Generic cliCon "Surface temperature climatic conditions"; input Real nFacTha "Thawing n-factor (TAir > 0degC)"; input Real nFacFre "Freezing n-factor (TAir <= 0degC)"; output ClimaticConstants.Generic corCliCon "Corrected surface temperature climatic conditions"; protected constant Integer Year=365 "Year period in days"; constant Integer secInDay = 24 * 60 * 60 "Seconds in a day"; constant Modelica.SIunits.Angle pi = Modelica.Constants.pi; constant Modelica.SIunits.Temperature TFre = 273.15 "Freezing temperature of water"; constant Real freq = 2 * pi / Year "Year frequency in rad/days"; parameter Modelica.SIunits.Temperature TAirDayMea[Year] = {cliCon.TSurMea + cliCon.TSurAmp / freq * ( cos(freq * (cliCon.sinPha / secInDay - day)) - cos(freq * (cliCon.sinPha / secInDay - (day + 1)))) for day in 1:Year} "Daily mean air temperature (surface = 0 from uncorrected climatic constants)"; parameter Modelica.SIunits.Temperature TSurDayMea[Year] = { if TAirDayMea[day] > TFre then (TFre + (TAirDayMea[day] - TFre) * nFacTha) else (TFre + (TAirDayMea[day] - TFre) * nFacFre) for day in 1:Year} "Daily mean corrected surface temperature"; parameter Real C1 = sum({TSurDayMea[day] * cos(freq * day) for day in 1:Year}); parameter Real C2 = sum({TSurDayMea[day] * sin(freq * day) for day in 1:Year}); parameter Modelica.SIunits.Temperature corTSurMea = sum(TSurDayMea)/Year "Mean annual surface temperature"; parameter Modelica.SIunits.TemperatureDifference corTSurAmp = 2/Year .* (C1^2 + C2^2)^0.5 "Surface temperature amplitude"; parameter Modelica.SIunits.Duration corSinPha(displayUnit="d") = (Modelica.Math.atan(C2/C1) + pi/2)*secInDay/freq "Phase lag of soil surface temperature"; algorithm // Analytical mean by integrating undisturbed soil temperature formula corCliCon := ClimaticConstants.Generic( TSurMea = corTSurMea, TSurAmp = corTSurAmp, sinPha = corSinPha); end surfaceTemperature;