functionCosDirSunVectorHeightAz

Compute the sun's direction cosine, the solar elevation and azimuth angle

Information

Function returning the sun's direction cosine, the solar elevation and azimuth angle

Hypothesis and equations

Function computing the sun's direction cosine (CosDir[3]), the solar elevation and azimuth angle (Haut and Az) à (t0+t) according to latitude and longitude.

  • CosDir[1]=sin(phi)*sin(delta)+cos(phi)*cos(delta)*cos(HA) (=sinh)
  • CosDir[2]=cos(delta)*sin(HA)
  • CosDir[3]=cos(delta)*sin(phi)*cos(HA)-sin(delta)*cos(phi)
  • Height=asin(CosDir[1])*180/pi in degrees
  • Az is determined by its sine and cosine:
    • sinAz=CosDir[2]/cosh
    • cosAz=CosDir[3]/cosh

Where:

  • phi : latitude converted in radians
  • delta : Sun's declination in radians
  • HA : hour angle in radians

The year is supposed to be not bisextile.

Bibliography

H. BOUIA, "Amélioration du temps de calcul dans BuildSysPro par traitements numériques optimisés de la conduction et des calculs solaires", Note H-E14-2013-00715-FR, 03/2013.

Instructions for use

none

Known limits / Use precautions

none

Validations

Validated function - Hassan BOUIA 03/2013.

--------------------------------------------------------------
Licensed by EDF under a 3-clause BSD-license
Copyright © EDF 2009 - 2023
BuildSysPro version 3.6.0
Author : Hassan BOUIA, EDF (2013)
--------------------------------------------------------------

Inputs

TypeNameDefaultDescription
Realt00Time in seconds at t=0
Modelica.Units.SI.TimetUniversal time in seconds
Modelica.Units.NonSI.Angle_deglongitudeLongitude in degrees
Modelica.Units.NonSI.Angle_deglatitudeLatitude in degrees

Outputs

TypeNameDefaultDescription
Real[3]CosDirSun's direction cosine
RealAzSolar azimuth angle
RealHautSolar elevation angle

Revisions

Aurélie Kaemmerlen 11/2013 : Modification du calcul (cosAz*0.999) pour éviter une discontinuité dûe au calcul de l'arcosinus de Modelica

Benoît Charrier 01/2016 : Correction d'une erreur dans le calcul du quantième : remplacement de la ligne Real d=mod((t+t0)/86400,365); par Real d=mod((t+t0)/86400,365)+1;.