Mapa de compliance de integridad DO-316 / DO-229E
Este documento hace corresponder los requisitos de nivel de protección y de monitorización de la integridad de la RTCA (antes Radio Technical Commission for Aeronautics) DO-229E (MOPS (normas mínimas de rendimiento operativo) de SBAS (sistema de aumentación basado en satélites)) y DO-316 (equipo aerotransportado GPS/SBAS (GPS: Sistema de Posicionamiento Global)) con las funciones de Kshana que los implementan. Es una ayuda de trazabilidad de ingeniería, no una declaración de que se satisfaga ningún requisito: Kshana implementa los algoritmos publicados; no es aviónica aprobada.
La forma legible por máquina es sbas::do316_compliance_map; esta prosa es su complemento (reflejo de docs/ARAIM_REFERENCE.md).
Niveles de protección por mínimos cuadrados ponderados (DO-229E Apéndice J)#
Para cada satélite i con elevación Elᵢ y acimut Azᵢ en el usuario, la fila de observación en nivel local (ENU (este-norte-arriba) + reloj) es
Gᵢ = [ −cos Elᵢ·sin Azᵢ, −cos Elᵢ·cos Azᵢ, −sin Elᵢ, 1 ]
con peso wᵢ = 1/σᵢ², σᵢ² = σ_flt² + σ_uire² + σ_air² + σ_tropo² (el presupuesto de UDRE (error diferencial de distancia del usuario) / GIVE (error vertical ionosférico de la cuadrícula) / aerotransportado / troposfera). La covarianza de posición es D = (GᵀWG)⁻¹; su bloque ENU da los niveles de protección horizontal y 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 calcula D invirtiendo la matriz normal de 4×4 con la misma rutina que usa la pila de RAIM (monitorización autónoma de la integridad por el receptor) (orbit::invert4), y valida el resultado de dos maneras (la vía de la covarianza D[2][2] y la vía de la proyección Σᵢ S_{U,i}²·σᵢ² deben coincidir) y, además, frente a una geometría de referencia independiente de numpy inv(GᵀG).
K-factors#
| Modo | K_H | K_V | Fuente |
|---|---|---|---|
| En ruta → NPA (aproximación de no precisión; solo horizontal) | 6.18 | — | Rayleigh √(−2·ln 5e-9) = 6,1829 |
| Aproximación de precisión | 6.0 | 5.33 | DO-229E MOPS |
Nota de honestidad: el MOPS usa la constante horizontal redondeada 6.0; el cuantil normal bilateral exacto Φ⁻¹(1 − 1e-9/2) es 6.109. Kshana usa en el código el 6,0 publicado y deriva K_V = Φ⁻¹(1 − 1e-7/2) = 5.327 del mismo raim::normal_quantile que usa la pila de RAIM, una comprobación cruzada no circular (el valor se redondea al 5,33 del MOPS).
Combinación libre de ionosfera de doble frecuencia L1/L5 (IS-GPS-705)#
Con 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)
El retardo ionosférico de primer orden (40.3·10¹⁶·TEC/f²) se cancela exactamente, verificado frente a la física independiente de timetransfer_adv::iono_delay_m del motor para un intervalo de TEC (contenido total de electrones). La amplificación del ruido para entradas de igual varianza es √(c₁² + c₅²) = 2.588.
Estado de la validación#
- En el repositorio, automatizado (en cada commit): los factores K frente a sus definiciones distribucionales,
γ₁₅y los coeficientes libres de ionosfera (IF) frente a las frecuencias de IS-GPS-705 (IS: especificación de interfaz), la cancelación iono de primer orden frente a la física del retardo independiente, y los niveles de protección por mínimos cuadrados ponderados (WLS) frente a una geometría de referencia de numpyinv(GᵀG)(sbas::tests::wls_pl_matches_numpy_on_five_satellite_geometry). - Referencia independiente externa, automatizada (
tests/sbas_reference.rs): dadas la elevación, el acimut y el 1-σ total de cada satélite,sbas_protection_levelreproduce el HPL de una implementación independiente,waasprotlevels()en la bifurcación de niveles de protección SBAS de RTKLIB (una biblioteca de código abierto de posicionamiento cinemático en tiempo real)zsiki/rtklib_ws(Siki y Takács 2017), en seis épocas que esa herramienta calculó a partir de mensajes difundidos reales de EGNOS (Servicio Europeo de Navegación por Complemento Geoestacionario) (PRN (número de código pseudoaleatorio) geoestacionario 120) y observaciones RINEX (Receiver Independent Exchange Format) reales de la estación BUTE en Budapest (2017-02-19), con < 2e-3 m. La referencia independiente redondea K_V a 5,33, de modo que la componente vertical se compara sin factores K, comod_Ufrente a su VPL / 5,33. ESA (Agencia Espacial Europea) gLAB v6.0.0 (core/filter.c) usa la misma fórmula. - No realizado: el σ por satélite es el propio de la referencia independiente; modelar σ a partir de mensajes UDRE/GIVE en bruto queda fuera de alcance, y no se ha reproducido de extremo a extremo ningún producto oficial publicado de niveles de protección de WAAS (Wide Area Augmentation System) o EGNOS. DO-229E/DO-316 son en sí mismos de pago en la RTCA; la fuente abierta de la derivación son las páginas de SBAS de ICAO/EGNOS (ICAO: Organización de Aviación Civil Internacional) de ESA Navipedia.