Opis ARAIM — poziomy ochrony zaawansowanego RAIM w Kshana
Ta notatka dokumentuje otwartą implementację Advanced Receiver Autonomous Integrity Monitoring (ARAIM) w Kshana: algorytm, każde założenie, komunikat wsparcia integralności, z którego korzysta, oraz stan walidacji. Implementacja znajduje się w src/raim.rs; ten dokument jest prozatorskim uzupełnieniem, które audytor (lub recenzent zakupów) może czytać obok kodu.
ARAIM to dwukonstelacyjny, wieloczęstotliwościowy następca klasycznego RAIM, zdefiniowany przez GPS (Global Positioning System)–Galileo Working Group C (WG-C) dla wsparcia prowadzenia poziomego i pionowego aż do LPV-200 (LPV: localizer performance with vertical guidance). Odpowiada w każdej epoce na jedno pytanie:
Jak duża musi być granica błędu pozycji (poziom ochrony), aby resztkowe prawdopodobieństwo niebezpiecznie mylącej informacji — błędu większego niż granica, gdy granica wciąż mieści się w limicie alarmowym — pozostawało poniżej budżetu ryzyka integralności
P_HMI?
1. Komunikat wsparcia integralności (ISM)#
ISM to zestaw parametrów dla każdej konstelacji, który stosuje użytkownik. Jest jawnie modelowany przez IntegritySupportMessage:
| Pole | Symbol | Znaczenie |
|---|---|---|
sigma_ure_m |
σ_URE / SISE (błąd sygnału w przestrzeni) | RMS (root mean square) błędu odległości używane dla dokładności i ciągłości |
sigma_ura_m |
σ_URA / SISA (dokładność sygnału w przestrzeni) | granica błędu odległości używana dla integralności (≥ σ_URE) |
b_nom_m |
b_nom | maksymalne nominalne obciążenie odległości wliczone jednostronnie w granicę integralności (b_k = Σ_i |s_i|·b_nom); zob. §3 |
p_sat |
P_sat | prawdopodobieństwo a priori niewykrytej usterki pojedynczego satelity |
p_const |
P_const | prawdopodobieństwo a priori usterki obejmującej całą konstelację |
IntegritySupportMessage::gps_galileo_reference() zwraca opublikowane wartości referencyjne WG-C: σ_URA = 0,75 m, σ_URE = 0,67 m, b_nom = 0,75 m, P_sat = 1×10⁻⁵, P_const = 1×10⁻⁴ w przedziale ekspozycji. Są to wartości używane do wymiarowania dostępności ARAIM w literaturze referencyjnej; operacyjny ISM jest nadawany lub składany po stronie naziemnej i można go konfigurować dla każdej konstelacji. Rozróżnienie między σ_URA (integralność) a σ_URE (dokładność) jest zamierzone i stanowi cechę definiującą pojęcie ISM.
.fault_priors() i .dual_fault_priors() przekazują je wprost do obu silników.
2. Hipotezy usterek#
ARAIM jest metodą separacji rozwiązań dla wielu hipotez (MHSS). Dla każdej hipotezy usterki H_k tworzy rozwiązanie z wszystkich widocznych satelitów i podrozwiązanie wyłączające zbiór uszkodzony oraz ogranicza błąd pozycji przy tej hipotezie:
- Fault-free
H_0(prawdopodobieństwo a priori≈ 1): pełne rozwiązanie metodą najmniejszych kwadratów ze wszystkich widocznych satelitów. - Usterki pojedynczych satelitów
H_i(prawdopodobieństwo a prioriP_satkażda): każde podrozwiązanie z wyłączeniem jednego satelity. To klasyczny punkt odniesienia ARAIM dla pojedynczej usterki,araim_raim. - Usterki obejmujące całą konstelację
H_c(prawdopodobieństwo a prioriP_constkażda): podrozwiązanie, które usuwa wszystkie satelity jednej konstelacji naraz, rozszerzenie z noty technicznej (TN) ARAIM UE (Unii Europejskiej) / DO-316 zaimplementowane waraim_dual_raim. PrzyP_const = 0sprowadza się co do bitu doaraim_raim.
3. Poziomy ochrony#
Dla każdej osi (pionowej, poziomej) i każdej hipotezy silnik buduje tryb (p_fault, threshold, σ), w którym próg jest granicą detekcji separacji rozwiązań przy mnożniku fałszywego alarmu K_fa = Φ⁻¹(1 − P_fa / 2N) (podział Bonferroniego budżetu ciągłości na N hipotez). Poziom ochrony jest najmniejszą granicą PL, której zsumowane ryzyko integralności
Σ_k p_fault,k · Q( (PL − b_k − T_k) / σ_k ) ≤ P_HMI
Uwaga implementacyjna.
b_k = Σ_i |s_{axis,i}|·b_nomjest jednostronną projekcją nominalnego obciążenia na oś — najgorszą sumą wartości bezwzględnych wzmocnień poszczególnych satelitów (axis_bias_sum/horiz_bias_sum) — pochodzącą zb_nom_mz ISM. Referencyjny ISM WG-C używab_nom = 0.75 m; przyb_nom = 0granica sprowadza się do postaci MHSS bez nominalnego obciążenia. Uruchamialny scenariuszintegrityudostępniasigma_ura_m(granicę integralności użytą do poziomu ochrony, obciętą do ≥sigma_uere_mi domyślnie równą tej wartości) orazb_nom_m(domyślnie 0), więc poziom ochrony jest zawsze wymiarowany granicą integralności σ_URA, nigdy mniejszą dokładnością σ_URE. Pozostaje to modelowana, niecertyfikowana implementacja ARAIM — zob.INTEGRITY.md.
mieści się w przydzielonym budżecie ([araim_protection_level] / araim_integrity_risk). VPL (pionowy poziom ochrony) i HPL (poziomy poziom ochrony) są odpowiedziami pionową i poziomą. Wynik podaje także faktycznie osiągnięte ryzyko integralności (≤ przydział) oraz informację, czy jakieś podrozwiązanie oddzieliło się poza swój próg.
To jest jawny kontrakt ARAIM — „jak duża musi być granica?” — a nie domyślne, zależne od geometrii ryzyko klasycznego RAIM ze stałym mnożnikiem.
4. Diagram Stanforda#
StanfordDiagram gromadzi (error, PL) w każdej epoce względem stałego limitu alarmowego (AL), a classify_stanford przypisuje każdą do jednej z kategorii: dostępna, system niedostępny (PL > AL, ostrożnie), mylące informacje (PL < błąd ≤ AL) lub niebezpiecznie mylące informacje (błąd > AL i > PL). stanford_svg renderuje klasyczny wykres rozproszenia — granicę integralności PL = error, prowadnice limitu alarmowego i jeden kolorowo oznaczony znacznik na epokę — jako samodzielny SVG (Scalable Vector Graphics).
5. Korzyść z dwóch konstelacji#
Dwa efekty są zademonstrowane w raim::tests::dual_constellation_improves_geometry_and_tolerates_a_constellation_fault:
- Geometria / nadmiarowość — połączenie satelitów drugiej konstelacji zacieśnia HPL dla pojedynczej usterki: więcej pomiarów i większy zbiór podrozwiązań z pojedynczym SV (SV: space vehicle, czyli satelitą) dają ściśle mniejszą granicę.
- Tolerancja usterki konstelacji — przy aktywnym
P_constużytkownik dwukonstelacyjny pozostaje dostępny, gdy może zawieść cała konstelacja (satelity drugiej konstelacji przetrwają), podczas gdy użytkownika jednokonstelacyjnego dowodnie nie da się ochronić przed usterką jego własnej konstelacji (araim_dual_raimzwracaNone).
Subtelność, o której warto powiedzieć uczciwie: ponieważ hipoteza usterki konstelacji wymaga przetrwania utraty całej konstelacji, migawkowy poziom ochrony dla dwóch konstelacji jest ograniczony od dołu przez geometrię resztkowej pojedynczej konstelacji — nie jest automatycznie mniejszy niż PL tylko z GPS w każdej chwili. Główny wynik z noty technicznej ARAIM UE, że GPS+Galileo daje o 15–25 % mniejszy HPL, jest wynikiem dostępności zgromadzonym dla realistycznych konstelacji i położeń użytkownika, a nie gwarancją dla pojedynczej migawki.
6. Stan walidacji#
- W repozytorium, automatycznie: algebra MHSS (
P_const = 0⇒ pojedyncza usterka co do bitu; usterka konstelacji poszerza PL; budżet nigdy nie jest przekroczony), powyższe korzyści z geometrii i usterki konstelacji oraz ćwiczenie na rzeczywistej geometrii precyzyjnych orbit IGS (International GNSS Service; GNSS = globalny system nawigacji satelitarnej) (SP3, Standard Product 3) (tests/igs_real_data.rs), a nie tylko na konstelacjach syntetycznych. - Zewnętrzna wyrocznia — opublikowany przykład obliczeniowy WG-C: poziomy ochrony są sprawdzane względem własnego przykładu liczbowego Podgrupy Technicznej ARAIM, w
src/araim_reference.rs,tests/araim_reference_vectors.rsi zatwierdzonym fixture'zetests/fixtures/araim_reference/wgc_araim_reference_vectors.txt(każdy wektor niesie adres URL (adres sieciowy) pobrania, datę pobrania, SHA-256 (SHA: Secure Hash Algorithm) pliku źródłowego i stronę). Tolerancją akceptacji jest własneTOL_PL = 5 × 10⁻² mwzorca. Względem Reference Airborne Algorithm Description Document v3.1 (2019), Appendix D: VPL 18,2926 m wobec 18,3 m opublikowanych (Δ 0,0074 m), HPL 13,4063 m wobec 13,45 m (Δ 0,0437 m), EMT (effective monitor threshold) 7,2997 m wobec 7,2998 m, σ_v,acc 1,3694 m wobec 1,3694 m oraz wszystkie sześć opublikowanych wielkości pośrednich usterki konstelacji (σ₃⁽ᵏ⁾, σ_ss,3⁽ᵏ⁾, b₃⁽ᵏ⁾) z dokładnością do połowy jednostki na ostatnim wydrukowanym miejscu dziesiętnym. Milestone 3 Report z 2016 podaje ten sam przykład, ale zawiera dwie wewnętrzne wady — literówkę w znaku w wierszu 3GorazK_fa,3obliczone dla 57 trybów usterek, podczas gdy dokument podajeN_fault,max = 1(12 trybów) — więc jego wielkości pośrednie geometrii odtwarzają się dokładnie, a jego poziomy ochrony są zapisane jako zmierzone rozbieżności (VPL Δ 0,0171 m, HPL Δ 0,0842 m, EMT Δ 0,4806 m) i wyłączone z wartości akceptacji. Kontrola jest osiągalna jako rodzaj scenariuszaaraim-reference-check. - Uczciwe residuum (zewnętrzne / oczekujące na przegląd): wartość dostępności 15–25 % względem zamrożonej w wersji rzeczywistej migawki TLE (two-line element set) z Celestrak oraz złożenie fixture'ów testowych ARAIM jako cytowalnego rekordu w Zenodo. Powyższa kontrola referencyjna obejmuje tylko
N_fault,max = 1(tryby usterek pojedynczego satelity i pojedynczej konstelacji); jednoczesne podzbiory usterek z wielu zdarzeń, wykluczanie usterek, kontrola spójności χ² i krok ponownego przydziału uwzględniający podwójne liczenie z algorytmu referencyjnego nie są zaimplementowane, a przypadek, którego prawdopodobieństwa a priori by ich wymagały, jest odrzucany, a nie obcinany. - Zasięg w pliku scenariusza: rodzaj scenariusza
integrityuruchamiaaraim_dual_raimw każdej epoce, gdy jego plik TOML (Tom's Obvious Minimal Language) ustawiaaraim_dual = true(opcjonalniep_hmi); dołączonyscenarios/araim-gps-galileo.tomlrobi to na połączonej geometrii GPS + Galileo, atests/araim_dual_real_data.rsuruchamia ten sam silnik na rzeczywistych TLE GPS i Galileo z Celestrak, propagowanych do jednej wspólnej epoki. Bez tej flagi program uruchamiający używa klasycznego RAIM z separacją rozwiązań.
Bibliografia#
- EU–U.S. Cooperation on Satellite Navigation, Working Group C, ARAIM Technical Subgroup, Milestone 3 Report, Final Version, 25 lutego 2016 — Annex A (referencyjny algorytm użytkownika) i §A.IX (przykład liczbowy). https://www.gps.gov/sites/default/files/2025-09/ARAIM-milestone-3-report.pdf
- EU–U.S. Cooperation on Satellite Navigation, Working Group C, ARAIM Technical Subgroup, Reference Airborne Algorithm Description Document, Version 3,1, 20 czerwca 2019 — Appendix D (przykład liczbowy dla LPV-200). https://web.stanford.edu/group/scpnt/gpslab/website_files/maast/ARAIM_TSG_Reference_ADD_v3.1.pdf
- EU–US (Stany Zjednoczone) Cooperation on Satellite Navigation, ARAIM Technical Note.
- RTCA (dawniej Radio Technical Commission for Aeronautics) DO-316 / DO-229 MOPS (minimalne wymagania eksploatacyjne); materiały DO-316 ARAIM MASPS (minimalne wymagania dla systemu lotniczego).
- Blanch i in., Baseline Advanced RAIM User Algorithm and Possible Improvements, IEEE (Institute of Electrical and Electronics Engineers) TAES (Transactions on Aerospace and Electronic Systems) / ION (Institute of Navigation) ITM (International Technical Meeting).
- Walter, Enge, Blanch, Pervan, Worldwide Vertical Guidance of Aircraft Based on Modernized GPS and New Integrity Augmentations (metodologia diagramu Stanforda).