Buildings.Fluid.FixedResistances.BuriedPipes

Package with models for buried pipes

Information

This package contains models for buried pipes, such as those found in district heating and cooling distribution networks.

Extends from Modelica.Icons.VariantsPackage (Icon for package containing variants).

Package Content

Name Description
Buildings.Fluid.FixedResistances.BuriedPipes.GroundCoupling GroundCoupling Thermal coupling between buried pipes and ground
Buildings.Fluid.FixedResistances.BuriedPipes.PipeGroundCoupling PipeGroundCoupling  
Buildings.Fluid.FixedResistances.BuriedPipes.Examples Examples Collection of models that illustrate model use and test models
Buildings.Fluid.FixedResistances.BuriedPipes.Validation Validation Collection of validation models
Buildings.Fluid.FixedResistances.BuriedPipes.BaseClasses BaseClasses Package with base classes for Buildings.Fluid.Geothermal.BuriedPipes

Buildings.Fluid.FixedResistances.BuriedPipes.GroundCoupling Buildings.Fluid.FixedResistances.BuriedPipes.GroundCoupling

Thermal coupling between buried pipes and ground

Buildings.Fluid.FixedResistances.BuriedPipes.GroundCoupling

Information

This model simulates the heat transfer between multiple buried pipes and the ground, using climate and soil information and the geometry of the pipes network.

The model can take any number of pipes, and can be discretized axially in any number of segments. Currently, the model only allows for pipes that run co-axially and parallel to the ground, and the axial segmentation must be the same for each pipe.

The heat transfer solution is based upon the potential flow theory and obtained by the use of "mirror-image" technique suggested by Eckert (1959). This technique is extended to a network with multiple pipes by Kusuda (1981) in the equation:

image

where:
L = pipe length [m]
ks = soil thermal conductivity [W/(m.K)]
Pij = geometric factor (see Buildings.Fluid.FixedResistances.BuriedPipes.BaseClasses.groundCouplingFactors for more information)
Qi = net heat transfer from pipe i [W]
Ti = temperature at the exterior surface of pipe i [degC]
Tg = undisturbed ground temperature at the depth of the network. [degC]

This model relies on the following assumptions.

References

Eckert, E. R. G. (1959). Heat and Mass Transfer. McGraw-Hill Book Company.
Kusuda, T. (1981). Heat transfer analysis of underground heat and chilled-water distribution systems. National Bureau of Standards.

Parameters

TypeNameDefaultDescription
IntegernPip Number of buried pipes
IntegernSeg1Number of axial segments
GenericsoiDatredeclare parameter Building...Soil thermal properties
GenericcliConredeclare parameter Building...Surface temperature climatic conditions
Lengthlen[nSeg] Pipes length [m]
Lengthdep[nPip] Pipes buried depth [m]
Lengthpos[nPip] Pipes horizontal coordinate (to an arbitrary reference point) [m]
Lengthrad[nPip] Pipes external radius [m]

Connectors

TypeNameDescription
HeatPort_aports[nPip, nSeg]Buried pipes heatports

Modelica definition

model GroundCoupling "Thermal coupling between buried pipes and ground" parameter Integer nPip(min=1) "Number of buried pipes"; parameter Integer nSeg(min=1) = 1 "Number of axial segments"; replaceable parameter Buildings.HeatTransfer.Data.Soil.Generic soiDat "Soil thermal properties"; replaceable parameter Buildings.BoundaryConditions.GroundTemperature.ClimaticConstants.Generic cliCon "Surface temperature climatic conditions"; parameter Modelica.Units.SI.Length len[nSeg] "Pipes length"; parameter Modelica.Units.SI.Length dep[nPip] "Pipes buried depth"; parameter Modelica.Units.SI.Length pos[nPip] "Pipes horizontal coordinate (to an arbitrary reference point)"; parameter Modelica.Units.SI.Length rad[nPip] "Pipes external radius"; Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a ports[nPip, nSeg] "Buried pipes heatports"; Buildings.BoundaryConditions.GroundTemperature.UndisturbedSoilTemperature soi(cliCon=cliCon, soiDat=soiDat, dep=depMea) "Soil temperature"; protected parameter Modelica.Units.SI.Length depMea=sum(dep)/nPip "Average depth"; parameter Real P[nPip,nPip]=BaseClasses.groundCouplingFactors( nPip, dep, pos, rad) "Thermal coupling geometric factors"; equation for seg in 1:nSeg loop ports[:,seg].T .- soi.T = P * ports[:,seg].Q_flow / (2 * Modelica.Constants.pi * soiDat.k * len[seg]); end for; end GroundCoupling;

Buildings.Fluid.FixedResistances.BuriedPipes.PipeGroundCoupling Buildings.Fluid.FixedResistances.BuriedPipes.PipeGroundCoupling


Buildings.Fluid.FixedResistances.BuriedPipes.PipeGroundCoupling

Information

This model considers the conduction heat transfer between the buried pipe wall and the undisturbed ground temperature by adding a dynamic ground layer. The dynamic ground layer is modeled using the radial heat conduction model through a hollow cylinder Buildings.HeatTransfer.Conduction.SingleLayerCylinder. The undisturbed ground temperature is calculated by the model Buildings.BoundaryConditions.GroundTemperature.UndisturbedSoilTemperature. This model can consider an axial discretization of the pipe. A figure highlighting the main variables and parameters is shown below:

image

References

Ettore Zanetti, David Blum, Michael Wetter (2023) Control development and sizing analysis for a 5th generation district heating and cooling network using Modelica, In Proceedings of the 15th International Modelica Conference. Aachen, Germany, Oct 9-11, 2023.

Parameters

TypeNameDefaultDescription
HeightlPip100Pipe length [m]
RadiusrPip0.5Pipe external radius [m]
RadiusthiGroLay1.0Dynamic ground layer thickness [m]
IntegernSeg10Number of pipe discretization segments axial direction
IntegernSta1Number of state variables for dynamic ground layer
Lengthdep10Depth of buried pipe to calculate ground temperature [m]
ZurichcliConredeclare parameter Building...Surface temperature climatic conditions
GenericsoiDatsoiDat(k=1.58, c=1150, d=1600)Soil thermal properties
Initialization
TemperatureTpipSta280.15Initial temperature for the pipe, used if steadyStateInitial = false [K]
TemperatureTGrouBouSta283.15Initial temperature at ground final layer, used if steadyStateInitial = false [K]
BooleansteadyStateInitialfalsetrue initializes dT(0)/dt=0, false initializes T(0) at fixed temperature using TpipSta and TGrouBouSta

Connectors

TypeNameDescription
HeatPorts_aheatPorts[nSeg]Multiple heat ports that connect to outside of pipe wall

Modelica definition

model PipeGroundCoupling parameter Modelica.Units.SI.Height lPip = 100 "Pipe length"; parameter Modelica.Units.SI.Radius rPip = 0.5 "Pipe external radius"; parameter Modelica.Units.SI.Radius thiGroLay = 1.0 "Dynamic ground layer thickness"; final parameter Modelica.Units.SI.Radius rGroLay = rPip + thiGroLay "Pipe radius plus dynamic ground layer"; parameter Integer nSeg(min=1) = 10 "Number of pipe discretization segments axial direction"; parameter Integer nSta=1 "Number of state variables for dynamic ground layer"; parameter Modelica.Units.SI.Temperature TpipSta = 280.15 "Initial temperature for the pipe, used if steadyStateInitial = false"; parameter Modelica.Units.SI.Temperature TGrouBouSta = 283.15 "Initial temperature at ground final layer, used if steadyStateInitial = false"; parameter Boolean steadyStateInitial = false "true initializes dT(0)/dt=0, false initializes T(0) at fixed temperature using TpipSta and TGrouBouSta"; parameter Modelica.Units.SI.Length dep = 10 "Depth of buried pipe to calculate ground temperature"; replaceable parameter Buildings.DHC.Examples.Combined.BaseClasses.Zurich cliCon "Surface temperature climatic conditions"; replaceable parameter Buildings.HeatTransfer.Data.Soil.Generic soiDat( k=1.58,c=1150,d=1600) "Soil thermal properties"; Buildings.HeatTransfer.Conduction.SingleLayerCylinder groActLay[nSeg]( each material = soiDat, each h = lPip, each r_a = rPip, each r_b = rGroLay, each nSta = nSta, each TInt_start = TpipSta, each TExt_start = TGrouBouSta, each steadyStateInitial=steadyStateInitial); BoundaryConditions.GroundTemperature.UndisturbedSoilTemperature soiTem( dep=dep, soiDat=soiDat, cliCon=cliCon); Modelica.Blocks.Sources.RealExpression soiTemExp(y=soiTem.T) "Soil undisturbed temperature"; Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature groTem[nSeg] "Prescribed ground temperature"; Modelica.Fluid.Interfaces.HeatPorts_a heatPorts[nSeg] "Multiple heat ports that connect to outside of pipe wall"; Modelica.Blocks.Routing.Replicator groTemDup(nout=nSeg) "Ground temperature replicator"; equation connect(groTem.T, groTemDup.y); connect(groTemDup.u, soiTemExp.y); connect(heatPorts, groActLay.port_a); connect(groActLay.port_b, groTem.port); end PipeGroundCoupling;