Tłumaczenie maszynowe, niezweryfikowane przez osobę, dla której polski jest językiem ojczystym. Wzorcem jest wersja angielska.

Integralność i zakłóceniaEdytuj na GitHubieŹródło: docs/ARAIM_REFERENCE.md

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 priori P_sat każ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 priori P_const każda): podrozwiązanie, które usuwa wszystkie satelity jednej konstelacji naraz, rozszerzenie z noty technicznej (TN) ARAIM UE (Unii Europejskiej) / DO-316 zaimplementowane w araim_dual_raim. Przy P_const = 0 sprowadza się co do bitu do araim_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_nom jest 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ą z b_nom_m z ISM. Referencyjny ISM WG-C używa b_nom = 0.75 m; przy b_nom = 0 granica sprowadza się do postaci MHSS bez nominalnego obciążenia. Uruchamialny scenariusz integrity udostępnia sigma_ura_m (granicę integralności użytą do poziomu ochrony, obciętą do ≥ sigma_uere_m i domyślnie równą tej wartości) oraz b_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:

  1. 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ę.
  2. Tolerancja usterki konstelacji — przy aktywnym P_const uż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_raim zwraca None).

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.rs i zatwierdzonym fixture'ze tests/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łasne TOL_PL = 5 × 10⁻² m wzorca. 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 3 G oraz K_fa,3 obliczone dla 57 trybów usterek, podczas gdy dokument podaje N_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 scenariusza araim-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 integrity uruchamia araim_dual_raim w każdej epoce, gdy jego plik TOML (Tom's Obvious Minimal Language) ustawia araim_dual = true (opcjonalnie p_hmi); dołączony scenarios/araim-gps-galileo.toml robi to na połączonej geometrii GPS + Galileo, a tests/araim_dual_real_data.rs uruchamia 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).