Traducción automática, no revisada por un hablante nativo. El inglés es la referencia.

Integridad e interferenciaEditar en GitHubFuente: docs/COMPLIANCE.md

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 numpy inv(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_level reproduce 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, como d_U frente 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.