LBL logo

Buildings.HeatTransfer.Windows

Package with models for windows

Information

This package contains models for heat transfer in windows.

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

Package Content

NameDescription
Buildings.HeatTransfer.Windows.Window Window Model for a window
Buildings.HeatTransfer.Windows.ExteriorHeatTransfer ExteriorHeatTransfer Model for heat convection and radiation at the exterior surface of a window that may have a shading device
Buildings.HeatTransfer.Windows.InteriorHeatTransferConvective InteriorHeatTransferConvective Model for heat convection at the interior surface of a window that may have a shading device
Buildings.HeatTransfer.Windows.FixedShade FixedShade Model for exterior shade due to overhang and/or side fin
Buildings.HeatTransfer.Windows.Overhang Overhang For a window with an overhang, outputs the fraction of the window area exposed to the sun
Buildings.HeatTransfer.Windows.SideFins SideFins For a window with side fins, outputs the fraction of the window area exposed to the sun
Buildings.HeatTransfer.Windows.Examples Examples Collection of models that illustrate model use and test models
Buildings.HeatTransfer.Windows.BaseClasses BaseClasses Package with base classes for Buildings.HeatTransfer.Windows
Buildings.HeatTransfer.Windows.Functions Functions Functions used in window radiation model

Buildings.HeatTransfer.Windows.Window Buildings.HeatTransfer.Windows.Window

Model for a window

Buildings.HeatTransfer.Windows.Window

Information

Overview

This is a model for a window system. The equations are similar to the equations used in the Window 5 model and described in TARCOG 2006. The model computes the heat balance from the exterior surface to the room-facing surface for a window system. The window system can have an exterior or an interior shade, but not both, or it can have no shade. The convective heat transfer between the window system and the outside air or the room is not computed by this model. They can be computed using the models Buildings.HeatTransfer.Windows.ExteriorHeatTransfer and Buildings.HeatTransfer.Windows.InteriorHeatTransfer.

Limitations

To calculate the angular transmittance, reflectance and absorptance of a glazing system, Window 5 model first calculates the value for each wave length, then calculate the weighted value over entire wave lengths. Current window model in Buildings library only uses the weighted value of each glass. As a result, there are some differences in prediciton between the current Modelica window model and WINDOW 5. The difference is small for single layer window or multi-layer window with the same glasses. But it can be large for multi-layer window with different glasses.

Parameters

This model takes as the parameter glaSys a data record from the package Buildings.HeatTransfer.Data.GlazingSystems. This data record specifies the properties of the glasses, the gas fills, the frame and of the shades, if any shade is present. Whether a shade is present or not is determined by the parameters glaSys.haveExteriorShade and glaSys.haveInteriorShade.

The parameter linearize can be used to linearize the model equations.

Ports

If a shade is present, then the input port u is used to determine the shade position. Set u=0 to have the window in the unshaded mode, and set u=1 to have the window shade completely deployed. Any intermediate value is possible. If no shade is present, then this port will be removed.

For the heat ports, the suffix _a is used for the exterior, outside-facing side of the window, and the suffix _b is used for the interior, room-facing surface of the window. Each side has heat ports that connect to the glass, to the frame, and, optionally, to the shade. If no shade is present, then the heat port to the shade will be removed.

Description of the Physics

The model has three main submodels that implement the relevant heat balances:

  1. The model frame computes heat conduction through the frame.
  2. The model glaUns computes the heat balance of the part of the window that is unshaded. For example, if u=0.2, then this model accounts for the 80% of the window that is not behind the shade or blind.
  3. The model glaSha computes the heat balance of the part of the window that is shaded. For example, if u=0.2, then this model accounts for the 20% of the window that is behind the shade or blind. If the parameter glaSys specifies that the window has no exterior and no interior shade, then the model glaSha will be removed.

The models glaUns and glaSha compute the solar radiation that is absorbed by each glass pane and the solar radiation that is transitted through the window as a function of the solar incidence angle. They then compute a heat balance that takes into account heat conduction through the glass, heat convection through the gas layer, and infrared radiation from the exterior and the room through the glass and gas layers. The infrared radiative heat exchange is computed using a radiosity balance. Heat conduction through the frame is computed using a heat flow path that is parallel to the glazing system, i.e., there is no heat exchange between the frame and the glazing layer.

Validation

The window model has been validated by using measurement data at LBNL's Test Cell 71T and by using a comparative model validation with the WINDOW 6 program. These validations are described in Nouidui et al. (2012). The window model has also been validated as part of the BESTEST validations that are implemented in Buildings.Rooms.Examples.BESTEST.

References

TARCOG 2006: Carli, Inc., TARCOG: Mathematical models for calculation of thermal performance of glazing systems with or without shading devices, Technical Report, Oct. 17, 2006.

Thierry Stephane Nouidui, Michael Wetter, and Wangda Zuo. Validation of the window model of the Modelica Buildings library. Proc. of the 5th SimBuild Conference, Madison, WI, USA, August 2012.

Parameters

TypeNameDefaultDescription
GenericglaSys Glazing system
AreaA Heat transfer area [m2]
RealfFra0.1Fraction of frame
BooleanlinearizefalseSet to true to linearize emissive power
Angletil Surface tilt [rad]

Connectors

TypeNameDescription
output RadiosityOutflowJOutUns_aOutgoing radiosity that connects to unshaded part of glass at exterior side [W]
input RadiosityInflowJInUns_aIncoming radiosity that connects to unshaded part of glass at exterior side [W]
output RadiosityOutflowJOutSha_aOutgoing radiosity that connects to shaded part of glass at exterior side [W]
input RadiosityInflowJInSha_aIncoming radiosity that connects to shaded part of glass at exterior side [W]
output RadiosityOutflowJOutUns_bOutgoing radiosity that connects to unshaded part of glass at room-side [W]
input RadiosityInflowJInUns_bIncoming radiosity that connects to unshaded part of glass at room-side [W]
output RadiosityOutflowJOutSha_bOutgoing radiosity that connects to shaded part of glass at room-side [W]
input RadiosityInflowJInSha_bIncoming radiosity that connects to shaded part of glass at room-side [W]
HeatPort_aglaUns_aHeat port at unshaded glass of exterior-facing surface
HeatPort_bglaUns_bHeat port at unshaded glass of room-facing surface
HeatPort_aglaSha_aHeat port at shaded glass of exterior-facing surface
HeatPort_bglaSha_bHeat port at shaded glass of room-facing surface
HeatPort_afra_aHeat port at frame of exterior-facing surface
HeatPort_bfra_bHeat port at frame of room-facing surface
input RealInputuShaControl signal for the shading device. 0: unshaded; 1: fully shaded (removed if no shade is present)
input RealInputQAbsUns_flow[glaSys.nLay]Solar radiation absorbed by unshaded part of glass [W]
input RealInputQAbsSha_flow[glaSys.nLay]Solar radiation absorbed by shaded part of glass [W]

Modelica definition

model Window "Model for a window"

  parameter Buildings.HeatTransfer.Data.GlazingSystems.Generic glaSys 
    "Glazing system";
  parameter Modelica.SIunits.Area A "Heat transfer area";
  parameter Real fFra(min=0, max=1)=0.1 "Fraction of frame";
  final parameter Modelica.SIunits.Area AFra = fFra*A "Frame area";
  final parameter Modelica.SIunits.Area AGla = A-AFra "Glass area";
  parameter Boolean linearize=false "Set to true to linearize emissive power";
  parameter Modelica.SIunits.Angle til(displayUnit="deg") "Surface tilt";

  Interfaces.RadiosityOutflow JOutUns_a 
    "Outgoing radiosity that connects to unshaded part of glass at exterior side";
  Interfaces.RadiosityInflow JInUns_a 
    "Incoming radiosity that connects to unshaded part of glass at exterior side";
  Interfaces.RadiosityOutflow JOutSha_a if haveShade 
    "Outgoing radiosity that connects to shaded part of glass at exterior side";
  Interfaces.RadiosityInflow JInSha_a if haveShade 
    "Incoming radiosity that connects to shaded part of glass at exterior side";

  Interfaces.RadiosityOutflow JOutUns_b 
    "Outgoing radiosity that connects to unshaded part of glass at room-side";
  Interfaces.RadiosityInflow JInUns_b 
    "Incoming radiosity that connects to unshaded part of glass at room-side";
  Interfaces.RadiosityOutflow JOutSha_b if haveShade 
    "Outgoing radiosity that connects to shaded part of glass at room-side";
  Interfaces.RadiosityInflow JInSha_b if haveShade 
    "Incoming radiosity that connects to shaded part of glass at room-side";

  Buildings.HeatTransfer.Windows.BaseClasses.CenterOfGlass glaUns(
    final glaSys=glaSys,
    final A=AGla,
    final til=til,
    final linearize=linearize) "Model for unshaded center of glass";

  Buildings.HeatTransfer.Windows.BaseClasses.CenterOfGlass glaSha(
    final glaSys=glaSys,
    final A=AGla,
    final til=til,
    final linearize=linearize) if haveShade "Model for shaded center of glass";

  Modelica.Thermal.HeatTransfer.Components.ThermalConductor frame(G=AFra*
        glaSys.UFra) "Thermal conductance of frame";

  Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a glaUns_a 
    "Heat port at unshaded glass of exterior-facing surface";
  Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_b glaUns_b 
    "Heat port at unshaded glass of room-facing surface";
  Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a glaSha_a if haveShade 
    "Heat port at shaded glass of exterior-facing surface";
  Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_b glaSha_b if haveShade 
    "Heat port at shaded glass of room-facing surface";

  Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a fra_a 
    "Heat port at frame of exterior-facing surface";
  Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_b fra_b 
    "Heat port at frame of room-facing surface";
  Modelica.Blocks.Interfaces.RealInput uSha(min=0, max=1) if 
       haveShade 
    "Control signal for the shading device. 0: unshaded; 1: fully shaded (removed if no shade is present)";
    

  Modelica.Blocks.Interfaces.RealInput QAbsUns_flow[glaSys.nLay](each unit="W",
      each quantity="Power") 
    "Solar radiation absorbed by unshaded part of glass";
  Modelica.Blocks.Interfaces.RealInput QAbsSha_flow[glaSys.nLay](each unit="W",
      each quantity="Power") if haveShade 
    "Solar radiation absorbed by shaded part of glass";

protected 
  final parameter Boolean haveShade = glaSys.haveExteriorShade or glaSys.haveInteriorShade 
    "Parameter, equal to true if the window has a shade";

  BaseClasses.ShadingSignal shaSig(final haveShade=glaSys.haveExteriorShade or glaSys.haveInteriorShade) 
    "Block to constrain the shading control signal to be strictly within (0, 1) if a shade is present";
    

equation 
  connect(frame.port_a, fra_a);
  connect(frame.port_b, fra_b);

  connect(glaUns.glass_a, glaUns_a);
  connect(glaUns.glass_b, glaUns_b);
  connect(shaSig.yCom, glaUns.u);
  connect(shaSig.y, glaSha.u);
  connect(shaSig.u, uSha);
  connect(glaSha.glass_a, glaSha_a);
  connect(glaSha.glass_b, glaSha_b);
  connect(JInUns_a, glaUns.JIn_a);
  connect(glaUns.JOut_a, JOutUns_a);
  connect(glaUns.JOut_b, JOutUns_b);
  connect(JInUns_b, glaUns.JIn_b);
  connect(JInSha_a, glaSha.JIn_a);
  connect(glaSha.JOut_a, JOutSha_a);
  connect(glaSha.JOut_b, JOutSha_b);
  connect(JInSha_b, glaSha.JIn_b);
  connect(glaUns.QAbs_flow, QAbsUns_flow);

  connect(glaSha.QAbs_flow,QAbsSha_flow);

end Window;

Buildings.HeatTransfer.Windows.ExteriorHeatTransfer Buildings.HeatTransfer.Windows.ExteriorHeatTransfer

Model for heat convection and radiation at the exterior surface of a window that may have a shading device

Buildings.HeatTransfer.Windows.ExteriorHeatTransfer

Information

Model for the convective heat transfer between a window shade, a window surface and the room air. This model is applicable for the outside-facing surface of a window system and can be used with the model Buildings.HeatTransfer.Windows.Window.

This model adds the convective heat transfer coefficient to its base model.

Extends from BaseClasses.PartialWindowBoundaryCondition (Partial model for heat convection or radiation between a possibly shaded window that can be outside or inside the room).

Parameters

TypeNameDefaultDescription
AreaA Heat transfer area of frame and window [m2]
RealfFra Fraction of window frame divided by total window area
BooleanlinearizeRadiation Set to true to linearize emissive power
RealvieFacSky View factor from receiving surface to sky [1]
Shading
BooleanhaveExteriorShade Set to true if window has exterior shade (at surface a)
BooleanhaveInteriorShade Set to true if window has interior shade (at surface b)
BooleanthisSideHasShadehaveExteriorShadeSet to true if this side of the model has a shade
EmissivityabsIRSha_air Infrared absorptivity of shade surface that faces air [1]
EmissivityabsIRSha_glass Infrared absorptivity of shade surface that faces glass [1]
TransmissionCoefficienttauIRSha_air Infrared transmissivity of shade for radiation coming from the exterior or the room [1]
TransmissionCoefficienttauIRSha_glass Infrared transmissivity of shade for radiation coming from the glass [1]

Connectors

TypeNameDescription
input RealInputuShaInput connector, used to scale the surface area to take into account an operable shading device, 0: unshaded; 1: fully shaded
HeatPort_aairPort that connects to the air (room or outside)
HeatPort_bglaUnsHeat port that connects to unshaded part of glass
HeatPort_bglaShaHeat port that connects to shaded part of glass
HeatPort_aframeHeat port at window frame
input RealInputvWinWind speed [m/s]
input RealInputTBlaSkyBlack body sky temperature [K]
input RealInputTOutOutside temperature [K]
output RadiosityOutflowJOutUnsOutgoing radiosity that connects to unshaded part of glass [W]
input RadiosityInflowJInUnsIncoming radiosity that connects to unshaded part of glass [W]
output RadiosityOutflowJOutShaOutgoing radiosity that connects to shaded part of glass [W]
input RadiosityInflowJInShaIncoming radiosity that connects to shaded part of glass [W]
input RealInputQSolAbs_flowSolar radiation absorbed by shade [W]

Modelica definition

model ExteriorHeatTransfer 
  "Model for heat convection and radiation at the exterior surface of a window that may have a shading device"
  extends BaseClasses.PartialWindowBoundaryCondition(final thisSideHasShade=haveExteriorShade);
  parameter Modelica.SIunits.Emissivity absIRSha_air 
    "Infrared absorptivity of shade surface that faces air";
  parameter Modelica.SIunits.Emissivity absIRSha_glass 
    "Infrared absorptivity of shade surface that faces glass";

  parameter Modelica.SIunits.TransmissionCoefficient tauIRSha_air 
    "Infrared transmissivity of shade for radiation coming from the exterior or the room";
  parameter Modelica.SIunits.TransmissionCoefficient tauIRSha_glass 
    "Infrared transmissivity of shade for radiation coming from the glass";

  parameter Boolean linearizeRadiation 
    "Set to true to linearize emissive power";
  parameter Real vieFacSky(final min=0, final max=1, final unit="1") 
    "View factor from receiving surface to sky";

  Modelica.Blocks.Interfaces.RealInput vWin(final unit="m/s") "Wind speed";
  Buildings.HeatTransfer.Windows.BaseClasses.ExteriorConvectionCoefficient
    conCoeGla(                                          final A=AGla) 
    "Model for the outside convective heat transfer coefficient of the glass";
  Buildings.HeatTransfer.Windows.BaseClasses.ExteriorConvectionCoefficient
    conCoeFra(                                          final A=AFra) 
    "Model for the outside convective heat transfer coefficient of the frame";
 Radiosity.OutdoorRadiosity radOut(
   final A=AGla, vieFacSky=vieFacSky,
    linearize=linearizeRadiation) "Outdoor radiosity";

  Modelica.Blocks.Interfaces.RealInput TBlaSky(
    final quantity="ThermodynamicTemperature",
    final unit="K",
    min=0) "Black body sky temperature";
  Modelica.Blocks.Interfaces.RealInput TOut(final quantity="ThermodynamicTemperature",
                                            final unit = "K", min=0) 
    "Outside temperature";
  Interfaces.RadiosityOutflow JOutUns 
    "Outgoing radiosity that connects to unshaded part of glass";
  Interfaces.RadiosityInflow JInUns 
    "Incoming radiosity that connects to unshaded part of glass";
  Interfaces.RadiosityOutflow JOutSha if haveShade 
    "Outgoing radiosity that connects to shaded part of glass";
  Interfaces.RadiosityInflow JInSha if haveShade 
    "Incoming radiosity that connects to shaded part of glass";
  Modelica.Blocks.Interfaces.RealInput QSolAbs_flow(unit="W", quantity="Power") if 
       haveShade "Solar radiation absorbed by shade";

  BaseClasses.ShadeRadiation shaRad(
    final thisSideHasShade=thisSideHasShade,
    final A=AGla,
    final linearize=linearizeRadiation,
    final absIR_air=if thisSideHasShade then absIRSha_air else 0,
    final absIR_glass=if thisSideHasShade then absIRSha_glass else 0,
    final tauIR_air=if thisSideHasShade then tauIRSha_air else 1,
    final tauIR_glass=if thisSideHasShade then tauIRSha_glass else 1) if 
       haveShade "Radiative heat balance of shade";
protected 
  Radiosity.RadiositySplitter radShaOut "Radiosity that strikes shading device";
  BaseClasses.ShadeConvection shaCon(final thisSideHasShade=thisSideHasShade,
      final A=AGla) if 
       haveShade "Convective heat balance of shade";
equation 
  assert(-1E-10<vieFacSky and 1.00001 > vieFacSky,
         "View factor to sky is out of range. vieFacSky = " + String(vieFacSky)
         + "\n   Check parameters.");

  connect(vWin, conCoeGla.v);
  connect(vWin, conCoeFra.v);
  connect(conCoeFra.GCon, conFra.Gc);
  connect(conCoeGla.GCon, proSha.u1);
  connect(conCoeGla.GCon, proUns.u2);
  connect(radOut.JOut, radShaOut.JIn);
  connect(radOut.TBlaSky, TBlaSky);
  connect(radOut.TOut, TOut);
  connect(radShaOut.JOut_2,JOutUns);
  connect(shaRad.JOut_glass, JOutSha);
  connect(shaRad.JIn_glass, JInSha);
  connect(radShaOut.JOut_1, shaRad.JIn_air);
  connect(shaRad.u, shaSig.y);
  connect(glaSha, shaCon.glass);
  connect(shaCon.air, air);
  connect(shaCon.Gc, proSha.y);
  connect(shaCon.TSha, shaRad.TSha);
  connect(shaRad.QRadAbs_flow, shaCon.QRadAbs_flow);
  connect(radShaOut.u, shaSig.y);
  connect(shaRad.QSolAbs_flow, QSolAbs_flow);
end ExteriorHeatTransfer;

Buildings.HeatTransfer.Windows.InteriorHeatTransferConvective Buildings.HeatTransfer.Windows.InteriorHeatTransferConvective

Model for heat convection at the interior surface of a window that may have a shading device

Buildings.HeatTransfer.Windows.InteriorHeatTransferConvective

Information

Model for the convective heat transfer between a window shade, a window surface and the room air. This model is applicable for the room-facing surface of a window system and can be used with the model Buildings.HeatTransfer.Windows.Window.

This model adds the convective heat transfer coefficient to its base model.

Extends from BaseClasses.PartialWindowBoundaryCondition (Partial model for heat convection or radiation between a possibly shaded window that can be outside or inside the room).

Parameters

TypeNameDefaultDescription
AreaA Heat transfer area of frame and window [m2]
RealfFra Fraction of window frame divided by total window area
Shading
BooleanhaveExteriorShade Set to true if window has exterior shade (at surface a)
BooleanhaveInteriorShade Set to true if window has interior shade (at surface b)
BooleanthisSideHasShadehaveInteriorShadeSet to true if this side of the model has a shade

Connectors

TypeNameDescription
input RealInputuShaInput connector, used to scale the surface area to take into account an operable shading device, 0: unshaded; 1: fully shaded
HeatPort_aairPort that connects to the air (room or outside)
HeatPort_bglaUnsHeat port that connects to unshaded part of glass
HeatPort_bglaShaHeat port that connects to shaded part of glass
HeatPort_aframeHeat port at window frame
input RealInputQRadAbs_flowTotal net radiation that is absorbed by the shade (positive if absorbed) [W]
output RealOutputTShaShade temperature [K]

Modelica definition

model InteriorHeatTransferConvective 
  "Model for heat convection at the interior surface of a window that may have a shading device"
  extends BaseClasses.PartialWindowBoundaryCondition(final thisSideHasShade=haveInteriorShade);
  Buildings.HeatTransfer.Windows.BaseClasses.InteriorConvectionCoefficient
    conCoeGla(final A=AGla) 
    "Model for the inside convective heat transfer coefficient of the glass";
  Buildings.HeatTransfer.Windows.BaseClasses.InteriorConvectionCoefficient
    conCoeFra(final A=AFra) 
    "Model for the inside convective heat transfer coefficient of the frame";

  BaseClasses.ShadeConvection conSha(
    final A=AGla,
    final thisSideHasShade=thisSideHasShade) if 
       haveShade "Convection model for shade";
 Modelica.Blocks.Interfaces.RealInput QRadAbs_flow(final unit="W") if 
       haveShade 
    "Total net radiation that is absorbed by the shade (positive if absorbed)";
  Modelica.Blocks.Interfaces.RealOutput TSha(
   final unit="K",
   final quantity="ThermodynamicTemperature") if 
      haveShade "Shade temperature";
equation 
  connect(conCoeFra.GCon, conFra.Gc);
  connect(conCoeGla.GCon, proUns.u2);
  connect(conCoeGla.GCon, proSha.u1);

  connect(conSha.glass, glaSha);
  connect(proSha.y, conSha.Gc);
  connect(conSha.TSha, TSha);
  connect(QRadAbs_flow, conSha.QRadAbs_flow);

  connect(conFra.fluid, air);

  connect(air, conSha.air);
end InteriorHeatTransferConvective;

Buildings.HeatTransfer.Windows.FixedShade Buildings.HeatTransfer.Windows.FixedShade

Model for exterior shade due to overhang and/or side fin

Buildings.HeatTransfer.Windows.FixedShade

Information

This model outputs the fraction of the window area that is sun exposed for a window that may have an overhang and sidefins. Depending on the record with construction data conPar, an overhang, side fins or no external shade is modeled. The model allows having an overhang and side fins at the same time. In such a case, the overhang width should be measured from the window edge to the sidefin, because the overhang width beyond the sidefin will cast a shadow on the side fin and not on the window. Similarly, the side fin height should be measured from the upper window edge to the overhang, because the side fin height above the overhang will not cast a shadow on the window. The parameters for the dimensions of the overhang and side fins are as described in the models Buildings.HeatTransfer.Windows.Overhang and Buildings.HeatTransfer.Windows.SideFins.

Limitations

For overhangs, the model assumes that

For side fins, the model assumes that

Implementation

The detailed calculation method is explained in Buildings.HeatTransfer.Windows.BaseClasses.SideFins and in Buildings.HeatTransfer.Windows.BaseClasses.Overhang.

Extends from HeatTransfer.Windows.BaseClasses.ShadeInterface_weatherBus (Base class for models of window shade and overhangs).

Parameters

TypeNameDefaultDescription
ParameterConstructionWithWindowconPar Construction parameters
Anglelat Latitude [rad]
Angleazi Surface azimuth; azi= -90 degree East; azi= 0 South [rad]

Connectors

TypeNameDescription
BusweaBusWeather data bus
input RealInputincAngSolar incidence angle [rad]
input RealInputHDirTilUnsDirect solar irradiation on tilted, unshaded surface [W/m2]
output RealOutputHDirTilDirect solar irradiation on tilted, shaded surface [W/m2]
output RealOutputfraSunFraction of the area that is unshaded [1]

Modelica definition

model FixedShade 
  "Model for exterior shade due to overhang and/or side fin"
  extends HeatTransfer.Windows.BaseClasses.ShadeInterface_weatherBus;
  parameter Buildings.Rooms.BaseClasses.ParameterConstructionWithWindow conPar 
    "Construction parameters";

  parameter Modelica.SIunits.Angle lat "Latitude";
  parameter Modelica.SIunits.Angle azi(displayUnit="deg") 
    "Surface azimuth; azi= -90 degree East; azi= 0 South";

  Modelica.Blocks.Routing.Multiplex4 mulFraSun(
    n1=1,
    n2=1,
    n3=1,
    n4=1) "Multiplex for fraction of shaded area";

  Modelica.Blocks.Math.Add sumFraSun 
    "Addition of sun exposed window area fractions";

  Modelica.Blocks.Math.Add resFraSun(k2=1.0, k1=-1.0) 
    "Calculates resultant sun exposed window area fraction";
  Modelica.Blocks.Sources.Constant overlap(k=1.0) 
    "Overlap of sun exposed window area fraction";
  Modelica.Blocks.Sources.Constant noSunCond(k=small) 
    "Condition when the sun is not in front of window";

protected 
  constant Real small = 0.001 
    "Small number, used to avoid that sun-exposed fraction of window is negative";

  final parameter Boolean haveOverhang = conPar.ove.haveOverhang 
    "Flag for overhang";

  final parameter Boolean haveSideFins = conPar.sidFin.haveSideFins 
    "Flag for sideFins";
  final parameter Boolean haveOverhangAndSideFins= (haveOverhang
       and haveSideFins) "Parameter used for error control";

  final parameter Integer idx = if haveOverhangAndSideFins then 2 elseif haveOverhang then 1 elseif haveSideFins then 3 else 4 
    "Integer used to pick the appropriate output signal";

  HeatTransfer.Windows.BaseClasses.Overhang ove(
    final lat=lat,
    final azi=conPar.azi,
    final hWin=conPar.hWin,
    final wWin=conPar.wWin,
    final dep=conPar.ove.dep,
    final gap=conPar.ove.gap,
    final wR=conPar.ove.wR,
    final wL=conPar.ove.wL) "Model for overhang";

  HeatTransfer.Windows.BaseClasses.SideFins sidFin(
    final hWin=conPar.hWin,
    final wWin=conPar.wWin,
    final h=conPar.sidFin.h,
    final dep=conPar.sidFin.dep,
    final gap=conPar.sidFin.gap) "Model for side fins";

  BoundaryConditions.SolarGeometry.BaseClasses.WallSolarAzimuth walSolAzi 
    "Angle measured in horizontal plane between projection of sun's rays and normal to vertical surface";
  Modelica.Blocks.Math.Product mulHDir 
    "Multiplication to obtain direct solar irradiation on shaded window";

  Modelica.Blocks.Routing.Extractor extFraSun(final allowOutOfRange=false, final 
      nin=4,
    index(start=idx, fixed=true)) 
    "Extractor to pick the appropriate output signal";
  Modelica.Blocks.Sources.IntegerConstant idxSou(final k=idx) 
    "Source term to pick output signal";
  Modelica.Blocks.Sources.Constant const(k=1);

  Utilities.Math.SmoothMax smoMax(deltaX=small/2) 
    "Limiter to avoid that the fraction of sun-exposed window is below zero";
equation 
  connect(weaBus.sol.alt, walSolAzi.alt);

  connect(incAng, walSolAzi.incAng);
  connect(walSolAzi.verAzi, ove.verAzi);
  connect(walSolAzi.verAzi, sidFin.verAzi);
  connect(weaBus.sol.alt, sidFin.alt);
  connect(mulHDir.y, HDirTil);

  connect(mulHDir.u1, HDirTilUns);
  connect(weaBus, ove.weaBus);
  connect(extFraSun.y, fraSun);
  connect(extFraSun.y, mulHDir.u2);
  connect(mulFraSun.y, extFraSun.u);
  connect(ove.fraSun, mulFraSun.u1[1]);
  connect(sidFin.fraSun, mulFraSun.u3[1]);
  connect(const.y, mulFraSun.u4[1]);
  connect(weaBus.sol.alt, ove.alt);
  connect(ove.fraSun, sumFraSun.u1);
  connect(sumFraSun.y, resFraSun.u2);

  connect(overlap.y, resFraSun.u1);
  connect(sidFin.fraSun, sumFraSun.u2);

  connect(idxSou.y, extFraSun.index);
  connect(resFraSun.y, smoMax.u1);
  connect(noSunCond.y, smoMax.u2);
  connect(smoMax.y, mulFraSun.u2[1]);
end FixedShade;

Buildings.HeatTransfer.Windows.Overhang Buildings.HeatTransfer.Windows.Overhang

For a window with an overhang, outputs the fraction of the window area exposed to the sun

Buildings.HeatTransfer.Windows.Overhang

Information

For a window with an overhang, this model outputs the fraction of the area that is exposed to the sun. The models can also be used for doors with an overhang.

The overhang can be asymmetrical (i.e. wR ≠ wL is allowed) about the vertical centerline of the window. However, the overhang must completely cover the window, i.e., wL ≥ 0 and wR ≥ 0. wL and wR must be measured from the respective corner of the window.

The figure below shows the parameters.

image

The surface azimuth azi is as defined in Buildings.HeatTransfer.Types.Azimuth.

Limitations

The model assumes that

Implementation

The implementation is explained in Buildings.HeatTransfer.Windows.BaseClasses.Overhang.

Extends from Buildings.Rooms.BaseClasses.Overhang (Record for window overhang), Buildings.HeatTransfer.Windows.BaseClasses.PartialShade_weatherBus (Partial model to implement overhang and side fins with weather bus connector).

Parameters

TypeNameDefaultDescription
Anglelat Latitude [rad]
Angleazi Surface azimuth; azi= -90 degree East; azi= 0 South [rad]
Overhang
LengthwL Overhang width left to the window, measured from the window corner [m]
LengthwR Overhang width right to the window, measured from the window corner [m]
Lengthdep Overhang depth (measured perpendicular to the wall plane) [m]
Lengthgap Distance between window upper edge and overhang lower edge [m]
Window
LengthhWin Window height [m]
LengthwWin Window width [m]

Connectors

TypeNameDescription
BusweaBusWeather data bus
input RealInputincAngSolar incidence angle [rad]
input RealInputHDirTilUnsDirect solar irradiation on tilted, unshaded surface [W/m2]
output RealOutputHDirTilDirect solar irradiation on tilted, shaded surface [W/m2]
output RealOutputfraSunFraction of the area that is unshaded [1]

Modelica definition

model Overhang 
  "For a window with an overhang, outputs the fraction of the window area exposed to the sun"
  extends Buildings.Rooms.BaseClasses.Overhang;
  extends Buildings.HeatTransfer.Windows.BaseClasses.PartialShade_weatherBus;
  parameter Modelica.SIunits.Angle lat(displayUnit="deg") "Latitude";
  parameter Modelica.SIunits.Angle azi(displayUnit="deg") 
    "Surface azimuth; azi= -90 degree East; azi= 0 South";
  // Overhang dimensions
protected 
  Buildings.HeatTransfer.Windows.BaseClasses.Overhang ove(
    final lat=lat,
    final azi=azi,
    final wR=wR,
    final wL=wL,
    final dep=dep,
    final gap=gap,
    final hWin=hWin,
    final wWin=wWin) "Window overhang";
equation 
  connect(ove.fraSun, fraSun);
  connect(walSolAzi.verAzi, ove.verAzi);
  connect(ove.fraSun, product.u2);
  connect(weaBus, ove.weaBus);
  connect(weaBus.sol.alt, ove.alt);
end Overhang;

Buildings.HeatTransfer.Windows.SideFins Buildings.HeatTransfer.Windows.SideFins

For a window with side fins, outputs the fraction of the window area exposed to the sun

Buildings.HeatTransfer.Windows.SideFins

Information

For a window with side fins, this model outputs the fraction of the area that is exposed to the sun. The model calculates the fraction of the window area that is exposed to the sun. The side fins are symmetrically placed above the vertical window centerline, and its height must be equal or greater than the window height. This models can also be used for doors with side fins. The figure below shows the parameters. The parameter h is measured from the top of the window to the top of the side fins. Side fins are assumed to extend at least to the lower edge of the window. (Any portion of the side fin below the window edge does not cast as shadow on the window anyway.)

image

The parameter h is measured from the top of the window to the top of the side fins. The side fin must extend at least to the bottom of the window.

image

Limitations

The model assumes that

Implementation

The detailed calculation method is explained in Buildings.HeatTransfer.Windows.BaseClasses.SideFins.

Extends from Buildings.Rooms.BaseClasses.SideFins (Record for window side fins), Buildings.HeatTransfer.Windows.BaseClasses.PartialShade_weatherBus (Partial model to implement overhang and side fins with weather bus connector).

Parameters

TypeNameDefaultDescription
Side fin
Lengthh Height of side fin that extends above window, measured from top of window [m]
Lengthdep Side fin depth (measured perpendicular to the wall plane) [m]
Lengthgap Distance between side fin and window edge [m]
Window
LengthhWin Window height [m]
LengthwWin Window width [m]

Connectors

TypeNameDescription
BusweaBusWeather data bus
input RealInputincAngSolar incidence angle [rad]
input RealInputHDirTilUnsDirect solar irradiation on tilted, unshaded surface [W/m2]
output RealOutputHDirTilDirect solar irradiation on tilted, shaded surface [W/m2]
output RealOutputfraSunFraction of the area that is unshaded [1]

Modelica definition

model SideFins 
  "For a window with side fins, outputs the fraction of the window area exposed to the sun"
  extends Buildings.Rooms.BaseClasses.SideFins;
  extends Buildings.HeatTransfer.Windows.BaseClasses.PartialShade_weatherBus;
  Buildings.HeatTransfer.Windows.BaseClasses.SideFins fin(
    final dep=dep,
    final h=h,
    final gap=gap,
    final hWin=hWin,
    final wWin=wWin) "Window side fins";
equation 
  connect(fin.fraSun, fraSun);
  connect(walSolAzi.verAzi, fin.verAzi);
  connect(weaBus.sol.alt, fin.alt);
  connect(fin.fraSun, product.u2);
end SideFins;

Automatically generated Thu Oct 24 15:10:25 2013.