Машинний переклад, не перевірений носієм мови. Еталоном є англійська версія.

Валідація та доказиРедагувати на GitHubДжерело: docs/VALIDATION.md

Стан валідації

Про допуски. «Перевірено» нижче означає, що калібрувальний тест стверджує: змодельована статистика збігається з еталонним співвідношенням у межах обов'язкового порога, наразі 20–25 % відносної похибки (усереднено за seed) для співвідношень Аллана/бюджету шуму. Медіана спостережуваного збігу часто набагато щільніша (кілька відсотків), але гарантованою межею є поріг, а не медіана. Де з'являється число на кшталт «~2 %», це типове спостереження, а не обов'язковий допуск. Див. Твердження проти реальності.

Правило підвищення#

Рядок машинно перевіреної матриці верифікації (src/verification.rs) має рівень VALIDATED лише тоді, коли оракул, незалежний від Kshana, збігається з реалізацією в межах допуску, сформульованого до запуску порівняння, у тесті, що виконується в перевірочному шлюзі. Цей розділ — єдине місце, де правило записано; матриця, проза окремих рядків і примітки до випусків відсилають до нього.

Прийнятні види оракулів#

Вид Що зараховується Приклади, що вже є в матриці
Виміряно Реальні виміряні дані величини, яку стверджує рядок: спостереження фізичного світу, а не вихід моделі. Утримані дві третини реального запису цезієвого годинника; архівні нормальні точки лазерної локації Місяця; ряд UTC(k) із Circular T BIPM (Міжнародне бюро мір і ваг); тайл рельєфу SRTM (Shuttle Radar Topography Mission).
Бібліотека Незалежна стороння бібліотека чи інструмент, що обчислює однозначно визначену величину на тих самих вхідних даних, де бібліотека сама реалізує предметне обчислення. Збіг між бібліотеками є справжньою перевіркою лише тому, що в величини є одна правильна відповідь. allantools, Orekit, ANISE, RTKLIB, gnss_lib_py, lamberthub, pymcdm, scikit-learn, статистичні розподіли SciPy.
Довідник Опубліковані еталонні вектори, таблиці чи верифікаційні приклади: числа, які стандарт, агентство чи довідковий текст друкує, щоб реалізації можна було з ними звірити. Вектори SOFA/ERFA (Standards of Fundamental Astronomy), верифікаційні вектори SGP4 від AIAA (American Institute of Aeronautics and Astronautics), приклади перевірки ITU-R (Міжнародний союз електрозв'язку, сектор радіозв'язку), розібраний приклад ARAIM від Working Group C, JPL (Лабораторія реактивного руху) Horizons.

Ще два стандарти вирішують прикордонні випадки. Обидва прийнято для випуску 0,30.

  • P1, опубліковане розібране значення. Опубліковане розібране значення, обчислене за тією самою замкненою формою, яку реалізує рядок, зараховується як опублікований еталонний вектор, якщо публікація незалежна від Kshana, а порівняння фіксує заявлений допуск. Значення має бути надруковане числом у публікації (значення, зчитане з графіка, зараховується, лише якщо похибка зчитування лежить у межах заявленого допуску), а тест має змушувати Kshana обчислювати його з вхідних даних публікації; порівняння сталої з документом, з якого її скопійовано, — це перевірка транскрипції, а не P1.
  • P2, незалежна чисельна бібліотека. Незалежна чисельна бібліотека, як-от numpy чи LAPACK (Linear Algebra PACKage), що перераховує однозначно визначену величину лінійної алгебри на заявлених вхідних даних, зараховується як незалежна бібліотека. Бібліотека має виконати декомпозицію, обернення, розв'язання або крок найменших квадратів власним алгоритмом, на вхідних даних, закомічених разом із фікстурою; тоді перевіреним твердженням є лінійна алгебра на цих даних, а не фізичні величини репрезентативного сценарію. Скрипт, що переобчислює скалярну замкнену форму арифметикою numpy, — це друга реалізація нашого власного коду, а не P2.

Умови, що застосовуються до кожного виду: оракул не написано, не запущено й не опубліковано цим проєктом (отже, власна серія статей цього репозиторію не є від нього незалежною); допуск міститься в тесті та був зафіксований до першого порівняння; тест, залежний від даних, що пропускається, коли публічних даних немає, повідомляє про це під час пропуску.

Що не зараховується#

  • Наша власна друга реалізація: другий шлях коду в цьому крейті (ReferenceImpl) або скрипт у цьому репозиторії, що переобчислює ту саму замкнену форму.
  • Збіг із нашим власним попереднім виходом: золоті файли, регресійні фіксації, знімки чи таблиця з власних статей цього проєкту.
  • Транскрипція сталих із цитованого джерела: звірення коефіцієнта, пресета, показника з даташита чи аркуша параметрів із документом, з якого його скопійовано.
  • Проєктний вибір: розподіл, вага, поріг, межа тривоги чи репрезентативний сценарій. Для вибору немає зовнішньої істини.
  • Внутрішня тотожність: числовий інтеграл проти його ж аналітичної форми, прямий і зворотний цикл, обернення, перевірка властивості чи монотонності.
  • Інтеграційний прогін проти реального хоста (IntegrationRun): завантаження плагіна в реальний сервер Signal K чи OpenCPN або подання виходу реального шлюзу споживачеві TCP і перевірка того, що хост приймає вхід і показує очікуваний стан. Це показує, що з'єднання працює. Хост не є оракулом для жодного значення, яке несе інтеграція, тож зовнішнього еталона для порівняння немає, і такий рядок (рядок морських інтеграцій) має рівень MODELLED, а не VALIDATED. IntegrationRun — окремий вид оракула, дозволений лише для рядків MODELLED: integration_run_only_on_modelled_rows у src/verification.rs провалюється, якщо рядок VALIDATED його містить, а validated_rows_require_an_external_oracle уже вимагає, щоб кожен рядок VALIDATED мав ExternalDataset.
  • Правдоподібність на реальних вхідних даних: реальні дані використано лише як вхід, із перевірками порядку величини, а не порівнянням із зовнішнім значенням.
  • Допуск, вибраний після того, як побачено порівняння.

Як правило забезпечується#

Кожен рядок VALIDATED оголошує в validated_oracle_basis() у src/verification.rs, на чому він ґрунтується (Measured, Library, Reference, P1 або P2), незалежне джерело (процитоване з тексту оракула самого рядка) і один тест, що виконує порівняння. Модульні тести поруч із таблицею провалюються, коли рядок VALIDATED не оголошено або оголошено двічі, коли оголошення називає рядок, що не є VALIDATED, коли оголошене джерело не збігається з тим, яке називає текст оракула рядка, або є самою Kshana, коли оголошений тест не є одним із тих, що цитує рядок, або коли рядок P2 не називає незалежної чисельної бібліотеки. Далі tests/verification_rows_declare_an_oracle_basis.rs вимагає, щоб оголошений тест існував на диску як справжній #[test], який не проігноровано. Чого машина перевірити не може — чи порівнює названий тест із оголошеним джерелом; це лишається за людським читанням. Підрахунки за видами тут не наведено: джерелом є таблиця.

Наявні рядки VALIDATED, переглянуті за правилом#

Правило застосовано до наявних рядків так само, як і до майбутніх підвищень.

  • Рядки P1, названі дослідженням перевірки 0,30, кожен підтверджено: Бюджет лінії в один бік (таблиця контролю проєктних параметрів JPL Pub 82-76 для Galileo X-діапазону, відновлена з окремих складників із точністю 4.6e-3 дБ втрат у вільному просторі); Замкнені форми для будь-якого далекомірного сигналу з обмеженою смугою (90,3 відсотка потужності головного пелюстка та опублікований джитер когерентного дискримінатора «раніше-пізніше»); Максимальний Доплер навігаційного супутника на низькій навколоземній орбіті (опубліковані значення Xona Pulsar X1 та Iridium); Максимальний Доплер, який бачить нерухомий користувач від орбіти LEO чи MEO (таблиця 1 статті про Pulsar, 20 значень); Доплер, з яким має впоратися наземний приймач від навігаційного супутника LEO (ті самі опубліковані значення з орбіти, що літала). Кожна публікація незалежна від Kshana, друкує свої числа, а тест вказує свій допуск.
  • Інші рядки, що спираються на P1, виявлені під час повторного розгляду, кожен підтверджено: Компроміс у проєктуванні далекомірного коду (опублікована перехресна кореляція Голда −23,9 дБ); Місячний координатний час (Ashby і Patla 2024, перехресна перевірка швидкості Місяця за DE440 є перевіркою Library); Замкнені форми спектральної густини потужності сигналів L-діапазону (значення Q за Kaplan і Hegarty); Іоносферна затримка першого порядку для кожного діапазону (відношення групових затримок за IS-GPS-200); Глобально усереднені ваги похибки дальності сигналу в просторі (таблиця Montenbruck, Steigenberger і Hauschild 2018).
  • Рядки P2, названі дослідженням, кожен підтверджено: Інформація Фішера та спостережуваність за Крамером–Рао (numpy eigh/inv); Ідентифіковність місячного датума; Зв'язаний калібр місячної системи відліку та шкали часу; Конвеєр спостережуваності відмов автономної вільної мережі (numpy/SciPy SVD, сингулярний розклад). Кожен перераховує однозначно визначену величину лінійної алгебри на закомічених вхідних даних іншим алгоритмом, ніж власний власний розв'язувач Якобі в Kshana.
  • Інші рядки, що спираються на P2, виявлені під час повторного розгляду, кожен підтверджено: Виведення пріоритетів MCDA (багатокритеріальний аналіз рішень) (власний вектор AHP, методу аналізу ієрархій, за SciPy/LAPACK; таблиця випадкового індексу, яку він також відтворює, є транскрипцією і не зараховується); Дисперсія вільного ходу holdover годинника (SciPy expm розширеної матриці Ван Лоана); Реалізація місячної системи відліку (розв'язок Умеями через numpy SVD); Формування діаграми CRPA (антена з керованою діаграмою прийому) (комплексний розв'язок LAPACK); Ядро рівня захисту місячного ARAIM (обернена матриця LU з RTKLIB зі квантилями SciPy); Узгодженість місячних систем відліку та динаміки між постачальниками (підгонка найменших квадратів через numpy SVD трьох опублікованих ефемерид).
  • Позначено під час першого проходу, повторно обґрунтовано в раунді 2 запуску 0,30. Три рядки було позначено як непідтримувані писаним правилом. Кожен тепер спирається на порівняння, попередньо зареєстроване до того, як було отримано його фікстуру, тож жоден рядок не позначено; модульний тест поруч із validated_oracle_basis() закріплює (тепер порожній) список.
    • Цілісність (RAIM/ARAIM/SBAS). Цитовані тести раніше перевіряли лише правдоподібність на реальній геометрії IGS (Міжнародної служби GNSS). Тепер рядок спирається на три бібліотечні оракули: розділення розв'язків множинних гіпотез ARAIM з Airborne Design Document v4.2 проти Stanford MAAST для ARAIM 2 (270 реальних випадків, найгірша різниця VPL 2.2e-3 м проти 0,05 м); виявлення та виключення за знімковим RAIM проти RTKLIB raim_fde (2016 з 2016 рішень ідентичні) із похилим рівнем захисту; і рівні захисту SBAS DO-229E L1 проти Stanford MAAST на реальних трансляціях WAAS (2868 пар у межах 1.6e-5 м). Рядок прямо каже, що функції з однаковою сигмою raim::araim_raim і raim::araim_dual_raim не відповідають ADD, а двочастотне порівняння SBAS на L5 є знахідкою.
    • Положення планет у Сонячній системі за кеплеровими елементами JPL Standish. Апостеріорний поріг у вигляді подвоєної номінальної похибки замінено попередньо зареєстрованим порогом: RMS не більше за значення з таблиці 8.10.1 Explanatory Supplement для кожної планети й компоненти, проти JPL Horizons DE441, з урахуванням розділення Землі та повороту ICRF.
    • Світловий час між тілами Сонячної системи. Розв'язувач світлового часу тепер порівнюється зі світловим часом Horizons у межах 1e-6 с на положеннях DE441, за попередньо зареєстрованим порогом, що не успадковує порогу положення.
  • Рядки MODELLED, які ці дві політики роблять придатними до підвищення (лише через порядковий запуск 0,30 рядок за рядком, а ніколи цим текстом): за P1 — межа геолокації випромінювача TDOA/FDOA (різниця часу й частоти прибуття), зв'язок релятивістського темпу годинника з системою відліку, маски синхронізації ITU-T (сектор стандартизації електрозв'язку) (лише для значень масок, які Рекомендації друкують числами; транскрибовані точки злому, звірені самі з собою, не зараховуються) і межа позиціонування 5G у нетерестріальних мережах (лише якщо знайдено опубліковане розібране значення); за P2 — сліпота цілісності за спільного режиму, скалярний рівень захисту часу MHSS (розділення розв'язків множинних гіпотез) і вибілювання GLS (узагальнений метод найменших квадратів). Два еталонні рядки цілісності синхронізації (класифікатор діаграми цілісності Стенфорда та оцінювач покриття цілісності) — це класифікація за правилами, а не лінійна алгебра, тож P2 їх не охоплює; їм потрібен незалежний інструмент, а єдиний знайдений (gLAB) має некомерційну ліцензію.
  • Узгодженість із попередніми відмовами. Перевірка Vallado для рядка вікна запуску тепер відповідала б вимогам за P1, якби її тест обчислював надрукований розібраний приклад; план 0,30 натомість підвищує її через Orekit. Таблиця перетину місячного часу за класами годинників лишається MODELLED: таблиця, яку вона відтворює, походить із власної статті цього проєкту, яка не є незалежною.
Шумовий складник Статус Докази
Паритет оцінювачів Аллана (ADEV/MDEV/TDEV/OHDEV (ADEV: девіація Аллана; MDEV: модифікована девіація Аллана; OHDEV: перекривна девіація Адамара)) validated Дві перевірки за першоджерелом щодо NIST (Національний інститут стандартів і технологій) SP (Special Publication) 1065 (Riley, Handbook of Frequency Stability Analysis, 2008), обидві з відносним допуском 1e-4. (1) tests/allan_reference.rs: перекривні ADEV, модифікована ADEV, девіація часу та перекривні оцінювачі Адамара відтворюють девіації для канонічного 10-точкового набору даних NBS14 (SP 1065 таблиця 29/30, с. 107) за tau = 1, 2 — збіг насправді ~1e-6 (наприклад, перекривна ADEV (OADEV) за τ = 2: 85,952868 проти 85,95287). (2) tests/allan_nist_sp1065_1000point.rs: ті самі чотири оцінювачі відтворюють 1000-точковий набір даних SP 1065 §12,4 (таблиця 31, с. 108) за коефіцієнтів усереднення 1 / 10 / 100, де набір даних відтворюється в коді за ЛКГ SP 1065 (рівняння 73) — герметично, без фікстури. Ті самі дані та числа таблиці 31 — це регресійна ціль у aewallin/allantools (tests/nbs14), відтворена тут без стороннього коду. Це закріплює математику оцінювача щодо еталона, на відміну від рядків калібрування шуму нижче.
Паритет оцінювачів Аллана на реальному виміряному обладнанні validated tests/cs5071a_reference.rs: перекривні оцінювачі Аллана й Адамара відтворюють еталонні девіації Stable32 для реального цезієвого первинного еталона 5071A, виміряного проти водневого мазера (556 990 відліків фази за τ₀ = 1 с; 1 PPS (імпульс за секунду) на лічильник 53230A, лют. 2014; зібрано A. Wallin, поширюється з allantools). Перевірено по всій декадній драбині τ (16 коефіцієнтів усереднення, τ = 1 с … 4×10⁴ с): добре вибрані коефіцієнти — з відносним порогом 1e-3 (спостережуваний збіг насправді ≤ 3e-5, наприклад OADEV(1 с) 3.317111e-10 проти Stable32 3.3171e-10), розріджені коефіцієнти за довгого τ мають потрапляти всередину надрукованої смуги довіри 1‑σ у Stable32. Це доповнює синтетичний паритет NBS14 вище перевіркою на виміряному годиннику. Сирий файл фаз — це сторонні дані без ліцензії на поширення, тому його git-ігноровано; scripts/fetch_cs5071a.sh його відтворює, а тест друкує повідомлення про пропуск (CI (безперервна інтеграція) лишається зеленою), коли файла немає. Закомічено лише публічні еталонні числа Stable32 (tests/fixtures/cs5071a/); сторонній код не використовується.
Паритет оцінювачів Аллана на канонічному Stable32 PHASE.DAT validated tests/phasedat_reference.rs: перекривні оцінювачі Аллана, модифікований Аллана та девіації часу відтворюють еталонні девіації Stable32 для PHASE.DAT — 1001-точкового ряду, що поширюється зі Stable32 і який незалежні інструменти (наприклад, allantools) використовують як свою стандартну регресійну ціль — по повній драбині коефіцієнтів усереднення (139 коефіцієнтів) з відносним порогом 1e-3 (спостережуваний ≤ 5e-5). Другий незалежний реальний еталонний ряд поруч із перевіркою на виміряному цезії вище. PHASE.DAT постачається з комерційним інструментом Stable32, тому сирий ряд git-ігнорується; scripts/fetch_phasedat.sh його відтворює, а тест пропускається без помилки (CI лишається зеленою), коли файла немає. Закомічено лише публічні еталонні числа Stable32 (tests/fixtures/phasedat/); сторонній код не використовується.
Стабільність оптичного годинника на реальній виміряній кривій validated tests/optical_clock_adev_reference.rs: інверсія параметрів шуму годинника (quantum_trade::qparams_from_adev_curve) відтворює опубліковану σ_y(τ) оптичного годинника на ґратці ⁸⁸Sr за Norcia та ін., Science 366:93 (2019) (Zenodo 10.5281/zenodo.3382347, CC-BY-4.0 (Creative Commons Attribution 4,0), криву вбудовано в tests/fixtures/optical_clock_adev/): відновлений коефіцієнт білого частотного шуму √q_wf ≈ 4.33e-16 збігається зі стабільністю в статті ≈4.7e-16/√τ на малих часах (~10 % RMS (середньоквадратичне) по кривій), а підгонка виявляє ненульовий виміряний поріг (q_rw > 0). Це закріплює інверсію виміряної ADEV → параметрів шуму проти реального оптичного годинника; вигода holdover до порогу, збудована на ній, лишається MODELLED.
ROC (робоча характеристика приймача) AUC (площа під кривою) виявлення аномалій на реальній телеметрії ESA (Європейське космічне агентство) OPS-SAT validated (відтворює мітки) tests/opssat_ad_reference.rs: на наборі даних OPSSAT-AD (Ruszczak та ін. 2025, Zenodo 10.5281/zenodo.12588359, CC BY 4,0) — реальні службові сегменти OPS-SAT із еталонними мітками аномалій — ROC AUC за Манном–Вітні в Kshana (impairment_eval::auc) відтворює scikit-learn roc_auc_score з точністю < 1e-9 на утриманому тестовому розбитті (529 сегментів, 113 аномалій) для двох детермінованих оцінок: прозорого детектора за однією ознакою (кількість піків сегмента, AUC ≈ 0,851) та оцінки на 8 ознаках за діагональною відстанню Махаланобіса, підігнаної на нормальних навчальних сегментах (AUC ≈ 0,556); eval_stats::bootstrap_auc_ci обрамляє точкову оцінку нижньою межею, що перевищує випадковий рівень. Це підтверджує обчислення AUC на реальних даних ESA і розділення за мітками прозорого детектора — воно не відтворює найкращу опубліковану метрику статті OPSSAT-AD (кероване навчання FCNN (повнозв'язна нейронна мережа), F1 ≈ 0,95), якій потрібна їхня навчена модель. Дані CC-BY вбудовано (tests/fixtures/opssat/, герметично); оракул перегенеровано за допомогою generate_opssat_oracle.py.
Синтез функціоналів гравітаційного поля (гравіметрична / вільна від GNSS (GNSS: глобальна навігаційна супутникова система) навігаційна карта) validated tests/icgem_gravity_reference.rs: ядро функціоналів гравітації на сферичних гармоніках (gravity_sh::gravity_magnitude / gravity_disturbance_mgal) — «читач карти», з яким звіряється гравіметричний навігатор, — перевірено за стандартом нормальної гравітації GRS80 (Geodetic Reference System 1980) (Moritz 1980, прийнятим IAG (IAG: Міжнародна асоціація геодезії)). Побудова нормального поля GRS80 з його опублікованих парних зональних гармонік J₂…J₈ і синтез гравітації (притягання + відцентрова) на еліпсоїді відтворює замкнену форму нормальної гравітації Сомільяни та опубліковані екваторіальне/полярне значення γ_e = 9,7803267715 / γ_p = 9,8321863685 м/с² з відносною точністю 3.5e-12 на всіх широтах (поріг 1e-9). Те саме ядро завантажує флагманську реальну модель Землі ICGEM (Міжнародний центр глобальних моделей Землі) EGM2008 (Earth Gravitational Model 2008) (суспільне надбання NGA (Національне агентство геопросторової розвідки) через ICGEM; читач from_gfc також перевіряється на місячному полі GRAIL (Gravity Recovery and Interior Laboratory) у tests/agency_lro.rs) і створює фізично обмежену карту гравітаційних збурень (RMS ≈ 26 мГал, макс. ≈ 89 мГал за d/o 70). Підтверджує коректність коду синтезу; точність навігаційного визначення за гравітацією лишається MODELLED (немає публічної траєкторії гравіметра на платформі з істиною).
edf, специфічні для типу шуму (довірчі інтервали) validated src/allan.rs: довірча смуга χ² на кожній точці перекривної ADEV використовує специфічні для типу шуму ефективні ступені вільності (замкнені форми NIST SP 1065 таблиця 5 для білої та мерехтливої фазової модуляції, білої та мерехтливої частотної модуляції і частотної модуляції випадковим блуканням (WPM/FPM/WFM/FFM/RWFM) — простий набір Stable32), причому тип степеневого закону запису визначається за нахилом його MDEV у подвійному логарифмічному масштабі. Три незалежні перевірки: (a) п'ять формул відтворюють значення, обчислені вручну, за N=64,m=4 з точністю 1e-12; (b) ансамбль Монте-Карло білої FM (FM: частотна модуляція) (4 000 записів) вимірює фактичний edf хі-квадрат оцінювача = 2·mean²/Var(σ²) і збігається з формулою в межах 20 % (і суттєво перевершує консервативний підрахунок без перекриття); (c) tests/allan_nist_sp1065_1000point.rs відтворює надрукований SP 1065 таблиця 32 (с. 109) edf = 146,177 для 1000-точкового набору даних за m=10 (біла FM) з точністю 5e-3 і 95 % довірчі межі таблиці (8.223942e-2 / 1.035201e-1) з точністю до <0,2 % (невеликий залишок — це наближення Вілсона–Гільферті для χ² проти точного χ² NIST). Експортована крива ADEV несе визначений тип шуму, edf і 95 % смугу для кожного τ.
Біла FM (короткочасна) validated tests/calibration.rs: змодельована перекривна ADEV відтворює опубліковану sigma_y(1 с) — зазвичай у межах кількох відсотків, обов'язковий поріг 20 % (CSAC і ціль оптичного годинника на ґратці) — і криву білої FM sigma_y(tau)=sigma_y(1s)/sqrt(tau) за tau = 1, 10, 100 с у межах порога 25 % (збігається з даташитом CSAC (мікрочиповий атомний годинник) 3e-10 / 1e-10 / 3e-11).
FM випадкового блукання (довгочасна) validated tests/calibration.rs: змодельована ADEV збігається з sigma_y^2(tau)=q_rw*tau/3 (Riley NIST SP 1065) з точністю ~20 % (усереднено за seed).
Старіння / лінійний дрейф modeled + виключено калібруванням Детермінований; оцінювач holdover вилучає зсув і старіння квадратичним предиктором, тож залишок — це стохастична межа. Перевірено в src/estimator.rs / src/models.rs.
Оцінювач Калмана + межа цілісності validated src/kalman.rs: двостановий фільтр (фаза, частота), чий точний шум процесу за Ван Лоаном відповідає істинній моделі; вільний хід відтворює аналітичну дисперсію holdover q_wf*T + q_rw*T^3/3 з точністю 1e-9. Оновлення коваріації виконано у стабілізованій формі Джозефа P⁺ = (I−KH)P(I−KH)ᵀ + KRKᵀ, яка лишається додатно напіввизначеною (перевірено за Холецьким) протягом 500 кроків передбачення/оновлення за екстремального відношення R=1e-26 / Q≈1e-30 і збігається з наївною формою з точністю 1e-9, де остання добре обумовлена. Шар прогону повідомляє про цілісність як частку відліків перерви в межах 3-сигма межі захисту (src/run.rs).
Самоузгодженість фільтра (NIS (нормалізований квадрат інновації) / NEES (нормалізований квадрат похибки оцінювання)) validated (модель) src/filter_health.rs: оцінка узгодженості за Монте-Карло (Bar-Shalom §5,4). Об'єднані NIS → 1 і NEES → 2 погодженого фільтра потрапляють у свої 95 % смуги χ² (смуга NIS використовує кількість об'єднаних білих інновацій; смуга NEES — кількість незалежних прогонів, оскільки похибки оцінювання корельовані в часі). Тест перебору розузгодження Q/R перевіряє, що монітор повідомляє consistent=true лише за одиничного налаштування й consistent=false за розстроювання ×0.1/×0.5/×2/×10, причому NIS масштабується як ≈1/q_factor, як і виведено. Виводиться як filter_health у JSON (JavaScript Object Notation) результату годинника та картка в плейграунді. Смуги χ² використовують квантиль Вілсона–Гільферті (detection::chi2_inv_cdf, звірено з таблицею).
Модель двостороннього передавання часу validated (модель) src/timetransfer.rs: взаємна затримка спільного режиму точно скасовується в оцінці (m_AB - m_BA)/2 (виведено вручну, точно), а два односторонні вимірювання усереднюються до 1/sqrt(2) (усереднено за seed); невзаємна диференціальна затримка — це кольоровий процес білої FM + FM випадкового блукання, чия девіація Аллана відповідає sigma_y^2(tau) = q_rw*tau/3 (усереднено за seed, ~20 %, через власний step() каналу). Параметри (sigma_j, q_rw для кожного каналу) — це репрезентативні значення TWSTFT/оптики (TWSTFT: двостороннє супутникове передавання часу й частоти), а не підігнані до конкретного терміналу.
Безпека (оцінка виявлення спуфінгу) validated (модель) src/security.rs: 1-сигма поріг монітора sqrt(r/m + q_wf*tau + q_rw*tau^3/3) і отримане мінімально виявне зміщення k-сигма та оцінка [0,1] виведені вручну й перевірені модульними тестами. Модель (виявлення за інновацією / у стилі RAIM (RAIM: автономний контроль цілісності приймачем) за допомогою годинника) обґрунтована; параметри (вікно моніторингу tau, множник виявлення k, шум вимірювання r) репрезентативні, а не підігнані до конкретного приймача.
Виявлення атаки спуфінгу validated (модель) src/spoof.rs: хибний час спуфінгу, що наростає, позначається, коли його зміщення перевищує межу виявлення годинника; час виявлення збігається з виведеним вручну start + bound/rate з точністю до одного кроку сітки, а годинник, чия межа перевищує допуск, дозволяє спуфінгу досягти порога невиявленим. Те саме застереження representative-parameters, що й для оцінки безпеки.
Мерехтлива FM (поріг) modeled (типово вимкнено) Синтезується як сума логарифмічно рознесених процесів Орнштейна–Уленбека (OU), відкаліброваних до настроюваного плоского порога ADEV; src/models.rs перевіряє, що поріг плоский за часом усереднення й лежить на настроєному рівні (усереднено за seed). Вмикається для кожного годинника через flicker_floor. Цитовані еталонні сценарії залишають його вимкненим: CSAC переважно з білою FM у діапазоні свого даташита (1–1000 с), а систематичний поріг оптичного годинника (~5e-17) подається його показником точності.
Статистика ансамблю Монте-Карло validated (агрегація) src/ensemble.rs: процентилі за найближчим рангом і середнє за runs відтворюваними реалізаціями; один прогін згортає розкид, смуга на кожен крок часу впорядкована p05 <= p50 <= p95, а повторні прогони побітово ідентичні. Це статистична агрегація над уже перевіреним окремим прогоном, а не нова фізична модель.
Годинник sigma_y(1 с) Джерело
csac-sa45s (CSAC) 3.0e-10 даташит Microchip SA65 / SA.45s
optical-sr-lattice (ґратка Sr) 1.0e-15 оптичний годинник на ґратці зі стронцію, космічна ціль, arXiv:1503,08457

Статус: біла FM і FM випадкового блукання перевірені; старіння змодельоване й виключене калібруванням; мерехтлива FM змодельована та перевірена (типово вимкнена в цитованих сценаріях).

Зрілість: показники оптичного годинника — це космічна ціль на наземному обладнанні -- жоден оптичний годинник на стронції не літав. Лабораторні годинники на Sr досягають 4.8e-17 (Oelker та ін. 2019, Nature Photonics). Показники CSAC — із серійної комерційної деталі.

Співвідношення: Riley, NIST SP 1065, рівн. 67 -- біла FM sigma_y^2(tau)=h0/(2 tau); FM випадкового блукання sigma_y^2(tau)=(2 pi^2/3) h_-2 tau, еквівалентно q_rw*tau/3 для вінерівського процесу частоти з дифузією q_rw.

Пакет 2 — інерціальний рахунок шляху (квантовий інерціальний вимірювальний блок)#

Член Статус Докази
Постійне/залишкове зміщення -> позиція validated похибка позиції = 0,5bT^2 (родина; Groves, AESS (Aerospace and Electronic Systems Society) Tutorial); виведений вручну дискретний тест у src/inertial/mod.rs.
Випадкове блукання швидкості (білий шум прискорення) validated src/inertial/mod.rs: змодельоване СКВ (стандартне відхилення) похибки позиції збігається з sigma_x(T)=sqrt(S_a*T^3/3) (Groves, рівн. 54) з точністю ~12 % спостережуваної (усереднено за seed; обов'язковий поріг 20 %).
Фізика акселерометра на холодноатомному інтерферометрі (CAI) (з перших принципів) validated (модель) src/inertial/quantum_imu.rs: триімпульсний холодноатомний інтерферометр Маха–Цандера. Вручну перевірено за підручниковою геометрією — Rb-87 k_eff = 4pi/lambda ~ 1.611e7 rad/m; Phi = k_eff*a*T^2 ~ 1.580e4 rad за 1 g, T = 10 ms; шум проєкції sigma_Phi = 1/(C*sqrt(N)) = 2e-3 rad за C = 0.5, N = 1e6; на один постріл sigma_a ~ 1.24e-6 m/s^2; закони масштабування 1/T^2 і 1/sqrt(N); експоненційний спад контрасту. q_va() виводить білу спектральну густину потужності (PSD) прискорення, яку споживає класичний AccelModel. Чесна сфера застосування: лише межа квантового шуму проєкції (тут ~0,09 ug/sqrtHz) — значно нижче за реальні пристрої, обмежені вібрацією (1–50 ug/sqrtHz); тензор вібрації, коріолісові та світлозсувні систематичні ефекти ще не змодельовано (див. QUANTUM.md).
Зміщення гіроскопа + кутове випадкове блукання (ARW) -> нахил -> зв'язок із гравітацією modeled (типово вимкнено) Залишкове зміщення гіроскопа та ARW породжують похибку орієнтації; нахил зв'язує гравітацію (g*theta) із горизонтальною похибкою питомої сили. src/inertial/mod.rs точно перевіряє кубічне зростання позиції від чистого зміщення та зростання орієнтації від ARW як вінерівського процесу (усереднено за seed). Вмикається для кожного датчика через gyro_bias і q_arw; вимкнено в цитованих сценаріях лише з акселерометром.
Нестабільність зміщення (поріг мерехтіння 1/f) modeled (типово вимкнено) src/inertial/mod.rs: процес мерехтіння 1/f (той самий синтез OU, перевірений для годинника), чий плоский поріг девіації Аллана лежить на коефіцієнті нестабільності зміщення; нуль нічого не змінює, ненульовий поріг змінює траєкторію, обидва відтворювані. Вмикається для кожного датчика через bias_instability.
Випадкове блукання прискорення (випадкове блукання швидкості зміни) validated src/inertial/mod.rs: зміщення — вінерівський процес із Var(bias_rw(T)) = q_aa*T, перевірений з усередненням за seed до ~20 %. Вмикається для кожного датчика через q_aa.
Перехресна перевірка NaveGo (коефіцієнти шуму IMU (інерціального вимірювального блока)) validated tests/navego_imu_crossval.rs: зовнішня перехресна перевірка проти NaveGo (R. Gonzalez, інструментарій INS/GNSS з відкритим кодом (INS: інерціальна навігаційна система), github.com/rodralez/NaveGo). Відтворює синтетичний цикл navego_example_allan.m NaveGo на його опублікованому еталонному профілі Microstrain 3DM-GX3-35: подання білого шуму датчика на рівні 1-σ NaveGo до нашого оцінювача перекривної ADEV (перевіреного за NBS14/Stable32) відновлює коефіцієнти випадкового блукання швидкості та кута (VRW, ARW) (ADEV(1 s) = σ·√dt) з точністю < 5% (фактично ~0,4 %), а гілка білого шуму лежить на нахилі −1/2. Підтверджує, що наш конвеєр Аллана та визначення VRW/ARW у NaveGo збігаються. Записаний журнал STIM300 .mat розміром 40 МБ не завантажується (залежить від бінарного формату).
Масштабний коефіцієнт, тонші члени перехресних осей not modeled у цьому 1-DOF (з одним ступенем свободи) пакеті Застарілий одновісний пакет не має похибки масштабного коефіцієнта чи перехресного зв'язку. Тривісна бібліотека стрепдаун і пакет gnss-ins таки моделюють масштабний коефіцієнт, неспіввісність, g-чутливість, квантування й лінійне наростання швидкості (src/inertial/imu_errors.rs; див. таблицю тверджень нижче).
Сенсор стабільність зміщення корінь спектральної густини шуму Джерело
cold-atom-quat (квантовий) 5.88e-7 м/с^2 (60 нг, 24 год) 22 ug/sqrtHz = 2.16e-4 (м/с^2)/sqrtHz Templier та ін. 2022, Science Advances (arXiv:2209,13209)
nav-grade-quartz (класичний) 1.57e-3 м/с^2 (~160 ug) ~20 ug/sqrtHz = 1.96e-4 (м/с^2)/sqrtHz Honeywell QA-2000 / Groves AESS Tutorial

Чесне формулювання: перевага холодних атомів — це довгострокова стабільність зміщення (~2600x нижча), що домінує за тривалої відмови GNSS через 0,5bT^2. Короткостроковий шум порівнянний (квантовий ~22 проти класичного ~20 ug/sqrtHz) — квантовий датчик виграє марафон, а не спринт. Зрілість: холодноатомні акселерометри лабораторні/ранні (JRC122785), навігаційний кварц серійний.

Член Статус Докази
Білий джитер часу -> точність синхронізації validated src/timetransfer.rs: змодельоване RMS синхронізації відтворює джитер каналу sigma_j; вибіркове середнє усереднюється як sigma/sqrt(N) з точністю до <20 % (усереднено за seed).
Синхронізація -> односторонні вимірювання дальності validated дальність = c * dt, c=299792458 м/с; 1 пс = 0,299792458 мм (точно, тест виведено вручну).
Поріг мерехтіння/TDEV, залишок взаємності двосторонньої лінії modelled src/twstft_budget.rs (вид time-transfer-budget): фазовий шум мерехтіння (Kasdin–Walter, плоский TDEV), добова невзаємність і постійний залишок взаємності на двосторонньому ряді; пакет білого джитера timetransfer не змінено.
Лінія джитер одного відліку тип джерело
optical-isl 1 пс (1e-12 с) ціль, правдоподібна на орбіті оптична міжсупутникова лінія, ціль синхронізації на рівні пікосекунд; лабораторна O-TWTFT (TWTFT: двостороннє передавання часу й частоти) ~1 фс (Giorgetta 2013 / Deschenes 2016)
twstft-rf 0,5 нс (5e-10 с) виміряно в одному сеансі TWSTFT BIPM/PTB/NIST (BIPM: Міжнародне бюро мір і ваг; PTB: Physikalisch-Technische Bundesanstalt, німецький національний метрологічний інститут)

Чесне формулювання: оптичний показник — це ціль синхронізації на орбіті на рівні пікосекунд (не літала). Наземна лабораторна межа оптики — ~1 фс (значно краще); добре спроєктована мікрохвильова лінія (мікрохвильова лінія ACES (Atomic Clock Ensemble in Space) (MWL), ~0,3 пс) може конкурувати з оптичною, тож базовий рівень «RF = 0,5 нс» — це саме звичайна TWSTFT. Перетворення на дальність односторонне (дальність = cdt); двостороннє/туди-й-назад ділить її навпіл (дальність = cdt/2).

Пакет 4 — гібридне об'єднання (завершальний)#

Складається з Пакета 1 (годинник), Пакета 2 (інерціальний) і Пакета 3 (передавання часу) в один комплекс PNT (позиціонування, навігації та часу). Комплекс має утримувати ОБИДВА показники, синхронізацію (< допуск синхронізації) і позицію (< допуск позиції), в межах; pnt_holdover_s — це час до порушення будь-якого з них. Необов'язкове оптичне передавання часу міжсупутниковою лінією (ISL) повторно синхронізує годинник під час перерви (лише підтримка часу — позиція повторно не синхронізується, бо передавання часу дає час, а не позицію).

Аспект Статус Докази
Комбінована оцінка PNT (синхронізація І позиція) validated src/hybrid.rs тест score_hybrid, виведений вручну (pnt_holdover = перше з порушень синхронізації/позиції).
Цілісність + безпека для гібридного пакета validated src/hybrid.rs: оцінювач Калмана для синхронізації, що дисциплінується за істиною (номінально) і повторно прив'язується під час кожної оптичної повторної синхронізації; цілісність — це утримання в межі захисту (межа включає поріг джитера лінії), безпека — оцінка виявлення спуфінгу. Перевірено для обох комплексів, зокрема для випадку з підтримкою лінії.
Спільний оцінювач об'єднання validated (модель) src/fusion/mod.rs: єдиний спільний фільтр Калмана ([фаза, частота] ⊕ [позиція, швидкість]) є навігатором, дисциплінованим GNSS (вивчає зсуви з ненульової початкової коваріації) і підтримуваним передаванням часу; спільна коваріація дає спільну цілісність, перевірену як надійну (≥0,9) для обох комплексів із шумоузгодженими датчиками. Пакет спостерігає позицію й час окремо, для чого оптимальний фільтр блочно-діагональний; оцінювання постійного зміщення в розширеному стані та динамічне перехресне підтримування — це майбутня робота.
Зв'язаний фільтр годинника й позиції (міжблочна коваріація) validated (модель) src/fusion/coupled.rs CoupledPntFilter: єдиний зведений фільтр Калмана [pos, vel, phase, freq] (оновлення в формі Джозефа), чий вимір псевдодальності ρ = g·pos + c·phase + noise зв'язує блоки позиції та годинника. Тести: спільна псевдодальність робить P[pos,phase] ненульовим (розв'язані фільтри тримають його точно 0); дві різні геометрії спільно розв'язують уведені зсуви позиції та годинника, які одна дальність розділити не може; визначення лише годинника загострює позицію через перехресну коваріацію (вигоду дає зв'язок, а розв'язані фільтри її не мають); а NEES за Монте-Карло узгоджено з χ²(4) (Bar-Shalom §5,4, смуга за прогонами). 1-DOF (вимірність пакета); ще не підключено до запускного пакета, а 3-D розширення до 8 станів — майбутня робота.
Композиція перевірених підмоделей успадковує складники годинника/інерціальної системи/передавання часу перевірено у власних пакетах.
Слабкозв'язаний GNSS/INS (пакет gnss-ins) validated (модель) src/fusion/{gnss_ins_ekf,closed_loop,pack}.rs: 15-станний EKF зі станом похибки (δp, δv, ψ, зміщення акселерометра/гіроскопа; Groves §14) керує тривісним стрепдаун-навігатором зі зворотним зв'язком. Тести: уведена похибка позиції зникає за ідеальної підтримки істиною; підтримуваний розв'язок лишається в межах метрів, тоді як вільний INS розходиться понад 100 м; а об'єднана RMS позиції за перерви 60 с перевершує нескореговану рахунок шляху на межу ансамблевого тесту (~4× за вимірювання до 0.27.3; після виправлення нижче запас більший). Зв'язок зміщення гіроскопа перевіряється за самим стрепдауном: відоме залишкове зміщення гіроскопа має породжувати похибку орієнтації, яку передбачає фільтр (closed_loop::tests::gyro_bias_coupling_predicts_the_strapdown_attitude_error), а широкий апріор має вивчати зміщення гіроскопа класу польотного контролера, залишаючись обмеженим; обидва тести провалюються на знаку до 0.27.3. Переглянуто в 0.27.3: цей зв'язок мав хибний знак, тож оцінки зміщення гіроскопа штовхали не в той бік, і лише вузький апріор утримував пакет стабільним; опубліковані показники перерви змінилися (CHANGELOG, Fixed). Чесне обмеження: у слабкозв'язаному варіанті зміщення акселерометра й нахил слабко відокремлюються, тож калібрування за кожним зміщенням не заявляється.
Щільнозв'язаний GNSS/INS (псевдодальність) validated (модель) src/fusion/gnss_ins_ekf.rs update_tightly_coupled + closed_loop.rs fuse_tightly_coupled: інновація формується в області дальностей (якобіан лінії візування за δp). Тести: чотири супутники зводять нанівець уведену горизонтальну похибку 8 м/−5 м до < 0,1 м; два супутники (визначення позиції, швидкості й часу (PVT) неможливе) усе одно скорочують горизонтальну похибку більш ніж у 5×; один супутник у зеніті спостерігає лише складову вздовж лінії візування (вертикальну) і не торкається горизонтальної; некоректні вхідні дані відхиляються. Лише псевдодальність — фаза несівної та явний стан годинника приймача є в дорожній карті.
Точність перехресної підтримки датчиків (повне об'єднання Калмана/фактор-графа) not modeled у пакеті hybrid Гібридний пакет — це композиція на рівні системи + підтримка часу, а не оптимальний оцінювач. Фільтри існують деінде: слабко- та щільнозв'язаний EKF (розширений фільтр Калмана) пакета gnss-ins (рядки вище) і 17-станний UKF (фільтр Калмана без запаху) виду hybrid-ukf. Згладжувач на фактор-графі не змодельовано.

Результат: повністю квантовий комплекс тримає повний PNT протягом перерви 1,8 год; повністю класичний комплекс обмежений позицією (IMU навігаційного класу порушує допуск першим). Оптичне передавання часу міжсупутниковою лінією утримує навіть класичний ГОДИННИК, виокремлюючи інерціальний датчик як слабку ланку класичного комплексу — основний аргумент на користь квантової інерціальної системи разом з оптичною синхронізацією.

Геометрія — доступність GNSS за орбітами#

Аспект Статус Докази
Колове двотільне розрахування руху validated src/orbit.rs: період T=2 pi sqrt(r^3/mu) (mu = 3.986004418e14), позиція повертається через один період, екваторіальна/полярна плоскісність — тести, виведені вручну.
Ексцентричне (кеплерове) розрахування руху validated src/orbit.rs: рівняння Кеплера M = E - e sin E розв'язано методом Ньютона (нев'язка < 1e-12); радіуси перигея/апогея a(1∓e); колове наближення збігається із замкненою формою з точністю 1e-9.
Секулярний J2-дрейф вузла/апсид validated src/orbit.rs: Omega_dot = -1.5 n J2 (Re/p)^2 cos i, argp_dot = 0.75 n J2 (Re/p)^2 (5cos^2 i - 1) (Vallado); вузол регресує (прямий рух) / просувається (зворотний рух) / нерухомий (полярна орбіта), а апсиди завмирають за критичного нахилу 63,4 град — тести знаку/нуля, виведені вручну. Лише двотільна задача + секулярні члени, не оскулюючі.
Пряма видимість (затінення Землею + маска висоти) validated Антиподальний супутник затінений, радіально зовнішній супутник на висоті 90 град, дотичний супутник на горизонті — точні тести, виведені вручну.
Видимість -> стан GNSS -> часова шкала validated >=4 видимих = nominal, 1-3 degraded, 0 denied; генератор Walker-delta; інтеграційний тест запускає holdover годинника за виведеною часовою шкалою.
Оптимізатор проєктування орбітального угруповання + геометрія смуг покриття validated (модель) src/walker.rs: optimize_walker_design перебирає сітку {planes × sats × inclination} і повертає комірку, що найкраще відповідає DesignObjective (мінімум супутників для цілі покриття / максимум покриття / мінімум найгіршого PDOP (PDOP: геометричний чинник позиційного погіршення точності)) — тест перевіряє, що вибір збігається з незалежним повним перебором того самого переліку, а розібраний приклад підтверджує, що проєкт GPS (глобальної системи позиціонування) Walker 24/6/1 покриває щонайменше так само добре, як зріджений на 18 супутників. Аналітичні замкнені форми смуг покриття (coverage_half_angle_rad λ = arccos(Re/r·cos ε) − ε; street_half_width_rad cos c = cos λ / cos(π/s), Rider/Beste) вручну перевірено за підручниковою геометрією (GPS із маскою 5°: λ ≈ 71,16°, піввиширина смуги для 4 супутників ≈ 62,83°) і виявляють прогалину недостатньої заселеності (λ < π/s ⇒ None). Повний розв'язувач Rider мінімальної кількості супутників для глобального покриття (кількість площин, чутлива до шва) ще не реалізовано.
Геометричний чинник погіршення точності (GDOP/PDOP/HDOP/VDOP/TDOP (GDOP: геометричний чинник погіршення точності; HDOP: горизонтальний; VDOP: вертикальний; TDOP: часовий)) -> точність позиції validated src/orbit.rs: Q=(HᵀH)⁻¹ із матриці проєктування лінії візування. Зовнішній оракул (tests/dop_reference.rs): п'ять чинників DOP відтворюють обчислені gnss_lib_py 1.0.4 (Stanford NAV Lab — незалежна рецензована бібліотека GNSS, яку тут використовують так, як ERFA (Essential Routines for Fundamental Astronomy) для систем відліку) на 8 геометріях від добре обумовлених до майже вироджених (DOP у сотнях), з відносною точністю 1e-6; походження й відтворення — у tests/fixtures/dop/. Як додаткова перевірка в замкненій формі, геометрія правильного тетраедра відтворює аналітичні DOP (PDOP 1,5, TDOP 0,5, GDOP √2,5, HDOP √1,5, VDOP √0,75) з точністю 1e-9. Сигма позиції = PDOP × еквівалентна похибка дальності користувача.
Похибка позиції = σ_UERE × DOP для власного розв'язку найменших квадратів рушія modelled src/dop_error_mc.rs, tests/uere_dop_monte_carlo.rs: Монте-Карло із зафіксованим seed (N = 20 000 епох на геометрію, σ = 1,5 м, seed ChaCha8 36 + i) для pvt::solve_spp з одиничними вагами, розв'язане від істинної позиції, на 8 геометріях з tests/fixtures/dop/dop_reference.csv (тих, чий DOP узгоджено з gnss_lib_py), проти σ²·Q, де Q — коваріаційний множник самого ядра orbit::dop (orbit::dop_cofactor, та сама арифметика). Допуски попередньо зареєстровано (коміт e50c88d2, до першого прогону, згідно з проєктною нотаткою геометрії 0,36, розділ 5,2), кожен — у кількості стандартних похибок: дисперсії схід, північ, угору та годинника в межах 5 %; RMS H/V/P у межах 2,5 %; кореляція схід-північ у межах 0,035; середні в межах 5 стандартних похибок; частка 95 % горизонтального еліпса в межах 0,95 ± 0,0077. Перший прогін: усі 104 перевірок пройдено (найгірша дисперсія 3,2 %, RMS 1,6 %, кореляція 0,012, середнє 2,2 стандартної похибки, еліпс 0,0039). Негативні контролі провалюються, як і потрібно: подвоєний PDOP провалює кожну геометрію; похибки, що зростають як 1/sin(висоти) проти зваженого лише одиницями Q, провалюють перевірку дисперсії на кожній геометрії, де найнижчий супутник нижче 20°. Як це поєднується з рядком вище: той рядок перевіряє DOP цих геометрій за gnss_lib_py; цей додає крок від тих чинників до метрів через розв'язувач рушія. Окрему першу перевірку збережено поруч (src/dop_error_ci.rs, tests/position_error_dop_ci.rs, виконано до попередньої реєстрації й повідомлено як таку): чотири вибрані вручну неба (відкрите, скупчене, каньйон, півнеба; σ 1 м) із довірчими інтервалами хі-квадрат на рівні 1e-6 сумарно за 20 перевірок; відношення від 0,987 до 1,009, і її власні негативні контролі (похибка DOP 10 %, похибки 1/sin(висоти)) провалюються, як і потрібно. Чому MODELLED: немає зовнішнього набору даних; вона не показує, що похибка реального приймача відповідає моделі, а σ_UERE — це вхідне значення.
Доступність за кількома орбітальними угрупованнями validated src/orbit.rs: додаткові [[constellations]] зливаються в один набір супутників для видимості/DOP; тест об'єднаної кількості підтверджує об'єднання.
Трансльована іоносфера (Klobuchar, IS-GPS-200 (IS: специфікація інтерфейсу)) → похила затримка на L1 validated src/gnss_sim.rs: klobuchar_delay_m, восьмикоефіцієнтна трансльована одночастотна модель. Зовнішній оракул (tests/klobuchar_reference.rs): похила затримка на L1 відтворює ionmodel з RTKLIB (бібліотеки кінематичного позиціонування в реальному часі з відкритим кодом) (tomojitakasu/RTKLIB, src/rtkcmn.c — фактичний відкритий еталон GNSS, зібраний із джерельного коду й запущений незалежно) на 10 випадках за висоти, азимуту, місцевого часу й двох наборів коефіцієнтів (типовий kshana + RTKLIB) з точністю < 1e-4 м. Зчитувач карт TEC (TEC: повний електронний вміст) IONEX (формат обміну картами іоносфери) для файлів GIM (глобальна карта іоносфери) тепер існує (src/ionex.rs, parse_ionex з білінійною просторовою й часовою інтерполяцією та похилим відображенням, модульно перевірено в крейті); перехресна перевірка цієї інтерполяції за реальним продуктом GIM від CODE (Center for Orbit Determination in Europe) лишається продовженням. Саму трансльовану модель перевірено зовнішнім еталоном.
Ядро виявлення RAIM/ARAIM (ARAIM: удосконалений автономний контроль цілісності приймачем) (χ² / нецентральне χ² / нормальний розподіл) → пороги та множники validated src/raim.rs: поріг виявлення снапшотного RAIM / розділення розв'язків / ARAIM (chi2_quantile), нецентральність пропущеного виявлення pbias=√λ (noncentral_chi2_cdf) і множники K_fa/K_md/K_V (normal_quantile) усі обчислюються з регуляризованої неповної гамма-функції без залежностей. Зовнішній оракул (tests/raim_reference.rs): 171 випадок відтворює SciPy 1.17.0 (scipy.stats.chi2/.ncx2/.norm + optimize.brentq — незалежна реалізація Cephes/Boost, інший алгоритм) у робочих діапазонах P_fa / P_md / надмірності з відносною точністю ≤ 1e-6. Геометрія, що обгортає ядро (нахил/коваріація з (GᵀG)⁻¹), — це ядро DOP, перевірене за gnss_lib_py. Сфера: цей рядок закріплює статистичне ядро. Значення рівня захисту розподілу ARAIM MHSS (розділення розв'язків множинних гіпотез) закріплено окремо за опублікованим розібраним прикладом Технічної підгрупи ARAIM WG-C (Working Group C) (tests/araim_reference_vectors.rs, VPL (вертикальний рівень захисту) 18,2926 м проти 18,3 м, HPL (горизонтальний рівень захисту) 13,4063 м проти 13,45 м, у межах власного допуску еталона 0,05 м; див. примітку про стандарти нижче й ARAIM_REFERENCE.md).
Рівень захисту SBAS (satellite-based augmentation system) (DO-229E, додаток J) → горизонтальний / вертикальний рівень захисту (HPL / VPL) validated src/sbas.rs: sbas_protection_level, зважений МНК (LS: метод найменших квадратів) D=(GᵀWG)⁻¹ → велика піввісь горизонтального еліпса похибки + вертикальна σ, масштабовані K-факторами DO-229E. Зовнішній оракул (tests/sbas_reference.rs): HPL у kshana відтворює форк RTKLIB SBAS-PL (zsiki/rtklib_ws waasprotlevels(), реалізація «DO-229D Appendix J» Siki & Takács 2017), запущений через rnx2rtkp -ws на реальних даних EGNOS (Європейська геостаціонарна служба навігаційного покриття) (трансльовані повідомлення GEO (геостаціонарна орбіта) PRN120 + реальний RINEX (Receiver Independent Exchange Format) BUTE/Будапешт, 2017-02-19), на 6 епохах з точністю < 2e-3 м. σ для кожного супутника — це власний повний бюджет SBAS оракула (UDRE (диференціальна похибка дальності для користувача) + GIVE (вертикальна похибка сітки іоносфери) іоносфера + тропосфера + бортове). ESA gLAB v6.0.0 (core/filter.c) було зібрано й підтверджено, що він використовує ідентичну умову. Примітка про K_V: обидва оракули округлюють K_V за MOPS (мінімальні експлуатаційні вимоги) → 5,33; kshana використовує точне Φ⁻¹(1−5e-8)=5.3267 (VPL на ~0,06 % менший), тож вертикаль перевірено як d_U без K-фактора (= VPL оракула / 5,33). HPL збігається безпосередньо (K_H = 6,0 з обох боків).
Реальна геометрія орбітального угруповання з TLE (рядок 2 / кеплерові) validated (розбір) src/tle.rs: розбирає середні кеплерові елементи з рядка 2 (велика піввісь із середнього руху); відомий набір елементів МКС (Міжнародної космічної станції) проходить круговий цикл до правильних елементів і періоду. Для блока лише з рядком 2 розрахунок руху — це двотільна задача рушія (+ необов'язковий J2) за середніми елементами: придатна для знімка від спільної епохи, з часом розходиться з SGP4 (Simplified General Perturbations 4).
Розрахунок руху SGP4 / SDP4 (Simplified Deep-space Perturbations 4) (повні TLE) validated src/sgp4.rs: повний SGP4 для близької до Землі зони + SDP4 для далекого космосу (місячно-сонячні секулярні/періодичні члени + геопотенціальний резонанс 12 год / 24 год). Перевірено в tests/sgp4_verification.rs за офіційними векторами AIAA (American Institute of Aeronautics and Astronautics) 2006-6753 («Revisiting Spacetrack Report #3») — усі 666 еталонних станів (близька до Землі зона, далекий космос, резонансні, випадки кодів помилок) збігаються з найгіршою похибкою позиції ≈ 4,1 мм. Повний дворядковий набір (рядок 1 + рядок 2) розраховується SGP4; набір лише з рядком 2 лишається кеплеровим; їх можна змішувати. Система відліку — TEME (істинний екватор, середнє рівнодення), що послідовно використовується для користувача й супутників (без редукції TEME→ECEF (ECEF: геоцентрична, жорстко пов'язана із Землею) — достатньо для геометрії доступності/DOP).
Нутація IAU (Міжнародний астрономічний союз) 2000A / 2000B + редукція TEME→GCRS (GCRS: Геоцентрична небесна система відліку) validated src/nutation.rs: повний ряд IAU 2000A (678 місячно-сонячних + 687 планетних членів, nutation_iau2000a) і 77-членне скорочення 2000B (nutation_iau2000b) перевірено біт у біт за опублікованими еталонними векторами SOFA/ERFA (SOFA: Standards of Fundamental Astronomy) на JD_TT 2453736,5 — eraNut00a дає Δψ = −0.9630909107115518e-5, Δε = 0.4063239174001679e-4; eraNut00b дає Δψ = −0.9632552291148363e-5, Δε = 0.4063197106621160e-4 — обидва з точністю 1e-13 рад. Таблицю 2000A машинно згенеровано з джерела ERFA nut00a за допомогою tools/gen_nut00a.py (відтворює закомічений nutation_iau2000a_data.rs біт у біт). Матрицю нутації (iauNumat), рівняння рівнодень і повний ланцюжок TEME→TOD→MOD→GCRS (TOD: істинний на дату; MOD: середній на дату) (teme_to_gcrs, Vallado AIAA-2006-6980) перевірено на властивості власного повороту/кругового циклу/прецесії плюс нутації, матрицю нутації — проти ERFA numat елемент за елементом з точністю 1e-14, а весь ланцюжок TEME→GCRS — проти опублікованого прикладу Vallado TEME→GCRF (AIAA 2006-6753, 2004-04-06) з точністю 0,11 м (tests/frame_reference_vectors.rs); доки цю наскрізну перевірку не було додано, матриця нутації несла Δψ з хибним знаком, поворот на 2·Δψ (близько 25″), якого тести властивостей не бачили (див. CHANGELOG, Unreleased, Fixed); 2000A проти 2000B збігаються до < 1 мілісекунди дуги, як і потрібно. Ланцюжок побудовано на рівнодені/GMST (GMST: середній зоряний час Гринвіча); редукція CIO (X,Y,s) без рівнодення та її незалежна чисельна перехресна перевірка за ANISE/SPICE (ANISE: Attitude, Navigation, Instrument, Spacecraft, Ephemeris — інструментарій планетарної геометрії на чистому Rust; SPICE: Spacecraft, Planet, Instrument, C-matrix, Events) (≤ 3,6 м на орбіті GNSS, значно в межах цілі < 10 м) містяться в рядку CIO нижче.
Геомагнітна модель головного поля IGRF-14 (IGRF: Міжнародне геомагнітне еталонне поле) validated src/igrf.rs: поле на сферичних гармоніках IAGA (Міжнародна асоціація геомагнетизму та аерономії) з нормалізацією Шмідта (ступінь/порядок 13, 2025,0 + вікова варіація; коефіцієнти машинно згенеровано з офіційного igrf14coeffs.txt за допомогою tools/gen_igrf.py, відтворюючи igrf_data.rs біт у біт). Перевірено на п'яти незалежних фронтах: (1) точні вибіркові перевірки коефіцієнтів проти файла IAGA (g₁⁰=−29350,0, g₁¹=−1410,3, h₁¹=4545,5 нТл); (2) синтез ступеня 1 відтворює точне замкнене поле нахиленого диполя (B_r,B_θ,B_φ) з точністю 1e-6; (3) повне аналітичне поле ступеня 13 дорівнює −∇V скалярного потенціалу (скінченні різниці, з точністю 1e-4) — наскрізно перевіряючи похідні Лежандра й член 1/sinθ; (4) вісь диполя відтворює відомий геомагнітний північний полюс (~80,7°N, −72,7°E) і силу диполя (~29,7 мкТл), а глобальне поле лежить у фізичній смузі 22–67 мкТл з правильним знаком нахилення за півкулями; і (5) зовнішній оракул — повний синтез відтворює значення офіційного вебсервісу IGRF-14 Британської геологічної служби на 2025,0 (геодезична висота, WGS-84 (WGS: Всесвітня геодезична система)) з точністю < 2 нТл для X/Y/Z/F і < 0.02° для D/I у чотирьох точках, зокрема на висоті 400 км (synthesis_matches_the_official_bgs_igrf14_values_at_2025).
Редукція GCRS↔ITRS (ITRS: Міжнародна земна система відліку) IAU 2006/2000A на основі CIO validated src/cio.rs: ланцюжок від небесної до земної системи без рівнодення. Координати CIP (небесного проміжного полюса) (X, Y) і 66-членний ряд локатора CIO s перевірено біт у біт за опублікованим вектором SOFA/ERFA eraXys06a на JD_TT 2453736,5 — X=0.5791308482835292617e-3 (1e-14), Y=0.4020580099454020310e-4 (1e-15), s=-0.1220032294164579896e-7 (1e-18); матрицю GCRS→CIRS (CIRS: Небесна проміжна система відліку) проти eraC2ixys (усі дев'ять елементів з точністю 1e-12); кут обертання Землі (ERA) проти eraEra00(2400000.5, 54388.0) = 0,4022837240028158102 (1e-12). Таблицю s машинно згенеровано з еталона ERFA s06.c за допомогою tools/gen_s06.py (відтворює cio_s06_data.rs біт у біт). Повну gcrs_to_itrs_matrix (CIO eraC2tcio = рух полюса · ERA · GCRS→CIRS) перевірено на власний поворот + круговий цикл і показано узгодженою зі старою редукцією TEME за рівноденням/GMST-1982 у межах 1 м на радіусі 7 000 км (конвенції там відрізняються приблизно на 5 см). Незалежна стороння перехресна перевірка (xval/anise-frames/): та сама gcrs_to_itrs_matrix порівнюється з ANISE (реімплементація NAIF/SPICE (NAIF: Navigation and Ancillary Information Facility) на чистому Rust), що обертає GCRF→ITRF93 (GCRF: Геоцентрична небесна система відліку; ITRF93: Міжнародна земна система відліку 1993) за earth_latest_high_prec.bpc від JPL (Лабораторії реактивного руху), з ідентичними параметрами орієнтації Землі IERS (Міжнародна служба обертання Землі та систем відліку) finals2000A, поданими з обох боків, на вісьмох квартальних епохах 2020–2023. Дві незалежні реалізації системи відліку збігаються з максимальним відносним поворотом 0,028″ — ≤ 0,86 м на землі, ≤ 0,93 м на LEO (низькій навколоземній орбіті), ≤ 3,6 м на орбіті GNSS (середній кут 0,023″). Це перехресна перевірка систем відліку «< 10 м» із ROADMAP, виконана; залишок — це очікувана модельна/датумна різниця ITRF93 проти IERS-2010-CIO, а не дефект (біт-у-біт-якорем лишаються вектори SOFA/ERFA вище). ANISE — це крейт під MPL-2.0 (MPL: Mozilla Public License) / edition-2024, тож перевірка міститься в окремому підкрейті поза робочою областю, який ніколи не торкається опублікованого графа залежностей kshana чи будь-якого типового шлюзу CI.
Експорт SP3 (Standard Product 3, формат точних орбіт) із круговою перевіркою (угруповання → SP3-c → повторний розбір) validated tests/sp3_export_roundtrip.rs: реальний знімок Celestrak gps-ops (30 супутників GPS) розраховується за SGP4, експортується в SP3-c (Sp3File::from_propagators → to_sp3_string), повторно розбирається (parse_sp3), а відновлені положення в ECEF порівнюються з еталоном SGP4 в кожну епоху протягом 24 год. Найбільше відхилення — < 0,5 м (міліметрова серіалізація записувача; допуск рівня TLE (TLE: дворядковий набір елементів) у 10 м, визначений віхою, виконано з великим запасом). Шлях --export-sp3 в CLI (інтерфейс командного рядка) також покрито: вбудований орбітальний сценарій експортує SP3 із 30 супутників, який можна повторно розібрати, а неорбітальний сценарій відхиляється.
Реальна геометрія угруповання GPS за TLE (SGP4 → ECEF) validated tests/igs_real_data.rs: справжній знімок Celestrak gps-ops (2021-07-28, 30 діючих супутників GPS; походження вказано в tests/fixtures/celestrak/NOTICE) розбирається, і кожен супутник розраховується через перевірене ядро SGP4 на спільний момент та обертається з TEME в ECEF. Перевіряється, що все угруповання потрапляє на оболонку середніх навколоземних орбіт (MEO) GPS з точністю до 1%, а з відкритого неба в середніх широтах реальний набір усіх супутників у видимості (дев'ять супутників) дає PDOP 1,64, причому вертикальний чинник перевищує горизонтальний (як і має бути для наземного користувача). Це перевіряє SGP4 на реальному угрупованні поряд зі шляхами реальних даних SP3 (точні) та RINEX (бортові).
Генератор Walker із середніх елементів SGP4 validated src/walker.rs: розроблений візерунок Walker-delta подається як середні елементи SGP4 (середній рух Козаї обрано так, щоб велика піввісь SGP4 потрапила на цільову оболонку) і розраховується через перевірене ядро. Тести: Walker, подібний до GPS, із 24 супутників лежить на оболонці MEO з точністю до 1%, площини рознесені рівно на 90° за RAAN (пряме піднесення висхідного вузла), відновленим із нормалей до орбіт, а середній рух відтворює період оболонки GPS приблизно в 718 хв.
Перебір PDOP для угруповання та показники якості (FoM) покриття й повторного відвідування validated (монотонність) src/walker.rs: pdop_sweep табулює покриття та медіанний і найгірший PDOP на сітці {planes × sats × inclination}; coverage_revisit повідомляє частку покриття та проміжки повторного відвідування в наземній точці. Перевірено за фізичними монотонностями, яких має дотримуватися проєктний компроміс: додавання супутників ніколи не знижує покриття й строго знижує медіанний PDOP (повний проєкт із 24 супутників покриває безперервно при PDOP ~1,7), а згущення розрідженого угруповання строго скорочує найгірший проміжок повторного відвідування. Середній проміжок повторного відвідування ніколи не перевищує максимального. Це таблиці компромісів геометрії, а не сертифікований бюджет лінії зв'язку чи покриття.

Чесне формулювання: це детермінований геометричний шар (кругові орбіти, сферична Земля із середнім радіусом 6371 км, суто пряма видимість). Він визначає доступність та геометричну точність положення (геометричний чинник DOP × репрезентативний бюджет похибок дальності) на основі реальної геометрії, а не навігаційне рішення за точними ефемеридами. Еталон orbit-gnss-challenged.toml розміщує космічний апарат усередині оболонки GNSS: він утримує фіксацію лише ~59% доби, квантовий годинник зберігає часове рішення 5 нс крізь усі прогалини (доступність 1,0), тоді як мікросхемний годинник утримує ~0,73.

Числовий пропагатор (Коуелла) і модель сил#

Числовий пропагатор (src/propagator.rs) інтегрує ієрархічну модель сил (src/forces.rs) адаптивними інтеграторами (src/integrator.rs). Кожен наведений нижче складник перевірено за аналітичним еталоном або виведеною вручну замкнутою формою; збурення вимкнені за замовчуванням, тож випущені еталонні результати не змінені. Складена модель також перехресно перевірена іншим інструментом: tests/numerical_cowell_propagator_reference.rs виконує 11 випадків LEO та GTO (геостаціонарна перехідна орбіта), 275 щогодинних епох, проти пропагатора DormandPrince853 з Orekit 12,2, і консервативні рівні (дві маси → J2–J6 → Сонце/Місяць → кулеподібний SRP) збігаються з найгіршим відхиленням 0,08 м за 24 год (VALIDATED у матриці); рівень опору лише схарактеризовано (333 м), і він залишається MODELLED.

Член Статус Докази
Пропагатор Коуелла проти аналітичного еталона Кеплера validated src/propagator.rs: незбурена (двотілова) орбіта відтворює точний розв'язок Кеплера в універсальних змінних із субметровою точністю на орбіті LEO протягом 24 год (суворіший критерій, ніж «проти числового еталона < 10 м»); питома енергія та момент імпульсу зберігаються з відносною точністю ~1e-9; вікова регресія вузла від J2 відтворює замкнуту форму j2_secular_rates за теорією першого порядку (у межах 2 %, залишок O(J2²)). solve_kepler_checked повертає Err, а не мовчки хибну відповідь, коли метод Ньютона не збігається (поблизу перигею e = 0,999). Надійний solve_kepler_robust (стартове наближення Маркле 1995, src/kepler.rs) збігається там і в діапазоні 0 ≤ e ≤ 0,999999, у межах 0,9 ε·|E| від 50-значних коренів mpmath (tests/kepler_mpmath_oracle.rs).
Адаптивні інтегратори (RK4 (метод Рунге–Кутти четвертого порядку) із подвоєнням кроку + вкладена пара Дормана–Принса RK5(4), нижче DP5(4)) validated src/integrator.rs: RK4 інтегрує y' = y → e з похибкою < 1e-9, показує ~16-кратне зменшення похибки при половинному кроці (збіжність 4-го порядку) і зберігає гармонічний осцилятор протягом періоду. Вкладена оцінка похибки DP5(4) має порядок O(h⁵) (половинний крок зменшує її в ~32 рази), інтегрує осцилятор на 50 періодах із збереженням енергії до < 1e-6 і досягає тієї самої кінцевої точки за тієї самої допустимої похибки за меншу кількість обчислень функції, ніж подвоєння кроку; propagate_dopri проходить той самий субметровий критерій Кеплера й узгоджується зі шляхом RK4 до < 1 м на орбіті J2..J6. DOP853 (integrate_dop853): пара Хайрера 8(5 3) із щільним виведенням відтворює DOP853 з SciPy 1.18.1 крок за кроком (один крок у межах 5.6e-15; однакова кількість кроків на прогонах з e = 0,7 та Аренсторфа, одне перемикання прийняття/відхилення на 501 кроках у прогоні LEO; кінцеві стани в межах 1.6e-12) і збігається з точним розв'язком Кеплера так само добре, як і SciPy (tests/dop853_scipy_oracle.rs).
Зональне гармонічне поле J2–J6 validated src/forces.rs: zonal_accel перевіряється трьома способами — він зводиться до перевіреного на 666 векторах j2_accel з машинною точністю, коли обмежений до [J2]; він збігається з числовим градієнтом власного зонального потенціалу на всьому полі J2..J6 (золотий стандарт консервативного поля); а непарні члени J3 проти парних J2/J4..J6 показують характерну північ–південну (анти)симетрію за z → −z. Розрахована орбіта J2..J6 зберігає повну енергію з точністю ~1e-8 за добу.
Гравітація третіх тіл (Сонця та Місяця) validated src/forces.rs + src/ephem.rs: third_body_accel збігається з точним градієнтом свого збурювального потенціалу, перетворюється на нуль у геоцентрі та потрапляє в підручникові величини для LEO (~5e-7 м/с² для Сонця, ~1.1e-6 м/с² для Місяця). Низькоточна ефемерида Сонця Монтенбрука–Гілла потрапляє в виведені вручну опорні значення J2000 (відстань у перигелії ≈ 1.471e11 м, схилення в сонцестояння ~−23°, рух ~1°/добу); ефемерида Місяця залишається в межах свого коридору перигею/апогею, відновлює середню відстань ~384 400 км, ніколи не перевищує нахил 5,3° і повертається в межах 1° після одного сидеричного місяця. Підключення правої частини (RHS), керованої епохою, є точним до біта (член RHS дорівнює third_body_accel у вибраному положенні при t = 0 і t = 1 доба), а зсув епохи на чверть року дає іншу траєкторію.
Тиск сонячного випромінювання (SRP) і конічна тінь validated src/forces.rs: srp_accel (кулеподібний ν·P☉·cᵣ·(A/m)·(AU/d)²·d̂) збігається до біта із замкнутою формою при повному сонячному світлі, фіксує тиск випромінювання на 1 AU (AU: астрономічна одиниця) на рівні ≈ 4.5398e-6 Н/м², потрапляє в смугу ~1.36e-7 м/с² для LEO з напрямом від Сонця, зменшується в чотири рази при подвоєнні відстані до Сонця (обернений квадрат) і є точно нульовим глибоко в умбрі. conical_shadow дає ν = 1 при повному сонячному світлі та ν = 0 у повній умбрі (точно), плавну монотонну півтінь, що зростає від 0 до 1 у смузі [b−a, b+a], яка виходить за межі циліндра умбри.
Атмосферний опір (перший член, що залежить від швидкості) validated src/forces.rs: atmospheric_density (кусково-експоненційна за Таблицею 8-4 Валладо) прив'язується до 1,225 кг/м³ на рівні моря, обмежується нижче поверхні, монотонно спадає через LEO, потрапляє в смугу ~1e-12 кг/м³ на висоті 400 км із фізично відновленою шкалою висот ~58 км; drag_accel протидіє відносній швидкості співобертання на рівні ~2e-6 м/с² для LEO. Ключова перевірка: орбіта на висоті 300 км втрачає питому енергію монотонно, а її велика піввісь спадає на обмежені ~км/добу, тоді як вакуумний базовий рівень зберігає енергію до < 1e-9.
Постньютонівська (Шварцшильда) релятивістська поправка validated src/forces.rs: relativistic_accel (форма IERS β = γ = 1 a = (μ/c²r³)·{[4μ/r − v²]·r + 4(r·v)·v}) на круговій орбіті зводиться до замкнутої форми 3μ²/(c²r³)·r̂ (радіальна, назовні, позаосьові складники точно нульові), показує підручникове відношення ≈1.9e-9 до двотілової задачі для LEO, збігається зі спрощеною вручну формою через радіальну швидкість μ(4μ + 3v²r)/(c²r³) до < 1e-12 і в пропагаторі збурює орбіту, утримуючи велику піввісь у межах метра на добу — консервативна протилежність спаданню від опору.

Чесний обсяг: випущені типові налаштування ForceModel інтегрують зональне поле. Високоступеневе тесеральне поле EGM2008 (src/gravity_sh.rs, степінь/порядок 70), твердо-, океанічні та атмосферні припливи (src/tides.rs) і член Лензе–Тіррінга (захоплення системи відліку) тепер реалізовано та складено в прецизійну модель сил для підгонки ефемерид (src/precise_od.rs — див. нижче). Тесеральне поле також є необов'язковим членом ForceModel Коуелла (propagator::Geopotential, за замовчуванням вимкнено), перевіреним проти Orekit 12,2 HolmesFeatherstoneAttractionModel до степеня/порядку 70 (6 випадків за 24 год, найгірше |Δr| 0,036 м; tests/cowell_tesseral_orekit_oracle.rs). Існують два обчислювачі поля: історичний acceleration (сферичні частинні похідні; чинний до степеня ~180 далеко від полюсів; вихідні дані зафіксовано) і acceleration_hf (модифікована пряма колонкова рекурсія Холмса–Фезерстоуна 2002, градієнт без 1/cos φ; чинний до степеня 2190 на будь-якій широті). EGM2008 до 2190 завантажується під час виконання (from_gfc_file, scripts/fetch_egm2008.sh, не входить до пакета). acceleration_hf збігається з Orekit 12,2 до 7.3e-17 м/с² у восьми точках до степеня 2190; він залишається MODELLED, бо pyshtools не досяг попередньо зареєстрованого порога біля полюса (перевірка mpmath відносить похибку на pyshtools; xval/high-degree-gravity/). Орбіта 200×200 за 24 год збігається з Orekit до 0,13 м, але її попередньо зареєстрований контроль чутливості до степеня 70 не пройшов (0,73 м < 1 м), тож степені 71–200 на орбіті схарактеризовано, а не перевірено незалежним еталоном (xval/cowell-tesseral-200-orekit/). Теплосферну густину NRLMSISE-00 (NRLMSISE: модель атмосфери Дослідницької лабораторії ВМС для мас-спектрометра та радара некогерентного розсіювання) портовано (src/nrlmsise00.rs: до біта збігається з C-портом у суспільному надбанні на 720 точках, у межах 1.9e-6 відносно pymsis, відтворено 17 опублікованих тестових випадків; tests/nrlmsise00_reference.rs), і вона є необов'язковим рівнем густини для опору (forces::DensityModel, ForceModel::drag_density; типовою залишається статична модель Валладо). Це перевіряє порт, а не точність моделі щодо виміряної густини. Сонце та Місяць за DE440 (DE: ефемериди розробки) — необов'язковий рівень ефемерид (ForceModel::with_ephemeris). Тінь SRP для сплюснутої Землі WGS-84 є необов'язковою (ForceModel::srp_shadow) і збігається з коефіцієнтом освітленості Orekit 12,2 у межах 7.4e-9 на 2400 геометріях (tests/srp_oblate_shadow_orekit_oracle.rs); її варіант із затемненням до краю не має зовнішнього оракула (MODELLED). Рівень опору NRLMSISE-00 збігається з власним опором NRLMSISE-00 в Orekit 12,2 за 24 год до 0,03 м при зміщенні від опору до 142 км (tests/drag_tier_orekit_oracle.rs, VALIDATED за спільними умовностями). Перехресна перевірка за GMAT (General Mission Analysis Tool) залишається подальшим кроком.

Припливи на геопотенціалі (src/tides.rs)#

Залежні від часу поправки ΔC̄_nm, ΔS̄_nm до коефіцієнтів Стокса (Конвенції IERS 2010, розділ 6), перевірені за власними опублікованими числами цих конвенцій, а не за іншим інструментом.

Внесок Статус Докази
Твердоземний приплив (IERS, рівн. 6,6 / 6.8b / 6,14) validated tests/tides_iers.rs: постійний (нульової частоти) приплив ΔC̄₂₀ потрапляє в межі 1 % від опублікованого IERS значення −4,1736×10⁻⁹ (непружні числа Лява); робочий приклад Step-2 K1 відтворено до біта (амплітуди sin/cos 470,9 / −30,2 ×10⁻¹² з точністю 0,1×10⁻¹²); шлях нормалізованих поліномів Лежандра зафіксовано замкнутими значеннями, обчисленими вручну незалежно від рекурсії.
Океанічний приплив (IERS, рівн. 6,15, FES2004 (атлас припливів Finite Element Solution 2004), 8 складових) validated Вбудована підмножина FES2004 (tools/gen_fes2004.py → src/fes2004_data.rs, розбір Доодсона→множник) точно відтворює коефіцієнти джерела M2 (2 2); фаза Доодсона K1 дорівнює θ_g + π; величина секторіальної гармоніки степеня 2 фізична й на порядок менша за твердоземний приплив.
Атмосферний повітряний приплив S2 (Рей 2001, NASA (Національне управління з аеронавтики і дослідження космічного простору) GSFC (Центр космічних польотів імені Годдарда)) validated Вбудовані гармоніки Рея перетворюються через співвідношення поверхневого навантаження (рівн. 6,21) на піковий ΔC̄₂₂ ≈ 4×10⁻¹¹ (~10 % океанічного члена M2). Чесне застереження: для повітряного припливу не існує опублікованого оракула коефіцієнтів геопотенціалу, тому його перевірено цілісністю джерела та величиною — слабший критерій, ніж для твердоземного й океанічного припливів.

Маневри та проєктування траєкторій (src/maneuver.rs)#

Аспект Статус Докази
Імпульсний ΔV і поширення коваріації validated Розрив швидкості з поширеною вперед коваріацією 6×6 (детермінований маневр ⇒ одинична матриця переходу стану (STM); коваріація похибки виконання повертається із системи відліку маневру — ECI (інерційна геоцентрична) або LVLH (локальна вертикаль, локальний горизонт) — у блок швидкості).
Інтегрування скінченного маневру проти Ціолковського validated Інтегрування сталої тяги на дузі маневру (маса як стан), досягнутий ΔV якого збігається із замкнутим рівнянням ракети Ціолковського з точністю краще за 0,01 %.
Кругова перевірка розв'язувача Ламберта (Ідзо 2015) validated Вихід однооборотного розв'язувача Ламберта (r1, r2, час польоту ⇒ v1, v2) проходить кругову перевірку через точний пропагатор Кеплера в універсальних змінних — він має повернутися в r2.
Перебір porkchop проти нижньої межі Гомана validated Мінімум сітки «запуск × прибуття» за C3 / V∞ прибуття перевіряється за аналітичною нижньою межею C3 для переходу Гомана між двома компланарними круговими орбітами.
Розв'язувач Ламберта проти незалежної бібліотеки validated tests/lambert_reference.rs: 13 однооборотних переходів від LEO до GEO та геліоцентричних, прямих і зворотних, проти lamberthub 1.0.0 izzo2015; найбільша різниця граничної швидкості 7e-12 м/с.

Чесний обсяг: немає оптимізатора траєкторій, немає багатообертових гілок Ламберта, а геліоцентрична модель синтетична, компланарна й кругова (без планетної ефемериди DE, тому перехресну перевірку C3 Земля–Марс за GMAT не проводили).

Визначення орбіти (OD) (src/orbit_determination.rs, src/batch_ls.rs)#

Аспект Статус Докази
Пакетний коректор Гауса–Ньютона validated Загальний розв'язувач gauss_newton досягає точного розв'язку зваженого методу найменших квадратів на лінійній підгонці, відновлює істинні параметри на нелінійній підгонці a·exp(b·t) і розв'язує 3-D-мультилатерацію за дальностями за безшумних дальностей.
Пакетне визначення орбіти за дальностями validated determine_orbit_batch відновлює [r, v] за наземним відстеженням дальності (розрахованим за моделлю сил із двома тілами + J2) із субметровою точністю / мм·с⁻¹ за безшумних дальностей і з ~2 м із залишком після підгонки на рівні шуму 5 м — ознака узгодженої підгонки методом найменших квадратів.
Послідовне (з несцентованим фільтром) OD validated determine_orbit_sequential рекурсивно відновлює стан із точністю до десятків метрів на тій самій динаміці та моделі дальності.
Пакетне й послідовне OD проти незалежного оцінювача validated tests/batch_sequential_orbit_determination_reference.rs: 8 сценаріїв (6 безшумних LEO/MEO/ексцентричних із 3–4 станціями, 2 із σ = 5 м) проти пакетного методу найменших квадратів і фільтрів Калмана з Orekit 12,2 на узгодженій моделі сил; найгірше пакетне 1e-3 м / 1e-6 м/с, послідовне 0,9 м.

| Пакетне OD за швидкістю зміни дальності / азимутом і кутом місця з маскою висоти | modelled (зовнішнє порівняння, один попередньо зареєстрований поріг не досягнуто) | tests/od_tracking_measurements_reference.rs: 8 сценаріїв проти пакетного методу найменших квадратів Orekit 12,2 з власними миттєвими геометричними вимірюваннями; множини видимих об'єктів збігаються, значення вимірювань у межах 5.8e-8 м / 6.3e-10 м/с / 1.4e-13 рад, матриця переходу стану в межах 1.2e-14, зашумлені стани в межах 1,74 см і RMS за типами в межах 2.7e-4; попередньо зареєстрований поріг стану ≤ 1 см без шуму не досягнуто на 2 із 4 сценаріїв (1,46 і 1,74 см; власна оцінка Orekit відстоїть від його змодельованої істини саме настільки, а оцінка kshana — у межах 1e-8 м). Див. xval/od-measurements-orekit/RESULTS.md. |

Чесний обсяг: навчальне OD використовує нерухомі інерційні станції, топоцентричну систему відліку для сферичної Землі та миттєві геометричні вимірювання (без світлового запізнення, аберації, рефракції чи обертання Землі); матриця переходу стану для шляху за швидкістю зміни дальності/кутами варіаційна (інтегрована RK4 з аналітичними частинними похідними для двох тіл + J2), а не замкнута; для швидкості зміни дальності чи кутів немає послідовного фільтра. Шлях лише за дальністю зберігає якобіан зі скінченними різницями. (Повнофорсовий рушій підгонки ефемерид нижче має власну варіаційну матрицю переходу стану.)

Перевірка моделі сил підгонкою ефемерид (src/precise_od.rs)#

Прецизійний повнофорсовий пакетний оцінювач за методом найменших квадратів для спостережень положення: тесеральний геопотенціал EGM2008 (обчислюється в земній системі через редукцію CIO) разом із третіми тілами Сонця/Місяця, SRP, опором, релятивістськими поправками Шварцшильда/Лензе–Тіррінга (GR, загальна теорія відносності) та згаданими вище припливами, підігнані до треку інерційних фіксацій положення з якобіаном у вигляді варіаційної матриці переходу стану. Перевірено на синтетичних даних, де істиною є власний інтегратор Kshana, тож кожен залишок належить оцінювачу, а не динаміці.

Аспект Статус Докази
Складення прецизійної моделі сил validated tests/precise_od_synth.rs: поле степеня 0 є точною точковою масою в кожну епоху (центральний член інваріантний щодо обертання); степінь 8 додає сплюснутість смуги J2; третє тіло Сонця та член припливу підключено з побітовою точністю; стале радіальне емпіричне прискорення в RTN суто радіальне (радіальна, трансверсальна, нормальна).
Варіаційна матриця переходу стану validated Кожен стовпець Φ на половині орбіти LEO (геопотенціал степеня 8 + Сонце + Місяць) збігається з незалежним повторним розрахунком центральними скінченними різницями (FD) на всій дузі з відносною точністю < 1×10⁻⁶ як у відгуку положення, так і швидкості — задокументована перехресна перевірка STM↔FD. Φ(0) = I; доповнений і простий пропагатори збігаються з субміліметровою точністю.
Самовідновлення пакетним методом найменших квадратів validated 1-годинна дуга Kshana (степінь 6 + Сонце + Місяць), спостережувана без шуму, відновлюється зі зміщення 150 м / 0,1 м·с⁻¹ до стану на епоху в межах 1×10⁻² м з майже нульовим RMS після підгонки; за білого шуму 5 м 3-D RMS після підгонки встановлюється на рівні шуму ~σ, без зсуву. C_R для SRP відновлюється з 1,0 до значення в межах 1 % від істинного 1,4.
Редагування викидів і звітування в RTN validated Грубий промах у 500 м відхиляється редагуванням за 5-σ після підгонки (рівно одне спостереження), залишаючи чисту підгонку на міліметровому рівні; залишки подаються розкладеними на радіальну/трансверсальну/нормальну складові, а також у 3-D.
Рівень емпіричних прискорень (стала в RTN + 1-CPR (CPR: цикл на оберт)) validated Дев'ять емпіричних параметрів з апріорними обмеженнями залишаються нижче 1×10⁻⁸ м·с⁻² на істині без емпіричних членів, не порушуючи підгонки; стале поперечне прискорення 3×10⁻⁸ м·с⁻², введене в істину, відновлюється з точністю до 20 %.

Чесний обсяг: синтетична хвиля використовує номінальні параметри орієнтації Землі (EOP: UT1 (всесвітній час 1, час обертання Землі) ≈ TT (земний час), без руху полюсів) — це точно для самовідновлення, оскільки та сама модель породжує й підганяє дугу. Перевірки на наборах даних агентств накладають реальні EOP finals2000A та істину SP3/SPK (SPK: ядро планетних ефемерид) на цей рушій через ланцюг систем відліку CIO (src/eop.rs, tests/agency_galileo.rs, tests/agency_swarm.rs, tests/agency_lro.rs).

Реальні точні орбіти агентств (tests/agency_galileo.rs, tests/agency_swarm.rs, tests/agency_lro.rs)#

Набір даних Статус Докази
Galileo MEO — < 5 м GREEN validated Повнофорсовий рушій Kshana, підігнаний до дослівного фрагмента власної остаточної орбіти ESA/ESOC (ESOC: Європейський центр космічних операцій) (ESA0MGNFIN, ITRF (Міжнародна земна система відліку)) для Galileo E11 за 8 год, кожна фіксація ITRF повернута в GCRS з реальними EOP finals2000A: 3-D RMS після підгонки 0,133 м для чистих сил + C_R (RTN 0.105/0.067/0.047 м, C_R 1,174), 0,070 м з емпіричним рівнем, із 78,7 км сирого перекриття. Повна дуга за 24 год — 0,611 м. Усе далеко в межах порога 5 м. Поле гравітації збіжне за d/o-8 (однакове за d/o 8/10/12); завдання workflow_dispatch виконує повне d/o-70. Походження + SHA-256 (SHA: безпечний хеш-алгоритм) у tests/fixtures/agency/NOTICE.md; повний запис у docs/AGENCY-ORBIT-VALIDATION.md.
Swarm-A LEO — < 5 м GREEN validated Повнофорсовий рушій (+ атмосферний опір), підігнаний до дослівного фрагмента власної редуковано-динамічної точної орбіти ESA для Swarm-A (SW_OPER_SP3ACOM_2_, L47, ITRF, ~430 км, ~2 см) за 3 год при d/o-70, з реальними EOP finals2000A через ланцюг CIO: рівень динамічний (лише стан, статична густина, C_R=1) — 3-D RMS після підгонки 2,687 м (RTN 0.925/2.522/0.045 м — залишок ≈ суто опір уздовж треку), рівень редуковано-динамічний (+ емпіричні прискорення CPR) — 0,098 м (RTN 0.026/0.092/0.025 м) — ~10 см проти орбіти ESA в ~2 см. Походження + SHA-256 у tests/fixtures/agency/NOTICE.md; повний запис у docs/AGENCY-ORBIT-VALIDATION.md.
LRO (Lunar Reconnaissance Orbiter) місячна — перевірено незалежним еталоном, вище 5 м (чесно) validated Підгонка моделі сил із центром у Місяці (src/lunar_od.rs): гравітаційне поле GRAIL GRGM660PRIM (d/o 100) у місячній зв'язаній системі головних осей (src/lunar_frame.rs, середня Земля IAU 2015 + фіксоване зміщення DE421 (ефемериди розробки 421) «середня Земля → головні осі» (ME→PA), застосоване так, як його визначає SPICE, починаючи з 0,36: раніше його застосовували в хибному напрямку, приблизно на 208″ помилково) + треті тіла Землі/Сонця, підігнана через той самий загальний оцінювач Гауса–Ньютона, що й набори даних Землі, до реальної реконструйованої орбіти JPL Horizons LRO (NAIF −85), 4 год / 241 епоха, ~98 км. Чесна підгонка (0,36): динамічна 12,05 м (RTN 2.91/10.11/5.88), редуковано-динамічна 6,67 м (RTN 3.41/4.58/3.44, 1+2 на оберт емпіричних), із 39,9 м сирого перекриття (до виправлення ME→PA: 12,6 м, 6,65 м, 53,8 м) — вище порога < 5 м, причина не в оцінювачі (однаково за d/o 100/150 і atol 1e-6/1e-9). Перехресна перевірка рівня DE (xval/anise-lunar-od: місячна орієнтація PA за DE440 (ефемериди розробки 440) + ефемериди DE440 через ANISE) виправила твердження про обмежувальний чинник — вона дала 12,0 м динамічної та 6,67 м редуковано-динамічної, чому виправлений аналітичний стек тепер відповідає на обох рівнях (раніша динамічна розбіжність, 12,6 → 12,0 м, була помилкою зміщення ME→PA), тож операційна межа — це не аналітична орієнтація/ефемериди, а непереборний на емпіричному рівні залишок (найімовірніше, немодельована негравітаційна динаміка LRO на короткій дузі); легкий аналітичний стек уже відповідає рівню DE для редуковано-динамічної орбіти. Походження + SHA-256 у tests/fixtures/agency/NOTICE.md; повний запис у docs/AGENCY-ORBIT-VALIDATION.md. Перевірено за реальною істиною агентств: 3 із 3; відповідає < 5 м: 2 із 3.

Навігація за гравітаційною картою / alt-PNT (src/gravimeter.rs, src/mapmatch.rs, src/particle_filter.rs, src/altpnt/terrain.rs)#

Аспект Статус Докази
Поле гравітаційних аномалій у сферичних гармоніках validated src/gravimeter.rs: поле низького степеня з повною нормалізацією, перевірене за замкнутими функціями Лежандра (P̄₁₁ = √3·cosφ, P̄₂₀ = (√5/2)(3sin²φ−1), P̄₂₂ = (√15/2)cos²φ) і виведеною вручну однотермовою аномалією 1,897 мГал.
Модель вимірювання холодноатомного гравіметра validated (модель) Рівень білого шуму виводиться зі спектральної густини амплітуди (ASD) акселерометра CAI (σ = ASD/√τ) і вводиться як детермінована послідовність із зерном (зіставлювач ніколи не отримує безшумну істину, проте прогін відтворюється до біта).
Частинковий фільтр із послідовною важливісною перевибіркою validated src/particle_filter.rs: детерміноване ядро зафіксовано точно — ESS (ефективний розмір вибірки) у діапазоні від 1 до N, систематична перевибірка, що вибирає індекси пропорційно вазі, опукла комбінація зваженого середнього, гауссова правдоподібність, що притягує оцінку до вимірювання, і детермінізм передбачення із зерном.
Правдоподібність зіставлення з картою та відновлення validated src/mapmatch.rs: field_likelihood досягає піка (= 1) при ідеальному збігу й спадає до e^(−½) на одній сигмі; частинковий фільтр на характерній ділянці синтетичного рельєфу відновлює істинне положення з точністю до 0,1.
60-хвилинний бенчмарк за відсутності GPS validated run_gps_denied_gravity_nav (scenarios/gps-denied-gravity-nav.toml): перерва тривалістю приблизно 700 км / одну годину, за якої інерціальне рішення дрейфує до ≈ 70 км, відновлюється до ≈ 145 м (< 500 м) ієрархічним зіставлювачем від грубого до точного — відтворюється до біта, стабільно за реалізаціями шуму та доведено обмежується уточненням (одна груба сітка зупиняється на ~2 км).
Завантажувач .hgt DEM (цифрова модель висот) SRTM (Shuttle Radar Topography Mission) + білінійна вибірка (ОРАКУЛ A) validated src/altpnt/terrain.rs / tests/terrain_nav_validation.rs: вручну побудований буфер .hgt розміром 2×2 з кутами [100 200;300 400] білінійно інтерполюється до точно 250,0 у центрі комірки (замкнутий оракул), 16-бітне кругове перетворення з порядком байтів від старшого є точним, а перевертання рядків ставить найпівнічніший рядок файлу на найвищу збережену широту — усе проти специфікації драйвера GDAL (Geospatial Data Abstraction Library) SRTMHGT (формат файлів висот Shuttle Radar Topography Mission) (16-бітне знакове з порядком байтів від старшого, за рядками, північний рядок першим, порожнеча -32768, https://gdal.org/en/stable/drivers/raster/srtmhgt.html). Закомічений фікстур 11×11 (tools/gen_terrain_fixture.py) перевіряє розбирач у CI; а закомічений реальний тайл NASA/USGS (USGS: Геологічна служба США) SRTM v3 у суспільному надбанні (N36W117, Долина Смерті, прорідженій до 6-кутових секунд, 722 КБ, tests/fixtures/terrain/N36W117_sub6.hgt) читається в CI (не ігнорується, real_srtm_committed_badwater_tile_reads_real_relief), розміщуючи Бедвотер-Бейсін на ≈ −78 м у межах задокументованої смуги [−95,−70] м (зйомка NGS/NOAA (NGS: Національна геодезична служба; NOAA: Національне управління океанічних і атмосферних досліджень) ≈ −86 м) із максимумом тайла ≈ 2161 м — джерелом істини є зйомка, а DEM перебуває під випробуванням (некругово). Більші опубліковані точкові висоти (гора Вітні 4421 м) залишаються в повнотайлових тестах, обмежених #[ignore].
Збіжність навігації за рельєфом (TERCOM/SITAN (TERCOM: зіставлення контурів рельєфу; SITAN: Sandia Inertial Terrain-Aided Navigation)) (ОРАКУЛ B) validated run_terrain_nav (scenarios/terrain-nav.toml): виведений вручну введений дрейф INS (0,5°N, −0,4°E ≈ 70 км на широті ~12°, обчислено як дрейф° × M_per_deg × cos lat) відновлюється до < 500 м (у межах нижньої межі роздільної здатності сітки search_step/factor² ≈ 140 m), скорочення більш ніж у 100 разів порівняно з вільною інерціальною навігацією — перевірено за введеним числом, ніколи за DEM (некругово), відтворюється до біта та стабільне за зернами шуму.
Виграш від об'єднання гравітації, магнетизму та рельєфу (ОРАКУЛ C) validated run_combined_altpnt (scenarios/combined-altpnt.toml): три скалярні канали (Δg · аномалія земної кори |B| · висота), об'єднані як добуток правдоподібностей, дають обмежений залишок < 500 м за 60-хвилинну перерву, який, усереднений за зернами, не гірший за найкращий окремий канал (адитивність інформації / нижня межа CRLB (нижня межа Крамера–Рао)). Він лежить у опублікованому режимі «десятків метрів» CEP (коло імовірної похибки) для TERCOM / навігації за рельєфом (TRN) (https://en.wikipedia.org/wiki/TERCOM; PeerJ 2024 ESKF-TERCOM (ESKF: фільтр Калмана за станом похибки), https://peerj.com/articles/cs-3118/).

Чесний обсяг: гравітаційне поле — це низький степінь + синтетичні маскони, а не повний набір коефіцієнтів EGM2008/EIGEN (EIGEN: European Improved Gravity model of the Earth by New techniques); магнітний канал спирається на гладке головне поле IGRF плюс синтетичні маскони аномалій земної кори (реальна високочастотна карта кори — подальший крок); рельєфне поле CI для бенчмарків навігаційної фіксації — це самодостатня синтетична DEM, тоді як сам читач .hgt тепер перевірено в CI за закоміченим реальним тайлом SRTM v3 (вище); повнороздільні реальні тайли залишаються обмеженими #[ignore]. Монте-Карло щодо похибки подання карти залишається подальшим кроком. Усі три навігатори тепер підключено до рушія сценаріїв через kind= (gravity-map, terrain-nav, combined-altpnt).

Модель похибок INS / IMU — перевірка за даними технічних специфікацій (src/inertial/)#

Стохастичну модель похибок IMU перевірено за опублікованими специфікаціями виробників із технічних паспортів / наборів даних — ніколи за значенням, яке створила сама Kshana. Міст від польової специфікації до шумової моделі SI (Міжнародна система одиниць) — це стандартна ідентифікація за девіацією Аллана (Riley, NIST SP 1065 §5; IEEE (Інститут інженерів з електротехніки та електроніки) Std 952): коефіцієнт випадкового блукання N — це перекривна ADEV, прочитана при τ = 1 с на схилі τ⁻¹ᐟ², а коефіцієнт нестабільності зміщення — плоске плато Аллана (tests/imu_allan_spec.rs, герметично — без завантаження).

Аспект Статус Докази / оракул
Шар перетворення одиниць (ризик №1 щодо некруговості) validated Перевірено вручну: 0,15 град/√год = 4.3633e-5 рад/√с; 3,6 мкг = 3.5304e-5 м/с²; 2,0 град/год = 9.6963e-6 рад/с.
Кутове випадкове блукання гіроскопа validated ARW ADIS16465 0,15 град/√год (технічний паспорт Analog Devices) відновлено з ADEV(1 с) з точністю < 5%.
Випадкове блукання швидкості акселерометра validated VRW ADIS16465 0,1 м/с/√год відновлено з точністю < 5%.
Схил Аллана для білого шуму validated Біла гілка ADIS16460, схил у логарифмічних координатах −0,5 ± 0,05.
Плато нестабільності зміщення під час прогону validated Нестабільність зміщення (BI) гіроскопа ADIS16465 2,0 град/год відновлено як плоский мінімум Аллана з точністю < 15%.
Другий профіль IMU validated NaveGo ADIS16488 (ARW 0,3 град/√год, VRW 0,029 м/с/√год), обидва відновлено з точністю < 5%.

Чесний обсяг: це перевіряє стохастичну модель похибок за коефіцієнтами Аллана з технічних паспортів. Набір даних транспортного засобу i2Nav-WHU (WHU: Уханьський університет) KF-GINS використовується як окрема перевірка, обмежена даними: слабко зв'язаний замкнений EKF за станом похибки з моделлю важеля GNSS є рядком VALIDATED у матриці верифікації (слабко зв'язаний EKF GNSS/INS з важелем на наборі даних KF-GINS), порівняний з еталонною траєкторією KF-GINS на C++ за порогами, зареєстрованими до прогону. Він виконується лише там, де набір даних надано (KSHANA_KFGINS_DIR); без нього виконуються тести синтетичного завантажувача та важеля. Варіанти з тісним зв'язком і за фазою несівної цим рядком не охоплено (рядок щільно зв'язаного GNSS/INS за фазою несівної — MODELLED).

PNT для далекого космосу та Марса — основа D0 (src/body.rs, src/mars_frame.rs, src/ephem_provider.rs, src/radiometric.rs, src/timescales.rs)#

Перша віха рушія навігації в далекому космосі: узагальнення жорстко заданого для Землі ядра до довільного центрального тіла, додавання динаміки Марса, шва постачальника ефемерид, субмікросекундного часу та примітивів світлового запізнення / релятивістської затримки. Кожен наявний сценарій Землі побайтово ідентичний — еталонні результати міжплатформної відтворюваності (tests/cross_platform_golden.rs, tests/golden.rs) проходять без змін і без регенерації, що перевіряється для кожного коміту.

Член Статус Докази
Абстракція центрального тіла (Земля побайтово ідентична) validated src/body.rs: Body{mu,re,zonals,gravity,rotation,IAU-pole} з earth()/mars()/moon()/sun(). tests/mars_dynamics.rs стверджує, що two_body_accel_body(r,&Body::earth()) і zonal_accel_body дорівнюють застарілим функціям Землі з точною побітовою рівністю (assert_eq!), а дуга Землі з типовим ForceModel побайтово ідентична — еталонні результати відтворюваності не змінені (той самий SHA, без регенерації).
Гравітація Марса (тесеральна GMM-3 (GMM: Goddard Mars Model), у зв'язаній із тілом системі) validated (модель) Body::mars_gmm3(nmax): зональні C̄20/C̄30/C̄40 з J2/J3/J4 MRO110 (гравітаційне рішення Mars Reconnaissance Orbiter) (C̄n0=−Jn/√(2n+1), J2 круговим перетворенням повертається до 1.9604e-3) + секторіальні/тесеральні C̄22/S̄22, C̄32/S̄32 MRO110B2 (Konopliv et al. 2011; табульовано в Liu, Baoyin & Ma 2012), обчислені в зв'язаній із тілом системі Марса IAU. tests/mars_dynamics.rs перевіряє коло, відхід масштабу J2 від точкової маси та те, що поле справді зв'язане з тілом (переорієнтація на чверть марсіанської доби змінює інерціальне прискорення). Вищі степінь/порядок завантажуються з вбудованого .gfc через gravity_sh::from_gfc.
Зв'язана з тілом система Марса (полюс IAU) validated src/mars_frame.rs: обертання IAU 3-1-3 R3(W)·R1(90°−δ0)·R3(90°+α0) (конвенція WGCCRE/NAIF (WGCCRE: Робоча група з картографічних координат і елементів обертання), така сама, як у lunar_frame.rs). Тести: ортонормованість до 1e-12 з det +1, тотожність кругового перетворення, початковий меридіан просувається зі швидкістю prime_w_dot на добу.
Розрахунок орбіти навколо Марса / Сонця validated (самоузгодженість) tests/mars_propagation.rs: низька орбіта Марса повертається до початкової точки після одного кеплерівського періоду (замикання); питома енергія ε=v²/2−μ/r дрейфує на <1e-9 уздовж дуги; вікова регресія вузла за Mars-J2 збігається з аналітичною швидкістю за Валладо (обчисленою незалежно ≈ −5,15 °/добу при нахилі 60°) з точністю 3%; геліоцентрична орбіта відновлює марсіанський рік у ~687 діб (vis-viva + незалежне відновлення періоду за дугою). Без зовнішніх даних.
Перехресна перевірка за DE440 (геліоцентричний Марс) kernel-gated xval/anise-mars-od/ (виключено з робочого простору; MPL-2.0 ANISE обмежено власним Cargo.lock; відображає xval/anise-lunar-od): порівнює Sun-центральний розрахунок Марса в Kshana з JPL DE440 (через ANISE), істина Horizons цитується дослівно (походження + SHA-256). Відтворений результат (початкова JD (юліанська дата) 2459580,5 TDB (барицентричний динамічний час), de440s.bsp SHA-256 c1c7fee…b260a49f2): залишок положення 137 м на дузі в 1 добу (5,97×10⁻¹⁰ від геліоцентричної відстані 2,299×10¹¹ м), зростаючи до 3,3 км при 5 д, 87,9 км при 30 д, 1,71 Мм при 90 д — залишок зростає з довжиною дуги, бо двотілова модель із Сонцем у центрі навмисно не враховує планетних збурень (головно Юпітера) і внутрішнього руху системи Марса, які містить ефемерида барицентра DE440, тож зростання — це чесна ознака немоделюваної динаміки n тіл, а не похибка інтегратора; коротка дуга, що залишається крихітною часткою геліоцентричної відстані, підтверджує, що механізм із Сонцем у центрі правильний. Виконується лише за наявності ядра DE440 ($KSHANA_ANISE_DE440S, або автоматично завантаженого ~32 МБ) — ручна перевірка рівня DE / workflow_dispatch, не типовий бар'єр CI, тож опублікований крейт і всі типові бар'єри залишаються побайтово незмінними.
Світлове запізнення + затримка Шапіро validated src/radiometric.rs: ітераційний розв'язок світлового запізнення на запізнілу епоху (збігається |Δτ|<1e-12 с, з обмеженням) і затримка Шапіро Δt=(2μ/c³)·ln[(r1+r2+r12)/(r1+r2−r12)]. Тести: Земля–Сонце ≈ 499 с і Земля–Місяць ≈ 1,28 с за вбудованою ефемеридою; синтетичний випромінювач зі сталою швидкістю відновлює аналітичний запізнілий розв'язок до <1e-9 с (розв'язувач доведено незалежним від будь-якої реальної ефемериди); Шапіро точно збігається з обчисленим вручну значенням і дає ~100–250 мкс для променя, що ковзає біля верхнього сполучення Земля–Марс.
Шов постачальника ефемерид validated src/ephem_provider.rs: trait EphemerisProvider + BuiltinEphemeris без ядер (Монтенбрук–Гілл, Сонце/Місяць, геоцентрично); повертає None для тіл, для яких немає рядів (наприклад Марс), для чого шляхом є постачальник ANISE рівня DE — той самий поділ «вбудований проти ANISE», що й LunarEnvironment/AniseLunarEnvironment.
Двочастинний час + TT↔TDB validated src/timescales.rs: TwoPartJd{day,frac} із накопиченням Кнута two-sum відновлює субмікросекундні інтервали, які одинарний f64 JD втрачає біля J2000 (>1000× краще, перевірено); tt_to_tdb/tdb_to_tt використовують домінантний періодичний ряд Фейрхеда–Бретаньйона (|TDB−TT|≲1,7 мс, перевірено вручну на J2000). Адитивно — наявний шлях часу з одинарним f64 не змінено.

Радіометричні спостережувані далекого космосу та Tracking Data Message CCSDS — D1 (src/radiometric.rs, src/ccsds_tdm.rs)#

Друга віха рушія навігації в далекому космосі: модель спостережуваних, яка перетворює ядро світлового запізнення / релятивістської затримки D0 на реальні величини, що їх повідомляє сеанс відстеження Deep Space Network (DSN) або ESTRACK (Європейська мережа космічного відстеження) — дальність, одно-/дво-/тристороннє доплерівське зміщення, когерентне перевипромінювання транспондера, регенеративна/PN (PN: псевдошум) далекометрія, Δ-DOR (DOR: диференціальна одностороння далекометрія), а також середовища поширення — плюс введення/виведення Tracking Data Message (TDM) CCSDS (Consultative Committee for Space Data Systems) 503.0-B, що приймає/випускає стандартний файл відстеження агентства. Чесний обсяг: це точні геометричні моделі за конвенціями Мойєра / CCSDS; шум вимірювань — це задане викликачем sigma для кожного спостереження, а не вбудований у модель. Для відтворення конкретного реального сеансу відстеження потрібні реальні дані TDM плюс розв'язувач визначення орбіти для далекого космосу — це D2, а не D1. Усе нижче є адитивним (еталонні результати відтворюваності не змінені; той самий SHA, без регенерації).

Член Статус Докази
Дальність і 1/2/3-стороннє доплерівське зміщення (дволанковий розв'язок Мойєра) validated (модель) src/radiometric.rs: one_way_range/two_way_range складають розв'язки запізнілого (низхідна ланка) та випереджального (висхідна ланка) світлового запізнення D0; повна конвенція кругового шляху — ρ₂ = c·(τ_up + τ_down) (м), задокументована та узгоджена. one_way_doppler/two_way_doppler/three_way_doppler формують зсув несівної f_D = −(M·f_ul/c)·(ρ̇_up + ρ̇_down) (Гц) з швидкості зміни дальності вздовж лінії візування, конвенція знака: апарат, що наближається, дає додатний (синій) зсув. Тести: двостороння дальність = сума ланок з точністю <1 мм (~2 AU кругового шляху Земля–Сонце); одностороння дальність = c·τ точно; одностороннє доплерівське зміщення збігається з аналітичним −(f/c)·ρ̇ для радіального випромінювача зі сталою швидкістю з точністю до ppt; тристороннє із суміщеними станціями побайтово зводиться до двостороннього.
Когерентне перевипромінювання транспондера (точні співвідношення DSN) validated src/radiometric.rs turnaround_ratio: точні раціональні числа перевипромінювання DSN/CCSDS M = f_down/f_up (Moyer §13; DSN 810-005 module 201/214) — S/S 240/221, S/X 880/221, X/S 240/749, X/X 880/749, X/Ka 3344/749, Ka/Ka 3360/3599. Перевірено на точну рівність; невизначена пара діапазонів панікує (гучна відмова, ніколи не вигадує співвідношення). two_way_doppler_coherent застосовує несівну діапазону + співвідношення наскрізно й дорівнює явному two_way_doppler з машинною точністю.
Регенеративна / PN-далекометрія (CCSDS 414; неоднозначність) validated src/radiometric.rs: regenerative_range_ambiguity = c/(2·chip_rate) (однозначна дальність масштабу роздільної здатності на чіп) і pn_range_ambiguity = це × довжина коду (повна однозначна дальність PN-коду c·L/(2·f_chip)), за CCSDS 414.1-B. Перевірено: годинник дальності 1 МГц дає ~149,9 м; PN-код CCSDS-414.1 зі зваженим голосуванням (1 009 470 чіпів) при 1 Мчіп/с дає проєктну однозначну дальність ~151 000 км; подвоєння швидкості чіпів зменшує вдвічі неоднозначність на чіп.
Δ-DOR (CCSDS 506, площина неба) validated (модель) src/radiometric.rs delta_dor: диференціальна затримка в площині неба Δτ = −B⃗·(ŝ_sc − ŝ_quasar)/c (с) для інтерферометричної бази B⃗ (CCSDS 506.1-B). Перевірено: збігається з точною аналітичною проєкцією −B·sin(Δθ)/c для відомого зміщення вздовж бази з точністю 1e-15 с, з величиною за малого кута |Δτ| ≈ B·Δθ/c та з нулем (апарат, співвісний із квазаром, дає точно нульову диференціальну затримку).
Двочастотне калібрування плазми 1/f² validated (модель) src/radiometric.rs: solar_plasma_delay = K_PLASMA·TEC/(c·f²) (дисперсійна 1/f² групова затримка заряджених частинок, K_PLASMA = 40.3 m·Hz²·TECU⁻¹); coronal_tec_from_sep — стовпчик корони TEC ∝ 1/sin(SEP) класу Cassini (аналітичний замінник, а не відкалібрована корона); dual_freq_plasma_calibration — інверсія дисперсії K_disp = (Δt_X−Δt_Ka)/(1/f_X²−1/f_Ka²), яку DSN використовує для усунення плазми. Перевірено: закон 1/f² d_X/d_Ka = (f_Ka/f_X)²; корона зростає до сполучення; а введений TEC відновлюється з точністю <1 % (насправді ≪ 1e-9 без шуму) — dual_frequency_recovers_injected_plasma.
Середовища тропосфери / іоносфери (повторне використання моделей GNSS) validated (модель) src/radiometric.rs tropo_delay/iono_delay: наземний сегмент далекого космосу перетинає ту саму атмосферу Землі, яку вже моделює пакет GNSS, тому вони делегують gnss_sim::tropo_delay_m (зеніт за Саастамойненом + відображення Нілла, недисперсійно) і gnss_sim::klobuchar_delay_m (бортова іоносфера). Перевірено підключення та фізичний знак: тропосфера додатна й більша на малій висоті, ніж у зеніті; іоносфера — невід'ємна похила затримка (числова точність — власні тести пакета GNSS за технічними паспортами).
CCSDS-TDM 503, розбір / випуск + радіометричний міст validated src/ccsds_tdm.rs: читач і записувач KVN (нотація «ключове слово – значення») за CCSDS 503.0-B-2 (заголовок + сегменти META_START…META_STOP / DATA_START…DATA_STOP; записи RANGE/DOPPLER_*/ANGLE_*/*_FREQ). Тести (#[cfg(test)] + tests/fixtures/deepspace/reference.tdm): еталонний фікстур розбирається в очікувані іменовані поля; розбір→випуск→розбір дає рівну структуру (семантичне коло); міст to_radiometric_obs відображає однозначні записи RANGE/DOPPLER_* у RadiometricObs (сторонність із PATH 1,2/1,2,1/1,2,3, діапазон із TRANSMIT_BAND, км→м); багатосегментний файл скидає скінченний автомат. Чесний пропуск замість вгадування: кути/частоти, невідомі діапазони, епохи за днем року та нерозпізнані системи часу пропускаються, ніколи не відображаються хибно, а sigma залишається 0.0, щоб викликач його зважив.
Бенчмарк DSN/ESTRACK (точність моделі ≫ опублікована нижня межа) validated (model) tests/radiometric_benchmark.rs: спостережувані — це точні геометричні обчислення, тож чесний бенчмарк полягає в тому, що власна числова похибка моделі набагато нижча за опубліковану нижню межу вимірювань DSN/ESTRACK — вузьким місцем точності є не модель, а задана викликачем σ. Кожен тест обчислює спостережувану двома незалежними способами (або відновлює введену істину) і стверджує, що залишок нижчий за межу: дальність круговим перетворенням до <1 мм ≪ нижньої межі PN-далекометрії ~1 м (DSN 810-005 mod. 214 / CCSDS 414.1-B); доплерівське зміщення збігається з точною замкненою швидкістю зміни запізнілої дальності v/(1+v/c) до ~10⁻⁶ м/с, у кілька разів нижче нижньої межі X-діапазону ~0,05 мм/с (DSN 810-005 mod. 203 / Moyer) — залишок є нижньою межею f64 для диференціювання дальності на ~1 AU, числова характеристика, а не помилка моделювання; Δ-DOR відтворює замкнену проєкцію з еквівалентним кутом у площині неба ≪ 1 нрад ≪ нижньої межі ~1–10 нрад (DSN 810-005 mod. 210 / CCSDS 506.1-B); плазма у двочастотному режимі відновлює введену затримку з точністю ≪ 1 %; а затримка Шапіро лежить в опублікованій смузі ~100–250 мкс для сполучення Земля–Марс. Опубліковані значення вказано й позначено як порядкові специфікації DSN, а не вигадані точні числа, і документація модуля прямо зазначає, що це бенчмарк ТОЧНОСТІ МОДЕЛІ, а не відтворення реального сеансу (це D2 + реальний TDM).

Редуковано-динамічне OD для далекого космосу — D2 (src/deepspace_od.rs, src/clock_state.rs, src/mars_atmos.rs)#

Третя віха рушія навігації в далекому космосі: оцінювач, який перетворює радіометричні спостережувані D1 на відновлену траєкторію — чисельно надійний квадратнокореневий інформаційний фільтр (SRIF) із редуковано-динамічними емпіричними прискореннями, тристановим бортовим годинником, моделлю опору Марса та радіометричними частинними похідними, що пов'язують дальність/доплерівське зміщення зі станом фільтра, замкнений наскрізно синтетичним відновленням визначення орбіти низької марсіанської орбіти (LMO). Чесний обсяг: відновлення є синтетичним замкненим колом (істина і фільтр використовують один і той самий пропагатор Марса, а спостереження — та сама геометрична модель спостережуваних, яку інвертує фільтр, плюс введений гауссів шум) — воно перевіряє механізм оцінювача, а не абсолютну точність моделі сил Марса; зовнішньою перехресною перевіркою рівня DE є крейт xval/anise-mars-od, обмежений наявністю ядер (D0.8b). Усе нижче є адитивним (еталонні результати відтворюваності не змінені; той самий SHA, без регенерації).

Член Статус Докази
Ядро SRIF (квадратнокореневий інформаційний фільтр) validated src/deepspace_od.rs Srif: самописний квадратнокореневий інформаційний фільтр Бірмана — верхньотрикутна R з Λ = RᵀR, інформаційний вектор b, оновлення вимірювання/часу за Хаусхолдером, арифметика на голому Vec<f64> (без nalgebra). Тести: послідовний SRIF збігається з розв'язком пакетного зваженого методу найменших квадратів (gauss_newton) і за станом, і за коваріацією до 1e-9 на спроєктованій лінійно-гауссовій задачі (srif_matches_batch_on_linear); відновлена коваріація P = R⁻¹R⁻ᵀ є симетричною (1e-12) і за побудовою додатно визначеною після довгої послідовності оновлень вимірювання/часу (srif_covariance_is_spd, Холецький успішний); а інформація накопичується (слід P монотонно спадає, коли додаються вимірювання однакової геометрії).
Редуковано-динамічні емпіричні прискорення (налаштування від круїзу до LMO) validated src/deepspace_od.rs ReducedDynamicOd: дев'ятистановий фільтр [r; v; a_emp] з емпіричними прискореннями RTN як станами марковського процесу Гауса першого порядку, редуковано-динамічна методика JPL/ESOC, виставлена як єдина ручка dynamic_tightness (майже динамічний ⇒ згладжує шум на балістичній дузі; майже кінематичний ⇒ емпіричний рівень поглинає немодельований маневр/опір). Тести: майже кінематичний фільтр відстежує ступінчастий (двигунний) маневр із залишком менш ніж <½ від майже динамічного, тоді як майже динамічний фільтр краще згладжує зашумлену балістичну дугу (reduced_dynamic_tracks_maneuver); зміна жорсткості переміщує залишок після підгонки монотонно, це континуум, а не перемикач (tuning_is_a_continuum).
3-становий бортовий годинник (фаза/частота/дрейф, van Loan Q, Allan) validated src/clock_state.rs ClockState3: стан похибки фази + відносної частоти + дрейфу частоти з точним дискретним шумом процесу за van Loan і оновленням, стабілізованим за Джозефом. Тести: дискретизована Q збігається з виведеним вручну поліномом van Loan до 1e-12 і точно зводиться до двостанового KalmanClock Q при дрейфі = 0 (строга надмножина); багатокроковий вибіг збільшує дисперсію фази до аналітичного співвідношення holdover за NIST SP 1065 через член випадкового ходу T⁵; стан дрейфу відновлює істинну лінійну зміну старіння з точністю <5 %; відновлюється профіль Аллана класу USO (перекривна ADEV при τ=1 с у межах критерію калібрування), а оцінювач залишається NEES-узгодженим (>95 % у межах 3σ) і PSD через прогін із жорстким Q/R. ClockClass несе цитовані значення CSAC/USO/DSAC (USO: ультрастабільний генератор; DSAC: Deep Space Atomic Clock) σ_y(1 s) та нижню межу доплерівського зміщення Δv = c·σ_y.
Атмосферний опір Марса (Mars-GRAM-lite (GRAM: Global Reference Atmospheric Model)) validated (model) src/mars_atmos.rs: кусково-експоненційний профіль нейтральної густини Марса (біля поверхні ~0,020 кг/м³, приповерхнева шкала висот ~11 км, середнє за низького вмісту пилу за Mars-GRAM 2010 / MCD (Mars Climate Database)) і квадратичне прискорення опору, взяте відносно співобертової атмосфери Марса, плюс варіант ..._scaled, який SRIF може множити. Тести: густина монотонно та неперервно спадає між смугами, відновлена приповерхнева шкала висот є фізичною ~11 км, опір строго антипаралельний відносній швидкості (векторний добуток зникає до 1e-12) із розумною величиною ~3e-4 м/с² для LMO і лінійний за балістичним членом. Чесний обсяг: репрезентативна інженерна атмосфера, а не перевірена в польоті Mars-GRAM/MCD із залежністю від пилу, сезону та місцевого часу.
Радіометричні частинні похідні вимірювань (дальність/доплерівське зміщення) для SRIF validated src/deepspace_od.rs range_observable / range_rate_observable: частинні похідні дальності вздовж лінії візування ρ = |r_sc − r_sta| (∂ρ/∂r = û, ∂ρ/∂v = 0) і швидкості зміни дальності ρ̇ = û·(v_sc − v_sta) (∂ρ̇/∂v = û, ∂ρ̇/∂r = (v_rel − ρ̇·û)/ρ), що пов'язують спостережувані D1 зі станом фільтра, плюс частинна похідна частоти годинника для одностороннього доплерівського зсуву ∂ρ̇_obs/∂y = c. Тести: обидві частинні похідні збігаються з центральною скінченною різницею спостережуваної до 1e-6 (range_partial_matches_finite_difference, range_rate_partials_match_finite_difference); одне оновлення за дальністю скорочує коваріацію в спостережуваному напрямку (вздовж лінії візування, LOS) більш ніж у 1000 разів і зберігає її додатно визначеною (PD), а доплерівське оновлення скорочує дисперсію швидкості вздовж LOS (radiometric_update_reduces_covariance_in_observed_direction, range_rate_update_observes_velocity).
Наскрізне OD для Mars-LMO за радіометричними даними validated (synthetic closed-loop) tests/mars_lmo_od.rs: істинна дуга низької марсіанської орбіти, розрахована за гравітації Body::mars_gmm3(4), породжує зашумлену двосторонню дальність (σ=1 м) + доплерівське зміщення (σ=0,1 мм/с) відносно двох станцій відстеження; редуковано-динамічний SRIF відновлює її зі початкового стану, збуреного на ~2,7 км. Досягнуто: збіжний RMS положення ≈ 0,2 м (субметровий, далеко в межах критерію виконання від метрів до десятків метрів) на дузі з 3 орбіт із кроком 30 с, з факторизованою коваріацією, додатно визначеною в кожну епоху (гарантія SRIF, перевіряється скрізь). Континуум налаштування від круїзу до LMO перевірено наскрізно: за немоделюваного опору в істині, якого немає в шаблоні фільтра, редуковано-динамічна ручка (жорсткість 1) відновлює до ~14 м проти ~677 м для майже динамічного (жорсткість 0) прогону — поліпшення в 48 разів завдяки тому, що емпіричний рівень поглинає опір. Чесний обсяг: синтетичне замкнене коло (істина = той самий пропагатор, що його використовує фільтр); зовнішньою перехресною перевіркою рівня DE є xval/anise-mars-od, обмежений наявністю ядер (D0.8b), тут ніколи не запускався, без мережі.

Сценарій PNT для далекого космосу та злиття одностороннього й двостороннього зв'язку — D3 (src/mars_pnt.rs, src/deepspace_od.rs)#

Четверта віха рушія навігації в далекому космосі: придатний до запуску продуктовий сценарій Mars-PNT, що пов'язує тіло / систему відліку Марса D0, радіометричні спостережувані D1 і редуковано-динамічне OD D2 в один різновид сценарію mars-pnt. Він моделює невелике угруповання ретрансляторів у стилі MARCONI, яке передає односторонній (пов'язаний із годинником) сигнал у просторі та ретранслює двосторонню (когерентну, вільну від годинника) лінію до станції далекого космосу, і навігує трьох еталонних користувачів (перехід до Марса, орбітальний апарат на низькій орбіті Марса, нерухома точка на поверхні) через спільний оцінювач злиття D3.1 одностороннього + двостороннього зв'язку — дванадцятистановий SRIF, що доповнює редуковано-динамічний блок орбіти/емпіричних величин D2 тристановим бортовим годинником. Чесний обсяг: кожен показник якості — це формальна межа коваріації оцінювача (1σ / 3σ положення в кожну епоху) та досягнутий RMS відносно синтетичної істини із замкненим колом (істина і фільтр використовують ту саму динаміку Марса та ту саму геометричну модель спостережуваних, плюс введений гауссів шум) — змодельований навігаційний показник якості, НЕ рівень захисту, сертифікований для авіації, і НЕ твердження про польотну придатність (без сертифікованої моделі відмов, без монітора цілісності, без реальних даних відстеження). Усе нижче є адитивним (еталонні результати відтворюваності не змінені; той самий SHA, без регенерації).

Член Статус Докази
Спільне радіометричне злиття одностороннього + двостороннього зв'язку (злиття краще за кожен окремо) validated src/deepspace_od.rs FusionOd: редуковано-динамічний SRIF D2.2, доповнений трьома станами бортового годинника (ClockState3), що приймає змішаний часовий ряд двосторонньої (вільної від годинника, що фіксує орбіту — нульові стовпці годинника в частинній похідній) і односторонньої (пов'язаної з годинником — частинна похідна частоти ∂ρ̇_obs/∂y = c) дальності/доплерівського зміщення через fused_observable. Структура «відкалібруй, потім вибігай»: двосторонні сеанси фіксують орбіту, односторонні дані потім калібрують годинник і підтримують орбіту між сеансами з похибкою, обмеженою стабільністю годинника за Алланом. Перевірено в src/deepspace_od.rs #[cfg(test)]: злите рішення перевершує кожен тип лінії окремо; похибка вибігу прогону лише з одностороннім зв'язком зростає з проміжком між двосторонніми сеансами відповідно до межі Аллана для класу годинника; спільна коваріація залишається SPD (симетричною додатно визначеною) повсюдно.
Угруповання MARCONI (ареостаціонарний радіус, заступання) validated (model) src/mars_pnt.rs MarconiConstellation: набір із п'яти ретрансляторів — три ареостаціонарні ретранслятори на r = (μ/ω²)^{1/3} ≈ 20 428 km (синхронний радіус Марса за опублікованими μ/швидкістю обертання; перевірено в смузі 20 400–20 500 км), рівномірно рознесені на 120° за довготою з нахилом 5°, плюс два ретранслятори на вищій (1,4× ареостаціонарної) круговій орбіті з нахилом 60° для охоплення площини неба. Стани ретрансляторів у кожну епоху інтегруються вперед за гравітації mars_gmm3; тест видимості з заступанням Марсом — це геометрія «хорда проходить повз сферу» (chord_clears_sphere, перевірено: діаметрально протилежний ретранслятор заступається, ретранслятор над головою видимий). Чесний обсяг: мінімальна репрезентативна геометрія мовлення плюс ретрансляції, побудована з опублікованих констант Марса — а не конкретний проєкт польотного угруповання.
Сценарій mars-pnt доступний через CLI / Python / WASM (WebAssembly) / MCP (Model Context Protocol) validated src/mars_pnt.rs MarsScenario / run_mars_pnt підключено як сценарій kind = "mars-pnt" на всіх поверхнях (D3.3): запускач CLI, прив'язка Python, збірка WASM/playground і диспетчер сервера MCP — усе спрямовується до нього (тест кругового перетворення src/api.rs mars_pnt_kind_round_trips_through_the_dispatch). Поставлені еталонні сценарії: scenarios/mars-pnt-lmo.toml, scenarios/mars-pnt-surface.toml, scenarios/mars-pnt-transfer.toml. Результат несе явну fom_note, яка позначає показник якості як межу коваріації (а не сертифікований PL), а виводи summary / to_svg повторюють позначку чесності.
Цілі MARCONI / LightShip відтворено: орбітальний апарат < 100 м, марсохід < 15 м validated (synthetic closed-loop, under stated assumptions) tests/mars_pnt_targets.rs: опубліковані цілі програми MARCONI / LightShip (орбітальний апарат < 100 м, поверхня/марсохід < 15 м), відтворені в симуляції. Спільні припущення: типове угруповання MARCONI з п'яти ретрансляторів; кожен ретранслятор у зоні видимості дає одностороннє «дальність+доплерівське зміщення» в кожну епоху; когерентний двосторонній сеанс станції кожні 30 хв; шум класу DSN (σ дальності = 1 м, σ доплерівського зміщення = 0,1 мм/с); спільний редуковано-динамічний фільтр злиття «орбіта + 3-становий годинник», ініціалізований апріорним станом, збуреним на ~2,7 км (жорсткість 0,1); показник якості = збіжний 3-D RMS положення на другій половині дуги відносно синтетичної істини. Орбітальний апарат (LMO ~400 км / нахил 60°, годинник USO, крок 60 с, ~2 год ≈ дуга в одну орбіту): досягнутий збіжний RMS ≈ 0,40 м ≪ цілі в 100 м (у середньому 3,1 ретранслятора у видимості, коваріація SPD повсюдно). Марсохід (нерухома екваторіальна точка поверхні, годинник USO, крок 30 с, дуга ~2 год): досягнутий збіжний RMS ≈ 5,1 м < цілі в 15 м (у середньому 3,0 ретранслятора у видимості, коваріація SPD). Обидві цілі досягнуто без послаблення жодного твердження — USO є менш досконалим із реалістичних класів бортових годинників (DSAC лише допоміг би), а 30-хвилинний двосторонній ритм є консервативним для рутинного розкладу ретрансляційної мережі, тож припущення фізично справедливі для системи класу MARCONI, а не підігнані під проходження. Чесний обсяг: симульоване відтворення за вказаних припущень, НЕ твердження про польотну придатність і не сертифікований рівень захисту; синтетична істина із замкненим колом використовує ту саму динаміку Марса та модель спостережуваних, що й фільтр.

Місячний координатний час — релятивістська швидкість годинників Земля–Місяць (src/lunar_time.rs)#

Шкала місячного координатного часу (LTC/TCL (TCL: Temps-Coordonnée Lunaire, французька назва місячного координатного часу)) вимагає вікової швидкості, з якою годинник на місячній поверхні йде відносно годинника на геоїді Землі (TT). src/lunar_time.rs обчислює її з перших принципів: тотожність першого постньютонівського порядку, що сумує різницю власних потенціалів (умовний потенціал геоїда IAU L_G W0 = L_G·c² ≈ 6.26369e7 m²/s² мінус власний потенціал поверхні Місяця GM_moon/R_moon ≈ 2.822e6 m²/s²) і кінетичний (доплерівський другого порядку) член −<v²>/2c² від геоцентричної швидкості Місяця (скінченні різниці за рядом Місяця Монтенбрука–Гілла в src/ephem.rs). Домінантний член власного потенціалу дає ≈ 57,5 мкс/добу, кінетичний член ≈ −0,5 мкс/добу, разом ≈ 57 мкс/добу. Сценарій lunar-time-offset повідомляє цю швидкість, накопичене зміщення LTC−TT на горизонті та підтримує мінімальний ансамбль із зважуванням за оберненою дисперсією (місячний паперовий годинник); перетворення TT↔LTC круговим шляхом повертаються з точністю < 1 нс/добу.

Можливість Статус Оракул / чесний обсяг
Релятивістська швидкість годинників Земля–Місяць (LTC/TCL) modelled src/lunar_time.rs lunar_rate_breakdown, tt_to_ltc/ltc_to_tt, lunar_ensemble, LunarTimeScenario. Оракул: внутрішня замкнена релятивістська тотожність (геопотенціал IAU L_G / конвенцій IERS і власний потенціал GM/r (GM: гравітаційний параметр, добуток G на масу)), перехресно перевірена за опублікованою смугою швидкості місячного годинника [56, 59] мкс/добу. Тести (lunar_time::tests): член власного потенціалу ≈ 57,5 мкс/добу, швидкість Місяця ≈ 1 км/с, кінетичний член — мале від'ємне число, сума в смузі, причому названі члени дають у сумі саме її, зміщення LTC−TT за 1 добу ≈ 57 мкс і коло TT↔LTC < 1 нс/добу. Чесний обсяг: головне значення мкс/добу залежить від еталона — воно залежить від вибраних еталонних поверхонь (геоїд Землі W0 проти місячного селеноїда), вікна усереднення в часі та знехтуваних поправок за відцентрову силу/J₂ нижче мкс/добу — тому опублікованим результатом є смуга, а не єдине сертифіковане число. Це перевірка самоузгодженості Modelled, НЕ зовнішня перевірка незалежним еталоном, НЕ субнаносекундна абсолютна точність і НЕ сертифіковано для експлуатаційного ведення часу.

Місячна геодезична VLBI — ближньопольова затримка для земної бази, що спостерігає місячний маяк (src/lunar_vlbi.rs)#

Геодезична спостережувана VLBI (радіоінтерферометрія з наддовгою базою) для двох земних наземних станцій (база), що спостерігають односторонній сигнал від передавача класу NovaMoon на поверхні Місяця. Місяць перебуває в ближньому полі, а не є плоскою хвилею, тому геометрична затримка — це точна різниця двох дальностей tau_geom = (|r2 − r_B| − |r1 − r_B|)/c, а не проєкція на площину неба. Повна спостережувана додає різницю зміщень годинників станцій і диференційований член Шапіро для потенціалу Землі (повторно використаний із src/radiometric.rs). Станції розміщуються в геоцентричних інерційних (GCRS) координатах через src/frames.rs + src/cio.rs; маяк — через src/ephem.rs (геоцентричний Місяць) + src/lunar.rs (селенографічні→MCMF (MCMF: Moon-centred, Moon-fixed)) + src/lunar_frame.rs (зв'язана з тілом ME → інерційна за IAU-2015). Сценарій lunar-vlbi вибирає затримку, її скінченно-різницеву швидкість і ближньопольову поправку протягом сеансу.

Оракулом є плосковолнова спостережувана Δ-DOR delta_dor з тієї самої кодової бази в src/radiometric.rs: у граничному випадку дальнього поля (синтетичний маяк на 1e15 м) геометрична затримка має звестися до −(B·ŝ_B)/c = delta_dor(r_B, [0,0,0], B) з машинною точністю; на справжній місячній відстані ближньопольова поправка на кривизну хвильового фронту відмінна від нуля (десятки–сотні мкс). Частинні похідні маяка dtau/dr_B = ((r_B−r2)/|r_B−r2| − (r_B−r1)/|r_B−r1|)/c (і частинні похідні станцій) перевірено центральною скінченною різницею (відносна похибка < 1e-5).

Можливість Статус Оракул / чесний обсяг
Місячна геодезична затримка VLBI + частинні похідні modelled src/lunar_vlbi.rs geometric_delay_s, vlbi_delay_s, delay_partials_beacon/_station1/_station2, near_field_correction_s, LunarVlbiScenario. Оракул: ReferenceImpl — плосковолнова delta_dor (src/radiometric.rs) з тієї самої кодової бази в граничному випадку дальнього поля, плюс скінченно-різницеві частинні похідні. Тести (lunar_vlbi::tests): величина станції ≈ радіус Землі, дальність маяка на місячній відстані (356–407 Мм), геометрична затримка дальнього поля збігається з delta_dor до < 1e-9 с, ненульова ближньопольова поправка на місячній відстані, частинні похідні маяка/станцій за FD у межах 1e-5 відносно, точний член годинника та скінченний прогін сценарію, спрямований через run_toml. Чесний обсяг: Modelled, НЕ перевірено за реальними даними VLBI незалежним еталоном. Рух полюса відкинуто (xp = yp = 0), тож інерційні положення станцій несуть кілька метрів похибки системи відліку; маяк змішує ряд Місяця для середнього екватора епохи із зв'язаним із тілом зміщенням в ICRF (International Celestial Reference Frame) (jd_tdb ≈ jd_tt), розбіжність узгодженості систем відліку нижча за точність моделі, але не строга; і немає ні ітерації світлового запізнення, ні обертання Землі під час світлового запізнення, ні середовищ (тропосфера/іоносфера/плазма), ні члена аберації, окрім диференційованого Шапіро. Жодного TRL (рівня технологічної готовності), польотної спадщини чи схвалення агентством не заявляється. 0,30: щодо світлових запізнень ANISE через DE440 жодна затримка цього аналітичного шляху не лежить у межах 1 пс (найбільший розрив 24 мкс); цей висновок зафіксовано.
Місячна геодезична VLBI, шлях ядер validated (0.30) src/lunar_vlbi.rs KernelGeometry (Земля та Місяць за DE440, головні осі Місяця за DE440, орієнтація Землі ITRF93, кожне світлове запізнення збігається в барицентричній системі), виконується сценарієм lunar-vlbi, коли задано три шляхи до ядер. Оракул: бібліотека — збіжні світлові запізнення NAIF SPICE Toolkit N0067 (spiceypy 8.2.0) до DSS-14/43/63, попередньо зареєстровано: 75 затримок у межах 1 пс (найгірше 0,06 пс), частинні похідні маяка та станцій у межах 1e-6, на 25 епохах поблизу J2000 (поправка після того, як 2024 епох не пройшли на власній епосі випромінювання SPICE з подвійною точністю, близько 6 пс, розкрито й зафіксовано). Диференційований член Шапіро, швидкість затримки та ближньопольова поправка сценарію не порівнюються.

Місячне спільне багатотехнічне OD + годинник — симульоване відновлення із замкненим колом (src/lunar_combination.rs)#

Одноепохальна (знімкова) пакетна підгонка методом найменших квадратів (crate::batch_ls::gauss_newton_qr, крок QR за Хаусхолдером від 0,30), що зливає техніки геодезичної VLBI, радіометричної/місцевої місячної далекометрії та міжсупутникової далекометрії на СИМУЛЬОВАНІЙ місячній мережі, щоб разом відновити 3-D-положення місячної поверхневої станції, положення кожного супутника невеликого угруповання та зміщення годинника кожного активу. Спостережувані такі: (1) затримки геодезичної VLBI земної бази до місячної станції, що розглядається як маяк (повторне використання src/lunar_vlbi.rs, геоцентрична інерціальна) — головна техніка; (2) геоцентричні радіометричні дальності від земних станцій до супутників (які мультилатерують угруповання від добре розкиданих земних станцій) і місцеві місячні дальності станція↔супутник (евклідова відстань MCI (Moon-centred inertial) плюс диференційований член годинника); (3) міжсупутникові дальності (тієї самої форми); плюс одне псевдоспостереження синхронізації годинника станції, що закріплює інакше неспостережуване спільне зміщення годинників. Вектор стану — [station_pos(3), {sat_pos(3)}×N_sat, station_clk, {sat_clk}×N_sat]. Немає розрахунку за моделлю сил всередині розв'язувача — супутники є нерухомими, окремими, ілюстративними точками на репрезентативній місячній орбіті; це свідомо чиста знімкова підгонка. Усередині положення масштабуються, а годинники оцінюються в метрах-еквівалентах дальності, щоб нормальна матриця залишалася добре зумовленою в f64; дальності VLBI та місячної відстані очищено від середнього щодо номінальної геометрії, щоб скінченно-різницевий якобіан не страждав від катастрофічного скорочення. Сценарій lunar-joint-od-clock виконує розв'язання з ланками VLBI та без них на тому самому зерні/істині та повідомляє обидва розв'язки плюс коефіцієнт поліпшення спостережуваності станції.

Головний чесний результат: місцева місячна далекометрія від полярної станції до кількох супутників, що всі розташовані в один бік неба, залишає положення станції слабко спостережуваним уздовж одного напрямку, тож розв'язання лише за дальністю погано зумовлене, а відновлена 3-D-похибка станції велика (або розв'язання не збігається). Додавання затримок VLBI земної бази робить повне 3-D-положення станції спостережуваним, а відновлена похибка станції падає до метрового рівня. Тест vlbi_restores_station_observability стверджує, що похибка станції з VLBI помітно (≥5×) менша за похибку лише за дальністю на тій самій введеній істині — відновлення VLBI інакше неспостережуваного напрямку станції і є сенсом фази.

Оракулом є внутрішня узгодженість: введений істинний стан (станція ~50 м/вісь, супутники ~30 м/вісь, годинники ~1e-7 с, із зерновим дрижанням за складовими) відображається на синтетичні спостережувані через ту саму геометричну модель, яку інвертує розв'язувач, додається гауссів шум із зерном (ілюстративні типові значення: σ VLBI ≈ 1e-11 с, σ дальності ≈ 0,1 м, σ ISL ≈ 0,1 м; ваги 1/σ²), і оцінювач має відновити введену істину в межах шуму з нульового початкового наближення. Середній NEES за Монте-Карло Δxᵀ(HᵀWH)Δx за зернами (formal_covariance_nees) лежить у вільній смузі навколо n_params — перевірка реалістичності коваріації.

Можливість Статус Оракул / чесний обсяг
Спільне місячне багатотехнологічне визначення орбіти + годинник validated (0,30, P2: лінійна алгебра розв'язання) src/lunar_combination.rs estimate, formal_covariance_nees, LunarCombinationScenario. Оракул 0,30: P2 — numpy 2.4.6 (LAPACK gelsd та inv) перераховує кожен крок Гауса–Ньютона, збіжний зважений розв'язок, формальні сигми та похибку станції на закомічених якобіанах шести мереж (tests/lunar_joint_od_numpy_oracle.rs, кроки в межах 2.4e-11, сигми в межах 1.3e-11); фізичні моделі спостережень і величини залишаються MODELLED. Ранній оракул: InternalConsistency — відновлення введеної симульованої істини + узгодженість коваріації за NEES. Тести (lunar_combination::tests): повне злиття відновлює істину (станція < 5 м, RMS супутників < 5 м, годинники < 1e-8 с, збіжність); VLBI відновлює 3-D-спостережуваність станції (похибка станції ≥5× менша з VLBI, ніж лише за дальністю на тій самій істині); детерміновано (те саме зерно → побітово ідентичний розв'язок, інше зерно → інший, але відновлений); середній NEES у вільній смузі навколо n_params; скінченні/захищені повідомлені числа навіть коли розв'язання лише за дальністю погано зумовлене; сценарій спрямовано через run_toml. Чесний обсяг: це симульоване відновлення із замкненим колом — істина використовує модель спостережень — НЕ перевірка на реальних даних; без розрахунку за моделлю сил усередині розв'язувача; положення супутників і геометрія земних/місячних станцій ілюстративні. Жодного TRL, польотної спадщини чи схвалення агентством не заявляється.

Реалізація місячної системи відліку — підгонка датуму Гельмерта з 7 параметрами (src/lunar_frame_realise.rs)#

Тоді як src/lunar_frame.rs застосовує орієнтацію тіла Місяця IAU 2015 WGCCRE (пряма модель), цей модуль оцінює (реалізує) місячну систему відліку з мережі оцінених координат точок, прив'язаних до датуму. Ядром оцінювання є класичне 7-параметричне перетворення подібності (Гельмерта) — три паралельні перенесення, три малі повороти й один параметр масштабу — що відображає точки p_i (оцінена система) у q_i (система датуму) як q_i = t + (1 + s)·R(θ)·p_i, де R(θ) = rz(θz)·ry(θy)·rx(θx) побудовано з crate::precession::{rx, ry, rz, matmul, mat_vec}. Сім параметрів [tx, ty, tz, θx, θy, θz, s] оцінюються з ≥ 3 неколінеарних пар точок зваженим методом найменших квадратів через crate::batch_ls::gauss_newton: пряма модель передбачає кожне q_i зі свого p_i і розгортає всі три складові всіх точок у вектор спостережуваних, спостережені координати датуму утворюють z, вагами є 1/σ², а розв'язання починається з x0 = zeros. Кути обертання оцінюються в мкрад, а масштаб у ppb, щоб скінченно-різницевий якобіан залишався добре масштабованим за величини координат на поверхні Місяця (~1.7e6 м). Невеликий icrf_orientation_tie складає реалізований малий поворот через орієнтацію тіла IAU→ICRF (transpose(crate::lunar_frame::icrf_to_iau_moon(jd_tdb))) і повертає залишкове мале кутове зміщення реалізованої системи навколо осей ICRF — свідомо проста зміна системи вираження, а не незалежна оцінка місячного полюса.

Оракулом є внутрішня узгодженість: відоме перетворення Гельмерта (паралельне перенесення ~десятки м, поворот ~мкрад, масштаб ~1e-7) вводиться в добре розкинуту синтетичну мережу точок (різні селенографічні широта/довгота → MCMF, деякі точки на висоті), додається гауссів шум із зерном, і підгонка має відновити введені параметри. За безшумних даних відновлення відбувається майже з машинною точністю (паралельне перенесення < 1e-6 м, поворот < 1e-9 рад, масштаб < 1e-12); із метровим шумом відновлені параметри лежать у межах кількох × формальної σ, а RMS залишку після підгонки близький до рівня шуму. Сценарій lunar-frame-realisation повідомляє відновлений датум, похибку відновлення за кожним параметром відносно введеної істини, RMS залишку після підгонки та прив'язку орієнтації до ICRF реалізованого повороту.

Можливість Статус Оракул / чесний обсяг
Реалізація місячної системи відліку modelled src/lunar_frame_realise.rs helmert_fit, apply_helmert, realise_frame, icrf_orientation_tie, LunarFrameRealiseScenario. Оракул: InternalConsistency — відновлення введеного 7-параметричного перетворення подібності плюс алгебраїчна тотожність кругового перетворення apply_helmert. Тести (lunar_frame_realise::tests): безшумне відновлення введеного перетворення (паралельне перенесення < 1e-6 м, поворот < 1e-9 рад, масштаб < 1e-12); відновлення з шумом у межах кількох × σ і RMS залишку поблизу рівня шуму; коло «застосувати, потім інвертувати»; детерміновано (те саме зерно → побітово ідентично, інше зерно → інше, але відновлене); прив'язка ICRF за нульового повороту нульова, а прив'язка зберігає величину повороту; сценарій спрямовано через run_toml. Чесний обсяг: це перевірка самоузгодженості — вона відновлює введене перетворення на синтетичній мережі — НЕ реалізація місячної системи відліку за реальними даними відстеження / VLBI, і вона не заявляє про абсолютну точність системи відліку. Прив'язка орієнтації ICRF є простою зміною вираження, а не незалежною оцінкою полюса. Жодного TRL, польотної спадщини чи схвалення агентством не заявляється.

Об'єм навігаційної послуги на Місяці — DOP / покриття / доступність + узагальнений місячний ARAIM PL (src/lunar_service.rs)#

Цей модуль складає вже побудовані частини в аналіз об'єму послуги місячної навігації: він пробігає сітку селенографічних широти/довготи на часовому горизонті відносно ілюстративного угруповання на місячних орбітах класу Moonlight / LCNS на основі публічних джерел (LCNS: Lunar Communications and Navigation Services) і повідомляє DOP / покриття / доступність плюс узагальнену оболонку місячного рівня захисту ARAIM. Два повторні використання є опорними й явними. Геометрія DOP — це ядро crate::orbit::dop, що є VALIDATED (щодо gnss_lib_py): service_dop — це тонкий фільтр маски висоти плюс це ядро, а тест стверджує тотожність (service_dop дорівнює прямому orbit::dop на тих самих видимих положеннях). Цілісність повторно використовує механізм місячного ARAIM LunaNet LNIS (LunaNet Interoperability Specification) crate::lunar::lunar_araim (σ_URE ≈ 30 м, P_sat ≈ 1e-4); lunar_protection_level узагальнює наявний рівень захисту для південного полюса на довільну точку поверхні, а тест стверджує, що він зводиться до випадку південного полюса (на південному полюсі з тією самою геометрією/бюджетом він повертає точно наявний результат lunar::lunar_araim з точністю < 1e-9).

Параметри угруповання є ілюстративним наближенням публічних описів ESA цього класу системи (≈ 4 супутники на еліптичних замерзлих місячних орбітах, що сприяють покриттю південного полюса — апоселена над південною півкулею; 4 — типове значення бібліотеки, а вбудований moonlight-service-volume.toml задає 8, бо рівень захисту потребує щонайменше 6 у видимості). Вони не є справжньою ефемеридою Moonlight/LCNS і не передбачають жодної належності, схвалення, польотної спадщини, сертифікації чи TRL. Композиція (покриття / доступність / цілісність) є MODELLED: набір ретрансляторів на кругових/еліптичних кеплерівських орбітах (а не ефемерида LCNS / 9:2 NRHO (майже прямолінійна гало-орбіта) з диференційною корекцією), Місяць із середнім обертанням (без фізичної лібрації / прецесії полюса) та опубліковані параметри цілісності LunaNet LNIS. Вона демонструє метод об'єму послуги, а не експлуатаційне значення доступності. Детерміновано (суто геометрія; без випадковості). Сценарій moonlight-service-volume повідомляє відсоток покриття, оболонки кількості видимих супутників і PDOP, оболонку HPL/VPL по об'єму та доступність рівня захисту щодо порога тривоги.

Можливість Статус Оракул / чесний обсяг
Об'єм навігаційного обслуговування на Місяці modelled src/lunar_service.rs LunarConstellation, visible_sats, service_dop, coverage, lunar_protection_level, LunarServiceScenario. Геометрію DOP перевірено повторним використанням ядра crate::orbit::dop, перевіреного за gnss_lib_py; цілісність повторно використовує опублікований місячний ARAIM LunaNet/LNIS (crate::lunar::lunar_araim, σ_URE ≈ 30 м). Тести (lunar_service::tests): service_dop є тотожністю на перевіреному ядрі; lunar_protection_level на південному полюсі дорівнює наявному PL lunar::lunar_araim з точністю < 1e-9 (зводиться до випадку південного полюса); покриття не спадає з розміром угруповання; видимість дотримується маски висоти; сценарій детермінований і спрямовується через run_toml. Чесний обсяг: угруповання ілюстративне, на основі публічних джерел, НЕ пов'язане з ESA — це не справжня ефемерида Moonlight/LCNS; композиція покриття/доступності/цілісності є MODELLED (ретранслятори на кругових/еліптичних кеплерівських орбітах, Місяць із середнім обертанням, опубліковані параметри LNIS), НЕ експлуатаційне значення доступності Moonlight. Жодного TRL, польотної спадщини чи схвалення агентством не заявляється.

Місячний диференційний PNT — скасування спільної моди + залишок, що зростає з базою + рівні захисту DGNSS (src/lunar_dpnt.rs)#

Місячний аналог DGNSS (диференційної супутникової навігації) / SBAS: еталонна станція класу NovaMoon у відомому селенографічному місці обчислює для кожного супутника диференційні поправки від ілюстративного угруповання класу Moonlight / LCNS на основі публічних джерел, а рухомий користувач, зсунутий від неї на базу, застосовує їх, так що спільномодові похибки бортових ефемерид скасовуються. Кожен супутник i несе введений спільний 3-D вектор орбітальної похибки e_i і спільну похибку годинника c_i. Залишок псевдодальності еталонної станції — це поправка −e_i · û_ref,i + c_i; сира похибка користувача — −e_i · û_user,i + c_i; виправлена похибка користувача — їхня різниця −e_i · (û_user,i − û_ref,i). Член годинника c_i скасовується точно (він однаковий в обох спостереженнях), а орбітальний член зводиться до проєкції на різницю двох одиничних векторів лінії візування, яка → 0 при базі → 0 (нижня межа просторової декореляції) і зростає ≈ лінійно з базою. Виправлені похибки дальності кожного супутника відображаються через геометрію користувача невеликим легкозалежним знімковим розв'язанням зваженим методом найменших квадратів (стан [x, y, z, clock] через crate::orbit::invert4; стале зміщення дальності поглинається невідомою годинника, а не спотворює фіксацію), даючи похибку положення користувача. Рівень захисту користувача повторно використовує механізм рівня захисту SBAS за DO-229E (crate::sbas::sbas_protection_level, K-коефіцієнти точного заходу) із залишковою σ диференційної корекції як бюджетом похибки 1-σ кожного супутника.

NovaMoon згадується лише як клас системи (публічний опис місячної еталонної станції); угруповання повторно використовує ілюстративне crate::lunar_service::LunarConstellation на основі публічних джерел. Це ілюстративні параметри для перевірки диференційного методу, не справжня ефемерида, і вони не передбачають жодної належності, схвалення, польотної спадщини, сертифікації чи TRL. Сценарій lunar-differential-pnt повідомляє похибку положення користувача з поправками й без них, коефіцієнт зменшення, криву похибки залежно від бази та рівень захисту. У типовій конфігурації виправлена похибка користувача на базі 50 км становить ≈ 0,008 м проти ≈ 24 м без поправок (зменшення в ~3000 разів) і ≈ 0 при нульовій базі.

Оракулом є внутрішня узгодженість: скасування спільної моди є точною алгебраїчною тотожністю (при noise = 0 виправлена похибка < 1e-6 м при нульовій базі; член годинника скасовується з машинною точністю при будь-якій базі), залишок монотонно зростає з базою, а рівень захисту — це той самий алгоритм DO-229E, проти якого зафіксовано стек SBAS. Залишок просторової декореляції — це першого порядку геометрична модель, а не підігнана модель декореляції за реальним місячним відстеженням.

Можливість Статус Оракул / чесний обсяг
Місячний диференційний PNT modelled src/lunar_dpnt.rs differential_corrections, corrected_user_range_errors, user_position_error_m, lunar_dgnss_protection_level, LunarDpntScenario. Оракул: InternalConsistency — тотожність диференційного скасування похибок плюс повторне використання механізму рівня захисту SBAS за DO-229E (crate::sbas). Тести (lunar_dpnt::tests): при нульовій базі виправлена похибка користувача й кожна виправлена похибка дальності для кожного супутника ~0 (< 1e-6 м) і ≪ невиправленої похибки; член годинника скасовується точно при будь-якій базі (випадок із нульовою орбітальною похибкою); виправлена похибка монотонно зростає з базою, залишаючись ≪ невиправленої на скромних базах; диференційний режим перевершує автономний з чітким запасом (> 2×); рівень захисту дорівнює прямому виклику sbas::sbas_protection_level і масштабується із залишковою σ; недовизначена геометрія повертає None; сценарій детермінований (із зерном) і спрямовується через run_toml. Чесний обсяг: MODELLED — скасування спільної моди є точною тотожністю, але залишок просторової декореляції — це першого порядку геометрична модель, НЕ підігнана модель декореляції за реальним місячним відстеженням, і це НЕ перевірено на реальних даних. NovaMoon згадується лише як клас системи (ілюстративно, на основі публічних джерел, не пов'язано з ESA). Жодного TRL, польотної спадщини чи схвалення агентством не заявляється.

Експорт місячної взаємодії — CCSDS OEM + KIF, узгоджені з LunaNet/IOAG, із круговою перевіркою відповідності (src/lunar_interop.rs)#

Місячна система відліку, місячна шкала часу та місячна ефемерида експортуються у формах обміну на основі CCSDS, узгоджених з LunaNet/IOAG (IOAG: Interagency Operations Advisory Group). Ця фаза не вигадує формату передавання: вона повторно використовує наявний емітер і розбирач CCSDS OEM (Orbit Ephemeris Message) 2,0 крейта (crate::oem::OemFile::to_oem_string / crate::oem::parse_oem) та оболонку Kshana Interchange Format (crate::interchange::Envelope), повторно позначені для місячного контексту. export_lunar_oem задає REF_FRAME OEM як місячну зв'язану із тілом систему IAU 2015 WGCCRE (MOON_ME середня Земля або MOON_PA головні осі), TIME_SYSTEM — як місячну шкалу часу (LTC / TCL / UTC), а CENTER_NAME — як MOON, над зразковою ілюстративною ефемеридою класу LCNS на основі публічних джерел (положення з crate::lunar_service::LunarSat::position_mci, швидкість центральною скінченною різницею). export_lunar_time_metadata видає узгоджений з LunaNet/IOAG дескриптор місячного часу (ідентифікатор шкали, вікова швидкість мкс/добу з crate::lunar_time::lunar_rate_breakdown, опублікована смуга 56–59 мкс/добу, еталонна поверхня), що проходить коло через serde_json. export_kif_lunar загортає OEM + дескриптор + мітку системи відліку в наявну оболонку KIF із позначкою чесності MODELLED.

Оракулом є коло / відповідність полів. Оскільки oem.rs постачає обидва напрямки, OEM проходить коло через crate::oem::parse_oem (назад до рівного сегмента із збереженою місячною системою відліку/часом і кількістю станів) і незалежно перевіряється oem_conformance, яка підтверджує, що кожне обов'язкове ключове слово заголовка CCSDS/LunaNet присутнє, що REF_FRAME несе місячний токен MOON_*, а TIME_SYSTEM не порожній, що обрамлення META_START … META_STOP витримане, а рядки даних положення+швидкості правильно сформовані — повертаючи структурований прохід плюс список наявних/відсутніх полів, так що зламаний експорт (наприклад, пропущене TIME_SYSTEM) виявляється та називається. Метадані часу проходять коло через parse_lunar_time_metadata, а оболонка KIF проходить коло через Envelope::parse до рівних артефактів із позначкою MODELLED.

Можливість Статус Оракул / чесний обсяг
Експорт для місячної взаємодії modelled src/lunar_interop.rs export_lunar_oem, export_lunar_time_metadata, parse_lunar_time_metadata, export_kif_lunar, oem_conformance, LunarInteropScenario. Оракул: InternalConsistency — детерміноване коло (CCSDS OEM через crate::oem::parse_oem; KIF через crate::interchange::Envelope::parse; метадані часу через serde_json) плюс відповідність назв полів опублікованій семантиці полів CCSDS OEM + LunaNet/IOAG. Тести (lunar_interop::tests): експортований OEM несе місячні токени REF_FRAME (MOON_ME/MOON_PA) і TIME_SYSTEM (LTC/TCL), CENTER_NAME = MOON, об'єкт і правильно сформовані рядки даних; метадані місячного часу проходять коло (швидкість/смуга/еталон) і відхиляють сміття; оболонка KIF серіалізується та десеріалізується до рівного значення з наявною позначкою чесності MODELLED; навмисно зламаний OEM (без TIME_SYSTEM) не проходить oem_conformance і повідомляється як відсутній; сценарій спрямовується через run_toml. Чесний обсяг: назви/одиниці полів узгоджено з публічними стандартами (CCSDS 502.0-B OEM, місячні системи відліку IAU WGCCRE 2015, специфікація взаємодії LunaNet / місячна архітектура IOAG); експорт є MODELLED — оракулом є детерміноване коло + відповідність назв полів, це НЕ сертифікований тест відповідності взаємодії, ефемерида ілюстративна, на основі публічних джерел, не пов'язана з ESA, а TRL, польотної спадщини чи схвалення агентством не заявляється.

Попередньо зареєстровані прогнози#

Попередньо зареєстрований прогноз — це результат MODELLED, зафіксований до появи будь-яких даних для його оцінювання, із протоколом оцінювання, зафіксованим одночасно. Це не перевірка незалежним еталоном і не додає рядка до реєстру. Кожен міститься в docs/predictions/ зі своїми зафіксованими вхідними даними, результатом та їхніми хешами SHA-256, а tests/prediction_frozen.rs завершується помилкою, якщо будь-який зафіксований байт зміниться; зміну припущення відображає новий датований прогноз поруч зі старим, ніколи не редагування старого.

Прогноз Зафіксовано Оцінюється за Статус
Покриття місячної еталонної станції c05dac1d, 2026-10-12 опублікована точність, доступність, покриття та рівні захисту південнополярної місячної диференційної станції, будь-якою стороною ще не оцінено (немає опублікованих результатів)

Репрезентативність демонстрації та реєстр розривів до польоту (src/representativeness.rs)#

Результат симуляції корисний як доказ лише тоді, коли прямо вказує, до чого він прив'язаний, що припускає і що ще відділяє його від польотної системи. Реєстр репрезентативності робить це першокласним, машинно перевіреним виходом: запис Representativeness містить зовнішні Anchor демонстрації, її модельні припущення, її Gap до польоту (кожен із фазою/діяльністю, яка його закриє) і смугу TRL, для якої він репрезентативний. Це супутник кожного результату до матриці verification на рівні можливостей.

Оракул — це набір замкнених інваріантів, що забезпечуються representativeness::tests: запис Validated має містити щонайменше одну зовнішню прив'язку ExternalDataset (симуляцію не можна перевірити проти самої себе); запис Modelled має містити щонайменше один розрив до польоту й не може заявляти репрезентативну смугу TRL вище 4 (дозрівання понад це потребує доказів від апаратури/польоту, що є розривом, а не результатом симуляції); смуга TRL має бути правильно сформованою; а запис PartnerOwned не повинен нічого стверджувати. Ці інваріанти операціоналізують дисципліну «репрезентативність обґрунтована + решта розривів до польоту чітко визначена».

Можливість Статус Оракул / чесний обсяг
Реєстр репрезентативності та розривів до польоту modelled src/representativeness.rs Representativeness/Anchor/Gap, check/is_valid/report/to_json. Оракул: InternalConsistency — замкнені інваріанти чесності, пов'язані з межею статусу/виду оракула в verification. Тести (representativeness::tests): запис зі статусом «перевірено незалежним еталоном» без зовнішньої прив'язки не проходить; внутрішня (ReferenceImpl) прив'язка не задовольняє цей статус; запис зі статусом «обчислено за моделлю» без розриву не проходить; запис зі статусом «обчислено за моделлю» вище TRL 4 не проходить; неправильно сформовані смуги TRL виявляються; запис серіалізується в JSON з очікуваними полями й відтворює читабельний звіт. Чесний обсяг: реєстр перевіряє класифікацію доказів результату — він не доводить, що названі прив'язки відповідають живим тестам (вони курируються, точно як матриця verification); твердження про «машинну перевірку» обмежене інваріантами статусу/прив'язки/розриву/TRL.

Єдині докази компромісу квантового й класичного (src/qtrade.rs)#

Кожна прикладна область квантового PNT відповідає на те саме запитання однаково: зафіксувати одну рамку порівняння (сценарій + зерно + версія рушія), провести квантового кандидата та класичний базовий рівень одним нейтральним кодовим шляхом, оцінити їх за спільними показниками якості та повідомити — з довірчим інтервалом і чесною позначкою «перевірено незалежним еталоном/обчислено за моделлю» — де квантове виграє, а де ні. TradeEvidence надає цій відповіді єдину форму, тож вертикалі синхронізації часу, навігації та виявлення аномалій видають той самий відтворюваний, чесно позначений об'єкт. Він не реалізує жодного компромісу заново: числа за кожним показником якості походять з наявних рушіїв (quantum_trade, crossover і вертикальних модулів); це контракт плюс обгортка відтворюваності/репрезентативності, побудована на реєстрі репрезентативності та мітках верифікації.

Оракул — це замкнені тотожності вигоди/переможця плюс вірна обгортка наявного виходу компромісу. qtrade::tests: коефіцієнт вигоди має правильну полярність (зорієнтований так, що >1 завжди означає, що квантовий бік кращий, як для показників «більше — краще», як-от holdover, так і для «менше — краще», як-от похибка); об'єкт доказів, побудований із реального quantum_trade::TradeResult, відтворює його коефіцієнти вигоди; нечесні докази відхиляються (репрезентативність зі статусом «обчислено за моделлю» без розриву або показник якості зі статусом Validated, чий запис компромісу не несе зовнішньої прив'язки); JSON детермінований і несе поля рамки/зерна/рушія/показника якості/репрезентативності.

Можливість Статус Оракул / чесний обсяг
Докази компромісу квантового й класичного modelled src/qtrade.rs TradeEvidence/TradeFom/TradeFrame/Winner. Оракул: InternalConsistency — замкнені тотожності вигоди/переможця + вірна обгортка quantum_trade::TradeResult; чесність пов'язана з реєстром репрезентативності та межею статусу верифікації/виду оракула. Тести (qtrade::tests) як вище. Чесний обсяг: набір стандартизує, як компроміс повідомляється й відтворюється; фізика кожного показника якості — така, яку надає внесений рушій, з його власною позначкою «перевірено незалежним еталоном/обчислено за моделлю» — TradeEvidence не підвищує показник, обчислений за моделлю, до перевіреного незалежним еталоном.

Бібліотека моделей похибок квантових пристроїв (src/quantum_devices.rs)#

Єдине місце, що відкриває квантові пристрої PNT, якими торгує демонстратор — оптичні / на захоплених іонах / ртутно-іонні годинники, класичні еталонні годинники, холодноатомний інтерферометр і лінії передавання часу — кожен як DeviceCard, що несе свою головну специфікацію та запис репрезентативності. Більшість фізики пристроїв повторно використовується (стабільності годинників з holdover::QuantumClockClass і clock_state::ClockClass; холодноатомний інтерферометр з quantum_trade/crossover; класичні оптичні/РЧ лінії з timetransfer_adv). Єдина справді нова модель — лінія передавання часу на заплутаних / одиничних фотонах, точність синхронізації якої обмежена дробовим шумом: σ_t ≈ jitter/√(R·τ) за виявленої швидкості збігів R та інтегрування τ, погіршена штрафом за темнові відліки √(1 + dark/R) і обмежена знизу незнищенною систематичною складовою.

Оракул — це повторно використані опубліковані коефіцієнти годинників/CAI плюс замкнені тотожності дробового шуму/втрат. quantum_devices::tests: повторно використаний порядок стабільності годинників розумний (оптична ґратка < ртутний іон < CSAC за σ_y(1 с)); точність заплутаності покращується як 1/√τ (4× інтегрування зменшує σ удвічі) за обмеження дробовим шумом; виявлена швидкість збігів падає в 10 разів на кожні 10 дБ втрат лінії; темнові відліки монотонно погіршують точність; систематична нижня межа обмежує точність знизу; кожна картка пристрою є дійсним записом репрезентативності зі статусом «обчислено за моделлю».

Можливість Статус Оракул / чесний обсяг
Бібліотека моделей похибок квантових пристроїв modelled src/quantum_devices.rs DeviceCard, quantum_clock_card/classical_clock_card, EntanglementTimeLink. Оракул: InternalConsistency — повторно використані опубліковані коефіцієнти годинників/CAI + замкнені тотожності дробового шуму/втрат для лінії заплутаності. Тести (quantum_devices::tests) як вище. Чесний обсяг: параметри пристроїв годинників/CAI повторно використовуються з наявних моделей рушія на основі опублікованих коефіцієнтів; модель лінії заплутаності є MODELLED за опублікованою поведінкою квантової синхронізації годинників з ілюстративними значеннями швидкості пар/ефективності/втрат на основі публічних джерел — вона не перевірена за виміряною лінією, а реальна апаратура джерела/каналу/детектора є заявленим розривом до польоту.

Довірений квантовий час — наскрізний ланцюг, захищене поширення, аномалії + компроміс (src/timetransfer_chain.rs)#

Сценарій quantum-time-transfer складає ланцюг синхронізації часу, потрібний квантовому демонстратору PNT: наскрізний бюджет часу користувача (похибка вибігу еталонного годинника та точність синхронізації лінії, об'єднані у квадратурі) для квантового ланцюга (оптичний ґратковий годинник + лінія на заплутаності/одиничних фотонах) проти класичного ланцюга (CSAC + РЧ двостороння лінія); рівень захисту часу (TPL, повторно використаний з tpl), що обмежує невиявлену похибку часу; показник якості безпеки щодо атак із затримкою/повтором 1 − P_md за заданої частоти хибних тривог (повторно використаний з detection); імовірність виявлення аномалії годинника + затримка виявлення зміни за CUSUM (кумулятивна сума); і порівняння квантового з класичним як чесні qtrade::TradeEvidence, що несуть запис репрезентативності + розривів до польоту.

Оракул — це замкнений квадратурний бюджет над повторно використаними, окремо перевіреними ядрами (ADEV проти Stable32/NIST; межа TPL; detection::analytic_pd/analytic_pmd). timetransfer_chain::tests: квантова точність покращується з часом інтегрування; квантовий ланцюг може виграти і може програти за показником точності (чесно — не універсальна перемога; дуже втратна лінія перевертає результат); рівень захисту скінченний додатний; показник безпеки лежить у [0 1] і зростає із затримкою атаки; імовірність виявлення аномалії монотонна за величиною несправності; а докази компромісу внутрішньо чесні (is_honest()).

Можливість Статус Оракул / чесний обсяг
Довірений квантовий час (ланцюг + захищене поширення + аномалії + компроміс) modelled src/timetransfer_chain.rs QuantumTimeTransferScenario/Report, to_svg; kind="quantum-time-transfer". Оракул: InternalConsistency — замкнений квадратурний бюджет над повторно використаними перевіреними ядрами (ADEV/Stable32-NIST, межа TPL, аналітичні Pd/Pmd виявлення); чесність пов'язана з реєстром репрезентативності. Тести (timetransfer_chain::tests) як вище. Чесний обсяг: параметри годинників/ліній ілюстративні, на основі публічних джерел; лінія заплутаності — це модель MODELLED з обмеженням дробовим шумом з quantum_devices; це моделює клас систем довіреного часу — вона не перевірена за виміряною наскрізною лінією, а реальна апаратура годинника/лінії/космічного каналу є заявленим розривом до польоту; TRL, польотної спадщини чи сертифікації не заявляється.

Квантова навігація без GNSS (src/quantum_nav_od.rs)#

Сценарій quantum-gnss-free-nav порівнює навігацію за лічбою шляху під час перерви GNSS із квантовим інерційним бюджетом (акселерометр на холодноатомному інтерферометрі, повторно використаний з inertial::quantum_imu/quantum_trade, рівень білого шуму CAI якого перевірено в межах ~2 порядків величини щодо Freier et al. 2016) проти класичного INS навігаційного класу. Він повідомляє зростання похибки положення під час вибігу, час holdover до порога положення та порівняння квантового з класичним як чесні qtrade::TradeEvidence. Спостережуваність викладено чесно: без зовнішньої фіксації під час перерви зміщення акселерометра неспостережуване, тож похибка положення зростає без межі (≈ ½·зміщення·t² плюс член випадкового блукання швидкості); квантовий сенсор з меншим зміщенням уповільнює це зростання, але не закриває розрив — це робить лише зовнішня фіксація.

Оракул — це повторно використані інерційні бюджети (QuantumNavBudget/ClassicalInsBudget, обидва реалізують трейт PositionDrift) плюс замкнені тотожності дрейфу. quantum_nav_od::tests: квантовий бюджет перевершує класичний під час довгої перерви (менша похибка, довший holdover); похибка зростає з тривалістю перерви в обох (розрив спостережуваності); перевага залежить від перерви, а не є сталим коефіцієнтом виграшу (квантова крива домінується шумом на короткому вибігу, зміщенням — на довгому); докази компромісу внутрішньо чесні.

Можливість Статус Оракул / чесний обсяг
Квантова навігація без GNSS modelled src/quantum_nav_od.rs QuantumNavOdScenario/Report, to_svg; kind="quantum-gnss-free-nav". Оракул: InternalConsistency — повторно використані інерційні бюджети (CAI, перевірений повторним використанням на ~2 порядки щодо Freier 2016; класичний замкнений дрейф); чесність пов'язана з реєстром репрезентативності. Тести (quantum_nav_od::tests) як вище. Чесний обсяг: порівняння статичних бюджетів лічби шляху, а не динамічний фільтр на реальних траєкторіях; неспостережуваність зміщення без фіксації зазначено; параметри пристроїв ілюстративні, на основі публічних джерел; моделює клас квантової навігації без GNSS — реальна апаратура холодноатомної IMU, динамічна платформа та польотне середовище є заявленими розривами до польоту; TRL/польотів/сертифікації не заявляється.

Виявлення несправностей / аномалій для квантових систем PNT (src/quantum_faults.rs)#

Сценарій quantum-anomaly-detect задає позначений каталог несправностей квантового PNT (стрибок частоти годинника, дрейф, втрата захоплення; крок зміщення сенсора, випадання), оцінює статистику виявлення на номінальних і несправних вікнах та повідомляє розрізнювальність детектора як ROC AUC і мінімальну виявну несправність за фіксованої частоти хибних тривог. Квантово-класичний аспект: стабільніший квантовий еталон годинника знижує шум монітора σ, тож виявляє менші несправності — видається як чесні qtrade::TradeEvidence із записом репрезентативності.

Оракул — це замкнений AUC для гауссової статистики виявлення (номінальна N(0,σ), несправність N(μ,σ) ⇒ AUC = Φ(μ/(σ√2))), перехресно перевірений за зовнішньо перевіреним eval_stats::bootstrap_auc_ci (перевірено за scikit-learn) та аналітичними порогами detection. quantum_faults::tests: аналітичний AUC збігається з відомими значеннями (0,5 при μ=0, →1 за великого μ/σ, монотонно); емпіричний довірчий інтервал bootstrap-AUC охоплює замкнену форму; квантовий монітор має вищий AUC і меншу мінімальну виявну несправність; перевага зникає для величезних несправностей (обидва виявляють ідеально — не універсальний запас); каталог має п'ять позначених класів; компроміс внутрішньо чесний.

Можливість Статус Оракул / чесний обсяг
Виявлення несправностей/аномалій для квантового PNT modelled src/quantum_faults.rs FaultKind, QuantumAnomalyScenario/Report, analytic_auc, min_detectable_fault; kind="quantum-anomaly-detect". Оракул: InternalConsistency — аналітична гауссова AUC у замкненій формі перехресно перевірена за зовнішньо перевіреною (незалежно, порівнянням зі scikit-learn) бутстреп-AUC з eval_stats та за аналітичними порогами detection. Тести (quantum_faults::tests) наведено вище. Чесні межі застосування: статистика виявлення є гауссовою моделлю, а не реальною телеметрією; каталог несправностей є розміченим синтетичним; рівні шуму квантового та класичного моніторів є ілюстративними, з відкритих джерел; модель описує клас виявлення аномалій у квантовому PNT — реальна апаратна телеметрія з еталонними мітками є заявленою прогалиною на шляху до льотного застосування; жодних тверджень про TRL, льотну придатність чи сертифікацію не робиться.

Ці стандарти перевірено шляхом відтворення дослівних робочих прикладів і довідкових значень, опублікованих у самих стандартах (або в незалежній еталонній реалізації), а не власним циклічним відтворенням Kshana. Відтворення власного прикладу з додатка стандарту є найсильнішою доступною перевіркою відповідності для розбірника формату обміну.

Стандарт Статус Зовнішній оракул
CCSDS OEM (502.0-B, повідомлення з даними про орбіту) validated tests/ccsds_reference.rs: parse_oem відтворює точні епохи та вектори стану X/Y/Z/Ẋ/Ẏ/Ż з прикладу OEM у форматі KVN із CCSDS 502.0-B-3, додаток G §G6, рисунок G-11 («OEM Example with No Acceleration, No Covariance», с. G-10) — обидва сегменти ефемерид, включно з вихідними значеннями з провідними нулями (-063.042). Фікстуру tests/fixtures/ccsds/oem_502_b3_figG11.oem відтворено символ у символ з офіційної Blue Book (редакційні маркери «< intervening data records omitted here >», які не є чинними записами OEM, не включено).
CCSDS TDM (503.0-B, повідомлення з даними відстеження) validated tests/ccsds_reference.rs: TdmFile::parse відтворює всі 41 записів RANGE (перший — 3198,03679519614 км, останній — 3270,46440460551 км) і метадані з прикладу TDM у форматі KVN із CCSDS 503.0-B-2, додаток E, рисунок E-9 («Range Data with TIMETAG_REF=TRANSMIT», с. E-9). Фікстура tests/fixtures/ccsds/tdm_503_b2_figE9.tdm є дослівною з Blue Book. (Це оракул на основі опублікованої Blue Book поряд з наявним раніше вручну написаним циклічним відтворенням reference.tdm у src/ccsds_tdm.rs.)
CCSDS 133,0 (протокол космічних пакетів) validated src/space_packet.rs primary_header_matches_published_independent_test_vectors: кодувальник відтворює побайтові тестові вектори первинного заголовка незалежної бібліотеки spacepackets (us-irs/spacepackets-py, tests/ccsds/test_space_packet.py) — наприклад 18 02 40 34 00 16 та значення з усіма максимальними полями 1F FF FF FF FF FF — а також канонічний випадок телеметрії (TM) з усіма одиницями, кожен із яких проходить цикл через декодування. Ширини та порядок бітових полів — згідно з CCSDS 133.0-B-2 §4.1.3.
CCSDS 401 / DSN (бюджет лінії, DSN 810-005) validated src/linkbudget.rs link_equation_reproduces_descanso_galileo_dct: ланцюжок FSPL (втрати у вільному просторі) і C/N₀ відтворює опублікована проєктно-контрольну таблицю телеметрії далекого космосу з J. H. Yuen (ed.), Deep Space Telecommunications Systems Engineering (DESCANSO/JPL (DESCANSO: Deep Space Communications and Navigation Systems Center of Excellence) Pub. 82-76), таблиця 1-1 — низхідну лінію Galileo в X-діапазоні (8420,43 МГц) на відстані 6,37 а. о.: втрати у вільному просторі 290,54 дБ (<0,05 дБ) і прийняте Pr/N₀ = 54,6 dB-Hz (<0,2 дБ). Центри діапазонів лежать у межах виділень для низхідних ліній далекого космосу DSN/CCSDS-401 (DSN 810-005, модуль 201). Типові параметри місії залишаються репрезентативними (не відкалібрований транспондер); закріплює це саме рівняння лінії.

Стандарти GNSS — стан зовнішніх оракулів і чесні прогалини, що залишаються:

Стандарт Стан і чесне застереження
RAIM / ARAIM Ядро, геометрію та рівень захисту ARAIM перевірено за зовнішнім еталоном. Ядро виявлення — поріг виявлення несправності за χ², нецентральність пропущеного виявлення за нецентральним χ² та K-множники нормального закону — відтворює SciPy (tests/raim_reference.rs, 171 випадків, ≤ 1e-6 відн.), а обгортальна геометрія відтворює gnss_lib_py (DOP). Значення рівня захисту (PL) ARAIM тепер також закріплено: за числовим прикладом «LPV-200» (LPV: локалізатор із вертикальним наведенням) з еталонного ADD (документа з описом алгоритму) WG-C (WG: робоча група) ARAIM v3.1, src/araim_reference.rs / tests/araim_reference_vectors.rs дають VPL 18,2926 м проти 18,3 м, HPL 13,4063 м проти 13,45 м та σ_v,acc 1,3694 м проти 1,3694 м, у межах власного допуску еталона TOL_PL = 0,05 м (вид araim-reference-check). Обсяг: режими несправностей до одного супутника або одного орбітального угруповання (N_fault,max = 1); підмножини несправностей із кількома подіями та виключення не реалізовано, а для класичного RAIM досі немає канонічного опублікованого тестового вектора «вхід→HPL». Див. ARAIM_REFERENCE.md.
SBAS / DO-229E Алгоритм рівня захисту тепер перевірено за зовнішнім еталоном. За заданих (el, az, σ) для кожного супутника sbas_protection_level у kshana відтворює форк RTKLIB SBAS-PL (zsiki/rtklib_ws waasprotlevels(), Siki & Takács 2017, «DO-229D Appendix J») — коли на вхід подано власні σ цього інструмента, обчислені за реальними широкомовними повідомленнями EGNOS і реальним RINEX від BUTE — із точністю до < 2e-3 м HPL на 6 епохах (tests/sbas_reference.rs); ESA gLAB v6.0.0 (core/filter.c) підтвердив ідентичну конвенцію. K-коефіцієнти (K_H,PA=6.0, K_V=5.33, K_H,NPA≈6.18) збігаються з DO-229E Appendix J. Що перевірено, а що ні: це закріплює алгоритм PL (σ на вході → HPL/VPL на виході); вищестоящий моделювання σ із сирих повідомлень UDRE/GIVE лежить поза межами kshana — саме там незалежні інструменти повного конвеєра на реальних даних досі розходяться на метри. K_V збіг із заокругленим значенням оракула 5,33 (точне значення kshana Φ⁻¹(1−5e-8)=5.3267 → VPL приблизно на 0,06 % менший; вертикаль перевірено без K-коефіцієнта як d_U).
IONEX / Klobuchar Широкомовну модель перевірено за зовнішнім еталоном. Модель Клобухара на L1 відтворює ionmodel з RTKLIB (tests/klobuchar_reference.rs, < 1e-4 м) — це паритет реалізацій із фактичним відкритим еталоном, оскільки офіційного робочого прикладу з виміряною істиною не існує. Зчитувач карт TEC IONEX тепер існує (src/ionex.rs, має модульні тести); прогалина, що залишається, — це перехресна перевірка його за реальним продуктом GIM, а не широкомовна модель. Див. рядки про Клобухара в Твердження проти реальності.
Розширювальний код GPS L1 C/A (IS-GPS-200) Генерацію коду перевірено за зовнішнім еталоном. src/sdr.rs (ca_first_ten_chips_match_is_gps_200_octal): генератор коду C/A на G1/G2 LFSR (регістр зсуву з лінійним зворотним зв'язком) точно відтворює опубліковані призначення фаз коду з IS-GPS-200, таблиця 3-Ia — вісімкові значення перших десяти чипів для PRN (псевдовипадковий шум) 1–9 ({1440, 1620, 1710, 1744, 1133, 1455, 1131, 1454, 1626}). Це закріплює послідовність чипів розширювального коду за інтерфейсною специфікацією GPS; навколишні частини — модуляція, спектральне розділення та відстеження коду за DLL (контур стеження із затримкою) (navsignal) — залишаються MODELLED.

Синхронізація часу для мереж, спектра, Сонячної системи, орбітальних угруповань, кампаній і LEO-PNT#

Можливості, додані в лінійці 0,28, оцінюються рядок за рядком у згенерованій VERIFICATION-MATRIX.md; цей розділ підсумовує, які з них мають зовнішній оракул. Рядок є VALIDATED лише за наявності незалежного зовнішнього оракула; усе інше є MODELLED.

Можливість (вид) Статус Зовнішній оракул або причина, чому залишається змодельованим
MTIE (максимальна похибка часового інтервалу) і TDEV (девіація часу) телекомунікаційної синхронізації на ряді holdover (telecom-timing) validated tests/telecom_timing_reference.rs: 17 коефіцієнтів усереднення MTIE і 12 TDEV на закоміченому ряді holdover годинника чипового масштабу з 2 048 відліків проти allantools 2024,06 з точністю < 1e-12 / < 1e-9 відносно. Вердикти PASS/FAIL щодо масок ITU-T (Сектор стандартизації електрозв'язку Міжнародного союзу електрозв'язку) та пресети генераторів із технічних специфікацій залишаються MODELLED. Див. TELECOM-TIMING.md.
Прогноз holdover за виміряним записом годинника (slot-timing) validated tests/slot_timing_cs5071a_holdout.rs: підгонка за першою третиною реального запису цезієвого годинника 5071A, прогноз часу виходу за межу одного сигма для шести порогів, вимірювання на відкладених двох третинах; поріг — коефіцієнт 1,5 в обидва боки, спостережувані відношення від 0,84 до 1,03. Бюджет захисного інтервалу слоту та каденція виправлень, побудовані на цьому, залишаються MODELLED.
Спектральні густини потужності діапазону L у замкненій формі та спектральне розділення (spectrum) validated navsignal — замкнені форми проти опублікованих значень (рядок матриці «Closed-form L-band signal power spectral densities…»). Водоспадна діаграма з J/S (відношення джамер/сигнал) для кожного діапазону та ефективним C/N0 (відношення несівна/густина шуму), а також введення/виведення SigMF (Signal Metadata Format) залишаються MODELLED.
Положення планет за елементами Стандіша від JPL (Лабораторія реактивного руху) і світловий час між тілами (solar-system) validated 0,30, попередньо зареєстровано проти JPL Horizons (DE441): tests/solar_system_standish_preregistered.rs і tests/solar_system_standish_earth_icrf_preregistered.rs, середньоквадратична похибка (RMS) для кожної планети та складової не перевищує значення з таблиці 8.10.1 Explanatory Supplement (найгірше 0,778), включно з розділенням Землі та обертанням ICRF; tests/solar_system_light_time_solver_preregistered.rs, розв'язувач світлового часу на положеннях DE441 у межах 1e-6 с від світлового часу Horizons (найгірше 6.7e-9 с). Раніше проведене порівняння з удвічі більшим номіналом (tests/solar_system_horizons_reference.rs), поріг якого встановлено після першого порівняння, збережено як негейтову регресію. Уран і Нептун із таблиці 1, Плутон, супутники, константи тіл і body-pnt залишаються MODELLED.
Геометрія Волкера та опубліковані слоти GPS, Galileo і GLONASS (глобальна навігаційна супутникова система); глобальний геометричний чинник DOP для GPS (constellation-design) validated constellation::tests: Walker 24/3/1 відтворює таблицю визначення відкритого сервісу Galileo з точністю 1e-9°, формулу слотів з інтерфейсного контрольного документа GLONASS, екваторіальні перетини GPS; медіана базового HDOP для GPS 0,940 проти 0,94 зі стандарту характеристик стандартної служби позиціонування. Довільні карти покриття для кількох орбітальних угруповань навколо будь-якого тіла залишаються MODELLED.
Кампанії: послідовні місії, переборювання параметрів, ансамблі Монте-Карло, прогони зі спільними умовами (campaign) modelled tests/campaign_composition_reference.rs (11 тестів): однофазна кампанія байт у байт відтворює окремий прогін, перебір з одним вузлом дає те саме число, ансамбль із заданим зерном є байтово стабільним. Це тотожності композиції, а не зовнішній оракул.
Фізика ліній LEO (низька навколоземна орбіта): коефіцієнти дощу ITU-R (Сектор радіозв'язку МСЕ) P.838, затухання в дощі та сцинтиляція P.618, втрати на проникнення в будівлі P.2109, іоносфера першого порядку, максимальний Доплер validated tests/leo_link_reference.rs, tests/leo_doppler_reference.rs: власні таблиці Рекомендацій ITU-R і приклади перевірки Study Group 3 (закомічені з джерелом і датою отримання), відношення групової затримки з IS-GPS-200 для іоносфери та опублікована таблиця максимального Доплера Leclere, Marathe і Reid (ION GNSS+ 2025, arXiv 2509,19551).
Навігаційне повідомлення LEO: користувацький алгоритм широкомовних ефемерид з ICD (інтерфейсного контрольного документа) Galileo, CRC-24Q (24-бітна циклічна перевірка надлишковості), глобально усереднені ваги SISRE (похибка дальності в сигналі в просторі) (leo-navmsg) validated tests/leo_navmsg_reference.rs: користувацький алгоритм Galileo відтворює RTKLIB (відкриту бібліотеку кінематичного позиціонування в реальному часі) з точністю 1 мм на чотирьох реальних широкомовних ефемеридах Galileo; CRC-24Q дає каталожне контрольне значення 0xCDE703 і контрольні байти прикладу кадру RTCM (Радіотехнічна комісія з морських служб) 1005; ваги SISRE відтворюють опубліковану таблицю MEO/GEO. Підганяч, оновлення посеред проходу, двійкове кодування, текст у стилі RINEX-4/CSV (значення, розділені комами) і вибирані моделі ефемерид залишаються MODELLED.
Проєктування сигналу LEO, прохід і бюджет лінії, Доплер і спільне позиціонування GNSS+LEO, збіжність PPP (прецизійне точкове позиціонування), позиціонування 5G NTN (нетерестріальні мережі), передавання часу через LEO (leo-signal, leo-pass, leo-pvt, leo-ppp, ntn-positioning) modelled tests/leo_signal_reference.rs, tests/leo_fusion_scenarios.rs: замкнені форми, узгодженість фільтра (наприклад, усереднений за прогонами NEES фільтра PPP усередині його 95-відсоткової смуги) і порівняння з опублікованими тенденціями; польових даних немає.
Одна система LEO-PNT від початку до кінця (leo-pnt-chain) modelled tests/leo_pnt_chain.rs: кожне передане далі значення дорівнює власному виходу попереднього етапу, а зміна вхідних даних попереднього етапу зсуває кожен наступний показник, що від нього залежить.
Стійкість LEO та вертикалі (спуфінг за Доплером і за міждіапазонною узгодженістю, зондування іоносфери) modelled tests/leo_resilience_verticals.rs (10 тестів). Сценарії стійкості та вертикалей перелічено в RESILIENCE-CROSSWALK.md.

Виходи, що є поданням, а не доказами, мають тести, але не мають рядка матриці: експорти для обміну (CZML (Cesium Language), KML (Keyhole Markup Language), GeoJSON, ефемериди STK (Systems Tool Kit), SigMF (Signal Metadata Format)), кожен із яких розібрано назад валідатором, написаним за специфікацією формату (tests/interop_formats.rs, 13 тестів; див. INTEROP.md); анімації (tests/animation.rs: байт-у-байт однакові повторні прогони, точна кількість кадрів, коректний SVG (масштабована векторна графіка), жодної зовнішньої адреси в HTML (мова розмітки гіпертексту) -програвачі); і звіт прогону (tests/advanced_report.rs, tests/advanced_report_cli.rs: кожен вбудований сценарій звітує без порожніх розділів чи значень-заповнювачів, мітки збігаються з матрицею, а записана команда відтворює result.json і звіт байт у байт).

Робоча область застосування#

Кожен пакет перевіряється в межах заявленої області вхідних даних за допомогою tests/scenario_coverage.rs, який стверджує, що кожен числовий вихід скінченний (без NaN/Inf (NaN: не число)) і обмежений. У таблиці наведено перевірений діапазон вхідних даних для кожного пакета, очікувану поведінку виходу та тест, що це покриває.

Пакет Параметр, що перебирається Перевірений діапазон Очікуваний вихід Тест, що покриває
clock threshold_ns (специфікація синхронізації) 1 – 500 ns скінченні показники якості holdover/синхронізації/безпеки clock_pack_covers_the_spec_threshold_envelope
inertial accel.bias 1e-7 – 1e-2 m/s² (від холодних атомів до грубого MEMS (мікроелектромеханічні системи)) скінченні, обмежені RMS/p95 положення inertial_pack_covers_the_accel_bias_envelope
orbit mask_deg (маска висоти) 5° – 30° скінченні DOP/доступність; обмежені orbit_pack_covers_the_elevation_mask_envelope
spoof attack.rate_ns_per_s 0,1 – 50 ns/s скінченні P_md / безпека, обмежені spoof_pack_covers_the_attack_rate_envelope
hybrid position_spec_m 10 – 1000 m скінченний holdover часу/положення hybrid_pack_covers_the_position_spec_envelope
орбіта (реальна) реальні TLE Celestrak gps-ops знімок із 30 супутників, сувора перевірка контрольних сум завантажується лише з чинними контрольними сумами; обмежена геометрія real_gps_constellation_scenario_loads_with_valid_checksums_and_bounded_output
годинник (фліккер) flicker_floor увімк./вимк. 0 проти 1e-12 увімкнення порога 1/f погіршує інерційний хід за p95 синхронізації flicker_fm_floor_degrades_the_clock_holdover_when_enabled
ф'южн (реалістичність) accel.bias 0 проти 5.88e-7 m/s² нуль проти реалістичного ненульового фільтр усе ще збігається, у межах 3× похибки за нульового зміщення fusion_filter_converges_with_a_realistic_non_zero_bias

Рядки flicker-FM і зміщення ф'южну закривають дві конкретні прогалини реалістичності: шумові складові типово вимкнені, але помітно впливають на вихід, коли ввімкнені, а спільний фільтр ф'южну не залежить від того, що зміщення обнулено — він збігається і з реалістичним залишковим зміщенням рівня холодних атомів.

Відомі обмеження#

  • Квантові та класичні прогони тепер використовують незалежні зерна RNG (генератор випадкових чисел) (класичне зерно = зерно + 0x9e3779b97f4a7c15), тож їхні реалізації шуму некорельовані — виправлено після перегляду.
  • holdover_s враховує сегменти: часові лінії відмов розбито на неперервні сегменти при повторному захопленні GNSS, а наведене значення — найгірший (найкоротший) інерційний хід серед них. Воно обмежене роздільною здатністю часової сітки (нижня межа).
  • Повторна синхронізація передавання часу між супутниками (ISL) моделює залишкову невизначеність лінії як свіжий гауссів джитер із нульовим середнім на кожному кроці вимірювання плюс повторне прив'язування через задані інтервали.

Твердження проти реальності — короткий довідник#

Контрольний список вороже налаштованого рецензента. Для кожного терміна, який можна прочитати як більше, ніж він є: що Kshana робить сьогодні і де на дорожній карті стоїть справжня версія.

Термін, який ви можете побачити Що це насправді сьогодні Чим це не є (поки що)
«гібридний квантово-класичний симулятор PNT» класичний стохастичний симулятор, кероване опублікованими коефіцієнтами Аллана/шуму квантових сенсорів квантова фізика з перших принципів (фаза Маха–Цандера, шум проєкції, систематичні похибки) — див. QUANTUM-MODELS.md
«спільне злиття Калмана» / пакет злиття запусковий пакет fusion спостерігає годинник і положення окремо (пряме визначення часу та пряме визначення положення), для чого оптимальний оцінювач справді блочно-діагональний — два двостанові фільтри зі спільним показником якості зв'язаний фільтр для випадку псевдодальності тепер існує як fusion::coupled::CoupledPntFilter (4-станова стекова [pos,vel,phase,freq], ненульова міжблокова коваріація, перевірений за NEES), але ще не підключений до запускового пакета, а пакет є 1-DOF (один ступінь свободи) — 3-D 8-станове розширення належить до майбутньої роботи
Показник якості безпеки (вид spoof) 1 − P_md для стохастичного детектора спуфінгу часу: двосторонній тест χ²₁ / Неймана–Пірсона на статистиці монітора з урахуванням годинника, поріг задано за цільовим P_fa, P_md оцінено за заданою величиною як у замкненій формі, так і методом Монте-Карло (результати збігаються з точністю до кількох ×1/√N) багатосупутниковий детектор RAIM/ARAIM — див. INTEGRITY.md; статистика монітора є гауссовою моделлю з σ годинника, виведеною з PSD, а не кореляцією на рівні сигналу
«виявлення спуфінгу за допомогою годинника» монітор розбіжності часу на одному годиннику (гауссова статистика, σ із PSD годинника), НЕ багатосупутниковий RAIM за SV (SV: космічний апарат, тобто супутник) RAIM у просторі дальностей для багатьох SV з рівнями захисту
P_md детектора спуфінгу (замкнена форма проти Монте-Карло) аналітичне P_md на основі Φ та емпірична оцінка за mc_runs випробуваннями збігаються в межах похибки вибірки (≈ 1/√N); перевірено в тестах src/spoof.rs / src/detection.rs за напруженого відхилення (μ/σ = 2) виміряна ROC детектора за записаними даними спуфінгу
модель псевдодальності gnss-sim пряме моделювання: ρ = geometric + clocks + Klobuchar iono + Saastamoinen·Niell tropo + noise + multipath. Кожну модель атмосфери перевірено модульними тестами за ручними значеннями (ZHD (зенітна гідростатична затримка) ≈ 2,3 м, Niell = 1 у зеніті, косинус нахилу Клобухара), а повну широкомовну модель Клобухара перехресно перевірено за еталонною реалізацією ionmodel() з RTKLIB з точністю до часток міліметра (klobuchar_agrees_with_rtklib_reference_implementation, 6,1278 м для випадку RTKLIB із типовими коефіцієнтами — офіційного опублікованого тестового вектора Клобухара не існує, тож це паритет реалізацій, а не виміряна істина); прогін без шуму відтворює геометрію та поправки з точністю до часток міліметра (залишок RAIM ≈ 0) розв'язок положення за реальними сигналами (PPP/RTK (PPP: прецизійне точкове позиціонування)), двочастотна комбінація без іоносфери або розв'язання неоднозначностей фази несівної — не змодельовано
модель глушіння (вид jamming) ланцюжок бюджету лінії: J/S із втрат у вільному просторі та коефіцієнта підсилення антени за напрямком → ефективне C/N₀ за рівнянням протидії глушінню (виграш від розширення спектра × спектральне розділення Q) → втрата захоплення на порозі (Kaplan & Hegarty §9,4) багатопроменевість, динаміка АРП (автоматичне регулювання підсилення) у часі, сам пошук захоплення (необов'язковий гістерезис [acquisition] є парою порогів); необов'язкові втрати квантувача [front_end] відповідають гауссовому входу і недійсні для CW-джамера; необов'язкова решітка [crpa] є вузькосмуговою та ідеальною (без зв'язку чи неузгодженості), а необов'язкове екранування [terrain] — це одне лезо ножа на одній плитці SRTM; Q є репрезентативною константою для кожного типу, а не виведеною з виміряної PSD джамера
Показник якості цілісності (пакети годинника/holdover) самоузгодженість фільтра (частка відліків відмови всередині його власної межі k·σ) HPL/VPL, ризик цілісності / P_HMI, межі сигналізації, DO-229E/316/ED-259A — про них окремо повідомляє вид integrity (RAIM / ARAIM) і функції SBAS; їх ніколи не включають у цей показник якості
показник якості успадкованого пакета сценаріїв inertial одновісний (1-DOF) бюджет похибок акселерометра/гіроскопа (VRW/ARW, нестабільність зміщення) зі скиданням за істиною успадкований пакет є 1-DOF; 3-осьовий шлях постачається в пакеті gnss-ins (наступний рядок)
3-осьова безплатформна бібліотека + пакет gnss-ins (src/inertial/, src/fusion/pack.rs) перевірений навігатор на кватерніонах/NED (NED: північ–схід–вниз) з детермінованою моделлю похибок IMU — змодельовано масштабний коефіцієнт, неспіввісність, чутливість до g, квантування, лінійний дрейф швидкості (IEEE Std 952-1997 §A.2; Groves 2013 §4,3) — тепер керується пакетом сценаріїв gnss-ins і налаштовується для кожного сенсора з TOML (Tom's Obvious Minimal Language, формат сценаріїв) ([imu_*.error_model]) не змодельовано: похибку випрямлення вібрації, дрейф від градієнта температури. Похибка злитого інерційного ходу обмежена знизу похибкою орієнтації при передаванні (нахил і зміщення акселерометра слабо розділяються), тому калібрування кожного зміщення окремо не заявляється
«Гібридна інтеграція PNT» (пакет hybrid) розімкнене числення координат, обмежене скиданнями GNSS за істиною зв'язане (слабко/тісно) злиття GNSS–INS фільтром Калмана — це окремий пакет gnss-ins (EKF) і вид hybrid-ukf
«Positioning Performance» (пакети годинника) RMS синхронізації за фазою годинника в ns (timing_rms_ns) точність у просторі положення з RMS/CEP/SEP/DOP-зважуванням (SEP: сферична ймовірна похибка)
інерційний показник якості положення (pos_rms_m) одновісний RMS/p95 положення в метрах за одним зерном, якщо runs = N не просить ансамбль (тоді — середнє, розкид і бутстреп-довірчий інтервал 95% для кожної метрики) розподіл CEP / 2DRMS (подвійна відстань RMS) для ансамблю (дорожня карта: CEP за Монте-Карло)
«перевірено з точністю ~2%» типова спостережувана узгодженість; обов'язковий поріг — 20–25% відносної похибки гарантована межа точності 2%
«відтворюваний / бітово ідентичний» бітово ідентичний повторний прогін на тій самій ОС (операційній системі) із закріпленим набором інструментів; між Linux, macOS і Windows CI перевіряє закомічений SHA-256 вхідного відбитка та форми кожного результату (tests/cross_platform_golden.rs) і числові значення з точністю 1e-6 (tests/golden.rs) байтово ідентичний повний результат у різних операційних системах (відмінності libm в останній цифрі)
сценарій SGP4 GPS (orbit-sgp4-gps.toml) справжній знімок Celestrak gps-ops (2021-07-28, 30 супутників, сувора перевірка контрольних сум), кожен супутник поширюється від епохи власного TLE актуальне орбітальне угруповання — оновіть знімок за допомогою scripts/fetch_tles.sh (див. REAL_TLE_GUIDE.md); каталожні номери NORAD (Північноамериканське командування повітряно-космічної оборони) є справжніми

Перехресні перевірки за статтями про місячний PNT (регресійні докази, а не рядки матриці)#

Набір для Місяця та цисмісячного простору (можливості «Lunar & cislunar» і «Lunar PNT suite» у README) має твердження з опублікованих статей, незалежно перехресно перевірені в tests/validate_p*.rs, кожне — за оракулом із іншої реалізації:

  • орбітальна зона передавання/захоплення проти scipy.special.j1 (функція Бесселя J1 із Cephes);
  • геометричний чинник DOP наземного маяка проти незалежного розв'язку NumPy (HᵀH)⁻¹;
  • зростання похибки прогнозу за персистентністю UT1/EOP проти повторного розбору NumPy тих самих дослівних рядків IERS finals2000A;
  • планарне сімейство далеких ретроградних орбіт проти Three-Body Periodic Orbit Database від NASA/JPL;
  • бюджет прецизійності радіодальнометрії проти еталона з перших принципів.

Фікстури та скрипти-генератори оракулів розміщено в tests/fixtures/{p1_footprint,lunar_service,eop_prediction,rf_ranging_precision,dro_family_jpl,p2_independent_dop}/. Вони підсилюють докази для можливостей, що в перевіреній машиною матриці (src/verification.rs) залишаються MODELLED; це регресійні перевірки, а не нові рядки матриці VALIDATED, тому самі по собі вони не змінюють підрахунок у перевіреній машиною матриці. Цей підрахунок тут не повторюється, бо переписана вручну копія розходиться з оригіналом: актуальний розподіл наведено у згенерованому заголовку VERIFICATION-MATRIX.md, який gen_validation_artifacts записує з verification_matrix() і фіксує tests/verification_artifacts_doc_sync.rs.