The figure below shows the thermal resistance network of the model for an example in which the pipes are embedded in the concrete slab, and the layers below the pipes are insulation and reinforced concrete.

The construction `con_a`

computes transient heat
conduction between the surface heat port `surf_a`

and
the plane that contains the pipes, with the heat port
`con_a.port_a`

connecting to `surf_a`

.
Similarly, the construction `con_b`

is between the plane
that contains the pipes and the surface heat port
`sur_b`

, with the heat port `con_b.port_b`

connecting to `surf_b`

. The temperature of the plane
that contains the pipes is computes using a fictitious resistance
`RFic`

, which is computed by
Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.Functions.AverageResistance.
There is also a resistance for the pipe wall `RPip`

and
a convective heat transfer coefficient between the fluid and the
pipe inside wall. The convective heat transfer coefficient is a
function of the mass flow rate and is computed in
Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.PipeToSlabConductance.

The material layers are declared by the parameter
`layers`

, which is an instance of Buildings.HeatTransfer.Data.OpaqueConstructions.
The first layer of this material is the one at the heat port
`surf_a`

, and the last layer is at the heat port
`surf_b`

. The parameter `iLayPip`

must be set
to the number of the interface in which the pipes are located. For
example, consider the following floor slab.

Buildings.HeatTransfer.Data.OpaqueConstructions.Generic layers( nLay=3, material={ Buildings.HeatTransfer.Data.Solids.Generic( x=0.08, k=1.13, c=1000, d=1400, nSta=5), Buildings.HeatTransfer.Data.Solids.Generic( x=0.05, k=0.04, c=1400, d=10), Buildings.HeatTransfer.Data.Solids.Generic( x=0.2, k=1.8, c=1100, d=2400)}) "Material definition for floor construction";

Note that we set `nSta=5`

in the first material
layer. In this example, this material layer is the concrete layer
in which the pipes are embedded. By setting `nSta=5`

the
simulation is forced to be done with five state variables in this
layer. The default setting would have led to only one state
variable in this layer.

Since the pipes are at the interface of the concrete and the
insulation, we set `iLayPip=1`

.

If the parameter `heatTransfer=EpsilonNTU`

, then the
heat transfer between the fluid and the fictitious layer
temperature is computed using an *ε-NTU* model. If
`heatTransfer=FiniteDifference`

, then the pipe and the
slab is discretized along the water flow direction and a finite
difference model is used to compute the heat transfer. The
parameter `nSeg`

determines how many times the
resistance network is instantiated along the flow path. However,
all instances connect to the same surface temperature heat ports
`surf_a`

and `surf_b`

.

The default value for is `nSeg=1`

if
`heatTransfer=EpsilonNTU`

and `nSeg=5`

if
`heatTransfer=FiniteDifference`

. For a typical building
simulation, we recommend to use the default settings of
`heatTransfer=EpsilonNTU`

and `nSeg=1`

, as
these lead to fastest computing time. However, for feedback control
design in which the outlet temperature of the slab is used, one may
want to use `heatTransfer=FiniteDifference`

and
`nSeg=5`

. This will cause the model to use *5*
parallel segments in which heat is conducted between the control
volume of the pipe fluid and the surfaces of the slab. While the
heat flow rate at the surface does not change noticeably between
these two configurations, the dynamics of the water outlet
temperature from the slab is significantly different. The figure
below shows the water outlet temperature response to a step change
in the volume flow rate at *t=720* minutes. One can see that
if `heatTransfer=EpsilonNTU`

and `nSeg=1`

,
the response looks like a first order response (because
`nSeg=1`

), while with
`heatTransfer=FiniteDifference`

and `nSeg=5`

,
the response is higher order. This figure was generated using
Buildings.Fluid.HeatExchangers.RadiantSlabs.Examples.StepResponseFiniteDifference
and
Buildings.Fluid.HeatExchangers.RadiantSlabs.Examples.StepResponseEpsilonNTU\.

The initialization of the fluid in the pipes and of the slab temperature are independent of each other.

To initialize the medium, the same mechanism is used as for any
other fluid volume, such as Buildings.Fluid.MixingVolumes.MixingVolume.
Specifically, the parameters `energyDynamics`

and
`massDynamics`

on the `Dynamics`

tab are
used. Depending on the values of these parameters, the medium is
initialized using the values `p_start`

,
`T_start`

, `X_start`

and
`C_start`

, provided that the medium model contains
species concentrations `X`

and trace substances
`C`

.

To initialize the construction temperatures, the parameters
`steadyStateInitial`

, `T_a_start`

,
`T_b_start`

and `T_c_start`

are used. By
default, `T_c_start`

is set to the temperature that
leads to steady-state heat transfer between the surfaces
`surf_a`

and `surf_b`

, whose temperatures are
both set to `T_a_start`

and `T_b_start`

.

The parameter `pipe`

, which is an instance of the
record Buildings.Fluid.Data.Pipes,
defines the pipe material and geometry. The parameter
`disPip`

declares the spacing between the pipes and the
parameter `length`

, with default
`length=A/disPip`

where `A`

is the slab
surface area, declares the whole length of the pipe circuit.

The parameter `sysTyp`

is used to select the equation
that is used to compute the average temperature in the plane of the
pipes. It needs to be set to the following values:

sysTyp | System type |
---|---|

BaseClasses.Types.SystemType.Floor | Radiant heating or cooling systems with pipes embedded in the concrete slab above the thermal insulation. |

BaseClasses.Types.SystemType.Ceiling_Wall_or_Capillary | Radiant heating or cooling systems with pipes embedded in the concrete slab in the ceiling, or radiant wall systems. Radiant heating and cooling systems with capillary heat exchanger at the construction surface. |

The analogy with a three-resistance network and the
corresponding equation for `Rx`

is based on a
steady-state heat transfer analysis. Therefore, it is only valid
during steady-state. For a fully dynamic model, a three-dimensional
finite element method for the radiant slab would need to be
implemented.

To separate the material declaration `layers`

into
layers between the pipes and heat port `surf_a`

, and
between the pipes and `surf_b`

, the vector
`layers.material[nLay]`

is partitioned into
`layers.material[1:iLayPip]`

and
`layers.material[iLayPip+1:nLay]`

. The respective
partitions are then assigned to the models for heat conduction
between the plane with the pipes and the construction surfaces,
`con_a`

and `con_b`

.

Generated at 2021-03-04T02:00:13Z by OpenModelicaOpenModelica 1.18.0~dev-106-gaf583a5 using GenerateDoc.mos