modelPartialStorage

Partial model for borehole thermal energy storage with independent borefield zones

Extends from Buildings.Fluid.Geothermal.ZonedBorefields.Interfaces.PartialTwoNPortsInterface (Partial model with two vectors of ports and declaration of quantities for bore field models), Buildings.Fluid.Geothermal.ZonedBorefields.Interfaces.TwoNPortsFlowResistanceParameters (Parameters for flow resistance for models with two N ports).

Information

This model simulates a borehole thermal energy storage system with multiple zones of boreholes. Boreholes within the same zone are connected in parallel. The borefield configuration and thermal parameters are defined in the borFieDat record.

Heat transfer to the soil is modeled using one borehole heat exchanger (To be added in an extended model) per borefield zone. The fluid mass flow rate into each borehole is divided to reflect the per-borehole fluid mass flow rate. The borehole model calculates the dynamics within the borehole itself using an axial discretization and a resistance-capacitance network for the internal thermal resistances between the individual pipes and between each pipe and the borehole wall.

The ground thermal response at each borehole segment is evaluated using analytical thermal response factors. Spatial and temporal superposition are used to evaluate the total temperature change at each of the borehole segments.

Parameters

TypeNameDefaultDescription
IntegernPorts (from PartialTwoNPorts)Number of fluid ports on each side
Modelica.Units.SI.TimetLoaAgg3600.0Time resolution of load aggregation
IntegernCel5Number of cells per aggregation level
IntegernSeg10Number of segments to use in vertical discretization of the boreholes
Buildings.Fluid.Geothermal.ZonedBorefields.Data.Borefield.TemplateborFieDatBorefield data record
IntegernZonborFieDat.conDat.nZonTotal number of independent bore field zones
IntegernBorPerZonborFieDat.conDat.nBorPerZonNumber of boreholes per borefield zone
Assumptions
BooleanallowFlowReversal (from PartialTwoNPorts)true= false to simplify equations, assuming, but not enforcing, no flow reversal
Nominal condition
Modelica.Units.SI.MassFlowRate[nPorts]m_flow_nominal (from PartialTwoNPortsInterface)Nominal mass flow rate
Modelica.Units.SI.PressureDifference[nPorts]dp_nominal (from TwoNPortsFlowResistanceParameters)Pressure difference
Advanced
Modelica.Units.SI.MassFlowRate[nPorts]m_flow_small (from PartialTwoNPortsInterface)1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow
Advanced › Diagnostics
Booleanshow_T (from PartialTwoNPortsInterface)false= true, if actual temperature at port is computed
Flow resistance
Boolean[nPorts]computeFlowResistance (from TwoNPortsFlowResistanceParameters)fill(true, nPorts)=true, compute flow resistance. Set to false to assume no friction
Boolean[nPorts]from_dp (from TwoNPortsFlowResistanceParameters)fill(false, nPorts)= true, use m_flow = f(dp) else dp = f(m_flow)
Realn (from TwoNPortsFlowResistanceParameters)2Flow exponent, n=1 for laminar, n=2 for turbulent
Boolean[nPorts]linearizeFlowResistance (from TwoNPortsFlowResistanceParameters)fill(false, nPorts)= true, use linear relation between m_flow and dp for any flow rate
Real[nPorts]deltaM (from TwoNPortsFlowResistanceParameters)fill(0.1, nPorts)Fraction of nominal flow rate where flow transitions to laminar
Dynamics › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamicsModelica.Fluid.Types.Dynamics.DynamicFreeInitialType of energy balance: dynamic (3 initialization options) or steady state
Initialization
Medium.AbsolutePressurep_startMedium.p_defaultStart value of pressure
Modelica.Units.SI.Temperature[nSeg]TFlu_startTGro_startStart value of fluid temperature
Initialization › Soil
Modelica.Units.SI.TemperatureTExt0_start283.15Initial far field temperature
Modelica.Units.SI.Temperature[nSeg]TExt_start{if z[i] >= z0 then TExt0_start + (z[i] - z0)*dT_dz else TExt0_start for i in 1:nSeg}Temperature of the undisturbed ground
Initialization › Filling material
Modelica.Units.SI.Temperature[nSeg]TGro_startTExt_startStart value of grout temperature
Initialization › Temperature profile
Modelica.Units.SI.Heightz010Depth below which the temperature gradient starts
RealdT_dz0.01Vertical temperature gradient of the undisturbed soil for h below z0

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_a[nPorts]port_a (from PartialTwoNPorts)Fluid connector a (positive design flow direction is from port_a to port_b)
Modelica.Fluid.Interfaces.FluidPort_b[nPorts]port_b (from PartialTwoNPorts)Fluid connector b (positive design flow direction is from port_a to port_b)
Modelica.Blocks.Interfaces.RealOutput[nZon]TBorAveAverage borehole wall temperature in the borefield
Modelica.Blocks.Interfaces.RealOutput[nZon]QBorAveAverage (per borehole) heat transfer rate in each zone

Components

TypeNameDefaultDescription
Modelica.Units.SI.MassFlowRate[nPorts]m_flow (from PartialTwoNPortsInterface)port_a[:].m_flowMass flow rate from port_a to port_b (m_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifference[nPorts]dp (from PartialTwoNPortsInterface)port_a[:].p - port_b[:].pPressure difference between port_a and port_b
Medium.ThermodynamicState[nPorts]sta_a (from PartialTwoNPortsInterface)if allowFlowReversal then Medium.setState_phX(port_a.p, noEvent(actualStream(port_a.h_outflow)), noEvent(actualStream(port_a.Xi_outflow))) else Medium.setState_phX(port_a.p, noEvent(inStream(port_a.h_outflow)), noEvent(inStream(port_a.Xi_outflow)))Medium properties in port_a
Medium.ThermodynamicState[nPorts]sta_b (from PartialTwoNPortsInterface)if allowFlowReversal then Medium.setState_phX(port_b.p, noEvent(actualStream(port_b.h_outflow)), noEvent(actualStream(port_b.Xi_outflow))) else Medium.setState_phX(port_b.p, noEvent(port_b.h_outflow), noEvent(port_b.Xi_outflow))Medium properties in port_b
Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.BaseClasses.PartialBorehole[nZon]borHol
Buildings.Fluid.Geothermal.ZonedBorefields.BaseClasses.HeatTransfer.GroundTemperatureResponsegroTemResGround thermal response

Contents

NameDescription
MediumMedium in the borehole pipes

Revisions

  • February 2024, by Massimo Cimmino:
    First implementation.