LBL logo

Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.Functions

Functions for convective heat transfer

Information

This package contains functions that are used to construct the models in Buildings.Fluid.HeatExchangers.RadiantSlabs.

Package Content

NameDescription
Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.Functions.AverageResistance AverageResistance Average fictitious resistance for plane that contains the pipes

Buildings.Fluid.HeatExchangers.RadiantSlabs.BaseClasses.Functions.AverageResistance

Average fictitious resistance for plane that contains the pipes

Information

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

Limitations

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.

Inputs

TypeNameDefaultDescription
DistancedisPip pipe distance [m]
DiameterdPipOut pipe outside diameter [m]
ThermalConductivityk pipe level construction element thermal conductivity [W/(m.K)]
SystemTypesysTyp Type of radiant system
ThermalConductivitykIns floor slab insulation thermal conductivity [W/(m.K)]
ThicknessdIns floor slab insulation thickness [m]

Outputs

TypeNameDescription
ThermalInsulanceRxThermal insulance [m2.K/W]

Modelica definition

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;

Automatically generated Thu Oct 24 15:09:20 2013.