Машинный перевод, не проверенный носителем языка. Эталоном служит английская версия.

Целостность и помехиПравить на GitHubИсточник: docs/ARAIM_REFERENCE.md

Справочник ARAIM — расширенные уровни защиты RAIM в Kshana

В этой заметке описана открытая реализация расширенного автономного контроля целостности приёмником (ARAIM) в Kshana: алгоритм, все допущения, сообщение поддержки целостности, которое он использует, и статус валидации. Реализация находится в src/raim.rs; этот документ — прозаический спутник кода, который аудитор (или эксперт по закупкам) может читать рядом с кодом.

ARAIM — двухгруппировочный многочастотный преемник классического RAIM, который рабочая группа C (WG-C) GPS (Global Positioning System)–Galileo определила для поддержки горизонтального и вертикального наведения вплоть до LPV-200 (LPV: характеристики локализатора с вертикальным наведением). Он отвечает на один вопрос для каждой эпохи:

Насколько большой должна быть граница ошибки положения (уровень защиты), чтобы остаточная вероятность опасно вводящей в заблуждение информации — ошибки, превышающей границу, в то время как сама граница ещё остаётся внутри предела тревоги, — оставалась ниже бюджета риска для целостности P_HMI?

1. Сообщение поддержки целостности (ISM)#

ISM — это набор параметров для каждой орбитальной группировки, который применяет пользователь. Он явно моделируется в IntegritySupportMessage:

Поле Символ Значение
sigma_ure_m σ_URE / SISE (ошибка в сигнале в пространстве) среднеквадратическое (RMS) значение ошибки дальности, используемое для точности и непрерывности
sigma_ura_m σ_URA / SISA (точность сигнала в пространстве) граница ошибки дальности, используемая для целостности (≥ σ_URE)
b_nom_m b_nom максимальное номинальное смещение дальности, односторонне включённое в границу целостности (b_k = Σ_i |s_i|·b_nom); см. §3
p_sat P_sat априорная вероятность необнаруженного отказа одного спутника
p_const P_const априорная вероятность отказа всей орбитальной группировки

IntegritySupportMessage::gps_galileo_reference() возвращает опубликованные эталонные значения WG-C: σ_URA = 0,75 м, σ_URE = 0,67 м, b_nom = 0,75 м, P_sat = 1×10⁻⁵, P_const = 1×10⁻⁴ на интервале экспозиции. Эти значения используются для оценки доступности ARAIM в справочной литературе; рабочий ISM передаётся в эфир или формируется на земле и настраивается для каждой орбитальной группировки. Различие между σ_URA (целостность) и σ_URE (точность) сделано намеренно и является определяющей чертой концепции ISM.

.fault_priors() и .dual_fault_priors() передают эти значения напрямую двум движкам.

2. Гипотезы об отказах#

ARAIM — это метод разделения решений при множественных гипотезах (MHSS). Для каждой гипотезы об отказе H_k он формирует решение по всем видимым спутникам и частное решение, исключающее отказавший набор, и ограничивает ошибку положения при этой гипотезе:

  • Fault-free H_0 (априорная вероятность ≈ 1): полное решение по методу наименьших квадратов по всем видимым спутникам.
  • Отказы одного спутника H_i (априорная вероятность P_sat для каждой): каждое частное решение с исключением одного спутника. Это классический базовый уровень ARAIM при одиночном отказе, araim_raim.
  • Отказы всей орбитальной группировки H_c (априорная вероятность P_const для каждой): частное решение, которое сразу удаляет все спутники одной орбитальной группировки; это расширение технической записки (TN) ARAIM Европейского союза (ЕС) и DO-316, реализованное в araim_dual_raim. При P_const = 0 оно побитово сводится к araim_raim.

3. Уровни защиты#

Для каждой оси (вертикальной, горизонтальной) и каждой гипотезы движок строит режим (p_fault, threshold, σ), где порог — это предел обнаружения по разделению решений при множителе ложной тревоги K_fa = Φ⁻¹(1 − P_fa / 2N) (разбиение Бонферрони бюджета непрерывности по N гипотезам). Уровень защиты — это наименьшая граница PL, суммарный риск для целостности которой

Σ_k p_fault,k · Q( (PL − b_k − T_k) / σ_k )  ≤  P_HMI

Примечание по реализации. b_k = Σ_i |s_{axis,i}|·b_nom — это односторонняя проекция номинального смещения на ось, то есть сумма модулей коэффициентов усиления отдельных спутников в наихудшем случае (axis_bias_sum/horiz_bias_sum), взятая из b_nom_m в ISM. Эталонный ISM WG-C использует b_nom = 0.75 m; при b_nom = 0 граница сводится к форме MHSS с нулевым номинальным смещением. Запускаемый сценарий integrity предоставляет sigma_ura_m (граница целостности, используемая для уровня защиты, ограниченная снизу значением sigma_uere_m и по умолчанию равная ему) и b_nom_m (по умолчанию 0), поэтому уровень защиты всегда рассчитывается по границе целостности σ_URA, а не по меньшему σ_URE, относящемуся к точности. Это по-прежнему модельная реализация ARAIM, не прошедшая сертификацию; см. INTEGRITY.md.

укладывается в выделенный бюджет ([araim_protection_level] / araim_integrity_risk). VPL (вертикальный уровень защиты) и HPL (горизонтальный уровень защиты) — это ответы по вертикали и по горизонтали. Результат также сообщает фактически достигнутый риск для целостности (≤ выделенного значения) и указывает, разделилось ли какое-либо частное решение сверх своего порога.

Это явный контракт ARAIM — «насколько большой должна быть граница?» — в отличие от неявного, зависящего от геометрии риска классического RAIM с фиксированным множителем.

4. Диаграмма Стэнфорда#

StanfordDiagram накапливает (error, PL) по эпохам относительно фиксированного предела тревоги (AL), а classify_stanford относит каждую эпоху к одному из классов: доступно, система недоступна (PL > AL, консервативно), вводящая в заблуждение информация (PL < ошибка ≤ AL) или опасно вводящая в заблуждение информация (ошибка > AL и > PL). stanford_svg строит классическую диаграмму рассеяния — границу целостности PL = error, направляющие предела тревоги и по одному цветовому маркеру на эпоху — в виде самодостаточного SVG (Scalable Vector Graphics).

5. Преимущество двух орбитальных группировок#

Два эффекта показаны в raim::tests::dual_constellation_improves_geometry_and_tolerates_a_constellation_fault:

  1. Геометрия и избыточность — объединение спутников второй орбитальной группировки уменьшает HPL при одиночном отказе: больше измерений и больший набор частных решений по одному SV (SV: космический аппарат, то есть спутник) дают строго меньшую границу.
  2. Устойчивость к отказу группировки — при активном P_const пользователь с двумя группировками остаётся доступным, когда может отказать целая группировка (спутники другой группировки сохраняются), тогда как пользователя с одной группировкой, как можно доказать, невозможно защитить от отказа его собственной группировки (araim_dual_raim возвращает None).

Тонкость, о которой стоит сказать честно: поскольку гипотеза об отказе группировки требует пережить потерю целой группировки, мгновенный уровень защиты для двух группировок ограничен снизу остаточной геометрией одной группировки — он не обязательно меньше PL только по GPS в каждый момент времени. Главный результат технической записки ARAIM ЕС о том, что GPS+Galileo дают на 15–25 % меньший HPL, — это результат по доступности, накопленный по реалистичным орбитальным группировкам и местам расположения пользователей, а не гарантия для каждого мгновенного состояния.

6. Статус валидации#

  • В репозитории, автоматически: алгебра MHSS (P_const = 0 ⇒ побитово одиночный отказ; отказ группировки расширяет PL; бюджет никогда не превышается), перечисленные выше преимущества геометрии и отказа группировки, а также проверка на реальной геометрии по прецизионным орбитам IGS (International GNSS Service; GNSS = глобальная навигационная спутниковая система) (SP3, Standard Product 3) (tests/igs_real_data.rs), а не только на синтетических орбитальных группировках.
  • Внешний оракул — опубликованный рабочий пример WG-C: уровни защиты сверены с собственным численным примером Технической подгруппы ARAIM в src/araim_reference.rs, tests/araim_reference_vectors.rs и зафиксированном файле tests/fixtures/araim_reference/wgc_araim_reference_vectors.txt (каждый вектор содержит URL (веб-адрес) получения, дату получения, SHA-256 (SHA: Secure Hash Algorithm) исходного файла и страницу). Допуск приёмки — собственный TOL_PL = 5 × 10⁻² m эталона. По документу Reference Airborne Algorithm Description Document v3.1 (2019), приложение D: VPL 18,2926 м против опубликованных 18,3 м (Δ 0,0074 м), HPL 13,4063 м против 13,45 м (Δ 0,0437 м), EMT (эффективный порог монитора) 7,2997 м против 7,2998 м, σ_v,acc 1,3694 м против 1,3694 м, а все шесть опубликованных промежуточных величин для отказа группировки (σ₃⁽ᵏ⁾, σ_ss,3⁽ᵏ⁾, b₃⁽ᵏ⁾) совпадают с точностью до половины единицы в последнем напечатанном десятичном разряде. В отчёте Milestone 3 Report за 2016 год приведён тот же пример, но в нём есть два внутренних дефекта — опечатка в знаке в строке 3 матрицы G и K_fa,3, вычисленный для 57 режимов отказа, тогда как в документе указано N_fault,max = 1 (12 режимов), — поэтому его промежуточные геометрические величины воспроизводятся точно, а уровни защиты записаны как измеренные расхождения (VPL Δ 0,0171 м, HPL Δ 0,0842 м, EMT Δ 0,4806 м) и исключены из показателя приёмки. Эта проверка доступна как вид сценария araim-reference-check.
  • Честный остаток (внешний / ожидает рецензии): показатель доступности 15–25 % относительно снимка реальных TLE Celestrak (двухстрочный набор элементов) с фиксированной версией и размещение тестовых фикстур ARAIM в виде цитируемой записи Zenodo. Приведённая выше проверка по эталону охватывает только N_fault,max = 1 (режимы отказа одного спутника и одной группировки); одновременные подмножества отказов из нескольких событий, исключение отказов, проверка согласованности χ² и шаг перераспределения с учётом двойного счёта из эталонного алгоритма не реализованы, а случай, для которого потребовались бы такие априорные вероятности, отклоняется, а не усекается.
  • Охват в файлах сценариев: вид сценария integrity запускает araim_dual_raim в каждую эпоху, когда его файл TOML (Tom's Obvious Minimal Language) задаёт araim_dual = true (необязательно p_hmi); поставляемый scenarios/araim-gps-galileo.toml делает это на объединённой геометрии GPS + Galileo, а tests/araim_dual_real_data.rs запускает тот же движок на реальных TLE Celestrak для GPS и Galileo, пересчитанных на одну общую эпоху. Без этого флага средство запуска использует классический RAIM с разделением решений.

Литература#

  • EU–U.S. Cooperation on Satellite Navigation, Working Group C, ARAIM Technical Subgroup, Milestone 3 Report, Final Version, 25 February 2016 — Annex A (reference user algorithm) and §A.IX (numerical example). 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 June 2019 — Appendix D (numerical example for LPV-200). https://web.stanford.edu/group/scpnt/gpslab/website_files/maast/ARAIM_TSG_Reference_ADD_v3.1.pdf
  • EU–US (United States) Cooperation on Satellite Navigation, ARAIM Technical Note.
  • RTCA (formerly the Radio Technical Commission for Aeronautics) DO-316 / DO-229 MOPS (minimum operational performance standards); DO-316 ARAIM MASPS (minimum aviation system performance standards) material.
  • Blanch et al., 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 (Stanford-diagram methodology).