This package contains functions that are used to construct the models in Buildings.Fluid.HeatExchangers.RadiantSlabs.
| Name | Description |
|---|---|
| Average fictitious resistance for plane that contains the pipes |
This function computes a fictitious thermal resistance between the pipe outer wall and a fictitious, average temperature of the plane that contains the pipes. The equation is the same as is implemented in TRNSYS 17. Different equations are used for
sysTyp == Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.Types.SystemType.Floor),
sysTyp == Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.Types.SystemType.Ceiling_Wall_or_Capillary
and disPip/dPipOut ≥ 5.8), and
sysTyp == Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.Types.SystemType.Ceiling_Wall_or_Capillary
and disPip/dPipOut < 5.8).
The resistance Rx is based on a steady-state heat transfer analysis. Therefore, it is
only valid during steady-state.
For a fully dynamic model, a finite element method for the radiant slab would need to be implemented.
| Type | Name | Default | Description |
|---|---|---|---|
| Distance | disPip | pipe distance [m] | |
| Diameter | dPipOut | pipe outside diameter [m] | |
| ThermalConductivity | k | pipe level construction element thermal conductivity [W/(m.K)] | |
| SystemType | sysTyp | Type of radiant system | |
| ThermalConductivity | kIns | floor slab insulation thermal conductivity [W/(m.K)] | |
| Thickness | dIns | floor slab insulation thickness [m] |
| Type | Name | Description |
|---|---|---|
| ThermalInsulance | Rx | Thermal insulance [m2.K/W] |
function AverageResistance
"Average fictitious resistance for plane that contains the pipes"
input Modelica.SIunits.Distance disPip "pipe distance";
input Modelica.SIunits.Diameter dPipOut "pipe outside diameter";
input Modelica.SIunits.ThermalConductivity k
"pipe level construction element thermal conductivity";
input Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.Types.SystemType
sysTyp "Type of radiant system";
input Modelica.SIunits.ThermalConductivity kIns
"floor slab insulation thermal conductivity";
input Modelica.SIunits.Thickness dIns "floor slab insulation thickness";
output Modelica.SIunits.ThermalInsulance Rx "Thermal insulance";
protected
Real cri(unit="1")
"Criteria used to select formula for computation of resistance";
Real infSum
"Approximation to infinite sum used to compute the thermal resistance";
Real alpha(unit="W/(m2.K)", min=0)
"Criteria used to select formula for computation of resistance";
Real fac "Factor used for systems in wall or ceiling, or for capillary tubes";
algorithm
if sysTyp == Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.Types.SystemType.Floor then
alpha := kIns/dIns;
if alpha >= 1.212 then
Modelica.Utilities.Streams.print("Warning: In RadiantAverageResistance, require alpha = kIns/dIns >= 1.212 W/(m2.K).\n" +
" Obtained alpha = " + String(alpha) + " W/(m2.K)\n" +
" kIns = " + String(kIns) + " W/(m.K)\n" +
" dIns = " + String(dIns) + " m\n" +
" For these values, the radiant slab model is outside its valid range.\n");
end if;
infSum := - sum(((alpha/k*disPip - 2*Modelica.Constants.pi*s)/
(alpha/k*disPip + 2*Modelica.Constants.pi*s))
*Modelica.Math.exp(-4*Modelica.Constants.pi*s*dIns/disPip)/s for s in 1:100);
Rx := disPip*(Modelica.Math.log(disPip/Modelica.Constants.pi/dPipOut) + infSum)
/(2*Modelica.Constants.pi*k);
fac := 0; // not needed.
elseif sysTyp == Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.Types.SystemType.Ceiling_Wall_or_Capillary then
// Branch for radiant ceilings, radiant walls, and systems with capillary heat exchangers
cri := disPip/dPipOut;
fac := if (cri >= 5.8) then Modelica.Math.log(cri/Modelica.Constants.pi) else (cri/Modelica.Constants.pi/3);
Rx := disPip/2/Modelica.Constants.pi/k * fac;
else
assert(sysTyp == Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.Types.SystemType.Floor or
sysTyp == Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.Types.SystemType.Ceiling_Wall_or_Capillary,
"Invalid value for sysTyp in \"Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.Functions.AverageResistance\"
Check parameters of the radiant slab model.");
cri := 0;
fac := 0;
Rx := 1;
end if;
end AverageResistance;