Validation models for Buildings.Fluid.Geothermal.Borefields
Information
This package contains validation models for the classes in
Buildings.Fluid.Geothermal.Borefields.
Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).
Package Content
Name |
Description |
ConstantHeatInjection_100Boreholes
|
Long-term temperature response of a borefield of 100 boreholes |
Sandbox
|
Validation of BorefieldOneUTube based on the experiment of Beier et al. (2011) |
BaseClasses
|
Package with base classes for Buildings.Fluid.Geothermal.Borefields.Validation |
Long-term temperature response of a borefield of 100 boreholes
Information
This validation case simulates a borefield of 100 boreholes on a square 10 by 10
grid.
The heat injection rate in the borefield is constant and equal to
2*pi*kSoi*hBor*nBor
. In this case, the borehole wall temperature
variation corresponds to the g-function of the borefield, as evaluated in
Buildings.Fluid.Geothermal.Borefields.BaseClasses.HeatTransfer.ThermalResponseFactors.Validation.GFunction_100boreholes.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Modelica definition
model ConstantHeatInjection_100Boreholes
extends Modelica.Icons.Example;
package Medium =
Buildings.Media.Water;
parameter Modelica.SIunits.Temperature T_start = 273.15
;
Buildings.Fluid.Geothermal.Borefields.OneUTube borHol(
redeclare package Medium = Medium, borFieDat=
borFieDat,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
TExt0_start=T_start,
dT_dz=0,
tLoaAgg=3600000)
;
Buildings.Fluid.Movers.FlowControlled_m_flow pum(
redeclare package Medium = Medium,
T_start=T_start,
addPowerToMedium=false,
use_inputFilter=false,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState,
massDynamics=Modelica.Fluid.Types.Dynamics.SteadyState,
m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal,
nominalValuesDefineDefaultPressureCurve=true,
inputType=Buildings.Fluid.Types.InputType.Constant);
Buildings.Fluid.Sensors.TemperatureTwoPort TBorFieIn(
redeclare package Medium = Medium,
T_start=T_start,
m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal,
tau=0)
;
Buildings.Fluid.Sensors.TemperatureTwoPort TBorFieOut(
redeclare package Medium = Medium,
T_start=T_start,
m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal,
tau=0)
;
parameter Buildings.Fluid.Geothermal.Borefields.Validation.BaseClasses.ConstantHeatInjection_100Boreholes_Borefield
borFieDat
;
Buildings.Fluid.Sources.Boundary_ph sin(
redeclare package Medium = Medium,
nPorts=1) ;
Buildings.Fluid.HeatExchangers.HeaterCooler_u hea(
redeclare package Medium = Medium,
dp_nominal=10000,
show_T=true,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState,
T_start=T_start,
m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal,
m_flow(start=borFieDat.conDat.mBorFie_flow_nominal),
p_start=100000,
Q_flow_nominal=2*Modelica.Constants.pi*borFieDat.soiDat.kSoi*borFieDat.conDat.hBor
*borFieDat.conDat.nBor)
;
Modelica.Blocks.Sources.Constant heaRat(k=1)
;
equation
connect(TBorFieIn.port_b, borHol.port_a);
connect(borHol.port_b, TBorFieOut.port_a);
connect(pum.port_b, TBorFieIn.port_a);
connect(sin.ports[1], TBorFieOut.port_b);
connect(hea.port_b, pum.port_a);
connect(hea.port_a, TBorFieOut.port_b);
connect(hea.u, heaRat.y);
end ConstantHeatInjection_100Boreholes;
Validation of BorefieldOneUTube based on the experiment of Beier et al. (2011)
Information
This validation case simulates the experiment of Beier et al. (2011). Measured
experimental data is taken from the reference.
The experiment consists in the injection of heat at an average rate of 1142 W
in a 18 m long borehole over a period 52 h. Dimensions and thermal properties
reported by Beier et al. (2011) are used in the model. The authors conducted
multiple independent measurements of soil thermal conductivity. The average of
reported values (2.88 W/m-K) is used here. Finally, the filling material thermal
capacity and density was not reported. Values were chosen from the estimated
volumetric heat capacity used by Pasquier and Marcotte (2014).
The construction of the borehole is non-conventional: the borehole is
contained within an aluminum pipe that acts as the borehole wall. As this
modifies the thermal resistances inside the borehole, the values evaluated by
the multipole method are modified to obtain the effective borehole thermal
resistance reported by Beier et al. (2011).
References
Beier, R.A., Smith, M.D. and Spitler, J.D. 2011. Reference data sets for
vertical borehole ground heat exchanger models and thermal response test
analysis. Geothermics 40: 79-85.
Pasquier, P., and Marcotte, D. 2014. Joint use of quasi-3D response model and
spectral method to simulate borehole heat exchanger. Geothermics 51:
281-299.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Modelica definition
model Sandbox
extends Modelica.Icons.Example;
package Medium =
Buildings.Media.Water;
parameter Modelica.SIunits.Temperature T_start = 273.15 + 22.09
;
constant Real mSenFac = 1.59186
;
Buildings.Fluid.Geothermal.Borefields.OneUTube borHol(
redeclare package Medium = Medium, borFieDat=
borFieDat,
tLoaAgg=60,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
mSenFac=mSenFac,
TExt0_start=T_start,
dT_dz=0) ;
Buildings.Fluid.Movers.FlowControlled_m_flow pum(
redeclare package Medium = Medium,
T_start=T_start,
addPowerToMedium=false,
use_inputFilter=false,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState,
massDynamics=Modelica.Fluid.Types.Dynamics.SteadyState,
m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal,
nominalValuesDefineDefaultPressureCurve=true,
inputType=Buildings.Fluid.Types.InputType.Constant);
Buildings.Fluid.Sensors.TemperatureTwoPort TBorFieIn(
redeclare package Medium = Medium,
T_start=T_start,
m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal,
tau=0)
;
Buildings.Fluid.Sensors.TemperatureTwoPort TBorFieOut(
redeclare package Medium = Medium,
T_start=T_start,
m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal,
tau=0)
;
parameter Buildings.Fluid.Geothermal.Borefields.Validation.BaseClasses.SandBox_Borefield
borFieDat ;
Buildings.Fluid.Sources.Boundary_ph sin(
redeclare package Medium = Medium,
nPorts=1) ;
Modelica.Blocks.Sources.CombiTimeTable sandBoxMea(
tableOnFile=true,
tableName="data",
offset={0,0,0},
columns={2,3,4},
fileName=
Modelica.Utilities.Files.loadResource(
"modelica://Buildings/Resources/Data/Fluid/Geothermal/Borefields/HeatTransfer/Validation/Beier_Smith_Spitler_2011_SandBox.txt"));
Buildings.Fluid.HeatExchangers.HeaterCooler_u hea(
redeclare package Medium = Medium,
dp_nominal=10000,
show_T=true,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState,
T_start=T_start,
Q_flow_nominal=1056,
m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal,
m_flow(start=borFieDat.conDat.mBorFie_flow_nominal),
p_start=100000) ;
equation
connect(TBorFieIn.port_b, borHol.port_a);
connect(borHol.port_b, TBorFieOut.port_a);
connect(pum.port_b, TBorFieIn.port_a);
connect(sin.ports[1], TBorFieOut.port_b);
connect(hea.port_b, pum.port_a);
connect(hea.port_a, TBorFieOut.port_b);
connect(sandBoxMea.y[3], hea.u);
end Sandbox;