Package with base classes for Buildings.BoundaryConditions.SolarIrradiation
Information
This package contains base classes that are used to construct the models in
Buildings.BoundaryConditions.SolarIrradiation.
Extends from Modelica.Icons.BasesPackage (Icon for packages containing base classes).
Package Content
Circumsolar and horizon brightening coefficients
Information
This component computes the circumsolar and horizon brightening coefficients.
Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block).
Connectors
Type | Name | Description |
input RealInput | zen | Zenith angle of the sun beam [rad] |
input RealInput | skyCle | Sky clearness. skyCle=1: overcast sky; skyCle=8 clear sky |
input RealInput | skyBri | Sky brightness [0,1] |
output RealOutput | F1 | Circumsolar brightening coefficient |
output RealOutput | F2 | Horizon brightening coefficient |
Modelica definition
block BrighteningCoefficient
"Circumsolar and horizon brightening coefficients"
extends Modelica.Blocks.Icons.Block;
import H =
Buildings.Utilities.Math.Functions.spliceFunction;
public
Modelica.Blocks.Interfaces.RealInput zen(
quantity="Angle",
unit="rad",
displayUnit="degree")
"Zenith angle of the sun beam";
Modelica.Blocks.Interfaces.RealInput skyCle
"Sky clearness. skyCle=1: overcast sky; skyCle=8 clear sky";
Modelica.Blocks.Interfaces.RealInput skyBri
"Sky brightness [0,1]";
Modelica.Blocks.Interfaces.RealOutput F1
"Circumsolar brightening coefficient";
Modelica.Blocks.Interfaces.RealOutput F2
"Horizon brightening coefficient";
protected
Real F11;
Real F12;
Real F13;
Real F21;
Real F22;
Real F23;
Real d=0.01;
Real a1;
Real a2;
Real a3;
Real a4;
Real a5;
Real a6;
Real a7;
Real a8;
Real b1;
Real b2;
Real b3;
Real b4;
Real b5;
Real b6;
Real b7;
Real b8;
equation
b1 =
H(
1,
0,
1.065 - skyCle,
d);
b2 =
H(
1,
0,
1.23 - skyCle,
d);
b3 =
H(
1,
0,
1.50 - skyCle,
d);
b4 =
H(
1,
0,
1.95 - skyCle,
d);
b5 =
H(
1,
0,
2.80 - skyCle,
d);
b6 =
H(
1,
0,
4.50 - skyCle,
d);
b7 =
H(
1,
0,
6.20 - skyCle,
d);
b8 =
H(
1,
0,
skyCle - 6.20,
d);
a1 = b1;
a2 = b2 - b1;
a3 = b3 - b2;
a4 = b4 - b3;
a5 = b5 - b4;
a6 = b6 - b5;
a7 = b7 - b6;
a8 = b8;
F11 = -0.0083117*a1 + 0.1299457*a2 + 0.3296958*a3 + 0.5682053*a4 + 0.8730280*
a5 + 1.1326077*a6 + 1.0601591*a7 + 0.6777470*a8;
F12 = 0.5877285*a1 + 0.6825954*a2 + 0.4868735*a3 + 0.1874525*a4 - 0.3920403*
a5 - 1.2367284*a6 - 1.5999137*a7 - 0.3272588*a8;
F13 = -0.0620636*a1 - 0.1513725*a2 - 0.2210958*a3 - 0.2951290*a4 - 0.3616149*
a5 - 0.4118494*a6 - 0.3589221*a7 - 0.2504286*a8;
F21 = -0.0596012*a1 - 0.0189325*a2 + 0.0554140*a3 + 0.1088631*a4 + 0.2255647*
a5 + 0.2877813*a6 + 0.2642124*a7 + 0.1561313*a8;
F22 = 0.0721249*a1 + 0.0659650*a2 - 0.0639588*a3 - 0.1519229*a4 - 0.4620442*
a5 - 0.8230357*a6 - 1.1272340*a7 - 1.3765031*a8;
F23 = -0.0220216*a1 - 0.0288748*a2 - 0.0260542*a3 - 0.0139754*a4 + 0.0012448*
a5 + 0.0558651*a6 + 0.1310694*a7 + 0.2506212*a8;
F1 =
Buildings.Utilities.Math.Functions.smoothMax(
0,
F11 + F12*skyBri + F13*zen,
0.01);
F2 = F21 + F22*skyBri + F23*zen;
end BrighteningCoefficient;
Diffuse solar irradiation on a tilted surface with an isotropic model
Information
This component computes the hemispherical diffuse irradiation on a tilted surface.
The irradiation is composed of the diffuse horizontal solar irradiation and the irradiation
that has been reflected by the ground. Both components are adjusted to take into account
the tilt of the receiving surface.
References
P. Ineichen, R. Perez and R. Seals (1987).
The Importance of Correct Albedo Determination for Adequately Modeling Energy Received by Tilted Surface,
Solar Energy, 39(4): 301-305.
Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block).
Parameters
Type | Name | Default | Description |
Real | rho | 0.2 | Ground reflectance |
Angle | til | | Surface tilt angle [rad] |
Connectors
Type | Name | Description |
input RealInput | HDifHor | Horizontal diffuse solar radiation [W/m2] |
input RealInput | HGloHor | Horizontal global radiation [W/m2] |
output RealOutput | HGroDifTil | Diffuse solar irradiation on a tilted surfce from the ground [W/m2] |
output RealOutput | HSkyDifTil | Diffuse solar irradiation on a tilted surfce from the sky [W/m2] |
Modelica definition
block DiffuseIsotropic
"Diffuse solar irradiation on a tilted surface with an isotropic model"
extends Modelica.Blocks.Icons.Block;
public
parameter Real rho=0.2
"Ground reflectance";
parameter Modelica.SIunits.Angle til(displayUnit="deg")
"Surface tilt angle";
Modelica.Blocks.Interfaces.RealInput HDifHor(quantity=
"RadiantEnergyFluenceRate", unit="W/m2")
"Horizontal diffuse solar radiation";
Modelica.Blocks.Interfaces.RealInput HGloHor(quantity=
"RadiantEnergyFluenceRate", unit="W/m2")
"Horizontal global radiation";
Modelica.Blocks.Interfaces.RealOutput HGroDifTil(
final quantity="RadiantEnergyFluenceRate",
final unit="W/m2")
"Diffuse solar irradiation on a tilted surfce from the ground";
protected
Real til_c
"Cosine of tilt angle";
public
Modelica.Blocks.Interfaces.RealOutput HSkyDifTil(
final quantity="RadiantEnergyFluenceRate",
final unit="W/m2")
"Diffuse solar irradiation on a tilted surfce from the sky";
equation
til_c =
Modelica.Math.cos(til);
HSkyDifTil = 0.5*HDifHor*(1 + til_c);
HGroDifTil = 0.5*HGloHor*rho*(1 - til_c);
end DiffuseIsotropic;
Hemispherical diffuse irradiation on a tilted surface with Perez's anisotropic model
Information
This component computes the hemispherical diffuse irradiation on a tilted surface by using an anisotropic model proposed by Perez.
References
-
P. Ineichen, R. Perez and R. Seals (1987).
The Importance of Correct Albedo Determination for Adequately Modeling Energy Received by Tilted Surface,
Solar Energy, 39(4): 301-305.
-
R. Perez, R. Seals, P. Ineichen, R. Stewart and D. Menicucci (1987).
A New Simplified Version of the Perez Diffuse Irradiance Model for Tilted Surface,
Solar Energy, 39(3): 221-231.
-
R. Perez, P. Ineichen, R. Seals, J. Michalsky and R. Stewart (1990).
Modeling Dyalight Availability and Irradiance Componets From Direct and Global Irradiance,
Solar Energy, 44(5):271-289.
Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block).
Parameters
Type | Name | Default | Description |
Real | rho | 0.2 | Ground reflectance |
Angle | til | | Surface tilt angle [rad] |
Connectors
Type | Name | Description |
input RealInput | briCof1 | Brightening Coeffcient F1 |
input RealInput | briCof2 | Brightening Coeffcient F2 |
input RealInput | HDifHor | Diffuse horizontal solar radiation [W/m2] |
input RealInput | HGloHor | Global horizontal radiation [W/m2] |
input RealInput | zen | Zenith angle of the sun beam [rad] |
input RealInput | incAng | Solar incidence angle on the surface [rad] |
output RealOutput | HGroDifTil | Hemispherical diffuse solar irradiation on a tilted surfce from the ground [W/m2] |
output RealOutput | HSkyDifTil | Hemispherical diffuse solar irradiation on a tilted surfce from the sky [W/m2] |
Modelica definition
block DiffusePerez
"Hemispherical diffuse irradiation on a tilted surface with Perez's anisotropic model"
extends Modelica.Blocks.Icons.Block;
public
parameter Real rho=0.2
"Ground reflectance";
parameter Modelica.SIunits.Angle til(displayUnit="deg")
"Surface tilt angle";
Modelica.Blocks.Interfaces.RealInput briCof1
"Brightening Coeffcient F1";
Modelica.Blocks.Interfaces.RealInput briCof2
"Brightening Coeffcient F2";
Modelica.Blocks.Interfaces.RealInput HDifHor(quantity=
"RadiantEnergyFluenceRate", unit="W/m2")
"Diffuse horizontal solar radiation";
Modelica.Blocks.Interfaces.RealInput HGloHor(quantity=
"RadiantEnergyFluenceRate", unit="W/m2")
"Global horizontal radiation";
Modelica.Blocks.Interfaces.RealInput zen(
quantity="Angle",
unit="rad",
displayUnit="degree")
"Zenith angle of the sun beam";
Modelica.Blocks.Interfaces.RealInput incAng(
quantity="Angle",
unit="rad",
displayUnit="degree")
"Solar incidence angle on the surface";
Modelica.Blocks.Interfaces.RealOutput HGroDifTil(
final quantity=
"RadiantEnergyFluenceRate",
final unit="W/m2")
"Hemispherical diffuse solar irradiation on a tilted surfce from the ground";
Modelica.Blocks.Interfaces.RealOutput HSkyDifTil(
final quantity=
"RadiantEnergyFluenceRate",
final unit="W/m2")
"Hemispherical diffuse solar irradiation on a tilted surfce from the sky";
protected
Real a;
Real b;
constant Real bMin=
Modelica.Math.cos(Modelica.Constants.pi*85/180)
"Lower bound for b";
equation
a =
Buildings.Utilities.Math.Functions.smoothMax(
0,
Modelica.Math.cos(incAng),
0.01);
b =
Buildings.Utilities.Math.Functions.smoothMax(
bMin,
Modelica.Math.cos(zen),
0.01);
HSkyDifTil = HDifHor*(0.5*(1 - briCof1)*(1 +
Modelica.Math.cos(til)) +
briCof1*a/b + briCof2*
Modelica.Math.sin(til));
HGroDifTil = HGloHor*0.5*rho*(1 -
Modelica.Math.cos(til));
end DiffusePerez;
Direct solar irradiation on a tilted surface
Information
This component computes the direct solar irradiation on a tilted surface.
Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block).
Connectors
Type | Name | Description |
input RealInput | incAng | Incidence angle of the sun beam on a tilted surface [rad] |
input RealInput | HDirNor | Direct normal radiation [W/m2] |
output RealOutput | HDirTil | Direct solar irradiation on a tilted surfce [W/m2] |
Modelica definition
Partial model that is used to compute the direct and diffuse solar irradiation
Information
This is a partial model that is used to implement the direct and diffuse irradiation.
Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block).
Parameters
Type | Name | Default | Description |
Angle | til | | Surface tilt [rad] |
Connectors
Type | Name | Description |
output RealOutput | H | Radiation per unit area [W/m2] |
Bus | weaBus | Bus with weather data |
Modelica definition
Relative air mass
Information
This component computes the relative air mass for sky brightness.
References
R. Perez (1999).
Fortran Function irrpz.f,
Emailed by R. Perez to F.C. Winkelmann on May 21, 1999.
Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block).
Connectors
Type | Name | Description |
input RealInput | zen | Zenith angle of the sun beam [rad] |
output RealOutput | relAirMas | Relative air mass |
Modelica definition
block RelativeAirMass
"Relative air mass"
extends Modelica.Blocks.Icons.Block;
public
Modelica.Blocks.Interfaces.RealInput zen(
quantity="Angle",
unit="rad",
displayUnit="degree")
"Zenith angle of the sun beam";
Modelica.Blocks.Interfaces.RealOutput relAirMas
"Relative air mass";
protected
Real zenLim
"Zenith angle bounded from above by 90 degree";
Real zenDeg
"Zenith angle in degree";
equation
zenLim =
Buildings.Utilities.Math.Functions.smoothMin(
zen,
Modelica.Constants.pi/2,
0.01);
zenDeg = zenLim*180/Modelica.Constants.pi;
relAirMas = 1/(
Modelica.Math.cos(zenLim) + 0.15*(93.9 - zenDeg)^(-1.253));
end RelativeAirMass;
Sky brightness
Information
This component computes the sky brightness.
References
R. Perez, P. Ineichen, R. Seals, J. Michalsky and R. Stewart (1990).
Modeling Dyalight Availability and Irradiance Componets From Direct and Global Irradiance,
Solar Energy, 44(5):271-289.
Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block).
Connectors
Type | Name | Description |
input RealInput | relAirMas | Relative air mass |
input RealInput | HDifHor | Horizontal diffuse solar radiation [W/m2] |
output RealOutput | skyBri | Sky brightness |
Modelica definition
Sky clearness
Information
This component computes the sky clearness.
Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block).
Connectors
Type | Name | Description |
input RealInput | zen | Zenith angle of the sun beam [rad] |
input RealInput | HDifHor | Horizontal diffuse solar radiation [W/m2] |
input RealInput | HGloHor | Horizontal global solar radiation [W/m2] |
output RealOutput | skyCle | Sky clearness. skyCle=1: overast sky; skyCle=8: clear sky |
Modelica definition
block SkyClearness
"Sky clearness"
extends Modelica.Blocks.Icons.Block;
public
Modelica.Blocks.Interfaces.RealInput zen(
quantity="Angle",
unit="rad",
displayUnit="degreeC")
"Zenith angle of the sun beam";
Modelica.Blocks.Interfaces.RealInput HDifHor(quantity=
"RadiantEnergyFluenceRate", unit="W/m2")
"Horizontal diffuse solar radiation";
Modelica.Blocks.Interfaces.RealInput HGloHor(quantity=
"RadiantEnergyFluenceRate", unit="W/m2")
"Horizontal global solar radiation";
Modelica.Blocks.Interfaces.RealOutput skyCle
"Sky clearness. skyCle=1: overast sky; skyCle=8: clear sky";
protected
Real tmp1
"Intermediate variable";
algorithm
tmp1 := 5.534e-6*(zen*180/Modelica.Constants.pi)^3;
skyCle :=
smooth(1,
if (HGloHor < Modelica.Constants.small)
then 1
else
Buildings.Utilities.Math.Functions.smoothLimit(
(HGloHor/
Buildings.Utilities.Math.Functions.smoothMax(
HDifHor,
1e-4,
1e-5) + tmp1)/(1 + tmp1),
1,
8,
0.1));
end SkyClearness;
Automatically generated Mon May 4 10:18:17 2015.