Carte de compliance d'intégrité DO-316 / DO-229E
Ce document met en correspondance les exigences de niveaux de protection et de surveillance de l'intégrité de la DO-229E (SBAS (système d'augmentation par satellites) MOPS (normes de performance opérationnelle minimale)) et de la DO-316 (équipements embarqués GPS/SBAS (GPS : Global Positioning System)) de la RTCA (anciennement Radio Technical Commission for Aeronautics) avec les fonctions de Kshana qui les mettent en œuvre. C'est une aide de traçabilité d'ingénierie, et non une déclaration selon laquelle une exigence quelconque est satisfaite : Kshana met en œuvre les algorithmes publiés ; ce n'est pas de l'avionique homologuée.
La forme lisible par machine est sbas::do316_compliance_map ; ce texte en est le complément (en miroir de docs/ARAIM_REFERENCE.md).
Niveaux de protection par moindres carrés pondérés (DO-229E annexe J)#
Pour chaque satellite i d'élévation Elᵢ et d'azimut Azᵢ chez l'utilisateur, la ligne d'observation en repère local (ENU (est-nord-haut) + horloge) est
Gᵢ = [ −cos Elᵢ·sin Azᵢ, −cos Elᵢ·cos Azᵢ, −sin Elᵢ, 1 ]
avec le poids wᵢ = 1/σᵢ², σᵢ² = σ_flt² + σ_uire² + σ_air² + σ_tropo² (le budget UDRE (erreur différentielle de distance de l'utilisateur) / GIVE (erreur verticale ionosphérique de grille) / aéroporté / troposphère). La covariance de position est D = (GᵀWG)⁻¹ ; son bloc ENU donne les niveaux de protection horizontal et vertical (HPL, VPL) :
d_major = √( (d_E² + d_N²)/2 + √( ((d_E² − d_N²)/2)² + d_EN² ) )
d_U = √(d_U²)
HPL = K_H · d_major VPL = K_V · d_U
Kshana calcule D en inversant la matrice normale 4×4 avec la même routine que celle qu'utilise la pile RAIM (surveillance autonome de l'intégrité par le récepteur) (orbit::invert4), et valide le résultat de deux façons (la voie de la covariance D[2][2] et la voie de la projection Σᵢ S_{U,i}²·σᵢ² doivent concorder), ainsi que par rapport à une géométrie de référence indépendante numpy inv(GᵀG).
K-factors#
| Mode | K_H | K_V | Source |
|---|---|---|---|
| En route → NPA (approche de non-précision ; horizontale seulement) | 6.18 | — | Rayleigh √(−2·ln 5e-9) = 6,1829 |
| Approche de précision | 6.0 | 5.33 | MOPS DO-229E |
Note d'honnêteté : les MOPS utilisent la constante horizontale arrondie 6.0 ; le quantile normal bilatéral exact Φ⁻¹(1 − 1e-9/2) vaut 6.109. Kshana utilise dans le code le 6,0 publié et dérive K_V = Φ⁻¹(1 − 1e-7/2) = 5.327 du même raim::normal_quantile que celui qu'utilise la pile RAIM, un recoupement non circulaire (la valeur s'arrondit au 5,33 des MOPS).
Combinaison sans ionosphère bifréquence L1/L5 (IS-GPS-705)#
Avec f₁ = 1575.42 MHz, f₅ = 1176.45 MHz, γ₁₅ = (f₁/f₅)² = 1.79327 :
ρ_IF = (f₁²·ρ₁ − f₅²·ρ₅) / (f₁² − f₅²) = c₁·ρ₁ + c₅·ρ₅
c₁ = +2.260604, c₅ = −1.260604 (c₁ + c₅ = 1, unit gain)
Le retard ionosphérique du premier ordre (40.3·10¹⁶·TEC/f²) s'annule exactement, ce qui est vérifié par rapport à la physique indépendante timetransfer_adv::iono_delay_m du moteur pour une plage de TEC (contenu électronique total). L'amplification du bruit pour des entrées de variance égale est √(c₁² + c₅²) = 2.588.
État de la validation#
- Dans le dépôt, automatisé (à chaque commit) : les facteurs K par rapport à leurs définitions distributionnelles,
γ₁₅et les coefficients sans ionosphère (IF) par rapport aux fréquences de l'IS-GPS-705 (IS : Interface Specification), l'annulation ionosphérique du premier ordre par rapport à la physique de retard indépendante, et les niveaux de protection par moindres carrés pondérés (WLS) par rapport à une géométrie de référence numpyinv(GᵀG)(sbas::tests::wls_pl_matches_numpy_on_five_satellite_geometry). - Référence indépendante externe, automatisée (
tests/sbas_reference.rs) : à partir de l'élévation, de l'azimut et du 1-σ total de chaque satellite,sbas_protection_levelreproduit le HPL d'une implémentation indépendante,waasprotlevels()dans le fork de niveaux de protection SBAS de RTKLIB (une bibliothèque libre de positionnement cinématique en temps réel)zsiki/rtklib_ws(Siki & Takács 2017), sur six époques que cet outil a calculées à partir de messages de diffusion réels d'EGNOS (European Geostationary Navigation Overlay Service) (PRN (numéro de code pseudo-aléatoire) géostationnaire 120) et d'observations RINEX (Receiver Independent Exchange Format) réelles de la station BUTE à Budapest (2017-02-19), à < 2e-3 m près. La référence arrondit K_V à 5,33, de sorte que la composante verticale est comparée sans facteur K, sous la formed_Upar rapport à son VPL / 5,33. gLAB v6.0.0 de l'ESA (Agence spatiale européenne) (core/filter.c) utilise la même formule. - Non fait : le σ par satellite est celui de la référence elle-même ; la modélisation de σ à partir des messages UDRE/GIVE bruts est hors périmètre, et aucun produit officiel publié de niveaux de protection WAAS (Wide Area Augmentation System) ou EGNOS n'a été reproduit de bout en bout. La DO-229E et la DO-316 elles-mêmes sont derrière le paywall de la RTCA ; la source ouverte de dérivation est constituée des pages SBAS OACI/EGNOS (OACI : Organisation de l'aviation civile internationale) de l'ESA Navipedia.