Buildings.HeatTransfer.Convection

Package with models for convective heat transfer

Information

This package provides component models to compute heat convection.

Extends from Modelica.Icons.VariantsPackage (Icon for package containing variants).

Package Content

Name Description
Buildings.HeatTransfer.Convection.Exterior Exterior Model for a exterior (outside) convective heat transfer
Buildings.HeatTransfer.Convection.Interior Interior Model for a interior (room-side) convective heat transfer
Buildings.HeatTransfer.Convection.Functions Functions Functions for convective heat transfer
Buildings.HeatTransfer.Convection.Examples Examples Collection of models that illustrate model use and test models
Buildings.HeatTransfer.Convection.Validation Validation Collection of validation models
Buildings.HeatTransfer.Convection.BaseClasses BaseClasses Package with base classes for Buildings.HeatTransfer.Convection

Buildings.HeatTransfer.Convection.Exterior Buildings.HeatTransfer.Convection.Exterior

Model for a exterior (outside) convective heat transfer

Buildings.HeatTransfer.Convection.Exterior

Information

This is a model for a convective heat transfer for exterior, outside-facing surfaces. The parameter conMod determines the model that is used to compute the heat transfer coefficient:

  1. If conMod= Buildings.HeatTransfer.Types.ExteriorConvection.Fixed , then the convective heat transfer coefficient is set to the value specified by the parameter hFixed.

  2. If conMod= Buildings.HeatTransfer.Types.ExteriorConvection.TemperatureWind , then the convective heat transfer coefficient is computed based on wind speed, wind direction and temperature difference.

    The total convection coefficient ht is the sum of the temperature-driven free convection coefficient hn and the wind-driven forced convection coefficient hf,

    ht = hn + hf

    The free convection coefficient hn is computed in the same way as in Buildings.HeatTransfer.Convection.Interior. The forced convection coefficient hf is computed based on a correlation by Sparrow, Ramsey, and Mass (1979), which is

    hf = 2.537 W R √( P v ⁄ A )

    where W=1 for windward surfaces and W=0.5 for leeward surfaces, with leeward defined as greater than 100 degrees from normal incidence, R is a surface roughness multiplier, P is the perimeter of the surface and A is the area of the surface. This is the same equation as implemented in EnergyPlus 6.0.

    We make the simplified assumption that the surface is square, and hence we set

    hf = 2.537 W R √( 4 v ⁄ √(A) )

    The surface roughness is specified by the parameter surfaceRoughness which has to be set to a type of Buildings.HeatTransfer.Types.SurfaceRoughness.The coefficients for the surface roughness are

    Roughness index R Example material
    VeryRough 2.17 Stucco
    Rough 1.67 Brick
    MediumRough 1.52 Concrete
    MediumSmooth1.13 Clear pine
    Smooth 1.11 Smooth plaster
    VerySmooth 1.00 Glass

References

Sparrow, E. M., J. W. Ramsey, and E. A. Mass. 1979. Effect of Finite Width on Heat Transfer and Fluid Flow about an Inclined Rectangular Plate. Journal of Heat Transfer, Vol. 101, p. 204.

Walton, G. N. 1981. Passive Solar Extension of the Building Loads Analysis and System Thermodynamics (BLAST) Program, Technical Report, United States Army Construction Engineering Research Laboratory, Champaign, IL.

Extends from Buildings.HeatTransfer.Convection.BaseClasses.PartialConvection (Partial model for heat convection).

Parameters

TypeNameDefaultDescription
AreaA Heat transfer area [m2]
ExteriorConvectionconModBuildings.HeatTransfer.Types...Convective heat transfer model
CoefficientOfHeatTransferhFixed3Constant convection coefficient [W/(m2.K)]
SurfaceRoughnessroughnessBuildings.HeatTransfer.Types...Surface roughness
Angleazi Surface azimuth [rad]
Angletiltil(displayUnit="deg")Surface tilt [rad]
Initialization
TemperatureDifferencedT.start0= solid.T - fluid.T [K]

Connectors

TypeNameDescription
HeatPort_asolid 
HeatPort_bfluid 
input RealInputvWind speed [m/s]
input RealInputdirWind direction (0=wind from North) [rad]

Modelica definition

model Exterior "Model for a exterior (outside) convective heat transfer" extends Buildings.HeatTransfer.Convection.BaseClasses.PartialConvection; parameter Buildings.HeatTransfer.Types.ExteriorConvection conMod= Buildings.HeatTransfer.Types.ExteriorConvection.TemperatureWind "Convective heat transfer model"; parameter Modelica.SIunits.CoefficientOfHeatTransfer hFixed=3 "Constant convection coefficient"; parameter Buildings.HeatTransfer.Types.SurfaceRoughness roughness= Buildings.HeatTransfer.Types.SurfaceRoughness.Medium "Surface roughness"; parameter Modelica.SIunits.Angle azi "Surface azimuth"; parameter Modelica.SIunits.Angle til(displayUnit="deg") "Surface tilt"; Modelica.Blocks.Interfaces.RealInput v(unit="m/s") "Wind speed"; Modelica.Blocks.Interfaces.RealInput dir(unit="rad", displayUnit="deg", min=0, max=2*Modelica.Constants.pi) "Wind direction (0=wind from North)"; Modelica.SIunits.CoefficientOfHeatTransfer hF "Convective heat transfer coefficient due to forced convection"; Modelica.SIunits.HeatFlux qN_flow "Convective heat flux from solid -> fluid due to natural convection"; Modelica.SIunits.HeatFlux qF_flow "Convective heat flux from solid -> fluid due to forced convection"; protected constant Modelica.SIunits.Velocity v_small = 0.5 "Small value for wind velocity below which equations are regularized"; final parameter Real cosTil=Modelica.Math.cos(til) "Cosine of window tilt"; final parameter Real sinTil=Modelica.Math.sin(til) "Sine of window tilt"; final parameter Boolean isCeiling = abs(sinTil) < 10E-10 and cosTil > 0 "Flag, true if the surface is a ceiling"; final parameter Boolean isFloor = abs(sinTil) < 10E-10 and cosTil < 0 "Flag, true if the surface is a floor"; parameter Real R(fixed=false) "Surface roughness"; Real W(min=0.5, max=1) "Wind direction modifier"; initial equation if (roughness == Buildings.HeatTransfer.Types.SurfaceRoughness.VeryRough) then R=2.17; elseif (roughness == Buildings.HeatTransfer.Types.SurfaceRoughness.Rough) then R=1.67; elseif (roughness == Buildings.HeatTransfer.Types.SurfaceRoughness.Medium) then R=1.52; elseif (roughness == Buildings.HeatTransfer.Types.SurfaceRoughness.MediumSmooth) then R=1.13; elseif (roughness == Buildings.HeatTransfer.Types.SurfaceRoughness.Smooth) then R=1.11; elseif (roughness == Buildings.HeatTransfer.Types.SurfaceRoughness.VerySmooth) then R=1.00; else R=0; end if; equation if (conMod == Buildings.HeatTransfer.Types.ExteriorConvection.Fixed) then qN_flow = hFixed * dT; W = 1; hF = 0; qF_flow = 0; else // Even if hCon is a step function with a step at zero, // the product hCon*dT is differentiable at zero with // a continuous first derivative if isCeiling then qN_flow = Buildings.HeatTransfer.Convection.Functions.HeatFlux.ceiling(dT=dT); elseif isFloor then qN_flow = Buildings.HeatTransfer.Convection.Functions.HeatFlux.floor(dT=dT); else qN_flow = Buildings.HeatTransfer.Convection.Functions.HeatFlux.wall(dT=dT); end if; // Forced convection W = Buildings.Utilities.Math.Functions.regStep( x = v-v_small/2, y1 = Buildings.HeatTransfer.Convection.Functions.windDirectionModifier( azi=azi, dir=dir), y2 = 0.75, x_small=v_small/4); hF = 2.537 * W * R * 2 / A^(0.25) * Buildings.Utilities.Math.Functions.regNonZeroPower( x=v, n=0.5, delta=v_small); qF_flow = hF*dT; end if; q_flow = qN_flow + qF_flow; end Exterior;

Buildings.HeatTransfer.Convection.Interior Buildings.HeatTransfer.Convection.Interior

Model for a interior (room-side) convective heat transfer

Buildings.HeatTransfer.Convection.Interior

Information

This is a model for a convective heat transfer for interior, room-facing surfaces. The parameter conMod determines the model that is used to compute the heat transfer coefficient:

Extends from Buildings.HeatTransfer.Convection.BaseClasses.PartialConvection (Partial model for heat convection).

Parameters

TypeNameDefaultDescription
AreaA Heat transfer area [m2]
InteriorConvectionconModBuildings.HeatTransfer.Types...Convective heat transfer model
CoefficientOfHeatTransferhFixed3Constant convection coefficient [W/(m2.K)]
Angletiltil(displayUnit="deg")Surface tilt [rad]
Initialization
TemperatureDifferencedT.start0= solid.T - fluid.T [K]

Connectors

TypeNameDescription
HeatPort_asolid 
HeatPort_bfluid 

Modelica definition

model Interior "Model for a interior (room-side) convective heat transfer" extends Buildings.HeatTransfer.Convection.BaseClasses.PartialConvection; constant Boolean homotopyInitialization = true "= true, use homotopy method"; parameter Buildings.HeatTransfer.Types.InteriorConvection conMod= Buildings.HeatTransfer.Types.InteriorConvection.Fixed "Convective heat transfer model"; parameter Modelica.SIunits.CoefficientOfHeatTransfer hFixed=3 "Constant convection coefficient"; parameter Modelica.SIunits.Angle til(displayUnit="deg") "Surface tilt"; protected constant Modelica.SIunits.Temperature dT0 = 2 "Initial temperature used in homotopy method"; final parameter Real cosTil=Modelica.Math.cos(til) "Cosine of window tilt"; final parameter Real sinTil=Modelica.Math.sin(til) "Sine of window tilt"; final parameter Boolean isCeiling = abs(sinTil) < 10E-10 and cosTil > 0 "Flag, true if the surface is a ceiling"; final parameter Boolean isFloor = abs(sinTil) < 10E-10 and cosTil < 0 "Flag, true if the surface is a floor"; initial equation assert(homotopyInitialization, "In " + getInstanceName() + ": The constant homotopyInitialization has been modified from its default value. This constant will be removed in future releases.", level = AssertionLevel.warning); equation if (conMod == Buildings.HeatTransfer.Types.InteriorConvection.Fixed) then q_flow = hFixed * dT; else // Even if hCon is a step function with a step at zero, // the product hCon*dT is differentiable at zero with // a continuous first derivative if homotopyInitialization then if isCeiling then q_flow = homotopy(actual=Buildings.HeatTransfer.Convection.Functions.HeatFlux.ceiling(dT=dT), simplified=dT/dT0*Buildings.HeatTransfer.Convection.Functions.HeatFlux.ceiling(dT=dT0)); elseif isFloor then q_flow = homotopy(actual=Buildings.HeatTransfer.Convection.Functions.HeatFlux.floor(dT=dT), simplified=dT/dT0*Buildings.HeatTransfer.Convection.Functions.HeatFlux.floor(dT=dT0)); else q_flow = homotopy(actual=Buildings.HeatTransfer.Convection.Functions.HeatFlux.wall(dT=dT), simplified=dT/dT0*Buildings.HeatTransfer.Convection.Functions.HeatFlux.wall(dT=dT0)); end if; else if isCeiling then q_flow = Buildings.HeatTransfer.Convection.Functions.HeatFlux.ceiling(dT=dT); elseif isFloor then q_flow = Buildings.HeatTransfer.Convection.Functions.HeatFlux.floor(dT=dT); else q_flow = Buildings.HeatTransfer.Convection.Functions.HeatFlux.wall(dT=dT); end if; end if; end if; end Interior;