| Name | Description |
|---|---|
| Angular and hemispherical absorptance of a shading device for exterior irradiation with interior shading | |
| Hemiperical absorptance of a shading device for interior irradiation with interior shading | |
| Generate incident angles | |
| Transmittance and reflectance of glass | |
| Angular and hemispherical absorptance of each glass pane for exterior irradiation with exterior shading | |
| Angular and hemispherical absorptance of each glass pane for exterior irradiation with interior shading | |
| Angular and hemispherical absorptance of each glass pane for exterior irradiation without shading | |
| Hemispherical absorptance of each glass pane for interior irradiation with exterior shading | |
| Hemispherical absorptance of each glass pane for interior irradiation with interior shading | |
| Hemispherical absorptance of each glass pane for interior irradiation without shading | |
| Compute angular variation and hemispherical integration of the transmittance and reflectance for each glass pane without shading | |
| Transmittance and reflectance of glass panes for exterior irradiation without shading | |
| Transmittance and reflectance of each glass pane for interior irradiation without shading | |
| Angular and hemispherical transmittance of a window system (glass and shading device) for exterior irradiation with interior shading | |
| Angular and hemispherical transmittance of a window system (glass + shading device) for exterior irradiation with exterior shading | |
| Hemispherical transmittance and back reflectance of a window system (glass and shading device) for interior irradiation with exterior shading | |
| Hemispherical transmittance and back reflectance of a window system (glass and shading device) for interior irradiation with interior shading | |
| Base classes for radiation property |
This function computes the angular and hemispherical absorptance of a shading device for exterior irradiation with interior shading.
Pane 1 is facing the outside and pane N is facing the room.
Extends from Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowShadingRadiation (partial function for window radiation property with shading device).
| Type | Name | Default | Description |
|---|---|---|---|
| Real | traRef[3, N, N, HEM] | Transmittance and reflectance with exterior irradiation and no shading | |
| Real | traRefShaDev[2, 2] | Transmittance and reflectance of shading device | |
| Integer | N | Number of glass layers | |
| Integer | HEM | Index of hemispherical integration |
| Type | Name | Description |
|---|---|---|
| Real | absExtIrrIntShaDev[HEM] | Absorptance of a shading device for exterior irradiation with interior shading |
function devAbsExteriorIrradiationInteriorShading
"Angular and hemispherical absorptance of a shading device for exterior irradiation with interior shading"
import Buildings;
extends Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowShadingRadiation;
output Real absExtIrrIntShaDev[HEM](each min=0, each max=1)
"Absorptance of a shading device for exterior irradiation with interior shading";
algorithm
for iD in 1:HEM loop
absExtIrrIntShaDev[iD] := traRef[TRA, 1, N, iD]*(1 - traIntShaDev -
refIntShaDev)/(1 - refIntShaDev*traRef[Rb, N, 1, HEM])
"Equation (A.4.91)";
end for;
end devAbsExteriorIrradiationInteriorShading;
This function computes the hemiperical absorbtance of a shading device for interior irradiation with interior shading.
Extends from Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowShadingRadiation (partial function for window radiation property with shading device).
| Type | Name | Default | Description |
|---|---|---|---|
| Real | traRef[3, N, N, HEM] | Transmittance and reflectance with exterior irradiation and no shading | |
| Real | traRefShaDev[2, 2] | Transmittance and reflectance of shading device | |
| Integer | N | Number of glass layers | |
| Integer | HEM | Index of hemispherical integration |
| Type | Name | Description |
|---|---|---|
| Real | absIntIrrIntShaDev | Hemiperical absorbtance of a shading device for interior irradiation with interior shading |
function devAbsInteriorIrradiationInteriorShading
"Hemiperical absorptance of a shading device for interior irradiation with interior shading"
extends Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowShadingRadiation;
output Real absIntIrrIntShaDev(min=0, max=1)
"Hemiperical absorbtance of a shading device for interior irradiation with interior shading";
protected
constant Real rRho=traRef[3, N, 1, HEM]*refIntShaDev
"Part of equation (A.4.103)";
constant Real rTau=traRef[3, N, 1, HEM]*traIntShaDev
"Part of equation (A.4.103)";
constant Real c=traIntShaDev*(1 - rRho/(1 - rRho)) "Equation (4.99)";
algorithm
absIntIrrIntShaDev := (1 - traIntShaDev - refIntShaDev)*(1 + rTau/(1 - rRho))
"Equation (4.103)";
end devAbsInteriorIrradiationInteriorShading;
This function computes discrete incident angles for the window radiation calculation. The range is from 0 to 90 degree.
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | NDIR | Number of incident angles |
| Type | Name | Description |
|---|---|---|
| Angle | psi[NDIR] | Array of incident angles [rad] |
function getAngle "Generate incident angles"
input Integer NDIR "Number of incident angles";
output Modelica.SIunits.Angle psi[NDIR] "Array of incident angles";
protected
constant Real deltaX=0.5*Modelica.Constants.pi/(NDIR - 1);
algorithm
for i in 1:NDIR loop
psi[i] := (i - 1)*deltaX;
end for;
end getAngle;
This function computes the angular variation of the transmittance and reflectance of each glass pane.
It accounts for the transmittance and reflectance among different panes.
Pane 1 is facing outside and pane N is facing the room.
For instance, traRef[TRA, 1, N, iD] means transmittance between layer 1 to N for exterior irradiation and
traRef[TRA, N, 1, iD] means the transmittance for interior irradiation.
Extends from Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialGlassRadiation (partial function for glass radiation property).
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | N | Number of glass layers | |
| Integer | HEM | Index of hemispherical integration | |
| Real | layer[3, N, HEM] | Property of glass pane |
| Type | Name | Description |
|---|---|---|
| Real | traRef[3, N, N, HEM] | Glass transmittance, front and back reflectance |
function getGlassTR "Transmittance and reflectance of glass"
extends Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialGlassRadiation;
input Real layer[3, N, HEM] "Property of glass pane";
output Real traRef[3, N, N, HEM](each min=0, each max=1)
"Glass transmittance, front and back reflectance";
protected
Real traRefIntIrr[3, N, N, HEM](each min=0, each max=1)
"temporary array for glass transmittance, front and back reflectance for interior irradiation";
algorithm
traRef :=
Buildings.HeatTransfer.WindowsBeta.Functions.glassTRExteriorIrradiationNoShading(
N,
HEM,
layer) "property for exterior irradiation";
traRefIntIrr :=
Buildings.HeatTransfer.WindowsBeta.Functions.glassTRInteriorIrradiationNoShading(
N,
HEM,
layer) "property for interior irradiation";
// Copy the property for interior irradiation to glass property
for k in TRA:Rb loop
for i in 1:N - 1 loop
for j in i + 1:N loop
for iD in 1:HEM loop
traRef[k, N + 1 - i, N + 1 - j, iD] := traRefIntIrr[k, N + 1 - i, N
+ 1 - j, iD];
end for;
end for;
end for;
end for;
end getGlassTR;
This function computes angular and hemispherical absorptance of each glass pane for exterior irradiation with exterior shading.
Pane 1 is facing outside and pane N is facing the room.
Extends from Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowShadingRadiation (partial function for window radiation property with shading device).
| Type | Name | Default | Description |
|---|---|---|---|
| Real | absExtIrrNoSha[N, HEM] | Angular and hemispherical absorptance of each glass pane for exterior irradiation without shading | |
| Real | traRef[3, N, N, HEM] | Transmittance and reflectance with exterior irradiation and no shading | |
| Real | traRefShaDev[2, 2] | Transmittance and reflectance of shading device | |
| Integer | N | Number of glass layers | |
| Integer | HEM | Index of hemispherical integration |
| Type | Name | Description |
|---|---|---|
| Real | absExtIrrExtSha[N, HEM] | Angular and hemispherical absorptance of each glass pane for exterior irradiation with exterior shading |
function glassAbsExteriorIrradiationExteriorShading
"Angular and hemispherical absorptance of each glass pane for exterior irradiation with exterior shading"
input Real absExtIrrNoSha[N, HEM](each min=0, each max=1)
"Angular and hemispherical absorptance of each glass pane for exterior irradiation without shading";
extends Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowShadingRadiation;
output Real absExtIrrExtSha[N, HEM](each min=0, each max=1)
"Angular and hemispherical absorptance of each glass pane for exterior irradiation with exterior shading";
protected
Real c "Intermediate variable";
algorithm
for iD in 1:HEM loop
c := traExtShaDev*(1 + traRef[Ra, 1, N, iD]*refExtShaDev/(1 - traRef[Ra, 1,
N, HEM]*refExtShaDev));
for i in 1:N loop
absExtIrrExtSha[i, iD] := c*absExtIrrNoSha[i, iD];
end for;
end for;
end glassAbsExteriorIrradiationExteriorShading;
This function computes angular and hemispherical absorptance of each glass pane for exterior irradiation with interior shading.
Pane 1 is facing the outside and pane N is facing the room.
Extends from Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowShadingRadiation (partial function for window radiation property with shading device).
| Type | Name | Default | Description |
|---|---|---|---|
| Real | absExtIrrNoSha[N, HEM] | Absorptance for exterior irradiation without shading | |
| Real | traRef[3, N, N, HEM] | Transmittance and reflectance with exterior irradiation and no shading | |
| Real | traRefShaDev[2, 2] | Transmittance and reflectance of shading device | |
| Integer | N | Number of glass layers | |
| Integer | HEM | Index of hemispherical integration |
| Type | Name | Description |
|---|---|---|
| Real | absExtIrrNoShaIntSha[N, HEM] | Angular and hemispherical absorptance of each glass pane for exterior irradiation with interior shading |
function glassAbsExteriorIrradiationInteriorShading
"Angular and hemispherical absorptance of each glass pane for exterior irradiation with interior shading"
input Real absExtIrrNoSha[N, HEM](each min=0, each max=1)
"Absorptance for exterior irradiation without shading";
extends Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowShadingRadiation;
output Real absExtIrrNoShaIntSha[N, HEM](each min=0, each max=1)
"Angular and hemispherical absorptance of each glass pane for exterior irradiation with interior shading";
protected
Real fac;
Real absFro "Front (outside-facing) absorptance";
Real absBac "Back (room-facing) absorptance";
Integer i "Index of glass pane";
algorithm
for iD in 1:HEM loop
i := 1;
fac := traRef[TRA, 1, N, iD]*refIntShaDev/(1 - traRef[Rb, N, 1, HEM]*
refIntShaDev) "Equation (A.4.90)";
absBac := 1 - traRef[TRA, i, i, iD] - traRef[Rb, i, i, iD]
"Equation (A.4.81b)";
if N >= 2 then
absExtIrrNoShaIntSha[i, iD] := absExtIrrNoSha[i, iD] + fac*traRef[TRA, N,
i + 1, HEM]*absBac "Equation (A.4.90)";
for i in 2:N - 1 loop
fac := traRef[TRA, 1, N, iD]*refIntShaDev/(1 - traRef[Rb, N, 1, HEM]*
refIntShaDev) "Equation (A.4.90)";
absFro := 1 - traRef[TRA, i, i, iD] - traRef[Ra, i, i, iD]
"Equaiton (A.4.81a)";
absBac := 1 - traRef[TRA, i, i, iD] - traRef[Rb, i, i, iD]
"Equation (A.4.81b)";
absExtIrrNoShaIntSha[i, iD] := absExtIrrNoSha[i, iD] + fac*(traRef[TRA,
N, i, HEM]*traRef[Rb, i - 1, 1, HEM]*absFro + traRef[TRA, N, i + 1,
HEM]*absBac) "Equation (A.4.90)";
end for;
i := N;
fac := traRef[TRA, 1, N, iD]*refIntShaDev/(1 - traRef[Rb, N, 1, HEM]*
refIntShaDev) "Equation (A.4.90)";
absFro := 1 - traRef[TRA, i, i, iD] - traRef[Ra, i, i, iD]
"Equaiton (A.4.81a)";
absBac := 1 - traRef[TRA, i, i, iD] - traRef[Rb, i, i, iD]
"Equation (A.4.81b)";
absExtIrrNoShaIntSha[i, iD] := absExtIrrNoSha[i, iD] + fac*(traRef[TRA, N,
i, HEM]*traRef[Rb, i - 1, 1, HEM]*absFro + absBac) "Equation (A.4.90)";
else
absExtIrrNoShaIntSha[i, iD] := absExtIrrNoSha[i, iD] + fac*absBac
"Equation (A.4.90)";
end if;
end for;
end glassAbsExteriorIrradiationInteriorShading;
This function computes specular and hemispherical absorptance of each glass pane for exterior irradiation without shading.
It counts the transmittance and reflectance among different panes.
Pane 1 is facing the outside and pane N is facing the room.
Extends from Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowRadiation (partial function for window radiation property).
| Type | Name | Default | Description |
|---|---|---|---|
| Real | traRef[3, N, N, HEM] | Transmittance and reflectance with exterior irradiation and no shading | |
| Integer | N | Number of glass layers | |
| Integer | HEM | Index of hemispherical integration |
| Type | Name | Description |
|---|---|---|
| Real | abs[N, HEM] | Angular and hemispherical absorptance of each glass pane for exterior irradiation without shading. Indices: abs[1 to N : ] -> pane 1 to N; abs[ : 1 to HEM] -> angular (1:HEM-1) and hemispherical (HEM) |
function glassAbsExteriorIrradiationNoShading
"Angular and hemispherical absorptance of each glass pane for exterior irradiation without shading"
extends Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowRadiation;
output Real[N, HEM] abs(each min=0, each max=1) "Angular and hemispherical absorptance of each glass pane for exterior irradiation without shading.
Indices: abs[1 to N : ] -> pane 1 to N;
abs[ : 1 to HEM] -> angular (1:HEM-1) and hemispherical (HEM)";
protected
Real af "Front (outside-facing side) absorptance of a pane";
Real ab "Back (room-facing side) absorptance of a pane";
Real deno1 "Denominantor";
Real deno2 "Denominantor";
Integer j;
constant Real SMALL=Modelica.Constants.small "Small value";
algorithm
if N == 1 then
j := 1;
for iD in 1:HEM loop
abs[j, iD] := 1 - traRef[TRA, j, j, iD] - traRef[Ra, j, j, iD]
"Equation (A.4.79)";
end for;
else
for iD in 1:HEM loop
j := 1;
af := 1 - traRef[TRA, j, j, iD] - traRef[Ra, j, j, iD]
"Equation (A.4.81a)";
ab := 1 - traRef[TRA, j, j, iD] - traRef[Rb, j, j, iD]
"Equation (A.4.81b)";
deno2 := 1 - traRef[Rb, j, 1, iD]*traRef[Ra, j + 1, N, iD];
if deno2 < SMALL then
abs[j, iD] := 0;
else
abs[j, iD] := af + ab*traRef[TRA, 1, j, iD]*traRef[Ra, j + 1, N, iD]/
deno2 "Equation (A.4.82) and (A.4.83b)";
end if;
for j in 2:N - 1 loop
af := 1 - traRef[TRA, j, j, iD] - traRef[Ra, j, j, iD]
"Equation (A.4.81a)";
ab := 1 - traRef[TRA, j, j, iD] - traRef[Rb, j, j, iD]
"Equation (A.4.81b)";
deno1 := 1 - traRef[Ra, j, N, iD]*traRef[Rb, j - 1, 1, iD];
deno2 := 1 - traRef[Rb, j, 1, iD]*traRef[Ra, j + 1, N, iD];
if deno1 < SMALL or deno2 < SMALL then
abs[j, iD] := 0;
else
abs[j, iD] := af*traRef[TRA, 1, j - 1, iD]/deno1 + ab*traRef[TRA, 1,
j, iD]*traRef[Ra, j + 1, N, iD]/deno2 "Equation (A.4.83b)";
end if;
end for;
j := N;
af := 1 - traRef[TRA, j, j, iD] - traRef[Ra, j, j, iD]
"Equation (A.4.81a)";
deno1 := 1 - traRef[Ra, j, N, iD]*traRef[Rb, j - 1, 1, iD];
if deno1 < SMALL then
abs[j, iD] := 0;
else
abs[j, iD] := af*traRef[TRA, 1, j - 1, iD]/deno1;
end if;
end for;
end if;
end glassAbsExteriorIrradiationNoShading;
This function computes the hemispherical absorptance of each glass pane for interior irradiation with exterior shading.
Pane 1 is facing the outside and pane N is facing the room.
Extends from Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowShadingRadiation (partial function for window radiation property with shading device).
| Type | Name | Default | Description |
|---|---|---|---|
| Real | absIntIrrNoSha[N] | Absorptance for interior irradiation without shading | |
| Real | traRef[3, N, N, HEM] | Transmittance and reflectance with exterior irradiation and no shading | |
| Real | traRefShaDev[2, 2] | Transmittance and reflectance of shading device | |
| Integer | N | Number of glass layers | |
| Integer | HEM | Index of hemispherical integration |
| Type | Name | Description |
|---|---|---|
| Real | absIntIrrExtSha[N] | Hemispherical absorptance of each glass pane for interior irradiation with exterior shading |
function glassAbsInteriorIrradiationExteriorShading
"Hemispherical absorptance of each glass pane for interior irradiation with exterior shading"
input Real absIntIrrNoSha[N]
"Absorptance for interior irradiation without shading";
extends Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowShadingRadiation;
output Real absIntIrrExtSha[N](each min=0, each max=1)
"Hemispherical absorptance of each glass pane for interior irradiation with exterior shading";
protected
Real fac;
Real absFro "Front absorptance";
Real absBac "Back absorptance";
Integer i "Pane index";
algorithm
fac := traRef[TRA, N, 1, HEM]*refExtShaDev/(1 - traRef[Ra, 1, N, HEM]*
refExtShaDev);
i := 1;
absFro := 1 - traRef[TRA, i, i, HEM] - traRef[Ra, i, i, HEM]
"Equaiton (A.4.81a)";
absBac := 1 - traRef[TRA, i, i, HEM] - traRef[Rb, i, i, HEM]
"Equation (A.4.81b)";
if N >= 2 then
absIntIrrExtSha[i] := absIntIrrNoSha[i] + fac*absFro + fac*traRef[TRA, 1, i,
HEM]*traRef[Ra, i + 1, N, HEM]*absBac "Equation (A.4.94)";
for i in 2:N - 1 loop
absFro := 1 - traRef[TRA, i, i, HEM] - traRef[Ra, i, i, HEM]
"Equaiton (A.4.81a)";
absBac := 1 - traRef[TRA, i, i, HEM] - traRef[Rb, i, i, HEM]
"Equation (A.4.81b)";
absIntIrrExtSha[i] := absIntIrrNoSha[i] + fac*traRef[TRA, 1, i - 1, HEM]*
absFro + fac*traRef[TRA, 1, i, HEM]*traRef[Ra, i + 1, N, HEM]*absBac
"Equation (A.4.94)";
end for;
i := N;
absFro := 1 - traRef[TRA, i, i, HEM] - traRef[Ra, i, i, HEM]
"Equaiton (A.4.81a)";
absIntIrrExtSha[i] := absIntIrrNoSha[i] + fac*traRef[TRA, 1, i - 1, HEM]*
absFro "Equation (A.4.94)";
else
absIntIrrExtSha[i] := absIntIrrNoSha[i] + fac*absFro "Equation (A.4.94)";
end if;
end glassAbsInteriorIrradiationExteriorShading;
This function computes the hemispherical absorbtance of each glass pane for interior irradiation with interior shading.
Pane 1 is facing the outside and pane N is facing the room.
Extends from Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowShadingRadiation (partial function for window radiation property with shading device).
| Type | Name | Default | Description |
|---|---|---|---|
| Real | absIntIrrNoSha[N] | Hemispherical absorptance wfor interior irradiation without interior shading | |
| Real | traRef[3, N, N, HEM] | Transmittance and reflectance with exterior irradiation and no shading | |
| Real | traRefShaDev[2, 2] | Transmittance and reflectance of shading device | |
| Integer | N | Number of glass layers | |
| Integer | HEM | Index of hemispherical integration |
| Type | Name | Description |
|---|---|---|
| Real | absIntIrrIntSha[N] | Hemispherical absorbtance of each glass pane for interior irradiation with interior shading |
function glassAbsInteriorIrradiationInteriorShading
"Hemispherical absorptance of each glass pane for interior irradiation with interior shading"
input Real absIntIrrNoSha[N](each min=0, each max=1)
"Hemispherical absorptance wfor interior irradiation without interior shading";
extends Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowShadingRadiation;
output Real absIntIrrIntSha[N](each min=0, each max=1)
"Hemispherical absorbtance of each glass pane for interior irradiation with interior shading";
protected
constant Real rRho=traRef[Rb, N, 1, HEM]*refIntShaDev
"Part of Equation (4.99)";
constant Real c=traIntShaDev*(1 + rRho/(1 - rRho)) "Equation (4.99)";
algorithm
for i in 1:N loop
absIntIrrIntSha[i] := c*absIntIrrNoSha[i] "Equation (A4.100a)";
end for;
end glassAbsInteriorIrradiationInteriorShading;
This function computes the hemispherical absorptance of each glass pane for interior irradiation without no shading. The angular irradiation is not considered since the interior irradiation (from the room) is assumed to be diffusive. It is a reverse of the function Buildings.HeatTransfer.WindowsBeta.Functions.glassAbsInterirorIrradiationNoShading.
Extends from Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowRadiation (partial function for window radiation property).
| Type | Name | Default | Description |
|---|---|---|---|
| Real | traRef[3, N, N, HEM] | Transmittance and reflectance with exterior irradiation and no shading | |
| Integer | N | Number of glass layers | |
| Integer | HEM | Index of hemispherical integration |
| Type | Name | Description |
|---|---|---|
| Real | absIntIrrNoSha[N] | Hemispherical absorptance of each glass layer for interior irradiation without shading |
function glassAbsInterirorIrradiationNoShading
"Hemispherical absorptance of each glass pane for interior irradiation without shading"
extends Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowRadiation;
output Real[N] absIntIrrNoSha(each min=0, each max=1)
"Hemispherical absorptance of each glass layer for interior irradiation without shading";
protected
Real dTraRef[3, N, N, HEM](each min=0, each max=1)
"Dummy transmittance and reflectance with exterior irradiation without shading";
Real dAbs[N, HEM](each min=0, each max=1)
"Dummy absorptance with exterior irradiation and no shading";
algorithm
// Reverse the data srtucture for exterior irradiation and no shading
for i in 1:N loop
for j in 1:N loop
for iD in 1:HEM loop
dTraRef[TRA, i, j, iD] := traRef[TRA, N + 1 - i, N + 1 - j, iD];
dTraRef[Ra, i, j, iD] := traRef[Rb, N + 1 - i, N + 1 - j, iD];
dTraRef[Rb, i, j, iD] := traRef[Ra, N + 1 - i, N + 1 - j, iD];
end for;
end for;
end for;
dAbs :=
Buildings.HeatTransfer.WindowsBeta.Functions.glassAbsExteriorIrradiationNoShading(
dTraRef,
N,
HEM) "Dummmy absorptance with exterior irradiation";
// Only output hemispherical absorptance. Need to change order for interior irradiation.
for i in 1:N loop
absIntIrrNoSha[i] := dAbs[N + 1 - i, HEM];
end for;
end glassAbsInterirorIrradiationNoShading;
This function computes the angular variation and the hemispherical integration of the transmittance and reflectance for each glass pane.
Extends from Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialGlassRadiation (partial function for glass radiation property).
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | N | Number of glass layers | |
| Integer | HEM | Index of hemispherical integration | |
| Real | glass[3, N] | Propertry of each glass pane | |
| Angle | psi[HEM - 1] | Incident angles [rad] |
| Type | Name | Description |
|---|---|---|
| Real | layer[3, N, HEM] | Transmittance, front and back reflectance |
function glassProperty
"Compute angular variation and hemispherical integration of the transmittance and reflectance for each glass pane without shading"
extends Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialGlassRadiation;
input Real glass[3, N] "Propertry of each glass pane";
input Modelica.SIunits.Angle psi[HEM - 1] "Incident angles";
output Real layer[3, N, HEM] "Transmittance, front and back reflectance";
protected
Integer NDIR=HEM - 1 "Number of incident angles";
Real psi_c "cos(psi), psi is incident angle";
Real psi_cs "cos(psi)*sin(psi)";
Real angT "Angular variation of transmittance";
Real angR "Angular variation of reflectance";
Real f[3, NDIR]
"Temporary variables for integration in hemispherical transmittance and reflectance";
constant Real deltaX=0.5*Modelica.Constants.pi/(NDIR - 1);
constant Real a[4, 5]={{-0.0015,3.355,-3.840,1.460,0.0288},{0.999,-0.563,
2.043,-2.532,1.054},{-0.002,2.813,-2.341,-0.05725,0.599},{0.997,-1.868,
6.513,-7.862,3.225}} "Coeffcients in Table A.2";
Integer id1 "Index of coefficients for transmittance";
Integer id2 "Index of coefficients for reflectance";
algorithm
// Compute specular value for angle 0 to 90 degree (psi[1] to psi[N]) and panes from 1 to N
for i in 1:N loop
for k in TRA:Rb loop
layer[k, i, 1] := glass[k, i]
"Copy the data at 0 degree (normal incidence)";
end for;
for j in 2:NDIR - 1 loop
psi_c := Modelica.Math.cos(psi[j]);
if layer[TRA, i, 1] > 0.645 then
id1 := 1;
id2 := 2;
else
id1 := 3;
id2 := 4;
end if;
angT := a[id1, 1] + psi_c*(a[id1, 2] + psi_c*(a[id1, 3] + psi_c*(a[id1, 4]
+ psi_c*a[id1, 5]))) "Equation (A.4.68a)";
angR := a[id2, 1] + psi_c*(a[id2, 2] + psi_c*(a[id2, 3] + psi_c*(a[id2, 4]
+ psi_c*a[id2, 5]))) - angT "Equation (A.4.68b)";
layer[TRA, i, j] := layer[TRA, i, 1]*angT "Equation (A4.69a)";
layer[Ra, i, j] := layer[Ra, i, 1]*(1 - angR) + angR "Equation (A4.69b)";
layer[Rb, i, j] := layer[Rb, i, 1]*(1 - angR) + angR "Equation (A4.69b)";
end for;
// When incident angle is equal to 90 degree
layer[TRA, i, NDIR] := 0;
layer[Ra, i, NDIR] := 1.0;
layer[Rb, i, NDIR] := 1.0;
end for;
// Computer hemispherical value: HEM.
for i in 1:N loop
for j in 1:NDIR loop
psi_cs := Modelica.Math.cos(psi[j])*Modelica.Math.sin(psi[j]);
for k in TRA:Rb loop
f[k, j] := 2*layer[k, i, j]*psi_cs;
end for;
end for;
for k in TRA:Rb loop
layer[k, i, HEM] :=
Buildings.Utilities.Math.Functions.trapezoidalIntegration(
NDIR,
f[k, :],
deltaX) "Equation (A.4.70a) and (A.4.70b)";
end for;
end for;
end glassProperty;
This function computes the angular variation of the transmittance and reflectance of each glass pane for exteior irradiation without shading.
It accounts for the transmittance and reflectance among different panes.
Pane 1 is facing outside and pane N is facing the room.
Extends from Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialGlassRadiation (partial function for glass radiation property).
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | N | Number of glass layers | |
| Integer | HEM | Index of hemispherical integration | |
| Real | layer[3, N, HEM] | Angular data of glass pane |
| Type | Name | Description |
|---|---|---|
| Real | traRef[3, N, N, HEM] | Transmittance and reflectance of each glass pane for exterior irradiation without shading |
function glassTRExteriorIrradiationNoShading
"Transmittance and reflectance of glass panes for exterior irradiation without shading"
extends Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialGlassRadiation;
input Real layer[3, N, HEM] "Angular data of glass pane";
output Real traRef[3, N, N, HEM](each min=0, each max=1)
"Transmittance and reflectance of each glass pane for exterior irradiation without shading";
protected
Real aij "Temporary variable";
constant Real SMALL=Modelica.Constants.small "Small value";
algorithm
// Property for single pane of glass or the first pane of multiple panes glass
for iD in 1:HEM loop
for k in TRA:Rb loop
traRef[k, 1, 1, iD] := layer[k, 1, iD] "Equation (A.4.71)";
end for;
end for;
// Property for multiple panes glass
if N > 1 then
for iD in 1:HEM loop
for i in 1:N - 1 loop
for j in i + 1:N loop
for k in TRA:Rb loop
traRef[k, j, j, iD] := layer[k, j, iD];
end for;
aij := 1 - traRef[Ra, j, j, iD]*traRef[Rb, j - 1, i, iD]
"Equation (A.4.77)";
assert(aij > -SMALL,
"Glass transmittance and reflectance data was not correct.\n");
if aij < SMALL then
traRef[TRA, i, j, iD] := 0;
traRef[Ra, i, j, iD] := 1;
traRef[Rb, j, i, iD] := 1;
else
aij := 1/aij;
traRef[TRA, i, j, iD] := aij*traRef[TRA, i, j - 1, iD]*traRef[TRA,
j, j, iD] "Equation (A.4.78a)";
traRef[Ra, i, j, iD] := traRef[Ra, i, j - 1, iD] + aij*traRef[TRA,
i, j - 1, iD]*traRef[TRA, i, j - 1, iD]*traRef[Ra, j, j, iD]
"Equation (A.4.78b)";
traRef[Rb, j, i, iD] := traRef[Rb, j, j, iD] + aij*traRef[TRA, j, j,
iD]*traRef[TRA, j, j, iD]*traRef[Rb, j - 1, i, iD]
"Equation (A.4.78c)";
end if;
end for;
end for;
end for;
end if;
end glassTRExteriorIrradiationNoShading;
This function computes the angular variation of the transmittance and reflectance of each glass pane for interior irradiation without shading.
It accounts for the transmittance and reflectance among different panes.
Pane 1 is facing outside and pane N is facing the room.
Extends from Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialGlassRadiation (partial function for glass radiation property).
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | N | Number of glass layers | |
| Integer | HEM | Index of hemispherical integration | |
| Real | layer[3, N, HEM] | Angular data of glass pane |
| Type | Name | Description |
|---|---|---|
| Real | traRef[3, N, N, HEM] | Glass transmittance, front and back reflectance |
function glassTRInteriorIrradiationNoShading
"Transmittance and reflectance of each glass pane for interior irradiation without shading"
extends Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialGlassRadiation;
input Real layer[3, N, HEM] "Angular data of glass pane";
output Real traRef[3, N, N, HEM](each min=0, each max=1)
"Glass transmittance, front and back reflectance";
protected
Real dLayer[3, N, HEM]
"Dummy glass property with Pane 1 facing inside and Pane N facing outside";
Real dTraRef[3, N, N, HEM]
"Dummy transmittance and reflectance for exterior irradiation";
algorithm
// Copy the dummy glass property
for iD in 1:HEM loop
for j in 1:N loop
dLayer[TRA, j, iD] := layer[TRA, N + 1 - j, iD];
dLayer[Ra, j, iD] := layer[Rb, N + 1 - j, iD]
"swap the front and back reflectance";
dLayer[Rb, j, iD] := layer[Ra, N + 1 - j, iD]
"swap the front and back reflectance";
end for;
end for;
// Calculate transmittance and reflectance of dummy glass for exterior irradiation without shading
dTraRef :=
Buildings.HeatTransfer.WindowsBeta.Functions.glassTRExteriorIrradiationNoShading(
N,
HEM,
dLayer);
// Convert the dummy data to real glass
for iD in 1:HEM loop
for i in 1:N - 1 loop
for j in i + 1:N loop
traRef[TRA, N + 1 - i, N + 1 - j, iD] := dTraRef[TRA, i, j, iD];
traRef[Ra, N + 1 - i, N + 1 - j, iD] := dTraRef[Rb, i, j, iD]
"swap the front and back reflectance";
traRef[Rb, N + 1 - i, N + 1 - j, iD] := dTraRef[Ra, i, j, iD]
"swap the front and back reflectance";
end for;
end for;
end for;
end glassTRInteriorIrradiationNoShading;
This function computes the angular and hemispherical transmittance of a window system (glass and shading device) for exterior irradiation with interior shading.
Pane 1 is facing outside and pane N is facing the room.
Extends from Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowShadingRadiation (partial function for window radiation property with shading device).
| Type | Name | Default | Description |
|---|---|---|---|
| Real | traRef[3, N, N, HEM] | Transmittance and reflectance with exterior irradiation and no shading | |
| Real | traRefShaDev[2, 2] | Transmittance and reflectance of shading device | |
| Integer | N | Number of glass layers | |
| Integer | HEM | Index of hemispherical integration |
| Type | Name | Description |
|---|---|---|
| Real | traExtIrrIntSha[HEM] | Angular and hemispherical transmittance of a window system (glass and shading device) forh exterior irradiation with interior shading |
function winTExteriorIrradiationInteriorShading
"Angular and hemispherical transmittance of a window system (glass and shading device) for exterior irradiation with interior shading"
import Buildings;
extends Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowShadingRadiation;
output Real traExtIrrIntSha[HEM](each min=0, each max=1)
"Angular and hemispherical transmittance of a window system (glass and shading device) forh exterior irradiation with interior shading";
algorithm
for iD in 1:HEM loop
traExtIrrIntSha[iD] := traRef[TRA, 1, N, iD]*traIntShaDev/(1 - refIntShaDev
*traRef[Rb, N, 1, HEM]) "Equation (A.4.92)";
end for;
end winTExteriorIrradiationInteriorShading;
This function computes the angular and hemispherical transmittance of a window system (glass + shading device) for exterior irradiation with exterior shading.
Pane 1 is facing outside and pane N is facing the room.
Extends from Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowShadingRadiation (partial function for window radiation property with shading device).
| Type | Name | Default | Description |
|---|---|---|---|
| Real | traRef[3, N, N, HEM] | Transmittance and reflectance with exterior irradiation and no shading | |
| Real | traRefShaDev[2, 2] | Transmittance and reflectance of shading device | |
| Integer | N | Number of glass layers | |
| Integer | HEM | Index of hemispherical integration |
| Type | Name | Description |
|---|---|---|
| Real | traExtIrrExtSha[HEM] | Angular and hemispherical transmittance of a window system (glass + shading device) for exterior irradiation with exterior shading |
function winTExteriorIrradiatrionExteriorShading
"Angular and hemispherical transmittance of a window system (glass + shading device) for exterior irradiation with exterior shading"
import Buildings;
extends Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowShadingRadiation;
output Real traExtIrrExtSha[HEM](each min=0, each max=1)
"Angular and hemispherical transmittance of a window system (glass + shading device) for exterior irradiation with exterior shading";
protected
Real c;
algorithm
for iD in 1:HEM loop
c := traExtShaDev*(1 + traRef[Ra, 1, N, iD]*refExtShaDev/(1 - traRef[Ra, 1,
N, HEM]*refExtShaDev)) "Equation (A.4.88a)";
traExtIrrExtSha[iD] := c*traRef[TRA, 1, N, iD] "Equation (A.4.88c)";
end for;
end winTExteriorIrradiatrionExteriorShading;
This function computes hemispherical transmittance and back reflectance of a window for interior irradiation with exterior shading.
Pane 1 is facing the outside and pane N is facing the room.
The variables are
traRefIntIrrExtSha[1]: Transmittance; traRefIntIrrExtSha[2]: Back reflectance; traRefIntIrrExtSha[3]: Dummy value
Extends from Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowShadingRadiation (partial function for window radiation property with shading device).
| Type | Name | Default | Description |
|---|---|---|---|
| Real | traRef[3, N, N, HEM] | Transmittance and reflectance with exterior irradiation and no shading | |
| Real | traRefShaDev[2, 2] | Transmittance and reflectance of shading device | |
| Integer | N | Number of glass layers | |
| Integer | HEM | Index of hemispherical integration |
| Type | Name | Description |
|---|---|---|
| Real | traRefIntIrrExtSha[3] | Hemispherical transmittance and back reflectance of a window system (glass and shading device) for interior irradiation with exterior shading |
function winTRInteriorIrradiationExteriorShading
"Hemispherical transmittance and back reflectance of a window system (glass and shading device) for interior irradiation with exterior shading"
extends Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowShadingRadiation;
output Real traRefIntIrrExtSha[3](each min=0, each max=1)
"Hemispherical transmittance and back reflectance of a window system (glass and shading device) for interior irradiation with exterior shading";
algorithm
traRefIntIrrExtSha[TRA] := traRef[TRA, N, 1, HEM]*traExtShaDev/(1 -
refExtShaDev*traRef[Ra, 1, N, HEM]) "Equation (A.4.95)";
traRefIntIrrExtSha[Rb] := traRef[Rb, N, 1, HEM] + traRef[TRA, N, 1, HEM]*
refExtShaDev*traRef[1, 1, N, HEM]/(1 - traRef[Ra, 1, N, HEM]*refExtShaDev)
"Equation (A.4.97)";
traRefIntIrrExtSha[Ra] := 0 "Dummy value";
end winTRInteriorIrradiationExteriorShading;
This function computes the hemispherical transmittance and back reflectance of a window system (glass and shading device) for interior irradiation with interior shading.
Pane 1 is facing the outside and pane N is facing the room.
Extends from Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowShadingRadiation (partial function for window radiation property with shading device).
| Type | Name | Default | Description |
|---|---|---|---|
| Real | traRef[3, N, N, HEM] | Transmittance and reflectance with exterior irradiation and no shading | |
| Real | traRefShaDev[2, 2] | Transmittance and reflectance of shading device | |
| Integer | N | Number of glass layers | |
| Integer | HEM | Index of hemispherical integration |
| Type | Name | Description |
|---|---|---|
| Real | traRefIntIrrIntSha[3] | Hemispherical transmittance and back reflectance of a window system (glass and shading device) for interior irradiation with interior shading |
function winTRInteriorIrradiationInteriorShading
"Hemispherical transmittance and back reflectance of a window system (glass and shading device) for interior irradiation with interior shading"
extends Buildings.HeatTransfer.WindowsBeta.Functions.BaseClasses.partialWindowShadingRadiation;
output Real traRefIntIrrIntSha[3](each min=0, each max=1)
"Hemispherical transmittance and back reflectance of a window system (glass and shading device) for interior irradiation with interior shading";
protected
constant Real rRho=traRef[Rb, N, 1, HEM]*refIntShaDev
"Part of Equation (A.4.99)";
constant Real rTau=traRef[Rb, N, 1, HEM]*traIntShaDev
"Part of Equation (A.4.105)";
constant Real c=traIntShaDev*(1 + rRho/(1 - rRho)) "Equation (A.4.99)";
algorithm
traRefIntIrrIntSha[TRA] := c*traRef[TRA, N, 1, HEM] "Equation (A.4.100b)";
traRefIntIrrIntSha[Rb] := refIntShaDev + c*rTau "Equation (A.4.105)";
traRefIntIrrIntSha[Ra] := 0 "Dummy value";
end winTRInteriorIrradiationInteriorShading;