File gnss_yaw_steering.h¶
↰ Parent directory (agents)
GNSS satellite yaw-attitude steering laws.
Definition (agents/gnss_yaw_steering.h)¶
Detailed Description¶
Stanford NAV LAB
0.1
2026-06-07
Copyright (c) 2026
Implements the nominal GNSS yaw-attitude model and the precise (“modeled”) yaw-steering laws used by GPS, Galileo and BDS-3 satellites during yaw maneuvers (orbit midnight/noon turns and eclipse-season yaw steering), following:
Cheng, T. Geng, J. Liu, X. Xie, P. Zhao, W. Liu, “GNSS satellite yaw
attitude laws and impact on satellite clock, phase OSB and PPP-AR”, Advances in Space Research 75 (2025) 2535-2549, https://doi.org/10.1016/j.asr.2024.10.064
Two angles parameterize the satellite-Sun-Earth geometry that drives all of these laws (Kouba, 2009):
beta: Sun elevation angle above the orbital plane [rad] positive when the Sun is on the same side of the orbital plane as the orbit-normal (angular-momentum) vector.mu: orbit angle [rad] the geocentric angle, measured in the orbital plane in the direction of motion, from the orbit “midnight point” (where the satellite is directly behind the Earth as seen from the Sun) to the satellite.mu = 0at the midnight point andmu = +/-piat the “noon point”.
Each law below is a stateless, pure function mirroring one numbered equation from the paper; they are intentionally low-level building blocks (no maneuver-window detection / state machine is implemented, since the trigger conditions differ across satellite blocks and are only described qualitatively in the reference). A typical caller:
computes
beta/mu(and their rates) from the satellite ephemeris and Sun position, e.g. viaBetaAngle/OrbitAnglebelow,evaluates
NominalYawAngleto get the nominal attitude,detects whether the satellite is inside a yaw-maneuver window (shadow crossing / midnight or noon turn / eclipse season) using the block-specific criteria summarized in the reference (Section 2), and
if so, evaluates the corresponding “modeled” law instead.
Includes¶
lupnt/core/definitions.h