IEA EBC Annex 60 EBC logo

Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples

Collection of models that illustrate model use and test models

Information

This package contains examples for the use of models that can be found in Annex60.BoundaryConditions.SolarGeometry.BaseClasses.

Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).

Package Content

Name Description
Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.AltitudeAngle AltitudeAngle Test model for altitude angle
Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.Declination Declination Test model for declination
Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.IncidenceAngle IncidenceAngle Test model for incidence angle
Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.SolarAzimuth SolarAzimuth Test model for zenith angle
Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.SolarHourAngle SolarHourAngle Test model for solar hour angle
Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.WallSolarAzimuth WallSolarAzimuth Test model for wall solar azimuth angle
Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.ZenithAngle ZenithAngle Test model for zenith angle

Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.AltitudeAngle Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.AltitudeAngle

Test model for altitude angle

Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.AltitudeAngle

Information

This example calculates the altitude angle of the sun at a given time. The altitude angle is the angle between the sun ray and the projection of the ray on a horizontal surface.

Components used in this model are:


Extends from Modelica.Icons.Example (Icon for runnable examples).

Connectors

TypeNameDescription
BusweaBusWeather bus

Modelica definition

model AltitudeAngle "Test model for altitude angle" extends Modelica.Icons.Example; Annex60.BoundaryConditions.SolarGeometry.BaseClasses.ZenithAngle zen(lat= 0.73268921998722) "Zenith angle"; Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Declination decAng "Declination angle"; Annex60.BoundaryConditions.SolarGeometry.BaseClasses.SolarHourAngle solHouAng "Solar hour angle"; Annex60.BoundaryConditions.WeatherData.ReaderTMY3 weaDat(filNam="modelica://Annex60/Resources/weatherdata/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.mos") "Weather data"; Annex60.BoundaryConditions.WeatherData.Bus weaBus "Weather bus"; Annex60.BoundaryConditions.SolarGeometry.BaseClasses.AltitudeAngle altAng "Altitude angle: Angle between Sun ray and horizontal surface)"; equation connect(decAng.decAng, zen.decAng); connect(solHouAng.solHouAng, zen.solHouAng); connect(weaDat.weaBus, weaBus); connect(weaBus.cloTim, decAng.nDay); connect(weaBus.solTim, solHouAng.solTim); connect(zen.zen, altAng.zen); end AltitudeAngle;

Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.Declination Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.Declination

Test model for declination

Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.Declination

Information

This model validates the computation of the solar declination, which is the angle between the equatorial plane and the solar beam. The time table solDecNOAA outputs the solar declination according to the computation of the National Oceanic and Atmospheric Administration (NOAA), using their yearly calculator from http://www.esrl.noaa.gov/gmd/grad/solcalc/calcdetails.html. The values differ slightly because the equation in Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Declination is an approximation.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model Declination "Test model for declination" extends Modelica.Icons.Example; Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Declination decAng "Declination angle"; Annex60.Utilities.Time.ModelTime modTim "Model time"; Modelica.Blocks.Sources.TimeTable solDecNOAA(table=[ 0, -0.4007544; 2678400, -0.2960882; 5097600, -0.1292836; 7776000, 0.0824143; 10368000, 0.2656267; 13046400, 0.3860123; 15638400, 0.4027150; 18316800, 0.3123199; 20995200, 0.1414929; 23587200, -0.0587907; 26265600, -0.2544026; 28857600, -0.3817216; 28944000, -0.3843185; 31536000, -0.4010977], y(unit="rad")) "Solar declination according to NOAA"; equation connect(modTim.y, decAng.nDay); end Declination;

Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.IncidenceAngle Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.IncidenceAngle

Test model for incidence angle

Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.IncidenceAngle

Information

This example computes the solar incidence angle on a tilted surface. This model is also part of more extensive tests that run the model for different orientations. These tests are at Annex60.BoundaryConditions.SolarGeometry.Examples.IncidenceAngle.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Connectors

TypeNameDescription
BusweaBusWeather bus

Modelica definition

model IncidenceAngle "Test model for incidence angle" extends Modelica.Icons.Example; Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Declination decAng "Declination angle"; Annex60.BoundaryConditions.SolarGeometry.BaseClasses.SolarHourAngle solHouAng "Solar hour angle"; Annex60.BoundaryConditions.SolarGeometry.BaseClasses.IncidenceAngle incAng( azi=Annex60.Types.Azimuth.S, til=Annex60.Types.Tilt.Wall, lat=0.73268921998722) "Incidence angle"; Annex60.BoundaryConditions.WeatherData.ReaderTMY3 weaDat( filNam="modelica://Annex60/Resources/weatherdata/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.mos") "Weather data"; Annex60.BoundaryConditions.WeatherData.Bus weaBus "Weather bus"; equation connect(decAng.decAng, incAng.decAng); connect(solHouAng.solHouAng, incAng.solHouAng); connect(weaDat.weaBus, weaBus); connect(weaBus.cloTim, decAng.nDay); connect(weaBus.solTim, solHouAng.solTim); end IncidenceAngle;

Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.SolarAzimuth Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.SolarAzimuth

Test model for zenith angle

Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.SolarAzimuth

Information

This example computes the solar azimuth angle.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Parameters

TypeNameDefaultDescription
Anglelat41.98*Modelica.Constants.pi/...Latitude [rad]

Connectors

TypeNameDescription
BusweaBusWeather bus

Modelica definition

model SolarAzimuth "Test model for zenith angle" extends Modelica.Icons.Example; parameter Modelica.SIunits.Angle lat= 41.98*Modelica.Constants.pi/180 "Latitude"; Annex60.BoundaryConditions.SolarGeometry.BaseClasses.SolarHourAngle solHouAng "Solar hour angle"; Annex60.BoundaryConditions.SolarGeometry.BaseClasses.ZenithAngle zen(lat=lat) "Zenith angle"; Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Declination decAng "Declination angle"; Annex60.BoundaryConditions.SolarGeometry.BaseClasses.SolarAzimuth solAzi(lat=lat) "Solar azimuth"; WeatherData.ReaderTMY3 weaDat( filNam="modelica://Annex60/Resources/weatherdata/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.mos") "Weather data"; WeatherData.Bus weaBus "Weather bus"; equation connect(zen.zen, solAzi.zen); connect(solHouAng.solHouAng, zen.solHouAng); connect(decAng.decAng, solAzi.decAng); connect(decAng.decAng, zen.decAng); connect(weaDat.weaBus, weaBus); connect(weaBus.cloTim, decAng.nDay); connect(weaBus.solTim, solHouAng.solTim); connect(weaBus.solTim, solAzi.solTim); end SolarAzimuth;

Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.SolarHourAngle Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.SolarHourAngle

Test model for solar hour angle

Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.SolarHourAngle

Information

This example computes the solar hour angle, which is defined as the angle between the circle that passes through an observer, the north pole and the south pole, and the circle that passes through the sun, the north and the south pole.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Connectors

TypeNameDescription
BusweaBusWeather bus

Modelica definition

model SolarHourAngle "Test model for solar hour angle" extends Modelica.Icons.Example; Annex60.BoundaryConditions.SolarGeometry.BaseClasses.SolarHourAngle solHouAng "Solar hour Angle"; WeatherData.ReaderTMY3 weaDat( filNam="modelica://Annex60/Resources/weatherdata/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.mos") "Weather data"; WeatherData.Bus weaBus "Weather bus"; equation connect(weaDat.weaBus, weaBus); connect(weaBus.solTim, solHouAng.solTim); end SolarHourAngle;

Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.WallSolarAzimuth Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.WallSolarAzimuth

Test model for wall solar azimuth angle

Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.WallSolarAzimuth

Information

This example calculates the wall solar azimuth angle.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Parameters

TypeNameDefaultDescription
Anglelat41.98*Modelica.Constants.pi/...Latitude [rad]

Connectors

TypeNameDescription
BusweaBusWeather bus

Modelica definition

model WallSolarAzimuth "Test model for wall solar azimuth angle" extends Modelica.Icons.Example; Annex60.BoundaryConditions.SolarGeometry.IncidenceAngle incAng( azi=0, lat=lat, til=1.5707963267949) "solar incidence angle"; Annex60.BoundaryConditions.WeatherData.ReaderTMY3 weaDat(filNam= "modelica://Annex60/Resources/weatherdata/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.mos") "Weather data"; Annex60.BoundaryConditions.WeatherData.Bus weaBus "Weather bus"; Annex60.BoundaryConditions.SolarGeometry.BaseClasses.WallSolarAzimuth walSolAzi "Vertical wall solar azimuth angle"; Annex60.BoundaryConditions.SolarGeometry.BaseClasses.AltitudeAngle altAng "Altitude angle"; parameter Modelica.SIunits.Angle lat=41.98*Modelica.Constants.pi/180 "Latitude"; equation connect(weaDat.weaBus, weaBus); connect(weaDat.weaBus, incAng.weaBus); connect(incAng.y, walSolAzi.incAng); connect(altAng.alt, walSolAzi.alt); connect(weaBus.solZen, altAng.zen); end WallSolarAzimuth;

Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.ZenithAngle Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.ZenithAngle

Test model for zenith angle

Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Examples.ZenithAngle

Information

This example computes the zenith angle, which is the angle between the earth surface normal and the sun's beam.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Connectors

TypeNameDescription
BusweaBusWeather bus

Modelica definition

model ZenithAngle "Test model for zenith angle" extends Modelica.Icons.Example; Annex60.BoundaryConditions.SolarGeometry.BaseClasses.ZenithAngle zen(lat= 0.73268921998722) "Zenith angle"; Annex60.BoundaryConditions.SolarGeometry.BaseClasses.Declination decAng "Declination angle"; Annex60.BoundaryConditions.SolarGeometry.BaseClasses.SolarHourAngle solHouAng "Solar hour angle"; Annex60.BoundaryConditions.WeatherData.ReaderTMY3 weaDat(filNam= "modelica://Annex60/Resources/weatherdata/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.mos") "Weather data"; Annex60.BoundaryConditions.WeatherData.Bus weaBus "Weather bus"; equation connect(decAng.decAng, zen.decAng); connect(solHouAng.solHouAng, zen.solHouAng); connect(weaDat.weaBus, weaBus); connect(weaBus.cloTim, decAng.nDay); connect(weaBus.solTim, solHouAng.solTim); end ZenithAngle;

http://iea-annex60.org