|
The BioCro C++ Library
|
Calculates the solar position using the model described in Michalsky, J. J. "The Astronomical Almanac's algorithm for approximate solar position (1950–2050)" Solar Energy 40, 227–235 (1988) More...
#include <solar_position_michalsky.h>
Inheritance diagram for solar_position_michalsky:
Collaboration diagram for solar_position_michalsky:Public Member Functions | |
| solar_position_michalsky (state_map const &input_quantities, state_map *output_quantities) | |
Static Public Member Functions | |
| static string_vector | get_inputs () |
| static string_vector | get_outputs () |
| static std::string | get_name () |
Calculates the solar position using the model described in Michalsky, J. J. "The Astronomical Almanac's algorithm for approximate solar position (1950–2050)" Solar Energy 40, 227–235 (1988)
As the paper's title indicates, this method is only recommended for years between 1950 - 2050.
In this module, we neglect the refraction correction from the Michalsky paper. The correction is small and was not found to have a significant effect on the output of a BioCro simulation; furthermore, it is discontinuous, which can cause problems for differential equation solvers.
The cosine of the solar zenith angle is provided as a convenience since several other BioCro modules only use the zenith angle via its cosine.
The calculations in the model follow this general structure:
| Name | Variable in code | BioCro quantity |
|---|---|---|
| Julian date | jd | 'julian_date' |
| "n" date | n | NA |
| mean longitude | L | 'solar_L' |
| mean anomaly | g | 'solar_g' |
| ecliptic anomaly | ell | 'solar_ell' |
| obliquity of the ecliptic | ep | 'solar_ep' |
| right ascension | ra | 'solar_ra' |
| declination | dec | 'solar_dec' |
| Greenwich mean sidereal time | gmst | 'gmst' |
| local mean sidereal time | lmst | 'lmst' |
| local hour angle | lha | 'lha' |
| zenith angle | zen | 'solar_zenith_angle' |
| azimuthal angle | az | 'solar_azimuth_angle' |
| cosine of the zenith angle | cos_zen | 'cosine_zenith_angle' |
Definition at line 96 of file solar_position_michalsky.h.
|
inline |
Definition at line 99 of file solar_position_michalsky.h.
|
static |
Definition at line 158 of file solar_position_michalsky.h.
|
inlinestatic |
Definition at line 129 of file solar_position_michalsky.h.
|
static |
Definition at line 169 of file solar_position_michalsky.h.