.. _file_agents_gnss_yaw_steering.h: File gnss_yaw_steering.h ======================== |exhale_lsh| :ref:`Parent directory ` (``agents``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS GNSS satellite yaw-attitude steering laws. .. contents:: Contents :local: :backlinks: none Definition (``agents/gnss_yaw_steering.h``) ------------------------------------------- .. toctree:: :maxdepth: 1 program_listing_file_agents_gnss_yaw_steering.h.rst 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: L. 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 = 0`` at the midnight point and ``mu = +/-pi`` at 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: 1. computes ``beta``/``mu`` (and their rates) from the satellite ephemeris and Sun position, e.g. via ``BetaAngle``/``OrbitAngle`` below, 2. evaluates ``NominalYawAngle`` to get the nominal attitude, 3. 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 4. if so, evaluates the corresponding "modeled" law instead. Includes -------- - ``lupnt/core/definitions.h`` Included By ----------- - :ref:`file_agents_gnss_attitude.cc` - :ref:`file_agents_gnss_yaw_steering.cc` - :ref:`file_lupnt.h` Namespaces ---------- - :ref:`namespace_lupnt` Classes ------- - :ref:`exhale_class_classlupnt_1_1GnssYawSteering`