Справочник 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:
- Геометрия и избыточность — объединение спутников второй орбитальной группировки уменьшает HPL при одиночном отказе: больше измерений и больший набор частных решений по одному SV (SV: космический аппарат, то есть спутник) дают строго меньшую границу.
- Устойчивость к отказу группировки — при активном
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).