modelEmbeddedPipe

Embedded pipe model based on EN 15377 and (Koschenz, 2000). The water capacity is lumped to TOut

Extends from IDEAS.Fluid.Interfaces.LumpedVolumeDeclarations, IDEAS.Fluid.Interfaces.PartialTwoPortInterface, IDEAS.Fluid.Interfaces.TwoPortFlowResistanceParameters.

Information

Dynamic model of an embedded pipe for a concrete core activation. This model is based on (Koschenz, 2000). In addition the model provides the options to simulate the concrete core activation as if there were multiple parallel branches. This affects the pressure drop calculation and also the thermal calculations.

Assumptions and limitations

The implementation of Koschenz mentions that a minimum discretization (i.e. using nDiscr) is required to avoid violation of the second law of thermodynamics. The model explicitly enforces the second law even for nDiscr=1 by upper bounding the heat flow rate such that this minimum discretization does not apply to our implementation. The parameter nDiscr thus only affects the results at larger flow rates. The example IDEAS.Fluid.HeatExchangers.RadiantSlab.Examples.EmbeddedPipeNDiscr provides an indication of the sensitivity of the results to the value of nDiscr.

The embeddedPipe model is designed to be used together with an IDEAS.Buildings.Components.InternalWall. When nDiscr>1, the wall/floor should also be discretized to be physically correct, although the discretizations can also be connected to the same wall/floor, which gives a reasonable approximation as illustrated by the example IDEAS.Fluid.HeatExchangers.RadiantSlab.Examples.EmbeddedPipeNDiscr.

R_x_val represents thermal resistance between the outer pipe wall temperature and the (fictive) uniform TABS temperature. For small concrete/screed layer thicknesses (di ≤ 0.3·T, with T the distance between the pipes), a correction factor needs to be taken into account (see Eq.4-4 and 4-24 in (Koschenz, 2000)).

R_w_val represents the convective thermal resistance between the embedded pipe wall and the water flowing in that pipe. Depending on the Reynolds number rey, laminar or turbulent flow is assumed. For turbulent flow, the convective heat transfer coefficient is determined using a correlation (Eq.4-37) from (Koschenz, 2000). For laminar flow, the convective heat transfer coefficent is calculated using a constant Nusselt number of 4.

Typical use and important parameters

Following parameters need to be set:

  • RadSlaCha is a record with all the parameters of the geometry, materials, and even number of discretization layers in the nakedTabs model.
  • mFlow_min is used to check the validity of the operating conditions and is by default half of the nominal mass flow rate.
  • A_floor is the surface area of (one side of) the radiant slab.
  • nDiscr can be used for discretizing the EmbeddedPipe along the flow direction. See above for a more detailed discussion.
  • nParCir can be used for calculating the pressure drops as if there were multiple EmbeddedPipes connected in parallel. The total mass flow rate is then split over multiple circuits and the pressure drop is calculated accordingly.
  • R_C is the thermal resistivity from the center of the TABS or floor heating system to the zones. Note that the upper and lower resistivities need to be calculated as if they were in parallel. This parameter has a default value based on RadSlaCha but it may be improved if necessary. The impact of the value of this parameter on the model performance is low except in cases of very low mass flow rates.

Options

By default dp_nominal is calculated by making an estimate of the total pipe length. This pressure drop can be an underestimation of the real pressure drop. The used pipe lengths can be changed in the Pressure drop tab. Parameter dp_nominal can be used to override the default calculation.

Validation

A limited verification has been performed in IDEAS.Fluid.HeatExchangers.RadiantSlab.Examples.EmbeddedPipeVerification.

References

EN 15377, Heating systems in buildings – Design of embedded water-based surface heating and cooling systems., 2008.

M. Koschenz and B. Lehmann, Thermoaktive Bauteilsysteme tabs. Dübendorf, Switzerland: EMPA Energyiesysteme/Haustechnik, 2000, ISBN: 9783905594195.

Transsolar, TRNSYS 16 - A TRaNsient SYstem Simulation program, User Manual. Volume 6: Multizone Building modeling with Type56 and TRNBuild. Madison, 2007.

Parameters

TypeNameDefaultDescription
IDEAS.Fluid.HeatExchangers.RadiantSlab.BaseClasses.RadiantSlabCharRadSlaCha
Modelica.Units.SI.LengthpipeDiaIntRadSlaCha.d_a - 2*RadSlaCha.s_rPipe internal diameter
Modelica.Units.SI.AreaA_floorTABS or floor heating surface area
IntegernDiscr1Number of series discretisations along the flow direction
RealnParCir1Number of parallel circuits in the tabs
Modelica.Units.SI.ThermalInsulanceR_r_valRadSlaCha.T*log(RadSlaCha.d_a/pipeDiaInt)/(2*Modelica.Constants.pi*RadSlaCha.lambda_r)Fixed thermal resistance value of thermal conduction through pipe wall * surface of floor between 2 pipes (see RadSlaCha documentation)
Modelica.Units.SI.ThermalInsulanceR_x_valRadSlaCha.T*(log(RadSlaCha.T/(3.14*RadSlaCha.d_a)) + corr)/(2*Modelica.Constants.pi*RadSlaCha.lambda_b)Fixed thermal resistance value of thermal conduction from pipe wall to layer
Realcorrif RadSlaCha.S_1/RadSlaCha.T > 0.3 and RadSlaCha.S_2/RadSlaCha.T > 0.3 and RadSlaCha.d_a/RadSlaCha.T < 0.2 then 0 else sum(((RadSlaCha.alp1/RadSlaCha.lambda_b*RadSlaCha.T - 2*Modelica.Constants.pi*s)/(RadSlaCha.alp1/RadSlaCha.lambda_b*RadSlaCha.T + 2*Modelica.Constants.pi*s)*exp(-4*Modelica.Constants.pi*s/RadSlaCha.T*RadSlaCha.S_2) + (RadSlaCha.alp2/RadSlaCha.lambda_b*RadSlaCha.T - 2*Modelica.Constants.pi*s)/(RadSlaCha.alp2/RadSlaCha.lambda_b*RadSlaCha.T + 2*Modelica.Constants.pi*s)*exp(-4*Modelica.Constants.pi*s/RadSlaCha.T*RadSlaCha.S_1) - 2*exp(-4*Modelica.Constants.pi*s/RadSlaCha.T*(RadSlaCha.S_1 + RadSlaCha.S_2)))/(exp(-4*Modelica.Constants.pi*s/RadSlaCha.T*(RadSlaCha.S_1 + RadSlaCha.S_2)) - (RadSlaCha.alp1/RadSlaCha.lambda_b*RadSlaCha.T + 2*Modelica.Constants.pi*s)/(RadSlaCha.alp1/RadSlaCha.lambda_b*RadSlaCha.T - 2*Modelica.Constants.pi*s)*(RadSlaCha.alp2/RadSlaCha.lambda_b*RadSlaCha.T + 2*Modelica.Constants.pi*s)/(RadSlaCha.alp2/RadSlaCha.lambda_b*RadSlaCha.T - 2*Modelica.Constants.pi*s)) for s in 1:10)Correction factor if the screed thickness(es) are too small compared to the pipe spacing and/or the pipe diameter is too large compared to the pipe spacing (Koschenz, 2000, Eq.4-24). The summation goes to 10 instead of infinity as this does not improve the accuracy.
Flow resistance
Modelica.Units.SI.Lengthroughness2.5e-5Absolute roughness of pipe, with a default for a smooth steel pipe
Modelica.Units.SI.LengthL_floorA_floor^(1/2)Floor length, along the pipe direction
RealN_pipesA_floor/L_floor/RadSlaCha.T - 1Number of parallel pipes in the slab
Modelica.Units.SI.LengthpipeBendEqLen2*(N_pipes - 1)*(2.267*RadSlaCha.T/2/pipeDiaInt + 6.18)*pipeDiaIntPipe bends equivalent length, default according to Fox and McDonald (chapter 8.7, twice the linearized losses of a 90 degree bend)
Modelica.Units.SI.LengthpipeEqLenpipeBendEqLen + (L_floor - 2*RadSlaCha.T)*N_pipesTotal pipe equivalent length, default assuming 180 dg turns starting at RadSlaCha.T from the end of the slab
Nominal condition
Modelica.Units.SI.MassFlowRatem_flowMinm_flow_nominal*0.5Minimal mass flow rate when in operation - used for validity check
Advanced
Booleanfrom_dpfalse= true, use m_flow = f(dp) else dp = f(m_flow)
BooleanhomotopyInitializationtrue= true, use homotopy method
Booleanlinearizedfalse= true, use linear relation between m_flow and dp for any mass flow rate
Thermal
Modelica.Units.SI.ThermalInsulanceR_c1/(RadSlaCha.lambda_b/RadSlaCha.S_1 + RadSlaCha.lambda_b/RadSlaCha.S_2)Specific thermal resistivity of (parallel) slabs connected to top and bottom of TABS / floor heating system

Components

TypeNameDefaultDescription
Modelica.Units.SI.TemperatureTincat(1, {senTemIn.T}, vol[1:nDiscr - 1].heatPort.T)
Modelica.Units.SI.PowerQThermal power going into the TABS / floor heating system
Modelica.Units.SI.ThermalInsulanceR_w_valIDEAS.Utilities.Math.Functions.spliceFunction(x = rey - (reyHi + reyLo)/2, pos = RadSlaCha.T^0.13/8/Modelica.Constants.pi*abs((pipeDiaInt/(m_flowSpLimit*L_r)))^0.87, neg = RadSlaCha.T/(4*Medium.thermalConductivity(sta_default)*Modelica.Constants.pi), deltax = (reyHi - reyLo)/2)Flow dependent resistance value of convective heat transfer inside pipe for both turbulent and laminar heat transfer.
Modelica.Units.SI.ThermalInsulanceR_tTotal equivalent specific resistivity as defined by Koschenz in eqn 4-59
Modelica.Units.SI.ThermalConductanceG_tEquivalent thermal conductance
Modelica.Units.SI.ThermalConductanceG_maxMaximum thermal conductance based on mass flow rate
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_bheatPortEmbPort to the core of a floor heating/concrete activation
Modelica.Units.SI.ReynoldsNumberreym_flow/nParCir/A_pipe*pipeDiaInt/mu_defaultReynolds number
IDEAS.Fluid.MixingVolumes.MixingVolumevol
FixedResistances.ParallelPressureDropres
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlowheatFlowWaterHeat flow rate that is extracted from the fluid
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlowheatFlowSolidHeat flow rate that is injected in the solid material
Modelica.Blocks.Math.Gainnegate
Modelica.Blocks.Sources.RealExpressionQ_tabs
Modelica.Blocks.Math.SumsumQTabsBlock that sums the volume heat flow rates
Modelica.Blocks.Interfaces.RealOutputQTotTotal thermal power going into the heat port
Sensors.TemperatureTwoPortsenTemInSensor for inlet temperature

Revisions

  • August 12, 2025, by Jelger Jansen:
    Fix correction term and wrong asserts and update documentation.
    See #1381.
  • March 20, 2020 by Filip Jorissen:
    Fixed inconsistency in the mass computation of the MixingVolume. See #1116.
  • January 31, 2020 by Filip Jorissen:
    Propagated allowFlowReversal in TemperatureTwoPort sensor. See #1105.
  • October 19, 2019 by Filip Jorissen:
    Removed discretization assert since we limit the heat flow rate to physically realistic values already using a limit on G_t. Revised documentation. See #863.
  • October 18, 2019 by Filip Jorissen:
    Using TemperatureTwoPort sensor. See #1081.
  • October 13, 2019 by Filip Jorissen:
    Bugfix for division by zero when dp_nominal=0, See #1031.
  • August 14, 2019 by Iago Cupeiro:
    Added output that computes the total TABS heat flow of the EmbeddedPipe.
  • April 16, 2019 by Filip Jorissen:
    Added checks for flow reversal. See #1006.
  • April 16, 2019 by Filip Jorissen:
    Removed computeFlowResistance=false since this parameter was hidden in the advanced tab and this setting can easily lead to singularities. See #1014.
  • June 21, 2018 by Filip Jorissen:
    Set final alpha=0 in prescribedHeatFlow to avoid large algebraic loops in specific cases. See #852.
  • April 26, 2017 by Filip Jorissen:
    Removed useSimplifiedRt parameter since this leads to a violation of the second law for small flow rates. See #717.
  • November, 2015, by Filip Jorissen:
    Revised implementation for small flow rates.
  • 2015, by Filip Jorissen:
    Revised implementation
  • March, 2014, by Filip Jorissen:
    IDEAS baseclasses
  • May, 2013, by Roel De Coninck:
    Documentation
  • April, 2012, by Roel De Coninck:
    Rebasing on common Partial_Emission
  • 2011, by Roel De Coninck: First version and validation