Vulcan
Aerospace Engineering Utilities Built on Janus
Loading...
Searching...
No Matches
vulcan::environment::eclipse Namespace Reference

Namespaces

namespace  constants

Functions

template<typename Scalar>
Scalar shadow_cylindrical (const Vec3< Scalar > &r_sat, const Vec3< Scalar > &r_sun, double R_body=vulcan::constants::earth::R_eq)
 Cylindrical shadow function.
template<typename Scalar>
Scalar shadow_conical (const Vec3< Scalar > &r_sat, const Vec3< Scalar > &r_sun, double R_body=vulcan::constants::earth::R_eq, double R_sun=constants::R_sun)
 Conical shadow function with penumbra.
template<typename Scalar>
Scalar is_in_shadow (const Vec3< Scalar > &r_sat, const Vec3< Scalar > &r_sun, double R_body=vulcan::constants::earth::R_eq)
 Simple binary eclipse check using cylindrical model.
template<typename Scalar>
Scalar is_sunlit (const Vec3< Scalar > &r_sat, const Vec3< Scalar > &r_sun, double R_body=vulcan::constants::earth::R_eq)
 Check if satellite is in sunlight.

Function Documentation

◆ is_in_shadow()

template<typename Scalar>
Scalar vulcan::environment::eclipse::is_in_shadow ( const Vec3< Scalar > & r_sat,
const Vec3< Scalar > & r_sun,
double R_body = vulcan::constants::earth::R_eq )

Simple binary eclipse check using cylindrical model.

Returns
1.0 if satellite is in Earth's shadow, 0.0 otherwise

◆ is_sunlit()

template<typename Scalar>
Scalar vulcan::environment::eclipse::is_sunlit ( const Vec3< Scalar > & r_sat,
const Vec3< Scalar > & r_sun,
double R_body = vulcan::constants::earth::R_eq )

Check if satellite is in sunlight.

Returns
1.0 if sunlit, 0.0 if in shadow

◆ shadow_conical()

template<typename Scalar>
Scalar vulcan::environment::eclipse::shadow_conical ( const Vec3< Scalar > & r_sat,
const Vec3< Scalar > & r_sun,
double R_body = vulcan::constants::earth::R_eq,
double R_sun = constants::R_sun )

Conical shadow function with penumbra.

More accurate model accounting for the finite size of the Sun. Returns smooth transition through penumbra.

Based on Montenbruck & Gill "Satellite Orbits" Section 3.4

Parameters
r_satSatellite position in ECI [m]
r_sunSun position in ECI [m]
R_bodyShadowing body radius [m]
R_sunSun radius [m]
Returns
Illumination factor ν ∈ [0,1]

◆ shadow_cylindrical()

template<typename Scalar>
Scalar vulcan::environment::eclipse::shadow_cylindrical ( const Vec3< Scalar > & r_sat,
const Vec3< Scalar > & r_sun,
double R_body = vulcan::constants::earth::R_eq )

Cylindrical shadow function.

Returns 0 when in complete shadow (umbra), 1 when fully sunlit. Uses cylindrical approximation (Earth's shadow is a cylinder).

Template Parameters
Scalardouble or casadi::MX
Parameters
r_satSatellite position in ECI [m]
r_sunSun position in ECI [m]
R_bodyRadius of shadowing body [m] (default: Earth equatorial)
Returns
Shadow function ν ∈ [0,1]