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

Валідація та доказиЗгенеровано під час збирання зі сценарних файлів репозиторію та матриці верифікації.

Довідник можливостей

61 картка можливостей із web/capabilities.json, а потім усі 401 рядків матриці верифікації.

Картки можливостей#

Поширення орбіт і конструювання орбітальних угруповань

Орбіта та геометріяValidated666/666 векторів AIAA · 4,12 mm

Поширення SGP4/SDP4 за реальними двостроковими елементами (закомічений знімок GPS з Celestrak) або синтетичні угруповання Волкера, середні елементи яких реалізують формулу i:T/P/F з похибкою менше 1 km за 24 h. Видимість кількох орбітальних угруповань, геометричний чинник погіршення точності та доступність GNSS, оптимізатор конструкції орбітальних угруповань, розрахунок розмірів смуг покриття та перебір конструкцій Волкера, що повідомляє Парето-оптимальні конструкції на сітці «площини × супутники».

Запустити orbit-sgp4-gps.toml у Kshana Studio

Пропагатор Коуелла та силова модель із шести збурень

Числовий пропагаторModelledконсервативні рівні < 0,08 m / 24 h порівняно з Orekit 12,2

Числовий пропагатор (Коуелла), що доповнює аналітичний шлях SGP4/SDP4, з ієрархічною силовою моделлю: задача двох тіл + повне зональне поле J2–J6, необов'язковий тесеральний геопотенціал EGM2008 до степеня/порядку 70, гравітація Сонця та Місяця як третіх тіл, що залежить від епохи (вбудовані ефемериди, без ядра DE/SPK), тиск сонячного випромінювання з конічною тінню/напівтінню, атмосферне гальмування, постньютонівська релятивістська поправка Шварцшильда та член Лензе—Тіррінга (захоплення системи відліку) — з вибором адаптивних інтеграторів: RK4 з подвоєнням кроку або Дорманда—Принса RK5(4).

Імпульси, Ламберт і porkchop

Маневри та проєктування траєкторійModelledЦіолковський < 0,01 % · круговий обхід Ламберта до істини двох тіл

Імпульсні вузли ΔV із поширенням коваріації 6×6, інтегрування скінченних імпульсів, перевірене за рівнянням ракети Ціолковського з похибкою менше 0,01 %, однооборотний розв'язувач Ламберта Іцо (2015) і точний пропагатор Кеплера в універсальних змінних, а також перебір porkchop (запуск × прибуття) C3 / V∞ прибуття, виданий як контурна сітка JSON — шар симуляції продуктивності над GMAT/Orekit.

Шкали часу та системи відліку орієнтації Землі

Системи часуValidatedпобітово відносно SOFA/ERFA · наскрізно за Валладо 4 mm

Шкали UTC / TAI / TT / UT1 із високосними секундами IERS, API юліанських дат, кут обертання Землі IAU-2000, TEME ↔ ECEF на основі GMST і геодезичні системи WGS-84, повна нутація IAU 2000A/2000B і прецесія IAU 2006, а також редукція без рівнодення GCRS↔ITRS IAU 2006/2000A на основі CIO з рухом полюса IERS — перевірена побітово за векторами SOFA/ERFA і незалежно перехресно перевірена за ANISE (SPICE на чистому Rust): GCRS→ITRS відносно ANISE ITRF93, ті самі EOP IERS, збігаються до ≤ 0,86 m на поверхні / ≤ 3,6 m на орбіті GNSS.

Прогнозування орієнтації Землі в реальному часі

Системи часуModelled12 горизонтів проти архівного Bulletin A: UT1 2,93 ms, рух полюса 1,76 mas

Прогнозувальник орієнтації Землі в операційному стилі — метод найменших квадратів за зміщенням, швидкістю та основними періодичними членами на замикальному вікні — виміряний за справді архівними прогнозами Bulletin A, а не за інерційним прогнозом. Типовим автономним входом є реальний продукт IERS finals2000A з рядками прогнозів Bulletin A, тож порожній запуск видає заповнену таблицю за горизонтами, а не порожню. UT1 і рух полюса повідомляються на спільному наборі рядків разом зі своєю комбінацією, тож спільний показник є однією статистикою, а не квадратурною сумою двох різних вибірок.

Запустити realtime-frame-eop.toml у Kshana Studio

Безплатформена INS і навігація за картою

ІнерціальніModelledакселерометр CAI з перших принципів · похідний VRW перехресно перевірено незалежним інтегратором

Тривісна безплатформена INS — кватерніонна орієнтація, механізація WGS-84 NED, компенсація конінгу/склінгу та повна детермінована модель похибок IMU — плюс акселерометр на холодноатомному інтерферометрі з перших принципів (фаза Маха—Цендера, проєкційний шум, спад контрасту, зв'язок із вібрацією) і фільтр часток для навігації за рельєфом/гравітацією без GPS.

Запустити imu-deadreckoning.toml у Kshana Studio

Інерціальний і рельєфно-відносний дрейф під час відмови

ІнерціальніModelled10 m за 249 s, 50 m за 595 s, зсув акселерометра домінує в обох випадках

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

Запустити ins-trn-coast.toml у Kshana Studio

Зіставлення з гравітаційними, рельєфними та магнітними картами

Альт-PNT (без GPS)Modelled60 хв без GPS · ~145 m (< 500 m)

Модель вимірювань холодноатомного гравіметра, білий шумовий поріг якого виведено з фізики акселерометра CAI, повністю нормоване сферично-гармонічне поле гравітаційних аномалій низького степеня плюс синтетичні масконі та фільтр часток для зіставлення з гравітаційною картою — розширений до навігації за рельєфом на основі цифрової моделі висот SRTM (TERCOM/SITAN), головного геомагнітного поля IGRF-14 до степеня/порядку 13 і комбінованого навігатора за гравітацією, магнітним полем і рельєфом, що поєднує всі три скалярні канали. 60-хвилинний бенчмарк без GPS — відмова близько 700 km / одна година, коли інерціальний розв'язок дрейфує приблизно до 70 km — відновлюється приблизно до 145 m ієрархічним зіставлювачем від грубого до точного: ціль ESA NAVISP Quantum Wayfarer.

Запустити gps-denied-gravity-nav.toml у Kshana Studio

Об'єднання даних датчиків GNSS / INS

Об'єднанняModelledщільно зв'язаний UKF · 0,77 m RMS

15-станний EKF станів похибок, що дрейфує крізь відмови GNSS на відкаліброваному інерціальному розв'язку; щільно зв'язаний псевдодальномірний режим, що продовжує поправки з менш ніж чотирма супутниками; зв'язаний фільтр годинника та позиції; загальний сигма-точковий (unscented) оцінювач Калмана; щільно зв'язаний навігатор GNSS/INS на UKF, перевірений до 0,77 m RMS крізь відмову тривалістю 120 s на вигнутому прольоті LEO; і повний 17-станний щільно зв'язаний UKF GNSS/INS, чий квантовий CAI-дрейф проходить відмову за похідним випадковим блуканням швидкості холодноатомного акселерометра.

Запустити gnss-ins.toml у Kshana Studio

Пакетне та послідовне визначення орбіти

Визначення орбітиValidatedпакетне + послідовне визначення орбіти проти Orekit 12,2 BatchLSEstimator/KalmanEstimator

Відновлення орбітального стану за вимірюваннями дальності з наземної станції, що поєднує силову модель двох тіл + J2 та інтегратор RK4 із пакетним диференціальним коректором Гаусса—Ньютона (субметрово / mm·s⁻¹ за безшумними дальностями, ~2 m за шумового порога 5 m) і послідовним варіантом на unscented-фільтрі.

Інформація Фішера та спостережуваність

Спостережуваність і теорія оцінюванняValidatedвласні значення проти numpy.linalg.eigh · CRLB проти σ²(XᵀX)⁻¹ через numpy.linalg.inv · DOP GNSS з інформаційної матриці, усе до 1e-9 · замкнені форми Кея (1993) + досягнення CRLB за Монте-Карло

Загальний багаторазовий шар інформації Фішера / Крамера—Рао (src/fim.rs): інформаційна матриця M = HᵀWH, нижня межа Крамера—Рао, ранг спостережуваності та нуль-простір дефекту датуму (псевдообернена Мура—Пенроуза), а також скаляри D/A/E/T-оптимального планування експерименту із симетричного власного розв'язувача Якобі. Вона лежить в основі рушія DOP, межі пасивної геолокації та результату спостережуваності абсолютної місячної станції — внутрішня дальнометрія залишає дефект датуму жорсткого тіла з шістьма ступенями свободи, який прив'язка земної бази VLBI відновлює для розрідженого угруповання й загострює для насиченого, а абсолютний датум замикається на трьох неколінеарних земних станціях.

Поширення CR3BP і цілісність LunaNet

Місячні та цисмісячніValidatedВідтворює опубліковану NRHO L2 9:2 (~6,57 діб період · ~3 250 km периселена); STM перевірено за скінченними різницями

Пропагатор кругової обмеженої задачі трьох тіл Земля—Місяць (CR3BP) у системі, що обертається, — збережена стала Якобі та всі п'ять точок Лагранжа — із матрицею переходу станів 6×6 і одностріловим диференціальним коректором, що дає справді періодичні гало-орбіти / майже прямолінійні гало-орбіти (NRHO): він відтворює опубліковану південну NRHO L2 9:2 (орбіту Gateway) із періодом ~6,57 діб і периселеною ~3 250 km. Плюс геометрія цисмісячного PNT LunaNet / LNIS (редукція MCI↔MCMF, селенографічні координати) із прольотом ARAIM на південному полюсі Місяця, що чесно виявляє прогалину цілісності: σ_URE близько 30 m піднімає рівень захисту значно вище порогу тривоги 50 m.

Запустити lunanet-araim.toml у Kshana Studio

Реалізація місячної системи відліку

Місячні та цисмісячніValidatedпроти numpy/scipy Umeyama–Horn SVD

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

Запустити lunar-frame-realisation.toml у Kshana Studio

Зона обслуговування місячної навігації та ARAIM

Місячні та цисмісячніValidatedорбіти ANISE 0.10.2 · RTKLIB 2.4.2-p13

Перебирає ілюстративне угруповання класу Moonlight/LCNS за селенографічною сіткою: видимість, геометричний чинник погіршення точності, покриття та рівні захисту ARAIM для кожної епохи відносно настроюваного порогу тривоги. Точність дальності сигналу в просторі є параметром, тож перебір відповідає на вимогу до дальності в усій зоні, а не на «пройдено/не пройдено» за одного фіксованого значення.

Запустити moonlight-service-volume.toml у Kshana Studio

Бюджет сумісності між провайдерами для Місяця

Місячні та цисмісячніValidatedDE440 · INPOP21a · EPM2021 через calceph

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

Запустити lunar-interop-export.toml у Kshana Studio

Спостережуваність збоїв автономної вільної мережі

Місячні та цисмісячніValidatedпроти незалежної паритетної алгебри numpy/scipy

Лінійна алгебра, потрібна самореферентному місячному угрупованню, щоб виявляти власні збої без наземної істини: зважений паритетний проєктор у ранг-дефіцитній псевдооберненій формі, що переживає калібр датуму та шкали часу, виявність для кожного вузла, мінімальне виявне зміщення Баарда та кількості виявлення/ідентифікації візантійських блок-іскор за реальною міжвузловою геометрією DE440.

Датум місячної системи відліку за реальними лазерними вимірюваннями дальності

Місячні та цисмісячніModelled337 нормальних точок ILRS · медіана 5,13 мм

Замінює змодельовану кампанію реальними даними: 337 архівних нормальних точок лазерної локації Місяця ILRS для п'яти масивів ретрорефлекторів, причому кожне спостереження зважено за його власною записаною прецизійністю з файлу. Координати рефлекторів — це каталог DE440 у головних осях, що зберігається під власною назвою файлу окремо від таблиці DE430 у середній земній системі: якщо подати один із них у обертання іншого, рефлектор зсувається на сотні метрів, а жодна перевірка не спрацьовує, бо обидва набори є коректно сформованими координатами.

Запустити lunar-llr-datum.toml у Kshana Studio

Місячний диференційний PNT

Місячні та цисмісячніModelledТочна тотожність загальної складової · змодельована декореляція

Диференційні поправки між місячною опорною станцією та користувачем. Скасування загальної складової є точною тотожністю; залишок просторової декореляції — це геометрична модель першого порядку, що зростає з довжиною бази, а бюджет залишків каналу передавання поправок наведено поруч, щоб обмежувальний доданок залишався видимим і не зливався в одне число.

Запустити lunar-differential-pnt.toml у Kshana Studio

Місячні шкали часу та геодезична VLBI

Місячні та цисмісячніModelledТаблиця перетину для кожного класу годинників

Часи перетину для кожного класу годинників у місячній шкалі часу — коли кожен клас генераторів (осциляторів) перестає відповідати заданій межі без оновлення — разом із місячною геодезичною спостережною величиною VLBI та інформацією Фішера, яку вона вносить у датум.

Запустити lunar-time-budget.toml у Kshana Studio

Реальна, отримана геометрія місячного орбітального угруповання

Місячні та цисмісячніModelled5 зафіксованих наборів даних, кожен з яких можна відтворити з його записаного джерела

Зона обслуговування розраховується за опублікованими проєктами орбітальних угруповань, а не за ілюстративним: еталонний набір із п'яти супутників для демонстрації сумісності LANS, випадки LNCSS для 8, 12 та 16 супутників і чотири апарати, що справді перебували на місячній орбіті 2023-01-01 за даними JPL Horizons. Кожен файл вказує власну систему відліку та власний клас походження; горизонт за межами табульованих ефемерид відхиляється, а не екстраполюється; ілюстративний кеплерів результат виводиться поруч з отриманим разом із різницею між ними і ніколи не замінюється ним.

Запустити moonlight-service-volume.toml у Kshana Studio

Місячний контур відмови за виміряним розкидом C/N₀

Місячні та цисмісячніModelledВідстань 49,2 км за співвідношенням потужностей проти 19,4 км за втратою захоплення

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

Запустити lunar-jamming.toml у Kshana Studio

Від розкладу VLBI до коваріації координат станцій

Місячні та цисмісячніModelledРанг 6, дефект 0; дефект вільної мережі 1 названо спільним зсувом

Накопичує похідні місячної затримки VLBI в інформаційну матрицю Фішера за розкладом «бази за епохами» і повертає коваріацію координат станцій, так що перехід від прецизійності затримки до сигми координат оцінюється, а не припускається. Вільну мережу наведено поруч із мережею з фіксованим датумом, із названими дефектом рангу та ненаглядним напрямком. Коваріацію точки на поверхні відокремлено від коваріації земної станції, оскільки частинна похідна для маяка ближнього поля є різницею двох одиничних векторів станцій і поводиться не так, як у випадку дальнього поля.

Запустити lunar-vlbi-fim.toml у Kshana Studio

Радіометрична навігація та PNT через ретранслятори

PNT для дальнього космосу та МарсаModelledПеревірено симуляцією (коваріаційні та замкнені показники якості, а не сертифіковані рівні захисту); динаміку Марса з центром у Сонці перехресно перевірено за JPL DE440 до 137 м на дузі в 1 добу; визначення орбіти Mars-LMO ≈ 0,2 м.

Відкритий рушій радіометричної навігації для дальнього космосу та Марса: ітеративне світлове запізнення плюс затримка Шапіро, дво-, одно- та триканальні Доплер і дальність (двоплечова модель Мойєра), когерентне перевипромінювання транспондера, регенеративне/PN-вимірювання дальності та Δ-DOR; введення/виведення CCSDS-TDM; редукований динамічний квадратно-кореневий інформаційний фільтр (емпіричні прискорення, бортовий годинник і опір атмосфери Марса), що виконує визначення орбіти Mars-LMO у синтетичному замкненому циклі; злиття одно- і двоканальних вимірювань; а також орбітальне угруповання ареостаціонарних ретрансляторів MARCONI зі наскрізним симулятором характеристик GSE.

Запустити mars-pnt-lmo.toml у Kshana Studio

Оптична та радіопередача з перехресною перевіркою цілісності між модальностями

Оптичний / радіо PNTModelledМінімальне виявне зміщення 8,20 м по горизонталі, 12,30 м по вертикалі, 24,6 нс за часом

Ін'єкція несправностей надає міжмодальному монітору потужність виявлення замість безвідмовного проходження: мінімальне виявне зміщення по кожній осі за заданого бюджету хибних тривог і пропущених виявлень. Після передачі керування коваріація, що знову зростає, розповсюджується щодо порогів сповіщення, тож у звіті вказано, як довго рішення за однією модальністю залишається в їхніх межах, а не лише те, що передача була безперервною. Оптичні та радіоканали вимірювання дальності порівнюються лише за однакового часу накопичення та шляху, а звіт відмовляється утворювати відношення до значення, яке було обране, а не виміряне.

Запустити hybrid-optical-rf.toml у Kshana Studio

Автономна цілісність приймача (ARAIM)

ЦілісністьValidatedMHSS на реальному знімку GPS + Galileo · двоугрупована модель DO-316

Знімкова та RAIM із розділенням рішень з горизонтальним і вертикальним рівнями захисту (HPL/VPL), виявленням і виключенням несправностей та діаграмами цілісності Стенфорда — плюс явний рівень захисту за бюджетом ризику цілісності (MHSS) з режимом несправності всього орбітального угруповання для двох і більше угруповань (EU ARAIM / DO-316).

Запустити integrity-raim.toml у Kshana Studio

ARAIM за опублікованими еталонними векторами

ЦілісністьValidatedНайгірша похибка 0,044 м проти власного допуску джерел 0,05 м

Рівні захисту MHSS рушія розраховуються за власними опублікованими робочими прикладами еталонного бортового алгоритму робочої групи C ЄС і США, кожен з яких переписано з вказівкою URL, дати отримання, сторінки та SHA-256 файлу і зберігається у двох місцях, збіг між якими перевіряє тест. Приймальним вектором є внутрішньо узгоджений документ Reference Airborne Algorithm Description Document v3.1, додаток D. Звіт Milestone 3 містить два внутрішні дефекти — друкарську помилку в знаку в геометрії та множник хибної тривоги, обчислений для 57 режимів несправності, тоді як у тексті йдеться про один, — тому його рівні захисту наведено як виміряні розбіжності, а не оцінено, а дефекти продемонстровано запуском власних чисел документа.

Запустити araim-reference-check.toml у Kshana Studio

Рівні захисту SBAS / WAAS та двочастотність

Доповнення (SBAS)ValidatedK-фактори DO-229E · безіоносферна комбінація L1/L5

Рівні захисту SBAS / WAAS у формі зваженого методу найменших квадратів DO-229E (K-фактори для точного заходу на посадку та руху на маршруті) і двочастотна безіоносферна комбінація L1/L5 (IS-GPS-705), що лежить в основі DO-316, з геометрією рівня захисту, перехресно перевіреною за еталонною реалізацією лінійної алгебри.

Holdover, стабільність та передавання часу і частоти

Годинник і синхронізація часуValidatedвідкалібровано за технічними даними годинників · holdover перехресно перевірено за рекурсією коваріації ван Лоана

Двостановий калманівський holdover, стабільність сімейства Аллана (ADEV / MDEV / TDEV / HDEV) із довірчими інтервалами та повна п'ятикоефіцієнтна степенева апроксимація IEEE-1139, а також експлуатаційні методи передавання — TWSTFT із замкненою формою Саньяка BIPM, спільне спостереження GNSS, безіоносферне передавання PPP, вільнопросторовий оптичний канал із турбулентними мерехтіннями та шкала часу ансамблю годинників з інверсно-дисперсійним зважуванням. Калькулятор holdover годинника без ГНСС (GNSS) інвертує зростання похибки вибігу за ван Лоаном у holdover до порогу — як довго годинник працює вільно, поки його похибка часу не перевищить бюджет, — для класичних і квантових класів годинників; змодельовано, і чесно зазначено, що для дуже стабільного годинника holdover до жорсткого порогу визначається припущеним рівнем шуму на великих тау, а не наведеним ADEV.

Запустити clock-holdover.toml у Kshana Studio

Псевдодальність, іоносфера та тропосфера

Вимірювальна область ГНСС (GNSS)ValidatedZHD за Саастамойненом ≈ 2,3 м · Niell дорівнює одиниці в зеніті · Klobuchar за IS-GPS-200

Пряме синтезування псевдодальності / Доплера з іоносферою Klobuchar (широкомовною) та IONEX / сіткою TEC (виміряною) — зокрема розбирач файлів IONEX, інтерполяція за часом і відображення косості тонкої оболонки — тропосфера Саастамойнена + Niell та знімковий RAIM.

Запустити gnss-sim-raim.toml у Kshana Studio

Одноточкове позиціонування (PVT)

Позиціонування ГНСС (GNSS)ValidatedПеревірено на реальних даних IGS (станція ABMF, 2018-05-13): 5,7 м 3D RMS / 1,1 м по горизонталі відносно виміряної координати.

Реальне положення приймача, розв'язане за реальними кодовими псевдодальностями RINEX і широкомовними ефемеридами ітераційним зваженим методом найменших квадратів — поправка Саньяка/обертання Землі, широкомовний годинник із TGD, двочастотна безіоносферна комбінація L1/L2 (або одночастотна Klobuchar), тропосфера Саастамойнена/Niell, зважування за кутом місця, DOP та знімковий RAIM.

Запустити pvt-abmf.toml у Kshana Studio

Глушіння (jamming) та багаторівневе виявлення спуфінгу

СтійкістьModelledдетектор Неймана–Пірсона χ²₁ · замкнена форма та Монте-Карло P_fa/P_md збігаються

Модель глушіння за бюджетом лінії (J/S → ефективне C/N₀ → втрата захоплення), стохастичний детектор спуфінгу часу (енергетичний тест Неймана–Пірсона / χ²₁ із Монте-Карло P_fa/P_md та показником безпеки Security FoM, що дорівнює 1 − P_md) і багаторівневий детектор спуфінгу, що поєднує паритетний тест узгодженості RAIM, радіомонітор потужності AGC та монітор якості сигналу (SQM). Плюс бюджет похибки квантово-інерційного рахунку шляху, що складає біле шумове зміщення холодноатомного інтерферометра із залишковим зміщенням (перехресно перевірене незалежним інтегратором) і похибкою масштабного коефіцієнта в показник дрейфу положення за час holdover — інерційний двійник holdover годинника.

Запустити spoof-attack.toml у Kshana Studio

Модуляція, протидія глушінню та стеження за кодом

Характеристики навігаційного сигналуModelledBPSK власний SSC = 2/(3R_c) · субметровий джитер DLL для C/A за 45 дБ-Гц · перехресна кореляція кодів Голда GPS C/A -23.9 дБ

Шар характеристик сигналу між бюджетом лінії та вимірювальною областю: спектральні густини потужності одиничної площі для BPSK-R(n) і синусоїдального BOC(m,n), коефіцієнт спектрального розділення, що виводить коефіцієнт протидії глушінню Q, який безпосередньо споживає модель глушіння, з фактичних спектрів сигналу та завади, середньоквадратична (Габорова) ширина смуги, що задає інформаційний зміст вимірювання дальності (BOC > BPSK), тепловий шум джитера стеження за кодом когерентного контуру DLL «раніше–пізніше», когерентна обвідна похибки багатопроменевості «раніше мінус пізніше» із придушенням вузьким корелятором та компроміс при проєктуванні кодів дальності (бічні пелюстки автокореляції m-послідовності/Голда і тризначна межа перехресної кореляції Голда, а також інверсія довжини коду в однозначну дальність). Це аналіз характеристик сигналу, а не проєктування радіонавантаження чи антенного обладнання.

Пасивна радіогеолокація (TDOA/FDOA)

Пасивна радіогеолокаціяModelledбеззавадне пряме→обернене перетворення TDOA до 1e-6 м · J·CRLB = I · GDOP монотонний за кількістю приймачів · оцінювач досягає своєї CRLB на 4000 випробуваннях Монте-Карло

Визначення місця джерела глушіння чи спуфінгу (або випадкового джерела для зворотного PNT) за гіперболоїдами різниці часу прибуття в мережі приймачів методом найменших квадратів Гауса–Ньютона; додавання різниці частот прибуття з рухомими приймачами спільно відновлює положення та швидкість випромінювача, з межею Крамера–Рао для коваріації положення, що випливає з геометрії мережі. Модель точкового джерела прямої видимості — без доданків багатопроменевості / NLOS, зміщення годинника приймача чи рефракції.

Формати RINEX, SP3 та CCSDS

ВзаємодіяModelledширокомовні ефемериди + інтерполяція SP3 проти RTKLIB; OEM проти незалежного розбирача CCSDS

Приймання широкомовних ефемерид RINEX-3 для кількох ГНСС (GPS, Galileo, QZSS, BeiDou, GLONASS), розбирач спостережень RINEX-3 (макет спостережень RINEX 4,00 має розбиратися, але жоден файл 4,00 крізь нього не прочитано; навігаційні файли RINEX 4 відхиляються за назвою), читач/записувач точних ефемерид SP3-c/d з інтерполяцією Лагранжа, експорт CCSDS OEM 2,0 + OMM (середні елементи) для інструментів динаміки польоту (GMAT, Orekit, STK), а також розбір і генерація повідомлень з даними стеження CCSDS-TDM (503) для радіометричного стеження в дальньому космосі.

Запустити oem-interop.toml у Kshana Studio

Матриця верифікації з машинною перевіркою

Верифікація та забезпечення гарантійModelledрядки зі статусом validated потребують зовнішнього оракула (інваріант забезпечується в CI)

Перехресне посилання «вимога — модуль — тест — оракул — статус», згенероване самим рушієм (Markdown/CSV), з модульно протестованими інваріантами чесності: рядок можна позначити як validated лише за наявності незалежного зовнішнього оракула (NIST / AIAA / SOFA / IGS / опубліковане значення), щоб внутрішня перевірка самоузгодженості не могла видати себе за валідацію, — а апаратні можливості та можливості підсилювача потужності (PA), яких Kshana не забезпечує, записано як прогалини, що належать партнеру. Виконувана основа для перехресного посилання верифікації за ECSS-E-ST-10-02.

Одиниця та походження для кожної звітної величини

Верифікація та забезпечення гарантійModelled92 з 92 типів, 3300 з 3300 числових полів

Кожне числове поле, яке видає сценарій, має одиницю та клас походження із закритого словника, з визначенням там, де воно існує, і публікується як машиночитна схема поряд із рушієм. Храповий шлюз запускає кожен вбудований вид і завершується помилкою на полі, що не має жодного; види, які ще не завершені, названо по одному з причиною, чому кожен досі відкритий, і цей перелік може лише скорочуватися. Звіти, що вказують власні сталі, — односторонній бюджет лінії, оптичний і радіобюджет — дають змогу читачеві перерахувати головний показник лише зі звіту.

Бюджети запуску, входу в атмосферу, покриття та наведення

Аналіз місіїModelledперевірено за замкненими формулами (азимут запуску · Аллен–Егерс · SMAD)

Бюджети проєктування місій першого порядку, кожен як сценарій, що виконується: двотільна геометрія запуску та виведення (азимут запуску, мінімальний нахил, виграш від обертання Землі, Δv зміни площини з доглегом, добові можливості), балістичний коридор входу Аллена–Егерса (пікове сповільнення, швидкості піку перевантаження та піку нагріву), геометрія покриття для спостереження Землі (смуга захоплення / GSD в надирі / доступ поза надиром / періодичність повторного огляду за космічним трикутником SMAD), бюджет похибок орієнтації та наведення в 3 ступенях свободи (гравітаційно-градієнтний момент + бюджет наведення RSS), прогноз проходів наземної станції (AOS/TCA/LOS, максимальна висота, доступ) та односторонній бюджет лінії за рівнянням лінії CCSDS 401 / DSN 810-005 (FSPL, C/N₀, Eb/N₀, запас, замикання). Аналітичний шар до апаратної реалізації нижче STK/GMAT/Basilisk — змодельовані бюджети першого порядку, а не заміна моделювання з 6 ступенями свободи чи радіометричної.

Спільне використання апертури для навігації та зв'язку

Аналіз місіїModelledВідмова та конкуренція для кожного сеансу, а не один показник робочого циклу

На вході — план контактів і кількість апертур; на виході — навігаційний робочий цикл, робочий цикл зв'язку, відмова та конкуренція для кожного сеансу. Політику арбітражу в звіті названо, а не мається на увазі, а сеанс, який не вдалося обслужити повністю, повідомляє частку, що була втрачена, а не губиться в середньому значенні.

Запустити aperture-duty-cycle.toml у Kshana Studio

Космічна погода та густина термосфери

Космічне середовищеValidatedJacchia-71 перевірено за опублікованими значеннями для мінімуму / середнього / максимуму Сонця

Модель середовища космічної погоди: індекси сонячної (F10.7 / центрований 81-добовий F10.7a) і геомагнітної (Kp, з визначальною таблицею Kp↔ap) активності, екзосферна температура за Жаккіа-1971, яку вони задають, а також скоригована за активністю та статична густина нейтрального газу термосфери на заданій висоті — залежність густини від сонячного циклу, яку статична атмосфера не враховує. Відкалібрований зв'язок першого порядку через висоту шкали, а не атмосфера NRLMSISE, перевірена за даними.

Запустити space-weather.toml у Kshana Studio

Оцінювання виявлення радіозавад та компроміс PNT

Оцінювання та компроміс для машинного навчанняValidatedКаркас AUC перевірено за біноромальною замкненою формою Φ(d′/√2) (Gneiting & Vogel 2018); метрики оцінювання перевірено біт у біт за scikit-learn 1.9.0 — синтетичний корпус, а не необроблені IQ/TEXBAT

Тестовий стенд оцінювання виявлення радіозавад: розмічений, обґрунтований параметрами синтетичний корпус (номінальний / глушіння / спуфінг часу / спуфінг положення / багатопроменевість), агностичний щодо детектора каркас ROC/AUC, що оцінює будь-який детектор із Pd для кожного класу за цільової Pfa, і розрив оптимізму між розподілом навчання та поза ним. Глибше дослідження розриву оптимізму розширює це до панелі з 13 детекторів (енергетичний / AGC / SQM / паритетний, плюс детектори на основі логістичної регресії та багатошарового перцептрона з одним прихованим шаром із фіксованим зерном (seed)), законів масштабування всередині та поза розподілом із перестановочною нульовою гіпотезою і предиктора поза розподілом за принципом «залишити один». Програмно визначений приймач на вході (необроблені IQ/ПЧ → ранній/точний/пізній відводи корелятора → SQM) і адаптери введення реальних даних (RINEX, u-blox UBX, GnssLogger, JammerTest, Yunnan, SatGrid) дають змогу тим самим детекторам працювати із записами, наданими локально. Плюс компроміс квантового й класичного PNT, що кількісно оцінює вигоду holdover кандидатного годинника та інерційного датчика за виміряною кривою ADEV порівняно з класичним базовим рівнем, з огинаючою стійкості без ГНСС залежно від часу. Змодельовані робочі характеристики — ніколи не польові дані чи IQ, без вердикту «добре/погано».

Запустити impairment-eval.toml у Kshana Studio

Карта перетину стійкості: квантовий проти класичного

Оцінювання та компроміс для машинного навчанняModelledвідтворює дослідження перетину інерційних датчиків і годинників, що лежать в основі рисунків Results; ядра компромісу перевірено за scipy 1.17.1

Відтворювана карта того, де квантовий датчик випереджає свій класичний аналог за невизначеності параметрів: холодноатомний проти навігаційного класу рахунок шляху та оптичний проти чипового годинника holdover, залежно від тривалості перерви та вібрації платформи, причому кожна крива має мітку технологічної готовності. Відтворюється через cargo run --bin crossover_study. Змодельовані бюджети характеристик — вхідні дані є опублікованими або обмеженими коефіцієнтами, а не польовими даними.

Умовний рівень захисту часу

Цілісність часуModelledкомпозицію перехресно перевірено за багатокроковою рекурсією коваріації clock_state; відкалібровано на JammerTest 2024 (Zenodo 15911589)

Межа недетектованої похибки часу під час спуфінгу ГНСС (GNSS), обмежена holdover: за наявності незалежної перехресної перевірки похибку наданого часу обмежено k-сигма порогом монітора, дисперсією вибігу за ван Лоаном за час виявлення та часом до тривоги CUSUM. Відкалібровано на реально записаному спуфінгу (JammerTest 2024) і відтворюється через cargo run --example tpl_jammertest. Змодельована композиція, умовна щодо виявлення — скінченної безумовної межі не існує, оскільки досить повільний лінійний наріст обходить одиничний монітор із допомогою годинника.

Оцінювання стійкості PNT та нестабільність рішень

Оцінювання стійкостіModelled35 тестів з оракулами, виведеними вручну; побайтово детермінований артефакт дослідження (фіксоване зерно); узгоджено з DHS RPCF v2.0

Механізм оцінювання, узгоджений із рамковою структурою (категорії DHS RPCF), що зіставляє змодельовану поведінку архітектури з підоцінками за вимірами, а потім з'ясовує, чи є будь-яка єдина складена оцінка або рівень зрілості стабільною основою для рішення — через симплекс зважування Діріхле, нестабільність рангів за Кендаллом-тау, частоту зміни переможця top-1 та згортання різноманітності спільної моди (Hill-N2) — зі звітом гарантій із хешем цілісності. Відтворюється через cargo run --example resilience_report. Змодельовані синтетичні архітектури, узгоджені з RPCF v2.0; самооцінка, а не сертифікація.

Запустити conflict-resilience.toml у Kshana Studio

Пропущене виявлення → області цілісності

Вплив на цілісністьModelledОбласті цілісності Stanford-ESA (Tossaint et al., NAVIGATION 2007)

Міст від пропущеного виявлення до цілісності: невиявлене зміщення, що залишилося через пропущене виявлення спуфінгу / глушіння (jamming) / RAIM, збільшує ефективну похибку положення, яку, зіставивши з контекстними порогами сповіщення, класифікують за областями цілісності Stanford-ESA (доступно / недоступно / оманливо / небезпечно). Складає зовнішньо прив'язану класифікацію Stanford для RAIM; не додає нової математики цілісності.

Рентабельність витрат на одиницю покриття

Підтримка рішеньModelled

Погляд на рентабельність витрат на одиницю покриття — вартість на одиницю наданого покриття для компромісу між орбітальними угрупованнями / архітектурами. Складова покриття складає перевірену геометрію покриття, а арифметика покрита модульними тестами, але вартість є вхідним даним користувача, тож відношення є засобом планування, а не зовнішньо перевіреною величиною (тому, чесно кажучи, без позначки доказу).

Kshana Interchange Format (KIF)

Обмін артефактамиModelledверсійований конверт · перевірено круговий обмін і зворотно сумісне читання

Версійований самоописовий конверт, що загортає результат сценарію з його видом, версією схеми та мітками «змодельовано/перевірено», щоб збережений артефакт залишався самодокументованим, а старіші конверти лишалися зворотно сумісними для читання.

Запустити lunar-interop-export.toml у Kshana Studio

Оцінка довіри до приймача для судна

Морська довіраModelledарифметику моніторів перевірено за pynmea2 і GeographicLib

Оцінює, чи можна довіряти навігаційному визначенню судна за NMEA 0183, що його приймач і прилади вже видають: оцінка 0–100, три смуги та причини за ними — для кожної епохи, пакетно, наживо або як шлюз. Монітори порівнюють визначення з власним рухом судна, датчиком курсу, лагом швидкості та рівнями супутникових сигналів. Консультативне програмне забезпечення, не навігаційне обладнання із затвердженням типу: відповідальність залишається на операторі. Арифметику моніторів перевірено незалежними бібліотеками; правило й пороги оцінки є власними для проєкту і залишаються змодельованими.

Потоки NMEA для навчання екіпажів

Морська довіраValidated225 227 речень розібрано й декодовано за pynmea2

Записує синтетичний NMEA 0183 для сценарного рейсу з подіями глушіння, відведення положення, спуфінгу часу та повторного відтворення, заданими інструктором, разом із журналом інструктора, щоб екіпаж міг побачити, як виглядає погіршене визначення на власних приладах. Лише текст, ніколи для живих навігаційних систем судна; нічого не передається і радіосигнал не створюється. Речення та їхні декодовані значення перевіряються; моделі приймача, неба та подій є змодельованими.

Карта завад і наражання маршруту

Морська довіраValidatedзначення кодів і геометрію перевірено за pyModeS, pyais, shapely і GeographicLib

Будує добову карту GeoJSON місць, де повітряні судна (ADS-B) і кораблі (AIS) повідомляли про погіршені навігаційні дані, з відкрито ліцензованих вхідних даних, а також частку маршруту, що проходить через погіршені комірки. Погіршена комірка — це твердження про повідомлені поля точності чи неправдоподібні положення, а не висновок про наявність завад, і комірка, яку ніхто не спостерігав, не є доказом чистого маршруту. Минулі звіти, а не прогноз.

Телеметрія довіри для операцій безпеки

Морська довіраValidatedPrometheus, OTLP і CEF прочитано назад незалежними розбирачами

Експортує потік довіри як метрики Prometheus, OpenTelemetry (OTLP/HTTP) і події syslog CEF або LEEF через stdout, HTTP, UDP чи TCP, щоб центр операцій безпеки бачив навігаційну несправність поруч зі своїми іншими сповіщеннями. Мертвий колектор не зупиняє оцінювання і не лишається непоміченим. Prometheus, OTLP і CEF читаються назад незалежними розбирачами; LEEF перевіряється лише за власною специфікацією.

Підписані пакети доказів

Морська довіраValidatedвектори RFC 8032 байт у байт; верифікатор із чистої кімнати погоджується на 71 пакетах

Збирає вікно навколо події довіри в ланцюжковий за хешами пакет, підписаний Ed25519, який будь-хто може перевірити офлайн: змінений, вилучений, підмінений чи доданий файл, повторно підписаний пакет або хибний закріплений ключ буде названо. До нього прив'язується необов'язковий маркер часу RFC 3161. Технічний запис, а не юридична думка, не констатація факту і не засвідчення.

Експорт для випробувального стенда

ВзаємодіяValidatedперетворення та кодування перевірено за PROJ, GeographicLib, pynmea2 і SciPy

Записує рух транспортного засобу та події сценарію як траєкторію CSV і NMEA 0183 для лабораторного симулятора GNSS: стовпці в земній, геодезичній та локальній швидкості, орієнтація та UTC. Лише рух і події: сигнал не записується і жодних характеристик симулятора чи приймача не заявляється.

Зіставлення з публічними рамковими документами щодо compliance

Морська довіраModelled

Зіставляє результати Kshana з положеннями публічних рамкових документів (настанови IMO для суден, EU NIS2 стаття 21, EN 16803, рамкова структура DHS США для стійкого PNT і настанови EASA для авіації) лише за номером положення, заповнюючи їх із наданих вами прогонів, і вказує, для яких рядків набір прогонів підтримує докази для (supports evidence for), з прогалиною для кожного рядка. Це не висновок про те, що будь-який рамковий документ виконано, і не оцінка чи схвалення будь-ким.

Перевірка Galileo OSNMA

Автентифікація ГНСС (GNSS)Validatedусі 18 офіційних наборів тестових векторів: 186 382 міток автентифіковано, 0 невдалих

Відкритий верифікатор на чистому Rust на стороні приймача для автентифікації навігаційних повідомлень Galileo Open Service: він перевіряє, навігаційні дані яких супутників приймач може автентифікувати зі сторінок I/NAV або потоку u-blox UBX, через перевірки відкритого ключа, ланцюга ключів і міток за специфікацією сигналу в космосі, і повідомляє про автентифікацію для кожного супутника та кожного моменту часу. Він автентифікує дані; він не заявляє жодних характеристик протидії спуфінгу.

Видимість з маскою обрію, DOP та еліпс похибок

Геометрія небаValidated1173 кутів візування та 142 наборів видимих супутників збігаються з Orekit 12,2 і gnss_lib_py 1.0.4 до 1e-12; еліпс збігається з numpy на 270 випадках

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

Пресети обрію та функції геометрії неба

Геометрія небаModelledзначення, обчислені вручну, і геометрія, яку добирає хмара; без зовнішнього оракула

Редукції міського каньйону, сектора та рельєфу до таблиці обрію, чотири репрезентативні пресети (міська вулиця, підхід до гавані, фіорд, контейнерний термінал) і функції, що складають їх у скайплот і хмару Монте-Карло, із CLI, MCP, Python і браузера. Пресети є репрезентативними геометріями із вибраними, вказаними розмірами, а не зйомками, і редукції перевірено лише за значеннями, обчисленими вручну.

Класифікація довіри з урахуванням геометрії

Морська довіраModelledправило класифікації та пороги є власними для проєкту, перевіреними щодо самих себе

Ставить геометрію супутників поряд з оцінкою довіри до приймача і називає клас для кожного відрахування: втрата сигналу, погана геометрія або невідповідність між заявленим приймачем DOP та DOP, виведеним із видимих супутників. Геометрія оцінюється лише тоді, коли вона відома, а мітка є головною: балів коштує лише погана геометрія. Консультативне програмне забезпечення, не навігаційне обладнання із затвердженням типу.

Дослідження місячної опорної станції

МісячніModelledскладає протестовані місячні диференційні функції, функції годинника та системи відліку; перевірено щодо самих себе та еталона numpy, без зовнішніх польотних даних

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

Оптичні лінії передавання часу крізь хмари та турбулентність

Оптичний / радіо PNTModelled7 із 7 попередньо зареєстрованих числових порогів виконано щодо незалежної програми mpmath; жодного виміряного запису доступності не порівнювали

Як часто оптична лінія передавання часу працює, коли на шляху є атмосфера. Для кожного наземного пункту рушій дає втрати в чистому повітрі, стан турбулентності Hufnagel-Valley із завмираннями від гамма-гамма мерехтіння та усередненням за апертурою, доступність щодо запасу лінії для заданого хмарного клімату, стелю, яку жоден запас не здатен підняти, розподіл тривалості перерв і похибку часу, яку перерва коштує годиннику в режимі holdover. Потім показує, що дають додаткові пункти, більша апертура, інша довжина хвилі чи адаптивна оптика. Вбудовані хмарні клімати є ілюстративними, а не виміряними; результат є консультативним.

ГНСС (GNSS) за межами орбітального угруповання: космічна зона обслуговування та далі

Характеристики навігаційного сигналуModelledтаблиці буклета ICG SSV, попередньо зареєстровані; більшість порогів NOT MET (xval/gnss-ssv/RESULTS.md)

Для космічного апарата на сфері (глобальна оболонка з буклета ICG Space Service Volume) або на кеплеровій траєкторії від LEO до місячного переходу рахує для кожного орбітального угруповання (GPS, GLONASS, Galileo, BDS, QZSS, NavIC) і для всіх разом сигнали вище порога C/N0: доступність одного та чотирьох сигналів, найдовшу перерву, прийняте C/N0, геометричний чинник DOP (погіршення точності) та зв'язки головною пелюсткою проти бічних пелюсток. Діаграми випромінювання беруться з буклета, параметричного замінника або надаються вами; модель іоносфери, плазмосфери й атмосфери для променя за лімбом і проєкт приймача слабких сигналів є необов'язковими; передбачено бортовий фільтр GNSS для високих і місячних перехідних орбіт та відносну навігацію польоту у строю. MODELLED: у порівнянні з таблицями буклета за попередньою реєстрацією, зафіксованою до прогону, константи мінімальної випромінюваної потужності та місячний поріг збігаються, інші пороги NOT MET за попередньо зареєстрованим прочитанням (майже всі через неузгоджений кут променя GLONASS у буклеті), а параметричний замінник бічної пелюстки не відтворює виміряні діаграми панелей GPS.

Запустити gnss-ssv-shell.toml у Kshana Studio

Місячна орбіта та поверхня як навігаційна та геодезична інфраструктура

Місячні та цисмісячніModelledоракули чисельних методів на numpy/scipy; три попередньо зареєстровані пороги NOT MET (xval/lunar-infra/RESULTS.md)

П'ять досліджень у обмеженій моделі трьох тіл: бортове визначення орбіти за GNSS Землі на майже прямолінійній гало-орбіті щодо незалежного наземного визначення за дальністю та швидкістю зміни дальності; спільне розв'язання цілочисельної неоднозначності фази несівної для наземної станції та орбітального апарата (LAMBDA); інформація Фішера семипараметричного місячного датума з дальностями орбітальний апарат — поверхня і без них; зсуви GNSS, VLBI та лазерної локації щодо локального зв'язку; а також чутливість до приливних і лібраційних параметрів Місяця. MODELLED з ілюстративними вхідними даними: чисельні методи перевіряються за незалежними програмами numpy і scipy, а не фізика. За попередньо зареєстрованими порогами три NOT MET: введену помилку сили не виявлено із заявленою частотою (C3), завантажена бутстрепом частота успіху відрізняється від оракула numpy на 1.7e-6 за порогу 1e-9 (Q3), а додавання родини вимірювань дальності не завжди знижує слід псевдообернення (G3, половина зі слідом).

Запустити lunar-infrastructure-od-consistency.toml у Kshana Studio

Матриця верифікації#

ВимогаМожливістьСтатусОракулМодуль
Ідентифікація степеневого шуму за автокореляцією на лагу 1allan::lag1_noise_id: ідентифікатор шуму за автокореляцією на лагу 1 за Райлі та Грінголом (2004) (децимована фаза з вилученням квадратичного складника або усереднена за групами частота з вилученням лінійного складника; повторювані перші різниці, доки delta = r1/(1+r1) < 0,25 або d = dmax), що повертає цілий і незаокруглений показник степеня alpha (від +2 білий PM до -2 випадкове блукання FM) за будь-якого коефіцієнта усереднення; він задає ступені свободи типу шуму для карток пристроїв бібліотеки виміряних годинниківVALIDATEDallantools 2024,6 autocorr_noise_id (A. Wallin та співавтори, LGPL-3.0-or-later, запускається генератором тестових даних як окрема програма): незалежна реалізація опублікованого алгоритму Райлі–Грінголя, однозначно визначена величина за вказаних умовностей. Перевіряє ідентифікатор, а не шумовий вміст будь-якого реального годинникаallan (lag1_noise_id, lag1_acf)
Автентифікація навігаційних даних Galileo OSNMA на боці приймачаosnma + kshana osnma verify: відкритий верифікатор на чистому Rust на боці приймача для Galileo OSNMA (SIS ICD, випуск 1,1, Receiver Guidelines, випуск 1,3) зі сторінок I/NAV або потоку u-blox UBX-RXM-SFRBX: відкриті ключі дерева Меркла (DSM-PKR), підпис ECDSA P-256/P-521 для DSM-KROOT, перевірка ланцюжка ключів TESLA (SHA-256 або SHA3-256), перевірка MACSEQ і міток (HMAC-SHA-256 або CMAC-AES) для ADKD 0, 4 і 12 із перехресною автентифікацією, завершення/відкликання/оновлення ланцюжка, оновлення та відкликання відкритого ключа, а також повідомлення про тривогу; стан для кожного супутника Authenticated/Failed/Unavailable із причиною для кожного збою чи затримки. Лише консультативно: це не навігаційне обладнання із затвердженням типу і не служба цілісності навігації; жодної ефективності проти спуфінгу не заявляєтьсяVALIDATEDОфіційні тестові вектори Galileo OSNMA, опубліковані European GNSS Service Centre як додаток до Receiver Guidelines (Test_vectors.zip, sha256 ef9b9afc6ef9e1c57393415cf2a1dc80c4035e7c06123907ea0bb97dd3ccf370): 18 з 18 наборів, 186 382 міток автентифіковано, 0 невдалих, запущено офлайн 2026-10-10 (запис доказів у kshana-pro docs/evidence). Межі: вектори перевіряють криптографічну верифікацію (Merkle, KROOT/ECDSA, ланцюжок TESLA, мітки MACK, ADKD 0/4/12) та її результати на опублікованих сценаріях; вони використовують лише HMAC-SHA-256, ланцюжок SHA-256, 128-бітові ключі, 40-бітові мітки та записи таблиці пошуку 33 і 34, тож CMAC-AES, ланцюжки SHA3-256 та інші параметри охоплено лише опублікованими тестами відомих відповідей для примітивів і синтетичними тестами. Посилення довіреного часу, прив'язки даних, терміну дії та підтвердження заголовка перевіряється синтетичними тестами атак, а не зовнішнім оракулом. Не перевірено: списки відкликання сертифікатів, живі сигнали чи живий приймач (розкладку слів UBX перевірено лише на синтетичних кадрах), дерева Меркла SHA3-256, свіжість без незалежного часу. Не є службою ЄСosnma (page, subframe, dsm, merkle, signature, tesla, mac, maclt, navdata, verifier, ubx, cli)
Характеристика стабільності частотиДевіація Аллана/модифікована/Адамара + ідентифікація степеневого шуму з довірчими інтервалами χ²VALIDATEDЕталонні девіації NIST SP 1065 (Райлі) / Stable32 на NBS14allan
Стабільність частоти на реальному виміряному годинникуПерекривна девіація Аллана + перекривна девіація Адамара на реальному цезієвому стандартіVALIDATEDПерекривні ADEV/HDEV за Stable32 на виміряному фазовому ряді цезієвого годинника 5071A (allantools)allan
Паритет оцінювачів Аллана на канонічному еталонному ряді Stable32Перекривна девіація Аллана + модифікована девіація Аллана + девіація часу на всій драбині AFVALIDATEDЕталонні девіації Stable32 для PHASE.DAT (Райлі; стандартний регресійний ряд)allan
Стабільність частоти розширеного діапазону (Theo1 / TOTDEV)Theo1 і повна девіація (TOTVAR) — оцінювачі стабільності на довгих τ розширеного діапазону, що сягають ~75 % запису там, де девіація Аллана вичерпується біля ~50 %; гібрид ThêoH зі знятим зміщенням (allan::theoh_curve), побудований на них, залишається MODELLEDVALIDATEDallantools 2024,06 — незалежна стороння бібліотека стабільності частоти — theo1 (NIST SP 1065 рівн. 30) і totdev (NIST SP 1065 рівн. 25) на герметичному наборі даних LCG NIST SP 1065 §12,4; відтворюється офлайн за допомогою tests/fixtures/theo1_totvar/generate_theo1_totvar_reference.pyallan
Максимальна похибка часового інтервалу (MTIE) — метрика дрейфу в телекомунікаціяхMTIE(τ): максимальний розмах між піками похибки часу в будь-якому ковзному вікні τ = m·tau0, статистика дрейфу ITU-T G.810/G.823/G.8261, відносно якої записано обмеження мереж синхронізації (маски MTIE) — екстремальний (макс./мін.) показник, відмінний від родини Аллана з RMSVALIDATEDallantools 2024,06 — незалежна стороння бібліотека стабільності частоти — mtie() на герметичному фазовому ряді LCG NIST SP 1065 §12,4; MTIE є суто статистикою максимуму/мінімуму, тож вихід оцінювача побітово збігається з allantools на ідентично побудованому фазовому масиві (закомічені еталонні константи з 15 значущими цифрами лежать у межах 1 ULP). Відтворюється офлайн за допомогою tests/fixtures/mtie/generate_mtie_reference.pyallan (mtie, mtie_curve)
Модифікована девіація Аллана / девіація часу (MDEV / TDEV)MDEV(τ): перекривна модифікована девіація Аллана (оцінювач із ковзним вікном за другою різницею, що відокремлює білий фазовий шум від фліккер-шуму фази), і TDEV(τ) = τ/√3·MDEV(τ), статистика дрейфу в часовій області ITU-T G.811/G.812/G.823, відносно якої записано маски синхронізаціїVALIDATEDallantools 2024,06 — незалежна стороння бібліотека стабільності частоти — mdev() і tdev() на герметичному фазовому ряді LCG NIST SP 1065 §12,4 (той самий ряд, що й у рядках Theo1/TOTDEV/MTIE), що обчислює ті самі однозначно визначені оцінювачі; збіг у межах відносної похибки <1e-9. Відтворюється офлайн за допомогою tests/fixtures/mdev_tdev/generate_mdev_tdev_reference.py. (Керований даними phasedat_reference.rs також перевіряє їх за Stable32 з точністю 1e-3; це жорстка, завжди ввімкнена герметична перехресна перевірка)allan (modified_adev, time_deviation)
Стабільність частоти оптичного годинника на реальній виміряній кривійВідновлення степеневого закону (білий FM + червоний шумовий поріг) методом NNLS за опублікованою виміряною девіацією Аллана оптичного годинникового переходу ⁸⁸Sr — відтворення σ_y(τ) і головного масштабування 4.7e-16/√τ на малих τ зі справжнім виміряним порогом на довгих τ, а не синтезованим порогом оптичного класу, який holdover.rs інакше припускаєVALIDATEDNorcia, Young, Eckner, Oelker, Ye, Kaufman, Science 366:93 (2019), рис. 4, виміряна ADEV; крива взята дослівно з Zenodo 10.5281/zenodo.3382347 (CC-BY-4.0). Обмежено відтворенням опублікованої виміряної кривої стабільності — показники пристроїв holdover до порогу для класу годинника залишаються MODELLEDquantum_trade (qparams_from_adev_curve), powerlaw
Цілісність (RAIM/ARAIM/SBAS)Розділення розв'язків за множинними гіпотезами ARAIM згідно з ARAIM Airborne Design Document (ADD) v4.2 (araim_reference::add_v42_protection_levels і add_v42_protection_levels_ecef: визначення підмножин за правилами P_THRES і FC_THRES, VPL, HPL, ефективний поріг монітора EMT і sigma_acc); виявлення збоїв знімкового RAIM за хі-квадрат з виключенням одного супутника (raim::snapshot_raim, raim::snapshot_raim_fde) і HPL/VPL на основі нахилу в геодезичній локальній площині; а також комбінування рівнів захисту SBAS DO-229E (sbas::sbas_protection_level) на сервісі L1. НЕ охоплено, стверджується прямо: зручні функції з однаковою сигмою raim::araim_raim і raim::araim_dual_raim НЕ відповідають ADD (на узгоджених вхідних даних вони розходяться зі Stanford MAAST на 0,75 м VPL / 4,04 м HPL та 0,39 м VPL / 1,93 м HPL, це висновок); порівняння двочастотного багатоугруповального (DFMC) SBAS L5 є висновком (308 пар «користувач-епоха» без GEO у видимості захищено Kshana, але не MAAST, чий вентиль приймання GEO Kshana не моделює); raim::solution_separation_raim не має зовнішнього порівнянняVALIDATEDТри незалежні інструменти, попередньо зареєстровані (0123cee1) до появи будь-яких тестових даних чи виходу оракулів, допуски зафіксовано тоді ж. (1) ARAIM: Stanford MAAST для ARAIM 2 (коміт ab70e2a3, BSD-3) mhss_raim_baseline_v5.m, запущений як окрема програма під GNU Octave 8,4 зі шимом сумісності unique() на боці драйвера (розкрито, без зміни алгоритму), за ADD TOL_PL у 0,05 м: код на Rust відтворює еталонну реалізацію ADD на 270 реальних випадках. Розкрито: шлях ADD у Kshana було написано після попередньої реєстрації за ADD так, як його реалізує MAAST; незалежний holdout рецензента (270 нових геометрій користувача та друге повідомлення підтримки цілісності, MAAST перезапущено проти замороженого коду) пройдено за того самого порогу. (2) Знімковий RAIM: RTKLIB v2.4.2-p13 (BSD-2) estpos/valsol/raim_fde в окремій обв'язці на C для виявлення та виключення; PL за нахилом з RTKLIB matinv/xyz2enu плюс SciPy 1.18.1 chi2/ncx2, де обидві сторони обчислюють той самий замкнений вираз (Браун; Паркінсон і Аксельрад), тож перевірка PL охоплює реалізацію, а не формулу. (3) SBAS: Stanford MAAST (коміт 7d32b049) usr_vhpl, без змін, на власних записаних трансляціях WAAS у MAAST: рівні L1 у межах 1e-4 м після перемасштабування K і однакова множина захищених. Ті самі порівняння дали висновки, наведені в описі можливості: функції ARAIM з однаковою сигмою не відповідають ADD, а рівність множин L5 порушується на 308 парах без GEO у видимості (рівні на 3267 парах, які захищають обидва інструменти, збігаються до 1e-13 м). K-коефіцієнти DO-229E/DO-316 є переписаними сталими, а реальна геометрія є вхідними даними; жодне з них не зараховується як оракул. Перегляд 0,30: рівні захисту snapshot_raim перенесено з радіальної до геодезичної локальної площини (до 0,31 м HPL і 0,14 м VPL на 16 град п. ш.)araim_reference (add_v42_protection_levels, add_v42_protection_levels_ecef); raim (snapshot_raim, snapshot_raim_fde, araim_raim, araim_dual_raim, solution_separation_raim); sbas (sbas_protection_level); lunar
Поширення та визначення орбітиSGP4/SDP4, Cowell 6-DOF + збурення, пакетне/послідовне ODVALIDATEDВерифікаційні вектори SGP4 за AIAA 2006-6753sgp4, propagator, orbit_determination, precise_od
Чисельний пропагатор Cowell і модель силЧисельний пропагатор Cowell з ієрархічною моделлю сил (двотільна, зональні J2–J6, третє тіло Сонця/Місяця, гарматне ядро SRP, експоненційний опір); RK4 з подвоєнням кроку / DP5(4) / DOP853VALIDATEDOrekit 12,2 (CS GROUP, Apache-2.0) NumericalPropagator/DormandPrince853 — незалежна бібліотека, інший інтегратор і інша рекурсія сферичних гармонік. Консервативні рівні (двотільна → зональні J2–J6 → третє тіло Сонця/Місяця → гарматне ядро SRP) збігаються із субметровою точністю на дузі 24 год, що підтверджує інтегратор і алгебру сил; рівень опору та абсолютна точність вхідних даних ефемерид Сонця/Місяця й густини залишаються MODELLED (лише характеризація)propagator, forces
Тінь SRP для сплюснутої Землі (за вибором)Освітлена частка SRP з еліпсоїдом WGS-84 як тілом, що затуляє (видимий радіус Землі від лімба еліпсоїда в напрямку Сонця, формула подвійного диска-лінзи; srp_shadow::oblate_conical_shadow), вмикається за вибором у моделі сил Cowell через propagator::ForceModel::srp_shadow (за замовчуванням: сферична конічна тінь, без змін)VALIDATEDOrekit 12,2 (Apache-2.0) SolarRadiationPressure.getLightingRatio із затуляючим тілом WGS-84 і сферичним OneAxisEllipsoid, запущений як окрема програма з Сонцем у тому самому інерційному положенні. Пороги попередньо зареєстровано в xval/srp-oblate-shadow-orekit/PREREGISTRATION.md (6d6d269c): 1e-6 для обох і розкид сплюснутої проти сфери > 1e-2; усі виконано (met). Вісь еліпсоїда — інерційна вісь z з обох боків (без прецесії-нутації)srp_shadow, forces (srp_accel_with_lit_fraction), propagator
SRP «коробка з крилами» та ECOM2 із частинними похідними (за вибором)Не гарматне ядро SRP: плоскопанельна модель «коробка з крилами» (Vallado рівн. 8-44; односторонні панелі корпусу, крила, спрямовані на Сонце) з таблицями Galileo FOC, IOV і IOV наприкінці строку служби з метаданих супутників GSC, за номінального керування рисканням ГНСС, з аналітичними частинними похідними за фактором випромінювання та дзеркальним і дифузним коефіцієнтами кожної панелі; а також емпірична модель ECOM2 (D2/B1) з її частинними похідними. «Коробка з крилами» вмикається за вибором у пропагаторі Cowell (propagator::ForceModel::box_wing_srp із заданням його поля srp_boxwing) і в моделі прецизійного визначення орбіти (precise_od::PreciseForceModel::box_wing_srp), замінюючи член гарматного ядра з cr як фактором випромінювання; обидва за замовчуванням дорівнюють None, залишаючи кожен наявний шлях побайтно ідентичним. ECOM2 не підключено до жодної моделі силVALIDATEDOrekit 12,2 (Apache-2.0) BoxAndSolarArraySpacecraft з FixedPanel і PointingPanel, SolarRadiationPressure(dRef = 1 а. о., pRef = 1361/c), GenericGNSS nominal yaw і ECOM2(nD = 2, nB = 1), запущений як окрема програма із Сонцем у фіксованих інерційних положеннях; похідна фактора випромінювання з Hipparchus Gradient, похідні кожної панелі як центральні різниці Orekit (в Orekit їх немає). Пороги попередньо зареєстровано в xval/srp-boxwing-orekit/PREREGISTRATION.md (e59df6bf) до появи будь-якого виходу Orekit: 1e-12 відносно (1e-11 наскрізно, 1e-9 для різниць); усі виконано (met) (RESULTS.md). VALIDATED охоплює лише обчислення моделі: таблиці GSC є переписаними вхідними даними, а адекватність «коробки з крилами» для реальних орбіт Galileo, теплове перевипромінювання, модифікований закон рискання за малого бета і заходи в тінь не охоплено; прогноз SRP для Galileo залишається MODELLEDsrp_boxwing, propagator, precise_od
Тінь SRP із потемнінням Сонця до краю (за вибором)Освітлена частка SRP як незатулена частка сонячного потоку з потемнінням до краю (закон наближення Еддінгтона I(mu)/I(1) = 2/5 + 3/5 mu, квадратура Гаусса–Лежандра) над сферичною або WGS-84 Землею (srp_shadow::limb_darkened_shadow, варіант ShadowModel OblateEarthLimbDarkened)MODELLEDЗовнішнього немає: в Orekit 12,2 немає коефіцієнта освітлення з потемнінням до краю. Перевірено лише за замкненими виразами того самого законуsrp_shadow
Густина термосфери за NRLMSISE-00Порт емпіричної термосфери NRLMSISE-00 (gtd7 і gtd7d: густини видів, повна масова густина з аномальним киснем, температури; 24 перемикачі; режими добового Ap і 3-годинного масиву ap) з версії на C із суспільного надбання, створеної з NRL FortranVALIDATEDpymsis 0.13.0 (MIT) version=0, що запускає NRL Fortran GTD7D в одинарній точності, і порт NRLMSISE-00 на C (випуск 20190709, суспільне надбання), скомпільований як окрема програма, а також 17 опублікованих тестових виходів дистрибутива на C. Пороги попередньо зареєстровано в xval/nrlmsise00-pymsis/PREREGISTRATION.md (e90ae26a) до появи порту; усі виконано (met) (RESULTS.md). Перевіряє порт, а не точність моделі відносно виміряної густиниnrlmsise00
Рівень густини опору за NRLMSISE-00 (за вибором)forces::DensityModel (Exponential за замовчуванням, Nrlmsise00 { f107a, f107, ap }) і propagator::ForceModel::drag_density: квадратичний опір проти співобертної атмосфери з густиною NRLMSISE-00 у геодезичній точці WGS-84 (кут обертання Землі з UT1 = TT, місцевий сонячний час UT + lon/15), стала космічна погода для кожної моделі; за замовчуванням вимкнено й побітово ідентичноVALIDATEDOrekit 12,2 (Apache-2.0) NumericalPropagator/DormandPrince853 із DragForce над власною реалізацією NRLMSISE00 в Orekit, запущений як окрема програма з тією самою системою відліку за кутом обертання Землі, формою WGS-84, умовністю місцевого сонячного часу (середнє Сонце) і TT як UT; налаштування умовностей перевірено оракул проти оракула (Orekit проти pymsis, 5.2e-5 за густиною). Пороги попередньо зареєстровано в xval/drag-tier-orekit/PREREGISTRATION.md (21647478): 0,5 м + 1e-3 зсуву від опору і дві перевірки чутливості > 100 м; усі виконано (met). Не охоплено: точність моделі відносно виміряної густини, змінна в часі космічна погода, ланка GMATforces (density_at, drag_accel_with_density), propagator
Експоненційний опір за замовчуванням проти незалежної реалізації (екваторіальний)Опір пропагатора Cowell за замовчуванням: квадратичний опір проти співобертної атмосфери із forces::atmospheric_density, кусково-експоненційною таблицею з Vallado, таблиця 8-4, на сферичній висоті (propagator::ForceModel::drag зі стандартним варіантом Exponential у forces::DensityModel)VALIDATEDGMAT R2022a (NASA GSFC, Apache-2.0) GmatConsole з атмосферою Exponential (та сама 28-смугова таблиця), точковою масою Землі та PrinceDormand78, запущений, ніколи не вбудований у код. Пороги попередньо зареєстровано в xval/drag-exponential-gmat/PREREGISTRATION.md (640c85c1) за зсувом від опору з кожного боку (прогін з опором мінус без опору), що скорочує два значення mu Землі та інтегратори; усі виконано (met) (RESULTS.md). GMAT приймає геодезичну висоту, а kshana — сферичну: вони збігаються лише на екваторі, тож VALIDATED охоплює екваторіальні орбіти; поза екватором моделі відрізняються за задумом (10,4 % зсуву за 24 год за 51,6 град, 400 км). Публічна збірка GMAT не має NRLMSISE-00 (плагін відсутній), тож рівень NRLMSISE-00 має лише оракул Orekit. Точність таблиці відносно виміряної густини не охопленоforces (atmospheric_density, drag_accel), propagator
Сонце та Місяць за DE440 у моделі сил Cowell (за вибором)Рівень ефемерид за вибором для членів третього тіла та SRP чисельної ForceModel Cowell: геоцентричні Сонце та Місяць із будь-якого EphemerisProvider (ядро DE440 SPK через KernelEphemeris) у TDB = TT + (TDB - TT), з відмовою постачальнику, який не може обслужити епоху, і підрахунком будь-якого повернення до аналітичного ряду; за замовчуванням вимкненоMODELLEDOrekit 12,2 (Apache-2.0) NumericalPropagator/DormandPrince853 з ThirdBodyAttraction і SolarRadiationPressure на власному читачі DE440 в Orekit (orekit-data lnxp1990.440), запущений як окрема програма; kshana читає побітово точний, звірений зі SPICE зріз NAIF de440s.bsp. Пороги попередньо зареєстровано в xval/propagator-de440-orekit/PREREGISTRATION.md (22a5a01d). Поріг орбіти (0,5 м) і контроль чутливості виконано, але поріг положення Сонця/Місяця (3 м / 0,2 м) не досягнуто: 6,39 м / 0,244 м. SPICE, що читає те саме ядро на його точному TDB, розходиться з Orekit на таку саму величину (6,25 м / 0,240 м), тож розбіжність лежить між шляхом de440s у NAIF і читачем DE440 або шкалою часу в Orekit; причину не відокремлено. Зафіксовано й закріплено, тож рядок залишається MODELLEDpropagator (ForceModel::with_ephemeris, ForceEphemeris), ephem_provider
Атмосферний приплив S1 (за вибором)Добовий атмосферний приплив S1 від тиску повітря як збурення геопотенціалу: модель N1 Б'янкале та Боде (2006), степені від 2 до 6, за формулою навантаження IERS 2010 рівн. 6,21 (tides::atmospheric_tide_s1, s1_air_tide_acceleration), вмикається за вибором у моделях сил Cowell і прецизійній (air_tide_s1, за замовчуванням вимкнено)MODELLEDЗовнішнього немає для ефекту геопотенціалу. 24 коефіцієнти переписано з GFZ STR06/01, таблиця 1, модель N1, і перевірено рядок за рядком за звітом (SHA-256 890865ae); степені 0, 1, 7 і 8 не використовуються. Рей і Понте (2003) не друкують таблиці сферичних гармонік, тож другого джерела для порівняння не булоtides, propagator, precise_od
Коефіцієнти атмосферного припливу S2 в умовностях IERSГармоніки тиску повітря S2 за Реєм (2001) (n <= 4, прямі й зворотні) перетворено до повністю нормованої форми з випередженням за синусом за рівняннями IERS 2010 6.20-6.21 (амплітуду поділено на N_nm, epsilon = 90 град - psi) і застосовано як член S2 у tides::atmospheric_tideVALIDATEDBiancale і Bode, GFZ Scientific Technical Report STR06/01 (2006), таблиця 5, модель A2: Рей (2001), опублікований у повністю нормованих гармоніках із фазами з випередженням за синусом, незалежне подання тієї самої моделі. Попередньо зареєстровано в xval/s2-air-tide-fix/PREREGISTRATION.md (5e31c37a) разом із виправленням, яке воно перевіряє. Охоплює лише перетворення коефіцієнтів; геопотенціальний ефект атмосферного припливу не має зовнішнього оракулаtides (s2_air_waves, atmospheric_tide)
Тесеральний геопотенціал у пропагаторі CowellТесеральне поле EGM2008 за вибором (до степеня/порядку 70) як центральна гравітація чисельної ForceModel Cowell, яке обчислюється в земній системі координат, повернутій на кут обертання Землі IAU 2000 (або за ланцюжком CIO GCRS-ITRS); за замовчуванням вимкнено, тож жоден наявний вихід не змінюєтьсяVALIDATEDOrekit 12,2 (CS GROUP, Apache-2.0) NumericalPropagator/DormandPrince853 з HolmesFeatherstoneAttractionModel за тими самими коефіцієнтами (tools/egm2008_to70.gfc) у системі координат тіла, повернутій за тією самою формулою кута обертання Землі, запущений як окрема програма. Пороги попередньо зареєстровано (f0e0e65, змінено до будь-якого порівняння в 2da899a): |dr| <= 0,5 м і |dv| <= 5e-4 м/с, а обидва негативні контролі розходяться більш ніж на 100 м; усі виконано (met), після чого пороги посилено до 0,1 м і 1e-4 м/с. Не перевірено: точність орієнтації Землі (обидва боки використовують UT1 = TT без прецесії-нутації в системі Era), варіант системи Cio (лише внутрішня перевірка), степені вище 70propagator (Geopotential, EarthFixedFrame), gravity_sh
Високостепенева сферично-гармонічна гравітація (EGM2008 до 2190)Обчислення повністю нормованого поля до степеня 2190, безпечне щодо антипереповнення та полюсів (SphericalHarmonicField::acceleration_hf / potential_hf, модифікований прямий стовпець Holmes-Featherstone 2002 з градієнтом без 1/cos phi), потоковий завантажувач ICGEM .gfc (from_gfc_file / from_gfc_reader; повний EGM2008 завантажується під час виконання, а не постачається разом із кодом) і обчислювач Holmes-Featherstone, який можна вибрати в опційному Cowell GeopotentialMODELLEDOrekit 12,2 (Apache-2.0) HolmesFeatherstoneAttractionModel і pyshtools 4.14.1 (BSD-3-Clause) MakeGravGridPoint, запущені як окремі програми; пороги попередньо зареєстровано в xval/high-degree-gravity/PREREGISTRATION.md (276c869f) і xval/cowell-tesseral-200-orekit/PREREGISTRATION.md (0aa312a6). Orekit збігається скрізь, де він визначений, але pyshtools не досягає свого попередньо зареєстрованого порогу у двох точках поблизу полюса (до 7.3e-10 м/с^2; 50-значна перевірка в mpmath відносить похибку на pyshtools), немає значення оракула точно на полярній осі, а попередньо зареєстрований контроль чутливості за степенем 70 для орбіти на 24 год не спрацював (0,726 м проти > 1 м). Кожен промах зафіксовано, а не підігнано, тож рядок залишається MODELLEDgravity_sh, propagator (FieldEvaluator)
Інтегратор DOP853Явний метод Рунге–Кутти Hairer DOP853 8(5 3) із комбінованим оцінювачем похибки 5-го/3-го порядку, контролером кроку SciPy/Hairer, автоматичним початковим кроком, захисним обмежувачем кроку з відмовою за замовчуванням і щільним виходом 7-го порядку; вибирається як варіант Integrator пропагатора Dop853 / propagator::propagate_dop853VALIDATEDSciPy 1.18.1 (BSD-3-Clause) solve_ivp(method=DOP853) та його підпрограми одного кроку, норми похибки, щільного виходу й початкового кроку, незалежна реалізація; точні двотільні стани з mpmath 1.3.0 із 40 цифрами. Пороги попередньо зареєстровано в xval/dop853-scipy/PREREGISTRATION.md (ae1b25e) до першого порівняння; усі виконано (met) (xval/dop853-scipy/RESULTS.md). Перший крок SciPy передається обом розв'язувачам у повних прогонах; підпрограма початкового кроку порівнюється окремо. Не охоплено: RKF7(8), виявлення жорсткості, пошук подійintegrator, propagator
Надійний розв'язувач рівняння КеплераЕліптичний розв'язувач Кеплера для всіх 0 <= e < 1 і всіх середніх аномалій: кубічний початковий набір і виправлення п'ятого порядку за Markley (1995), залишок без скорочення (1-e)E + e(E - sin E) - M і захищене уточнення Ньютона (kepler::solve_kepler_markley, propagator::solve_kepler_robust)VALIDATEDmpmath 1.3.0 (BSD-3-Clause), 50-значні корені за точними двійковими вхідними даними. Пороги попередньо зареєстровано в xval/kepler-mpmath/PREREGISTRATION.md (df22174), задано відносно |E| з аргументом обумовленості e -> 1, M -> 0; усі виконано (met) (xval/kepler-mpmath/RESULTS.md). Застарілі розв'язувачі (solve_kepler_checked, orbit::solve_kepler, ephem::solve_kepler) чисельно не змінено, оскільки від них залежать закомічені виходи, і цей рядок їх не охоплюєkepler, propagator
Пакетне визначення орбіти за швидкістю зміни дальності та az/el із маскуванням станціїВідновлення стану на епоху зі змішаних вимірювань дальності, швидкості зміни дальності та азимута/кута місця вище маски кута місця методом Гаусса–Ньютона за H = (dh/dx(t)) Phi(t, t0): аналітичні частинні похідні вимірювань і варіаційна матриця переходу стану з аналітичними двотільними частинними похідними + J2 (інтегрована RK4, а не STM у замкненому вигляді)MODELLEDOrekit 12,2 (Apache-2.0) BatchLSEstimator із власними миттєвими геометричними вимірюваннями RangeRate і AzEl (перехресно перевіреними за TopocentricFrame в Orekit), запущений як окрема програма на ідентичних замаскованих спостереженнях із зерном. Пороги попередньо зареєстровано в xval/od-measurements-orekit/PREREGISTRATION.md (0cf9076). Усі пороги виконано, крім B4, узгодження стану без шуму в 1 см, яке не досягнуто у 2 із 4 сценаріїв (1,46, 1,74 см): власна безшумна оцінка Orekit лежить на такій відстані від його змодельованої істини (причину з боку Orekit не відокремлено). Зафіксовано й закріплено, тож рядок залишається MODELLED. Не змодельовано: час проходження світла, аберацію, рефракцію, обертання Землі, послідовний фільтр для цих типів вимірюваньorbit_determination (determine_orbit_batch_tracking, propagate_with_stm, is_visible), batch_ls (gauss_newton_analytic)
Зважування спостережень за кодом точності SP3Відображення кодів точності SP3 (заголовок ++ показники степеня у 2^n мм, база %f, стандартні відхилення base^n мм для кожного запису) на сигми положення для кожного спостереження для рушія прецизійного визначення орбіти (sp3::parse_sp3_accuracy, Sp3Accuracy::position_sigma_m)MODELLEDЗовнішнього немає: ваги є вибором моделювання (формат SP3 визначає код лише як показник точності від виробника; тут його читають як однорозмірну сигму для кожної осі). Наявні записані прогони агентств не зміненоsp3, precise_od
Гравітаційні поля планет із таблиць PDS SHADRЧитання таблиць сферичних гармонік PDS SHADR (from_shadr у SphericalHarmonicField в src/gravity_pds.rs: перетворення одиниць, задане C00 = 1, перевірки повноти та нормування) і обчислення гравітації в системі, пов'язаній з тілом, для Mars GMM-3 (d/o 120) та місячного поля GRAIL GL0660B (d/o 660)VALIDATEDpyshtools 4.14.1 (BSD-3-Clause), що читає ті самі файли PDS і обчислює точкову гравітацію, запущений як окрема програма, а також опубліковані заголовки й мітки продуктів PDS. Пороги попередньо зареєстровано в xval/planetary-gravity-pyshtools/PREREGISTRATION.md (32c5b50); усі виконано (met) (RESULTS.md). Дані: NASA PDS Geosciences Node, суспільне надбання; вирізки степеня 20 постачаються з NOTICE, повні файли завантажуються під час тестуванняgravity_pds, gravity_sh
Приєднання опублікованого гравітаційного поля до тілаwith_gravity_field (у Body, в src/gravity_pds.rs): приєднує будь-яке завантажене сферично-гармонічне поле (наприклад, GMM-3 або GL0660B) до Body, щоб пропагатор обчислював його в системі, пов'язаній з тілом; за вибором, тіла за замовчуванням не змінюютьсяMODELLEDЛише внутрішня узгодженість. Кожне опубліковане поле визначене в системі координат його виробника, пов'язаній з тілом (GMM-3 — у марсіанській системі Konopliv et al. 2006, GL0660B — у місячній головноосьовій системі DE421), тоді як поле обчислюється в системі IAU; зсув не змодельованоgravity_pds, body, propagator, mars_frame
Пакетне та послідовне визначення орбітиВідновлення стану на епоху [r,v] за дальностями від наземної станції за допомогою пакетного диференціального корегувальника Гаусса–Ньютона та послідовного фільтра на двотільній моделі сил + J2VALIDATEDOrekit 12,2 (CS GROUP, Apache-2.0) BatchLSEstimator (Левенберг–Марквардт) + KalmanEstimator (EKF) — незалежна стороння бібліотека оцінювання на узгодженій моделі сил; відновлений стан на епоху та RMS залишків після підгонки збігаються до <1e-3 м без шуму та <3 м за шумового порогу 5 мorbit_determination, precise_od (batch_ls::gauss_newton, fusion::ukf)
Радіометричний розв'язувач часу проходження світла для далекого космосуЗапізнений (низхідна гілка) односторонній розв'язок часу проходження світла τ = |r_rx − r_target(t−τ)|/c для радіометричної навігації далекого космосу (Земля→Марс/Сонце/Місяць)VALIDATEDANISE 0,10 (Nyx Space, MPL-2.0), час проходження світла з аберацією за збіжним Ньютоном (Aberration::CN; еквівалент SPICE spkapo) над JPL DE440 — незалежна реалізація SPICE на Rust; розв'язувач запізнення kshana з нерухомою точкою збігся із субнаносекундною точністю. Ширші показники Доплера / Шапіро / OD зі зниженою динамікою залишаються MODELLEDradiometric (light_time_solution)
Положення супутника за бортовими ефемеридами (багатосистемний RINEX)Положення супутника в ECEF за кеплеровими бортовими ефемеридами IS-GPS-200 / Galileo-OS / BeiDou-OS з розібраного навігаційного запису RINEX-3VALIDATEDRTKLIB v2.4.2-p13 eph2pos(), скомпільований з коду на C (T. Takasu, BSD-2-Clause) — незалежна реалізація IS-GPS-200/SIS-ICD, якій подано ті самі навігаційні записи RINEX-3; положення супутника в ECEF збігається приблизно до 62 нм. (Інтерполяція прецизійних ефемерид SP3 перевіряється окремо — див. «Інтерполяція прецизійних ефемерид SP3»)rinex (parse_nav, RinexEphemeris::sv_position_ecef)
Інтерполяція прецизійних ефемерид SP3Інтерполяція положень супутників за прецизійними ефемеридами SP3 за стандартом IGS методом Лагранжа з поправкою на обертання Землі для кожного вузла (кожен вузол обертається на ω⊕·(t_node−t) у земну систему координат на момент запиту перед підгонкою полінома)VALIDATEDRTKLIB peph2pos(), скомпільований з коду на C (preceph.c; T. Takasu, BSD-2-Clause) — де-факто еталон IGS, незалежна реалізація; інтерполятор kshana (тепер із тією самою поправкою на обертання Землі для вузлів) збігся приблизно до 15 нм на реальному продукті SP3, замість ~5,5 см до поправкиsp3 (Sp3Interpolator::position_ecef)
Кодувальники навігаційних повідомлень, окрім GPS LNAV (GPS CNAV, Galileo I/NAV і F/NAV)Типи повідомлень GPS CNAV 10/11/30, типи слів Galileo I/NAV 1-5 у номінальних парних/непарних сторінках і типи сторінок Galileo F/NAV 1-4: пакування та квантування полів за ICD, CRC-24Q, згорткове кодування зі швидкістю 1/2 K=7 (G2 інвертовано для Galileo), блочне перемежування та синхропослідовності, з відповідними тестовими декодерамиMODELLEDЛише внутрішній круговорот і відомі відповіді за ICD; жодного стороннього декодера не запускалося (обв'язка RTKLIB/GNSS-SDR, що читає KSHANA_NAVMSG_ORACLE_JSON, залежить від наявності даних). MODELLEDgnss_navmsg (gps_cnav, gal_inav, gal_fnav, fec)
Зчитувач глобальної іоносферної карти IONEX та інтерполяція на реальній GIM від CODEЗчитувач IONEX 1,0 (заголовок, значення I5 у фіксованих стовпцях, карти TEC і RMS, абсолютні епохи, пропущені значення) з білінійною просторовою інтерполяцією, часовою інтерполяцією формату «найближча / послідовна / повернута карта» (рівн. 1-3) та похилим TEC у тонкій оболонціVALIDATEDНадруковані значення GIM від CODE (точні в кожному вузлі; карту завантажують під час тестування, а не постачають із кодом, оскільки її ліцензію не підтверджено) та незалежна повторна реалізація формул інтерполяції IONEX 1,0 на стандартній бібліотеці Python, закомічена разом із тестовими даними (пороги попередньо зареєстровано e4d8b1f, 1e-9 TECU). Перевірка третьою стороною (B6, попередньо зареєстрована, перший прогін): RTKLIB v2.4.2-p13 iontec (BSD-2-Clause, запущений як окремий інструмент) у 6885 точках запиту збігається з IonexFile::vtec_at до 3.6e-13 TECU в обох режимах інтерполяції за порогу 1e-5 TECU. Залежить від наявності даних: GIM від CODE завантажують під час тестування, закріплено за SHA; RTKLIB читає повний файл, оскільки його getindex відхиляє обрізання за широтою. tests/fixtures/ionex_code_gim/fetch.sh завантажує його та перевіряє SHA-256, тест завершується невдачею на будь-яких інших байтах, а run_rtklib.sh є задокументованим шляхом відтворення (потрібен доступ до мережі). Підвищено до VALIDATED за рішенням власника на підставі доказів, що залежать від наявності даних (2026-10-13)ionex (parse_ionex, parse_ionex_file, IonexFile::vtec_at, IonexFile::slant_tec_at, interpolate_tec_in_time, TecGrid::vtec_at)
Згладжування коду за несівною за Hatch на реальних спостереженнях RINEXФільтр Hatch без розбіжності (безіоносферний код, що несе безіоносферна несівна, вікно з N епох, перезапуск при втраті захоплення, стрибку геометрично-вільної комбінації або пропуску) у складанні прецизійного одноточкового позиціонуванняMODELLEDВИСНОВОК за опублікованою координатою ITRF2020 WTZR: попередньо зареєстровані пороги (медіана та p95 після згладжування не більше 0,6 × сирого; tests/fixtures/gnss_wettzell_2025055/PREREGISTRATION_HATCH.md) не досягнуто, відношення 0,718 і 0,923; залишкова похибка на рівні метрів має характер зміщення (кодове зміщення C1C, антена, припливи, довгоперіодна багатопроменевість), а не білий шум, який усуває згладжування. MODELLED: статистику фільтра перевірено внутрішньоhatch (HatchFilter), pvt (assemble_epoch_precise_smoothed, CarrierSmoother)
Подвійні різниці RTK із цілочисельною фіксацією LAMBDA на реальних спостереженнях RINEXВідносне позиціонування на короткій базі за реальним двочастотним кодом і фазою несівної GPS: подвійні різниці відносно найвищого супутника з повною коваріацією, фільтр Калмана з дійсними значеннями за базовою лінією та одинарно-різницевими неоднозначностями з повторною ініціалізацією після зривів, цілочисельний метод найменших квадратів LAMBDA з тестом відношення та базова лінія, обумовлена зафіксованими цілими числамиVALIDATEDОпубліковані координати ITRF2020 для WTZR і WTZZ (IGN ITRF2020_GNSS.SSC, розв'язок 3, з висотами антен із RINEX), що дають еталонну базову лінію; пороги попередньо зареєстровано в tests/fixtures/gnss_wettzell_2025055/PREREGISTRATION_RTK.md до написання коду. Лише коротка база: іоносферні та тропосферні подвійні різниці не моделюютьсяrtk_real (run_rtk), lambda (resolve)
Розв'язок часу за годинником приймача PPP проти фінального станційного годинника IGSГодинник приймача, оцінений статичним фільтром PPP з дійсними неоднозначностями на реальному двочастотному коді та фазі GPS із фінальними орбітами й годинниками IGS: передавання часу від приймача до часу IGS, безіоносферний розв'язок часу PPP.VALIDATEDФінальний комбінований годинник IGS для станції WTZR (записи AR файла IGS0OPSFIN_20250550000_01D_05M_CLK, SHA-256 d19f3d45...993d, комбінація мережевих розв'язків кількох аналітичних центрів; продукти IGS, вільне використання із зазначенням авторства); пороги попередньо зареєстровано в xval/ppp-time/PREREGISTRATION.md до будь-якого порівняння; усі витримано з першого прогону. ЧОГО НЕМАЄ: одна станція і одне двогодинне вікно після збіжності; час IGS, а не UTC(k); стале зміщення містить кодові зміщення приймача та є обмеженим, а не відкаліброваним; простежуваності до Circular T немає.ppp_real (run_ppp, PppEpoch::clock_m)
Прецизійне точкове позиціонування з дійсними неоднозначностями на реальних спостереженнях RINEXСтатичний розширений фільтр Калмана PPP з дійсними неоднозначностями на реальному двочастотному коді та фазі несівної GPS із фінальними орбітами й годинниками IGS: безіоносферна комбінація, зсуви антен супутника та приймача (варіації приймача), твердоземний приплив, фазове намотування, затримка Шапіро, оцінена зенітна волога затримка, дійсні неоднозначності на кожній дузі з виявленням зривів за геометрично-вільною комбінацією / Мельбурна–ВюббенаVALIDATEDОпублікована координата ITRF2020 для WTZR (IGN ITRF2020_GNSS.SSC, розв'язок 3, пропагована з її швидкістю) — пороги попередньо зареєстровано в tests/fixtures/gnss_wettzell_2025055/PREREGISTRATION_PPP.md до написання фільтра; розробка лише на сумісно розташованій станції WTZZ. Не змодельовано: океанічне навантаження, PCV супутника, розв'язання цілочисельних неоднозначностейppp_real (run_ppp, parse_antex_receiver, solid_tide_ecef, phase_windup)
Читання навігаційних файлів RINEX 4Навігаційні файли RINEX 4.00-4.02: записи > EPH GPS LNAV, Galileo I/NAV і F/NAV, BeiDou D1/D2 та QZSS LNAV, декодовані в тип бортових ефемерид; записи CNAV, CNV1-3, FDMA, SBAS, STO, EOP та ION пропускаються до заголовка наступного запису; запис, заголовок якого називає інший супутник, або обрізаний запис відхиляєтьсяVALIDATEDОб'єднаний бортовий файл RINEX 3 від IGS за той самий день (опубліковані дані, створені іншим генератором файлів з тих самих бортових повідомлень); пороги попередньо зареєстровано в tests/fixtures/brdc_rinex4_2026200/PREREGISTRATION.md (7aa264b) до першого прогонуrinex (parse_nav, parse_nav_with)
Читання файлів спостережень RINEX 4Заголовки спостережень RINEX 4.0x (DOI, LICENSE OF USE, STATION INFORMATION, MERGED FILE; мітки зіставляються в стовпцях 61-80 для версії 4 і новіших) і записи епохMODELLEDВідповідність формату на реальному опублікованому файлі RINEX 4,00 (прочитані назад значення дорівнюють надрукованим у файлі літералам) і на заголовку, виведеному зі специфікації; незалежного зчитувача не запускалося, тож MODELLEDrinex_obs (parse_obs)
Положення геостаціонарного супутника BeiDou за бортовими ефемеридамиПоложення геостаціонарного супутника за бортовими ефемеридами за BDS-SIS-ICD-B1I v3.0 §5.2.4.12 (квазіінерційна система, потім Rz(Ω̇e·tk)·Rx(−5°)), вмикається за вибором через поле include_beidou_geo в NavParseOptions, тож стандартний зчитувач і далі пропускає GEOMODELLEDПопередньо зареєстровано (7aa264b, 110fef9) проти прецизійної орбіти IGS MGEX з GEO; такого продукту не було доступно із сеансу, який це створював, тож порівняння очікується, а рядок є MODELLED (перевірено лише за опублікованими номінальними слотами GEO)rinex (RinexEphemeris::sv_position_ecef_bds_geo, NavParseOptions)
Інтерполяція прецизійних годинників SP3Зсув годинника супутника між табличними вузлами годинників SP3 лінійною інтерполяцією між двома суміжними дійсними вузлами (схема pephclk в RTKLIB; сигнальне значення поганого годинника пропускається), а ті самі вузли подаються в ланцюжок прецизійних продуктів як записи, еквівалентні годинникам RINEXVALIDATEDФінальна комбінація годинників супутників IGS на 30 с (IGS0OPSFIN 30S CLK, 2025-02-24): опубліковані оцінки годинників на моменти запиту, не інтерпольовані із SP3; пороги попередньо зареєстровано в tests/fixtures/sp3_clock_igs_oracle/PREREGISTRATION.md до першого прогону (RMS 0,15 нс, p95 0,30 нс, медіана вузлів 1e-12 с, розрізнення 2x)sp3 (Sp3File::clock_s, clock_nodes), precise_products (ClockRinex::from_sp3)
Тісно зв'язана GNSS/INS на фазі несівної з дійсними неоднозначностямиEKF у просторі помилок над 15 станами INS, двостановим годинником приймача та однією дійсною неоднозначністю несівної на кожен супутник, що відстежується; псевдодальність, фаза несівної та необов'язкова швидкість зміни дальності від угруповання SGP4 Walker (час проходження світла та ефект Саньяка), поправки Klobuchar і Saastamoinen/Niell, що застосовуються в контурі на власному положенні фільтра; виявлення зривів за часово-диференційованою несівною з порогом для кожного супутника, розширеним за невизначеністю швидкості; повторна ініціалізація неоднозначностей після зривів і повторного захопленняMODELLEDВнутрішня узгодженість: вимірювання синтезуються з моделей, які використовує фільтр (χ² NEES/NIS за зернами, збіжність без шуму, ін'єкція зриву). MODELLED; реальних даних приймача чи стороннього фільтра для порівняння немаєfusion::carrier_tc (run_carrier_tc, CarrierTcCfg), fusion::trajectory (truth_epochs)
Пакети GNSS/INS для морського, залізничного й авіаційного застосування з опцією тісного зв'язуванняТри сценарії gnss-ins на бібліотеці траєкторій (судно, що маневрує на 8 м/с, з п'ятихвилинним перебоєм; потяг, що проходить крізь виїмку з двома супутниками і тунель; літак, перебій якого охоплює віраж із креном 25 градусів) і необов'язкова таблиця [tight] пакета: псевдодальності від угруповання SGP4 Walker, злиті навігатором із замкненим контуром, усі супутники вище маски в номінальному режимі та кілька найвищих у погіршеномуMODELLEDВнутрішнє: показники якості кожного пакета проти власної істини та порівняння слабкого/тісного зв'язування на ідентичних вхідних даних. MODELLED; порівняння з NaveGo з аудиту не виконаноfusion::pack (TightCfg, [tight]), scenarios gnss-ins-maritime / gnss-ins-rail / gnss-ins-aviation
Зв'язаний фільтр псевдодальностей PNT зі станом зміщення та 3D-розширенням у пакеті злиттяОдин зведений фільтр Калмана за положенням, швидкістю, фазою та частотою годинника, що отримує псевдодальності, які зв'язують положення і годинник (оновлення у формі Джозефа з перехресною коваріацією); варіант 1-DOF, доповнений станом сталого зміщення акселерометра, який пакет злиття запускає за [coupled]; та 3D-версія з 8 станами з рядками лінії візуванняMODELLEDВнутрішня узгодженість: істину змодельовано за власними моделями фільтрів (χ² NEES за зернами Монте-Карло, роз'єднаний пакет на ідентичних датчиках). MODELLEDfusion::coupled (CoupledPntFilter, CoupledPntBiasFilter, CoupledPnt3d), fusion (run_coupled_suite), hybrid (CoupledCfg)
Слабко зв'язаний EKF GNSS/INS з важелем на наборі даних KF-GINS15-станний EKF у просторі помилок із замкненим контуром, що керується приростами IMU, із положеннями антени GNSS, злитими через модель важеля H = [I 0 −[(C_b^n l_b)×] 0 0], налаштований із файла YAML KF-GINS (початковий стан і сигми, ARW/VRW, зміщення Гаусса–Маркова)VALIDATEDОпублікована еталонна траєкторія набору даних і програма KF-GINS на C++ (GPL-3.0, коміт 8291a93e, запущена як окремий інструмент); пороги попередньо зареєстровано в xval/kfgins/PREREGISTRATION.md, і KF-GINS не запускали на цих даних до цієї реєстрації (перевірено в його Results). Усі шість порогів витримано з першого прогону. ЗАЛЕЖИТЬ ВІД НАЯВНОСТІ ДАНИХ: демонстраційний набір даних KF-GINS (реальний IMU Leador-A15 і RTK GNSS з еталонною траєкторією) не має ліцензії, тому його не постачають із кодом; xval/kfgins/fetch.sh завантажує його під час тестування із закріпленим SHA-256 кожного файла, а тест завершується невдачею за розбіжності; шлях відтворення, що потребує доступу до мережі, наведено в xval/kfgins/PREREGISTRATION.md. Підвищено до VALIDATED за рішенням власника на підставі доказів, що залежать від наявності даних (2026-10-13)fusion::kfgins (run, loaders, score), fusion::closed_loop (propagate_increments, fuse_position_lever_arm), fusion::gnss_ins_ekf (update_position_lever_arm)
Експорт тестового стенда, прочитаний зчитувачами файлів руху симулятора (gps-sdr-sim)Файли руху з експорту bench, подані власним зчитувачам відкритого симулятора ГНСС, повертаються як експортована траєкторія: файл NMEA GGA (-g), зріз «час/широта/довгота/висота» CSV руху (-x) і його зріз «час/x/y/z» (-u), на 6 сценаріях gnss-ins (включно з морським, залізничним і авіаційним пакетами, прочитаними до межі симулятора в 3000 відліків) і 2 нерухомих. Лише рух; жодного сигналу не записується й не генерується.VALIDATEDЩО ПЕРЕВІРЕНО ЗОВНІ, сказано вузько: gps-sdr-sim (MIT, коміт 28ca29a6) readNmeaGGA, readUserMotion і readUserMotionLLH із власним llh2xyz для WGS 84, викликані через xval/testbench-gpssdrsim/driver.c (жодна сигнальна функція не викликається), проти земних стовпців CSV руху рядок за рядком, із порогами, попередньо зареєстрованими в xval/testbench-gpssdrsim/PREREGISTRATION.md до будь-якого прогону: кожен відлік прочитано в усіх 8 сценаріях; NMEA — найгірше 1,21 мм (поріг 1 см); зріз LLH — найгірше 0,145 мм (поріг 1 мм); чотиристовпцевий земний зріз точний (поріг 1 мкм, зміна 1); рядки gnss-ins на сітці симулятора 10 Гц до 2.3e-13 с. ВИСНОВОК (прогін 1, закріплено): повноширокий CSV без заголовка не читається через -u, оскільки 100-символьний буфер рядка зчитувача розбиває кожен 161-символьний рядок на два відліки; docs/TEST-BENCH.md наводить чотиристовпцевий зріз. ЧОГО НЕМАЄ: фізики істинної траєкторії сценарію; сигнального виходу gps-sdr-sim; зчитувача будь-якого іншого симулятора; будь-якого приймача.interop::testbench (write_motion_csv, write_nmea, export)
Бібліотека траєкторій GNSS/INS та імпорт істини з CSVПрофілі руху на вибір для пакета gnss-ins (пряма, фігура-8, міський рух зі зупинками, набір висоти літаком і координований віраж, знімальний дрон), задані командами швидкостей Ейлера та прискорення вздовж треку, замкненими на істинному стані за допомогою кінематичного IMU (доцентровий, гравітаційний і коріолісів складники), і імпортована істина з CSV, перетворена на IMU, що її відтворює; історичний рух не змінюється, якщо профіль не заданоMODELLEDВнутрішнє: тотожності кінематики твердого тіла, круговорот CSV і власна коваріація фільтра. MODELLED (з реальним журналом руху не порівнювали)fusion::trajectory (TrajectoryCfg, Trajectory, kinematic_imu, parse_truth_csv), fusion::pack ([trajectory])
Механізація безплатформної INSБезплатформна інерційна механізація WGS-84 NED з кватерніонною орієнтацією (з компенсацією конінгу/скалінгу), що поширює навігаційний стан за приростами (Δθ, Δv)VALIDATEDNaveGo v1.4 (R. Gonzalez et al., LGPL-3), запущений під Octave — незалежний опублікований інструментарій INS, що керується тим самим потоком приростів (Δθ,Δv). Орієнтація збігається побітово (ті самі умовності NED / кватерніон зі скаляром першим / кутова швидкість Землі / транспортна швидкість); швидкість/положення збігаються з двома задокументованими відмінностями — членом північної гравітації від відхилення прямовисної лінії, який NaveGo включає, а kshana за задумом пропускає (гравітація прямовисної лінії; збігається із замкненою формулою Грувса до кожної цифри, із застереженням-перевіркою розумного порогу), та відмінностями інтегратора порядку O(dt²) — а не помилками механізаціїinertial::mechanization, inertial::attitude, inertial::imu_errors
Синтез функціоналів гравітаційного поля (карта навігації з гравітаційною допомогою / без ГНСС)Модуль сферично-гармонічної гравітації + збурення (мГал) за будь-якою моделлю ICGEM .gfc; нормальна гравітація GRS80VALIDATEDНормальна гравітація Сом'ільяни за GRS80 (Moritz 1980, IAG) + опубліковані γ_e/γ_p; реальне поле ICGEM EGM2008gravity_sh
NRHO Земля–Місяць CR3BP 9:2 проти орбіти, якою літав CAPSTONEОбмежена кругова південна майже прямолінійна гало-орбіта L2 9:2, яку коригує cr3bp::differential_correct_halo (родина орбіт Gateway і CAPSTONE), порівняна за середньою геометрією (період, радіус периселенія, радіус апоселенія) з орбітою, якою CAPSTONE фактично літав. Вимірювання того, наскільки добре член CR3BP описує реальну орбіту; орбіта CR3BP не є орбітою за моделлю ефемерид і не порівнюється епоха за епохоюMODELLEDВиміряно проти реконструйованих ефемерид CAPSTONE з JPL Horizons (NAIF -1176, CAPSTONE_merged, ICRF з центром у Місяці, 2023-03-01..31 з кроком 10 хв), закомічено байт у байт (tests/fixtures/capstone_horizons/, NOTICE.md), попередньо зареєстровано 4e868170 до завантаження, як вимірювання з порогами за середньою геометрією. Це не перевірка (not a validation): CR3BP не враховує Сонце, ексцентриситет Місяця та утримання на орбіті, яке виконував CAPSTONE, тож пороги описують, наскільки репрезентативна модельна орбіта, а не точність. Результати: docs/design/evidence/cap29d-capstone-nrho/RESULTS.mdcr3bp (differential_correct_halo, PeriodicOrbit)
Обертові стани CR3BP, відображені в ICRF з центром у Місяці на лінії Земля–Місяць за DE440cr3bp::to_moon_centred_icrf відображає безрозмірний обертовий стан CR3BP Земля–Місяць у положення та швидкість в ICRF з центром у Місяці на миттєвій лінії Земля–Місяць (одиниця довжини — відстань Земля–Місяць, одиниця часу — обернена орбітальна швидкість, повна кутова швидкість системи, включно з позаплощинною складовою від прискорення Місяця), із оберненою from_moon_centred_icrf, а cr3bp::to_moon_centred_icrf_de440 читає геоцентричний стан Місяця з DE440 SPK. Воно відображає стани; воно не робить орбіту CR3BP орбітою за моделлю ефемеридVALIDATEDNAIF SPICE Toolkit (CSPICE N0067 через spiceypy 8.3.0) sxform двовекторної динамічної системи координат (основний +X уздовж положення Місяця відносно Землі, вторинний +Y уздовж його швидкості, de440s), застосований до розмірного обертового стану, побудованого зі власного стану Місяця в SPICE, окремою програмою, яка не викликає жодного коду Kshana (tests/fixtures/cr3bp_to_mci_spice/, NOTICE.md). Попередньо зареєстровано 2313eb1b, змінено до будь-якого прогону в d5ef79b3, щоб включити позаплощинну кутову швидкість системи (без неї швидкість відхилялася б до 8e-2 м/с). Лише перевірка перетворення бібліотекою (Library check). Результати: docs/design/evidence/rm34-cr3bp-to-mci/RESULTS.mdcr3bp (to_moon_centred_icrf, from_moon_centred_icrf, to_moon_centred_icrf_de440)
Тип «Сонячна система» на ядрі JPL (planetary_kernel_path)Тип solar-system з planetary_kernel_path: кожне вказане тіло, власний код NAIF якого міститься в SPK, бере геліоцентричні положення та швидкість у J2000 із ядра через власний зчитувач рушія (мітка KERNEL), ланка, обидва кінці якої є в ядрі, обчислюється на ньому, барицентри ніколи не підставляються замість планети, а кожне інше тіло лишається аналітичним зі своєю міткою; звіт отримує блок ядра (шлях, SHA-256, тіла й ланки, взяті з нього) лише коли параметр задано. З de440s.bsp це Меркурій, Венера, Земля та МісяцьVALIDATEDNAIF SPICE Toolkit (CSPICE N0067 через spiceypy 8.3.0) spkezr, геліоцентричні стани на повному de440s.bsp, окрема програма, що не викликає жодного коду Kshana (tests/fixtures/solar_system_kernel/, NOTICE.md); рушій читає побітово точні зрізи de440s. Попередньо зареєстровано f8e946ea. Лише перевірка підключення бібліотекою (Library check): сам DE440 і аналітичні тіла тут не перевіряються. Результати: docs/design/evidence/cap31-solar-system-kernel/RESULTS.mdsolar_system (SolarSystemScenario::planetary_kernel_path, KernelOut); ephem_provider (KernelEphemeris)
Porkchop на ефемеридах DE440maneuver::porkchop_kernel: перебір «дата запуску × дата прибуття» для C3 відльоту (км²/с²) та V-нескінченності прибуття (км/с) з однообертовим прямим розв'язувачем Ламберта та захистом колінеарності 0,5 град на геліоцентричних станах у J2000 будь-яких двох тіл NAIF, прочитаних із SPK JPL DE440 власним зчитувачем крейта. Один оберт, прямий напрямок, без обмежень ракети-носія чи прибуття: це перебір, а не проєкт місіїVALIDATEDNAIF SPICE Toolkit (CSPICE N0067 через spiceypy 8.3.0) геліоцентричні стани на de440s.bsp і pykep 3.0.1 lambert_problem (ESA, ядро C++ kep3, MPL-2.0), незалежний розв'язувач Ламберта, запущений як окрема програма, що не викликає жодного коду Kshana (tests/fixtures/porkchop_de440/, NOTICE.md); рушій читає побітово точний зріз de440s. Попередньо зареєстровано 2d857fb1. Лише перевірка перебору бібліотекою (Library check). Результати: docs/design/evidence/cap20b-porkchop-de440/RESULTS.mdmaneuver (porkchop_kernel, PorkchopGrid); ephem_provider (KernelEphemeris)
Оптимізатор імпульсної траєкторії переходу на ефемеридах DE440maneuver::optimise_transfer_kernel: дати відльоту й прибуття однооборотного балістичного двоімпульсного переходу, що мінімізують C3 відльоту або V-нескінченність прибуття в межах типу I або типу II, як неперервний оптимум (2-добова сітка за обома вікнами, потім 2D Нелдер–Мід), на геліоцентричних станах із SPK DE440. Оптимізатор дат для одного етапу, а не проєкт місії: без варіантів ракети-носія, орбіти очікування, маневрів у далекому космосі чи багатьох обертівVALIDATEDНезалежний оптимізатор: NAIF SPICE Toolkit (CSPICE N0067 через spiceypy 8.3.0), геліоцентричні стани на тому самому зрізі de440s, pykep 3.0.1 lambert_problem (ESA, MPL-2.0) і SciPy 1.18.1 Nelder-Mead, без виклику коду Kshana. Довідник NASA «Земля—Марс» (MIDAS, ефемериди не вказано, 2-добова сітка дат) є вторинним опублікованим еталоном і не визначає статусуmaneuver (optimise_transfer_kernel, TransferObjective, TransferType, TransferOptimum); ephem_provider (KernelEphemeris)
Розв'язувач багатооборотного переходу ЛамбертаУсі розв'язки задачі Ламберта з не більш ніж трьома повними обертами (maneuver::lambert_multirev: однооборотний розв'язок, потім ліва й права гілки для кожної кількості обертів, Izzo 2015), з граничними швидкостями v1 і v2, для прямих і зворотних переходів, у канонічних і геліоцентричних одиницях SI, включно з переходами в межах 1 % мінімального часу польоту для певної кількості обертів і геометріями поблизу 180 град. Лише двотільний розв'язувач (без збурень)VALIDATEDpykep 3.0.1 lambert_problem (ESA, ядро C++ kep3, MPL-2.0), незалежна бібліотека, запущена як окрема програма скриптом scripts/gen_lambert_multirev_ref.py; закомічено лише її чисельний вихід. Попередньо зареєстровано a75de851 (набір випадків, пороги, правило результату) до будь-якого порівняння; еталон було згенеровано знову незалежно, і він побайтно ідентичний. Результати: docs/design/evidence/lambert-multirev/RESULTS.mdmaneuver (lambert_multirev, LambertSolution, LambertBranch)
Двотільний розв'язувач переходу ЛамбертаОднооборотний розв'язувач Ламберта Izzo-2015 (r1, r2, час польоту → граничні швидкості) на переходах LEO→GEO→геліоцентричних, прямих і зворотнихVALIDATEDlamberthub 1.0.0 izzo2015 (J. Martínez Garrido, MIT) — незалежний сторонній розв'язувач Ламберта. Однооборотна (M=0) задача Ламберта має єдиний розв'язок, тож збіг між бібліотеками є справжньою зовнішньою перевіркою; збіг у межах <1e-4 м/с (спостерігалося ~1e-11), той самий вид перевірки, що й для DOP проти gnss_lib_pymaneuver (lambert)
Системи відліку та шкали часуПрецесія-нутація IAU 2006/2000A, CIO GCRS↔ITRS, шкали часу з високосними секундамиVALIDATEDЕталонні вектори IAU SOFA / ERFA; Vallado AIAA 2006-6753 (0,1–4 мм)frames, precession, nutation, cio, timescales
Двочастинні юліанські дати та високосні секунди на шляху часу навколоземної орбітиКалендарна дата й час UTC у двочастинну юліанську дату UTC за умовністю SOFA dtf2d для діб, що закінчуються високосною секундою (86 401 с завдовжки, 23:59:60.x припустимо), UTC у TAI і назад та UT1 з UTC через TAI на двочастинних датах від 1972-01-01: шлях часу, який приймають SGP4 (Sgp4::propagate_at, відлік від двочастинної епохи) і земне обертання IAU 2006/2000A (sgp4::teme_to_itrs_matrix_eop із двочастинним кутом обертання Землі)VALIDATEDpyerfa 2.0.1.5 (liberfa 2.0.1, BSD-3-Clause; алгоритми SOFA у випуску проєкту ERFA), незалежна бібліотека: erfa.dtf2d("UTC"), erfa.utctai і erfa.taiutc на закомічених моментах, розбіжність утворюється по частинах на двочастинних датах, поріг 1e-6 с зафіксовано до прогону (попередньо зареєстровано e947e69d). Найгірша розбіжність 9.6e-12 с (dtf2d) і 1.9e-11 с (utctai, taiutc). Якщо кожну добу UTC брати як 86 400 с або не масштабувати частку високосної доби, тест стає червоним. UT1 через TAI (iauUtcut1) перевіряється ланкою ERFA в рядку шляху навколоземної орбіти. Межі: UTC від 1972-01-01; раніший UTC зі змінною швидкістю не змодельованоjd2 (Jd2::from_utc_calendar, utc_to_tai, tai_to_utc, utc_to_ut1, tai_to_tt, earth_rotation_angle); sgp4 (Sgp4::new_at, Sgp4::propagate_at)
Двочастинні юліанські дати через обертання Землі на шляху орбітиОбертання Землі за двочастинною юліанською датою UT1 на шляху орбіти, щоб положення в земній системі координат зберігало мікросекунду, яку втрачає дата з одним f64 (близько 3e-9 рад поблизу 2020): jd2::gmst82 (GMST IAU 1982, умовність TEME, на двох частинах), cio::gcrs_to_itrs_matrix_jd2 (матриця CIO GCRS у ITRS з кутом обертання Землі з двох частин) і, побудовані на них та перевірені внутрішньо, frames::teme_to_itrf_jd2 / itrf_to_teme_jd2, orbit::Propagator::position_in_frame_jd2 і own_jd2_utc, необов'язковий two_part_jd сценарію ефемерид (положення ECEF, траса на поверхні та вигляд зі станції; за замовчуванням вимкнено, без змін) і перетворення From без втрат між jd2::Jd2 і timescales::TwoPartJd. Прецесія-нутація та епоха моделі сил Cowell лишаються з одним f64, де округлення на 40 мкс менше за 1e-15 рад або набагато менше за похибку аналітичних ефемерид Сонця/МісяцяVALIDATEDpyerfa 2.0.1.5 (liberfa 2.0.1, BSD-3-Clause; алгоритми SOFA у випуску проєкту ERFA), незалежна бібліотека: gmst82 і c2t06a на закомічених двочастинних датах, полярний рух 0,1 і 0,3 кутових секунди. Попередньо зареєстровано b10475ee (дати, пороги) до написання функцій і до запуску оракула. Внутрішні тести (параметр сценарію, круговорот TEME/ITRF, перетворення типів) є допоміжною самоузгодженістюjd2 (gmst82, From<TwoPartJd>, From<Jd2>); cio (gcrs_to_itrs_matrix_jd2); frames (teme_to_itrf_jd2, itrf_to_teme_jd2); orbit (Propagator::position_in_frame_jd2, own_jd2_utc); ephemeris (EphemerisScenario::two_part_jd)
Матриці систем координат проти векторів ERFA: зміщення-прецесія IAU 2006, TEME у GCRS і ланцюжок CIO зі зсувами небесного полюсаТри матриці систем координат, порівняні поелементно або за кутом повороту з ERFA на довільні епохи: precession::precession_matrix (зміщення-прецесія IAU 2006 за кутами Фукусіми–Вільямса), nutation::teme_to_gcrs_matrix (поворот TEME у GCRS P^T N^T Rz(-EE) з прецесією IAU 2006, нутацією IAU 2000B і рівнянням рівнодення з двома провідними доповнювальними членами) і cio::gcrs_to_cirs_matrix_with_offsets (поворот GCRS у CIRS зі зсувами небесного полюса IERS dX, dY, доданими до модельних X, Y CIP перед поворотом, умовність SOFA cookbook; нове). Самі модельні вибори (нутація 2000B на шляху TEME, двочленний доповнювальний ряд) не перевіряються, лише їхня реалізаціяVALIDATEDpyerfa 2.0.1.5 (liberfa 2.0.1, BSD-3-Clause; алгоритми SOFA у випуску проєкту ERFA), незалежна бібліотека: pmat06; numat(obl06, nut00b) з рівнянням рівнодення з eect00 (повний доповнювальний ряд), складені як P^T N^T Rz(-EE); xys06a, потім c2ixys(X + dX, Y + dY, s). Попередньо зареєстровано 979c1e39 (епохи, зсуви та пороги) до запуску оракула. Залишок TEME 1.1e-10 рад є передбаченим наслідком збереження двох доповнювальних членів (близько 3 мм на орбіті ГНСС)precession (precession_matrix); nutation (teme_to_gcrs_matrix); cio (gcrs_to_cirs_matrix_with_offsets)
UTC до 1972 року (епоха змінної швидкості) на шляху часу з двочастинною юліанською датоюUTC від 1960-01-01 до 1971-12-31, коли UTC ішов із зсувом швидкості відносно TAI і змінювався стрибками на частки секунди, на шляху двочастинної юліанської дати: TAI - UTC з таблиці дрейфу кожного періоду (timescales::tai_minus_utc_on_date), календарна дата UTC у двочастинну юліанську дату UTC з тривалістю доби 86 400 с + dleap (Jd2::from_utc_calendar), UTC у TAI з часткою доби, масштабованою від UTC до секунд SI (jd2::utc_to_tai), і TAI назад в UTC (jd2::tai_to_utc), за SOFA dtf2d, utctai і taiutc. До 1960 року TAI - UTC береться як 0 (значення SOFA; UTC не визначений) і лежить поза межами твердження. Одинарний f64 timescales::tai_minus_utc досі обмежує до 10 с до 1972 року й не охопленийVALIDATEDpyerfa 2.0.1.5 (liberfa 2.0.1, BSD-3-Clause; алгоритми SOFA у випуску проєкту ERFA), незалежна бібліотека: erfa.dtf2d("UTC"), erfa.utctai і erfa.taiutc на закомічених моментах, розбіжність утворюється по частинах. Попередньо зареєстровано 23c40661 (моменти, допуск і контрольна сума для 1972+) до зміни рушія й до запуску оракула. Таблицю дрейфу переписано з тієї самої таблиці SOFA iauDat, яку використовує оракул, тож порівняння охоплює арифметику перетворення (тривалість доби, масштабування UTC у SI, ітерацію), а не саму історичну таблицюtimescales (tai_minus_utc_on_date); jd2 (Jd2::from_utc_calendar, utc_to_tai, tai_to_utc)
Бортовий годинник супутника ГЛОНАСС і поширення бортової орбітиЗміщення бортового годинника супутника ГЛОНАСС -tau_n + gamma_n (t - t_b) у момент, прочитаний за годинником супутника (glonass::GlonassEphemeris::sv_clock_bias_s, зсув, виправлений на зміщення годинника двома ітераціями з нерухомою точкою), і положення в ПЗ-90 у земній системі координат вектора бортового стану, пропагованого RK4 за рівняннями руху з ICD ГЛОНАСС у межах +/-15 хв від еталонної епохи (GlonassEphemeris::position_ecef), за реальними навігаційними записами ГЛОНАСС RINEX 3. Перетворення ПЗ-90.11 в ITRF не застосовується (вони збігаються на сантиметровому рівні від 2014 року; RTKLIB також його не застосовує). Не підключено до виходу сценарію: бібліотечна функціяVALIDATEDRTKLIB v2.4.2-p13 (T. Takasu, BSD-2-Clause, коміт 71db0ffa) geph2clk і geph2pos, скомпільовані з коду на C в окремій обв'язці (xval/rtklib-glonass), що читає той самий файл RINEX власним зчитувачем RTKLIB, тож порівнюються розбір, знак -tau_n, одиниці та ітерація, а також годинник і орбіта. Попередньо зареєстровано e099c42a до появи функції та до створення обв'язки. Обидва боки обчислюють той самий замкнений вираз годинника, тож порівняння годинників охоплює реалізацію, а не формулу. Інтегратори орбіт відрізняються (RTKLIB робить кроки по 60 с, потім залишок, Kshana — рівні кроки не більш ніж по 60 с), як і сталі (RTKLIB mu 3.9860044e14, Kshana — PZ-90.11 3.986004418e14); найгірший випадок у 1,1 мм є саме цією різницею, як і передбачалося до прогону. Межі: бортові ефемериди в межах їхнього інтервалу чинності, а не справжня орбіта чи годинник (порівняння з прецизійними продуктами немає)glonass (GlonassEphemeris::sv_clock_bias_s, position_ecef, parse_glonass_nav)
Єдиний шлях навколоземної орбіти: набори елементів SGP4 у GCRS та ITRS за ланцюжком IAU 2006/2000A з параметрами орієнтації ЗемліШлях поширення й систем координат, спільний для кожного маршрутизованого типу навколоземної орбіти: набір середніх елементів SGP4 із двочастинною епохою UTC (sgp4::MeanElementSet, прочитаний з елементів проєктування угруповання за MeanElementSet::from_earth_fixed), пропагований SGP4/SDP4 у TEME (sgp4::SgpOrbit), і повороти TEME -> ITRS та GCRS -> ITRS ланцюжка IAU 2006/2000A з UT1 - UTC і полярним рухом (sgp4::teme_to_itrs_matrix_eop, gcrs_to_itrs_matrix_eop, форми з нульовими параметрами teme_to_itrs_matrix і gcrs_to_itrs_matrix). TEME — це істинний екватор дати із середнім рівноденням, досягнутий із GCRS через зміщення-прецесію IAU 2006, нутацію IAU 2000B і рівняння рівноденняVALIDATEDЛанка 1: python-sgp4 2,24 (ліцензія MIT; еталонний C++ SGP4 за Vallado, код, що створив верифікаційні вектори AIAA 2006-6753), WGS-72, покращений режим. Ланка 2: pyerfa 2.0.1.5 (ERFA, BSD-3-Clause, підпрограми SOFA): c2t06a з TT з utctai/taitt і UT1 з utcut1, а для TEME c2t06a . pnm06a^T . rz(-ee06a). Пороги зафіксовано до прогону (попередньо зареєстровано 72ea9eb0). Розкрито: перший прогін не пройшов ланку 2 о 2016-12-31T23:59:59,5 на одну секунду обертання (UT1 взято з квазіюліанської дати UTC у добу з високосною секундою); рушій виправлено (jd2::utc_to_ut1), і другий прогін збігається за незмінних порогів. Якщо прибрати полярний рух (46 збоїв) або взяти сталі WGS-84 замість WGS-72 (4432 збої), тест стає червоним. Ця триланкова схема замінила наскрізне порівняння з Orekit, яке не пройшло на SDP4 Orekit за e = 0 і на його TEME за IERS 1996 (висновок лишається закріпленим у tests/leo_polar_coverage_full_claim_orekit_oracle.rs)sgp4 (MeanElementSet, SgpOrbit, Eop, teme_to_itrs_matrix_eop, gcrs_to_itrs_matrix_eop); jd2 (utc_to_ut1, earth_rotation_angle); nutation (teme_to_gcrs_matrix); cio (gcrs_to_cirs_matrix); frames (polar_motion_matrix)
Компроміс при проєктуванні дальнометричних кодівМежі бічних пелюсток і взаємної кореляції m-послідовностей/кодів Голда, довжина↔неоднозначністьVALIDATEDОпублікована взаємна кореляція Голда для GPS C/A (−23,9 дБ); межа Голда 1967navsignal (CodeFamily)
Геометрія ГНСС / геометричний чинник DOP (погіршення точності)GDOP/PDOP/HDOP/VDOP/TDOP з геометрії ліній візування за Q=(HᵀH)⁻¹ з локальним розділенням ENUVALIDATEDgnss_lib_py 1.0.4 (Stanford NAV Lab) DOP — незалежна бібліотека, збіг до 1e-6 відносноorbit (dop)
Похибка положення з геометрії: похибка RMS = sigma_UERE x DOP для розв'язку найменших квадратів рушіяdop_error_mc::run_geometry і check: Монте-Карло із зерном (N = 20 000 епох на геометрію, sigma = 1,5 м, зерно ChaCha8 36 + i) власного ітераційного розв'язку найменших квадратів рушія (pvt::solve_spp, одиничні ваги, розв'язок від істинного положення) на 8 геометріях з tests/fixtures/dop/dop_reference.csv, що порівнює дисперсії похибок на схід, північ, угору та годинника, RMS H/V/P, кореляцію схід–північ, середні похибки та частку всередині 95 % горизонтального еліпса з sigma^2 Q, де Q — фактор коваріації ядра orbit::dop (orbit::dop_cofactor, та сама арифметика) для тієї самої геометріїMODELLEDВнутрішня узгодженість із замкненим виразом: за лінійною гауссовою моделлю коваріація найменших квадратів дорівнює sigma^2 (H^T H)^-1 (Kaplan і Hegarty (ред.), Understanding GPS: Principles and Applications, 2-ге вид., Artech House, 2006, розд. 7). Метод і допуски з нотатки про проєктування геометрії 0,36, розділ 5,2, зафіксовано в коміті попередньої реєстрації до першого прогону: кожна дисперсія в межах 5 % (5 стандартних похибок вибіркової дисперсії за N = 20 000), кожен RMS у межах 2,5 %, кореляція схід–північ у межах 0,035 (5/sqrt(N)), кожне середнє в межах 5 стандартних похибок, частка 95 % еліпса в межах 0,95 +/- 0,0077 (5 біноміальних стандартних похибок); негативні контролі (подвоєний PDOP; похибки, що зростають як 1/sin(кута місця) проти незваженої Q) мають не пройти. ЯК ЦЕ СКЛАДАЄТЬСЯ: Q є фактором коваріації ядра orbit::dop, VALIDATED за gnss_lib_py 1.0.4 на цих самих 8 геометріях у tests/dop_reference.rs (рядок «Геометрія ГНСС / геометричний чинник DOP»); цей рядок додає крок від цих факторів до метрів через розв'язувач рушія і не позичає статусу того рядка. ЧОМУ MODELLED: жодного зовнішнього набору даних не залучено; збіг показує, що оцінювач і шум відтворюють sigma x DOP за підручниковою моделлю, а не що похибка будь-якого приймача дорівнює UERE x DOP, а sigma_UERE є вхідним параметромdop_error_mc (run_geometry, check, TOLERANCES); dop_error_ci (run, GEOMETRIES); pvt (solve_spp); orbit (dop, dop_cofactor)
Класифікація довіри з урахуванням геометрії: геометрія супутників поруч з оцінкою довіри до приймача та клас для кожного зниженняreceiver_trust::geometry: геометрія супутників за епохами (добра, погіршена з причинами few-satellites/high-pdop/high-hdop/sky-blocked або невідома, коли журнал не містить GSV, NAV-SAT чи GSA), виведена зі вказаних кутів місця й азимутів через orbit::dop або взята з GSA, із міткою, яка завжди повідомляється й ніколи не оцінюється (good, fair, poor, unknown), та HDOP, PDOP, VDOP, кількістю супутників і втратою сигналу словами; монітор геометрії в оцінці судна, який нічого не знімає, якщо геометрія не погана (відношення max(hdop/4, pdop/6, 5/n_used) вище 1), а потім наростає до межі 15 балів за 1,5, яку лише геометрія не може опустити нижче погіршеної смуги (межа, кінець наростання та нижня межа в [geometry]; без тривоги); клас для кожного зниження (geometry, environment, inconsistency), де втрата захоплення на супутниках нижче 15 град відноситься до класу geometry, супутники у видимості, але не відстежувані, — до environment, а зниження за погану геометрію, у якому заявлений HDOP відрізняється від виведеного HDOP більше ніж на max(1,0, 25 %) від заявленого неба, — до inconsistencyMODELLEDВнутрішня узгодженість: класифікацію перевіряють за правилами, які вона заявляє, і за вручну виведеними відношеннями на синтетичних правках закоміченого демонстраційного журналу, а закріплення «без змін» утримують виходи 0.35.0: жодна оцінка не змінюється, якщо геометрія не погана; мітка завжди повідомляється. ЧОМУ MODELLED: пороги вибрано, а не підігнано (походження в geometry_model кожного прогону; показники IEC 61108-1 і GPS SPS, як цитовано, слід звірити з текстом стандартів), і немає зовнішнього розміченого набору даних про природне погіршення геометрії проти атак, за яким можна було б перевірити класифікацію. Виведений DOP повторно використовує ядро orbit::dop, VALIDATED за gnss_lib_py, статусу якого цей рядок не позичає. Клас geometry є твердженням про небо, а не висновком, що атаки не булоreceiver_trust (geometry: GeometryTracker, geometry_ratio, sky_ratio, geometry_points, GeometryLabel; score: DeductionClass, score_with; monitors; live); telemetry (sample, prometheus, syslog, otlp)
Широкомовна модель іоносфери (Klobuchar, IS-GPS-200)Похила іоносферна групова затримка L1 для одночастотного приймача за Klobuchar із восьми широкомовних коефіцієнтів α/βVALIDATEDRTKLIB ionmodel (tomojitakasu/RTKLIB, src/rtkcmn.c) — незалежна еталонна реалізація, скомпільована з вихідного коду; збіг до < 1e-4 мgnss_sim (klobuchar_delay_m)
Статистичне ядро цілісності RAIM/ARAIM (закони χ² / нецентрального χ² / нормальний)Розподільне ядро, на якому тримається кожен рівень захисту: поріг виявлення збою знімка χ²₁₋ₚfₐ(dof), нецентральність пропущеного виявлення pbias=√λ і множники розділення розв'язків K_fa/K_md/K_VVALIDATEDSciPy 1.17.0 (scipy.stats.chi2/.norm/.ncx2 + optimize.brentq) — незалежна бібліотека (Cephes/Boost), інший алгоритм, ніж ряд неповної гамма-функції в Kshana; збіг до ≤1e-6 відносно. Лише ядро. *Розподіл* бюджету P_HMI для ARAIM MHSS більше не залишається без опублікованого числового оракула — власний робочий приклад Технічної підгрупи ARAIM WG-C тепер підтримує окремий рядок «Рівні захисту ARAIM MHSS проти опублікованих еталонних векторів», що збігається за власного TOL_PL еталона = 5e-2 м, — тож сфера цього рядка — статистичне ядро, а розподіл несе той рядок (див. docs/ARAIM_REFERENCE.md)raim (chi2_cdf, chi2_quantile, noncentral_chi2_cdf, normal_cdf, normal_quantile, pbias)
Рівень захисту SBAS (HPL/VPL за DO-229E зваженими найменшими квадратами)Рівні захисту за зваженими найменшими квадратами DO-229E, додаток J: D=(GᵀWG)⁻¹ з кута місця/азимута кожного супутника та бюджету похибки, велика піввісь горизонтального еліпса похибки та вертикальна σ, масштабовані за опублікованими K-факторамиVALIDATEDФорк RTKLIB SBAS-PL — zsiki/rtklib_ws waasprotlevels() (Siki & Takács 2017, «DO-229D Appendix J»), запущений rnx2rtkp -ws на реальних повідомленнях EGNOS GEO-PRN120 + реальному RINEX BUTE/Будапешт; незалежна стороння реалізація, HPL збігається до < 2e-3 м. gLAB v6.0.0 (core/filter.c) підтвердив ідентичну умовність. Обидва оракули округлюють K_V→5,33 проти точного Φ⁻¹(1−5e-8)=5,3267 у Kshana (~0,06 %), тож вертикаль перевіряється як d_U без K-фактораsbas (sbas_protection_level)
Метрики оцінювання ML-детекторів (ROC/AUC/confusion/Pfa-Pmd)AUC (Манн–Вітні, зв'язки ½), матриця помилок на порозі, P_d/P_md/P_fa/precision/accuracy/F1VALIDATEDscikit-learn 1.9.0 (Pedregosa et al., JMLR 2011) — незалежна бібліотека, точний збігimpairment_eval (auc, confusion_at, roc_curve)
Оцінювання виявлення аномалій на реальній телеметрії космічного апаратаROC AUC + бутстреп-CI розділення реальних розмічених аномалій; прозорий детектор (відтворює мітки)VALIDATEDscikit-learn roc_auc_score на тестовому розбитті OPSSAT-AD (Ruszczak et al. 2025, CC BY 4,0) — реальна телеметрія OPS-SATimpairment_eval, eval_stats
Чисельні ядра квантового компромісу (NNLS / смуги χ² / Q за ван Лоаном)Підгонка NNLS за виміряною ADEV, смуги узгодженості χ² NEES/NIS і коваріація дискретного шуму процесу годинника за ван Лоаном (проліт holdover) — обчислювальний хребет рушія компромісівVALIDATEDscipy 1.17.1 — optimize.nnls / stats.chi2.ppf / linalg.expm; NNLS+Q точно, χ² <5e-4 за робочих ступенів свободи. Лише ядра — показники продуктивності пристроїв лишаються Modelled (наступний рядок)quantum_trade (qparams_from_adev_curve), detection (chi2_inv_cdf), clock_state (ClockState3)
Геомагнітне еталонне поле (синтез IGRF-14)Сферично-гармонічний синтез головного поля IGRF-14 — компоненти X/Y/Z/F, схилення й нахил — що живить шар альтернативного PNT за магнітними аномаліямиVALIDATEDppigrf 2.1.0 (K. M. Laundal, MIT) — еталонна реалізація IGRF на чистому Python від IAGA-VMOD, що постачається з офіційними коефіцієнтами IGRF14.shc (IAGA, 14-те покоління, Zenodo 10.5281/zenodo.14012302); незалежна стороння кодова база, що обчислює однозначно визначене поле IGRF-14, збіг на глобальній сітціigrf, igrf_data
Статистики виявлення — гауссова AUC і мінімальний виявний збійАналітична бінормальна ROC AUC = Φ(μ/(σ√2)) і мінімальний виявний збій σ·(Φ⁻¹(1−P_fa)+Φ⁻¹(P_d)), що лежать в основі квантових детекторів збоїв і аномалійVALIDATEDscipy 1,17 (Cephes ndtr/ndtri) + scikit-learn roc_auc_score (Pedregosa et al., JMLR 2011), обидві BSD-3-Clause — незалежні бібліотеки, що обчислюють ті самі однозначно визначені величини гауссового хвоста / AUC, збіг до рівня похибки erf за A&S (~7e-8). Квантова перевага над класичним підходом, побудована зверху, лишається MODELLEDquantum_faults, eval_stats, detection
Ядро рангових статистик (Кендалл-τ / Діріхле / перцентиль)Ядра рангової кореляції та перевибірки під дослідженням нестабільності рішень щодо стійкості: τ-b Кендалла, середнє Діріхле, змагальне ранжування та перцентильні довірчі інтервалиVALIDATEDscipy 1,18 (stats.kendalltau variant='b', rankdata) + numpy.percentile (BSD-3-Clause) — незалежні реалізації (τ за сортуванням злиттям) однозначно визначених рангових статистик, збіг до 1e-12. Дослідження нестабільності рішень, побудоване на цих ядрах, лишається MODELLEDresilience::stats
Ядро виведення пріоритетів MCDA (власний вектор AHP / коефіцієнт узгодженості)Ваги пріоритетів за методом аналізу ієрархій = нормований головний (Перрона) власний вектор оберненосиметричної матриці парних порівнянь за степеневим методом, з індексом узгодженості / коефіцієнтом узгодженості Сааті та порогом прийнятності CR<0,10VALIDATEDКанонічна таблиця випадкового індексу Сааті (1980) (RI(5)=1,12) відтворена точно + SciPy/LAPACK scipy.linalg.eig (BSD-3-Clause) як незалежний розв'язувач власних значень, що обчислює той самий однозначно визначений власний вектор/значення Перрона, збіг до <1e-9. Шар рішень Парето / чутливості / MAUT, побудований на цьому ядрі, лишається MODELLED (агрегатори WSM/WPM/TOPSIS/VIKOR/PROMETHEE/ELECTRE окремо перевірено зовні — див. рядки нижче)mcda::ahp
Ядра зваженого агрегування MCDA (WSM / WPM)Модель зваженої суми (адитивний агрегат із мін–макс-нормуванням + ранжування) і модель зваженого добутку (мультиплікативний агрегат із нормуванням за сумою, зворотним для витрат) — два оцінювачі агрегування цінності в компромісних дослідженняхVALIDATEDpymcdm (methods.WSM + normalizations.minmax_normalization; methods.WPM + normalizations.sum_normalization) — незалежна, широко вживана стороння бібліотека MCDA на Python, що обчислює ті самі однозначно визначені зважені агрегати; збіг до <1e-9. Відтворюється офлайн за допомогою tests/fixtures/mcda_wsm/ і tests/fixtures/mcda_wpm/. Сміття на вході — сміття на виході; шар чутливості/стійкості лишається MODELLEDmcda::wsm, mcda::wpm
Ранжування MCDA за відстанню до ідеалу (TOPSIS)Technique for Order of Preference by Similarity to Ideal Solution — мін–макс-нормування, зважені позитивне/негативне ідеальні розв'язки, відносна близькість Cᵢ = d⁻/(d⁺+d⁻) та ранжуванняVALIDATEDpymcdm methods.TOPSIS + normalizations.minmax_normalization — незалежна стороння бібліотека MCDA, що обчислює ті самі однозначно визначені коефіцієнти близькості; збіг до <1e-9. Відтворюється офлайн за допомогою tests/fixtures/mcda_topsis/generate_topsis_reference.pymcda::topsis
Компромісне ранжування MCDA (VIKOR)VlseKriterijumska Optimizacija — групова корисність Sᵢ, індивідуальне шкодування Rᵢ та компромісний індекс Qᵢ за ваги стратегії v=0,5, з ранжуванням «менше — краще»VALIDATEDpymcdm methods.VIKOR(v=0,5) — незалежна стороння бібліотека MCDA, що обчислює ту саму однозначно визначену агрегацію S/R/Q із нормуванням за діапазоном; збіг до <1e-9. Відтворюється офлайн через tests/fixtures/mcda_vikor/generate_vikor_reference.pymcda::vikor
Ранжування MCDA за чистим потоком переваги (PROMETHEE II)Preference Ranking Organization METHod — парний індекс переваги із шістьма стандартними формами узагальненого критерію, додатними й від'ємними потоками переваги та повним ранжуванням за чистим потоком (звичайний критерій перевірено)VALIDATEDpymcdm methods.PROMETHEE_II('usual') — незалежна стороння бібліотека MCDA, що обчислює той самий однозначно визначений чистий потік переваги; збіг до <1e-9. Відтворюється офлайн через tests/fixtures/mcda_promethee/generate_promethee_reference.py. Форми переваги з порогами (q/p/σ) зводяться до тієї самої алгебри узагальненого критерію і залишаються перевіреними на властивостіmcda::promethee
Ядро вибору за перевагою в MCDA (ELECTRE I)ELimination Et Choix Traduisant la REalité — матриці узгодженості та неузгодженості, відношення домінування за узгодженістю й відсутністю вето та ядро вибору за перевагою (угода: усі критерії на користь, ваги нормовано за сумою, єдина глобальна шкала)VALIDATEDpyDecision algorithm.electre_i (Valdecy Pereira) — незалежна стороння бібліотека багатокритеріальних рішень, що обчислює ті самі однозначно визначені узгодженість, неузгодженість, домінування та ядро; збіг поелементно до <1e-9. Відтворюється офлайн через tests/fixtures/mcda_electre/generate_electre_reference.py. Вибір порогів ĉ/d̂ — вхідні дані аналітика (чутливість залишається MODELLED)mcda::electre
Ядра агрегації MCDA (WASPAS / MOORA)Weighted Aggregated Sum Product ASSessment (лінійно нормована опукла суміш λ·WSM+(1−λ)·WPM при λ=0,5) і система відношень MOORA (векторно нормована зважена сума переваг мінус зважена сума витрат) — стабілізована суміш значень і знакова оцінка за системою відношеньVALIDATEDpymcdm (methods.WASPAS + normalizations.linear_normalization, l=0,5; методи MOORA, система відношень, векторне нормування) — незалежна, широко вживана сторонння бібліотека MCDA на Python, що обчислює ті самі однозначно визначені агрегати; збіг до <1e-9. Відтворюється офлайн через tests/fixtures/mcda_waspas/ і tests/fixtures/mcda_moora/. Сміття на вході дає сміття на виході; шар чутливості та робастності залишається MODELLEDmcda::waspas, mcda::moora
Пропорційне ранжування MCDA (COPRAS)COmplex PRoportional ASsessment — нормована за сумою стовпця значущість переваг S⁺ плюс член зворотної значущості витрат, відносна значущість Q і ступінь корисності U = Q/max Q (найкраща альтернатива = 1)VALIDATEDpyDecision algorithm.copras_method (Valdecy Pereira) — незалежна стороння бібліотека MCDA, що обчислює ту саму однозначно визначену відносну значущість і корисність COPRAS. pyDecision використано свідомо: COPRAS у pymcdm 1.4.0 алгебраїчно зводиться до тривіального S⁺+S⁻ і не є вірним еталоном, тоді як pyDecision реалізує канонічну формулу Q = S⁺+(min(S⁻)·ΣS⁻)/(S⁻·Σ(min(S⁻)/S⁻)). Збіг до <1e-9; відтворюється офлайн через tests/fixtures/mcda_copras/generate_copras_reference.pymcda::copras
Затримка виявлення змін CUSUM і ARLНайгірша затримка виявлення табличного детектора CUSUM (⌊h/(z−k)⌋+1) і середня довжина серії поза контролем; використовуються монітором рівня захисту синхронізації часу та монітором спуфінгуVALIDATEDОпублікований ARL табличного CUSUM: наближення броунівського руху за Зігмундом (1985) (Hawkins & Olwell 1998, рівн. 3,7), перехресно прив'язане до таблиць ARL у Montgomery, Introduction to Statistical Quality Control (Wiley) для k=½, h∈{4 5}; детермінована затримка точно збігається з оракулом першого проходження. Складена межа TPL залишається MODELLEDtpl (Cusum), security
Дисперсія вибігу годинника та інверсія порога holdoverЗростання дисперсії фазової похибки на вибігу q_wf·t + q_rw·t³/3 + q_drift·t⁵/20 та її монотонна інверсія до порога holdover за похибкою часуVALIDATEDscipy 1,18 (BSD-3-Clause): linalg.expm обчислює дискретний шум процесу за Ван-Лоуном (1978) Q₀₀ = ∫₀ᵗ ΦQcΦᵀds через масштабування та піднесення до квадрата за Паде на розширеній матриці 6×6 — незалежний шлях, що ніколи не бачить поліноміальних коефіцієнтів kshana; плюс optimize.brentq, що інвертує ту саму монотонну криву, на відміну від бісекції kshana. Показники рівня червоного шуму для кожного класу (ClockClass) залишаються MODELLEDholdover (coast_phase_variance, holdover_seconds)
Ядро різноманітності за оберненим індексом СімпсонаЕфективна архітектурна різноманітність = обернений індекс Сімпсона / число Гілла порядку 2, тобто 1/Σpᵢ², за якостями джерел у групах незалежності (складник різноманітності в оцінці стійкості)VALIDATEDscikit-bio 0.7.3 skbio.diversity.alpha.inv_simpson (McDonald et al., BSD-3-Clause) — незалежна стороння бібліотека, що обчислює однозначно визначений обернений індекс Сімпсона; відтворено побайтово. Побудована поверх нього система оцінювання DHS-RPCF (ваги та рівні) залишається MODELLEDresilience::diversity (effective_diversity)
Азимутально залежна маска горизонту: видима множина, азимут і висота та DOP під маскоюskyline + frames::look_angles + geometry::sky_geometry: геодезичні (WGS-84) азимут і висота супутника з наземного пункту, таблиця маски азимут/висота з лінійною інтерполяцією за азимутом і замиканням на 360 град, видима множина el >= max(mask_deg, mask(az)), а також DOP із спільним годинником і матриця кофакторів ENU-та-годинник цієї множини (ядро за orbit::dop). Саме так секція [skyline] визначає видимість у видах gnss-sim, jamming, leo-pvt, leo-pass і nmea-scenario та, із наземним пунктом user_site, в orbit і integrityVALIDATEDOrekit 12,2 (Apache-2.0): TopocentricFrame на WGS-84 OneAxisEllipsoid для кутів огляду та ElevationMask для кожної таблиці, запуск через xval/orekit-skyline/OrekitSkyline.java на зафіксованих земно-фіксованих станах (розповсюдження не порівнюється), з gnss_lib_py 1.0.4 (метадані wheel: MIT) get_dop для DOP та матриці DOP ENU-та-годинник для множин, які Orekit визнає видимими. Попередньо зареєстровано (xval/orekit-skyline/PREREGISTRATION.md, коміт e4b9d912) до того, як будь-який із оракулів запустили на вхідних даних порівняння; лінійну інтерполяцію Orekit із замиканням заздалегідь підтверджено на синтетичному зонді. Обсяг: табличні маски, геодезичні кути огляду, видима множина під маскою, її DOP зі спільним годинником і кофактор. НЕ перевіряється тут: зведення каньйону, секторів і рельєфу та пресети (їхні таблиці з 360 точок подано як вхідні дані; рядки «Street-canyon, sector and terrain reductions to a table» і «Skyline presets»), стани годинників окремих систем і еліпс похибки (рядок «Horizontal error ellipse and per-system cofactor from the geometry covariance»), обертання GMST наземного пункту user_site в orbit/integrity і прив'язка кожного пропагатора до одного моменту (Orekit отримує земно-фіксовані стани), а також будь-які реальні перешкоди (лише пряма видимість)skyline (Skyline::cut_deg, Skyline::visible); frames (look_angles, is_visible_skyline); orbit (UserPath, sky_view, cofactor_from_los); geometry (sky_geometry)
Зведення міського каньйону, секторів і рельєфу до таблиціskyline: міський каньйон у замкненому вигляді (зріз atan((h - a) / d) при d = (w/2) / abs(sin(az - s)), відкриті кінці для скінченної довжини), секторі з різкими краями за годинниковою стрілкою із замиканням, а точки рельєфу зведено до таблиці зі спадом кривини d^2/(2 * 4/3 R); горизонт — це їхній поточковий максимум з будь-якою таблицеюMODELLEDВнутрішньо: замкнені форми перевірено за значеннями, обчисленими вручну (висоти верхів стін заданої вулиці, умова відкритого кінця, спад кривини заданої точки). Зовнішнього оракула немає: проєктна записка відносить ці зведення до MODELLED, а ElevationMask в Orekit приймає таблицю, тож порівняння в рядку «Azimuth-dependent skyline mask: visible set, azimuth and elevation, and DOP under the mask» сприймає їхні таблиці з 360 точок як вхідні дані і не перевіряє їхskyline (Canyon::cut_deg, Sector::contains, TerrainPoint::elevation_deg, reduce_terrain, SkylineCfg::build)
Пресети горизонту (міська вулиця, підхід до гавані, фіорд, контейнерний термінал)skyline::PRESETS: чотири REPRESENTATIVE геометрії із зазначеними в проєктній записці розмірами та рядком походження для кожної: city-street (каньйон, вулиця 0 град, 20 м між стінами по 30 м, антена 1,5 м), harbour-approach (сектори: відкрито в бік моря на 180 град, будівлі набережної 8 град на 90 град, хвилеріз 3 град), fjord (рельєф: стіни на 600 м вище за антену на 1,5 км по обидва боки північно-південного каналу, із урахуванням спаду кривини), container-terminal (сектори: штабелі 12 град над сухопутною половиною, стріли кранів 35 град і 25 град над двома вузькими секторами); перевизначаються поле за полемMODELLEDНемає: вибрані й зазначені розміри, а не знімок будь-якої вулиці, порту, фіорду чи терміналу (співвідношення сторін вулиці лежить у діапазоні 0.5-2 за Oke (1988); фіорд має порядок західнонорвезьких фіордів; штабелі мають висоту контейнера high-cube за ISO 668). Тест перевіряє пресети за їхніми власними зазначеними розмірами; це перевірка переписування, яку правило валідації не враховуєskyline (PRESETS, preset, preset_list)
Горизонтальний еліпс похибки та кофактор для кожної системи з коваріації геометріїgeometry::sky_geometry: кофактор ENU-та-годинник (H^T H)^-1 з одним годинником приймача, спільним або окремим для кожної системи (ядро orbit::cofactor_from_los), і горизонтальний еліпс похибки з його блока схід-північ (піввісі k sigma sqrt(lambda), k = sqrt(-2 ln(1 - p)), азимут великої осі від півночі)VALIDATEDnumpy 2.5.4 (BSD-3-Clause), xval/numpy-ellipse/ellipse.py: numpy.linalg.inv від G^T G і numpy.linalg.eigh його горизонтального блока на зафіксованих вхідних даних — незалежна числова бібліотека, що виконує обернення та власний розклад своїми алгоритмами (стандартний P2). Попередньо зареєстровано в xval/numpy-ellipse/PREREGISTRATION.md (коміт 0bbeeaee) до запуску; форматування виводу драйвера виправлено один раз після попередньої реєстрації (скаляр numpy, записаний як np.float64(...)), без змін протоколу чи допусків. Перевірене твердження — це лінійна алгебра на цих вхідних даних; гауссова модель похибок і UERE — задані вхідні дані, а не виміряна точність чи межа цілісностіgeometry (sky_geometry, ellipse); orbit (cofactor_from_los)
Функції геометрії неба: видимість, DOP, коваріація, еліпс похибки, хмара Монте-Карлогеометрія (sky_geometry, sky_monte_carlo, skyline_presets, skyline_profile, skyplot_svg; CLI kshana sky і kshana skyline, функції Python і WASM з тими самими назвами, MCP sky_geometry): за пунктом, часом і пресетами орбітальних угруповань (або супутниками як азимут/висота чи ECEF) — видимі та замасковані горизонтом супутники, GDOP/PDOP/HDOP/VDOP/TDOP, одиничнодисперсійний кофактор (H^T H)^-1 і коваріація в системі схід-північ-вгору з одним годинником приймача на систему або одним спільним, горизонтальний еліпс похибки (піввісі k sigma sqrt(lambda), k = sqrt(-2 ln(1 - p)), орієнтація 0,5 atan2(2 Q_EN, Q_NN - Q_EE) від півночі) та n похибок методу найменших квадратів із зерном (seed) за незалежних гауссових похибок дальності з їхньою емпіричною коваріацією, RMS і 95 % вмістом. Кофактор — це orbit::cofactor_from_los, єдине ядро за orbit::dop і orbit::dop_cov (dop — це зведення dop_cov): другої реалізації DOP немаєMODELLEDФактори DOP з одним годинником спираються на ядро, перевірене за gnss_lib_py 1.0.4 (рядок «GNSS geometry / dilution of precision (DOP)»); власні перевірки цього рядка внутрішні: sky_geometry відтворює orbit::dop і dop_cov на тій самій геометрії, еліпс відтворює аналітичний власний розклад 2x2, вхідні дані ECEF і азимут/висота узгоджуються, а RMS і 95 % вміст хмари із зерном узгоджуються з геометрією. Коваріація ENU з одним годинником на систему та еліпс мають статус VALIDATED у рядку «Horizontal error ellipse and per-system cofactor from the geometry covariance» (numpy, P2); MODELLED тут залишається композиція: розповсюдження пресетів до репрезентативного неба, хмара Монте-Карло (перевірена за геометрією, з якої вона вибирає, — перевірка самоузгодженості) і поверхні. Пресети орбітальних угруповань дають репрезентативне небо, а не датоване; гауссова модель похибок і UERE — задані вхідні дані, а не виміряна точність чи межа цілісностіgeometry; orbit (cofactor_from_los, dop_cov, dop); surface (sky_geometry, sky_monte_carlo, skyline_presets, skyline_profile, skyplot_svg)
Holdover годинника за відсутності GNSSЗростання похибки вибігу в замкненому вигляді + holdover до порога; класи квантових годинниківMODELLEDБагатокрокова рекурсія коваріації clock_state (перехресна перевірка в тій самій кодовій базі); лежаче в основі ядро дисперсії вибігу та інверсії holdover зовнішньо перевірене за scipy (див. «Clock-holdover coast-variance & threshold inversion»). Показники holdover для кожного класу за рівнем червоного шуму залишаються MODELLEDholdover
Картки виміряних пристроїв-годинників (передбачення на відкладених даних)clock_library: картка пристрою (білий шум фази, білий, фліккерний і випадкового блукання FM плюс лінійний дрейф частоти), підігнана за однією третиною іменованого виміряного запису годинника після журналованого кондиціювання (вилучено пропуски, викиди фази, стрибки фази, сплески; стрибки частоти записано в журнал), зважена за ступенями свободи типів шуму, ідентифікованими за лагом 1, а її передбачена девіація Аллана оцінюється на відкладених двох третинах; зчитувачі файлів годинників RINEX та IGS, файлів окремих лабораторій BIPM і Circular T розділу 1; перетворення картки на модель шуму слотової синхронізації, розширену калманівську модель годинника та рівні шуму монітора спуфінгуMODELLEDВиміряні записи, відкладені: комбіновані фінальні годинники IGS з кроком 30 с для 11 супутників GPS Block IIF за 2026-03-01 — 14 (вікно, яке жоден тест не відкривав; IGS, відкрито з зазначенням авторства) і приймач JammerTest 2024 u-blox ZED-F9P у його неоцінюваних стаціонарних сеансах (GPL-3.0-or-later). Зовнішнє порівняння D9 (попередньо зареєстровано 2ec76864, передбачена / виміряна девіація Аллана кожної картки в межах [1/1.5, 1,5] на її підігнаних інтервалах усереднення), висновок (залишається MODELLED): 10 із 11 карток GPS IIF у межах порога; G27 оптимістична в масштабі двох годин (0,662 при 7680 с, найгірший множник 1,510), тобто періодична похибка годинного масштабу, якої степенева картка не несе. Картка TCXO приймача заблокована: поза журналованими передачами решта сеансів набору лишає 167 епох проти потрібних 3600. Повідомлено, не наосліп (записи відкрито попередніми рядками): картка цезієвого 5071A у межах порога (найгірше 1,070 до 4096 с), картка OCXO консервативна й поза ним (2,348 при 128 с; рівень її шуму змінюється під час запису), а картка стронцієвого годинника Norcia, підігнана за трьома найкоротшими опублікованими точками, у його межах у двох оцінюваних точках (1,291, 1,405). Пасивні водневі мазери Galileo (немає доступного без реєстрації джерела фінальних годинників Galileo) і Deep Space Atomic Clock (одне відкрите значення в космосі) заблоковані. D9, раунд 2, TCXO приймача ZED-F9P як клас моделі за 14 днів на 12 статичних станціях у Вроцлаві (Zenodo 6488497, CC BY 4,0; попередньо зареєстровано fb475550), висновок: із зареєстрованим конвеєром 11 із 12 станцій не можна було оцінити (RAIM відхилив більшість безіоносферних епох), а BX14 не пройшла; розкритий повторний прогін зі скоригованим конвеєром (попередньо зареєстровано c9cc0d49) проходить 1 із 11 станцій наосліп (BX12, 1,412; BX07 1,532 і BX13 1,542 трохи поза межами), бо одноточкові годинники приймача з уривчастих файлів з кроком 30 с не є чистим записом генератораclock_library (card, condition, series), realdata::clk, allan (lag1_noise_id)
Картки виміряних годинників GPS Block IIF із членами на оберт (передбачення на відкладених даних)clock_library::card::DeviceCard::fit_phase_periodic: картка пристрою, що несе фазові члени від одного до чотирьох на оберт (період T/k, T = 43 082,05 с), підігнані спільно з квадратичним методом найменших квадратів за однією третиною виміряного запису годинника супутника, із замкненим внеском кожного члена в девіацію Аллана 4 A^2 sin^4(pi tau / P) / tau^2 у передбаченій девіації АлланаMODELLEDВиміряні записи, відкладені: комбіновані фінальні годинники IGS з кроком 30 с для 11 супутників GPS Block IIF за 2026-04-01 — 14 (вікно, яке жоден тест не відкривав; IGS, відкрито з зазначенням авторства). Зовнішнє порівняння D9 (попередньо зареєстровано fb475550, передбачена / виміряна девіація Аллана в межах [1/1.5, 1,5] на кожному підігнаному інтервалі усереднення кожного супутника), висновок (залишається MODELLED): 9 із 11 карток у межах порога; G03 (1,947) і G25 (1,581) оптимістичні між 60 с і 2000 с, бо їхні відкладені записи шумніші за підігнані треті (відкладена частина G25 містить 16 пропусків і 29 викидів фази), тобто змінився годинник, а не бракує періодичного члена. Вилучення періодичних членів із передбачення не проходять усі 11 карток (1,77 до 4,96), тож саме ці члени несуть передбаченняclock_library (card)
Оцінювання стану бортового годинника3-станний (фаза/частота/дрейф) калманівський годинник за Ван-Лоуном зі стабілізацією за ДжозефомMODELLEDfilterpy 1.4.5 KalmanFilter (R. Labbe, MIT), з F через scipy.linalg.expm і Q через блочну матрицю Ван-Лоуна (1978) — незалежна еталонна реалізація, що відтворює повну траєкторію фільтра kshana. Узгодженість між реалізаціями: фізика годинника та калібрування Аллана зовнішньо не перевірені, тому це залишається MODELLED. Зовнішнє порівняння 0,30, висновок (залишається MODELLED): на фінальних годинниках IGS із кроком 30 с для 11 супутників GPS Block IIF (2025-08-17 — 30), із Q, підігнаною за ADEV першої половини, та фільтром, оціненим на відкладеній другій половині, фільтр узгоджений на один крок уперед (0,906 до 0,971 епох у межах його 95 % смуги, поріг 90 %), але надмірно впевнений на одну годину на 9 із 11 годинників (0,486 до 0,829), а суми його інновацій виходять за [2,4, 3,6] на 5. Підігнаний білий шум фази дорівнює нулю на кожному супутнику, а похибки годинного масштабу (періодичні члени, фліккерний FM) у 3-станній моделі немає. 0,30, раунд 2, розширений фільтр (фліккерний FM і стани раз і двічі на оберт) на нових відкладених годинниках IGS за 2025-09-01 — 14 (попередньо зареєстровано 4b1a841e), висновок (залишається MODELLED): критерії узгодженості на один крок і на одну годину виконуються на всіх 11 супутниках (0,948 до 0,988 і 0,907 до 0,996), але критерій суми інновацій не виконується на G24 (0,964) і G30 (1,929) проти [2,4, 3,6]. D9, раунд 3, розширений фільтр раунду 2, налаштування та критерії без змін після замороженого детектора кондиціювання clock_library, на нових годинниках IGS за 2026-04-01 — 14 (попередньо зареєстровано fb475550), висновок (залишається MODELLED): (a) один крок 0,941 до 0,968 і (c) середнє потрійного NIS 2,641 до 3,549 виконуються на всіх 11 супутниках; (b) одна година не виконується на G09 (0,894) і G26 (0,876) проти 0,90clock_state
Бюджетування похибки передавання часуДвосторонній TWSTFT (Саньяк), спільний вид GNSS, PPP; джитер лінії → дальністьMODELLEDВеличину Саньяка перевірено за авторитетним ОПУБЛІКОВАНИМ ЗНАЧЕННЯМ — N. Ashby, 'Relativity in the GPS', Living Reviews in Relativity 6:1 (2003), рівн. 1,29: східне екваторіальне кругосвітнє обходження накопичує 207,4 нс (2ωA_E/c²); kshana відтворює 207,386 нс. Незалежно підтверджено RTKLIB 2.4.3 geodist() (Takasu, BSD-2-Clause), який несе ту саму геометрію 2Aω/c². Складений бюджет транспондера BIPM TWSTFT / спільного виду / PPP не має зовнішнього оракула, тому можливість залишається Modelledtimetransfer, timetransfer_adv
Аналіз модуляції навігаційного сигналу та стеження за кодомPSD BPSK-R/BOC, спектральне розділення κ, смуга Габора, джитер DLL, багатопроменевістьMODELLEDВзаємна та автокореляція кодів Голда GPS C/A точно збігається (цілі ±65/−1/63) із незалежним породженням кодів за IS-GPS-200; форма PSD BPSK-R(1)/BOC(1 1) проти незалежної периодограми scipy. Замкнені форми модуляції/SSC/DLL (Betz 2001 / Kaplan & Hegarty) лишаються аналітичними, тож рядок залишається MODELLED, але підтвердження кореляції кодів зовнішньо збігається. 0,30, раунд 2, проти надрукованих значень Betz 2001 і Hein et al. 2006 (попередньо зареєстровано 9f4f2ce8, півнадрукованої одиниці), висновок (залишається MODELLED): усі 45 спектральних клітинок Таблиці 1, значення кореляції при 1 ГГц, показники інтерференції MBOC і 2 із 3 зсувів Рис. 17 збігаються; перші бічні пелюстки на 24 МГц, зсув BOC(8 4) на Рис. 17 і кожне найгірше зміщення багатопроменевості на Рис. 18-21 (на 11 до 15 % занижене) не збігаються. Kshana і незалежне обчислення NumPy за попередньо зареєстрованим прочитанням збігаються, тож розрив лежить у цьому прочитанні або в невказаній деталі статті; причину не з'ясованоnavsignal
Породження розширювального коду GPS L1 C/AГенератор коду C/A на LFSR G1/G2, що відтворює опубліковані вісімкові перевірочні вектори перших 10 чипів з IS-GPS-200 для PRN 1–9 (плюс довжина 1023 чипи, баланс 512 одиниць, трьохзначна періодична автокореляція)VALIDATEDIS-GPS-200 Table 3-Ia 'Code Phase Assignments' — авторитетні публічні (суспільне надбання уряду США) опубліковані ВІСІМКОВІ перевірочні вектори перших 10 чипів (GPS Directorate, navcen.uscg.gov); власний LFSR G1/G2 kshana точно відтворює кожен вектор PRN 1–9. Подальші замкнені форми модуляції/SSC/DLL залишаються Modelled (окремий рядок)sdr
Характеристики квантового інерціального датчикаХолодноатомний інтерферометричний акселерометр із перших принципів (k_eff·T², QPN)MODELLEDОпубліковані числові вектори першоджерел щодо CAI (передавальна функція Cheinet 2008; чутливість Peters/Freier): k_eff·T² збігається точно, ASD дробового шуму — односторонній мінімум у межах ~2× від кожного опублікованого приладу (реальні пристрої несуть технічний шум вище квантового мінімуму). Оцінка в обидва боки, а не рівність. 0,30, раунд 2 (попередньо зареєстровано fcb9ac64), висновок (залишається MODELLED): шум обертання лише від QPN проти виміряних точок Gauguet et al. 2009 Рис. 14 дає відношення 0,695 до 0,788 у трьох допущених точках (0,751 в робочій точці), що не досягає попередньо зареєстрованого порога 30 % на 0,5 пункту; мінімум QPN лежить на 21 до 31 % нижче виміряного шуму, як і слід очікувати від моделі без лазерного та детекторного шуму. Композиція градієнтометра збігається з лінією моделі QPN Janvier et al. 2022 (відношення 1,013 до 1,017, Reference). Виміряний тест не може розрізнити помилку композиції sqrt(2); це може лише лінія Janvier з нерівними контрастамиinertial::quantum_imu
Неоднозначність смуг / динамічний діапазон квантового інерціального датчикаДинамічний діапазон неоднозначності смуг Маха–Цендера: 2π-періодичне зчитування смуг задає максимальне однозначне питоме зусилля a_max=π/(k_eff·T²), а однозначний діапазон у клітинках роздільності a_max/σ_a=π/σ_Φ не залежить від оптичного масштабного коефіцієнта — виграш чутливості T² коштує однозначного діапазону в точній пропорції (час опитування обмінює роздільність на діапазон, а кількість клітинок лишається заданою фазовим шумом зчитування)MODELLEDСамоузгодженість моделі смуг інтерферометра: край піввузла смуги, 2π-періодична структура накладання та скорочення масштабного коефіцієнта у відношенні діапазон/роздільність — це замкнені алгебраїчні тотожності, перевірені за власними функціями фази та чутливості Маха–Цендера рушія, тобто перевірки внутрішньої узгодженості, а НЕ зовнішній набір даних, тому рядок залишається InternalConsistency. MODELLED ідеальна триімпульсна неоднозначність смуг; без меж на однозначний діапазон за аберацій хвильового фронту чи втрати контрастуinertial::quantum_imu
Стійкість квантового інерціального навігаційного рахункуСкладений бюджет позиції зі зміщення, масштабного коефіцієнта, VRW та спаду стабільності протягом holdoverMODELLEDНезалежне числове інтегрування SDE методом Монте-Карло на numpy для двічі інтегрованого шуму білого прискорення (перевіряє аналітичну дисперсію VRW справді незалежним алгоритмом) + прив'язка до опублікованого значення Groves 2013 для членів зміщення та масштабного коефіцієнта; числа пристрою CAI кількісно характеризують апаратне забезпечення партнера і залишаються MODELLEDinertial::quantum_imu (QuantumNavBudget)
Злиття сенсорів GNSS/INS15-станний EKF станів похибки, слабко зв'язаний (перевірено на реальному русі IMU/GNSS за NaveGo); тісно зв'язаний UKF за псевдодальністю та Доплером і зв'язаний фільтр годинника та позиції (лише узгодженість, поза перевіреним твердженням)VALIDATEDNaveGo v1.4 (R. Gonzalez, LGPL-3.0, запускається як інструмент під GNU Octave, ніколи не лінкується): його слабко зв'язаний ins_gnss на власному реальному русі наземного транспорту Ekinox IMU/GNSS, обидва розв'язки оцінено за еталонною траєкторією Ekinox. Обидва фільтри читають ті самі вхідні дані float32 з частотою 20 Гц, а конфігурацію Kshana відображено механічно з опублікованих параметрів набору даних. RMS горизонтальної та вертикальної позиції Kshana і RMS інновації позиції в межах 1.2x від NaveGo (виміряно 0,912, 0,940 і 0,861), а її середня нормована інновація не більша за 1,5 (виміряно 0,395: приблизно в 2.5x недовпевнений, зважаючи на заявлені сигми GNSS набору даних); допуски зафіксовано до порівняння. Обсяг: GNSS присутній із частотою 5 Гц протягом усього руху, тож жодного пропадання чи вибігу не перевіряється, а перевірка вловлює грубі дефекти фільтра, а не тонке налаштування (необроблені фіксації з поправкою на важіль лягли б поблизу вертикального порога); перетворення важеля обчислюється в тестовому каркасі. Тісно зв'язаний UKF і зв'язаний фільтр годинника та позиції зберігають свої перевірки узгодженості filterpy 1.4.5 (лінійні апостеріорні до 2.4e-12) і залишаються поза перевіреним твердженнямfusion (gnss_ins_ekf, tightly_coupled, ukf, coupled)
Стійкість до глушіння за відсутності GNSSГеометричний J/S, бюджет лінії протидії глушінню C/N₀, втрата захоплення для кожного супутникаMODELLEDРівняння бюджету лінії протидії глушінню C/N₀ перехресно перевірено незалежним перевиведенням у numpy (ділить ту саму замкнену форму → InternalConsistency) плюс характеристика деградації C/N₀ у реальному JammerTest-2024. 0,30, раунд 2, заблоковано (залишається MODELLED): виміряне зниження C/N0 у JammerTest 2024 проти передбачення бюджету лінії (попередньо зареєстровано 6a66994b, у межах 3 дБ) не запускалося, бо положення та спрямування антени F8.1 у Bleik і частка L1 у потужності багатодіапазонної рампи 1.6.4 не задокументовані в каталозі тестів чи офіційному журналіjamming
Виявлення спуфінгуЗлитий для кожної епохи показник якості безпеки з χ² за допомогою годинника, RAIM, AGC, SQMMODELLEDПараметри сценаріїв TEXBAT (Humphreys 2012) — характеристика, а не зафіксовані вектори. Зовнішнє порівняння 0,30, висновок (залишається MODELLED): на JammerTest 2024 (Bleik; дані GPL-3.0) монітори рівня спостережень (хі-квадрат за допомогою годинника, RAIM, збій розв'язку) не подали тривоги протягом 10 с після жодного з 8 придатних до оцінювання опублікованих початків спуфінгу (де вікно перед початком було чистим, перша тривога настала через 10,2 до 39 с після опублікованого початку слоту), а три вікна перед початком містили хибні тривоги монітора годинника (81, 64 і 173 епох). Першим спостережуваним наслідком була втрата дводіапазонного стеження GPS, а не неузгодженість RAIM. Опубліковані початки — це початки слотів розкладу з роздільністю в хвилину; що вони передують захопленню RF, є інтерпретацією, а не вимірюванням. 0,30, раунд 2, проти офіційного журналу організаторів JammerTest 2024 (роздільність у секунду; попередньо зареєстровано 6a66994b з тристановим монітором годинника, відкаліброваним за Адамаром, без фіксації), висновок (залишається MODELLED): монітор подає тривогу протягом 10 с на 4 із 10 записаних початків; на решті шести він запізнюється на 18 до 211 с або подає хибні тривоги годинника перед початком (1 на 2.1.4, 85 на 2.3.15). D9, раунд 3 (картка приймача з інших сеансів пристрою JammerTest, попередньо зареєстровано 2ec76864) заблоковано: 167 навчальних епох проти 3600. D9, раунди 4 і 4b (рівні шуму з картки класу моделі u-blox ZED-F9P, Вроцлав 2021, попередньо зареєстровано fb475550; 4b — розкритий повторний прогін зі скоригованим добуванням, c9cc0d49), висновок (залишається MODELLED): нуль хибних тривог перед початком на всіх 10 записаних початках і 6 із 10 у межах 10 с; 2.1.1, 2.3.5, 2.3.10 і 2.6.1 лишаються із запізненням (+211, +23, +18, +51 с), незмінним від рівня шуму годинникаspoof, spoof_detect, spoof_monitors
Рівень захисту синхронізації часу за спуфінгуМежа в замкненому вигляді для найгіршої невиявленої похибки часу = поріг монітора + σ вибігу генератора за затримки виявлення CUSUM, подана як смуга рівня червоного шумуMODELLEDСкладає Validated примітиви (allan/holdover за Ван-Лоуном, поріг безпеки); відкалібровано на сценарії JammerTest 2024 2.1.1 (~1,01 мс реального відхилення поданого часу проти заявлених ≤51 нс). Міст над Validated частинами — не сам по собі зовнішня валідація. Зовнішнє порівняння 0,30, висновок (залишається MODELLED): на сценаріях спуфінгу JammerTest 2024 виміряна невиявлена похибка поданого часу перевищує номінальний TPL на 3 із 8 виявлених початків: 184,3 проти 34,6 нс (2.1.4), 295,7 проти 159,3 нс (2.3.5) і 143,0 проти 69,0 нс (2.3.11); три з п'яти в межах тривіальні (зафіксована хибна тривога перед початком). Імовірна причина: член вибігу з 60 с калібрування з нульовим шумом дрейфу не покриває блукання частоти TCXO приймача за 15 до 39 с. Виміряна похибка — це власна однопунктна оцінка годинника Kshana проти прямої, підігнаної до власних оцінок перед початком, тож навіть збіг не був би цілком незалежним. 0,30, раунд 2, проти початків з офіційного журналу JammerTest 2024 та виміряної похибки часу приймача (попередньо зареєстровано 6a66994b), висновок (залишається MODELLED): на 4 із 10 записаних початків невиявлена похибка перевищує TPL зі станом дрейфу (634,7 проти 458,5 нс на 2.1.1, 232,6 проти 16,2 нс на 2.3.5, 41,3 проти 6,0 нс на 2.3.10, 218,6 проти 47,4 нс на 2.6.3)tpl
Аналіз цисмісячної місіїSTM CR3BP + диференціальний коректор одинарної стрільби; південна NRHO біля L2VALIDATEDNASA/JPL Three-Body Periodic Orbit Database (SSD, periodic_orbits.api; південне гало-сімейство Земля–Місяць L2, методика Howell/Davis) — зовнішньо опубліковані період T, константа Якобі C та початкові умови перпендикулярного перетину; коректор STM одинарної стрільби kshana, засіяний початковими умовами каталогу та збурений, збігається назад до членів каталогуcr3bp
Альтернативний / додатковий PNTЗіставлення гравітаційних карт, прив'язка до рельєфу (TERCOM/SITAN), магнітна аномаліяMODELLEDКоефіцієнти IGRF-14; CRLB узгодженого фільтра з перших принципів. Поле еталонного тесту реальної гравітації перевірено зовнішньо (рядок «Gravity-anomaly synthesis from a spherical-harmonic model»), але його навігаційний результат не має зовнішнього оракулаaltpnt, mapmatch, gravimeter, igrf
Синтез гравітаційної аномалії зі сферично-гармонічної моделіГравітаційна аномалія в сферичному наближенні (Barthelmes STR09/02 рівн. 126, ICGEM gravity_anomaly_sa) за повністю нормованими коефіцієнтами проти замкненого рівневого еліпсоїда (WGS84/GRS80) з нульовим степенем, розкладена на сітку для зіставника гравітаційних картVALIDATEDICGEM Calculation Service (GFZ Potsdam), незалежна реалізація: EGM2008, усічена на степені 70, gravity_anomaly_sa, WGS84, без припливів, член нульового степеня, h = 0. Вихід сервісу не має явної ліцензії, тому сітки отримуються під час тесту із зафіксованим SHA-256 (tools/fetch_icgem_grid.sh), а лише десять значень наводяться із зазначенням авторстваgravity_sh, altpnt::maps, gravimeter
Зчитувач цифрової моделі висот SRTM на реальному рельєфіСамописний парсер SRTM .hgt (16 біт, big-endian, північний рядок першим, із урахуванням порожнеч) + білінійний семплер, що читає реальну плитку DEM суспільного надбання та розв'язує задокументований зйомковий еталонVALIDATEDПлитка NASA/USGS SRTM v3 (1 кутова секунда) N36W117 — дані висот PUBLIC-DOMAIN уряду США з відкритого дзеркала AWS elevation-tiles-prod, проріджені до 6 кутових секунд і зафіксовані в tests/fixtures/terrain/ (див. NOTICE.md), плюс вирізки повної роздільності N36W117 і N36W119, перехресно перевірені вузол до вузла за незалежним зчитувачем SRTMHGT у GDAL і зйомковими еталонами гори Вітні (4421 м) та Бедвотера (−86 м). Задокументований еталон улоговини Бедвотер (−86 м, найнижча точка Північної Америки) прив'язує геоприв'язане зчитування. Навігаційне виправлення за зіставленням рельєфу/TERCOM, що споживає DEM, залишається Modelled (окремий рядок Alternative/complementary PNT)altpnt::terrain
Відтворюваність і гарантування якості програмного забезпеченняДетерміновані, хешовані за сценарієм, SBOM + міжплатформні еталонні (golden) бар'єриMODELLEDВідповідність SBOM офіційній JSON-схемі CycloneDX 1,5 (+ чинні ідентифікатори SPDX) — зовнішній опублікований стандарт, нуль помилок валідації на всьому графі залежностей; частина детермінованості FoM / побайтової відтворюваності залишається зафіксованою перевіркою самоузгодженості, тому рядок залишається MODELLEDreport, scenario; CI (golden/determinism/SBOM)
Оцінювання виявлення RF-порушень за допомогою AI/ML (13494)Розмічений синтетичний корпус порушень + незалежний від детектора каркас ROC/AUC/матриці помилок/Pfa-Pmd; захист від витоку, стратифікований розподіл, звіт про оптимізм за зсуву розподілу (у режимі й поза режимом). Запускається з CLI/прив'язок як вид сценарію impairment-eval (scenarios/impairment-eval.toml)MODELLEDМежі AUC у замкненому вигляді (Манн–Вітні) + детектор-ідеальний оракул; корпус СИНТЕТИЧНИЙ (обґрунтований параметрами, не польовий/IQ)impairment_eval
Дослідження розриву оптимізму RF-порушень за допомогою AI/ML та предиктор розриву лише за IDКонтрольоване синтетичне дослідження розриву оптимізму AUC між розподілом навчання та поза ним для опублікованих і навчених (логістична регресія / MLP з одним прихованим шаром) детекторів: тренди законів масштабування для кожного класу (Спірмен ρ + нахил за 1−тяжкістю) і гребеневий предиктор лише за ID, що оцінює розрив тільки за діагностикою всередині розподілу, оцінений за схемами leave-one-detector-out і leave-one-class-out. Відтворюється через cargo run --release --example optimism_studyMODELLEDСтатистики, виведені вручну, проти замкнених форм (бінормальна AUC Φ(d'/√2), дисперсія DeLong, Спірмен із зв'язаними рангами, точне відновлення OLS) + перехресна перевірка leave-one-out проти базового рівня «передбачити середнє». Корпус СИНТЕТИЧНИЙ (обґрунтований параметрами, ніколи не польовий/IQ), а розрив оптимізму — це синтетичний→синтетичний зсув тяжкості, НЕ результат «симуляція → поле»impairment_study, impairment_ml, eval_stats
Квантовий проти класичного компроміс PNT та стійкість за відсутності GNSS (13503)Уведення виміряного ADEV (NNLS), таблиця компромісів (holdover синхронізації/інерціальний + вигода), обгортка стійкості за часом; застереження про мінімум передано з артефактом. Запускається з CLI/прив'язок як вид сценарію quantum-trade (scenarios/quantum-trade.toml)MODELLEDЯдро підгонки виміряного ADEV→PSD (NNLS) збігається з scipy.optimize.nnls (tests/scipy_reference.rs / tests/quantum_vs_classical_pnt_trade_reference.rs) — незалежне зовнішнє ядро; але ЧИСЛА компромісу кількісно характеризують (ніколи не перевіряють) годинник партнера / CAI, тож сам компроміс залишається MODELLED, без ореолу валідаціїquantum_trade
Середовище космічної погоди та термосферна густина, зумовлена активністюСонячні/геомагнітні індекси (визначальна таблиця Kp↔ap), екзосферна температура Jacchia-1971 і термосферна густина Jacchia 1971 (SAO Special Report 332: статичні дифузійні профілі, що відтворюють її Таблицю 7, із добовими, геомагнітними, піврічними, сезонно-широтними та гелієвими варіаціями) проти статичної атмосфери USSA76. Запускається з CLI/прив'язок як вид сценарію space-weather (scenarios/space-weather.toml)MODELLEDВизначальна таблиця Kp↔ap + замкнена форма екзосферної температури Jacchia-1971 (збіг до <1 K з опублікованими опорами, tests/space_weather_reference.rs); густина охарактеризована проти pymsis NRLMSISE-00 (незалежна модель NRL): розмах сонячного циклу на 800 км становить 10.4x проти 13.6x за NRLMSISE-00. Перегляд 0,30: відкалібрований коефіцієнт активності першого порядку замінено Jacchia 1971 (густина типового сценарію на 400 км 4.176e-12 -> 6.929e-12 кг/м3; reference_exospheric_temperature_k вилучено, mean_exospheric_temperature_k додано). 0,30, раунд 2, виміряні густини акселерометрів TOLEOS CHAMP/GRACE/GRACE-FO (ESA Swarm DISC; попередньо зареєстровано 20eed695), висновок (залишається MODELLED): орбітні середні на 400 до 500 км у межах множника 2 на сонячному максимумі поза бурями (CHAMP 2001 521/521, GRACE-A 2002 120/120, GRACE-FO 2024 526/547), але Jacchia 1971 приблизно в 1.7x надто густа на сонячному мінімумі 2008 (GRACE-A 412/544 у межах множника 2), тож густину не перевіреноspace_weather
Сумісність CCSDS OEM (імпорт ефемерид GMAT/Orekit/STK)Імпортер CCSDS 502,0 OEM (parse_oem), що толерує рядки COMMENT / додаткові ключові слова метаданих / блоки коваріації та є точною оберненою до записувача; круговий обхід + уведення зовнішнього файла з перевіркою узгодженості швидкості. Запускається з CLI/прив'язок як вид сценарію oem-interop (scenarios/oem-interop.toml)VALIDATEDНезалежний сторонній парсер CCSDS-502 oem 0.4.5 (MIT, https://pypi.org/project/oem/) — окрема кодова база, що декодує випромінений kshana OEM EME2000/UTC побайтово ідентично (24 стани у 2 файлах, поз/швидк Δ = 0) і чий суворий зчитувач підтверджує токени метаданих; парсер kshana так само погоджується з ним на вендореному зовнішньому OEM. Дві чесні знахідки щодо сумісності (бібліотека oem відхиляє конвенцію kshana з багатьма сегментами на супутник і її рядки коваріації з багатьма елементами) задокументовано в тесті — тож це перевіряє сумісний обмін одним об'єктом, а не повну відповідність CCSDS-502 кожного варіанта kshanaoem
Вікно запуску та геометрія виведення (аналіз місії)Азимут(и) запуску за двох тіл (sin Az = cos i / cos lat), мінімальне досяжне нахилення, колова швидкість, східний бонус обертання Землі, Δv зміни площини за доглегом і добові можливості, а за заданих епохи та рядків IERS finals2000A — швидкість пункту відносно істинного полюса (launch::site_rotation_speed_at). Запускається з CLI/прив'язок як вид сценарію launch-window (scenarios/launch-window.toml)MODELLEDСферично-тригонометрична геометрія запуску в замкненому вигляді проти опублікованих опор розв'язаних прикладів (Vallado, Fundamentals of Astrodynamics, 4-те вид., Алгоритм 37, азимут запуску + Розд. 6, зміна площини; tests/launch_window_ascent_geometry_reference.rs). Вони повторно використовують ту саму замкнену форму, що реалізує kshana (паритет з опублікованим значенням / перевірка переписування, InternalConsistency); MODELLED за двох тіл, без швидкісного трикутника обертової Землі / виведення / моделі втрат на опір. Зовнішнє порівняння 0,30 з Orekit 12,2 (Apache-2.0), висновок (залишається MODELLED): геометрія збігається до заокруглення (нахилення, прочитане назад з азимуту вигоряння на 158 випадках, найгірше 2.6e-15 рад; мінімальне нахилення, колова швидкість і дельта-v за доглегом до 3e-16), але швидкість пункту за обертання Землі не досягає попередньо зареєстрованого відносного 1e-6 на широті 62,9 град (1.12e-6). Розрив зростає як tan(lat), що узгоджується зі зсувом полюса через рух полюса приблизно на 5.8e-7 рад у земній системі Orekit, який сферичне ω·R·cos(lat) не враховує. Твердження не звузили до запуску, тому рядок не може підвищитися за цим порівнянням. 0,30, раунд 2 (попередньо зареєстровано 71bebf63): із епохою та рядками IERS швидкість пункту відносно істинного полюса (поле сценарію site_rotation_speed_true_pole_m_s) збігається з Orekit у межах 1e-6 на 24 пунктах за чотирма довготами (найгірше 4.9e-8), але номінальна швидкість без епохи, яку сценарій за замовчуванням видає як бонус обертання Землі, все ще розходиться на 1.12e-6, тож рядок залишається MODELLED до рішення щодо типового виводуlaunch
Балістичний коридор входу в атмосферу (Аллен–Еггерс)Пікове сповільнення (незалежне від балістичного коефіцієнта), швидкість і висота на піку перевантаження та швидкість піку нагрівання для балістичного входу в експоненціальну атмосферу. Запускається з CLI/прив'язок як вид сценарію reentry (scenarios/reentry.toml)MODELLEDАналітичний вхід за Алленом–Еггерсом у замкненому вигляді, додатково перехресно перевірений проти числового інтегрування scipy 1,18 solve_ivp (DOP853) ТОГО САМОГО ЗДУ входу лише з опором (tests/ballistic_re_entry_corridor_reference.rs, 36 випадків, найгірше відн. a_max 2.9e-9) — перевірка числового інтеграла проти власної аналітичної форми, тож усе ще InternalConsistency, НЕ зовнішня валідація. MODELLED балістичний (без підйомної сили), без аеротермічної/TPS — вихід нагрівання є швидкістю, а не тепловим потоком. Зовнішнє порівняння 0,30, висновок (залишається MODELLED): проти реконструкції входу Stardust SRC (Desai і Qualls, NASA NTRS 20080008567) пікове сповільнення за Алленом–Еггерсом для надрукованого інерціального стану входу (12,9 км/с, -8.2 град, H 7200 м) становить 61,8 g проти найкраще оціненої траєкторії 32,89 g, +88 % проти допуску 15 %: розв'язок зі сталим кутом траєкторії та без гравітації приблизно подвоює пік пологого входу зі швидкістю вище параболічної. Stardust не мав акселерометра, тож реконструкція є оцінкою траєкторії. 0,30, раунд 2, заблоковано (залишається MODELLED): інтегрований плоский розв'язок матеріальної точки (reentry::simulate_planar_entry, US76, гравітація за оберненим квадратом, кривина) збігається з найкраще оціненими траєкторіями Stardust і Genesis у межах 15 % (+11,3 %, +5,6 %), але ці максимуми — результати симуляцій агентств, а не вимірювання, тож це лише перехресна перевірка. Порівняння з акселерометром (попередньо зареєстровано a94a283d) заблоковано через відсутність читабельної копії аналізу Hayabusa2 REMM (doi 10.57350/jesa.16)reentry
Охоплення та геометрія смуги корисного навантаження EOSMAD, геометрія космічного трикутника: кутовий радіус Землі, ширина смуги огляду, GSD у надирі, максимальний доступ поза надиром і коловий період, плюс J2-вузловий період першого порядку (eo_payload::j2_nodal_period) і екваторіальний інтервал траси R_e (omega_E - dOmega/dt) T_nodal (eo_payload::ground_track_spacing_equator_j2) із прапорцем суцільного охоплення, для висоти орбіти, нахилення та FOV/IFOV датчика. Запускається з CLI/прив'язок як вид сценарію eo-coverage (scenarios/eo-coverage.toml); його типове нахилення — сонячно-синхронне з eo_payload::sun_synchronous_inclination, зручне типове значення, що не входить до перевіреного твердженняVALIDATEDOrekit 12,2 (Apache-2.0) і GeographicLib 2,1 (MIT), обидва запущені як окремі програми, попередньо зареєстровано (766823f3) до зміни рушія та будь-якого запуску оракула: величини сфери в межах 1e-9 відносно (найгірше: кутовий радіус 5.4e-16, смуга 7.0e-13, доступ 1.9e-14), період 1e-12 (1.6e-16), GSD у надирі 1e-7 (2.9e-10), J2-вузловий період і інтервал вузлів у межах 0,1 % від числового J2-розповсюдження Orekit з детектором вузла (1.2e-5 і 6.7e-5), прапорець суцільності точний (168/168), а проти еліпсоїда WGS-84 лімб у межах 0,3 град (0,186 град) і максимальна наземна дальність у межах 0,5 % (3.2e-3). Вилучення члена вузлової регресії не проходять 35 із 42 вузлових точок. Обсяг MODELLED: слід на сферичній Землі; без радіометрії, MTF, атмосфери, джитера чи відблисків; типове сонячно-синхронне нахилення не порівнюється. Попередню перехресну перевірку Skyfield/SGP4 збережено як регресійну. Перегляд 0,30: інтервал тепер несе J2-вузлову регресію (типовий сценарій 2756,37 -> 2752,17 км)eo_payload (j2_node_rate, j2_nodal_period, ground_track_spacing_equator_j2, sun_synchronous_inclination)
Кадрування TM/TC космічних пакетів CCSDS (133,0)Кодування/декодування первинного заголовка космічного пакета CCSDS 133.0-B (версія/тип/вторинний заголовок/APID/прапорці послідовності/лічильник/довжина даних) + сценарій кадрування. Запускається з CLI/прив'язок як вид сценарію space-packet (scenarios/space-packet.toml)VALIDATEDspacepackets 0.32.0 (us-irs/spacepackets-py, R. Mueller, Apache-2.0) — незалежна стороння реалізація CCSDS 133.0-B-2; encode_packet/decode_packet у kshana збіглися побайтово (6-октетний первинний заголовок для 33 випадків + повний закодований пакет для 12)space_packet
Вторинний заголовок космічного пакета CCSDS, контроль помилок пакета та сегментаціяРозширення космічного пакета CCSDS 133.0-B-2 поряд із первинним заголовком: вторинний заголовок, що несе часовий код CCSDS 301.0-B (CUC або CDS, явне або неявне P-поле) і допоміжні дані, поле контролю помилок пакета CRC-16, сегментація великої одиниці даних користувача та її повторне складання, декодування потоку з перевіркою розривів послідовності та порядку і пакети PUS-TM. Вихід первинного заголовка побайтово ідентичний попередньомуVALIDATEDПопередньо зареєстровано (003ef3eb) до будь-якого порівняння; чотири незалежні реалізації, жодна не GPL, нічого не вендореного: ccsdspy 2.0.1 (BSD-3-Clause) декодує 34 записані Kshana пакети в 5 потоках (первинний заголовок, P-поле, грубий і точний час, поля CDS, допоміжні дані, дані користувача, PEC), а обидві сегментовані одиниці по 1000 октетів відновлено з його даних користувача з 0 розбіжностей, і він позначає потоки з пропущеним і з поміняним місцями пакетом, які Kshana відхиляє; CRC 8 повідомлень і 57 полів PEC дорівнює CPython binascii.crc_hqx і spacepackets-rs 0.18.0 (контрольне значення 0x29B1); 66 випадків часових кодів CUC і CDS дорівнює запису та читанню spacepackets-rs 0.18.0 октет в октет (3 випадки CDS також spacepackets-py 0.32.0); 4 пакети PusTm spacepackets-py 0.32.0 побайтово ідентичні пакетам Kshana. Не охоплено: часові коди епох агентств (7 випадків спираються на модульні тести), транспортні кадри TC і будь-який канальний рівень нижче пакетаspace_packet (TimeCode, SecondaryHeader, контроль помилок пакета, сегментація та повторне складання, декодування потоку)
Експорт SPICE SPK (типи 9 і 13)Записувач і зчитувач ядер NAIF SPICE SPK типів 9 (Лагранж, нерівні кроки часу) і 13 (Ерміт, нерівні кроки часу), із розміткою DAF, дескрипторами сегментів і каталогами епох, та експорт CCSDS OEM у ядро SPK (епохи UTC або TDB в ефемеридний час)VALIDATEDCSPICE N0067 через spiceypy 8.3.0, ядро високосних секунд naif0012.tls, попередньо зареєстровано (5059fd2a) до того, як SPICE прочитав будь-яке ядро Kshana: опис SPICE чотирьох ядер Kshana точний; spkpvn і spkgeo на 5 516 епохах і 690 обчисленнях ланцюжків дорівнюють власному обчисленню Kshana біт у біт і лишаються в межах порога в кожному вузлі (найгірше 0,022 від нього); Kshana читає ядра, записані SPICE, біт-ідентично; для тих самих вхідних даних ядра Kshana побайтово ідентичні ядрам SPICE (0 різних байтів у чотирьох файлах); епохи OEM перетворюються в ефемеридний час у межах 6.0e-8 с від str2et (поріг 1e-6 с), а SPICE обчислює експорт OEM у межах порога (найгірше 0,060). Синтетичні дуги Кеплера: нічого про фізичну точність. Інші типи SPK не записуютьсяspk_writer (SpkSegment, to_bytes, from_bytes, eval, et_from_label, oem_to_spk_segments)
Типи SPICE SPK 3 і 21 (Чебишов, розширені рядки різниць)Записувач і зчитувач сегментів NAIF SPICE SPK типу 3 (поліноми Чебишова для позиції та швидкості на фіксованих інтервалах, степінь від 0 до 27) і типу 21 (розширені модифіковані масиви різниць, рядки різниць інтеграторів JPL, MAXDIM від 15 до 25) за заданими записами, у файлах, що містять також сегменти типів 9 і 13; вибір запису та обчислення в порядку зчитувачів SPICE. Kshana не підганяє коефіцієнти Чебишова і не створює рядків різницьVALIDATEDCSPICE N0067 через spiceypy 8.3.0 (spkw03, spkw13 і, з тієї самої бібліотеки через її символ f2c, spkw21; spkpvn, spkgeo), попередньо зареєстровано (e1cf80d8) до появи коду, синтетичні записи отримано із SHA-1 цього коміту: для трьох файлів (тип 3 степенів 0, 12 і 27 з 3 до 150 записів; тип 21 MAXDIM 15, 20 і 25 з 1 до 250 рядків, від нуля до двох записів каталогу та ланцюжок центрів; типи 3, 21 і 13 в одному файлі з коментарями) опис SPICE ядер Kshana точний, ядра Kshana побайтово ідентичні тим, що SPICE записує з тих самих записів, а spkpvn і spkgeo дорівнюють зчитувачу Kshana біт у біт на файлах Kshana і на файлах SPICE (48 876 компонентів в кожен бік, поріг 1e-12 відносно). Синтетичні записи: нічого про фізичну точність; реальних ядер типу 21, створених JPL, у наборі випадків немаєspk_writer (SpkType::Chebyshev3, SpkType::DiffLines21, SpkSegment, InterpolatedSpk)
Повідомлення CCSDS Attitude Data Messages (AEM, APM)Записувач і зчитувач повідомлень CCSDS 504.0-B-2 Attitude Data Messages у KVN і NDM/XML: AEM версії 2,0 (і 1,0 у KVN, з його ATTITUDE_DIR, QUATERNION_TYPE і числовими послідовностями обертань) з типами орієнтації кватерніон, кути Ейлера та спін і їхніми похідними варіантами, варіантами кутової швидкості та нутації, кількома сегментами; APM версії 2,0 з блоками кватерніона, Ейлера, кутової швидкості, спіну, інерції та маневру; кватерніон A-до-B запису (504.0-B-2, Додаток F)VALIDATEDПарсери та записувачі Orekit 13.1.8 (Apache-2.0), запущені як окрема програма (xval/adm-orekit), попередньо зареєстровано (7a6a05fe) до будь-якого порівняння: Orekit розбирає кожне записане Kshana повідомлення (14 AEM KVN, 11 AEM XML, 4 APM KVN, 4 APM XML), і кожне значення в межах свого порога (кватерніони 1e-14, кути 1e-9 град; найгірше 0,054 порога); Kshana розбирає 31 повідомлення, які Orekit записує з тих самих вхідних даних, у межах кожного порога; обертання кожного зі 135 записів кватерніона, Ейлера та спіну дорівнює AemSegment.getAngularCoordinates у межах 1e-12 (найгірше 0,0071 порога). Усі 15 XML-повідомлень Kshana проходять валідацію за схемою NDM/XML 4.0.0 (за наявності даних, отримується із зафіксованим SHA-256). Висновок: записувач APM в Orekit відмовляється від маневру без MAN_DELTA_MASS (необов'язкового за стандартом), тож маневри APM охоплено лише в напрямі «Kshana записує». Поза набором випадків: типи AEM 1,0 */RATE і XML, повторювані блоки APMadm (AemMessage, ApmMessage, quaternion_a_to_b), ndm_xml
Повідомлення CCSDS Orbit Data Messages (OPM, OMM, OCM)Записувач і зчитувач повідомлень CCSDS 502.0-B-3 Orbit Data Messages у KVN і NDM/XML: OPM 3,0 і 2,0 (вектор стану, оскулюючі кеплерові елементи, параметри космічного апарата, коваріація, маневри, визначені користувачем параметри), OMM 3,0 і 2,0 (середні елементи за середнім рухом або великою піввіссю, параметри, пов'язані з TLE, із BSTAR або BTERM і AGOM, коваріація) і OCM 3,0 з траєкторією (CARTP, CARTPV, CARTPVA; абсолютні або відносні епохи), блоками фізичних властивостей, коваріації (CARTP, CARTPV у порядку LTM), маневру та визначеними користувачем; OMM повної точності з набору елементів SGP4 поряд зі незмінним OmmFile::to_omm_kvnVALIDATEDПарсери та записувачі Orekit 13.1.8 (Apache-2.0) OPM, OMM і OCM, запущені як окрема програма (xval/odm-orekit), попередньо зареєстровано (cc6841da) до будь-якого порівняння: 27 із 30 записаних Kshana повідомлень (6 OPM, 5 OMM і 5 випадків OCM у KVN та XML для версії 3,0) розбираються в Orekit із кожним значенням у межах 1e-14 відносно та кожною епохою в межах 1e-9 с (904 значення, найгірше 0,021 порога), а Kshana читає всі 25 повідомлень, які Orekit записує назад, у межах тих самих порогів (858 значень, найгірше 0,020); усі 14 XML-повідомлень Kshana проходять валідацію за схемою NDM/XML 4.0.0 (за наявності даних). Висновки, зафіксовані, що звужують твердження: Orekit вимагає ELEMENT_SET_NO (необов'язкове в 502.0-B-3), відмовляється від COMMENT у визначених користувачем параметрах XML (схема це дозволяє), не записує BTERM без BSTAR (тож BTERM і AGOM охоплено лише в напрямі «Kshana записує») і додає відносні епохи OCM як секунди SI, тож за TDB вони розходяться з календарним прочитанням TDB приблизно на 1.9e-10 с/с (UTC, TAI і TT збігаються). Застарілий вихід OmmFile::to_omm_kvn, що обгортає метадані OMM у META_START/META_STOP, Orekit відхиляє (записано). Поза обсягом: блоки OCM PERT і OD, некартезові набори елементів, інші порядки коваріаціїodm (OpmMessage, OmmMessage, OcmMessage, Section, OcmBlock), ndm_xml
Бюджет похибки орієнтації та наведення за 3-DOF (AOCS)Найгірший збурювальний момент гравітаційного градієнта ((3/2)(μ/R³)ΔI) як пік за орієнтацією (перевірене твердження), плюс бюджет похибки наведення RSS за іменованими внесками 1σ із домінантним членом (квадратична сума чисел, наданих викликачем, поза перевіреним твердженням). Запускається з CLI/прив'язок як вид сценарію attitude-budget (scenarios/attitude-budget.toml)VALIDATEDBasilisk 2.9.1 GravityGradientEffector (AVSLab, ISC), незалежна реалізація на C++ повного тензорного моменту гравітаційного градієнта: пік Kshana (3/2)(μ/R³)ΔI дорівнює моменту Basilisk при орієнтації 45 град у межах 1e-12 відносно (найгірше 2.1e-15) на 5 висотах і 8 тензорах інерції та обмежує момент Basilisk на 2000 випадкових орієнтацій у кожному випадку; допуск зафіксовано до порівняння. Перевірене твердження: пік моменту гравітаційного градієнта. Бюджет наведення RSS — квадратична сума чисел, наданих викликачем, без зовнішньої істини, і лишається поза ним; вручну закодована максимізація повного тензора Hipparchus лишається як допоміжна самоузгодженість. Без симуляції контуру керування / 6-DoF / гнучких модattitude_budget
Прогноз проходжень над наземною станцією (наземний сегмент)Проходження видимості в часовій області (AOS/TCA/LOS, максимальна висота, тривалість) пропагатора рушія над станцією вище маски висоти, з інтерпольованими перетинами сходу/заходу та загальним доступом: passes::predict_passes, геометричний планувальник (без рефракції та часу світла). Вид сценарію passes запускає видимий прогнозувач із рядка «Apparent ground-station pass prediction with refraction and light time»VALIDATEDOrekit 12,2 (CS GROUP, Apache-2.0) + Hipparchus 3,1 — незалежна бібліотека польотної динаміки: ElevationDetector (кореневий розв'язувач Брента) + EventsLogger над ефемеридою ITRF, станція як TopocentricFrame WGS-84. AOS/LOS/максимальна висота/кількість проходжень/загальний доступ збіглися на ідентичних орбіті + станції + масці + вікні (зафіксований фікстур; драйвер xval/orekit-passes)passes
Видимий прогноз проходжень над наземною станцією з рефракцією та часом світлаПроходження видимості (AOS, TCA, LOS, максимальна видима висота, тривалість) набору елементів SGP4 над станцією WGS-84 на перевіреному шляху навколоземної орбіти (IAU 2006/2000A, необов'язкові параметри орієнтації Землі), з тропосферною рефракцією ITU-R P.834-9 (рівняння 9 до 14, надруковані в Рекомендації коефіцієнти) і часом світла низхідної лінії, кожне з яких вмикається окремо; перетини розв'язуються бісекцією до 1e-7 с, а кульмінація — пошуком золотого перерізу. Запускається з CLI/прив'язок як вид сценарію passes (scenarios/passes.toml), обидві поправки ввімкнені за замовчуваннямVALIDATEDOrekit 13.1.8 (CS GROUP, Apache-2.0) з Hipparchus 4.0.3: TLEPropagator на тих самих наборах елементів у TEME, яку Orekit будує за заданим визначенням (її IERS 2010 TOD, повернута на GAST - GMST), ElevationDetector і ElevationExtremumDetector з ITURP834AtmosphericRefraction і без неї, та AngularAzEl з AngularRadioRefractionModifier для випадку часу світла, перетини й максимум розв'язано Hipparchus; 60 випадків (чотири орбіти, п'ять станцій на рівні моря, маски 0, 5 і 10 град, 24 години). Пороги зафіксовано до запуску (попередньо зареєстровано e947e69d, гілка 3 з 72ea9eb0). Якщо ігнорувати час світла (9777 збоїв) або змінити константу P.834 1,728 на 1,828 (7883 збоїв), тест червоніє. Обсяг: станції на рівні моря; коефіцієнт h*theta0^2 P.834 в Orekit становить 0,011380, тоді як Рекомендація друкує 0,01380 (зафіксовано), тож висоти над рівнем моря не порівнюються. Раунд 1, проти типової IERS 1996 TEME в Orekit, дотримав кожен поріг проходжень, але не досяг порога напрямку через розрив конвенції TEME у 72 мс дуги (зафіксовано)passes (predict_passes_apparent, apparent_look_angles, ApparentOptions, p834_tau_s_deg, p834_tau_deg, p834_theta_m_deg, p834_apparent_elevation_deg, PassesScenario)
Адаптивне кодування та модуляція DVB-S2 уздовж проходження низхідної лінії LEOEs/N0 низхідної лінії уздовж кожного проходження одного супутника над однією станцією (EIRP, втрати у вільному просторі, атмосферні втрати за законом косеканса, інші втрати, G/T, стала Больцмана, символьна швидкість), найефективніший MODCOD DVB-S2, що перевищує свій квазібезпомилковий поріг за ETSI EN 302 307-1 V1.4.1, Таблиця 13, плюс запас реалізації на кожному кроці, обсяг даних ACM проходження та базовий рівень зі сталим кодуванням, що замикається на масці та за найбільшої дальності. Запускається як вид сценарію acm-link. Ілюстративні вхідні дані; MODELLED.MODELLEDВнутрішня узгодженість: спектральна ефективність, обчислена в замкненому вигляді з K_bch Таблиці 5a і довжин кадрів, збігається з ефективностями, які друкує Таблиця 13 (перевірка переписування таблиці порогів); складові бюджету лінії збігаються з їхніми замкненими формами; вибір монотонний за Es/N0 і дотримується запасу; ACM переносить щонайменше обсяг зі сталим кодуванням. Геометрія проходження походить від окремо VALIDATED видимого прогнозувача проходжень. ЩО НЕ ПЕРЕВІРЕНО: жоден зовнішній інструмент чи виміряна лінія не порівнювалися; пороги — ідеальні значення AWGN зі стандарту, а не модема; завмирання від дощу, втрати наведення уздовж проходження та пілоти не моделюються.contact_schedule (es_n0_db, select_modcod, fspl_db, atmospheric_loss_db, ccm_modcod, pass_capacity, AcmLinkScenario); passes::predict_passes_apparent
Планування наземних контактів для кількох супутників і станцій з розв'язанням конфліктівКандидатні контакти з кожного проходження супутник–станція з їхнім обсягом даних ACM; конфлікти, де одна антена обслуговувала б два супутники в межах свого часу переналаштування або один супутник передавав би на дві станції одночасно; зважена за пріоритетом ціль доставки, обмежена накопиченим обсягом кожного супутника; ліниве жадібне планування за граничним значенням, базовий рівень «хто перший» та точний метод гілок і меж на до 26 кандидатах, із зазначенням розриву оптимальності жадібного методу. Запускається як вид сценарію contact-schedule. Ілюстративні вхідні дані; MODELLED.MODELLEDВнутрішня узгодженість: точний метод гілок і меж збігається з повним перебором на малих випадкових наборах, кожен план перевірено на допустимість за правилами конфліктів, а жадібний метод ніколи не перевершує точний оптимум. ЩО НЕ ПЕРЕВІРЕНО: жоден зовнішній планувальник чи оперативний план не порівнювався; контакти беруться цілими (без поділу), накопичений обсяг зафіксовано на початку вікна, час повороту понад фіксований час переналаштування та бортове сховище не моделюються.contact_schedule (conflicts, objective, delivered, schedule_chronological, schedule_greedy, schedule_optimal, ContactScheduleScenario)
Односторонній бюджет лінії (зв'язок / проєктування лінії)Втрати на трасі у вільному просторі, C/N₀, Eb/N₀, запас і замикання за рівнянням лінії CCSDS 401 / DSN 810-005 для EIRP/G·T/дальності/швидкості/діапазону проти потрібного Eb/N₀. Запускається з CLI/прив'язок як вид сценарію link-budget (scenarios/link-budget.toml)VALIDATEDОпублікована таблиця контролю проєкту телекомунікацій далекого космосу як зафіксовані числові вектори: DESCANSO / J. H. Yuen (ред.), Deep Space Telecommunications Systems Engineering, JPL Pub 82-76, Таблиця 1-1 (Galileo X-діапазон) — kshana повторно збирає рядки таблиці й відтворює її опубліковані наскрізні L_fs 290,54 дБ і Pr/N0 54,6 дБ-Гц; втрати у вільному просторі також перевірено за ITU-R P.525linkbudget
Ощадливе подання вартості на покриття / ROIВартість на відсоток покриття + ROI «покриття на євро» над рушієм розрахунку розміру угруповання; вартість супутника — це вилка низька/номінальна/висока, надана викликачем (без вигаданих цін)MODELLEDАрифметика вартості в замкненому вигляді проти значень, виведених вручну; економічне ПОДАННЯ змодельованого показника покриття, а не пропозиція ціни чи перевірена модель вартостіfrugal (over walker)
Вплив пропущеного виявлення на цілісність (HPL/VPL з урахуванням контексту проти межі тривоги)Відображає невиявлене зміщення спуфінгу/глушіння на ефективну похибку → область Стенфорда (доступно/недоступно/MI/HMI) проти HAL/VAL для конкретного контексту (відкрите небо проти міста)MODELLEDСкладає зовнішньо перевірену класифікацію Стенфорда RAIM (raim::classify_stanford); саме відображення «пропущене виявлення → AL» змодельоване, а не є сертифікованим розподілом цілісностіintegrity_impact (over raim)
Цитований лист параметрів моделі похибок CAI (13503)Вилка (найкраще/номінально/консервативно) продуктивності холодноатомного інтерферометра — нестабільність зміщення, випадкове блукання швидкості/кута, стабільність масштабного коефіцієнта, частота вибірки, обмежена опитуванням, динамічний діапазон неоднозначності смуг — кожна з простежуваним цитуванням; живить QuantumNavBudget без моделювання апаратуриMODELLEDВнутрішня узгодженість: цитована вилка VRW перехресно перевірена за фізикою CaiAccelerometer::accel_asd + сирий динамічний діапазон, обчислений із межі неоднозначності смуг; числа — MODELLED вилки з огляду літератури (needs_source_confirmation), жоден пристрій не перевірено, без ореолу валідаціїinertial::cai_params (over inertial::quantum_imu)
Еталонний тест відповідності цілісності часу — класифікатор епох за діаграмою цілісності СтенфордаКласифікація епох TIB за діаграмою цілісності Стенфорда (номінально / недоступно / MI / HMI)MODELLEDНезалежна повторна реалізація чотирьохобластного правила на numpy (scripts/gen_tib_scorer_reference.py) на ідентичному наборі зразків; метод Cited із діаграми цілісності Стенфорд–ESA (Tossaint et al., ION GNSS 2007) і RTCA DO-229 WAAS MOPS. НЕ оракул точності ExternalDataset — еталонний тест має імунітет до чесності.src/benchmark/stanford.rs
Еталонний тест відповідності цілісності часу — оцінювач покриття цілісностіОцінювання покриття цілісності TIB (частоти HMI/MI/доступності + вердикт покриття верхньою межею (overbound))MODELLEDНезалежний перерахунок областей на numpy у tests/fixtures/tib/reference.json; лише перехресна перевірка механіки оцінювача, без твердження про точність.src/benchmark/coverage.rs
Еталонний тест відповідності цілісності часу — каталог збоїв (параметричні генератори)Меню збоїв TIB (розходження доменів, удар годинника, вибіг holdover, статична/покрокова/симетрична/асиметрична затримка, повтор у межах свіжості, вибірковий шлях, кворум k із N)MODELLEDРепрезентативні параметричні генератори збоїв (Modelled); невиявний набір (симетрична затримка, повтор у межах свіжості) Cited з Mizrahi RFC 7384 і Narula & Humphreys (IEEE JSTSP 2018). Зовнішнього оракула немає — каталог збоїв не робить виміряного твердження.src/benchmark/faults.rs
Еталонний тест відповідності цілісності часу — вердикт поглинання невиявногоВердикт TIB щодо поглинання невиявного (симетричне/повтор мають поглинатися PL, ніколи не повідомлятися як виявлені)MODELLEDПеревірка властивості, що enum Verdict структурно не може повідомити невиявний збій як виявлений (Mizrahi RFC 7384); поглинено ⟺ PL ≥ зсув. Оракула точності немає.src/benchmark/scorecard.rs
Інженерія платформи космічного апарата (AOCS/тепловий режим/конструкції/двигуни/живлення)Не надається — Kshana є симулятором навігаційних характеристик, а не виробником платформPARTNER
Проєктування навігаційного RF-корисного навантаження та антенної апаратуриНе надається — Kshana моделює характеристики сигналу, а не апаратуру корисного навантаження чи антенPARTNER
Проєктування та доведення апаратури квантового корисного навантаженняНе надається — лише моделі характеристик; апаратура холодних атомів/годинників належить партнеровіPARTNER
Забезпечення продуктової якості льотної апаратури (радіація/EEE/MAIT)Не надається — Kshana стосується лише PA програмного забезпечення; льотне PA належить партнеровіPARTNER
Місячний координатний часРелятивістська швидкість годинника Земля–Місяць (LTC/TCL) + ланцюжок TT/TAI/UTC + ансамбльVALIDATEDAshby & Patla 2024, 'A Relativistic Framework to Estimate Clock Rates on the Moon', Astronomical Journal 167:149 (NIST; основа для IAU/IAG LunaNet LTC): власний потенціал поверхні Місяця L_m = 3.13881e-11 і вікова сума 56,02 мкс/добу збігаються як опубліковані числові значення; геоцентричну швидкість Місяця перехресно перевірено за JPL DE440 (de440s.bsp через SPICE)lunar_time
Самоопис гібридного оптичного/RF звітуЗвіт hybrid-optical-rf зазначає конфігурацію лінії, з якою він справді виконувався (довжина хвилі несівної, передавальна та приймальна апертура, дальність, ширина імпульсу, час інтегрування, ефективності та втрати, розв'язані типові значення) і несе блок одиниць із одиницею та класом походження кожної величини, яку стаття ймовірно цитуватиме, зокрема сліди коваріації передавання в квадратних метрахMODELLEDЗовнішнього оракула немає, і його неможливо мати: це самоопис, а не вимірювання. Його записано, бо відсутність його була дефектом -- P5 довелося брати довжину хвилі несівної та передавальну апертуру з типових значень у коді і виводити, що голе variance було в квадратних метрах, із перевірки внутрішньої узгодженості. Виведення було правильним, і саме тому це мало значення: ніщо не виявило б, якби воно було хибнимhybrid_integrity
Доступність гібридної оптичної/RF лінії з боку RFЗвіт hybrid-optical-rf зазначає доступність RF-лінії, складену з величин, які рушій уже обчислює, а не з імпортованої кліматології, і зазначає композицію як іменоване правило: A_rf = I_closure * I_track, де I_closure — вердикт замикання одностороннього бюджету лінії CCSDS-401 / DSN-810-005 (linkbudget::link_budget, запас Eb/N0 >= 0) на власній дальності сценарію, а I_track — вердикт контуру стеження (jamming::lock_status) за C/N0, який повернув ТОЙ САМИЙ бюджет. Кожен множник передає клас походження свого входу на вихід, а множники, свідомо НЕ включені до добутку -- геометрична видимість, відмова через завади та кліматологія RF-відмов -- названі з причиною, а не мовчки встановлені в 1. Розв'язану RF-ногу повторено як окремий блок rf_link_configuration, а неперервні показники поряд з індикатором (запас лінії, запас C/N0, замкнені дальності замикання та стеження і використання дальності) — це обернення за дальністю того самого бюджету. Звіт повністю зазначає, на блоці та в записі одиниць, на який потрапляє читач, що цей показник ОБМЕЖЕНИЙ ЗАПАСОМ/ГЕОМЕТРІЄЮ і ДЕТЕРМІНОВАНИЙ, тоді як оптична доступність ОБМЕЖЕНА ПОГОДОЮ/КЛІМАТОЛОГІЄЮ і ймовірнісна, тож їх ніколи не можна наводити як порівнянну пару відсотківMODELLEDЗовнішнього оракула немає, а ExternalDataset відхилено. Два входи — це запас Eb/N0 і перетин порога C/N0, обидва є функціями MODELLED EIRP, показника якості та зосередженого розподілу втрат; немає виміряного запису доступності для гібридної оптичної/RF служби Земля–Місяць, з яким можна було б перевірити складений показник. Наявні перевірки внутрішні й названі як такі: композицію перераховано з власних опублікованих запасів звіту, а не з нутрощів видавця, а дальність замикання перевірено повторним запуском рівняння лінії НА ній із вимогою, щоб запас зник -- круговий обхід обернення, а не незалежна реалізація. Чесну межу показника записано на самому звіті: це детермінований індикатор 0/1, а не ймовірність, бо ніщо в цьому рушії не вимірює розподіл RF-відмов лінії в цьому діапазоні та геометрії. Цей відсутній вхід названо в rf_availability.factors_not_included, а не вигадано, і саме його надання знадобилося б для ймовірнісної RF-доступностіhybrid_integrity, linkbudget, jamming
Порівняння оптичного та RF вимірювання дальності на рівних умовахЗвіт hybrid-optical-rf видає відношення оптичного та RF вимірювання дальності з ОДНІЄЮ конфігурацією, за якої оцінено обидві ноги, у тому самому об'єкті: той самий односторонній шлях, та сама дальність і той самий час накопичення. Оптична нога — це фотонно-обмежена CRLB ToA рушія за односторонньою кількістю фотонів; RF-нога — це теплове тремтіння кодового стеження DLL early-late рушія за C/N0, який повертає власний бюджет лінії рушія для тієї самої односторонньої дальності. Шумову смугу контуру виведено, а не вибрано: B_L = 1/(2*integration_s) ставить RF-ногу рівно на оптичний час накопичення, а якщо викликач перевизначає її так, що два часи усереднення розходяться, відношення ВІДХИЛЯЄТЬСЯ (REFUSED) -- null, з названими розбіжністю та обома часами -- замість того, щоб наводитися у двох робочих точках. Жодного відношення не формується проти ВИБРАНОГО параметричного rf_position_sigma_m сценарію, і відмова пояснює чому: цей вхід не несе жодної конфігурації. Випущений двосторонній оптичний заголовок і точний множник, що з'єднує його з односторонньою порівняльною ногою, подано поряд із відношенням, тож звіт не можна прочитати як такий, що несе дві розбіжні оптичні сигмиMODELLEDЗовнішнього оракула для ВІДНОШЕННЯ немає, а ExternalDataset відхилено свідомо. Підлеглий RF-ланцюг його має -- tests/validate_p5_rf_ranging_precision.rs перевіряє linkbudget::link_budget і navsignal::dll_code_jitter_chips проти незалежного фікстура Python/NumPy та проти жорстко закодованого розв'язаного значення Kaplan & Hegarty (2.814e-3 чипа / 0,825 м за 45 дБ-Гц) -- а оптична CRLB має власний рядок у замкненому вигляді. Претендувати на будь-яку з цих опор для цього рядка було б запозиченою валідацією, чому й існують інваріанти матриці: тут величина — це ВІДНОШЕННЯ у конфігурації з MODELLED EIRP, показником якості, потужністю передавача та апертурою, і виміряного порівняння оптичного та RF вимірювання дальності в спільній робочій точці, з яким можна було б її перевірити, не існує. Внутрішньо перевіряється те, у чому відношення справді може помилитися: що обидві ноги стоять в одній робочій точці. Це вимірюється масштабуванням спільного часу накопичення з вимогою, щоб обидві ноги змінилися за тим самим законом квадратного кореня, а відношення лишилося на місці, і забезпечується повною відмовою від відношення, коли часи усереднення розходяться. Обидві ноги є межами теплового/дробового шуму, і обидві виключають затримку в середовищі, похибку годинника та неоднозначність, тож виключення однакове з кожного боку; звіт каже про це, а не залишає це на виведенняhybrid_integrity, optical_linkbudget, linkbudget, navsignal
Самоопис звіту про бюджет лініїЗвіт про бюджет лінії зазначає кожну абсолютну константу, з якої обчислено його власний запас -- частоту несівної, яку використали втрати у вільному просторі, EIRP, показник якості, зосереджені втрати та член Больцмана -- плюс потрібне G/T, за якого запас нульовий, сталу лінії (EIRP - втрати - потрібне Eb/N0), що є єдиною комбінацією, яку опублікована таблиця швидкості/підсилення може будь-коли зафіксувати, і, коли викликач задає шумову температуру системи, підсилення приймальної антени, яке цей показник якості передбачаєMODELLEDЗовнішнього оракула немає: це самоопис рівняння, уже перевіреного за опублікованою таблицею контролю проєкту (див. рядок одностороннього бюджету лінії). Його записано, бо відсутність його була виміряним дефектом -- відтворення випущеного d1_rate_gain_beamwidth.csv вимагало зворотного розв'язання однієї ефективної константи з точністю до 0,0034 дБ за всіма тридцятьма рядками, і тепер рушій і називає цю комбінацію, і доводить тестом, що жодна випущена таблиця ніколи не могла розділити її три складовіlinkbudget
Таблиця місячного часового перетину за класами годинниківОдин прогін бюджету місячного часу видає рядок перетину «годинник проти системи відліку» для кожного класу годинників проти єдиного спільного члена системи відліку, тож годинник — єдина змінна порівняння; кожен рядок несе перетин, досягнутий двома шляхами -- знайдений бісекцією із загальної степеневої кривої похибки часу та виведений алгебраїчно з домінантного типу шуму рядка -- з відносною різницею між нимиMODELLEDДва різні обчислення тієї самої величини в тій самій кодовій базі, а не одне, переформульоване: бісекція за степеневою кривою IEEE-1139 нічого не знає про тип шуму, тоді як замкнена форма інвертує домінантний тип алгебраїчно, тож хибно класифікований тип шуму або поганий інтервал виявляється як не дрібна відносна різниця. Чотири значення також відтворюють опубліковану таблицю статті до половини її останньої надрукованої цифри -- але ця таблиця сама була реконструйована з тієї ж замкненої форми, тож це перевірка відтворюваності, а не зовнішній оракул, а член системи відліку, проти якого вимірюється, є змодельованим (Modelled) розподіломlunar_time_budget
Спільна похибка UT1 і руху полюса на спільному наборі рядківОдна таблиця подає похибку прогнозу UT1, похибку полюса через рух полюса та їхню квадратурну комбінацію на Місяці на ІДЕНТИЧНОМУ наборі епох на горизонт, видаючи епохи, на яких вимірювано кожен складник. Окремо сценарій називає, який саме вхід EOP діє, і розкладає перепис його рядків, а також завжди видає таблицю горизонтів «прогноз проти остаточного» з явним поясненням, чому вона порожня, коли це такVALIDATEDastropy 8.0.1 utils.iers (BSD-3), що читає продукт IERS finals2000A за власним правилом Bulletin-B-інакше-A, і pyerfa 2.0.1.5 (SOFA), повні обертання від небесної до земної систем (c2i06a, sp00, pom00, c2tcio; кут обертання Землі за IERS 2010 рівн. 5,15 у точній арифметиці), запущені як окремі програми на дослівних рядках замороженого finals2000A.all від 2026-09-30; попередньо зареєстровано (455b8fb5) з поправками A1 і A2, що фіксують лише числову точність оракула (обидві розкриті разом із прогонами, які вони випередили): кожен список епох Таблиці 3 рівний, статистики UT1 і полюса в межах 6e-16, комбінація в межах 1.9e-7, 12/12 випадків «прогноз проти остаточного». Перевірка комбінації не може розрізнити похибок члена полюса нижче приблизно 1e-4 відносно, бо UT1 домінує в ній; точність полюса спирається на перевірку статистики полюса на 1e-9. Правила набору епох і запасного варіанта — це генератор, що віддзеркалює визначення Kshana, а стани порожньої таблиці — проєктна поведінка без зовнішньої істини. Величини: реалізовані похибки прогнозу Таблиці 3a з IERS Annual Report 2019, Kshana/IERS від 1,001 до 1,100 на 1 до 90 діб (поріг [0,8, 1,25], Measured). Перепис рядків: astropy (рядок офлайн-входу). Раунд 1 (збережено як регресійний): проти формули точності, надрукованої в 178 випусках Bulletin A, полюс збігається в межах 1.5x, а UT1 — ні, що перевіряє формулу IERS проти її реалізованої похибкиframe_eop, realtime_frame_eop
Типовий офлайн-вхід параметрів орієнтації Землі — це реальний продукт IERSТиповим під час виконання для realtime-frame-eop є власна вбудована копія бібліотеки дослівного витягу IERS finals2000A (tools/finals2000A_20260930.txt: 174 послідовних щоденних рядків, MJD 61224-61397, вирізаних із finals2000A.all від 2026-09-30), що несе всі три визначені форматом вінтажі рядків, класифіковані прапорцями IERS I/P (eop::row_vintage): 30 остаточних Bulletin B, 54 швидких виміряних рядків (прапорець I без блока Bulletin B) і 90 прогнозів Bulletin A (прапорець P). Голий запуск без аргументу-файла та без мережі видає заповнену таблицю за горизонтами, перепис rows = final_rows + rapid_rows + prediction_rows (174 = 30 + 54 + 90) і predicted_rows.n = 90 над MJD 61308-61397; поріг відсікання «як випущено» порівнянь «прогноз проти остаточного» — останній виміряний рядок. Попередній витяг із 32 рядків (tools/finals2000A_2026.txt, кожен рядок із прапорцем I) і уривок із п'яти рядків лише з остаточними даними залишаються в постачанні та задіяними: на них predicted_rows.n дорівнює 0, що є властивістю вхідного файла, а не результатом парсераVALIDATEDastropy 8.0.1 astropy.utils.iers.IERS_A (BSD-3-Clause), що читає ті самі байти власним зчитувачем, і таблиця IERS Bulletin A Vol. XXXIX No. 039, скопійована число в число; попередньо зареєстровано (6fdae01b) із шістьма точними критеріями до запуску astropy. Усі шість виконуються: 30 остаточних, 54 швидких і 90 прогнозних рядків з рівними списками MJD, кожен прогнозний рядок має прапорець P, перепис типового запуску рівний, а прогнози збігаються з Bulletin A у межах останньої надрукованої цифри. Розкрито: зріз вибрано простим зрізом стовпців прапорців і блока Bulletin B, який показав 30/54/90, до коміту; витяг є дослівним зрізом, який цей репозиторій вирізав з продукту IERS (SHA-256 у NOTICE фікстура). Перевірене твердження — це класифікація вінтажів і перепис постачуваного типового входу та його прогнозних рядків; довільні користувацькі входи класифікуються за тим самим правилом прапорців, але не входять до порівняння. 0,30, раунд 1 (замінено): попередній типовий вхід називав 12 рядків з прапорцем I прогнозами Bulletin A; тепер рушій класифікує за прапорцем. РЕДАКЦІЇ: клітинки типового запуску, що змінилися, перелічено від старого до нового в docs/revisions/M035-default-eop-recut-cell-changes.md (predicted_rows 12 -> 90, мінімум полюса 0,06776 -> 0,05550 мкс дуги, член орієнтації Землі 14,01601 -> 14,01583 м, загальна 20,09759 -> 20,09746 м і 67,03834 -> 67,03790 нс, рядки Таблиці 2 у tests/golden/realtime-frame-eop.csv та показники згоди оперативного прогнозувача); попередні — у docs/revisions/G12-default-eop-cell-changes.mdrealtime_frame_eop, eop
Площа захоплення залежно від висоти та ширини променяДвоосьовий перебір площі поверхневого захоплення, зваженої за діаграмою та обмеженої висотою, за висотою передавача та діаметром антени, що видається одним рядком на робочу точку з шириною променя за половинної потужності, яку передбачає кожен діаметр, а захоплення лімба подано як ПОРІГ -- для кожного рядка J/S лімба, його запас і потужність передавача, яка його замкнула б; для кожної сітки знайдені перетини або явне твердження, що лімб ніде на сітці не досягається, із дефіцитомMODELLEDВключення множин: відношення завади до сигналу входить як рівномірний зсув у децибелах, тож захоплена множина за вищої потужності передавача містить множину за нижчої, і частка може лише зростати -- властивість, якої діаграма Ері НЕ дає за шириною променя чи висотою, де захоплена область розпадається на кільця, а частка справді немонотонна. Жодна опублікована таблиця не дає частки захопленого диска місячного орбітального передавача залежно від висоти та ширини променя, тож немає нічого зовнішнього, з чим можна було б перевірити ці клітинки; діаграма під ними окремо Validated за опублікованими значеннями Бесселя і зберігає власний рядокantenna
Відтворюваність бюджету похибки місячного часуСценарій lunar-time-budget публікує свої масивні виходи як довгу таблицю (індекс сітки, час усереднення, член) поряд зі звітом, тож сім кривих x(tau) для кожного члена та загальна корінь-з-суми-квадратів є виходом рушія, а не тим, що читач відтворює з розділу про методMODELLEDЛише самоузгодженість: опубліковану суму перевірено проти кореня з суми квадратів членів у тому самому файлі, а видана крива відтворює випущений p3_time_budget_curve.csv у всіх 57 точках. Обидві перевірки спільно використовують власні визначення членів цього рушія, тож жодна не є незалежною. Член годинника спирається на опубліковані специфікації годинників, але ВЕЛИЧИНИ порогів лінії, системи відліку, релятивістських і ефемеридних членів — це задокументовані розподіли бюджету без зовнішнього оракулаlunar_time_budget_scenario
Лабораторія часу місячної станції: holdover miniRAFS проти LTCНеобов'язковий блок [time_lab] сценарію lunar-time-budget моделює годинник місячної опорної станції (типово клас miniRAFS, або будь-який названий клас, або картка пристрою, підігнана за заданими точками стабільності), скерований на Координований місячний час, а потім вільно хідний або повторно скерований кожні N секунд: крива похибки часу x(t) як корінь із суми квадратів степеневого члена годинника, сталого залишку скерування (ILLUSTRATIVE), сталого залишку реалізації LTC і вмикного члена швидкості від висоти станції; час після скерування до 1, 10 і 100 нс (або заданих порогів) бісекцією поряд із замкненим оберненням для домінантного типу шуму, і домінантний член на кожному заданому горизонті, усе з одиницямиMODELLEDЛише внутрішня узгодженість: час до порога, знайдений бісекцією, перевірено проти замкненого обернення домінантного типу шуму годинника, а вільно хідний член годинника — проти власного члена годинника бюджету. Класи годинників спираються на опубліковані одноденні специфікації (їхні власні рядки); швидкість LTC тут не виводиться заново і зберігає власний VALIDATED рядок (Місячний координатний час); залишок скерування — ILLUSTRATIVE, залишок реалізації — розподіл бюджету, і жодної теплової моделі не включено. Наносекундну ціль, описану в матеріалі ICG WG-B Lunar PNT за червень 2024, наведено як твердження джерела, а не прийнято як твердження; ніщо тут не є твердженням про будь-який реальний годинник станціїlunar_time_lab (over clock_specs, lunar_time_budget, lunar_time)
Місячна геодезична VLBIЗатримка VLBI ближнього поля для земної бази, що спостерігає місячний маяк + частинні похідніMODELLEDЗатримка delta_dor плоскої хвилі (та сама кодова база) у межі дальнього поля; частинні похідні скінченними різницями. Зовнішнє порівняння 0,30, висновок (залишається MODELLED): проти збіжних часів світла ANISE 0,10 через DE440 (75 затримок на 2024-01-01 за трьома базами DSN, породжених xval/anise-lunar-od без коду Kshana) жодна затримка не лежить у допуску 1 пс. Найбільший розрив — 24 мкс, від аналітичного центру Місяця (приблизно 200 км від DE440), єдиної миттєвої геометрії без ітерації часу світла (3,6 мкс) і відкинутого руху полюса; частинні похідні маяка відрізняються до 2.9e-3 відносно проти 1e-6. Твердження в документації модуля, що наближення систем відліку менші за точність моделі, на цьому рівні не виконується. 0,30, раунд 2: шлях ядер (lunar_vlbi::KernelGeometry) перевірено за часами світла NAIF SPICE у власному рядку, Місячна геодезична VLBI, шлях ядер; порівняння цього шляху з ANISE (75/75 у межах 1 пс, найгірше 0,12 пс, tests/lunar_vlbi_anise_oracle.rs::kernel_delay_matches_the_anise_light_time_difference) є лише перехресною перевіркою обчислення ядер, бо розв'язок часу світла в цьому каркасі — власний для проєкту. Цей рядок (аналітичний типовий шлях) залишається MODELLED із висновком вищеlunar_vlbi
Місячна геодезична VLBI, шлях ядерЗатримка VLBI ближнього поля для земної бази, що спостерігає місячний маяк, із частинними похідними маяка та станцій, на шляху ядер (lunar_vlbi::KernelGeometry): DE440 Земля та Місяць, головні осі Місяця DE440, орієнтація Землі ITRF93 з UT1 та рухом полюса, кожен час світла збігається в барицентричній системі, частинні похідні з множником часу світла 1/(c - u.V). Запускається як сценарій lunar-vlbi із заданими planetary_kernel_path, earth_orientation_kernel_path і moon_orientation_kernel_path; перевірені виходи — це ряд geometric_delay_s на шляху ядер і epoch_partials. На шляху ядер delay_s додає аналітичний диференційований член Шапіро, який не порівнюється, а delay_rate і near_field_correction_us не порівнюютьсяVALIDATEDNAIF SPICE Toolkit N0067 (spiceypy 8.2.0, MIT) збіжні ньютонівські часи світла (spkcpt/spkcpo, CN) від маяка, закріпленого в MOON_PA_DE440, до станцій DSN DSS-14, DSS-43 і DSS-63 із станційного ядра NAIF earthstns_itrf93_260814.bsp, із de440s, moon_pa_de440_200625, moon_de440_250416.tf, earth_latest_high_prec і naif0012; частинні похідні — п'ятоточкові центральні різниці часів світла SPICE, а не формула Kshana 1/(c - u.V). Попередньо зареєстровано (a689c797, епохи 2024) з порогами 1 пс для кожної затримки та 1e-6 відносно для кожної частинної похідної. Той перший запуск не пройшов (17/75 затримок у межах 1 пс, найгірше 1.03e-11 с): SPICE несе ET як одне double, чий крок у 2024 округлює епоху випромінювання до 6e-8 с, приблизно 6 пс часу світла, а залишок збігається з цим округленням із кореляцією 0,99999 (зафіксовано; рецензент відтворив це незалежно). Поправка 66e365d4, написана після цього результату та до появи її фікстура, перенесла той самий оракул і пороги на 25 щогодинних епох біля J2000, де крок ET не перевищує 1.5e-11 с: 75/75 затримок у межах 1 пс (найгірше 6.2e-14 с), 75/75 частинних похідних маяка (найгірше 7.4e-9), 150/150 частинних похідних станцій (найгірше 3.8e-11). Поза твердженням: аналітичний типовий шлях (рядовий Місяць і середня місячна система відліку, 24 мкс від ANISE через DE440, рядок Місячна геодезична VLBI), диференційований член Шапіро, який сценарій додає аналітично, середовище та перехід від барицентричного до геоцентричного масштабуlunar_vlbi (KernelGeometry, delay_partials_beacon_body, delay_partials_stations, LunarVlbiScenario); naif_kernel
Зчитувач ядер NAIF: контейнер DAF, SPK тип 2 і двійковий PCK тип 2Власний зчитувач двійкових ядер NAIF на чистому Rust (naif_kernel): контейнер DAF (обидва порядки байтів, зв'язані записи підсумків), сегменти позиції SPK типу 2 за Чебишовим, з'єднані через їхні центри до найнижчого спільного предка, і сегменти кутів Ейлера двійкового PCK типу 2, перетворені на обертання від J2000 до тіла, з епохами у вигляді двочастинного ET, щоб зміщення менше мікросекунди зберігало точність. Саме через нього KernelEphemeris (ephem_provider) і шляхи ядер lunar_vlbi, lunar_llr та lunar_vlbi_fim читають DE440. Твердження полягає в тому, що він правильно читає ядра JPL; це не твердження, що DE440 або аналітичні ряди Сонця та Місяця рушія точніVALIDATEDДва незалежні зчитувачі ядер на тих самих файлах NAIF: NAIF SPICE Toolkit N0067 (CSPICE через spiceypy 8.2.0, MIT; spkezr і pxform) та ANISE 0.10.6 (Nyx Space, MPL-2.0; Almanac.translate і Almanac.rotate), обидва запущені як окремі програми на de440s.bsp і moon_pa_de440_200625.bpc. Попередньо зареєстровано (abcd9133) до появи будь-якого фікстура чи значення оракула: зерно (seed) сітки — перші 16 шістнадцяткових цифр хеша цього коміту, тож ні 200 епох, ні пари тіл не могли бути вибрані з огляду на результат; кожна епоха несе також Місяць і Сонце відносно Землі. Пороги заздалегідь зафіксовано з обчислення Чебишова з подвійною точністю (не більше 15 коефіцієнтів, n^2 u = 2.5e-14 на обчислення, два обчислення та до двох переходів з кожного боку): позиція 1e-13 R + 1e-5 м, швидкість 1e-13 V + 1e-10 м/с, R і V — більша величина відносно найнижчого спільного предка; елемент обертання 1e-13 W + 1e-15, W — сума коефіцієнтів покривного запису; ANISE додає 2 нс відносного руху для своїх наносекундних епох. Результат: кожен із 600 станів і 200 обертань у межах свого порога проти обох оракулів, на вирізаних і на повних ядрах; найгірше 6.0e-3 порога (позиція), 5.9e-3 (швидкість), 3.7e-3 (обертання). Мутація: обчислення кожного запису за -s не проходить 3597 порівнянь. Розкрито: попередню перевірку на 25 епохах проти SPICE (4.6e-5 м, tests/naif_kernel_reader_check.rs) бачили до цього рядка, і вона не є його доказом; перший запуск генератора фікстура перервався на порожньому інтервалі сітки до видачі будь-якого значення і був виправлений. Обидві сторони читають DE440, тож збіг перевіряє зчитувач, а не ефемеридуnaif_kernel (DafFile, SpkKernel, PckKernel); ephem_provider (KernelEphemeris)
Earth-GNSS на місячній відстаніПриймання Earth-GNSS на місячній відстані: шар слабкого сигналу, який називає Таблиця 1 P7 і для якого в рушія не було моделі. Для кожного супутника та кожної епохи він обчислює кут поза віссю відносно надира передавача, чи Земля затуляє пряму трасу, похилу дальність і її втрати у вільному просторі, підсилення передавача за цим кутом, прийняту потужність і спектральну густину відношення несівної до шуму; потім агрегує лише лінії, що перевищують поріг стеження, і перебирає повний оберт угруповання, тож відповіддю є РОЗПОДІЛ, а не один знімок. Результат визначають три факти, і звіт зазначає кожен: Земля видна під кутом 13,90 град з радіуса угруповання, тож ПІК променя геометрично недоступний для будь-якого променя, спрямованого до Місяця; лишається край головної пелюстки та бічні пелюстки, режим, у якому LuGRE працював біля Місяця в 2025; а втрати L1 на трасі становлять близько 208 дБ, приблизно на 25 дБ більше, ніж платить наземний користувач. MEASURED на вбудованій геометрії класу GPS із 24 супутників за 64 епох одного орбітального періоду: доступність СИГНАЛУ 0,375 з найкращою лінією 30,93 дБ-Гц і доступність ФІКСАЦІЇ 0,000 — щонайбільше дві одночасні лінії, придатні до стеження, ніколи не чотири, потрібні для позиції. Розділення цих двох доступностей і є суттю, і звіт не дозволяє їх сплутати: Earth-GNSS на місячній відстані — це шар рівня ЧАСУ, а не позиції, і попереднє значення шаруватої стійкості має брати доступність фіксації. Обумовленість видається з тієї самої причини: кожен видимий супутник лежить усередині конуса шириною в пару градусів, якщо дивитися з Місяця, тож лінії візування майже паралельні за побудовою. Запускається як вид earth-gnss-lunar. Переформульовано за D7: твердження на місячній відстані — це ВІДНОСНА спектральна густина відношення несівної до шуму між супутниками в одну епоху за виміряними двовимірними діаграмами передавання (NAVCEN Block IIR/IIR-M) плюс геометрична видимість; абсолютне C/N0 не стверджується (Parker et al. повідомляють про спільні втрати від 7 до 12 дБ).MODELLEDТотожності в замкненому вигляді та внутрішня узгодженість; зовнішній оракул НЕ заявляється. Половинний кут лімба перевірено проти asin(R_earth/r_orbit), а геометрію — проти нього; втрати у вільному просторі, ядро DOP і розповсюдження SGP4, які цей рядок складає, зовнішньо перевірені у власних рядках, і цей рядок не позичає їхнього статусу. ЧОМУ MODELLED, і це діаграма передавання: підсилення за кутом — це рівномірно освітлена кругова апертура, діаграма Ері, тоді як справжня антена GPS L1 є дванадцятиелементною спіральною решіткою з сформованою головною пелюсткою з піком поза віссю, щоб вирівняти потужність по диску Землі, і бічними пелюстками, що не є діаграмою Ері. Опубліковані виміряні діаграми існують і тут не вендоровані, тож порядки та порядки величин переносяться, а дБ одного окремого супутника — ні. ПЕРША РЕАЛІЗАЦІЯ ЦЬОГО РЯДКА БУЛА ХИБНОЮ ТАК, ЩО ЦЕ ВАРТО ЗАПИСАТИ: вираз Ері чинний лише в передній півсфері, його аргумент іде як sin(theta), а при theta поблизу 180 град він загортається й повертає ПОВНЕ ПІДСИЛЕННЯ ПО ВІСІ позаду апертури — тож дві найсильніші лінії в першому звіті були супутниками, що спрямовували антени від Місяця, і саме вони були єдиними двома, що перевищили поріг. Позаду апертури модель тепер застосовує плоский мінімум зворотної пелюстки, зазначений як межа, а не вигадана форма діаграми. Свідомо відсутнє, кожне з чого робить бюджет ОПТИМІСТИЧНИМ: жодних іоносферних чи тропосферних втрат на променях, що ковзають по лімбу, жодної поляризаційної, наведення чи реалізаційної втрати і сферична Земля без рефракційного розширення. Положення Місяця є ВХІДНИМИ даними, а не пошуком в ефемериді, бо величина, що перевіряється, — це лінія та геометрія променя. Підвищення цього рядка до Validated потребує виміряної діаграми передавання та нормальних точок LuGRE для перевірки; жодного немає в репозиторії, і жодного тут не вигадано. 0,30, раунд 2, висновок (залишається MODELLED): шлях лінії з виміряними вхідними даними (реальні позиції SP3, потужність передавача за блоком, табульовані діаграми передавання та приймання, гістерезис захоплення та стеження) перевірено проти Montenbruck et al. 2023, Таблиця 3, для GENESIS на 6000 км (попередньо зареєстровано 5b414f0a): середні значення зенітної антени збігаються у 5 із 6 у межах одного дБ від чутливості зі статті; середні значення надирної антени вищі на 1,0 до 2,4 супутника, ніж надруковано, імовірно тому, що стаття використовувала азимутально залежні діаграми бічних пелюсток GPS, які не опубліковані. Показники місячної відстані цього рядка досі використовують заступник — діаграму Ері. 0,30+ D7, висновок (залишається MODELLED): переформульована величина, РІЗНИЦЯ C/N0 між супутниками Block IIR/IIR-M, що стеженні в одну епоху, передбачена за виміряними діаграмами L1 NAVCEN для кожного SVN (двовимірними, в системі відліку з рискуванням) проти льотного C/N0 LuGRE (попередньо зареєстровано 768cb62b: 99 % видимі, RMS пари <= 3,0 дБ, медіана <= 2,0 дБ, щонайменше 50 записів і 30 пар) має замало даних: 26 придатних епох транзиту та місячної орбіти містять 15 стежених записів IIR/IIR-M (здебільшого стежаться IIF і III) і одну пару. Усі 15 передбачено видимими, а залишок єдиної пари дорівнює -0.06 дБ; нічого не стверджуєтьсяearth_gnss_lunar
Визначення місячної орбіти: Earth-GNSS проти наземних радіометричних вимірюваньВизначення орбіти на майже прямолінійній гало-орбіті (або еліптичній замороженій орбіті) за двома незалежними типами даних: псевдодальності Earth-GNSS, прийняті на борту (правило лінії з рядка Earth-GNSS на місячній відстані плюс затулення Місяцем), і наземні двосторонні дальність і швидкість зміни дальності від трьох станцій Deep Space Network. Кожне є одним кроком пакетних найменших квадратів навколо опорної орбіти з його формальною коваріацією; Монте-Карло із зерном (seed) різниці двох оцінок перевіряє, чи пояснюють її дві коваріації (q = d' (P_G + P_R)^-1 d, хі-квадрат із шістьма ступенями свободи, коли моделі збігаються) і що немоделюване прискорення робить зі статистикою.MODELLEDНезалежна програма scipy/numpy інтегрує ті самі варіаційні рівняння (поріг O1). Нічого не порівнюється з вимірюванням місячної орбіти. Оракул перевіряє числові методи заданих формул, а не фізику, тож рядок залишається MODELLED. Обмежена модель трьох тіл: без Сонця, без місячних гармонік, вісь обертання Землі вздовж нормалі до орбіти, ILLUSTRATIVE вхідні дані приймача та станцій.lunar_infra::{orbit, gnss, od}
Місячне розв'язання неоднозначностей фази несівної: поверхня та орбітальний апаратФаза несівної та код Earth-GNSS з одинарними різницями між приймачами на місячній поверхневій станції та орбітальному апараті, із профільованою різницею годинників на кожну епоху, однією неоднозначністю на безперервне проходження та найдовшим проходженням як калібром. Коваріація плаваючої неоднозначності — доповнення за Шуром; LAMBDA розв'язує цілі числа, частота початкового завантаження (bootstrapped) повідомляється поряд із частотою успіху цілочисельних найменших квадратів Монте-Карло із зерном (seed) та сигмами плаваючої та фіксованої позиції. Повідомлено як знайдено: за зареєстрованих 12 дБі задача подвійних різниць не формується (поправка 1 перенесла типове значення на 25 дБі після того, як побачили лише лічильники доступності), а за 25 дБі цілочисельну фіксацію НЕ досягнуто — вона поза досяжністю (щонайбільше кілька відсотків), хоча плаваючий розв'язок покращується з дугою.MODELLEDНезалежний розв'язок numpy тих самих нормальних рівнянь з експортованих рядків (Q3) і повний перебір цілих чисел (Q4). Жодне вимірювання фази несівної GNSS чи місячної не порівнюється. MODELLED.lunar_infra::phase; lambda
Спільне оцінювання місячної системи відліку: поверхневі станції та орбітальні апаратиІнформація Фішера семипараметричного датума місячної системи відліку від лазерної далекометрії земних станцій до п'яти рефлекторів окремо та із доданими дальностями «орбітальний апарат — поверхнева станція»: інформаційна матриця, ранг, сигми Крамера–Рао, метрика виродженості модуля місячної ідентифікованості та випадкові набори станцій із зерном (seed). Орбіта вважається відомою в місячних осях (її похибка передається сигмою дальності орбітального апарата).MODELLEDНезалежна скінченна різниця numpy прямої моделі (F2). Нічого не порівнюється з реальними розв'язками місячної системи відліку. Множник умовний щодо припущеної відомої орбіти та сигми дальності 1 м. MODELLED.lunar_infra::frame; lunar_datum; lunar_identifiability; lunar_llr_geometry
Точність прив'язки систем відліку в космосі: суміщені GNSS, VLBI і лазерна далекометріяТочність за Крамером–Рао міжтехнологічних зсувів перенесення, масштабу та обертання між системами GNSS, VLBI і лазерної далекометрії, коли один космічний апарат несе всі три, з вилученою на кожній епосі позицією апарата та дев'ятьма завадними параметрами локальної прив'язки з апріорною інформацією, перебраними за точністю локальної прив'язки. Коваріації шляхом квадратного кореня (нормальні рівняння втрачають цифри, коли технології майже досконалі).MODELLEDНезалежна складена система numpy із позиційними невідомими, вилученими явними доповненнями за Шуром (T3). Жодні дані GRASP, Genesis чи інших місій не порівнюються. MODELLED.lunar_infra::tie; fim::crlb_srif
Чутливість місячних чисел Лява та лібраціїІнформація Фішера h2, k2, l2 і фізичних амплітуд лібрації від лазерної далекометрії (радіальне та горизонтальне припливне зміщення, обертання рефлектора), стеження за орбітальним апаратом (прискорення k2 степеня 2, проінтегроване вздовж лінії візування, із вилученим трендом), поверхневого гравіметра (гравіметричний множник 1 + h2 - 1,5 k2) і поверхневого годинника (відносна швидкість (1 + k2 - h2) W2/c2, прив'язана до констант місячного часу). Номінальні значення h2 і l2 — точки лінеаризації; дослідження каже, що до чого чутливе, а не які ці числа.MODELLEDНезалежне складання numpy зі скінченними різницями (G2) і обчислення в замкненому вигляді (G4). Чутливість k2 для сімейства орбітальних апаратів — верхня оцінка (стан орбіти тут поглинає лише сталу та тренд). Жодне вимірювання місячного припливу чи лібрації не порівнюється; k2 цитується з Lemoine et al. 2014 як номінальне. MODELLED.lunar_infra::geodesy; lunar_od::degree2_tide_accel; lunar_time
Доповнення DOP поверхневими маяками МісяцяПогіршення точності з доповненням маяками для місячного поверхневого користувача: рядки ліній візування видимих супутників і рядки далекометрії видимих поверхневих маяків об'єднано в одну матрицю плану та оцінено через спільне ядро DOP, а отриманий DOP відображається на реалізовану точність 1-сигма У МЕТРАХ через еквівалентну користувацьку похибку дальності кожного маяка, складену як корінь із суми квадратів членів синхронізації годинників, багатопроменевості та зйомки. Видимість маяка — це двовисотний геометричний горизонт Місяця без атмосфери, який не має рефракційного розширення і тому точний, а не наближений. Запускається як вид сценарію lunar-beacon, що повідомляє лише супутники, супутники плюс маяки та більше угруповання як конкурентний шлях до тієї самої геометрії. MEASURED на вбудованій еталонній (golden) геометрії (користувач на -80 град, три зйомкові маяки, ілюстративний LCNS із шести супутників при t=0, маска 5 град): 5 видимих супутників дають PDOP 9,6941 і 3-D 1-сигму 11,222 м; додавання маяків, які справді перевищують горизонт, дає PDOP 4,1160 і 4,765 м, у 2,355 раза; служба із 24 супутників натомість дає PDOP 2,4226 і 2,804 м, у 4,002 раза. Звіт друкує кількість ВИДИМИХ маяків, а не налаштовану, і на цій геометрії лише ОДИН із трьох маяків перевищує горизонт: дві бічні точки лежать приблизно за 333 км від користувача проти горизонту 86 км для антени 2 м, тож читачеві ніколи не доводиться припускати, що внесли всі триMODELLEDАрифметика DOP — це ядро crate::orbit::dop, окремо зовнішньо перевірене за gnss_lib_py у tests/dop_reference.rs; цей рядок не позичає повторно статусу того рядка. Горизонт видимості маяка — замкнена форма L01, а sigma = DOP x sigma_URE — стандартне співвідношення GNSS (Kaplan and Hegarty, Understanding GPS/GNSS, розділ 7). У межах цього рядка саме доповнення перевірено за незалежним шляхом DOP у репозиторії та закріплено на зафіксованому еталонному (golden). ЧОМУ MODELLED: проєкт угруповання, розташування маяків, висоти антен і всі три величини бюджету похибок є ілюстративними вхідними даними, а не розгорнутою зйомкою чи виміряною лінією, тож повідомлені метри — властивість обраного сценарію, а не будь-якої розгорнутої служби. ПРИМІТКА ПРО ПОХОДЖЕННЯ: цю можливість рекламували в README і перевіряли двома тестами валідації, але вона НЕ мала рядка матриці й виду сценарію, тож до неї взагалі не можна було дістатися з прогону. Її заявляли в прозі, вона була відсутня в реєстрі та водночас недосяжна в рушії. Рядок і вид додано разом. 0,30, раунд 2 (попередньо зареєстровано db0eb9ec), заблоковано (залишається MODELLED): видимість ANISE 0.10.6 і DOP numpy на геометрії рядка збігаються (видимі набори точні, включно з 72 випадками поблизу горизонту і 48 поблизу маски; DOP у межах 7.2e-13), але повідомлені метри — це DOP, помножений на ілюстративну похибку дальності 1,158 м як корінь із суми квадратів без оракула; обмеження, яке їх виключило б, чекає рішення власникаlunar_beacon
Сліпота цілісності до спільної модиТочне розбиття паритетного підпростору похибки вимірювання на частину, яку RAIM не бачить, і частину, яку бачить. Для лінеаризованої миттєвої моделі y = G·x + e будь-яка похибка dy однозначно розкладається на СЛІПИЙ складник у range(G) — поглинений як похибка стану S·dy і знищений проєктором залишку Pperp = I − G·S, тож невидимий для БУДЬ-ЯКОГО тесту залишків, а не лише для окремого порога — і ВИЯВНИЙ складник у просторі паритету. Модуль повертає проєктор, розбиття та сліпу частку, тож викликач може кількісно оцінити, наскільки конкретну похибку миттєвий монітор структурно не здатний повідомити. Застосовано до реального міжефемеридного мінімуму: метрова розбіжність DE440 проти INPOP21a та DE440 проти EPM2021 у геоцентричній позиції Місяця поглинається майже повністю як похибка позиції користувача (медіана сліпої частки 1,000000; медіана сліпої похибки позиції 2,3955 м і 2,0050 м) проти залишку паритету на рівні 1e-15 мVALIDATEDP2: numpy linalg.lstsq (LAPACK gelsd SVD, BSD-3) перераховує розбиття найменших квадратів на зафіксованих вхідних даних ІЗ реальною паритетною частиною (dy = E·Δs + w, w ~ N(0, 1 м), зерно (seed) 20261001) на геометрії з 8 супутників і підмножині з 6 супутників, 1464 випадків за обома реальними міжефемеридними парами, попередньо зареєстровано (f672a314): blind_dx, residual, blind_norm і detectable_norm у межах 1e-12 відносно до |dy| і blind_fraction у межах 1e-12 абсолютно (найгірше blind_dx 1.06e-14, residual 4.4e-15, blind_fraction 3.1e-15). numpy сам будує G із зафіксованих позицій, тоді як рушій використовує нормальні рівняння з Гауссом–Жорданом; косе ліве обернення робить тест червоним на 5.5e-2 |dy|. Поправка 1 (86c53301, після першого запуску, розкрито) послабила лише вхідну передумову щодо паритетної частки (кожен випадок щонайменше 1e-3 і 95 % кожної геометрії щонайменше 0,05), а не поріг згоди. Перевірене (Validated) твердження, як дозволяє P2: лінійна алгебра розбиття на цих вхідних даних; величини міжефемеридного мінімуму та ілюстративна місячна геометрія (8 вузлів типу LCNS на 5000 км) — вхідні дані, не перевірені, а сліпота — відома властивість усього миттєвого RAIM. Порівняння numpy раунду 1 (tests/lunar_common_mode_integrity_reference.rs) перевіряло лише тотожність S·G = I, бо його вхідні дані лежали в range(G); його збережено як регресійне. Походження ефемерид: tests/fixtures/inter_ephemeris/NOTICE.md (JPL, IMCCE, IAA RAS)lunar_common_mode
Рівень захисту від спільної моди та загальна огортка цілісностіcmpl_horizontal обмежує k-сигма горизонтальну похибку позиції, внесену сліпим класом спільної моди, формуючи blind_position_covariance = S*Cov*S^T і проєктуючи її на ENU; integrity_envelope повідомляє hpl_total = hpl_araim + cmpl. Відмінність, заради якої існує ця пара: ТЕСТ ЗАЛИШКІВ RAIM/ARAIM доведено сліпий до похибок у range(G), але РІВЕНЬ ЗАХИСТУ ARAIM — ні: його член без збоїв уже обмежує їх з точністю до URA провайдера плюс номінальне зміщення. Тому CMPL — це лише міжпровайдерний НАДЛИШОК, який URA/ISM окремого провайдера не перекриває з верхньої межі, а сума є консервативною межею за нерівністю трикутника, а не RSS, чинною лише там, де цей надлишок ще не лежить усередині URA.MODELLEDАналітична алгебра проєктора, перевірена сама проти себе: коваріація, обмежена в range(G), має давати додатний CMPL, коваріація, обмежена в просторі паритету, — приблизно нуль, а огортка має додавати два ортогональні у просторі вимірювань внески. Коваріація спільної моди, геометрія угруповання та k — репрезентативні вхідні дані Modelled, НЕ сертифікований бюджет, і не стверджується, що межа за трикутником щільна. ПРИМІТКА ПРО ПОХОДЖЕННЯ: cmpl_horizontal, blind_position_covariance та integrity_envelope є публічними й постачаються, і їхні модульні тести вже цитував рядок про сліпоту спільної моди, але саме ТВЕРДЖЕННЯ ПРО ОГОРТКУ не мало рядка — тож єдине застереження, що тримає його чесним, а саме що сума є межею за трикутником, а не RSS, не було викладене ніде в реєстрі. Рядок реєструє твердження та застереження разом.lunar_common_mode
Спільне місячне багатотехнологічне визначення орбіти + годинникПакетне злиття VLBI + місячно-локальної дальності + дальності між супутниками для відновлення позицій станцій і угруповання та годинниківVALIDATEDP2: numpy 2.4.6 (numpy.linalg.lstsq з LAPACK gelsd, numpy.linalg.inv; BSD-3) перераховує кожен крок Гауса–Ньютона, збіжний розв'язок зважених найменших квадратів, формальні сигми та похибку станції на зафіксованих якобіанах і спостереженнях шести змодельованих мереж, попередньо зареєстровано (5094bc31) за max(1e-8, 100 kappa eps) відносно. Перший запуск не пройшов мережу без VLBI (6.1e-7 проти 1e-8, обернення нормальних рівнянь за обумовленості 1.4e5); виправлення рушія, написане після цього результату (batch_ls::gauss_newton_qr, крок QR Хаусхолдера, який використовують estimate і formal_covariance), перезапущено за незмінного порога: кроки від 1.1e-14 до 2.4e-11, сигми щонайбільше 1.3e-11. Перевірене твердження — лінійна алгебра розв'язку злиття на цих вхідних даних, а не фізичні величини змодельованої мережі чи її моделей спостережень: рядок затримки місячної геодезичної VLBI залишається MODELLED (її аналітичний шлях відрізняється від ANISE до 24 мкс), а системи відліку мають власні рядки. Відновлення введеної змодельованої істини та узгодженість NEES лишаються внутрішніми перевірками; попередня перехресна перевірка Orekit 12,2 / Hipparchus за Левенбергом–Марквардтом (tests/lunar_joint_multi_technique_od_reference.rs) задіює batch_ls::gauss_newton, який estimate більше не викликає, і збережена як перевірка цього примітиву. Перегляд 0,30: типові похибки станцій lunar-joint-od-clock 3,541344 -> 3,541350 м з VLBI і 2183,119 -> 2183,558 м без (розв'язок QR). Перегляд 0,36 (STUDIO-15, переносна математика; docs/revisions/STUDIO15-portable-math-rebaseline.md): 3,541350 -> 3,536885 м з VLBI і 2183,558 -> 2184,021 м без, а розв'язок без VLBI зупиняється після 5 ітерацій, а не 2 (зупинка, обмежена округленням, на погано обумовленій мережі); попередньо зареєстроване порівняння перезапущено на повторно експортованих вхідних даних за незмінного порога (numpy 2.4.6, усі шість мереж проходять)lunar_combination (problem, model, estimate, formal_covariance); batch_ls (gauss_newton_qr)
Інформація Фішера та спостережуваність за Крамером–РаоІнформація Фішера M=HᵀWH, нижня межа Крамера–Рао, ранг спостережуваності / нуль-простір дефекту датуму (псевдообернена матриця Мура–Пенроуза) та скаляри D/A/E/T-оптимального планування експерименту, отримані симетричним розв'язувачем власних значень ЯкобіVALIDATEDNumPy 2.4.1 (numpy.linalg.eigh / .inv; BSD-3-Clause, на основі LAPACK) — незалежний сторонній еталон, що обчислює ті самі однозначно визначені власні значення, коваріацію Крамера–Рао σ²(XᵀX)⁻¹ і чинники геометричного погіршення точності GNSS іншим алгоритмом («розділяй і володарюй» LAPACK + LU-розклад), ніж циклічні розгортки Якобі та спектральна псевдообернена матриця Kshana; збіг до 1e-9. Той самий клас зовнішніх бібліотек уже перевіряє рушій DOP (за gnss_lib_py) і ядра χ²/erf (за SciPy). Додатково звірено із замкненими формулами CRLB за Кеєм (1993) та з досягненням CRLB у Монте-Карло (внутрішньо)fim
Спостережуваність абсолютної місячної станції (дефект датуму)Спостережуваність за інформацією Фішера для спільного місячного розв'язку: без земних базових ліній абсолютний датум системи відліку лежить у нуль-просторі HᵀWH (положення станції не спостерігається); ≥3 базових ліній відновлюють повний ранг і обмежують похибку станції за Крамером–Рао, яку оцінювач досягаєMODELLEDАналітична структура дефекту датуму — неспостережувана мода абсолютної системи відліку лежить у нуль-просторі інформації Фішера (замкнена форма), поріг рангу збігається з опублікованим обґрунтуванням схеми з 3 станцій, а оцінювач досягає отриманої CRLB у Монте-Карло. Сама місячна геометрія є репрезентативною мережею (не льотними ефемеридами), тому рядок залишається MODELLED; базовий рушій FIM/CRLB окремо перевіряється за замкненими формулами Кея (1993). 0,30 раунд 2 (попередньо зареєстровано fab02df9), заблоковано (залишається MODELLED): NumPy/SciPy заново обчислюють ранг і дефект за вказаного порогу 1e-9, частку осей станції в нуль-просторі (в межах 8.4e-10) і CRLB станції (в межах 1.2e-10) на 17 збережених конфігураціях, згенерованих Kshana (P2). Не підвищено: твердження, що оцінювач досягає межі (ефективність Монте-Карло близько 0,98), не має оракула, а визначення обсягу, яке залишило б його MODELLED, чекає на рішення власникаlunar_combination (lunar_observability) + fim
Реалізація місячної системи відліку7-параметрична підгонка датуму Гельмерта + прив'язка орієнтації ICRF за мережею точокVALIDATEDНезалежний замкнений зважений розв'язувач перетворення подібності Умеями (Горна) (на основі SVD у numpy/scipy; Umeyama 1991 IEEE TPAMI, Horn 1987 JOSA A) — інший алгоритм, ніж ітеративна підгонка Гауса–Ньютона в kshana, що досягає того самого однозначно визначеного зваженого оптимуму методу найменших квадратів на побайтово ідентичних мережах точокlunar_frame_realise
Об'єм навігаційного обслуговування на МісяціМісячні DOP / покриття / доступність класу Moonlight та узагальнені місячні рівні захисту ARAIM в об'ємі обслуговуванняVALIDATEDНезалежний сторонній еталон: кеплерівський пропагатор ANISE 0.10.2 astro::Orbit (Nyx Space, MPL-2.0) — екіноктиальний двотільний кодовий шлях, відмінний від Кеплера Ньютона–Рафсона в kshana; положення кожного супутника в MCI збігається з точністю до <1e-3 м, а похідна кількість/набір видимих супутників збігається точно в кожній точці сітки. Ядро DOP перевірене за gnss_lib_py; цілісність використовує опубліковані параметри LunaNet/LCNSlunar_service
Генерація розширювальних кодів LunaNet AFS (LSIS V1.0)Коди Augmented Forward Signal за LSIS V1.0 (29 січня 2025): первинний код AFS-Q з 10230 чипів, згенерований за побудовою пілота L1C з IS-GPS-800 з індексами IS-GPS-800J (ті самі 210 призначень, що друкує додаток D до LSIS), коди Голда AFS-I з 2046 чипів, згенеровані з g1 = x^11 + x^2 + 1 і g2 = x^11 + x^8 + x^5 + x^2 + 1 із затримкою G2 кожного PRN, відновленою з файлу додатка 3 до стандарту, чотири вторинні коди, третинні коди з 1500 чипів, проміжне призначення вузлів за таблицею 11 та ярусний пілот-код. Вміст LSIS зчитується під час виконання з локального кешу, перевіреного за SHA-256 і заповненого з PDF на сервері NASA, і ніколи не розповсюджуєтьсяMODELLEDЕталон: значення, які LSIS V1.0 друкує для перевірки (таблиці C-1–C-5, D-1–D-6, E-1–E-6), та його електронні файли кодів додатка 3 за критерієм нульових розбіжностей, зафіксованим до порівняння. Критерій не виконано через одну надруковану комірку, внутрішньо суперечливу з власним файлом додатка 3 до стандарту, тому рядок залишається MODELLED; підготовлено чернетку примітки про помилку. Ті самі чипи також збігаються з чипами LANS-AFS-SIM (рядок «Відтворення базової смуги LunaNet AFS проти незалежного генератора за його станом каналу»)lunar_afs::codes, lunar_afs::lsis, lunar_afs::params (IS-GPS-800J indices)
Відтворення базової смуги LunaNet AFS проти незалежного генератора за його станом каналу (LSIS V1.0)Ядро відтворення базової смуги AFS (LSIS-130: комплексна обвідна I + jQ, I = код Голда AFS-I, помножений на кадр 500 символів/с зі швидкістю 1,023 Мчип/с, Q = ярусний пілот AFS-Q зі швидкістю 5,115 Мчип/с, обертання несівної, вирівнювання чипів і символів) відтворює відліки незалежного генератора, коли його керує власний записаний стан каналу цього генератора (фази й швидкості коду, фаза й частота несівної, амплітуда кожного каналу). Не охоплено: модель вузла, що виводить цей стан із Доплера, затримки та відношення несівна/густина шуму, розподіл потужності 50/50, обчислений із відношення несівна/густина шуму (амплітуди беруться із симулятора), а також метадані SigMF і запис 8-бітових відліківVALIDATEDБібліотека: LANS-AFS-SIM (T. Ebinuma, BSD-2-Clause, коміт 480c6bf353717bafc04b5ee5bafb38ed90e61aae, збірка для S-діапазону, запущена як окрема програма); відліки Kshana керуються лише записаним станом каналу симулятора, а збірка лише з друком трасування перевірена як побайтово ідентична непропатченій. Пороги, зафіксовані до запуску: нуль розбіжностей чипів і символів, |rho| >= 0,999 на всьому прогоні та >= 0,99 на блок 2 мс, фаза в межах 0,05 рад. Рівні амплітуди I та Q є вхідними даними порівняння, тому розподіл потужності цим порівнянням не перевіряється. LANS-AFS-SIM зчитує свої третинні коди з файлу додатка 3 до LSIS, тож ця частина не є незалежною від рядка про коди. LANS-AFS-SIM і PocketSDR-AFS мають спільного автора і рахуються як одна незалежна реалізація. Залежить від даних: порівняння з LANS-AFS-SIM потребує локального кешу LSIS V1.0 (xval/lunar-afs/fetch_lsis.sh, перевірений за SHA-256) і без нього пропускається з повідомленнямlunar_afs::waveform::render, lunar_afs::codes, lunar_afs::frame
Канальне кодування кадру LunaNet AFS, FID 0 (LSIS V1.0)Кадр FID 0 з 12 с і 6000 символів за LSIS V1.0: 68-символьний синхронізаційний шаблон, підкадр 1 BCH (51, 8) (генератор у вісімковій системі 763), CRC-24 ((1 + X)·P(X)) на підкадрах 2–4, LDPC-кодування зі швидкістю 1/2 з надрукованими A, B^-1, C, D (додаток 1 до LSIS, зчитується під час виконання з локального кешу, перевіреного за SHA-256) і пункціюванням за стандартом, блоковий перемежувач 60 x 98; вичерпний декодер підкадру 1, що позначає TOI поза 0..99, та нормалізований декодер LDPC min-sum, написаний лише за H = [[A, B, 0], [C, D, I]]VALIDATEDБібліотека: LANS-AFS-SIM (T. Ebinuma, BSD-2-Clause, коміт 480c6bf353717bafc04b5ee5bafb38ed90e61aae), чиї власні BCH, CRC, LDPC і перемежувач створюють кадри, посимвольно ідентичні кадрам Kshana для того самого вмісту (нуль розбіжностей, поріг зафіксовано до запуску). Підтверджено еталонними значеннями: робочим прикладом BCH з рисунка 8 до LSIS V1.0 і контрольним значенням CRC-24/LTE-A (каталог параметризованих алгоритмів CRC Грега Кука), обидва побітово точні; а також тим, що PocketSDR-AFS у трьох прогонах декодував кожен підкадр синхронізованих кадрів із коректним CRC і збігом бітів підкадру 2. Перевірка парності близька до внутрішньої тотожності (вона підтверджує, що надрукована B^-1 обертає надруковану B) і не зараховується як оракул. Залежить від даних: порівняння з LANS-AFS-SIM потребує локального кешу LSIS V1.0 (xval/lunar-afs/fetch_lsis.sh, перевірений за SHA-256) і без нього пропускається з повідомленнямlunar_afs::frame, lunar_afs::ldpc, lunar_afs::lsis
Замкнена декодованість LunaNet AFS незалежним приймачем (LSIS V1.0)Запис AFS від Kshana, захоплений, відстежений і декодований незалежним програмним приймачем та порівняний із власними істинними мітками запису. Це доводить лише відповідність стандарту та узгодженість міток; це не твердження про фізику каналу, поширення, прийняту потужність чи бюджети лінії, значення яких у записі є обраними вхідними данимиMODELLEDБібліотека: PocketSDR-AFS (T. Ebinuma за PocketSDR T. Такасу 0,13, BSD-2-Clause, коміт 5b23809f30d68518b7fad7a564fd0fac57cc497d, збірка для S-діапазону, копія лише з друком рівня журналу), за критеріями, зафіксованими до кожного прогону. Третє попередньо зареєстроване порівняння повністю виконує пороги декодування та відстеження C1 і C2, але не свою перевірку G0 у вказаному вигляді (два прогони немодифікованого приймача відрізняються в тих самих чотирьох записах захоплення), а друге не дотягнуло на 5 порушень, тому рядок залишається MODELLED. LANS-AFS-SIM і PocketSDR-AFS мають спільного автора і рахуються як одна незалежна реалізація; перевірки надрукованих векторів у рядку кадрового кодування застерігають від спільного хибного прочитанняlunar_afs::waveform (recording and truth labels), xval/lunar-afs/run_pocketsdr.sh
Міжгенераторна відповідність GPS L1 C/AРозширювальні коди GPS L1 C/A (sdr::CaCode) і підкадри LNAV 1–3 (gps_lnav: квантування полів за IS-GPS-200 зі значенням pi зі специфікації, упаковка в додатковому коді, слова TLM і HOW, парність за таблицею 20-XIV з інверсією D29*/D30*, біти розв'язання парності слів 2 і 10), порівняні побітово з gps-sdr-sim на його вбудованому brdc0010.22n (32 супутники)MODELLEDgps-sdr-sim (MIT, коміт 28ca29a6, запущений як окрема програма через збережений harness), попередньо зареєстровано f88f2969 з побітово точним порогом для (A) чипів C/A, (B) кожного обчисленого поля LNAV, (C) кожного біта парності. РЕЗУЛЬТАТ: (A) 0 з 32 736 чипів відрізняються, (C) парність 0 з 1 920 слів відрізняється, (B) 230 з 1 152 обчислених полів відрізняються на одну одиницю: eph2sbf у gps-sdr-sim відтинає до нуля приведеннями типів C там, де цілому числу трансляції потрібне округлення (кожне відмінне значення лежить у межах 0,01 одиниці від округленого цілого Kshana). Залишається MODELLED: зареєстрованим порогом була кон'юнкціяgps_lnav, sdr
Геометрія сигналу сцени GNSS IQ проти незалежного генератора базової смугиІстина для кожного супутника від генератора сцен IQ для сцени GPS L1 C/A з ефемеридами трансляції (iq::scene: SatGeometry з ефемеридами трансляції, згенерована в записи істини TruthRecord): які супутники над горизонтом, псевдодальність, фаза коду на першому відліку, доплерівська частота несівної та кути огляду для нерухомого приймача, порівняні зі станом каналу, з якого gps-sdr-sim будує перший блок власного виходу I/Q, для тих самих ефемерид, приймача й часу початку (іоносфера вимкнена з обох боків)VALIDATEDgps-sdr-sim (T. Ebinuma, MIT, коміт 28ca29a6), незалежний генератор базової смуги GPS L1 C/A, зібраний власним Makefile і запущений як окрема програма на своєму вбудованому brdc0010.22n у прикладі розташування з тексту його використання (scripts/gen_iq_gpssdrsim_ref.sh); збережений harness, зв'язаний з тією самою збіркою, друкує стан каналу (computeRange, computeCodePhase) за першим блоком програми. Пороги зафіксовано до запуску генератора (попередньо зареєстровано 7777da53). Обсяг: геометрія GPS L1 C/A для нерухомого приймача без іоносфери, тропосфери чи годинника приймача; моделі каналу, шум і навігаційні дані сцени не входять до цього рядкаiq::scene (Scene, SatGeometry, TruthRecord)
Захоплення GNSS IQ на незалежно згенерованих відліках I/Qiq::acq::acquire (паралельний FFT-пошук фази коду з порогом квадратичного закону Marcum-Q) з реплікою GpsL1Ca на 20 мс власного 8-бітового виходу I/Q gps-sdr-sim, декодованого декодером відліків iq::io (ci8, 2,6 МГц, 11 супутників, без шуму): кожен PRN від 1 до 32 шукається у двох вікнах по 10 мс, результат порівняно з фазою коду та Доплером, які модулював gps-sdr-simMODELLEDВідліки I/Q gps-sdr-sim (MIT, коміт 28ca29a6) та його власний стан каналу, попередньо зареєстровано 7777da53: (B1) кожен змодельований PRN захоплено, (B2) жодного іншого PRN не захоплено, (B3) фаза коду в межах 0,5 чипа, (B4) Доплер у межах 125 Гц. РЕЗУЛЬТАТ: B1, B3 і B4 виконуються в обох вікнах (найгірше 0,195 чипа, 72 Гц), але B2 не виконується: усі 21 PRN, які gps-sdr-sim не моделював, також перетинають поріг (статистика від 151 до 206 проти 79,5; змодельовані PRN 1 300 і вище). Поріг задано для гауссового шуму виміряної потужності відліків; gps-sdr-sim не додає шуму, тож комірки відсутнього PRN містять взаємну кореляцію інших супутників. Залишається MODELLED: зареєстрованим порогом була кон'юнкціяiq::acq (acquire, AcqConfig); iq::io (decode_samples); iq::scene (GpsL1Ca)
Монітори IQ, оцінені в кампаніях лабораторного відтворення: виявлення, пропуски, хибні тривоги та замкнені оцінки хибних тривогiq::campaign::detect і виконавець кампаній: необов'язкова таблиця [monitors] запускає монітори IQ на кожній комірці за єдиний прохід виконавця. Монітори потужності та спектра бачать відліки після кожного ланцюга входу; монітори C/N0, SQM і захоплення бачать оновлення петель кожного відстежуваного каналу. Кожну тривогу оцінюють за вказаними подіями: виявлено чи пропущено для кожної (подія, вид тривоги, канал), час до виявлення та хибні тривоги поза подіями за їхню експозицію. Для кожного тесту вказано замкнену оцінку хибної тривоги: потужність на блок (точний гамма-хвіст), спектральний надлишок на блок (наближення), ексцес (односторонній гауссівський), імпульси (біноміальна межа), SQM на усереднене оновлення (2Q(k) = Q(1/2, k^2/2), нове) та ARL0 CUSUM для C/N0 (Зігмунд). Без таблиці комірки, ключі та дайджести не змінюються. Жодна форма хвилі завад не синтезуєтьсяMODELLEDВласні замкнені форми моніторів на власних сценах GPS L1 C/A від Kshana (шум і легітимні сигнали; події послаблення власних сигналів супутників), за порогами, попередньо зареєстрованими в docs/design/MONITORS-IN-CAMPAIGN.md (382ab2f4). РЕЗУЛЬТАТ: M1, M2 і M4 виконано. M3 виконано за виявленням (18 з 18 послаблень, P_md 0) і NOT MET за застереженням про час: медіанний час до виявлення становить 1,001 с проти 2 x ARL1 відліків = 0,433 с. CUSUM бачить одну оцінку на вікно 1 с, тому межа за кількістю відліків менша за один відлік. Лише внутрішня узгодженість: жоден реальний приймач чи записані завади не перевіряютьсяiq::campaign (detect, runner, spec); iq::monitor (stats::gaussian_two_sided_pfa, sqm)
ROC виявлення моніторів IQ за оціненою кампанією лабораторного відтворенняiq::campaign::detect (windows, roc) та iq::campaign::report::rocs: кожна комірка кампанії з моніторами зберігає для кожного виду тривоги та каналу максимум власної тестової статистики монітора за кожне вказане вікно події (позитивне) і за розбитими на плитки вікнами roc_window_s поза подіями (негативне). Статистики — це відхилення потужності блока, надлишок PSD, ексцес z, SQM |z| усередненої метрики та CUSUM для C/N0. Звіт об'єднує їх за видом в емпіричну ROC на рівні вікон з її AUC і робочою точкою за налаштованого порогу, записану як roc.json (kshana.campaign-roc/1) і розділ «ROC виявлення» в report.html. Кампанія без моніторів не записує жодного з нихMODELLEDСинтетичні кампанії на власних сценах GPS L1 C/A від Kshana (послаблення власних сигналів супутників), за порогами, попередньо зареєстрованими в docs/design/DETECTION-ROC.md (b47e358d). РЕЗУЛЬТАТ: R2 виконано (рівень випадковості, коли виявляти нічого). R1 NOT MET: AUC для cn0_drop 0,7855 проти 0,95, оскільки кожне негативне вікно після події успадковує спад CUSUM від виявлення (усі 18 післяподійних негативних сягають 81 або більше; усі 18 передподійних залишаються на 0). Лише внутрішня узгодженість: жоден реальний приймач чи записані завади не перевіряютьсяiq::campaign (detect, report, runner); iq::monitor::spectral (kurtosis_reference)
Калібрування моделей C/N0 і захоплення відкритого приймача за результатами кампаній IQ із вказаною похибкою прогнозуiq::labfit (campaign, cn0, iqfit, iqreport) і [input] campaign у kshana iq labfit, Python kshana.iq_labfit та інструмент MCP labfit (папки кампаній лише всередині його робочого каталогу): зчитує вихідну папку kshana iq campaign за її DIGEST і групує оцінені комірки в одиниці підгонки (сигнал x конструкція петлі x ланцюг входу x тип джамера, ніколи не об'єднуються). Для кожної одиниці підганяє виміряне C/N0 до вказаного J/S у спектрально-роздільній формі. Q_eff не ідентифікується за даними C/N0 без незалежного вимірювання потужностей джамера й сигналу, тому Q задається, а не підганяється (таблиця типів, q події або для невідомого типу найбільш шкідливе вказане значення, cw Q = 1). Підганяється ідентифіковний зсув delta_eff = delta - 10 log10 Q, а кореляційний захист повідомляє про виродженість. Бінінги C/N0 із захопленням нижче 90 % цензуруються й перелічуються. Порогове J/S подається безпосередньо й замкненою формою; моделі петлі відстеження та емпіричного захоплення зв'язані через модель C/N0, із часами втрати та повторного захоплення. Зерновий кластерний бутстреп за записами (1000 реплік) дає процентильні інтервали; 90 % інтервали прогнозу походять із вибірок залишків; відкладені набори з виключенням одного запису розділяються на інтерполяцію та екстраполяцію; попередньо зареєстрована таблиця [validation] хешується, і кожен поріг оцінюється як PASS/FAIL. Звіт kshana.labfit-iq/1 у JSON, CSV і згенерованому Markdown з блоком одиниць. Лише синтетичні дані (без стороннього запису, без форми хвилі джамера). Шлях labfit за журналом приймача не змінюєтьсяMODELLEDСинтетичне відновлення параметрів на власних сценах GPS L1 C/A від Kshana з відомим профілем C/N0, накладеним за формулою розділу 3,1, відстежених і оцінених kshana iq campaign, за порогами, попередньо зареєстрованими в docs/design/LABFIT-FROM-IQ.md (розділ 5,1, змінено 2026-10-12 у b7117bf, розділ 13). Оцінювач C/N0 кампаній (M2M4) зафіксовано в 5b13e3c2, надіслано до першої оцінки порогу (закомічено разом із кодом підгонки, не окремо), після одного розкритого діагностичного прогону відстеження. РЕЗУЛЬТАТ на кампанії з 18 подій: (c) PASS; (a') NOT MET, похибка delta_eff -1.097 дБ проти 0,5 дБ (досі -0.89 дБ на бінах від 38 дБ-Гц і вище); (b') NOT MET, 0 з 50 кампаній покривають істину (похибка -1.189 +/- 0,093 дБ, інтервал близько 0,3 дБ); (d) NOT MET, замкнена форма на 2,20 дБ нижче прямого J/S при втраті, близько підігнаного часу спаду, помноженого на швидкість рампи (2,09 дБ); початкові застереження щодо Q у (a) і (b) NOT MET, бо Q не ідентифікується. ПОДАЛЬША ПЕРЕВІРКА (пороги попередньо зареєстровано в 1e532f84, docs/design/evidence/labfit-followup/RESULTS.md): на кампанії зі ступінчастим J/S delta_eff відновлюється в межах +0,185 дБ (S1 MET: похибка рампи є запізненням оцінювача); (d) у вказаному вигляді на ній виконується моделлю петлі відстеження (0,45 дБ), але не емпіричною (6,42 дБ), тож S2 NOT MET; на свіжій кампанії з рампою (d) з підігнаним часом спаду плюс швидкість рампи кожної події лежить у межах 1 дБ для обох моделей (R1 MET), а (a') і (d) у вказаному вигляді знову не виконуються (-1.25 дБ; 2,32 і 9,47 дБ). Перевіряється метод, а не будь-який приймач: його не можна VALIDATED за синтетичними данимиiq::labfit (campaign, cn0, iqfit, iqreport, schema, mod); iq::cli::labfit
Кодування GPS LNAV, декодоване незалежною бібліотекою приймачаПідкадри LNAV 1–3 від Kshana (gps_lnav::encode_subframes) для 32 ефемерид brdc0010.22n, подані в decode_word і decode_frame з RTKLIB: парність кожного слова, декодування підкадрів із узгодженим випуском даних і кожен декодований параметр проти цілого числа Kshana та проти вхідного значенняMODELLEDRTKLIB v2.4.2-p13 (BSD-2-Clause, коміт 71db0ffa) decode_word/decode_frame як окрема програма, попередньо зареєстровано ca5f0142: R1 парність і декодування, R2 декодоване значення дорівнює цілому числу Kshana, помноженому на масштаб IS-GPS-200, у межах 2^-52 відносно, R3 у межах половини кванта від вхідних даних. РЕЗУЛЬТАТ: R1 960 з 960 слів і 96 з 96 підкадрів; R3 кожен параметр, тиждень і опорні часи точні; R2 не виконується для 41 значень (af1, delta-n, IDOT) на 1–4 одиниці в останньому розряді, бо P2_43 у RTKLIB — це десяткове 1.136868377216160E-13, 2.6e-16 відносно від 2^-43; ділення на сталу RTKLIB у кожному випадку повертає ціле число Kshana. Залишається MODELLED: зареєстрований поріг R2 був надто жорстким для власної сталої оракулаgps_lnav
Кодування навігаційного повідомлення GPS LNAVПідкадри LNAV 1–3 за IS-GPS-200 (gps_lnav::encode_subframes: квантування до найближчого кожного параметра годинника й орбіти за масштабними множниками специфікації та значенням pi, упаковка в додатковому коді, слова TLM і HOW, парність за таблицею 20-XIV з інверсією D29*/D30*, біти розв'язання парності слів 2 і 10), повідомлення, яке передає генератор сигналу GPS L1 C/AMODELLEDRTKLIB v2.4.2-p13 (BSD-2-Clause, коміт 71db0ffa) readrnx, що розбирає щоденний файл трансляції IGS BRDC00IGS_R_20250610000_01D_MN.rnx, і decode_word/decode_frame, що декодують слова Kshana, запущені як окрема програма; попередньо зареєстровано d4d9eb9d до отримання файлу, поріг точного цілого. Мутація: відтинання замість округлення дає 235 збоїв. Попередні порівняння того самого кодувальника записано як результати: проти gps-sdr-sim, що відтинає (230 полів), і проти масштабованих значень RTKLIB, чия десяткова стала 2^-43 не дотягнула до порогу в одну одиницю останнього розряду (41 значень). Післяперевірка інтегратором (залишається MODELLED): порівняння збігається, і мутація набору парності також дає червоний результат, але попередня реєстрація d4d9eb9d потрапила до публічної гілки о 20:02:29 UTC, через дві секунди після коміту результату 1783f904 (20:02:27 UTC), який уже містить вихід RTKLIB для файлу, тож порядок «зареєстровано до отримання файлу» показати неможливо; свіжа реєстрація, надіслана до отримання небаченого файлу трансляції, це б вирішилаgps_lnav
Захоплення та оцінка C/N0 на реальних місячних IQПаралельний пошук фази коду (acquisition::pcps_acquire: портативний FFT, когерентне згортання, некогерентне накопичення, поріг хі-квадрат для ймовірності хибної тривоги в усьому пошуку), уточнення, відкритопетльова миттєва кореляція з кодовим Доплером та оцінювач C/N0 M2M4, запущені на 4-бітових пакетах IQ LuGRE L1, прочитаних через realdata::ion_sdrMODELLEDGNSS-SDR 0.0.19 (GPL-3.0, окрема програма, закріплена конфігурація) на дев'яти пакетах L1 не на поверхні та RAW C/N0 льотного приймача (LuGRE Mission Data, Zenodo 16411687, CC BY 4,0), попередньо зареєстровано 768cb62b. РЕЗУЛЬТАТ: зчитувач Kshana декодує всі 288 порівнюваних відрізків ідентично незалежному конвертеру; GNSS-SDR оголошує позитивними 266 з 288 пошуків, і Kshana погоджується в усіх 266 рішеннях, але лише 250 розташовані на комірці GNSS-SDR (A2 не виконується); гілка C/N0 порожня, бо жодна льотна епоха RAW не лежить у межах 30 с від будь-якого пакета (найближча 141 с). Більшість позитивних є артефактами: голі рівні в додатковому коді несуть середнє -0.5 на I і Q, нульову частотну лінію на 32 дБ вище шуму в бині 1 кГц, яку захоплюють обидва приймачі. Два пакети (OP5, OP12) було виключено помилково: прочитання їхніх метаданих без цифр прийняли за суперечність із заголовками; справжня причина полягала в тому, що зчитувач не міг прочитати відлік, ширший за слово (відтоді виправлено). Залишається MODELLEDacquisition, portable_math, realdata::ion_sdr, realdata::lugre
Захоплення на реальних місячних IQ проти прогнозованого за орбітою Доплера (рішення за потужністю відліків)acquisition::pcps_acquire з рішенням за потужністю відліків на дев'яти пакетах LuGRE L1 не на поверхні з рівнями mid-rise; різниці Доплера між захопленими супутниками порівняно з різницями, прогнозованими за остаточними орбітами ESA та реконструйованою Firefly траєкторією Blue GhostMODELLEDПрогнозований Доплер за остаточними орбітами ESA/ESOC та реконструйованою траєкторією NAIF CLPS (xval/lugre-predicted-doppler/predict.py, незалежний від Kshana), попередньо зареєстровано 0d1839d2. РЕЗУЛЬТАТ: усі 288 пошуків перетинають поріг на шумі (статистики потужності відліків приблизно від 430 до 520 проти 346,3), тож P1 виконується тривіально, а P3 виконується (274 з 288 прогнозовано видимими), тоді як P2 не виконується на 4033 із 4036 пар. Смуго-обмежений вхід підвищує шум кожної комірки приблизно в 1,46 раза (закріплено: рівень шуму 292 проти білошумових 200 на OP2 PRN 1), чого статистика потужності відліків не бачить. Залишається MODELLEDacquisition, realdata::ion_sdr
Захоплення на реальних місячних IQ, оцінене за прогнозованим за орбітою Доплеромacquisition::pcps_acquire з рішенням за усередненням комірок (пік над середньою коміркою сітки, стійке до смуго-обмеженого шуму) на дев'яти пакетах LuGRE L1 не на поверхні з рівнями mid-rise; різниці Доплера між захопленими супутниками порівняно з різницями, прогнозованими за остаточними орбітами ESA та реконструйованою Firefly траєкторією Blue GhostMODELLEDПрогнозований Доплер за остаточними орбітами ESA/ESOC та реконструйованою траєкторією NAIF CLPS (xval/lugre-predicted-doppler/predict.py, незалежний від Kshana), попередньо зареєстровано a81a9a4e. РЕЗУЛЬТАТ: P1 і P3 виконуються (4 пакети, 12 з 12 захоплень прогнозовано видимими), але P2 не виконується на 8 із 8 пар. Дві найсильніші пари збігаються з прогнозом за величиною з протилежним знаком (OP2 PRN 18/24: +7670,0 Гц виміряно, -7693.9 прогнозовано; OP17 PRN 11/30: +11155,0, -11114.4), тож зареєстрований порядок I у молодшому півбайті є спряженим до порядку пакетів; шість виявлень трохи вище порогу не збігаються з жодним знаком. Розкид Доплера уточнення (30 до 50 Гц між двома прогонами) також було недооцінено реєстрацією. Залишається MODELLEDacquisition, realdata::ion_sdr
Захоплення на відкладених реальних місячних IQ проти прогнозованого за орбітою Доплераacquisition::pcps_acquire (рішення за усередненням комірок, ймовірність хибної тривоги 1e-7) з refine_doppler_coherent на пакетах LuGRE L1, записаних на місячній поверхні (I у старшому півбайті, рівні mid-rise); різниці Доплера між захопленими супутниками порівняно з різницями, прогнозованими за остаточними орбітами ESA та ядром місця посадки FireflyMODELLEDПрогнозований Доплер за остаточними орбітами ESA/ESOC та ядром місця посадки Firefly NAIF CLPS (xval/lugre-predicted-doppler/predict_surface.py, незалежний від Kshana), попередньо зареєстровано 2108e6ff на пакетах, які раніше ніколи не відкривалися. РЕЗУЛЬТАТ: перевірка на нетривіальність не виконується; жоден пакет не містить двох захоплень. OP40 виключено (метадані називають відсутній файл); OP38, OP73, OP77_0, OP77_1 нічого не захоплюють і не показують хибної тривоги за 1e-7 (найвищі статистики від 325 до 356 проти 385,9); OP74 і OP76 захоплюють PRN 31, а OP78_0 і OP78_1 — PRN 12, кожен поодинці, усі прогнозовано видимі. Залишається MODELLED. Розкриті відхилення: зареєстрований поріг Доплера 10 Гц ґрунтується на синтетичному Монте-Карло когерентного уточнення, а не на розкиді вже бачених пакетів, про який просив інтегратор; OP40 виключено до прогону, бо його метадані називають файл відліків, якого набір даних не постачаєacquisition, realdata::ion_sdr, realdata::lugre
Спільна геометрія місячного зв'язку та навігаціїТопоцентричні кути огляду кожного супутника (азимут за годинниковою стрілкою від півночі, висота) і похила дальність на названому селенографічному місці за заданого положення супутника в зв'язаній з Місяцем системі відліку цього місця (перевірене твердження). Точність віддалеміровання сигналу в космосі подано як параметр сценарію, щоб розгортка об'єму обслуговування давала ВИМОГУ до віддалеміровання, а не результат «пройдено/не пройдено» за одним фіксованим сигма; цей параметр є проєктним вхідним значенням поза перевіреним твердженнямVALIDATEDANISE 0.10.2 (Nyx Space, MPL-2.0, запущений як інструмент із xval/anise-service-geometry, двійковий файл lunar-look-angles-xval, що не викликає жодного коду Kshana): власна процедура ANISE для азимута, висоти та дальності (azimuth_elevation_range_sez) від місць, побудованих її конструктором широта–довгота–висота на Місяці pck00011 (сфера 1737,4 км), із супутниками, повернутими в MOON_PA_DE440 через moon_pa_de440_200625.bpc. 768 відліків на 8 місцях (4 названі місця та 4 інші, над горизонтом і під ним), 12 епох і 8 супутників збігаються в межах 1e-6 град. за азимутом і висотою та 1 мм за дальністю й положенням місця (зафіксовано до порівняння); виміряно 2.2e-12 град., 2.1e-13 град. і 5.6e-9 м. Твердження: розташування місця та кути огляду за заданого положення супутника в зв'язаній із місцем системі відліку. Власна реалізація Kshana системи відліку, зв'язаної з Місяцем, за середнім обертанням, та параметр точності віддалеміровання виходять за його межі; модульні тести замкненої геометрії залишаються допоміжними перевіркамиlunar_service
Місячний диференційний PNTДиференціальна опорна станція класу NovaMoon: скасування синфазної складової + залишок, що зростає з базовою лінією + рівні захисту DGNSSMODELLEDТотожність диференціального скасування похибки + повторне використання механізму PL SBAS за DO-229E; розв'язок одинарних різниць + WLS додатково звірено з lsq()/matinv() із RTKLIB (Takasu, BSD-2-Clause, скомпільований C) — незалежний код розв'язувача, але та сама алгебра різниць напрямків на супутник першого порядку, тож усе ще InternalConsistencylunar_dpnt
Експорт для місячної взаємодіїЕкспорт місячної системи відліку + часу + ефемерид, узгоджений із LunaNet/IOAG (CCSDS OEM + KIF), із відповідністю при круговому проходіMODELLEDМісячний експорт OEM від kshana, повторно розібраний незалежною сторонньою бібліотекою oem (R. J. Anderson): токени системи відліку/часу й стан на кожну епоху збігаються до точності запису (1 мм / 1e-9 км/с), а експорт без TIME_SYSTEM відхиляється — структурний круговий прохід обміну; фізична семантика місячної системи відліку/часу перевіряється власними рядками, тому цей рядок залишається MODELLED. 0,30 зовнішнє порівняння, результат (залишається MODELLED): другий незалежний зчитувач, розбирач CCSDS OEM Orekit 12,2 (Apache-2.0, суворі типові налаштування), відхиляє обидва місячні файли, бо не реалізує часові системи LTC і TCL (він декодує OEM EME2000/UTC із крейта і декодує місячні файли після заміни TIME_SYSTEM на TDB); oem 0.4.5 декодує їх у межах записаної точності лише повертаючись із непідтримуваної часової системи. Обмін цими місячними файлами з поширеними зчитувачами CCSDS не встановленоlunar_interop
Оцінювання за рамками стійкості PNTСубоцінки за вимірами за власними сімома категоріями стійкості Kshana (не термінами DHS), функціями RDRR RethinkPNT і критеріями Янга, кожна позначена Modelled із її рушієм; орієнтовний рівень RPCF із бар'єром обмеженої деградації. Самооцінка на основі симуляції, ніколи не сертифікація.MODELLEDВиведені вручну формули для кожної метрики: різноманітність за оберненим Сімпсоном, зважений середній складений показник, обмежені/необмежені тривалості часової шкали, драбина рівнів за найслабшою ланкоюresilience::arch, resilience::score, resilience::diversity, resilience::timeline
Дослідження нестійкості рішень за оцінкою стійкостіКількісно оцінює, як одна складена оцінка / рівень RPCF переупорядковує архітектури за виправданого симплекса ваг і ансамблю загроз (частота зміни top-1, дисперсія тау Кендалла, частота зміни рівня, діапазони рангів); аналіз заявленого проти виміряного та колапсу різноманітності.MODELLEDЗамкнені тотожності рангової статистики (тау в [-1,1] із обчисленими вручну значеннями; детермінований зерновий Діріхле) і побудовані стабільні/нестабільні свідкиresilience::stats, resilience::study, resilience::panel
Репрезентативність демонстрації та прогалини до польотуРеєстр чесності для кожного результату, що кваліфікує вихід демонстрації: його зовнішні опори, змодельовані припущення, прогалини до польоту та репрезентативний діапазон TRL, із примусовими інваріантами (Validated вимагає зовнішньої опори; Modelled вимагає прогалини і не може претендувати на TRL вище 4).MODELLEDЗамкнені інваріанти, що відповідають дисципліні compliance «репрезентативність обґрунтована + прогалини до польоту визначені»; пов'язані з межею статусу верифікації / виду оракулаrepresentativeness
Докази компромісу квантове проти класичного (спільна форма)Один відтворюваний об'єкт TradeEvidence (фіксована рамка: сценарій+зерно+рушій; спільні значення квантове-проти-класичного для кожного показника якості з коректною за полярністю перевагою, необов'язковий 95% ДІ, мітка validated/modelled), що несе запис репрезентативності, щоб кожна квантова вертикаль PNT повідомляла про компроміс однаково чесно.MODELLEDЗамкнені тотожності переваги/переможця + вірна обгортка наявного quantum_trade::TradeResult; чесність пов'язана з реєстром репрезентативності та мітками верифікаціїqtrade
Бібліотека моделей похибок квантових пристроївКартки пристроїв (оптичні/на захоплених іонах/на іонах ртуті + класичні годинники, повторно використані з holdover/clock_state; інтерферометр на холодних атомах; класичні + заплутані/однофотонні лінії передавання часу), кожна з записом репрезентативності; заплутана лінія додає модель точності часу, обмежену дробовим шумом (~джитер/sqrt(R*tau), штраф за темнові лічби, систематична межа).MODELLEDПовторно використані коефіцієнти годинника/CAI (holdover/clock_state, опубліковані значення) + замкнені тотожності дробового шуму/втрат для заплутаної лініїquantum_devices
Довірений квантовий час (передавання часу + безпечне поширення + аномалії)Наскрізний ланцюг передавання часу квантовий проти класичного (інерційний дрейф годинника + точність лінії в квадратурі), повторно використаний рівень захисту часу, показник безпеки проти атак із затримкою/повтором (1-P_md) та ймовірність виявлення аномалії годинника + затримка CUSUM, подані як чесний TradeEvidence із записом репрезентативності.MODELLEDЗамкнений квадратурний бюджет над повторно використаними перевіреними ядрами (ADEV проти Stable32/NIST; межа TPL; виявлення analytic_pd/pmd); чесність пов'язана з реєстром репрезентативностіtimetransfer_chain
Квантова навігація без GNSSКвантова (інтерферометр на холодних атомах) проти класичної інерціальної навігації навігаційного класу з рахуванням шляху під час відмови GNSS: зростання похибки положення, holdover до порогу положення та компроміс квантове-проти-класичного як чесний TradeEvidence; чесна примітка про спостережуваність (зсув не спостерігається без виправлення, тому похибка зростає).MODELLEDПовторно використані інерційні бюджети, звірені з незалежним подвійним інтегруванням в Octave того самого звичайного диференціального рівняння рахування шляху (інше середовище виконання, спільна модель → ReferenceImpl), плюс опублікований короткостроковий шум Freier-2016 як односторонній якір; складений показник квантове-проти-класичного залишається MODELLEDquantum_nav_od
Виявлення збоїв/аномалій для квантових систем PNTКаталог позначених квантових збоїв (стрибок частоти/дрейф/втрата захоплення годинника; стрибок зсуву/випадіння датчика), ROC AUC статистики виявлення з бутстреп-ДІ та мінімальний виявний збій за фіксованої частоти хибних тривог; монітор за допомогою квантового годинника виявляє менші збої, ніж класичний, поданий як чесний TradeEvidence.MODELLEDЗамкнений гауссів AUC = Phi(mu/(sigma*sqrt2)), звірений із зовнішньо перевіреною eval_stats::bootstrap_auc_ci (проти scikit-learn) + аналітичні пороги виявленняquantum_faults
Динаміка орієнтації твердого тіла без моментуРівняння обертального руху Ейлера (I ω̇ = τ − ω × Iω, головні осі й загальний тензор інерції), зв'язані з кінематикою орієнтації кватерніонами (q̇ = ½ q ⊗ ω) і пропаговані інтегратором RK4 із фіксованим кроком, що на кожному кроці перенормовує кватерніонVALIDATEDПропагація твердого тіла хаба космічного апарата Basilisk 2.9.1 (AVSLab, ISC; орієнтація MRP через власні зв'язані рівняння хаба, svIntegratorRKF78 за відносного допуску 1e-12), незалежна реалізація рівнянь твердого тіла без моменту: кватерніон RK4 Kshana (dt 0,01 с) і кутові швидкості тіла збігаються в межах 1e-9 на 1e4 с для двох загальних недіагональних інерцій (найгірше 3.3e-11 і 3.4e-12 рад/с); допуск зафіксовано до порівняння. Перевірене твердження: рух без моменту; член зовнішнього моменту не порівнювався. Перевірки законів збереження та симетричного дзиґа залишаються допоміжною самоузгодженістю. Немає середовища гнучкого тіла / контуру керування / зовнішнього моментуattitude_dynamics
Динаміка відносного руху Клессі–Вілтшира / ГіллаВідносний рух переслідувача навколо цілі на круговій опорній орбіті в системі LVLH: лінеаризовані рівняння Клессі–Вілтшира (ẍ−2nẏ−3n²x=0, ÿ+2nẋ=0, z̈+n²z=0), розв'язані замкненою матрицею переходу стану 6×6 Φ(n,t) (Clohessy–Wiltshire 1960; Vallado Alg. 48) з умовою обмеженої відносної орбіти ẏ₀=−2n·x₀ і замкненою поправкою другого порядку (cw_dynamics::second_order_correction, відповідь CW на квадратичні члени точних рівнянь для кругового провідного; Karlgaard and Lutze 2003, Newman, Lovell and Pratt 2015), складеною як cw_dynamics::propagate_second_order. Перевіреним виходом є propagate_second_order; лінійна Φ окремо схарактеризована щодо нелінійної істини, але не перевіренаVALIDATEDOrekit 12,2 (Apache-2.0) NumericalPropagator, двотільний, LOFType.QSW, запущений як окрема програма (фікстура не змінювалася з раунду 1). Попередньо зареєстрований поріг 1e-3 м на кожному відліку кожного випадку; виправлення рушія другого порядку повторно запущено проти нього без змін (поправка 8c8e768d, написана до появи пропагатора, із розкриттям, що розриви першого порядку були відомі). propagate_second_order збігається в межах 1.15e-7 м (C1), 9.8e-8, 5.4e-8 і 2.2e-8 м; половинення члена другого порядку не виконується на 1.85e-3 до 3.14e-3 м. Лінійна Φ окремо відхиляється від нелінійної істини на 1,2 до 6,3 мм на 100 м упродовж третини орбіти (пропущений член другого порядку; її суворий тест залишено ігнорованим), тому вона схарактеризована, а не перевірена. Збережені внутрішні перевірки: Φ проти інтегрування рівнянь Гілла методом RK4, Φ(t)Φ(−t)=I, тотожності обмеженої орбіти та дрейфу −12π·x₀ і масштабування залишку третього порядку для члена другого порядку. Обсяг: коловий провідний, відстані близько 100 м, до третини орбіти; без ексцентриситету (Tschauner–Hempel), J2 чи членів диференціального опору; припущення малої відстаніcw_dynamics (propagate, second_order_correction, propagate_second_order)
Пасивна геолокація випромінювача за TDOA/FDOAВизначення місця випромінювача (джамера/спуфера або оказійного джерела для зворотного PNT) за різницею часу прибуття в мережі приймачів — перетин гіперболоїдів τᵢ=(Rᵢ−R₀)/c, розв'язаний методом найменших квадратів Гауса–Ньютона — і, додаючи різницю частот прибуття (різниці швидкості зміни дальності) з рухомими приймачами, спільне відновлення положення та швидкості; з нижньою межею Крамера–Рао для коваріації положення з геометрії вимірюваньMODELLEDСамоузгодженість оцінювача та геометрії: прямі→зворотні круги, тотожність Фішера/CRLB J·CRLB=I, монотонність GDOP і досягнення оцінювачем власної межі Крамера–Рао за шуму Монте-Карло — перевірки внутрішньої узгодженості, а НЕ зовнішній набір даних, тому рядок залишається InternalConsistency. MODELLED пасивна геолокація — модель лінії прямої видимості точкового джерела; без багатопроменевості / NLOS, зсуву годинника приймача чи членів атмосферної рефракції. 0,30 раунд 2, проти Ho and Chan 1993 і Ho and Xu 2004 (попередньо зареєстровано f89018b8, 1 % від кожного надрукованого значення), результат (залишається MODELLED): обмежена поверхнею межа TDOA відтворює геометричні чинники 40 N (-0.11 %, -0.02 %) і максимальний TDOA; спільна межа TDOA+FDOA відтворює рис. 6 (+0,06 %, -0.17 %) і, у джерелі, яке власний код авторів називає для рис. 7 (поправку написано після того, як цей результат було видно, розкрито), рис. 7 (+0,11 %, -0.02 %); вона дорівнює опублікованому коду меж авторів (стиль BSD, запущений під GNU Octave) з точністю 3e-12; розв'язувач максимальної правдоподібності, зважений за коваріацією, досягає надрукованої межі (+0,3 до +0,4 %). Чинники Оттави, які стаття друкує з Монте-Карло (251, 7,1), відрізняються на +1,3 % і +4,4 %, поза порогом 1 %geolocation
Пікове гальмування при балістичному вході в 3 ступенях свободи проти опублікованого номіналу StardustВхід матеріальної точки в 3 ступенях свободи над обертовою сферичною Землею крізь стандартну атмосферу США 1976, проінтегрований RK4 від інерційного стану входу, із звітом про пікове гальмування та його висоту; планетарно-відносний стан входу з інерційного. Може запускатися як вид сценарію entry-heating.VALIDATEDНомінал Stardust за Desai, Mitcheltree and Cheatwood (1999, NASA NTRS 20050042027): максимальне гальмування 33,4 g за 12,6 км/с відносно планети з стартовою масою 45,8 кг, траєкторія POST у 6 ступенях свободи з повною аеродинамічною базою даних; інтерфейс входу за Desai, Lyons, Tooley and Kangas (NTRS 20090004445): радіус 6503,14 км, інерційна 12,9 км/с за -8.2 град. Пороги попередньо зареєстровано в xval/entry-stardust/PREREGISTRATION.md до будь-якого прогону на цих вхідних даних; обидва виконано з першого прогону. ЧОГО ЦЕ НЕ СТОСУЄТЬСЯ: один опублікований випадок і одна величина (пікове гальмування, яке в балістичному наближенні не залежить від балістичного коефіцієнта); широта та курс входу припущені; нагрівання, тепловий заряд і точка посадки з ним не перевірені; матеріальна точка зі сталим C_D, не 6 ступенів свободи.entry_eo_ascent::entry_heating (simulate_entry, inertial_to_relative, EntryHeatingScenario)
Конвективне нагрівання в точці гальмування при вході (Саттон–Грейвс) для входу в 3 ступенях свободиКонвективний тепловий потік у точці гальмування q = k sqrt(rho/R_n) V^3 зі сталими Саттона–Грейвса для повітря Землі та атмосфери Марса (NASA TR R-376, 1971), його пік і інтегрований тепловий заряд уздовж входу в 3 ступенях свободи, балістичного або з підйомною силою за сталого крену, на Землі чи Марсі.MODELLEDВнутрішня узгодженість: співвідношення та сталі, як надруковано в NASA TR R-376, перевірка збіжності за половинним кроком і очікуваний порядок піків нагрівання та гальмування. ЧОГО ЦЕ НЕ СТОСУЄТЬСЯ: жодне опубліковане значення нагрівання не порівнювалося (статті про Stardust дають проєктну межу та оцінку конвективного плюс променевого нагрівання близько 1200 Вт/см2, якої співвідношення лише для конвекції досягти не може); без променевого нагрівання, поправки на температуру стінки чи каталітичність або відгуку теплозахисту.entry_eo_ascent::entry_heating (stagnation_heat_flux, simulate_entry)
Радіометрія електрооптичного формувача зображень, MTF, відносний відгук краю та NIIRS за GIQE 4Бюджет відношення сигнал/шум надирного формувача зображень (ламбертівська яскравість сцени, рівняння камери, дробовий, темновий, зчитувальний шум і шум квантування), системна MTF на Найквісті як добуток дифракції необструктованої апертури, апертури детектора, лінійного змазування та гауссового джитера, відгук краю та відносний відгук краю, проінтегровані з цієї MTF, Q = lambda F / p, і NIIRS за GIQE версії 4 без компенсації MTF. Може запускатися як вид сценарію eo-radiometry.MODELLEDЗамкнені форми: дифракційна MTF на половині частоти зрізу, одно-піксельний лінійний край чистої апертури детектора (RER 1), край у вигляді нормальної ФР для гауссового розмиття (RER = erf(0.5/(sigma sqrt 2))), масштабування дробового шуму та коефіцієнти GIQE 4 як опубліковано (Leachtenauer et al., Applied Optics 36(32), 1997). ЧОГО ЦЕ НЕ СТОСУЄТЬСЯ: жоден зовнішній формувач зображень, виміряна MTF чи оцінене зображення не порівнювалися; GIQE є емпіричною регресією з власною похибкою; без розсіяного світла, атмосферної MTF, компенсації MTF чи накладання спектрів.entry_eo_ascent::eo_radiometry (Imager, snr_budget, giqe4_niirs, EoRadiometryScenario)
Втрати запуску на гравітацію, опір, керування та протитиск на виведенніПлоский гравітаційний поворот виведення багатоступеневого апарата над необертовою сферичною Землею крізь стандартну атмосферу США 1976 (густина й тиск), із поштовхом тангажа, тягою, зменшеною протитиском сопла, вигоряннями ступенів на точних межах кроків і втратами на гравітацію, опір, керування та протитиск, проінтегрованими поряд зі станом. Може запускатися як вид сценарію ascent-losses.MODELLEDВнутрішня узгодженість: точна тотожність швидкість вигоряння = сума Isp g0 ln(m0/mf) мінус чотири проінтегровані втрати (залишок нижче 1e-6 м/с), рівняння Ціолковського на вертикальному вигорянні у вакуумі, де гравітація — єдина втрата, та тиски US76 на рівні моря й тропопаузі. ЧОГО ЦЕ НЕ СТОСУЄТЬСЯ: втрати жодного опублікованого апарата не порівнювалися; без обертання Землі, інерційного руху, дроселювання чи наведення поза поштовхом; стале C_D; не оптимізатор траєкторій.entry_eo_ascent::ascent (simulate_ascent, AscentScenario); reentry::us76_pressure
Двостороннє рівняння TWSTFT, бюджет невизначеності та стабільність лінії з фліккером і добовою невзаємністюДвостороннє рівняння TWSTFT, розв'язане для T_A - T_B із затримками передавання та приймання станцій, Ku-діапазонною іоносферною асиметрією вгору/вниз, різницею затримок транспондера та членами Саньяка, проти його точної прямої моделі; квадратурний бюджет невизначеності з TDEV лінії як складником типу A; двосторонній ряд із білим і фліккерним фазовим шумом (Kasdin-Walter), добовою невзаємністю та сталим залишком взаємності; а також швидкість, залишкове СКВ, TDEV і ADEV наданих рядів годинників станцій Circular T, MJD-CSV або IGS RINEX. Може запускатися як вид сценарію time-transfer-budget.MODELLEDВнутрішня узгодженість: пряма модель і розв'язане рівняння збігаються до 1e-15 с, член Саньяка дорівнює незалежній формі циклу BIPM 2A omega/c^2 модуля, іоносферний член дорівнює 40,3 TEC (1/f_up^2 - 1/f_down^2)/c, а процеси шуму показують очікувані форми TDEV. ЧОГО ЦЕ НЕ СТОСУЄТЬСЯ: жодне реальне вимірювання TWSTFT чи звіт про калібрування не порівнювалися; вказані затримки та невизначеності є вхідними даними, не виміряними; стабільності наданих рядів повідомляються, а не перевіряються.twstft_budget (counter_readings, solve_offset, combined_uncertainty, flicker_phase, two_way_series, series_stability); time_transfer_budget (TimeTransferBudgetScenario, read_series)
Числові методи оптичної атмосфери на похилому шляху: дисперсія Рітова, сцинтиляція, ймовірність завмирання гамма-гамма, усереднення за апертурою, оптична товща хмар і ясного повітряCn2 Хуфнагеля–Веллі, проінтегрована вздовж похилого шляху для дисперсії Рітова плоскої та сферичної хвилі (вгору і вниз), індексу сцинтиляції Ендрюса–Філіпса та параметрів гамма-гамма, ймовірності завмирання гамма-гамма й запасу на завмирання, коефіцієнта усереднення за апертурою за слабкої турбулентності, оптичної товщі хмар для стовпа рідкої води та оптичної товщі ясного повітря за видимістю Кіма плюс Релея, що замінює зосереджені атмосферні втрати бюджету оптичної лінії, коли надано атмосферу. Може запускатися всередині виду сценарію optical-atmosphere.MODELLEDЧислові методи порівняно з незалежною програмою (xval/optical-atmosphere/oracle.py, mpmath 1.4.1 за 30 цифр, квадратура tanh-sinh за початковою змінною висоти та густини гамма-гамма Бесселя-K), що не ділить жодного коду з Kshana, за порогами, зафіксованими до появи будь-якої реалізації (xval/optical-atmosphere/PREREGISTRATION.md). ЧОМУ MODELLED: цей оракул обчислює ті самі опубліковані формули, тож перевіряє реалізацію вказаних формул, а не атмосферу; не використовується ні приклад перевірки ITU-R, ні виміряний запис сцинтиляції чи екстинкції на похилому шляху (значення ITU є відкритим ліцензійним рішенням і тримаються поза репозиторієм). Рівень профілю Cn2, видимість, масштабні висоти аерозолю та молекул, довжина шляху усереднення за апертурою і зіставлення моментів, що застосовується для усереднення за апертурою до параметрів гамма-гамма, є вказаними вхідними даними чи домовленостями. Рядок джерела в модулі фіксує, що один широко скопійований огляд друкує другий показник сцинтиляції як 7/6, де Ендрюс і Філіпс дають 5/6; реалізовано форму 5/6optical_atmosphere (rytov_variance, scintillation, gamma_gamma_cdf, fade_margin_db, aperture_averaging_factor, cloud_optical_depth, clear_air_optical_depth); optical_linkbudget (optical_link_budget_atmosphere)
Залежна від погоди доступність оптичної наземної станції та рознесення станцій, корельоване за відстаннюДоступність оптичної лінії проти вказаного запасу лінії за логнормального клімату рідкої води в хмарах (кількість за ITU-R P.840, екстинкція в геометричній оптиці) і незалежного завмирання від турбулентності гамма-гамма, запас лінії, потрібний для цільових доступностей, і стеля, яку жоден запас не піднімає, логнормальні тривалості відмов, питання «що якби» щодо технік покращення та однофакторна гауссова мережева доступність із копулою, парна кореляція якої дорівнює exp(-відстань/довжина декореляції). Може запускатися як вид сценарію optical-atmosphere.MODELLEDВнутрішня узгодженість: замкнені межі та монотонність моделі рознесення, замкнена форма стелі хмар і логнормальні тотожності відмов. ЖОДНОГО зовнішнього оракула не заявлено, і жоден не порівнювався: не використовується жоден виміряний запис доступності оптичної наземної станції чи безхмарної прямої видимості. ЧОМУ MODELLED: клімат хмар (ймовірність хмар, медіана та розкид стовпа рідкої води, тривалості відмов), незалежність хмар і турбулентності, форма гауссової копули, довжина декореляції та кожен виграш техніки є припущеннями; вбудовані сценарії вказують ILLUSTRATIVE клімати, а не набір даних. Підвищення цього рядка потребує цитованого виміряного запису доступності та порогу, зареєстрованого до порівнянняoptical_weather; optical_sitediv; optical_techniques; optical_atmosphere_scenario
Безперервність часу та віддалеміровання крізь оптичні відмовиРозподіл тривалостей відмов оптичної станції, зв'язаний із замкненою дисперсією інерційного дрейфу моделі holdover годинника: похибка часу та віддалеміровання за вказаними квантилями відмов, holdover до порогу часу, частка відмов і часу відмов у його межах та доступність часу A + U E[min(D, T_h)]/E[D] для класичних і квантових класів годинників. Може запускатися всередині виду сценарію optical-atmosphere.MODELLEDВнутрішня узгодженість із модулем holdover, біт у біт; жодного зовнішнього оракула НЕ заявлено. Класові PSD є синтезованими довготривалими межами при великих tau, які модуль holdover уже несе, тож показники успадковують його вказане застереження, що holdover до жорсткого порогу визначається припущеною межею червоного шуму, а не цитованою девіацією Аллана. Тривалості відмов — це логнормальна модель із вказаними параметрами, а не виміряний запис перебування хмарoptical_outage_holdover (couple, clock_psds); holdover (coast_phase_sigma, holdover_seconds, phase_to_range_m)
Запас оптичної лінії в часі: одна зернова реалізація погоди станціїНеобов'язкова таблиця [timeseries] (тривалість, крок, зерно) змушує вид optical-atmosphere також записувати для кожної станції одну зернову реалізацію вказаної моделі станції в часі: епізоди хмар (ясні проміжки експоненційні, хмарні відмови логнормальні із вказаним середнім і розкидом, частка часу в хмарах задана вказаною ймовірністю хмар), один логнормальний стовп рідкої води на епізод хмар, один відлік сцинтиляції гамма-гамма на крок, а з них — запас лінії, завмирання від хмар і сцинтиляції та прапорець роботи лінії, з реалізованою доступністю, часткою хмар, кількістю відмов і найдовшою відмовою. Без таблиці результатом є документ 0,37. Вибірки проходять переносними шляхами розподілів і математики, тому native і wasm32 дають ті самі байти.MODELLEDЛише внутрішня узгодженість; жодного зовнішнього оракула НЕ заявлено, і його не існує для реалізації погоди. Перевірки порівнюють одну вибірку зі статистичним виходом тієї самої моделі, тож успіх означає, що генератор вибирає з вказаних розподілів (доступність вибірки та частка хмар лежать у попередньо зареєстрованих допусках від вказаних показників), а не що будь-яка реальна станція поводиться так. Ряд є однією реалізацією, а не кліматом: його доступність відрізняється від вказаної на похибку вибірки, а відліки сцинтиляції на різних кроках незалежні, що є вказаним спрощенням процесу, який декорелюється за мілісекунди. Погодні вхідні дані залишаються припущеннями сценарію.optical_timeseries (site_series, SiteModel, SeriesSpec, Series); optical_atmosphere_scenario (TimeseriesSpec)
Зчитувач файлів даних орбіти TRK-2-18 та модель рампового Доплера 2-way для МарсаЗчитувач файлів даних орбіти DSN (TRK-2-18): 36-байтові групи записів (мітка файлу, ідентифікатор, дані орбіти, рампи для кожної станції, зсуви годинників, підсумок, кінець файлу), а в кожному записі даних орбіти — часова мітка від 1950, затримки низхідної та висхідної ліній, спостережувана, станції, тип даних, діапазони, чинність, канал, космічний апарат, 46-бітова опорна частота та час стиснення; початкові й кінцеві часи рамп, швидкості та початкові частоти. Поверх цього — рампова модель Доплера 2-way X-діапазону (проінтегровані висхідні рампи, кругове світлове запізнення з Шапіро та тропосферою, станції DSN через ланцюг IAU 2006/2000A CIO та IERS EOP, час станції) і пакетне визначення орбіти орбітального апарата Марса (поле GMM-3, треті тіла, SRP, опір).MODELLEDМітка PDS3, яку процес кондиціювання навігаційних даних DSN створив разом із файлом (NASA PDS Geosciences Node, MRO-M-RSS-1-MAGR-V1.0), перевірена за порогами, попередньо зареєстрованими в xval/mro-odf/PREREGISTRATION.md до появи зчитувача. MODELLED, бо один зареєстрований поріг (рядки таблиці кінця файлу, 121 у файлі проти 120 у мітці) не виконано; мітка там внутрішньо суперечлива. Етап 2 (xval/mro-od/PREREGISTRATION.md, поправки A1 і A2 до оціненого результату): Доплер, спрогнозований за реконструкцією навігаційної команди MRO (mro_psp5, NAIF), збігається зі спостереженим рамповим Доплером 2-way до 12,5 мГц на проходах, не використаних у розробці, поріг виконано; зареєстроване визначення орбіти не вдалося на оціненій дузі (нормальна матриця не додатно визначена) і не дало орбіти, тож пороги орбіти не виконано. Прогін 2 (xval/mro-od/PREREGISTRATION-RUN2.md, демпфований оцінювач, та сама дуга й пороги, поправка оцінювання R2-A1, розкрита в docs/revisions) зійшовся: оцінена орбіта в межах 0,36 км СКВ (0,53 км максимум) від реконструкції, пороги виконано, але післяпідгоночне СКВ Доплера становить 48,6 мГц проти порогу 30 мГц, не виконано, тож рядок залишається MODELLED. ЧОГО ЦЕ НЕ СТОСУЄТЬСЯ: жодна оцінена орбіта не виконала всіх зареєстрованих порогів; іоносфера, сонячна плазма та більша частина зміщення антени (радіальне зміщення 1,5 м підганяється на проході розробки) не моделюються.odf (parse_odf, Odf, OdfObservation, OdfRamp, seconds_1950); mars_od (DopplerModel, RampTable, compress_two_way, MarsDynamics, fit, fit_damped); naif_kernel (SPK type 1); gravity_pds (SphericalHarmonicField::from_shadr)
Замкнене керування орієнтацією зі зворотним зв'язком MRP на реакційних маховикахІнерційне наведення орієнтації твердого хаба з трьома або більше збалансованими реакційними маховиками: закон зворотного зв'язку MRP L_r = -K sigma_BR - P omega_BR (Schaub and Junkins), моменти двигунів маховиків мінімальної норми G_s u = -L_r, обмежені межею кожного маховика, зв'язана динаміка хаба й маховиків з інерцією хаба, що несе інерцію обертання маховиків, кінематика кватерніонів, RK4 з утриманням нульового порядку. Може запускатися як вид сценарію aocs (цикл за істинним станом).VALIDATEDBasilisk 2.9.1 (AVSLab, ISC; запуск маховика bsk як окремого інструмента, ніколи не зв'язаного і не вбудованого): хаб космічного апарата, reactionWheelStateEffector (BalancedWheels, обмеження моменту ввімкнено), simpleNav, inertial3D, attTrackingError, mrpFeedback (без інтегрального члена) і rwMotorTorque за dt = 0,1 с із його RK4, проти власної реалізації Kshana на трьох випадках (три ортогональні маховики; чотириколісна піраміда; чотириколісний випадок із насиченням), пороги попередньо зареєстровано в xval/aocs-basilisk/PREREGISTRATION.md до коду й прогону. Усі пороги виконано з першого прогону. ЧОГО ЦЕ НЕ СТОСУЄТЬСЯ: шум датчиків у циклі, інтегральний зворотний зв'язок, наведення відстеження, тертя маховиків, джитер, обмеження швидкості та живлення, коефіцієнти будь-якого реального космічного апарата; порівняння перевіряє реалізацію закону та динаміки проти незалежної, а не льотний контролер.aocs (AocsConfig, required_torque, motor_torques, rates, rk4_step, simulate, mrp_from_quaternion); aocs_kind (AocsScenario)
Мультиплікативна оцінка орієнтації EKF за гіроскопом і зоряним датчикомМультиплікативний EKF Лефферта–Маркі–Шустера: стани похибки орієнтації в системі тіла та зсуву гіроскопа, пропагація зі швидкістю гіроскопа за вирахуванням оцінки зсуву та дискретним шумом процесу Фаренкопфа (випадкове блукання кута й швидкості), оновлення зоряного датчика із залишком 2 vec(q^-1 q_st) у формі Жозефа та мультиплікативне скидання; дискретний симулятор гіроскопа й зоряного датчика Фаренкопфа. Вид aocs може замкнути цикл керування на свою оцінку.MODELLEDВнутрішня узгодженість: нормований квадрат похибки оцінювання фільтра проти істини, змодельованої з тих самих моделей датчиків за зернами Монте-Карло, і збіжність оцінок орієнтації та зсуву. ЧОГО ЦЕ НЕ СТОСУЄТЬСЯ: жоден зовнішній оцінювач чи льотні дані не порівнювалися (у Basilisk 2.9.1 немає модуля MEKF); моделі датчиків є підручниковими, без неспіввісності, масштабного коефіцієнта чи ефектів поля зору зоряного датчика.aocs_mekf (Mekf, GyroSim, attitude_error, spd_solve6); aocs_kind (estimator)
Визначення орієнтації за Вабою/TRIAD/QUESTОптимальна триосьова орієнтація за зваженими векторними спостереженнями (напрями на зорі/Сонце/магнітометр): детермінований двовекторний TRIAD, q-метод Девенпорта (точний мінімізатор втрат Вабби — оптимальний кватерніон є власним вектором найбільшого власного значення матриці Девенпорта K розміру 4×4, розв'язаним симетричним власним розв'язком Якобі) і QUEST (корінь Ньютона/січної характеристичного рівняння K, що стартує із Σ ваг, потім відновлення кватерніона за вектором Гіббса)VALIDATEDscipy.spatial.transform.Rotation.align_vectors (SciPy 1,13; Virtanen et al., Nature Methods 2020) — розв'язок Кабша/Маркеля через SVD задачі Вабби, справді незалежний алгоритм (SVD матриці профілю орієнтації) і кодова база від власного розв'язку Девенпорта-K / методу характеристичного кореня QUEST у kshana, що обчислює ТУ САМУ однозначно визначену оптимальну орієнтацію за Вабою. На безшумових наборах зважених векторних спостережень TRIAD, q-метод і QUEST відтворюють оптимальне обертання scipy з точністю до <1e-9 рад (порівняння через інваріантний до знака кут похибки орієнтації). Шумове статистичне твердження Монте-Карло «оптимальний перемагає TRIAD» залишається MODELLED (без зовнішнього оракула); лише спостереження одиничних векторів точкових напрямів — без моделювання поля зору/зсуву/часової кореляції датчика, а QUEST сингулярний за 180° (q-метод охоплює цей випадок)wahba
Статистики виявлення захоплення GNSS за квадратичним закономДетектор захоплення за квадратичним законом (некогерентний) над пошуком фаза коду × Доплер: ймовірність хибної тривоги (центральний χ² із 2M ступенями свободи), поріг, що досягає цільової P_fa (ФР χ², обернена бісекцією), і ймовірність виявлення (нецентральний χ² із нецентральністю 2M·ρ для післякореляційного SNR ρ на комірку), з узагальненою Q-функцією Маркума Q_M(a,b)=1−F_{χ'²(2M,a²)}(b²)VALIDATEDscipy.stats.ncx2 / scipy.stats.chi2 (SciPy 1,13; Cephes/Boost) — алгоритм, незалежний (ланцюговий дріб для нецентрального/центрального χ²) від ряду неповної гамма-функції в kshana (raim::chi2_cdf / noncentral_chi2_cdf), що обчислює те саме однозначно визначене ЯДРО статистик виявлення: узагальнену Q Маркума Q_M(a,b)=ncx2.sf(b²,2M,a²), ймовірність виявлення P_d, ймовірність хибної тривоги P_fa та обернення P_fa→поріг, збіг до ~1e-6 — та сама основа незалежності, що й у рядка Validated «статистичне ядро цілісності RAIM/ARAIM». ЛИШЕ ЯДРО: CFAR з усередненням за коміркою та втрата від розташування між бінами коду/Доплера залишаються MODELLEDacquisition
Розв'язання цілочисельної неоднозначності фази несівної GNSS (LAMBDA)Цілочисельна фіксація неоднозначностей за методом найменших квадратів у стилі LAMBDA: цілочисельне (Z) декорелювальне перетворення зі збереженням об'єму (цілочисельне зменшення розміру за Гаусом множника L D Lᵀ) + точний пошук цілочисельних найменших квадратів «гілок і меж» углиб за Шнорром–Ейхнером з тестом відношення на двох найкращих кандидатах (перевірене твердження); плюс замкнена завантажувальна частка успіху P_s=∏(2Φ(1/(2σ_{i|I}))−1), яка перевіряється лише внутрішньо й поза перевіреним твердженнямVALIDATEDRTKLIB v2.4.2-p13 lambda() (його вихідний файл lambda.c, T. Takasu, BSD-2-Clause), незалежне зведення LAMBDA і пошук MLAMBDA, скомпільовані з C і запущені як інструмент, на 300 випадкових коваріаціях (n від 2 до 10): цілочисельні найменші квадрати мають унікальний мінімізатор, тож фіксовані цілі мають бути ідентичними (0 розбіжностей), а дві найкращі квадратні норми, що живлять тест відношення, мають збігатися до 1e-9 відносно (виміряно 5.6e-13); допуск зафіксовано до порівняння. Перевірене твердження: розв'язок ILS і його дві найкращі норми. RTKLIB не обчислює завантажувальну частку успіху, яка залишається перевіреною внутрішньо проти Монте-Карло процесу округлення; інваріанти Z-перетворення та повний перебір залишаються допоміжними перевірками. Лише цілочисельна декореляція за Гаусом (перестановки зведення повного LAMBDA пришвидшують пошук, але не змінюють ні точної відповіді ILS, ні завантажувальної частки)lambda
Наведення в B-площині та гравітаційний маневр у наближенні конічних перерізівГеометрія гіперболічного прольоту (a=−μ/v∞², e=1+r_p·v∞²/μ, кут повороту δ=2·asin(1/e), прицільний параметр |B|=|a|·√(e²−1)), система відліку точки прицілювання B-площини Ŝ/T̂/R̂ і розклад B·T̂/B·R̂, а також гравітаційний маневр у наближенні зшитих конічних перерізів (модуль v∞ зберігається, напрям відхиляється на δ, геліоцентричне Δv=2·v∞·sin(δ/2) без витрат палива) з параметром Тіссерана T_P=a_P/a+2√((a/a_P)(1−e²))cos iVALIDATEDGMAT R2026a (Apache-2.0, запущений як окрема програма) на 192 гіперболічних станах Землі: B.T, B.R і |B| у межах 1e-6 км (найгірше 1.35e-8 км), кут повороту та обидві асимптоти в межах 1e-9 рад (найгірше 9.3e-15 рад); зміна швидкості маневру за C3 і асимптотами GMAT у межах 1e-9 v_inf (найгірше 5.6e-14); геліоцентричні SMA, ECC та INC на 350 станах із центром у Сонці до й після маневру в межах 1e-9 відносно та 1e-12 рад (найгірше 2.2e-14 і 4.1e-14 рад); параметр Тіссерана проти sbpy 0.6.0 (BSD-3) на елементах GMAT у межах 1e-9 (найгірше 1.3e-15) і проти 3 - C3/v_c^2 (8.9e-16); а замкнена форма Тіссерана проти таблиці 8,1 Kasuga and Jewitt (2019) для 12 об'єктів у межах границі надрукованого округлення (найгірше 0,39 від неї; опубліковане робоче значення P1). Попередньо зареєстровано (436293bf; геліоцентричне виправлення 6fd9f5e6); поправка 374c806b, написана після генерації файлів оракула й до будь-якого значення Kshana, розширила фільтр вхідного нахилу з 1e-2 до 1e-3 рад, зберігши більше й гірше обумовлених станів. Обсяг MODELLED: проліт у двотільному наближенні зшитих конічних перерізів на круговій планетній орбіті, без переходу через сферу впливу, збурень зустрічі чи ефемеридbplane
Формування променя антенної решітки CRPA проти глушінняЗанулення антени з контрольованою діаграмою приймання: комплексні вектори наведення решітки a(û)=exp(j·k·pₙ·û), детерміноване наведення нулів (одиничне посилення до SV, точні нулі до N−1 джамерів через норму мінімальної довжини w=Aᴴ(AAᴴ)⁻¹b) і адаптивні ваги MVDR w=R⁻¹a_sv/(a_svᴴR⁻¹a_sv), що самонаводять глибокі нулі на сильні завади (із комплексним ядром лінійної алгебри, написаним з нуля)VALIDATEDnumpy.linalg / scipy.linalg (комплексний розв'язок LAPACK zgesv) — кодова база лінійної алгебри, незалежна від комплексного ядра kshana, написаного з нуля, що обчислює ТІ САМІ однозначно визначені ваги: MVDR w=R⁻¹a_sv/(a_svᴴR⁻¹a_sv) і наведення нулів мінімальної норми w=Aᴴ(AAᴴ)⁻¹b, а також отримані коефіцієнти підсилення відгуку решітки, збіг до ~1e-9 — той самий клас оракула, що й рядки Validated DOP (gnss_lib_py) та інформації Фішера (numpy). MODELLED вузькосмугова решітка дальнього поля з однаковими ізотропними елементами — без взаємного зв'язку, розузгодження елементів, скінченної смуги (STAP) чи похибки оцінки вектора наведенняcrpa
Степеневий шум годинника за IEEE-1139 + межа фліккерного FMП'ятикоефіцієнтне перетворення PSD↔дисперсія Аллана за IEEE-1139 S_y(f)=Σh_α f^α → σ_y²(τ) (білий/фліккерний PM, білий/фліккерний/випадкове блукання FM), межа фліккерного FM σ_y=√(2 ln2·h_{-1}) як повноцінний підганяний член і невід'ємна підгонка сім'ї FM у базисі {(2π²/3)τ, 2 ln2, 1/(2τ)}, що відновлює межу, яку базис дрейфу {1/τ,τ,τ³} подати не можеVALIDATEDallantools 2024,06 (A. Wallin; коефіцієнти Kasdin & Walter 1992 / Vernotte 2015) — незалежна стороння кодова база та лінія цитування, що обчислює ТЕ САМЕ однозначно визначене перетворення IEEE-1139 PSD→Аллан σ_y(τ) для кожного з п'яти типів степеневого шуму. powerlaw::allan_deviation у kshana збігається із замкненими формами allantools (білий/фліккерний FM, RW-FM і білий PM до <5e-9 відносно; фліккерний PM до ~1e-5 — справжній сигнал незалежності, бо kshana використовує табульовану сталу NIST-SP-1065 1,038, а allantools — повне 3γ−ln2), а межа фліккерного FM √(2 ln2·h_{-1}) збігається з allantools на всій драбині — той самий поріг, який долають рядки Validated MDEV/TDEV/Theo1/MTIE. MODELLED стаціонарна степенева модель — без члена детермінованого дрейфу (τ²); коефіцієнти окремих пристроїв / виміряні межі залишаються Modelledpowerlaw
Обмін блоком коваріації CCSDS OEMСеріалізація та розбір блока CCSDS 502,0 OEM COVARIANCE_START…COVARIANCE_STOP — коваріація положення/швидкості 6×6, записана як її 21-елементний нижній трикутник (канонічний порядок CX_X … CZ_DOT_Z_DOT) з необов'язковим COV_REF_FRAME, що доповнює наявні записувач/розбирач векторів стану OEM, щоб коваріації визначення орбіти та фільтрів проходили круговий обмін у стандартному форматіVALIDATEDoem 0.4.5 (MIT, https://pypi.org/project/oem/) — ТОЙ САМИЙ незалежний розбирач CCSDS-502, якому довіряє рядок Validated «Взаємодія CCSDS OEM», повністю окрема кодова база (власний токенізатор KVN, скінченний автомат секції коваріації та збирання матриці в numpy). kshana видає повний сегмент OEM із немаркованим блоком COVARIANCE у вигляді нижнього трикутника голих чисел; oem розбирає його та відновлює симетричну 6×6, збігаючись із вхідною коваріацією kshana поелементно до округлення f64 — справжній круговий обмін бібліотека-проти-бібліотеки (порівняно з відновленням oem, а не повторним розбором kshana), що закриває попередню прогалину рядка «немає сторонньої фікстури»oem (covariance_block_kvn, parse_covariance_block)
Зростання похибки інерційного дрейфу INS/TRN і перетини порогівБюджет «похибка положення проти тривалості інерційного дрейфу», побудований за коефіцієнтами IMU, де кожне джерело похибки (зсув акселерометра, зсув гіроскопа, випадкове блукання швидкості, випадкове блукання кута, масштабний коефіцієнт у крейсерському польоті та під тривалою питомою силою) пропагується через дев'ятистанову модель похибок INS місцевого рівня зі зворотним зв'язком Шулера (inertial::coast::ErrorDynamics за Groves, 2-ге вид., розд. 14: похибки орієнтації, швидкості та положення, вертикальний канал із градієнтом гравітації, радіуси WGS-84 і нормальна гравітація, горизонтальна платформа, що рухається на північ із налаштованою швидкістю, latitude_deg і height_m; систематичні члени через розширену матричну експоненту, випадкові блукання за Ван Лоаном), одночлени плоскої Землі лишаються лише як leading_order_m; внески об'єднуються за вказаним правилом (rss / linear-sum / deterministic-sum-with-stochastic-rss); тривалості дрейфу, що досягають наданих викликачем порогів положення (10 м і 50 м за замовчуванням), знаходяться прямим скануванням за першим перетином (first_crossing_s, бо обмежені Шулером криві не монотонні), з домінантним джерелом на кожному перетині; а режим, обмежений TRN, дає найбільший інтервал рельєфних виправлень, що тримає кожен поріг. Може запускатися як вид сценарію ins-trn-coastVALIDATEDNaveGo v1.4 (коміт 24d9488, LGPL-3.0), запущений як окрема програма під GNU Octave 8.4.0: прогони вільного інерційного дрейфу з тим самим профілем похибок IMU, з однією виправленою числовою мертвою зоною в оновленні кватерніона (qua_update.m: перевірку швидкості нижче 1e-8 рад/с замінено на wnorm == 0, застосовано до копії під час виконання й один раз перевірено на збіг; за наявності перевірки повільно дрейфуюча орієнтація платформи завмирала й обривала зворотний зв'язок Шулера). Попередньо зареєстровано (4262b969) з виправленим генератором до його запуску; рушій (440b3877) закомічено до відкриття будь-якого виправленого виходу; той самий поріг 5 %, 48 точок, члени, зерна й статистика, що й у раунді 1. Результат: 48/48 у межах 5 % (найгірше +3,70 % випадкове блукання швидкості за 1200 с, +3,33 % випадкове блукання кута за 1800 с); за 3600 с NaveGo/Kshana дають 2375.4/2376.2 м для зсуву акселерометра та 130 885/131 675 м для зсуву гіроскопа. Обнулення зворотного зв'язку транспортної швидкості Шулера провалює тест (+695 % за 3600 с). Розкрито: одноканальні прогнози Шулера та значення NaveGo раунду 1 були відомі; модель не має підганяного параметра. Обсяг: криві похибок кожного члена за тактичного класу, 45 град. пн. ш., горизонтальна й орієнтована на північ, до 3600 с; перетини, правило об'єднання та режим TRN є детермінованими функціями цих кривих. Коефіцієнти класу IMU (дані смуг Groves 2013 таблиці 4,1) і залишок рельєфного виправлення TRN залишаються вхідними даними MODELLED. Раунд 1 (замінено): одночлени плоскої Землі, тепер leading_order_m, завищують за межами 600 с (від 2.2x до 8x за годину). Редакція 0,30: змінюється кожен вихід ins-trn-coast (піковий TRN поставленого сценарію 52,932679 -> 44,711834 м)inertial::coast (ErrorDynamics, ErrorSource, source_error_m, CoastModel, Contribution, Combination, TrnFixMode, first_crossing_s, InsTrnCoastScenario); scenario kind ins-trn-coast
Робочий цикл апертури: навігація проти зв'язкуОдин прогін бере план контактів (список вікон aos_s/los_s, кожне з яких просить апертуру для навігації чи зв'язку — той самий словник вікон, який видає passes::predict_passes, перетворений aperture_duty::windows_from_passes), кількість апертур і явну політику арбітражу, і повертає навігаційний робочий цикл, цикл зв'язку, простійний цикл і простій на сеанс. Політика є вхідним параметром зі задокументованим типовим значенням (navigation-priority; також communications-priority і невитісняльна first-come-first-served), а звіт несе визначену політику, її повне визначення та визначення робочого циклу й простою, бо показник робочого циклу, наведений без правила арбітражу, не відтворюється. Розклад є точним інтервальним проходом по межах вікон, тож вікно, що закінчується точно там, де починається наступне, ніколи не конкурує, а секунди апертури навігації, зв'язку та простою накопичуються незалежно за цей один прохід. Може запускатися як вид сценарію aperture-duty-cycleMODELLEDВнутрішня узгодженість за трьома величинами, обчисленими різними виразами в тому самому проході, а потім зобов'язаними зійтися. Секунди апертури навігації, зв'язку та простою накопичуються окремо — простій із (apertures − |served|) на елементарний інтервал, ніколи як залишок — і їх сума перевіряється проти apertures × horizon_s, що негайно ламається при хибно розставленій межі, подвійно врахованому чи пропущеному інтервалі; окремо вимагається, щоб обслужені часи за сеансами складалися назад у два підсумки послуг. Структурні властивості планувальника вимірюються, а не припускаються: обслужений час перевіряється як неспадний за кількістю апертур на 200 псевдовипадкових планах для всіх трьох політик (не очевидно для невитісняльної політики, де додаткова апертура змінює, хто що утримує на кожній подальшій межі), а арифметика меж закріплена на парі дотику/перекриття на одну секунду, де інакше ховалася б помилка на одиницю. Міст пропагатора проходів перевірено проти виходу passes::predict_passes: з однією апертурою та без конкурентної служби секунди апертури навігації дорівнюють власній сумі тривалостей проходів пропагатора. Жодного зовнішнього оракула не заявлено, і його не існує: ця можливість замінює ручну арифметику, а не перевіряється проти неї, вбудований план контактів є ілюстративним, а не льотним, і жоден оперативний планувальник не публікує пару план-плюс-відповідь із вказаним правилом арбітражу — робочий цикл, обчислений за невказаної політики, не порівнюваний із обчисленим за вказаної, а залежність від політики виміряно (навігаційні робочі цикли 100/150 проти 50/150 на тому самому плані). Час повороту й перемикання, обсяг даних, стан буфера, енергія та замикання лінії виключено в мітці звіту, а не змодельовано мовчкиaperture_duty
Радіоглушіння навігації на поверхні Місяця (J/S для кожного супутника)Власне місячне відношення джамер-сигнал, ефективне C/N₀ та втрата захоплення для користувача на селенографічній поверхні під місячним поверхневим (або піднятим) джамером над ілюстративним орбітальним угрупованням класу Moonlight/LCNS з публічних джерел. Складає відкритий ланцюг глушіння (j_over_s_db, effective_cn0_dbhz, rx_antenna_gain_db, lock_status, q_factor, nominal_cn0_dbhz, free_space_path_loss_db) з відкритою геометрією місячного неба (lunar_service::LunarConstellation + topocentric, lunar::selenographic_to_mcmf); жодна геометрія чи радіометрія не виводиться заново. На відміну від земного виду jamming, сигнальна ланка не є фіксованою прийнятою потужністю: ізотропна прийнята потужність кожного супутника є його власним EIRP бюджету лінії − FSPL(похила дальність), тож J/S змінюється від супутника до супутника з місячною дальністю та висотою. Видає ОДИН РЯДОК НА КОЖНУ ВИДИМУ ЛІНІЮ (епоха, супутник) як JSON і як артефакт *.table.csv, з обома прийнятими потужностями, різницею яких є J/S, надрукованими поруч; агрегатні показники якості стоять поряд із цією таблицею, ніколи замість неї. Може запускатися як вид сценарію lunar-jammingMODELLEDПерехресна перевірка композиції проти незалежного шляху коду в самому репозиторії: кожне J/S лінії виводиться заново як різниця двох бюджетів ліній, обчислених за linkbudget::received_signal_power_dbw, чиї втрати у вільному просторі — єдиний вираз 20·log10(4πRf/c), а не триноменна сума, яку використовує jamming::free_space_path_loss_db, — обидва збігаються з точністю до < 1e-9 дБ на кожному рядку (виміряний найгірший випадок 7.11e-14 дБ, тобто округлення чисел із рухомою комою). Базовий ланцюг завад, який вона складає, окремо зовнішньо закріплений у tests/gnss_denied_jamming_resilience_reference.rs (незалежне виведення J/S та ефективного C/N₀ у numpy/scipy, зафіксоване за Kaplan & Hegarty §9,4, плюс виміряне C/N₀ JammerTest 2024, Zenodo 10.5281/zenodo.15910563); місячна геометрія, яку вона складає, — це геометрія lunar_service/lunar зі своїми оракулами. Замкнені тотожності, перевірені тут: удвічі менша відстань джамера додає точно 20·log10(2) дБ до кожного рядка; J/S точно інваріантне до посилення головного променя антени користувача, тоді як C/N₀ зсувається точно на це посилення; маска висоти не змінює жодного рядка, що вцілів, побітово. Сам рядок залишається ReferenceImpl/Modelled: не існує виміряної кампанії місячного глушіння, з якою можна було б перевірити, а орбітальне угруповання є ілюстративною геометрією класу Moonlight/LCNS з публічних джерел, а не льотними ефемеридамиlunar_jamming (composing jamming, lunar_service, lunar)
Контур відмови на Місяці зі смугою невизначеності від виміряного розкиду C/N₀Звіт lunar-jamming більше не спирається в контурі відмови на один скаляр. Він видає повний виміряний розподіл C/N₀ корисного сигналу над таблицею для кожного супутника — n, min, p05, p25, медіана, p75, p95, max, середнє, вибіркове стандартне відхилення та власну асиметрію вибірки (p95 − медіана) − (медіана − p05) — поряд із рядками кожної лінії, які не змінюються. Контур потім подається за кожною з цих порядкових статистик за ОБОМА критеріями відмови, які розпізнає рушій, ніколи один замість іншого: чинний критерій відношення потужностей (J/S = 30 дБ, той самий поріг, що використовують attack_surface і tracking_loop, і критерій, що стоїть за стовпцем denial оприлюдненої таблиці місячного глушіння ліній), і критерій втрати захоплення (ефективне C/N₀ падає до tracking_threshold_dbhz), яким оцінюється власний стовпець links[].status цього звіту. Кожна точка контуру подана на обох осях площини відмови — потрібне EIRP джамера за відстані сценарію та відстань відмови за EIRP сценарію — тож смуга є інтервалом на тих самих осях, на яких креслиться контурний графік. Краї смуги Є contour(p05) і contour(p95): та сама замкнена функція, застосована до власних квантилів вибірки, а не сигма, підігнана до вибірки, і не медіана ± k·stdev, і звіт каже про це рядком band_definition поряд із числами. stdev видається для неперервності й нічим не використовується. Квантиль, чиє C/N₀ уже на порозі відстеження або нижче нього, не має скінченного J/S відмови; ці стовпці видаються як null із лічильною причиною, а не як нескінченність чи обмежений радіусMODELLEDВнутрішня узгодженість із власними прямими функціями рушія, і це все, що ця можливість може чесно заявити. Кожна точка контуру є замкненою інверсією, і кожну інверсію перевірено проштовхуванням її відповіді назад крізь ПРЯМУ функцію, якою оцінено власні рядки звіту: стовпець J/S через jamming::effective_cn0_dbhz (яка має повернути tracking_threshold_dbhz з точністю до < 1e-9 дБ-Гц), стовпець відстані через jamming::free_space_path_loss_db і jamming::j_over_s_db (те саме J/S до < 1e-9 дБ), стовпець EIRP через jamming::j_over_s_db за власної відстані сценарію. Контур додатково перевірено як МЕЖУ множини відмови, а не точку всередині неї — lock_status втрачає захоплення за строгою нерівністю, тож вердикт виміряно як такий, що перемикається з DEGRADED на LOST у межах 1e-4 дБ J/S по обидва боки контуру, чого контур із похибкою на епсилон не пройшов би. Найсильніша перевірка є покінцевою, а не поквантильною: застосування тієї самої функції до власного C/N₀ кожного рядка точно відтворює стовпець статусу звіту — 0 розбіжностей на 38 з 38 рядків у задокументованій робочій точці (kind = lunar-jamming, кожен вхід типовий, крім jammer.range_m = 25 000 м), де 26 рядків LOST і 12 ні. Монотонність виміряно, а не припущено: 20 001 відліків у [tracking_threshold + 1e-3, 80] дБ-Гц, 0 порушень строго спадної відстані та строго зростаючої потрібної потужності, тож порядок квантилів смуги продемонстровано, а не заявлено. ExternalDataset відхилено, а з ним і Validated: не існує виміряної кампанії місячного глушіння, з якою можна було б порівняти радіус відмови, орбітальне угруповання є ілюстративною геометрією класу Moonlight/LCNS з публічних джерел, а не льотними ефемеридами, а входи контуру (EIRP, потужність джамера, посилення антен, шумова температура) є репрезентативними величинами. ReferenceImpl також розглянуто й відхилено — обернена та пряма формули є ТІЄЮ САМОЮ алгеброю, прочитаною у двох напрямках, тож круговий прохід ловить помилки переписування та знаків, але не є незалежною реалізацією; назвати його перехресною перевіркою було б кроком із запозиченою незалежністю, якому інваріанти матриці й мають запобігати. Що дає смуга, виміряно й наведено, а не заявлено: у цій робочій точці односкалярний контур становить 27,402916 км і ставить 25 км на бік відмови для всіх 38 рядків, тоді як смуга 21,256108 .. 29,921360 км містить робочу точку й тому повідомляє розподіл, який таблиця справді показує. Також виміряно, що обидва критерії розходяться — смуга відношення потужностей (38,186527 .. 53,691675 км) зовсім не містить 25 км — тому друкуються обидваlunar_jamming (denial_js_db, range_for_free_space_path_loss_m, Cn0Distribution, DenialContourPoint, ContourBand, DenialContour; inverting jamming::effective_cn0_dbhz, jamming::j_over_s_db and jamming::free_space_path_loss_db)
Потужність виявлення монітора цілісності між модальностямиЗвіт hybrid-optical-rf вказує, що монітор хі-квадрат між модальностями справді може ВИЯВИТИ, а не лише те, що він проходить безвідмовний випадок: мінімальний виявний зсув на кожну контрольовану вісь (схід, північ, вгору, годинник) за вказаних у сценарії ймовірностей хибної тривоги та пропущеного виявлення, криву потужності виявлення по обидва боки від нього, безшумове кратне зсуву, за якого реалізована статистика вперше перетинає поріг, і час до виявлення для рампи зсуву із вказаною швидкістю. Збої також вносяться крізь справжній монітор, а статистика, яку він повертає, подається поряд з аналітичним прогнозомMODELLEDДва внутрішні оракули, без зовнішнього набору даних. (1) Замкнений круговий прохід: мінімальний виявний зсув утворюється оберненням нецентрального хвоста хі-квадрат за нецентральністю (raim::pbias) і перевіряється подаванням отриманої нецентральності назад через raim::noncentral_chi2_cdf за власного порогу монітора, що має повернути P_md. (2) Ін'єкція проти аналізу: зсув записується в оцінку RF однієї осі, і cross_raim::run_cross_raim запускається знову, тож статистика, порівнювана з аналітичною нецентральністю, є тією, яку обчислив монітор, а не повторним виведенням. Зерновий Монте-Карло самої статистики міститься в тестах як третя перевірка; його свідомо НЕ включено до звіту, бо вибіркова оцінка була б повільнішою й не відтворюваною побітово. ExternalDataset відхилено: величина є потужністю виявлення ЦЬОГО монітора за розподілу сигма ЦЬОГО сценарію, а величини сигма, на які масштабується MDB, є репрезентативними вхідними даними Modelled, а не вимірюваннями. ReferenceImpl також розглянуто й відхилено — Монте-Карло вибирає ту саму статистику, яку описує аналіз, тож ловить помилки переписування та коефіцієнтів, але не є незалежною реалізацією монітора. 0,30 раунд 2 (попередньо зареєстровано 0135a9e4), заблоковано (залишається MODELLED): SciPy 1.18.1 chi2/ncx2/brentq відтворюють поріг звіту (в межах 5.4e-12), MDB на вісь, криву потужності, кратне перетину та час до виявлення рампи (в межах 5.3e-10) на п'яти конфігураціях; статистики внесених збоїв не мають незалежного оракула, а величини сигма є вхідними даними Modelled, тож визначення обсягу чекає на рішення власникаhybrid_integrity
Повторне зростання коваріації після передавання щодо порогу тривогиЗвіт hybrid-optical-rf розкриває модель шуму процесу фільтра й вказує, як довго розв'язок після передавання лишається в межах порогу тривоги: для обох напрямків передавання він несе коваріацію на кожну вісь, залишену передаванням, пропагує її вперед за вказаного шуму процесу випадкового блукання та повідомляє час, коли масштабований за покриттям 1σ досягає горизонтального, вертикального порогів тривоги та порогу тривоги за часом, який поріг спрацьовує першим, сталу часу подвоєння дисперсії та вибірковий профіль інерційного дрейфу, що охоплює перетин. PSD шуму процесу, коефіцієнт покриття та пороги тривоги є вхідними даними з задокументованими типовими значеннямиMODELLEDБез зовнішнього оракула. Перетин є замкненим розв'язком зростання дисперсії випадкового блукання, а тести переобчислюють його незалежно зі значень, які сам звіт публікує, а не з нутрощів випромінювача. Початкова коваріація закріплена побітово до сліду, який уже повідомляв наявний блок передавання, тож дрейф не може пропагувати коваріацію, якої ніхто більше не бачив. PSD шуму процесу є репрезентативними вхідними даними MODELLED, і часи перетину масштабуються з ними безпосередньо, що тест масштабування називає виміряною властивістю, а не твердженням. ExternalDataset свідомо відхилено: час дрейфу є прямою функцією двох PSD Modelled і порогів тривоги, які самі репрезентативні, а виміряного місячного оптичного/RF дрейфу після передавання, з яким можна було б порівняти, немає. Зовнішній оракул тут потребував би опублікованої кривої зростання коваріації після передавання або точності holdover для порівнянного приймача із вказаною моделлю шуму процесу, перевіреної до допускуhybrid_integrity
Діаграма антени поза бісектрисою в експорті місячної геометріїЕкспорт геометрії для кожного супутника несе для кожної (епоха, супутник) кут поза бісектрисою НА СУПУТНИКУ та посилення передавання в бік місця від справжньої діаграми круглої апертури з рівномірним освітленням (Ейрі) і повідомляє кількість у промені за цією діаграмою ПОРЯД із кількістю у промені за симетричним наближенням «посилення-ширина променя» (θ_3dB[град.] = √(31000/G_lin)), з різницею, поданою як явна поправка в лініях, у супутниках на епоху та як найгірша окрема епоха. Обидві неявні ефективності апертури наближення подано (0,641 проти правила 70·λ/D градусів, із яким воно цитується, 0,920 проти рівномірної круглої апертури), щоб ефективність, яку воно мовчки припускає, була вказана, а не виведена. Типово вимкнено: блок з'являється лише коли задано і місце експорту, і апертуруMODELLEDЗмішано, і розділено, а не об'єднано. ДІАГРАМА під ним зовнішньо перевірена і має власний рядок (фікстура scipy.special.j1 до < 0,05 дБ у tests/validate_p1_orbital_footprint.rs, плюс тут опублікована абсциса половинної потужності Ейрі x = 1,61634, знайдена бісекцією, а не припущена). ГЕОМЕТРІЮ перевірено проти замкненої тригонометрії трикутника, написаної як вираз, відмінний від скалярного добутку під тестом. ОБМЕЖЕННЯ справжнього променя наближеним конусом є виведеною алгеброю (28.019/√η проти 29,479 градусів на λ/D), тому поправка може бути лише недодатною для η ≤ 0,9035. Але самі КІЛЬКОСТІ у промені не мають зовнішнього оракула: жодна опублікована таблиця не вказує, скільки супутників оболонки класу Moonlight/LCNS тримають південнополярне місце всередині променя половинної потужності даної антени, а орбітальне угруповання є ілюстративним наближенням із публічних джерел, а не льотними ефемеридами. Виміряна розбіжність у задокументованій робочій точці — 0 ліній у промені за справжньою діаграмою проти 28 за наближенням, −2,33 супутника на епоху, найгірша епоха 3, на 76 оцінених лініях — тому є результатом MODELLED щодо наближення, закріпленим як літерал регресії (найближчий рядок лежить за 0,069° від будь-якого краю променя, на чотири порядки більше за будь-яку розбіжність в останній цифрі), а не зовнішньо перевіреним показником покриття. Позначити рядок ExternalDataset на підставі власної зовнішньої опори діаграми було б запозиченою перевіркою, чому інваріанти матриці й мають запобігати. 0,30 раунд 2 (попередньо зареєстровано d9755d28), заблоковано (залишається MODELLED): геометрія SPICE і функції Бесселя SciPy відтворюють кут поза бісектрисою (найгірше 3.0e-5 град.), посилення Ейрі та прапорці в промені на 6 336 рядках станів льотних орбітальних апаратів і задокументованої робочої точки; але на льотній геометрії прапорці розщеплюються за ідентичністю супутника (найближча лінія за 1,66 град. від краю променя), видимість 5 град. перевіряється як прапорець, а не числова висота, прапорець симетричного наближення застосовує емпіричне правило 31000/G до перевіреного кута без перевірки самого правила, а неявні ефективності не мають оракула; визначення обсягу чекає на рішення власникаlunar_service, antenna
Втрата захоплення петлею відстеження та затягування спуфінгу під завадамиВтрата захоплення, обчислена з динаміки петель замість відношення потужностей: тепловий джитер 1σ несівної (Костас) і коду (некогерентний рано/пізно) проти C/N₀ із втратою на квадратування, проти вказаних правил 3σ_PLL + θ_e ≤ 45° і 3σ_DLL + відставання рампи ≤ d/2 чипа; пороги C/N₀ втрати та повторного захоплення з названою визначальною петлею та гістерезисом, ВИВЕДЕНИМ із ширшої смуги затягування, а не заявленим; заявлений час до втрати захоплення від детектора захоплення з двома порогами та підтверджувальними витримками, поданий окремо від фізичного часу виходу фази (середній час Вітербі між прослизаннями циклів, у log₁₀ с, бо охоплює сотні декад); найбільше зрушення коду та швидкість Доплера несівної, які можуть відстежувати петлі жертви; і РАДІУС ВІДМОВИ, що випливає з динаміки петель, поданий поряд з наявним радіусом відношення потужностей з їхньою знаковою різницею як власним названим полем. Може запускатися як вид сценарію tracking-loopMODELLEDВласний корелятор sdr рушія (sdr::correlate / synth_if / CaCode), покроково пропущений над зерновим синтетичним IF за калібрувального C/N₀ — окремий шлях коду, що досягає тих самих чисел числовою кореляцією дискретизованих IQ, а не алгебраїчним виразом джитера, тож це інший маршрут, а не переказ — плюс стандартні табульовані значення модифікованої Бесселя I₀ для члена прослизання циклу. Теорія петель за Kaplan & Hegarty розд. 8 і Viterbi/Gardner для часу прослизання. Рядок залишається ReferenceImpl/MODELLED: перехресна перевірка живе в тій самій кодовій базі, а перевірка bessel_i0 перевіряє одну спеціальну функцію, а не модель відстеження, тож підвищення рядка на цій основі було б самообслуговуючим маркуванням. ExternalDataset потребував би записаного набору даних сирого IF з істинним C/N₀ та позначеним моментом втрати захоплення (клас TEXBAT/OAKBAT); жоден не постачається в цьому дереві, і навіть із IQ ці набори даних не публікують істини стану петель для кожної епохи, тож заявлений час втрати захоплення можна було б перевірити лише проти детектора захоплення якогось іншого приймача, що є змодельованим вибором, а не оракулом. Смуги петель, час інтегрування, інтервал корелятора, відношення затягування, витримки, потужність джамера та посилення антен є репрезентативними показниками діапазону, а не специфікацією. 0,30 раунд 2, GNSS-SDR 0.0.19 (GPL-3.0, запущений як програма) на незалежно згенерованому IF (попередньо зареєстровано 6ef7698c, поправки до методу вимірювання розкрито), результат (залишається MODELLED): джитер замкнених PLL і DLL збігається в межах 8 % за 35 до 45 дБ-Гц, динамічне навантаження 10 Гц/с у межах 1 %, а відставання рампи коду першого порядку в межах 2 %; за 30 дБ-Гц джитер PLL на 21 % вищий, а джитер DLL на 32 % нижчий, виміряні пороги за правилом 15 градусів на 1,5 дБ вище за рушій, а петля другого порядку прослизає на 0,5 до 2 декад частіше за межу часу прослизання першого порядку. Редакція 0,30: час прослизання Костаса тепер використовує SNR петлі rho/4 (півциклові прослизання); типове log10_mean_time_to_cycle_slip_s у jitter_table спадає з 11,58 до 2,10 на порозі 25,47 дБ-Гцtracking_loop (composing sdr, jamming)
Коваріація координат станцій місячного VLBI за розкладом відстеженняЧасткові похідні затримки, накопичені за розкладом базових ліній × епох у матрицю інформації Фішера, обернену до коваріації координат станцій і сигма станції на кожну координату, що замінює припущений ізотропний зв'язок рівнорозподілу зі скалярної точності затримки. Стан несе земні (ITRS) координати станцій, тож якобіан є інерційною частковою похідною, повернутою матрицею GCRS→ITRS кожної епохи, а саме обертання Землі робить ці координати спостережуваними — звіт ВИМІРЮЄ розгортку земної лінії візування та схилення маяка, а не припускає їх. Ранг, дефект датуму, число обумовленості, спектр інформації та нуль-простір вільної мережі видаються на кожному прогоні, а за дефіциту рангу головна сигма публікується як NULL зі статусом, а не зчитується з майже сингулярного оберненого. Значення рівнорозподілу c·σ_τ·√(g/N) для ТОГО САМОГО розкладу друкується поряд з обчисленим з їхнім відношенням, разом з ізотропною межею сліду √(p/trace(M)), яку AM-HM робить жорсткою нижньою межею. Може запускатися як вид сценарію lunar-vlbi-fimVALIDATEDНезалежний маршрут у самому репозиторії. Кожен рядок якобіана виводиться заново центральною скінченною різницею lunar_vlbi::vlbi_delay_s, оціненої зі власних земних і зв'язаних із Місяцем координат стану, повернутих уперед ланцюгом систем відліку, — шлях, що не обчислює похідної та не ділить жодного виразу з аналітичними частковими, — і матриці інформації, які будують обидва маршрути, збігаються з точністю до < 1e-6 найбільшого діагонального елемента. Ядро лінійної алгебри, яке це складає (information_matrix, crlb, sym_eig), окремо зовнішньо закріплене проти numpy.linalg.eigh / numpy.linalg.inv у tests/fim_observability_reference.rs, а спостережувана затримки несе власний далекопольовий оракул delta-DOR від lunar_vlbi; рядок не запозичує жодного зі статусів. Замкнені тотожності, перевірені тут і позначені як такі: масштабування σ² і 1/N та √(p/trace(M)) як нижня межа AM-HM, яку обчислена сигма не може перевершити, що збігається зі значенням рівнорозподілу лише на ізотропній геометрії — тому виміряне відношення є саме тією анізотропією, яку припущення відкинуло. 0,30 зовнішнє порівняння (бібліотека: NAIF SPICE CSPICE N0067 через spiceypy 8.2.0, MIT; DE440, ITRF93 earth_latest_high_prec, MOON_PA), попередньо зареєстровано (50863551) разом із прогоном чутливості до похибки моделі з боку рушія: кожен рядок якобіана перебудовується центральними різницями збіжних ньютонівських різниць світлових запізнень із геометрії SPICE (рівняння світлового запізнення є коротким скриптом над положеннями SPICE; SPICE несе геометрію), із розкладом, перебудованим із висот SPICE. Розклад, ранг, дефект, спектр інформації, число обумовленості, сигми станцій, головне значення, межа сліду, відношення рівнорозподілу, нуль-простір вільної мережі, розгортка лінії візування та схилення маяка збігаються в межах попередньо зареєстрованих 1 % / 0,1 град., що лежить вище відомої аналітичної похибки Місяця рушія (3.2e-3 на сигмах, виміряної до прогону). NumPy 2.3.5 повторює лінійну алгебру на збереженому якобіані рушія до 2e-13 (P2). Validated як межа Крамера–Рао для вказаного скороченого набору параметрів на вказаних ілюстративних вхідних даних: ефемерида центра Місяця, годинники, тропосфера та параметри орієнтації Землі зафіксовані в обох гілках, тож це не точність справжньої кампаніїlunar_vlbi_fim (composing lunar_vlbi, fim, cio, lunar_frame, frames)
Коваріація координат точки місячної поверхні за розкладом затримок VLBI, окремо від коваріації земної станціїТретій вибір датуму, all-stations-fixed, що тримає кожну земну станцію й оцінює лише зв'язані з Місяцем координати МАЯКА — конфігурація, для якої насправді наводиться невизначеність точки місячної поверхні, бо координати земних станцій є входом моделі затримки, а не її невідомою. Вона існує тому, що коваріація рівня станції та коваріація точки поверхні є РІЗНИМИ ВЕЛИЧИНАМИ, розділеними плечем важеля ρ/B, і досі ніщо не заважало цитувати одну проти іншої. Видаваний блок beacon_link несе ρ, найдовшу базову лінію, плече важеля, форму рівнорозподілу для точки поверхні c·σ_τ·(ρ/B)·√(g/N), обчислену сигму маяка на координату та їхнє відношення — відношення null, а не оманливе, коли маяк не оцінюється або матриця дефіцитна за рангом. B береться як НАЙДОВША наявна базова лінія, найсприятливіша, тож відношення може лише занижувати. Може запускатися як datum = "all-stations-fixed" з estimate_beacon = true, що відхиляється з повідомленням, яке називає відсутній вхід, коли маяк не оцінюєтьсяMODELLEDЗамкнені тотожності, без зовнішнього оракула, заявленого чи доступного. Плече важеля перевіряється проти ρ/B, а дві форми рівнорозподілу одна проти одної до 1e-15 — алгебраїчні тотожності, тож вони ловлять помилку проводки й нічого більше, і позначені як такі. Суттєвий результат MEASURED, а не заявлено: затримка від фіксованої базової лінії обмежує НАПРЯМ маяка, тож складник лінії візування потрапляє в матрицю інформації лише через член дальності ближнього поля, і тест зчитує отриману анізотропію з видаваного спектра, а не виводить її. AM-HM робить √(p/trace(M)) жорсткою нижньою межею, тож зв'язок ізотропного рівнорозподілу може лише ЗАНИЖУВАТИ, а відношення обчисленого до рівнорозподілу є саме тією анізотропією, яку він відкинув. MEASURED на парі Goldstone-подібна/Canberra-подібна, чия хорда становить 10726,748 км: за 112 вибраних днів 36 не допускають жодної взаємно видимої епохи за маски 10°, найбільше колись взаємно видимих — 17 із розкладу з 49 відліків, а в 73 придатні дні трикомпонентне відношення сягає від 113,9× до чотирьох порядків більше, медіана 1513×, тоді як обмеження двома поперечними напрямками, яких лінія візування не позбавляє, дає від 3,94× до 25,8×, медіана 7,8×. ЧОГО ЦЕЙ РЯДОК НЕ ЗАЯВЛЯЄ: жодного з цих показників як властивості справжньої кампанії. Він встановлює, що величина для точки поверхні тепер ОБЧИСЛЮЄТЬСЯ, а не припускається, і що її не можна мовчки міняти місцями з величиною рівня станції. Залишається ReferenceImpl/MODELLED: не існує опублікованої коваріації точки поверхні місячного VLBI, з якою можна було б перевірити, станції та місце маяка є ілюстративними, а не знятими, а ефемерида, годинники, тропосфера та параметри орієнтації Землі ЗАФІКСОВАНІ, тож це межа Крамера–Рао для скороченого набору параметрів і сама по собі оптимістична. Та сама величина на шляху ядра (маяк на Місяці DE440) перевірена у власному рядку «…, шлях ядра»; на цьому аналітичному шляху найменша сигма маяка на 3,9 % нижча за оракул SPICE того рядка, тому цей рядок залишається MODELLEDlunar_vlbi_fim (composing lunar_vlbi, fim, cio, lunar_frame, frames)
Коваріація координат точки місячної поверхні за розкладом затримок VLBI, шлях ядраКоваріація маяка за всіх фіксованих станцій у сценарії lunar-vlbi-fim (кожну земну станцію утримано, зв'язані з Місяцем координати маяка оцінюються самі) з маяком, розміщеним на Місяці JPL DE440, прочитаному власним зчитувачем ядер рушія (planetary_kernel_path; lunar_vlbi_fim::epoch_geometry_with, ephem_provider::KernelEphemeris). Від аналітичного шляху відрізняється лише центр Місяця; обертання тіла за IAU 2015, станції, обертання Землі та лінійна алгебра ті самі. Перевіреними виходами є набір спостережень, спектр інформації 3 x 3, ранг і число обумовленості, три зв'язані з тілом сигми маяка та їхнє СКВ, плече важеля та відношення обчисленого до рівнорозподілу на типовому розкладі. Може запускатися як сценарій lunar-vlbi-fim із datum = "all-stations-fixed", estimate_beacon = true і заданим planetary_kernel_pathVALIDATEDЗобов'язальна гілка бібліотеки: NAIF SPICE Toolkit N0067 (spiceypy 8.2.0, MIT) на de440s, earth_latest_high_prec (ITRF93 з UT1 і рухом полюса) і місячних системах відліку DE440, маяк зафіксовано в MOON_ME; кожен рядок якобіана є центральною різницею 3 км збіжної ньютонівської різниці світлових запізнень (власний код світлового запізнення оракула M069, імпортований), ніколи не часткова Kshana; видимість перебудована за висотами WGS-84; NumPy 2.3.5 / SciPy 1.18.1 (BSD-3-Clause, LAPACK) eigh і inv. Гілка P2: NumPy на збереженому якобіані рушія. Попередньо зареєстровано (4a51256) до появи фікстури чи оракула, з порогами 1 % на власних значеннях, обумовленості, сигмах, СКВ і відношенні, 1e-4 на плечі важеля, точним набором спостережень і рангом; P2 1e-9. Розкрито: порівняння лише рушія аналітичного та ядерного Місяця (3,9 % на сигмі y) було виконано до попередньої реєстрації, щоб вибрати шлях ядра, і зазначено там. Результат: обидві гілки збігаються, найгірше 1.7e-3 (сигма y маяка 0,081211 м проти 0,081351 м). Мутація: транспонування обертання тіла в частковій похідній маяка провалює обидві гілки. Обидві сторони читають DE440, тож збіг перевіряє геометрію та лінійну алгебру на DE440, а не сам DE440. Поза твердженням: точність точки поверхні справжньої кампанії (годинники, тропосфера й орієнтація Землі зафіксовані; ілюстративні станції та місце маяка) і типовий аналітичний шлях (рядок вище, що залишається MODELLED: на аналітичному Місяці сигма y на 3,9 % нижча за цей оракул)lunar_vlbi_fim (epoch_geometry_with, schedule, schedule_jacobian); ephem_provider (KernelEphemeris); naif_kernel
Місячний диференціальний PNT — бюджет залишку лінії корекціїТри члени, які диференціальна корекція набирає між епохою, в яку її обчислено, та епохою, в яку її використано, кожен раніше залишений як немоделюваний запас: похибка зйомки опорної станції (корельована між супутниками, незалежна від базової лінії, перенесення положення ~1:1 і доведено не підсилюється DOP), старіння корекції (заморожений вектор похибки орбіти, повторно спроєктований на лінію візування, на яку власний пропагатор рушія ставить супутник на одну затримку пізніше, плюс дрейф годинника c·σ_y(τ)·τ за калібрувальним степеневим законом) і рівномірне квантування лінії за точної повної шкали ±(orbit_err + clock_err) з дисперсією step²/12. Подано і в областях дальності, і положення, поряд із наявними залишком і рівнем захисту — ніколи замість них — із кривою затримки поряд з одиничним показникомMODELLEDЗамкнені тотожності та самоузгодженість: дисперсія рівномірного квантувача step²/12, точне поширення коваріації (GᵀG)⁻¹GᵀRG(GᵀG)⁻¹, що згортається до σ·PDOP для рівних σ, перенесення 1:1 члена зйомки як наслідок û_user ≈ û_ref і замикання квадратури при вимкненні. Перехресна перевірка PDOP з orbit::dop ділить нормальну матрицю [−û, 1], тож це перевірка узгодженості і позначена як така, а не незалежний оракул. ExternalDataset не доступний і не заявлений: жодна місячна поверхнева станція не має опублікованої точності зйомки, жодна місячна диференціальна лінія корекції не має опублікованої затримки чи формату повідомлення, а результат квантування є замкненою формою, а не вимірюванням. RTKLIB — уже зовнішній оракул коду для ядра одинарних різниць і зважених найменших квадратів — можна було б запустити зі свідомо хибно знятою базою, щоб підтвердити перенесення зйомки 1:1, але це незалежний код над тією самою алгеброю лінії візування першого порядку. ВЕЛИЧИНИ — MODELLED: типове значення зйомки є власним розподілом реалізації місячної системи відліку цього крейта, а не виміряною станцією, затримка й кількість бітів є ILLUSTRATIVE вхідними даними, а зростання самого ВЕКТОРА похибки ефемерид трансляції не моделюється взагалі — про що сказано у видаваному рядку закону старіння, бо це член, який найімовірніше домінуватиме на справжній лініїlunar_dpnt
Карта покриття та точності місячної опорної станціїСвіп Монте-Карло моделі місячного диференціального PNT над південнополярною сіткою користувачів і добою епох (вид lunar-station-coverage): для диференціальної опорної станції на відомому південнополярному місці, для кожної точки та по області, процентильна виправлена й невиправлена похибка положення (3-D, горизонтальна, вертикальна), доступність із причиною для кожної недоступної епохи (user_lt4, station_missing_sat), покриття проти порогу, вказаного до прогону, рівні захисту DO-229E, радіус покриття на азимутальний сектор і бюджет лінії корекції на станції та в найгіршій точці. Не є твердженням про характеристики жодної реальної системи; не афілійовано з жодним агентством і не схвалено нимMODELLEDАрифметика, переобчислена незалежним скриптом numpy на експортованих випадках (scripts/gen_lunar_station_ref.py, numpy 2.5.4; попередньо зареєстровано в tests/fixtures/lunar_station/PREREGISTRATION.md, закомічено окремо в 9caedf97 до першого прогону): на 20 випадках з усіма членами похибок увімкненими видимі набори та статус ідентичні, сирі похибки дальності збігаються до 1.4e-14 м, вектори й модулі похибки положення до 1.4e-9 м проти порогу 1e-6 м, а p95 кожної точки дорівнює numpy.percentile побітово; корекції станції НЕ ДОТЯГЛИ свого порогу 1e-9 м (найгірше 3.73e-9 м, 15 з 20 випадків), а з ними й виправлені похибки дальності: перевірено в 60-цифровій арифметиці, обидві сторони в межах округлення подвійної точності від точного значення, бо член зйомки є різницею двох дальностей 1e7 м, чия одиниця останнього розряду становить 1.86e-9 м; записано, не підігнано. Вид зводиться точно до виду lunar-differential-pnt в одній точці, одній епосі й одному випробуванні. Модель похибок, модель декореляції та кожен поріг є власними цього проєкту або ILLUSTRATIVE; ніщо тут не є твердженням про жодну реальну системуlunar_station (over lunar_dpnt, lunar_service)
Місячні маски горизонту рельєфу за вказаним профілем або полярною DEMАзимутально залежні маски горизонту для кожного місця для виду lunar-station-coverage (опорна станція та кожна точка користувача) і сітки moonlight-service-volume та її місця експорту для кожного супутника (кожен рядок експорту отримує clears_terrain), у форматі таблиці обрію 0,36 (skyline::Skyline, лінійна за азимутом із замиканням за 360 град.; вказаний профіль і горизонт DEM на одному місці поєднуються як їхній поточковий максимум): вказаний [terrain] station_horizon або user_horizon із міткою джерела та/або горизонт, прорахований променями над південнополярною стереографічною DEM (гратчастий полярний формат LRO LOLA, прочитаний з дескриптора, що фіксує його розмір і SHA-256, або тайл широта/довгота realdata::lola_dem із [terrain] dem_tile_path, відлунений із його SHA-256) уздовж великих кіл місячної сфери з точною кривиною, від вказаної висоти щогли, за вказаного азимутального кроку та дальності. Супутник зараховується на місці, коли він долає пласку mask_deg і горизонт на своєму азимуті (lunar_service::topocentric); епоха, на якій горизонт залишає менше чотирьох супутників у точці, де пласка маска дає чотири, зараховується як причина недоступності terrain_masked. Вбудована DEM є вирізкою з продукту LOLA LDEM_75S_240M у суспільному надбанні, ресемпльованого блоковим середнім 5 x 5 до 1200 м (data/lunar-dem/NOTICE.md). За відсутності кожне місце зберігає пласку маску, а кожен документ побайтово ідентичнийMODELLEDЗамкнені поверхні (InternalConsistency): занурення голої сфери, кратер у плато на сфері зі спостерігачем у центрі й поза ним та аналітичний конус проти власної растеризації. На справжній вирізці незалежне променеве трасування в numpy (scripts/gen_lunar_terrain_ref.py, numpy 2.5.3; попередньо зареєстровано в tests/fixtures/lunar_terrain/PREREGISTRATION.md, закомічено окремо в edbb9b02 до появи скрипта) збігається на п'яти місцях: висоти місць до 1.0e-11 м і всі 1800 висот горизонту до 5.5e-10 град. проти порогів 1e-6, лічильники обрізаних променів точні; це перевіряє арифметику, а не рельєф. Жодного опублікованого показника полярного горизонту чи освітлення не відтворено: вбудована вирізка 1200 м згладжує субкілометровий рельєф, який розв'язують опубліковані дослідження освітлення, тож горизонти DEM є MODELLED лінією візування над ресемпльованою справжньою DEM, а не перевіреним горизонтом. Місце станції та орбітальне угруповання залишаються ILLUSTRATIVE; ніщо тут не є твердженням про жодну реальну системуlunar_terrain (over skyline, lunar_service::topocentric_basis); lunar_station; lunar_service (coverage_masked, masked_visible)
Багатопроменевість місячної опорної станції та члени апаратури приймачаНеобов'язкова секція [receiver] у lunar-station-coverage (LRS-02): залежна від висоти сигма багатопроменевості sigma(el) = a + b exp(-el / el0) на користувачі та на станції (авіаційна функціональна форма RTCA DO-229, її a = 0,13 м, b = 0,53 м, el0 = 10 град. як типові; на Місяці кожне значення ILLUSTRATIVE), білий на користувачі та першого порядку Гауса–Маркова за епохами на станції (rho = exp(-dt / tau)); тепловий шум коду DLL «рано мінус пізно» sigma = L_c sqrt(B_L d / (2 C/N0) (1 + 2 / ((2 - d) T C/N0))); міжканальні зсуви для кожного каналу, сталі за випробування, на користувачі та на станції. Члени станції входять у її корекції, члени користувача — у сирі та виправлені вимірювання, кожен на власному зерновому потоці. За відсутності кожен документ не змінюєтьсяMODELLEDЗамкнені форми та статистики власних вибірок моделі (InternalConsistency): формула DLL проти ручного обчислення, форма DO-229, різниця двох приймачів з нульовою базою, кореляція Гауса–Маркова з лагом 1. Не існує місячного вимірювання багатопроменевості чи приймача для порівняння; значення ILLUSTRATIVE, і ніщо тут не є твердженням про жоден реальний приймачlunar_receiver; lunar_station
Зростання похибки ефемерид місячної опорної станції за затримку корекціїНеобов'язковий вхід orbit_err_growth_m_per_s у lunar-station-coverage (LRS-03): корекція, застосована latency_s після обчислення, не враховує зростання g latency_s похибки орбіти трансляції, g — ізотропне за 3-D СКВ швидкістю, вибране для кожного супутника та випробування на власному зерновому потоці (швидкість 1-сигма діапазону tau / sqrt(3)), понад повторне проєктування заморожених похибок на лінію візування. За відсутності кожен документ не змінюється. Доповнення K5 до порівняння опублікованих тверджень, попередньо зареєстроване окремо, запускає K5 за 0,001, 0,01 і 0,1 м/с (ILLUSTRATIVE)MODELLEDЗамкнена сигма члена зростання та перевірка поширення першого порядку (InternalConsistency). Доповнення K5 (tests/fixtures/lunar_station_published/ADDENDUM-LRS03.md, попередньо зареєстровано окремо в 59d88248): K5 не виконується за кожної швидкості, виправлений p95 3-D 369,8 м, 2315 м і 22797 м проти порогу 1,5 м (292,96 м записано без зростання), як зазначено до прогону. Жодне публічне джерело не дає швидкості місячного зростання: ILLUSTRATIVElunar_station (orbit_growth_range_sigma_m)
Режими розв'язку місячної опорної станції: обмеження за висотою, три супутники, вікно для нерухомого користувачаНеобов'язковий розділ [solution] у lunar-station-coverage (LRS-06): рядок псевдовимірювання висоти up . dx = e_h із заданою 1-сигмою, що зважується разом із рядками дальностей; мінімум у три супутники дозволено лише з ним; зважений розв'язок методом найменших квадратів за останні window_epochs епох зі спільним нерухомим положенням і одним годинником на епоху (відповідь фільтра для нерухомого положення без шуму процесу на тих самих даних; похибки епох вважаються незалежними). Якщо розділ відсутній, розв'язок за знімком і кожен документ лишаються без змін. Доповнення до порівняння з опублікованими твердженнями за стилем розв'язку джерел, попередньо зареєстроване окремоMODELLEDЗведення знімка та замкнені випадки розв'язувача (InternalConsistency). Доповнення (tests/fixtures/lunar_station_published/ADDENDUM-LRS06.md, попередньо зареєстроване окремо в 001ca100) з обмеженням за висотою 1 м, трьома супутниками та вікном із 6 епох (ILLUSTRATIVE налаштування; джерела називають фільтр, обмеження за висотою та три супутники, але не їхні налаштування): K1–K5 не проходять, а K6 проходить, 1 із 6, як у записаному прогоні; скоригована похибка p95 у 3D для R300 зменшується з 280,6 м до 2,11 м (горизонтальна 0,90 м, не оцінювалася), а покриття лишається 0. Припущення про незалежність вікна працює на його користь. Це не твердження про жодну реальну системуlunar_solution; lunar_station (solution_figures)
Точність і покриття місячної опорної станції порівняно з опублікованими твердженнямиСценарій lunar-station-coverage, виконаний за публічними припущеннями з опублікованих матеріалів про місячну диференціальну опорну станцію (чотири навігаційні супутники на 24-годинних заморожених еліптичних орбітах, SISE 10 м при 95 %, шум коду 0,30 м, затримка поправок 1 с і 600 с, субдециметрова зйомка станції, опублікована ділянка-приклад станції, кола навколо південного полюса радіусом 300 км і 600 км), і оцінений за числовими твердженнями джерел за шістьма односторонніми порогами, попередньо зареєстрованими до прогону: покриття всього південного полюса з субметровим p95 (K1, K2), субметровий і дециметровий скоригований p95 (K3, K4), субметровий рівень при затримці 600 с (K5) і збереження точності від бази 10 км до 500 км (K6)MODELLEDЕталон: числові твердження п'яти публічних джерел, зареєстровані з URL, датою отримання, SHA-256 і ліцензією в tests/fixtures/lunar_station/SOURCES.md (arXiv:2602.08432v3; слайди IOAG Cislunar PNT Workshop 2025 і 2026; UNOOSA ICG WG-B Lunar PNT, червень 2024), транскрибовані з посиланнями на сторінки в tests/fixtures/lunar_station_published/CLAIMS.md. Пороги, випадки та вхідні дані було попередньо зареєстровано в tests/fixtures/lunar_station_published/PREREGISTRATION.md (редакція 2, 05bf9a19, зафіксована окремо до прогону). 0,36 перший прогін, висновок (лишається MODELLED): проходить 1 із 6 порогів. Покриття становить 0,00 на обох колах проти >= 0,95, а скоригована похибка p95 у 3D дорівнює 280,6 м (300 км) і 293,0 м при затримці 600 с проти <= 1,5 м. Дециметровий поріг (K4) не міг бути пройдений при шумі коду 0,30 м, який задають джерела; це відображає суперечність між джерелами, а не результат моделі. K6 проходить (відношення 1,39 проти <= 1,5), але як відношення двох величин, у яких домінує геометрія, воно не є доказом про декореляцію в жодному напрямку. Причина: елементи орбіт супутників не публікуються, і на ILLUSTRATIVE елементах у дереві користувач і станція мають спільні чотири супутники вище 5 град лише у 8,2 % (300 км) і 6,3 % (600 км) епох, за майже виродженої геометрії (нескоригований p95 3,8 км проти < 10 м у джерелах). Симуляції джерел використовували фільтр, обмеження за висотою та три супутники у спільній видимості, чого сценарій за знімком не моделює. Тому порівняння не підтверджує й не спростовує опубліковане твердження «субметрова точність на всьому південному полюсі». Воно показує, що результат цієї моделі залежить від орбіт, які не опубліковані. Це не твердження про жодну реальну систему; жодного зв'язку з будь-яким агентством чи його схвалення немаєlunar_station (over lunar_dpnt, lunar_service)
Ядро розрахунку рівня захисту місячного ARAIMКрок переходу від геометрії до коваріації для місячного рівня захисту — (GᵀG)⁻¹ для геометрії «усі в зоні видимості» та кожної підгеометрії з однією несправністю, спроєктоване на місцеву вертикаль і слід горизонтального блока, — та його статистичне ядро: множник детектора за Бонферроні, гауссів верхній хвіст кожної гіпотези несправності та розв'язання кореня, що відображає бюджет ризику цілісності на рівень захисту, для місячного обсягу обслуговування з 7 точокVALIDATEDДві усталені сторонні реалізації в поєднанні, обидві виконані офлайн, з повною регенерацією фікстури та перевіркою на побайтову ідентичність. RTKLIB 2.4.2-p13 (T. Takasu, BSD-2-Clause), коміт 71db0ff, src/rtkcmn.c, скомпільований із вихідного коду C із -ULAPACK: lsq() → matinv() → ludcmp()/lubksb() обертає нормальну матрицю за LU-розкладом Краута з частковим вибором головного елемента, алгоритмом, не пов'язаним із рукописним інвертором Гаусса–Жордана invert4() у kshana; numpy.linalg.inv (LAPACK getrf/getri) заново обертає кожну з них як третє незалежне обернення і збігається з RTKLIB до 1.112e-12 відносно. SciPy 1.17.0 / NumPy 2.4.1 (BSD-3-Clause) надають norm.isf, norm.sf (Cephes ndtri/ndtr) та optimize.brentq на противагу рядові неповної гамма-функції з Numerical Recipes, оберненню методом поділу навпіл і 200-крокового поділу навпіл у kshana; до того ж прямий sf у SciPy є іншим числовим шляхом у далекий хвіст, ніж 1 − Φ у kshana, тож скасування в глибокому хвості вимірюється, а не віддзеркалюється. Вертикальна вісь — це радіальний одиничний вектор (визначення місцевої вертикалі на сферичному Місяці), а горизонтальна дисперсія — це слід горизонтального блока, тож жодної угоди про азимут схід/північ не поділено. ЯВНО НЕ VALIDATED ЦИМ РЯДКОМ: σ_URE, апріорна ймовірність несправності окремого супутника та ілюстративне орбітальне угруповання класу Moonlight/LCNS — це MODELLED вхідні дані, передані оракулу як задані; а ФОРМА рівняння цілісності MHSS для однієї несправності транскрибована з тієї самої опублікованої межі, яку реалізує kshana: спільна замкнена форма — це спільне припущення, тож цей рядок охоплює помилкове обчислення цього рівняння, а не помилковий вибір самого рівняння. Жодна стороння реалізація MHSS ARAIM недоступна (RTKLIB не має точки входу для рівня захисту, такого дистрибутива PyPI не існує, Stanford MAAST є на MATLAB), що й є невиконаним покращеннямlunar_service (lunar_protection_level, lunar_protection_level_with_sigma), lunar (lunar_araim_with_sigma), raim (araim_raim)
Рівні захисту ARAIM MHSS порівняно з опублікованими еталонними векторамиСаме рівняння рівня захисту з розділенням розв'язків за множинними гіпотезами: зважений метод найменших квадратів для всіх у зоні видимості та для кожного режиму несправності на геометрії схід/північ/вгору з одним станом годинника на орбітальне угруповання, сигми підрозв'язків, сигми розділення розв'язків і односторонні проєкції номінального зміщення, пороги K_fa за Бонферроні, розподіл ризику неконтрольованої несправності та VPL/HPL, що розв'язують рівняння ризику цілісності. Можна запустити як тип сценарію araim-reference-checkVALIDATEDEU-U.S. Working Group C ARAIM Technical Subgroup, Reference Airborne Algorithm Description Document v3.1 (20 червня 2019), робочий числовий приклад з додатка D — опубліковані ВХІДНІ дані (матриця геометрії 10 супутників у 2 угрупованнях, діагоналі C_int/C_acc, b_nom, P_sat, P_const, константи LPV-200) і опубліковані ВИХІДНІ дані (VPL 18,3 м, HPL 13,45 м, EMT 7,2998 м, σ_v_acc 1,3694 м, K_fa_3 5,1083 і шість проміжних величин несправності угруповання), отримано 2026-09-20, SHA-256 джерела 7f42934488c5c2261363439fabd48385e39526df34d514f395e22b6990b6bdb7. Збіг у межах власного ЗАЯВЛЕНОГО допуску еталона TOL_PL = 5e-2 м: VPL 0,0074 м, HPL 0,0437 м; EMT і σ_v_acc з точністю їхнього друкованого запису. Звіт Milestone 3 тієї самої підгрупи (2016), додаток A §A.IX, наводить той самий приклад, але внутрішньо суперечливий: помилка знака в рядку 3 матриці G (+0,7477, де документ 2019 друкує −0,7477; із плюсом власна σ_v_acc документа виходить 0,8690 м проти його опублікованої 1,47 м), а K_fa_3 обчислено для 57 режимів несправності, тоді як документ стверджує N_fault_max = 1, тобто 12, тож його EMT відповідає порогу для 57 режимів, а VPL/HPL — ні. Жодна відповідна реалізація не може відтворити всі його виходи одночасно. Його геометричні проміжні величини відтворюються точно, а рівні захисту записано як виміряні розбіжності (VPL 0,0171 м, HPL 0,0842 м, EMT 0,4806 м), виключені з показника прийняття; допуск не розширювали, щоб їх поглинути. ОБЛАСТЬ: лише N_fault_max = 1 — підмножини з кількома подіями несправності відхиляються, а не обрізаються, а виключення, перевірка узгодженості за хі-квадрат і крок перерозподілу для подвійного підрахунку лишаються MODELLEDaraim_reference (araim_reference_protection_levels, published_vectors), raim (araim_protection_level, araim_integrity_risk, normal_quantile)
ARAIM із одночасними гіпотезами несправності кількох супутниківaraim_reference::add_v42_subset_plan: правило визначення підмножин ADD v4.2 (P_THRES, FC_THRES, контрольовані підмножини з найменшою кількістю вилучених спочатку), узагальнене з пар на одночасні комбінації до max_order подій супутників і угруповань, із точним апріорним P_no fault prod q_e; add_v42_protection_levels_to_order виконує на ньому шлях рівнів захисту ADD v4.2 (порядок 2 — це точно наявний шлях). raim::araim_subset_raim (за вибором): розширений RAIM на цій множині гіпотез, кожна контрольована підмножина — один режим (p_fault, T, b, sigma) у сумі ризику цілісності, неспостережувані підмножини переносяться до неконтрольованого ризику, бюджет масштабується розподілом ADD неконтрольованого ризику, а підмножина з найбільшим нормованим розділенням повідомляється, коли виявлено несправність. Апріорні ймовірності, що потребують глибших підмножин, ніж max_order, відхиляються, а не обрізаютьсяMODELLEDВнутрішня узгодженість (InternalConsistency): зведення порядку 2 до перевіреного MAAST шляху ADD v4.2, незалежне повторне виведення апріорних ймовірностей і сконструйована несправність двох супутників. Запусків MAAST чи RTKLIB за межами пар не проводилося, тож глибші множини гіпотез і рівні захисту RAIM за підмножинами зовнішньо не перевірені. araim_subset_raim поділяє спрощення araim_dual_raim (одна сигма для цілісності й точності, один годинник, звичайний нормальний хвіст): він не відповідає ADDaraim_reference (add_v42_subset_plan, add_v42_protection_levels_to_order); raim (araim_subset_raim, SubsetRule)
RAIM поряд із показниками якості holdover годинникаНеобов'язковий розділ [integrity] сценарію clock (clock_integrity::run): із заданої ділянки та пресетів орбітальних угруповань (geometry::sky_geometry), на кожній епосі цілісності, поки часова шкала GNSS не заперечена, знімковий RAIM (raim::snapshot_raim: тест хі-квадрат за парністю, нахилові рівні захисту) на супутниках над маскою із заданими гауссовими залишками з заданою сигмою та необов'язковим заданим зміщенням; окремий блок integrity_fom із вердиктами за епохами, рівнями захисту та доступністю. Заперечені епохи повідомляються як недоступні, ніколи не екстраполюються; показники якості holdover не змінюються, а без розділу вивід побайтово ідентичнийMODELLEDВнутрішня узгодженість (InternalConsistency): рівні захисту — це рівні snapshot_raim, який перевірено за RTKLIB у власному рядку, перераховані на тій самій геометрії; поведінка без несправностей і з уведеною несправністю. Небо — це репрезентативна пресетна геометрія (не датований альманах), залишки синтетичні, а сигма, порогові значення тривоги та ймовірності — задані вхідні дані; ніщо тут не є твердженням про доступність реального приймачаclock_integrity (run, sky_at, IntegrityCfg); scenario (Scenario::integrity); report (RunResult::integrity_fom); api (clock dispatch)
Просторова, зашумлена, багатосімейна спостережуваність цисмісячної дуги за довжиноюПоріг спостережуваності за довжиною цисмісячної дуги в ПРОСТОРОВІЙ шестистановій CR3BP, а не в плоскій чотиристановій, для сімей DRO, гало L2 та майже прямолінійного гало L2, із шумом вимірювань у граміані та ДВОМА критеріями, що повідомляються, бо єдиного чесного немає: опублікований критерій рангу, який доведено інваріантним до гомоскедастичної сигми вимірювань (відбілювання множить матрицю спостережуваності на скаляр, не змінюючи відносного спектра сингулярних значень, а отже ранг, дефект і число обумовленості), і критерій оцінюваності — перша дуга, на якій формальна 1σ невизначеність положення початкового стану головного апарата падає нижче заданої межі, — який якраз і рухається з шумом. Кожен поріг несе брекет сітки епох, у якому він лежить; недосяжний критерій має значення null із причиною. Плоский режим лишається типовим, а сім'ї поза площиною там відхиляються, а не сплющуються до стану, що не може їх податиMODELLEDНезалежний ранг за рядково-східчастою формою методом Гауса з частковим вибором головного елемента підтверджує кожен вердикт про ранг для шести станів: інший алгоритм, що не має спільного коду з перевіреним шляхом власних значень/SVD. Матриця переходу стану CR3BP 6×6, яку це поєднує, має власний оракул ReferenceImpl проти варіаційного інтегрування SciPy, а початкові умови гало/NRHO отримано від коректора, що відтворює опубліковану південну орбіту Gateway L2 9:2. Наявну гілку фільтра квадратного кореня інформації явно НЕ зараховано як підтвердження: вона споживає ті самі якобіани і зводиться до тієї самої нормальної матриці, тож це перевірка узгодженості між двома числовими машинами, і випущена позначка розширення так і каже. НЕ прив'язано зовні, тому ExternalDataset відхилено, а не запозичено з рядка STM: самі порогові довжини дуг залежать від MODELLED конструкції угруповання, сітки епох і — вимірно, до 40× — від допуску сингулярних значень. Опублікований плоский результат 2,09 год відтворюється точно при rel_tol = 1e-6 і сам залежить від допуску (10,25 год при 1e-4, 0,42 год при 1e-8), що є властивістю критерію, а не орбіти. Жоден публічний набір даних не публікує порогу спостережуваності за довжиною дуги для обраного цисмісячного угруповання. MEASURED РЕЗУЛЬТАТ: просторовий поріг для шести станів становить 22,17 год для NRHO L2 і 40,42 год для гало L2 і НЕ ІСНУЄ для плоскої сім'ї DRO, на якій виведено опубліковане твердження: ранг 4 із 6 з дефектом датума 2 і двома точно нульовими власними значеннями, структурний дефект, який не усуває жодна довжина дугиcislunar_observability, observability_gramian, intersat_range, cislunar_srif
Похибка прогнозу орієнтації Землі в операційному стилі, виміряна як прогноз проти остаточних значеньПідгонка методом найменших квадратів зміщення плюс швидкості на замикальному вікні плюс основні періодичні члени — річний, піврічний і два головні зональні припливи для UT1; Чандлера, річний і піврічний для полюса — екстрапольована з перенесенням останнього залишку у вікні вперед: клас, який використовує IERS Bulletin A, замість предиктора персистентності, на якому трималися опубліковані горизонти. Оцінено єдиним чесним способом: прогноз на T+h, побудований за швидкими рядками Bulletin A на момент T або раніше, виміряний проти ПІЗНІШЕ опублікованого остаточного значення Bulletin B на T+h, з персистентністю, оціненою на тому самому наборі епох проти тих самих остаточних значень поряд. Цільова епоха без опублікованого остаточного значення відкидається, а не переоцінюється проти швидкого стовпця; періодичний член, який вікно не може обмежити, повідомляється як відхилений із циклами, які воно насправді охоплює; неповне вікно відхиляється, а не тихо скорочуєтьсяMODELLEDТри незалежні маршрути, жоден з яких не є опублікованим показником точності прогнозу. (1) Аналітичний сигнал із відомими коефіцієнтами — єдиний спосіб перевірити періодичний механізм, бо жоден зафіксований ряд не досить довгий, щоб допустити річний член. (2) Підручникове замкнене розв'язання методом найменших квадратів, інша алгебра, ніж у матричного розв'язку, що перевіряється, на реальних рядках. (3) Справжні архівні рядки прогнозу Bulletin A, які публікує реальний продукт 2026, порівняні за часом випередження як статистика УЗГОДЖЕНОСТІ і явно не як похибка: 0,256 мс на 1 добу, 0,695 мс на 2 доби, 1,252 мс на 3 доби, з дрейфом до 3,885 мс на 9 діб. Тож це КЛАС Bulletin A, близький на короткому випередженні, а не сам Bulletin A. Залишки «прогноз проти остаточного» є реальними виміряними величинами за реальними рядками IERS, але їхню величину перевірено лише за НАПРЯМКОМ порівняння, ніколи за опублікованим IERS показником точності: читання реального продукту є походженням, а не оракулом. MEASURED: на добу 1 операційний предиктор дає 3,78 м похибки в системі Місяця проти 11,39 м у персистентності (3,01×), на добу 2 10,23 м проти 21,72 м (2,12×), на добу 3 20,33 м проти 30,57 м (1,50×) — і він ГІРШИЙ після трьох діб (0,87× на 5 діб, 0,43× на 10), що звіт випускає, а не показує лише горизонти, які йому на користь. НЕ відтворено: авторегресійний фільтр залишків і табличну редукцію зональних припливів; 365-добове операційне вікно недосяжне з наявними даними, а АРХІВНОЇ ранішої версії ряду в цьому репозиторії НЕМАЄ, тож таблиця архівних версій не повідомляє жодних рядків, а не оцінює синтезований. 0,30 зовнішнє порівняння, висновок (лишається MODELLED): за оцінки проти тих самих остаточних значень на 178 архівних випусках Bulletin A з типовим 15-добовим вікном крейта MAE UT1 предиктора становить від 2.4x до 12.6x від Bulletin A на 1–10 діб (поріг 1.5x) і 5,32 мс на 10 діб, поза діапазоном 0,36–3,13 мс 2nd EOP PCC; полюс становить від 1.5x до 1.85x від Bulletin A (у межах 1.5x лише на 6 і 7 діб); не виконуються 19 із 21 попередньо зареєстрованих умов. Виправлення до маршруту (3): рядки продукту 2026, з якими порівнювали, мають позначку IERS I (виміряно), а не P, тож ці показники узгодженості стосуються виміряних швидких значень, а не прогнозів Bulletin A. 0,30 раунд 2, предиктор на основі найменших квадратів плюс авторегресії з аналітично вилученими зональними припливами, проти 178 архівних випусків Bulletin A за порогом раунду 1 (попередньо зареєстровано c93605b4), висновок (лишається MODELLED): виконуються 12 із 21 умов; MAE UT1 становить від 1,73 до 2.11x від Bulletin A на 2–10 діб (поріг 1.5x), тоді як полюс у межах 1.27x на кожному випередженні. 0,30 редакція: після того як офлайн-вхід класифіковано за позначкою IERS, показники узгодженості маршруту (3) стосуються реальних прогнозів Bulletin A (0.256/0.695/1.252/3.885 мс на 1/2/3/9 діб проти швидких рядків -> 0.133/0.421/0.839/2.786 мс)frame_eop, realtime_frame_eop
Місячний датум системи відліку з кампанії спостереженьСемипараметровий датум Гельмерта, поширений із СИМУЛЬОВАНОЇ КАМПАНІЇ СПОСТЕРЕЖЕНЬ, а не відновлений із введеного перетворення. Земні станції спостерігають за джерельним каталогом місячних поверхневих маяків за явним розкладом; частинні похідні затримки місячного VLBI накопичуються в інформаційну матрицю Фішера координат маяків і проводяться крізь дизайн Гельмерта A = [I₃ | [p]ₓ | p] у H = AᵀM_bA, тож повідомлена точність датума є функцією програми спостережень — точно лінійною за сигмою затримки та монотонною за дугою через лібрацію, яку звіт ВИМІРЮЄ. Дефект датума є предметом, а не виноскою: ранг, дефект, число обумовленості, спектр, ненаглядні напрямки в семипараметровому базисі, найслабший напрямок навіть за повного рангу та частка кожного параметра в ньому випускаються за кожного прогону, а будь-який параметр, який кампанія не обмежує, публікується як NULL зі статусом. Кореляція похибок маяків MEASURED, а не припускається — точно нуль за нерухомих станцій і виводиться з її ціною, коли станції оцінюються. Можна запустити як тип сценарію lunar-frame-campaignMODELLEDЗамкнені тотожності та незалежний внутрішньорепозиторний маршрут без заявленого зовнішнього оракула. Дизайн Гельмерта — єдина нова похідна в модулі — виведено заново центральною скінченною різницею lunar_frame_realise::apply_helmert, шляхом, що не має спільного виразу з аналітичною формою. Накопичення, яке він поєднує, належить lunar-vlbi-fim, якобіан якого диференціюється скінченними різницями проти lunar_vlbi::vlbi_delay_s там, а ядро лінійної алгебри окремо зовнішньо прив'язане до numpy у tests/fim_observability_reference.rs — цей рядок не запозичує жодного з цих статусів. Фізичний оракул структурний, а не числовий: частинна похідна затримки маяка — це ближньопольова РІЗНИЦЯ двох майже паралельних одиничних векторів, тож найгірше визначений напрямок переміщення МАЄ бути напрямком у системі, жорстко пов'язаній із тілом, до Землі, і тест стверджує обчислену відповідь проти окремо виміряного напрямку. MEASURED: сигма переміщення, отримана з кампанії, 6,3975 м проти похибки відновлення 0,3125 м у сценарії з введеним перетворенням (20,5× щільніше), тоді як обертання і масштаб ідуть У ПРОТИЛЕЖНИЙ бік, у 2,32× і 13,5× слабше — шлях із введеним перетворенням припускає одну ізотропну сигму і тому рівномірно розподіляє свою похибку на сім параметрів, чого спостережувана затримки не робить. Ранг 7/7, але обумовленість 3.8e5, з одним напрямком, що на 99,57 % є чистим переміщенням до Землі і в сорок разів гірший за будь-який інший. ЧОГО ЦЕЙ РЯДОК НЕ СТВЕРДЖУЄ: що показник кампанії правильний в абсолютному вираженні. Він встановлює лише, що показник тепер ВИВОДИТЬСЯ з розкладу, геометрії та моделі похибок, а не із закладеної відповіді. Лишається ReferenceImpl/MODELLED: опублікованої пари місячної кампанії VLBI і коваріації датума не існує, мережа станцій і сигма затримки є ILLUSTRATIVE вхідними даними (каталог маяків джерельний, кампанія ні), спостереження вважаються незалежними, тоді як тропосфера і годинник реальної сесії корелюють між сусідніми скануваннями, а ефемериди, годинники, тропосфера та параметри орієнтації Землі ЗАФІКСОВАНО. 0,30 зовнішнє порівняння, висновок (лишається MODELLED): з кожним рядком якобіана маяка, перебудованим за світловими часами NAIF SPICE (DE440, ITRF93, MOON_ME; попередньо зареєстровано 50863551), розклад, ранг Гельмерта, сигми датума (у межах 4.7e-3), обумовленість, найслабший напрямок (0,07 град), розгортка лібрації та порядок дуг збігаються на шести сценаріях у межах попередньо зареєстрованих 1 % / 0,2 / 0,05 град. NumPy на зафіксованому якобіані рушія збігається до 3e-14 за нерухомих станцій. За оцінюваних станцій він відрізняється на 6.8e-6 проти попередньо зареєстрованих 1e-9, чия передумова щодо числа обумовленості була хибною (обумовленість Гельмерта 2.1e8; незалежні маршрути NumPy розходяться на 3e-6; внесок від запасного псевдооберненого рушія 1e-9 не виключено), тож рядок не підвищено за цією попередньою реєстрацією. 0,36 перереєстрація за порогом, масштабованим за обумовленістю (попередньо зареєстровано b887eb05; t = max(1e-12, 10 kappa 2^-53) з обумовленості спільної інформації та її редукції Гельмерта), висновок (лишається MODELLED, NOT MET): крок 0 ВИКЛЮЧАЄ запасне псевдообернене для розриву 6.8e-6 (жодна матриця вище матриці Гельмерта не переходить на запасний варіант на шести початкових сценаріях, найтісніший запас — у 2,6 раза), гілка SPICE далі тримається на всіх шести, а NumPy збігається в межах порога на шести з восьми сценаріїв (типовий, дві дуги, 3x сигма затримки, колінеарний дефект і свіжий прогін із нерухомими станціями на 2026-12-01; найгірше 0,13 свого порога). Вона не проходить на stations_estimated (сигми датума до 6.8e-6, обумовленість 9.1e-6, норма з відкинутою незалежністю 3.5e-6, проти t = 5.9e-7), а на свіжу дату південнополярний маяк не має спостережень, тож інформація маяка має дефіцит рангу (запасне псевдообернене вище матриці Гельмерта в обох свіжих сценаріях), і незмінений оракул NumPy не може обчислити stations_estimated_fresh (сингулярна матриця). Результати: docs/design/evidence/mr05-lunar-datum-cond/RESULTS.mdlunar_frame_campaign (composing lunar_vlbi, lunar_vlbi_fim, fim, lunar, lunar_frame_realise, frames, cio, lunar_frame)
Незалежне підтвердження порогу довжини цисмісячної дуги іншим оцінювачемПакетний оцінювач методом найменших квадратів, що ВІДНОВЛЮЄ початковий стан головного апарата за симульованими міжсупутниковими вимірюваннями на зростаючих префіксах тієї самої сітки епох, яку використовує таблиця «ранг проти дуги», із частинними похідними вимірювань, узятими як центральні скінченні різниці складеної прямої моделі. Він не споживає нічого з механізму, яким вимірювали поріг, — ні аналітичного рядка якобіана, ні варіаційної матриці переходу стану, ні сингулярного чи власного розкладу, ні допуску рангу, ні фільтра квадратного кореня інформації — і поділяє лише динаміку, початкові умови, скалярну спостережувану та сітку епох, кожну з яких названо у випущеному документі. Два критерії, обидва перебираються: безшумне відновлення (аналог рангу) і оцінюваність за Монте-Карло (аналог оцінюваності, виміряний проти відомої істини, а не передбачений за коваріацією). Можна запустити як тип сценарію cislunar-arc-recoveryMODELLEDОкремий оцінювач у цій кодовій базі з іншим алгоритмом і непересічним шляхом коду: нелінійний зважений метод Гауса–Ньютона зі скінченно-різницевими частинними похідними, чий вердикт читається як виміряна похибка відновлення стану в км і мм/с. Він не має спільного виразу з маршрутом граміана за рангом і коваріацією, а розділення ПРИМУСОВО забезпечено охоронцем за вихідним текстом, а не просто заявлено. MEASURED на опублікованій плоскій сітці DRO: критерій ОЦІНЮВАНОСТІ CORROBORATED — виміряна межа Монте-Карло 5,739130 год проти формальної 5,739130 год (відношення 1,0000), а виміряний RMS відтворює формальну 1σ на 21 довжині дуги з геометричним середнім відношенням 0,9804. Критерій РАНГУ NOT corroborated як межа відновлюваності: оцінювач відновлює з 0,782609 год проти 2,086957 год у граміана, відношення 0,375, а на 1,826087 год — останньому префіксі, який зчитування рангу оцінює в 3 із 4 — відновлює до 1.96e-5 апріорного зміщення. Межа відновлення нерухома на трьох порядках її власної межі, тоді як поріг рангу охоплює від «ніколи» до 0,782609 год на чотирьох порядках rel_tol, а обидва збігаються точно при rel_tol = 1e-8. Спершу цей діапазон було записано як такий, що сягає 0,260870 год; цей показник був АРТЕФАКТОМ, породженим зчитуванням рангу, яке зарахувало 4 напрямки з 2 рядків вимірювань нижче шумової підлоги f64, і його тут виправлено, а не залишено. Зчитування рангу тепер обмежене нерівністю Сильвестра з випущеною причиною, а виправлений діапазон насичується точно на дузі, де незалежний оцінювач відновлює, що зміцнює перехресну перевірку цього рядка, а не послаблює її: опублікований 1e-6 — це консервативна КОНВЕНЦІЯ сингулярних значень, а не твердження про відновлюваність. Та сама картина в просторі: NRHO 9,290323 год проти 21,677419 год, гало 22,978723 год проти 39,829787 год, причому оцінюваність збігається точно в обох. Шестистановий плоский DRO не відновлюється на жодній дузі, незалежно відтворюючи структурний дефект датума цієї сім'ї від оцінювача, якому про нього нічого не казали. НЕ прив'язано зовні — динаміку та початкові умови поділено з аналізом, що перевіряється, і жоден публічний набір даних не публікує такого порогу — тож ExternalDataset відхиленоcislunar_arc_recovery, batch_ls
Місячний обсяг обслуговування за реальною отриманою геометрією орбітального угрупованняПриймає табличну селеноцентричну ефемериду станів (обчислення ядра SPK/BSP) або опубліковане визначення орбітального угруповання за ephemeris_path, виконує щодо неї ту саму розгортку покриття / DOP / рівня захисту та випускає вимогу до дальномірної точності σ_URE, яку з цього випливає, ПОРЯД зі змінними ілюстративними кеплеровими та збуреними результатами, а різницю подає як окрему іменовану величину. Кожен показник несе клас походження, що розрізняє виведене з ядра, виведене з опублікованих елементів і змодельоване, тож їх ніколи не можна сплутати в подальшому цитуванніMODELLEDГЕОМЕТРІЯ зовнішня і хешована: три фікстури, чиї числа походять лише з документів, отриманих із URL, датою отримання та SHA-256, відтворювані зафіксованими генераторами, які перевіряють хеш першоджерела й ПЕРЕРИВАЮТЬСЯ, а не випускають число, — еталонне орбітальне угруповання для демонстрації сумісності LANS (NASA NTRS 20250009447, SHA-256 d1b916be…), приклади LNCSS (NAVIGATION 70(4) navi.613, CC BY, SHA-256 4e294687…) і справжня ефемерида польотних апаратів для LRO, Danuri, Chandrayaan-2 та CAPSTONE, обчислена за власними реконструйованими ядрами JPL через Horizons. Жодного ядра місячного навігаційного орбітального угруповання публічно НЕ існує — Moonlight/LCNS, LCRNS і LNSS не літають, і NAIF для них нічого не публікує, — і жодного не вигадано. ВИВЕДЕНА вимога σ_URE НЕ має зовнішнього оракула (ніхто не публікує дальномірної точності, якої місячний HPL у 50 м вимагає на цьому обсязі обслуговування), тому її перевірено за власною алгебраїчною тотожністю та, незалежно, повторним виконанням усієї розгортки за обчисленою вимогою з підтвердженням, що доступність там перемикається. MEASURED: опублікований проєкт із 8 супутників потребує σ_URE 2,9044 м при покритті 100 % проти 0,3591 м при 37,85 % в ілюстративного орбітального угруповання — перегляд опублікованого числа в 8,09× за правилом програми R4. Якісний висновок зберігається (клас LNIS із 30 м усе ще не закриває південнополярний HPL у 50 м), але нестачу було завищено вісім разів. Демо LANS із 5 супутників дає НУЛЬ вибірок рівня захисту — п'ять супутників не можуть забезпечити шість у зоні видимості, яких потребує набір гіпотез однієї несправності, — і поле вимоги ВІДСУТНЄ, а не вигадане; те саме для чотирьох реальних апаратів при покритті 0 %. InternalConsistency — чесний різновид: ВХІДНІ дані зовнішні й хешовані, але величина, про яку цей рядок, перевірена лише проти самої себе. 0,30 зовнішнє порівняння, висновок (лишається MODELLED): проти статистики прикладів LNCSS з navi.613 на 346 вузлах сітки 4 із 12 статистик доступності виходять за межі попередньо зареєстрованих 2 відсоткових пунктів (випадок A: -4.0, +22,5 і -3.6 п.п.; випадок B: -12.1 п.п.). Імовірні причини: елементи прочитано в хибній системі координат, двотільна задача Кеплера на 15 діб проти непризначеної в статті моделі сил і сітка, яку не відтворити з тексту. Половину PDOP оцінити не вдалося (LANS не друкує числової статистики); порівняльний тест зафіксовано проігнорованим. 0,30 раунд 2, висновок (лишається MODELLED): проти оракула Orekit 12,2 / Hipparchus 3,1, що обчислює весь звіт (поширення Orekit, видимість і DOP за DOPComputer, рівні захисту MHSS, складені в Hipparchus, вимога, розв'язана для кожної вибірки; попередньо зареєстровано d3ce97b2) на всіх п'яти отриманих геометріях і двох сітках, 155 зі 160 значень збігаються в межах попередньо зареєстрованих порогів (2 п.п., 5 %, 1 %), включно з вимогою sigma_URE для LNCSS A і C (3,879072208 м з обох боків для випадку A) і відсутньою вимогою для LANS та орбітальних апаратів. LNCSS B на щільній сітці не проходить за статистиками найгіршої вибірки (sigma_required 0,000923 проти 0,001511 м, hpl_max 1.63e6 проти 0.99e6 м), де майже вироджені геометрії (PDOP близько 1e6) підсилюють метровий збіг положення; його вимога за p95 збігається (1,6343 проти 1,6357 м). Вимога за найгіршою вибіркою некоректно поставлена на виродженій геометрії. Проти navi.613: 4 із 12 усе ще поза 2 п.п. (зафіксовано)lunar_ephemeris, lunar_service
Одиниця й походження оголошені для кожної величини у звітіМашиночитна схема, що задає одиницю, клас походження та визначення для кожного числового поля кожного звіту сценарію, плюс єдина глобальна перевірка, яка запускає кожен зареєстрований тип сценарію й завершується помилкою, якщо випущене числове поле не має чогось із цього. Словник походження закритий, і кожен клас несе рівень доказів, причому два класи навмисно зіставлено з inherits-scenario-label і depends-on-input, а не наділено рівнем, якого клас не визначаєMODELLEDСам випущений документ: кожен числовий листок має зіставлятися із записом у власному блоці units цього документа. Зовнішнього реєстру одиниць, щоб перевірити ОГОЛОШЕНУ одиницю, немає, тож оголошена одиниця є перевіреним твердженням, а не підтвердженим, — перевірка підтверджує ПОВНОТУ та КОРЕКТНІСТЬ ФОРМИ, а не істинність, і Validated було б хибним, бо ніщо зовнішнє не підтверджує, що m є правильною одиницею для поля з назвою _m. Незалежну перехресну перевірку за суфіксом назви було виконано над 1 434 полями, описаними НА ТОЙ МОМЕНТ: із 691, що мають суфікс з одиницею, 40 розходяться з оголошеною одиницею, і всі 40 пояснені (суфікси «за секунду», мінімуми, секунди апертури, ньютон-метри проти суфікса, схожого на нанометр), тож хибної одиниці не виявлено. Цю перехресну перевірку відтоді не повторювали, а покриття зросло за її межі — показник залишено таким, яким його справді виміряли, а не перераховано за поточним підсумком. На момент тієї зміни (0.27.0) покриття зросло з 7 із 56 типів до 60 із 61 і з 389 із 1354 полів до 1 742 із 1 744 (docs/field-units-schema.json, який актуальним тримає перевірка застарілості). НЕ лишається жодного непокритого типу (стеля 0, FUT-28, 0,36): останнім був sweep-nd, у якого два стовпці задаються викликачем, тож їхні одиниці — це дані; тепер їх описано як mixed - see note, а одиницю кожного положення читають із власної таблиці одиниць РОЗГОРНУТОГО пакета в key_units і metric_units (або беруть з оголошеного unit осі, який має збігатися з одиницею пакета, коли є обидва; null, коли немає жодного, — заявлено, а не вгадано). cislunar-observability був попереднім і зійшов зі списку, коли його випущений документ дістав блок units: закріплення адитивності, яке називало units забороненим ключем, тепер ДОВОДИТЬ, що додавання адитивне: якщо блок прибрати назад, документ усе одно хешується до двох констант, зафіксованих до його появи, тож випущене значення, що зрушилося під додаванням, усе одно не пройде. Робота також виявила дванадцять дефектів одиниць чи документації в наявному коді, про які повідомлено, а не виправлено за R1field_schema
Місячний датум системи відліку з РЕАЛЬНОЇ кампанії спостереженьКоваріація семипараметрового датума Гельмерта, у якій два симульовані входи замінено виміряними: розклад — це епохи наземної передачі 337 архівних нормальних точок місячної лазерної локації ILRS (2015-04-08 – 2015-06-27, Grasse MeO 7845 і Matera MLRO 7941, усі п'ять масивів ретрорефлекторів), а вага кожного спостереження — власна архівна точність тієї точки bin_rms/√n_raw — медіана 5,13 мм однонаправленої дальності, зчитана з файла. Координати станцій IERS ITRF2020, координати рефлекторів JPL DE430, таблиця 7. Можна запустити як тип сценарію lunar-llr-datum. Підтверджене твердження (0,36) вузьке: на аналітичному типовому шляху обчислення коваріації датума збігається з незалежним оракулом SPICE за світловим часом і NumPy на свіжих виміряних нормальних точках; це не точність LLR і не доказ того, що аналітичний Місяць точнийVALIDATEDЗамкнені тотожності, незалежний внутрішньорепозиторний маршрут і, починаючи з 0,36, незалежний бібліотечний оракул SPICE та NumPy на свіжих виміряних даних (нижче); опублікованої пари коваріації датума місячної LLR, з якою можна було б звіряти, не існує, тож жодна точність не заявляється. Єдина нова похідна — частинна похідна дальності за положенням рефлектора в системі, жорстко пов'язаній із тілом, — виведена заново центральною скінченною різницею двостороннього світлового часу, який вона диференціює, шляхом, що не має спільного виразу з аналітичною формою. Фізичний оракул структурний: частинна похідна дальності Є подвоєним променем зору, тож координата в системі тіла вздовж середнього напрямку до Землі має визначатися значно краще за дві координати в площині неба, яких досягає лише лібрація, — виміряно від 50,7× до 71,7× для п'яти масивів проти розгортки лібрації, яку звіт вимірює незалежно, з друком і ізотропного прогнозу для малих кутів, і поперечної анізотропії, що пояснює розрив. ЩО ЗМІНИЛОСЯ: розклад, кількість спостережень і вага кожного спостереження тепер виміряні; використано 337 із 349 архівних точок, а 12, що не використані, пропущено і підраховано, бо ITRF2020 не містить положення для Apache Point. MEASURED: сигма переміщення датума 1.851746e-2 м проти 6,3975 м у СИМУЛЬОВАНОЇ кампанії (345×), обертання 36×, масштаб 24× — відношення між мережею лазерної локації й мережею затримок VLBI, тож це висновок, а не перевірка. Ранг інформації рефлектора 15/15 зі зв'язком між масивами точно 0; ранг Гельмерта 7/7, обумовленість 2.4e4. ЧОГО ЦЕЙ РЯДОК НЕ СТВЕРДЖУЄ: що показник правильний в абсолютному вираженні. Реальний розв'язок LLR одночасно оцінює місячну орбіту, фізичні лібрації, орієнтацію Землі, координати станцій, а також приливні та релятивістські параметри й повідомляє дециметри (власні 0.12–0.27 м таблиці 7 DE430), тоді як ця межа набагато менша; це межа Крамера–Рао для заданого зменшеного набору параметрів, а не точність. Поза підтвердженим твердженням (змодельовано, не підтверджено): ефемерида центра Місяця та орієнтація тіла IAU 2015 змодельовані, а тропосфера, припливи, ексцентриситет станції, рух полюса, UT1-UTC, релятивістська затримка та годинники станцій відсутні. Їхній сукупний розмір ОПУБЛІКОВАНО, а не обґрунтовано — різниця «спостережене мінус обчислене» однонаправленої дальності 156 494 м RMS на 337 точках, — а їхній вплив на коваріацію ОБМЕЖЕНО, а не обґрунтовано: повторне розв'язання всього датума з нахилом кожної частинної похідної на 0,1° (удвічі більше за виміряний нахил ефемериди в найгіршу епоху, зі знаком, що чергується) зсуває результат на 0,288 %. ЗОВНІШНЯ ПЕРЕВІРКА (0,30 раунд 2, попередньо зареєстровано 6b27964a), висновок (лишається MODELLED): двосторонній світловий час SPICE (DE440, ITRF93, місячна орієнтація DE440) зі скінченно-різницевими частинними похідними та обернення в numpy на тих самих 337 виміряних нормальних точках і вагах збігаються за обліком, обома рангами, нульовим зв'язком, залишковим RMS (2.1e-5) і 15 із 16 показників коваріації. Сигма переміщення за z на 1,03 % вища за попередньо зареєстрований поріг 1 %. З центром Місяця з DE440 вона падає до 0,049 % (c51f8b2, бачені дані), а на свіжих нормальних точках 2019 датум із Місяцем за ядром тримає кожен поріг (рядок «…, kernel Moon centre»), де аналітичний Місяць теж лишається в межах порогів (найгірше 3.8e-3, лише інформація), тож це порівняння не розрізняє моделі Місяця. ПРОГІН АНАЛІТИЧНОГО ШЛЯХУ НА СВІЖИХ ДАНИХ (0,36, попередньо зареєстровано 31f5283 до того, як було отримано будь-яку точку): незмінений оракул SPICE і NumPy на 151 використаних нормальних точках EDC CRD v2 за 2025-04..06 (рік, який жоден тест не використовував; файли отримано заново, а оракул повторно запущено незалежно, див. NOTICE фікстури) за тими самими порогами: облік, ранги, лічильники за масивами та нульовий зв'язок збігаються; сигми й норми найгірше 1.11e-3 (поріг 1 %), обумовленість 8.95e-4 (2 %), відношення поперек/вздовж найгірше 1.79e-3 (2 %); SPICE O-C 10,79 м. VALIDATED за цим доказом лише як перевірка бібліотеки (Library) обчислення коваріації; аналітичний залишковий RMS на цьому зрізі становить 222 км, тож пороги не розрізняють моделі Місяця (як і в рядку про ядро). Результати: docs/design/evidence/mr06-llr-analytic-fresh/RESULTS.mdlunar_llr, realdata::llr_crd (composing fim, cio, frames, ephem, lunar_frame, lunar_frame_campaign)
Геодезія місячної опорної станції: доданий ретрорефлектор і маяк VLBI проти датума з п'яти масивівНеобов'язкові входи extra_reflectors і extra_beacons сценарію lunar-llr-datum додають блок station_geodesy: інформація Гельмерта п'яти масивів із архівного зрізу місячної лазерної локації плюс інформація, яку додають до семипараметрового датума доданий ретрорефлектор (локований на архівних епохах нормальних точок, коли станція локації над своїм горизонтом, кожна з архівною вагою тієї нормальної точки) і доданий маяк VLBI (спостережуваний мережею та розкладом lunar-frame-campaign з нерухомими земними станціями через частинні похідні затримки lunar-vlbi-fim) у заданих місцях; після повторного розв'язання повідомляються 1-сигма кожного параметра Гельмерта до і після, їхнє відношення, норми до і після та крайні власні значення різниці Фішера. Якщо вхід відсутній або порожній, звіт не змінюєтьсяMODELLEDЛише внутрішня узгодженість: кожне додане місце — окрема точка, а лазерна дальність чи затримка VLBI із нерухомою станцією торкається однієї точки, тож її інформація A_p^T M_p A_p невід'ємно визначена й додається; тест перевіряє різницю Фішера та кожну дисперсію за цим. Результат для п'яти масивів — це наявний рядок на реальних даних, і він не змінюється. Доданий рефлектор повторно використовує епохи, заплановані для п'яти наявних масивів, — ILLUSTRATIVE розклад, а мережа, розклад і сигма затримки доданого маяка — це ILLUSTRATIVE вхідні дані lunar-frame-campaign; місце — ILLUSTRATIVE південнополярне положення. Південнополярне місце бачить Землю низько над горизонтом або не бачить зовсім, що виражають наявні тести кутів огляду; жодне з місць не локується безперервно. Показники — це межі Крамера–Рао для зменшеного набору параметрів, а не розв'язаний датум і не твердження про жодну реальну станціюlunar_llr (over lunar_frame_campaign::beacon_information, schedule_for and solve_datum_information, lunar_vlbi_fim)
Місячний датум системи відліку з РЕАЛЬНОЇ кампанії спостережень, центр Місяця за ядромКоваріація семипараметрового датума Гельмерта lunar-llr-datum з архівних нормальних точок ILRS і їхніх виміряних ваг, на шляху за ядром: геоцентричний центр Місяця зчитується з JPL DE440 власним читачем ядер рушія (planetary_kernel_path; lunar_llr::llr_geometry_with, ephem_provider::KernelEphemeris). Від аналітичного рядка відрізняється лише центр Місяця; орієнтація IAU 2015, відсутні рух полюса й UT1, каталоги, правила відбору, ваги та лінійна алгебра ті самі. Підтверджене твердження лише таке: коваріація датума цього шляху збігається з незалежним оракулом SPICE та NumPy на свіжих, небачених нормальних точках. Порівняння не розрізняє моделі Місяця і не перевіряє центр Місяця: на тому самому зрізі аналітичний Місяць теж проходить кожен поріг, попередньо зареєстровану мутацію (ядро Місяця, прочитане на одну годину пізніше) не виявлено, а центр Місяця, хибний приблизно на 4 650 км, теж проходить (див. текст оракула). Це не доказ того, що Місяць за ядром покращує датум. Можна запустити як сценарій lunar-llr-datum із planetary_kernel_path (і normal_points_dir для іншого зрізу)VALIDATEDNAIF SPICE Toolkit N0067 (spiceypy 8.2.0, MIT): двосторонні світлові часи на DE440, орієнтація Землі ITRF93 і місячна орієнтація DE440 (MOON_ME) зі скінченно-різницевими частинними похідними з кроком 100 м, а також інформаційна матриця й обернення numpy 2.3.5 (BSD-3-Clause, LAPACK): незмінений генератор порівняння аналітичного рядка (6b27964a), запущений на свіжому зрізі (нормальні точки EDC CRD, 2019-04..06), попередньо зареєстрованому в 830d945a до того, як було отримано будь-що з нього, за порогами аналітичного рядка (1 % для сигм і норм, 2 % для обумовленості та відношень, точний облік, ранги та зв'язок) і його самоперевіркою оракула (SPICE O-C 10,86 м < 100 м). Кожна величина тримається, найгірше 7.6e-5. Мутації: заплановану годинну затримку Місяця НЕ виявлено (коваріація залежить від розкиду променів зору, а не від їхнього часу); структурна мутація, обрана згодом і розкрита як така, — вилучення частинної похідної низхідної гілки — порушує кожну сигму. Висновок: на цьому зрізі аналітичний Місяць теж проходить (найгірше 3.8e-3), тож поріг не розрізняє моделі Місяця, і це підтверджує коваріацію на свіжих даних, а не покращення Місяцем за ядром. Перевірка інтегратора при згортанні (не попередньо зареєстрована): ядро Місяця, прочитане щодо барицентра Земля–Місяць замість Землі (залишковий RMS 4 649 км), і епоха ядра без TT мінус UTC (69 с; залишок 2,6 км) обидва все ще проходять кожен поріг, тоді як відкидання sqrt(n_raw) із виміряних ваг порушує всі 16 величин у смугах; порівняння чутливе до ваг, частинних похідних і лінійної алгебри, а не до центра Місяця. Обидві сторони читають DE440: це підтверджує обчислення на DE440, а не саму DE440. Поза твердженням: точність LLR (межа Крамера–Рао для зменшеного набору параметрів)lunar_llr (llr_geometry_with, LunarLlrDatumScenario); ephem_provider (KernelEphemeris); naif_kernel
Вбудована аналітична ефемерида Місяця — її ЗАЯВЛЕНУ МЕЖУ ТОЧНОСТІ перевірено за реальними данимиephem::moon_position, низькоточний геоцентричний місячний ряд, на який крейт переходить, коли ядра DE/SPK немає, виміряний проти реальної місячної лазерної локації та проти опублікованої планетарної ефемериди на тому самому проміжку. Цей рядок підтверджує межу, яку модуль заявляє про себе, а НЕ точність: підтверджено, що ряд не гірший, ніж він каже, а не що він хорошийVALIDATEDДВА незалежні зовнішні набори даних, що не мають нічого спільного. (1) 337 архівних нормальних точок місячної лазерної локації ILRS (EUROLAS Data Center, DGFI-TUM, 2015-04-08 – 2015-06-27, п'ять масивів ретрорефлекторів, зафіксовані з SHA-256 для кожного файла та скриптом повторного завантаження й перевірки): різниця «спостережене мінус обчислене» однонаправленої дальності 156 494 м RMS, з координатами станцій IERS ITRF2020 і координатами рефлекторів JPL DE430, таблиця 7, тож залишок визначає ряд центра Місяця. (2) Геометричні геоцентричні стани Місяця JPL Horizons на тому самому проміжку: 112 567 м RMS радіально, 195 655 м RMS вектора, найгірша епоха 360 324 м = 0,0536°. Залишок дальності реагує на РАДІАЛЬНУ частину похибки ефемериди, тож (1) і (2) — це та сама величина, досягнута двома шляхами, і вони збігаються в межах 1,39×, що й дає сценарію lunar-llr-datum право відносити свій залишок на ефемериду. Власна документація модуля рушія заявляє ~0,3° / ~кілька·10² км; обидва вимірювання в цих межах, кутове твердження із запасом у 5,6×. ОБЛАСТЬ, заявлена так, щоб жоден читач не міг її помилитися: це підтверджує заявлену МЕЖУ, а не показник точності. Ряд лишається непридатним для будь-якого застосування, що потребує кращого за ~1e5 м, і це обмеження є змістом рядка не менше, ніж збіг. Відтворюється офлайн зафіксованими скриптами отримання й перевіркиephem (moon_position), lunar_llr, realdata::llr_crd
Цілісність перевірки — зелений результат, що означає те, що кажеТри структурні запобіжники над самим процесом верифікації, кожен закриває клас дефектів, який потрапляв до канонічної перевірки як нестабільний або хибний червоний результат. (1) Кожен сконструйований тимчасовий шлях у вихідному коді Rust має містити унікальну для виклику складову; ідентифікатор процесу відхиляється, бо cargo запускає тести бібліотеки як паралельні потоки ОДНОГО процесу, і pid спільний для всіх. (2) Кожне побайтове закріплення чи закріплення за хешем має заявляти поруч із собою або в заголовку свого модуля, що воно охоплює і що навмисно виключає, — щоб наскрізна зміна могла з першого погляду визначити, які закріплення в межах області, а які непомітно стали детекторами змін на весь репозиторій. (3) Зелений результат можна заявляти лише за ПОВНИМ набором: scripts/gate.sh запускає cargo test --all, фіксує справжній код завершення без жодного конвеєра на шляху й записує квитанцію з комітом, кількістю інтеграційних бінарників, кількістю тестів і тривалістю; перевірка перед надсиланням відмовляє в надсиланні, якщо коміт не названо жодною чинною квитанцією, на чистому дереві. Відтворюваність вибірково перевіряє окремо scripts/check-repeatability.sh, який запускає набір бібліотеки N разів і завершується помилкою, якщо множина пройдених тестів відрізняється.MODELLEDЗамкнена форма: кожен запобіжник запускається на фіксованому відомо хибному фрагменті, що має спрацювати, і фіксованому відомо правильному, що має мовчати, — обидва є літеральними константами, на які детектор не може впливати. Два відомо хибні фрагменти — це дефекти F22 і F25 у їхній первісній формі. Це ВНУТРІШНІЙ оракул, і рядок відповідно MODELLED: він доводить, що запобіжники відрізняють дефект від його виправлення, а не що описані ними класи вичерпні. Їхні заявлені сліпі зони — спільний стан, що не є шляхом, закріплення в короткій іменованій константі, рідкісна гонка, яку три запуски не вибирають, і квитанція, яку може підробити будь-хто, хто може записати файл, — виписано в документації модуля tests/source_guards.rs і в заголовку кожного скрипта, а не залишено на відкриття.scripts/gate.sh, scripts/check-gate-receipt.sh, scripts/check-repeatability.sh, scripts/install-gate-hook.sh
Складений PL часу — скалярна спеціалізація MHSS (H=1_N)Скалярний TPL розділення розв'язків для різнорідних джерел; PL визначається шумом підмножини з найгіршим виключенням + зміщенням UTC(k)VALIDATEDP2: numpy 2.3.5 linalg.lstsq і scipy 1.18.1 (norm.isf, norm.sf, brentq) власними алгоритмами повторно обчислюють оцінювачі зважених найменших квадратів для підмножин, загальну коваріацію розділення sqrt(Δ Σ Δᵀ), зміщення та рівень захисту з них на 300 зафіксованих входах (tests/fixtures/tpl_scalar_numpy_oracle); PL збігається в межах 1e-9 відносно (найгірше 1.2e-10), а підмножина виключення, що його визначає, ідентична, допуск зафіксовано до порівняння. Множники, апріорні ймовірності й завищення меж зміщення є входами, а структура рівняння PL (список режимів, розподіл ir/2, проєкція зміщення) є заявленим входом, як і в рядку про ядро рівня захисту місячного ARAIM; підтверджене твердження — це лінійна алгебра та PL на цих входах, а не фізичні величини часового сценарію. Родовід ARAIM Blanch 2015 / Joerger 2014src/integrity/tpl_scalar.rs
Складений PL часу — проходження holdover із початком від P0PL(τ)=max(TPL_handover,HPL(τ)); нижньонапівнеперервний PL(0+)≥PL(0−); K(IR/2) рухомий максимум; показники фази τ/τ³/τ⁵MODELLEDТести властивостей (монотонність, відсутність падіння при передаванні) + лінт показників проти holdover::coast_phase_variancesrc/integrity/composed_pl.rs
Складений PL часу — покриття обвідної holdover, багаторічний режим (tau>=90d)Рухома максимальна обвідна завищує-покриває (без проколювання нуля) реальний метрологічний ряд на кожному перевіреному лагу tau>=90d на непересічному сегменті; короткий tau (<=30d) — розкрита межа ModelledVALIDATEDРяд BIPM Circular-T [UTC-UTC(USNO)] з кроком 5 діб, MJD 56074-60429 (872 точки, API webtai); непересічні підгонка/тест, багаторічне покриття без проколювання нуляsrc/integrity/composed_pl.rs
Складений PL часу — обвідна LIL м.н. (неможливість + узгодженість)Скінченного найгіршого holdover немає (броунівський супремум розходиться); HPL із розподілом за IR узгоджений з обвідною Гартмана–Вінтнера при IR→0MODELLEDЗамкнена тотожність обвідної м.н. √(2Dt·lnln t) + перевірка домінування HPL; шов неможливості Baweja arXiv:2606,24210src/integrity/lil_envelope.rs
Завищення межі зміщення простежуваності різнорідних UTC(k) для цілісностіЗавищення межі зміщення для кожного джерела b = (U/k_cov)·Phi^-1(1-tail/2) + старіння, що роздуває опубліковану розширену невизначеність типу B до виділеного хвоста цілісності; пов'язується з tpl_scalar як bias_sMODELLEDНезалежне відтворення замкненої форми завищення межі за допомогою numpy і stdlib-statistics (InternalConsistency). Ряд BIPM Circular-T [UTC-UTC(USNO)] є лише ЦИТОВАНИМ входом — це ТОЙ САМИЙ ряд, який уже Validated для рядка покриття holdover R4 і тут НЕ перевіряється повторно; відтворення його значень нічого не доводить щодо R2. Глибокий хвіст цілісності — Modelled. 0,30 зовнішнє порівняння, висновок (лишається MODELLED): на файлах BIPM UTC-UTC(k) за лабораторіями (102 лабораторії, 105 024 рядки з опублікованими невизначеностями) завищення межі b = 2,576 u на хвості 1e-2 перевищується в 50,8 % рядків (Клоппер–Пірсон 95 %: від 50,4 до 51,1 %) і більш ніж на 1 % у 101 зі 102 лабораторій. Опублікована u — це невизначеність визначення BIPM величини UTC-UTC(k), а не межа зміщення, яке звично сягає багатьох u; завищення в заданому вигляді не обмежує реального зміщення простежуваності UTC(k). 0,30 раунд 2, завищення реалізованих зміщень UTC-UTC(k), навчене на даних Circular T BIPM за 2015-2022 і перевірене на 2023-2026 (попередньо зареєстровано ca0921a4, об'єднане перевищення не більш як 1e-2), висновок (лишається MODELLED): об'єднане перевищення становить 0,0333 (694 із 20 826 рядків за 82 лабораторіями; 0,0127 без 430 рядків, які за правилом не мають межі). D9 раунд 3, об'єднана ієрархічна межа старіння (utck_bound), попередньо зареєстрована fb475550 і оцінювана проспективно на випусках Circular T від 465: ще не запущено (випуск 465 опубліковано 2026-10-12 з близько 285 тестових значень; попередньо зареєстроване правило 1000 значень потребує випусків до приблизно 468, а запуск потребує архівних файлів лабораторій за 2026-09-30, оскільки BIPM відтоді переписав 87 зі 113)src/integrity/hetero_budget.rs
Корельована перехресна коваріація зміщення простежуваності (розподіл, небезпечний за спільного режиму)Перехресна коваріація зміщень N×N з позадіагональними rho·b_i·b_j для джерел, що ділять реалізатор UTC(k); ДОВЕДЕНО correlated_fused_bias >= independent_fused_bias (наївний незалежний розподіл занижує межу злитого зміщення -> оптимістично -> небезпечно)MODELLEDНезалежне відтворення в numpy перехресної коваріації та нерівності між корельованим і незалежним злитим зміщенням (InternalConsistency). Репрезентативний набір джерел; сценарій Modelled.src/integrity/hetero_budget.rs
Відбілювання GLS за спільного режиму (Ейткен) + тотожність МахаланобісаРукописний Холецький Omega=LL^T і відбілювання прямою підстановкою z=L^-1 r (Cov(z)=I, коли Cov(r)=Omega); квадрат Махаланобіса z^T z = r^T Omega^-1 rVALIDATEDP2: numpy 2.3.5 linalg.cholesky (LAPACK potrf), solve (gesv) та inv на 201 зафіксованих входах SPD (tests/fixtures/gls_whitening_numpy_oracle) перевіряють рукописний множник, відбілений залишок і оператор відбілювання; квадрат Махаланобіса звіряється з solve(Omega, r), який не використовує Холецького, тож тотожність z^T z = r^T Omega^-1 r підтверджується окремим шляхом. Усе в межах 1e-12 відносно (найгірше 7.9e-16), допуск зафіксовано до порівняння. Найбільше число обумовленості — 19,3, тож погано обумовлені матриці не охоплено. Відбілювання GLS/Aitken 1935 — Cited.src/integrity/gls_commonmode.rs
Статистика узгодженості за спільного режиму (несправність спільного еталона, сліпа для розділення)Статистика рахунку (1^T Omega^-1 r)^2/(1^T Omega^-1 1) ~ chi^2_1 для зсуву за спільного режиму, якого розділення розв'язків (контрасти, ортогональні до 1) не бачить; зсув за спільного режиму її збільшує, тоді як попарні розділення лишаються плоскимиMODELLEDНезалежне відтворення статистики в numpy + тест властивості, що введення за спільного режиму її збільшує (InternalConsistency). Сценарій Modelled. 0,30 раунд 2 (попередньо зареєстровано f9aa360d), заблоковано (лишається MODELLED): numpy 2.3.5 LAPACK gesv відтворює значення статистики на 261 зафіксованих випадках (у межах 3.5e-15 для добре обумовлених, 1.2e-9 за обумовленості до 6.1e7); нульовий закон chi-square(1) — цитована теорема, а плоскі попарні розділення — тотожність без виходу рушія для порівняння, тож визначення області очікує рішення власникаsrc/integrity/gls_commonmode.rs
Межа необоротного спільного режиму для залишку поза OmegaСтеля непомітного спільного режиму: найбільша величина несправності вздовж напрямку d, що уникає І розділення (alpha_ss = T_ss / норма відбіленого контрасту d), І статистики спільного режиму (alpha_cm = sqrt(T_cm 1^T Omega^-1 1) / |1^T Omega^-1 d|), повідомляється як min(alpha_ss, alpha_cm). За додатно визначеної Omega два сліпі напрямки (d, пропорційний 1, і 1^T Omega^-1 d = 0) взаємовиключні, тож стеля СКІНЧЕННА для кожного ненульового d; вона нескінченна лише для нульового напрямку або не додатно визначеної Omega. Напрямок поза змодельованою спільною віссю сліпий лише для статистики спільного режиму й обмежений розділеннямVALIDATEDP2: numpy 2.3.5 linalg.solve (LAPACK gesv, LU без Холецького) повторно обчислює alpha_ss (поріг над нормою відбіленого контрасту d після вилучення його коефіцієнта спільного режиму GLS), alpha_cm та їхній мінімум на 256 зафіксованих входах (Omega, d, T_ss, T_cm) (tests/fixtures/gls_outside_omega_bound_numpy_oracle), включно з чистими напрямками спільного режиму, напрямками поза змодельованою спільною віссю та випадками нульового напрямку й не додатно визначеної матриці, що мають давати +inf; попередньо зареєстровано (d070699a; поправка 8a44267b до будь-якого порівняння, що переформулює матричну форму); допуски зафіксовано до порівняння. Текст можливості виправлено за рішенням власника (2026-10-02): у ньому стверджувалося, що межа нескінченна для напрямку поза спільною віссю, що суперечило коду та цьому порівнянню. Те, що ідеалізований детектор з одним контрастом є нижньою межею непомітної величини реального детектора підмножин, лишається Modelledsrc/integrity/gls_commonmode.rs
Ідентифікованість місячного датума — лінійна алгебра декомпозиціїМаргінал за доповненням Шура блока {лунацентр-X, масштаб} у Фішері датума Гельмерта з 7 параметрів: скалярна метрика виродженості lambda_min(S), CRLB початку за X і кореляція початку з масштабомVALIDATEDНезалежний еталон SciPy/NumPy (scripts/gen_datum_identifiability_ref.py -> tests/fixtures/datum_identifiability/scipy_ref.csv): доповнення Шура, його власні значення та обернена матриця 2x2, обчислені незалежною бібліотекою. Обмежено ЛІНІЙНОЮ АЛГЕБРОЮ декомпозиції; ВЕЛИЧИНИ місячної кореляції/CRLB з реальної геометрії лишаються MODELLED.lunar_identifiability
Класифікація нуль-простору місячного датума (адитивність рангу LLR + підняття дефекту лібрацією)Класифікація задачі датума внутрішньої локації: одне спостереження дальності дає ранг 1 (6-вимірний нуль-простір); пара початок за X і масштаб майже нульова, а фізична лібрація DE440 піднімає дефект до нуля, тоді як пара лишається майже виродженоюMODELLEDВідтворена рушієм геометрична структура плюс замкнена тотожність Шура 2x2; узгоджується за СТРУКТУРОЮ з Sosnica et al. 2025 (arXiv:2510,15484), чиї повідомлені величини тут НЕ відтворені. Класифікація структурна; величини кореляції/CRLB за реальної геометрії MODELLED (координати та орієнтація рефлекторів зафіксовані). 0,30 зовнішнє порівняння, висновок (лишається MODELLED): проти Sosnica et al. 2025 кореляція початку з масштабом у Фішері за дальністю (-0.993 / -0.988) у межах 0,05 від опублікованої -0.97, але на власній геометрії статті з п'яти рефлекторів кореляція Гельмерта з 7 параметрів за рівних ваг дорівнює -0.78 (опубліковане значення спирається на похибки окремих рефлекторів, яких стаття не друкує), а CRLB початку (від 0,6 до 1,2 мм за шуму дальності 3 мм) на 96–98 % нижчий за 3,07 см статті за допуску 20 %. Величини не відтвореноlunar_identifiability, lunar_datum
Мультитехнічна інформація про місячний датум (LLR + місячний VLBI + дальність орбітального апарата)Рядки якобіана датума для дальності LLR Земля–рефлектор, диференціальної затримки місячного VLBI на дві станції та дальності орбітальний апарат–маяк за 7-параметровим датумом, зведені в один узгоджено передобумовлений Фішер; демонструє, що позарадіальне (орбітальне / з різноманітністю за глибиною) стеження розриває виродженість початок за X – масштаб, тоді як поперечний VLBI допомагає лише опосередкованоMODELLEDПерехресні перевірки аналітичних частинних похідних кожної техніки проти скінченних різниць (внутрішні); НАПРЯМОК поліпшення є геометричним фактом. Розташування маяків, розклади та шум MODELLED/репрезентативні (див. tests/fixtures/llr_geometry/NOTICE.md).lunar_datum, lunar_identifiability
Провайдер орієнтації місячних головних осей DE440Обертання MOON_PA_DE440 у J2000 на довільних епохах у межах 2014-01-01 – 2030-12-31 TDB геодезичною інтерполяцією R0·Exp(f·Log(R0ᵀR1)) між вузлами зафіксованого добового ряду з 6 209 рядків (функції try_ повертають OrientationSpanError поза ним, безпомилкові панікують; він ніколи не обрізає); вбудовано під час компіляції, тож немає жодного вводу/виводу файлової системи під час виконання, і збірка WASM його несеVALIDATEDNAIF SPICE Toolkit (CSPICE N0067 через spiceypy 8.2.0, запущений як інструмент): pxform з MOON_PA_DE440 у J2000, що обчислює бінарний PCK JPL moon_pa_de440_200625.bpc безпосередньо, з власним кадровим ядром NAIF moon_de440_250416.tf, на 2 000 випадкових позавузлових епохах у вбудованому вікні. Кут обертання між матрицями Kshana і SPICE у межах 1.7e-5 рад (30 м за середнього радіуса 1737,4 км, зафіксовано до порівняння); виміряно найгірше 1.7e-6 рад (3 м), RMS 7.8e-7 рад і найгірше 1.75e-6 рад на 6 000 додаткових епохах, узятих верифікатором. Добові вузли самі витягнуто з того самого ядра (scripts/gen_de440_moon_pa.py, SHA-256 фікстури 3076f81ef95d83f5efa240ed4c7ccb422f109407dde841fcf28d42dc63586eb7), тож це порівняння перевіряє інтерполяцію між ними, і саме це є твердженням. Виявлено цим порівнянням і виправлено: попередня поелементна лінійна інтерполяція з Грамом–Шмідтом зберігала вісь, але не кут обертання 13,2 град/добу і мала похибку до 2.0e-4 рад (340 м) біля чвертьточок; попередній показник близько 14 м походив від запобіжника, що вибирає лише середини інтервалів. Ряд охоплює 2014-01-01 – 2030-12-31, а поза ним видає помилку (раунд 2); його вузли 2024-2025 відтворюються з того самого ядра з точністю 4.3e-13. Позавузлове порівняння SPICE вище охоплює лише 2024-2025, що є підтвердженим вікном; розширені вузли походять з того самого ядра та скрипта, але позавузлово не порівнювалися. Геометричний субстрат для аналізу ідентифікованості, а не продукт орієнтації із субметровою точністюlunar_orientation
Геометричний субстрат датума місячної LLR (рефлектори в головних осях, наземні станції, аналітичні частинні похідні дальності)П'ять ретрорефлекторних масивів на привернутому боці в метрах системи тіла PA та наземні станції LLR у геодезичних координатах; розміщення рефлекторів від системи тіла до інерційної через орієнтацію PA DE440; аналітичні частинні похідні дальності Земля–рефлектор за 4-параметровим датумом; і матриця Фішера лише за LLR, що виявляє виродженість лунацентр-X – масштаб, яка спонукає до 7-параметрового аналізуMODELLEDОбчислення перевіряється внутрішньо: кожна аналітична частинна похідна проти скінченної різниці, а нульовий датум проти номінальної дальності. КАТАЛОГ перевіряється зовнішньо й незалежно: координати головних осей DE440 (Park et al. 2021, tests/fixtures/llr_geometry/de440_retroreflectors_pa.csv) перехресно перевірено за таблицею 6 меморандуму про координати поверхні DE430 (tests/fixtures/lunar_llr/de430_retroreflectors_pa.csv, машинно витягнуто з PDF із перевіреним SHA-256 за допомогою tests/fixtures/lunar_llr/generate_de430_retroreflectors_pa.py), і вони збігаються в межах 1,12 м, тоді як реалізація «середня Земля» тих самих п'яти масивів відрізняється на 672–871 м. СТРУКТУРУ ВИРОДЖЕНОСТІ перевірено за опублікованим результатом: Sosnica et al. 2025, «Definition and Realization of the International Lunar Reference Frame», arXiv:2510,15484, що для системи місячних головних осей повідомляє коефіцієнт кореляції лунацентр-X – масштаб r = -0.97 і те, що LLR не досягає фактичного центра мас Місяця з точністю кращою за 12 см через цю кореляцію. Цей модуль відновлює ту саму структуру (|corr(t_x, scale)| між 0,9 і 0,9999, дефект датума <= 1) з дизайну Фішера лише за LLR. Підтвердження стосується різних ефемерид, а не кругового обходу: стаття поєднує INPOP21a, DE430 і EPM2021, тоді як цей модуль керується лібрацією DE440. НЕ відтворено величину — кореляція тут близько -0.988 проти їхньої -0.97, а 4-параметровий CRLB субміліметровий проти їхньої досягнутої межі у 12 см, бо орієнтацію та координати рефлекторів тут зафіксовано, а там розв'язано. Лише геометрія та структура виродженості; жодного твердження про точність розв'язаного датума. 0,30 зовнішнє порівняння: частини цього модуля з виміряною дальністю (reflectors(), stations_itrf(), розміщення PA DE440 і барицентричний світловий час llr_bcrs_one_way_m) підтверджено у власному рядку, модель виміряної дальності LLR, на 192 нормальних точках ILRS (RMS 2,81 м проти 10 м). Цей рядок лишається MODELLED, бо виміряне порівняння не перевіряє решти його твердження. Каталог геодезичних станцій stations() округлює APOLLO до 0,001 град; із геоцентричним світловим часом він дає 22,7 м на тих самих точках (тест reflector_ranges_against_ilrs_normal_points; 96 м із попередньою поелементною інтерполяцією орієнтації). Аналітичні частинні похідні дальності та Фішер лише за LLR обчислюються через llr_range_m і reflector_inertial з аналітичним рядом Місяця (ephem::moon_position, близько 0,3 град від GCRS) і без світлового часуlunar_llr_geometry
Модель виміряної дальності LLR (каталог рефлекторів, станції ITRF2020, розміщення за головними осями DE440, барицентричний світловий час IERS 2010)Однонаправлена дальність від земної станції до рефлектора для нормальної точки місячної лазерної локації: п'ять рефлекторних масивів на привернутому боці в метрах системи тіла головних осей (PA) DE440 (lunar_llr_geometry::reflectors); станції stations_itrf(), а саме Grasse 7845 і Matera 7941 з ITRF2020 на епоху 2015,0 з їхніми швидкостями, розміщені в геоцентричній небесній системі відліку (GCRS) перетворенням IERS 2010 з рухом полюса за Bulletin A (lunar_vlbi::station_inertial_position_itrs), і APOLLO 7045 у його оприлюдненому оператором наближеному геоцентричному положенні (без швидкості); розміщення рефлектора від системи тіла до інерційної через орієнтацію PA DE440 (lunar_orientation::try_de440_moon_pa_body_to_inertial, що видає помилку поза 2014-2030); і барицентричний світловий час за IERS Conventions 2010, розділ 11,2 (lunar_llr_geometry::llr_bcrs_one_way_m: перетворення станції та рефлектора з тіла в BCRS за рівнянням 11,19 і затримка Шапіро від Сонця, Землі та Місяця за рівнянням 11,17). ВХОДИ, не частина твердження: барицентричні стани й потенціали Землі, Місяця та Сонця (DE440 через SPICE), IERS UT1-UTC і рух полюса, а виміряний круговий обхід, перетворений із TT у TDB. З БОКУ СТЕНДА, не частина твердження: зенітна затримка Мендеса–Павліса з відображенням FCULa у тесті, з висотою з геодезичного каталогу stations(). Не змодельовано: припливи, ексцентриситети станцій, теплові члени рефлекторівVALIDATEDВиміряно: 192 нормальних точок місячної локації ILRS CRD v2 (EUROLAS Data Center, DGFI-TUM, 2024-04 – 2024-06; Grasse 151, APOLLO 32, Matera 9; зафіксовано дослівно із SHA256SUMS). Передбачена однонаправлена дальність порівнюється з c, помноженим на половину виміряного кругового обходу в TDB. Поріг зафіксовано до порівняння: RMS не більш як 10 м на всіх 192 точках І на 160 точках лише двох станцій ITRF2020. Поріг походить із третьої поправки до попередньої реєстрації 3e0f5cdf, зафіксованої до зміни рушія та прогону; показник 10 м незмінний із раунду 1. Виміряно: 2,81 м (середнє 2,67 м) на всіх точках; 2,96 м на станціях ITRF2020; APOLLO 1,94 м; зріз 2015 (349 точок, вторинний) 3,82 м. Мутація: обнулення плечей Шапіро від Сонця дає 10,19 м, що не проходить. Історія, розкрита: 96 м із поелементною інтерполяцією орієнтації; 22,7 м після геодезичної інтерполяції з геодезичним каталогом; 10,94 м зі станціями ITRF2020 і рухом полюса, але геоцентричним світловим часом (спільне зміщення +10,9 м). Барицентричну модель написано після того, як це зміщення побачили. Це опублікована модель IERS 2010, розділ 11,2, без вільного параметра. Третя поправка замінила накладену самим собою умову «все ITRF2020/SLRF2020» після результату BLOCKED. RMS лише за ITRF2020 проходить без APOLLO, який не має розв'язку ITRF2020 чи SLRF2020, а його положення — заявлене оператором наближене. Спільне +2,7 м лишається, нижче порога і без підлаштування. Поріг вільний щодо результату: відсутній сонячний член у 7,6 м усе ще дає 10,19 м. Члени нижче порога не розв'язано один за одним: з обнуленим рухом полюса RMS дорівнює 6,15 м (станції ITRF2020 5,98 м), а з вилученим перетворенням за рівнянням 11,19 — 2,96 м; обидва все одно б пройшли. Швидкості станцій і члени Шапіро від Землі та Місяця ще менші. Порівняння підтверджує зібрану однонаправлену дальність на рівні 10 м RMS і сонячний член Шапіро, а не кожну з перелічених складовихlunar_llr_geometry (reflectors, stations_itrf, ItrfStation, StationCoordinates, llr_bcrs_one_way_m, body_to_bcrs_tdb, shapiro_leg_m, BcrsEvent); lunar_orientation (try_de440_moon_pa_body_to_inertial); lunar_vlbi (station_inertial_position_itrs)
Спряжена калібрувальна неоднозначність місячної системи відліку та шкали часу: спільний нуль-простір просторового датума, зміщення годинника та його швидкостіassemble_coupled_info будує 9-параметровий спряжений Фішер за [t_x, t_y, t_z, s, theta_x, theta_y, theta_z, d_tau, d_alpha]; classify_null_space повертає інваріантну щодо базису декомпозицію його нуль-простору на суто просторові, суто часові та справді спряжені виміри плюс норму зв'язку проєктора від просторового до часового; coupled_marginal_eigs дає маргінал за доповненням Шура {масштаб, зміщення}. На зафіксованих мережах рушій повідомляє датум повного рангу (дефект 0) для коректно поставленого випадку і точний дефект єдиного напрямку швидкості для одноепохового випадку (минулий час нуль, тож швидкість неспостережувана за побудовою) і в обох обчислює маргінал {s, d_tau}.VALIDATEDЩО ПЕРЕВІРЕНО ЗОВНІ, заявлено вузько: kshana обчислює власний розклад за допомогою власного рукописного розв'язувача Якобі (fim::sym_eig), а маргінал — власним псевдооберненим; оракул повторно обчислює обидва за допомогою numpy/LAPACK (np.linalg.eigvalsh/eigh/pinv) через scripts/gen_coupled_gauge_ref.py. Збіг до rel<1e-3 є тому перевіркою АРИФМЕТИКИ ЦЬОГО КРЕЙТА незалежною бібліотекою проти стандартної реалізації, і це і є твердження Validated, і воно цілком. ЩО НЕ ПЕРЕВІРЕНО: збирання та класифікація нуль-простору — це власні правила цього модуля, а оракул відтворює їх із тієї самої специфікації, а не з незалежного джерела: це підтверджує реалізацію, а не правило. Геометрія маяків і орбітальних апаратів Modelled і репрезентативна. Рядки спостережень таки несуть реальну орієнтацію PA Місяця DE440 (lunar_datum::orbiter_range_row_datum7 -> lunar_orientation::de440_moon_pa_body_to_inertial), але це ВХІД, який отримують обидві сторони, а не доказ щодо відповіді, і його записано тут як походження, а не як підставу для статусу — те саме розрізнення, яке main уже проводить у рядку цілісності спільного режиму. Кожне дійсне число рядка округлюється до 6 знаків після коми перед записом network.json, тож обидві сторони читають ідентичні подвійні числа IEEE-754, а єдина різниця, що лишається, — це розв'язувач.lunar_gauge
Виродженість між дальністю та зміщенням годинника в однонаправленій місячній локації та закон дизайну за геометричної різноманітностіВиродженість радіальної дальності вузла та зміщення годинника приймача точна: 1 м відповідає 3,336 нс (одна c-а). Маргінал за доповненням Шура {масштаб, зміщення} (coupled_marginal_fisher) показує, що в геометрично різноманітній мережі двостороння локація піднімає маргінал приблизно в стільки ж разів, як і рівна кількість додаткових однонаправлених даних, тоді як в ідеалізованому режимі єдиного вузла двосторонній підйом більший на порядки. Закон дизайну, що з цього випливає: саме геометрична різноманітність, а не двостороння локація як така, відокремлює масштаб місячної системи відліку від зміщення шкали часу в однонаправленій локації; двосторонній або зовнішній часовий зв'язок потрібен лише в режимі низької різноманітності чи єдиного користувача.MODELLEDМаргінальний Фішер за доповненням Шура спряженої інформаційної матриці, замкненою лінійною алгеброю, перевірений за двома граничними режимами, які він передбачає. Еквівалентність 1 м до 3,336 нс є визначенням метра через c, а не емпіричним результатом. Мережі спостережень — репрезентативна геометрія Modelled, тож закон дизайну є твердженням про подану йому геометрію і не несе жодного твердження про жодну діючу місячну мережу.lunar_gauge
Зв'язок релятивістської швидкості ходу годинника із системою відліку для місячної шкали часуrate_frame_jacobian(_with) дає чутливість швидкості місячної шкали часу до реалізації системи відліку, з екваторіального ефективного потенціалу, обрізаного на степені 2 (GM, екваторіальний радіус, J2, обертання; LunarSurfacePotential): d_alpha/d_scale = L_m, близько +3.1388e-11; d_alpha/d_velocity = -|v_moon|/c^2, близько -1.11e-14 (залежить від часу); d_alpha/d_r_radial = g_eff/c^2, близько +1.806e-17 на метр. Для радіального зсуву датума на 1 м це збурення швидкості близько 1.8e-17 (арифметичний наслідок радіального запису), набагато менше за приблизно 1.7e-11 зсуву швидкості місячної шкали часу щодо TTVALIDATEDПопередньо зареєстровано (5590ab21): L_m проти Ashby і Patla 2024 (AJ 167:149), рівняння (10), 3,13881(15)e-11, зі статейних GM, a_m, omega_m і J2 двох полів степеня 350, які цитує стаття (Bertone et al. 2021, AIUB-GRL350A/B), у межах 1e-4; радіальний запис проти екваторіальної гравітації pyshtools 4.14.1 (BSD-3) тих самих полів у межах 1e-4 (виміряно 8.3e-5 і 6.7e-5, вузький запас); запис швидкості проти місячної швидкості JPL Horizons DE441 у межах 4.5e-3. Замкнена форма степеня 2 опублікованого значення степеня 350 (залишок степенів 3-350; Reference, не P1). Розкрито: результат запису 1 був відомий до попередньої реєстрації, а типовий радіус 1738,14 км у поставці є визначенням поверхні зі статті, прийнятим після раунду 1. Приливні внески та порівняльна смуга лишаються показниками еталонної поверхні Modelledlunar_gauge, lunar_time
Інваріантна щодо базису класифікація спряженого нуль-простору системи відліку та шкали часуclassify_null_space розкладає нуль-простір датума на суто просторову (вимір d мінус ранг U_T), суто часову (d мінус ранг U_S) і справді спряжену (ранг U_S плюс ранг U_T мінус d) частини, плюс норму зв'язку проєктора від просторового до часового p_st_norm, норму Фробеніуса позадіагонального блока проєктора нуль-простору. Кожна з цих величин є функцією ПРОЄКТОРА, а не вибраного базису, тож вони інваріантні щодо будь-якого ортонормованого вибору нульових векторів — і саме тому класифікацію взагалі можна повідомляти.VALIDATEDSciPy/NumPy (BSD-3-Clause; scipy.linalg.null_space і numpy.linalg.svd, LAPACK gesdd) класифікують ті самі зафіксовані матриці за перетином підпросторів, dim null([F; E_T]) і dim null([F; E_S]), і проєктором нуль-простору за SVD, що відрізняється від власних векторів Якобі та формул рангу за Грамом у Kshana; попередньо зареєстровано (d429993c): цілі числа точно, p_st_norm до 1e-9 (P2, незалежна числова бібліотека), з наперед фіксованим порогом рангу та стверджуваним спектральним розривом щонайменше 1e6. Твердження рядка — це класифікація заданої матриці, тож P2 охоплює його повністю. Сконструйовані випадки включають прямі суми, спряжені й змішані нуль-простори та випадкові перебазування; реальні виміри мереж рядка про спряжену калібрувальну неоднозначність тут не перераховуються. Внутрішньокрейтовий тест інваріантності (повернутий нульовий базис дає ідентичні результати) збереженоlunar_gauge
Репрезентативне меню мультитехнічних вимірювань і адитивне правило комбінування ФішераMeasurementBlock містить одну кандидатну вимірювальну кампанію як внесок інформації Фішера 7x7 плюс скалярну відносну вартість; block_from_rows будує її з сирих рядків якобіана датума, тож кожен блок передобумовлюється однаково через lunar_identifiability::assemble_multi_info; combine підсумовує інформацію обраної підмножини, що є правильним правилом, бо інформація Фішера адитивна для незалежних вимірювань; representative_lunar_menu надає детерміноване меню з чотирьох блоків (LLR, поперечний маяк VLBI на лімбі, орбітальний апарат на привернутому боці та орбітальний апарат на зворотному боці). Оптимізатор дизайну з обмеженням бюджету, що споживає це меню, не є частиною цього крейта.MODELLEDАдитивність інформації Фішера для незалежних вимірювань є властивістю замкненої форми, яку тут перевірено проти незалежно написаної поелементної суми та проти інваріантності щодо порядку й монотонності, що з неї випливають. ПРИМІТКА ЩОДО ДОКАЗІВ: комбінатор раніше не мав жодного тесту, а єдиний тест у модулі підсумовував дві інформаційні матриці прямо в тілі, а не викликав його, тож зламаний комбінатор залишив би модуль зеленим; тепер тест іде через combine і не проходить, коли його мутувати. Усі розташування маяків, геометрія орбітальних апаратів, точності окремих технік і відносні вартості — репрезентативні вибори, а не значення місій (див. tests/fixtures/llr_geometry/NOTICE.md), тож кожна метрика виродженості та показник CRLB, досягнуті через це меню, успадковують статус Modelled від lunar_identifiability::decompose.lunar_techniques
Міждоставникова узгодженість місячної системи відліку/динаміки (реальна міжефемеридна)декомпозиція лише за обертанням (6 параметрів: зсув+обертання) розбіжності геоцентричного Місяця за DE440/INPOP21a/EPM2021 на зведену спільну ICRF-прив'язку системи відліку та незведений надлишок орієнтації місячної орбіти (повне 7-параметрове підганяння Гельмерта — окрема публічна функція, яку ця зовнішня перевірка НЕ охоплює: її доказ — внутрішній модульний тест аналітичного відновлення плюс tests/lunar_helmert_fit_cross_check.rs, що погоджує її з Validated точним підганянням Гауса–Ньютона в lunar_frame_realise і фіксує конвенцію протилежного знака обертання між ними)VALIDATEDТри незалежні авторитетні ефемериди — DE440 (JPL), INPOP21a (IMCCE), EPM2021 (IAA RAS) — вибрані через IMCCE calceph, перехресно перевірені незалежним підганянням найменших квадратів за SVD у numpy. ЧОМУ ЦЕ Validated, А lunar_common_mode — НІ, на тих самих трьох ефемеридах: тут повідомлювана величина Є властивістю опублікованих даних — їхньою взаємною розбіжністю, — тож ефемериди є оракулом, а не входом. У lunar_common_mode та сама розбіжність живить MODELLED геометрію орбітального угруповання, а відповідь є властивістю цієї моделі, тому той рядок слушно Modelled/ReferenceImpl.lunar_interop_budget
Допуск міждоставникової узгодженості для користувача зі змішаними доставникамиconsistency_tolerance: обертає бюджет положення користувача до вимоги міждоставникової узгодженості Гельмерта за параметрами (початок/масштаб/обертання) на опорному плечі важеля, за потреби роздутої CRLB реалізації одного доставника P1MODELLEDМежа найгіршого випадку за трикутником для дії точкового якобіана Гельмерта (замкнена форма)lunar_interop_budget
Бюджет похибок міждоставникової місячної сумісності та закон дизайну «система відліку проти ефемериди»interop_budget: розподіл на зведену (спільна прив'язка системи відліку) та незведену (динаміка) частини за конвенціями PerProvider / CommonFrameTie / CommonEphemeris, з метрикою закону дизайну частки незведеного (~0,69 на реальних DE440/INPOP/EPM: спільна позначка системи відліку сама лишає домінантну підлогу)MODELLEDRMS-агрегація Validated розподілів за парами за кожною конвенцією (замкнена форма)lunar_interop_budget
Конвеєр лінійної алгебри спостережуваності несправностей автономної вільної мережі (проєктор парності, виявлюваність, нецентральність MDB, візантійська блок-іскра)На реальній мережі вузлів місячної системи DE440 (кожен рядок — диференціальна міжвузлова однонаправлена дальність, побудована через pernode_range_row із реальним променем зору в системі PA Місяця DE440) рушій обчислює зважений проєктор парності P⊥ = I − G(GᵀWG)⁺GᵀW (форма з дефіцитним за рангом псевдооберненим, що переживає 8-вимірну калібрувальну неоднозначність датум⊕шкала часу), залишок виявлюваності T1 ‖P⊥·b‖ (несправності в діапазоні знищуються, загальні — виявлювані), квадратичну форму нецентральності MDB за Баардою cᵀWP⊥c (правильна зважена форма з одним P⊥, а НЕ форма з двома P⊥ cᵀP⊥WP⊥c) з MDB = √(λ₀/cᵀWP⊥c) і кількості виявлення/ідентифікації візантійської блок-іскри стекованих ефективних сигнатур пірів P⊥·B_T (за рангом стовпців, а не просто ненульові)VALIDATEDНезалежне відтворення лінійною алгеброю в numpy/scipy на реальних рядках променя зору в системі PA Місяця DE440 (P⊥ з SVD відбіленого дизайну W^{1/2}G; нецентральність MDB із квадрата норми підпростору парності за класичним Баардою (1968); ранг блока з підрахунку сингулярних значень за numpy SVD) — справді інший числовий шлях, ніж циклічний розклад Якобі GᵀWG у крейті. Область (за tests/fixtures/faultobs/NOTICE.md): це підтверджує ЛІНІЙНО-АЛГЕБРАЇЧНИЙ КОНВЕЄР лише на цих рядках. Геометрія вузлів Modelled. Це НЕ операційна гарантія цілісності, НЕ сертифікація рівня захисту і НЕ жодне твердження про доступність RAIM/ARAIM, і НЕ місійна гарантія візантійської відмовостійкості — ЧИСЛО допустимих несправностей для цієї мережі Modelled, тоді як МЕЖА блок-іскри виявлення>f / ідентифікації>2f Cited (Fawzi–Tabuada–Diggavi 2014; Shoukry–Tabuada 2016; блокова іскра Donoho–Elad 2003) і доведена інстанціація в кодіlunar_faultobs
Межа виявлення/ідентифікації візантійської блок-іскри в автономній міжвузловій місячній мережі (T3)byzantine_bound інстанціює межу кодування безпечного оцінювання стану / розрідженої спостережуваності на геометрії мережі окремих вузлів: візантійський пір вводить довільну лінійну комбінацію вимірювань, у яких бере участь, і мережа ВИЯВЛЯЄ будь-яку коаліцію з ≤ f = block_spark − 1 пірів та однозначно ІДЕНТИФІКУЄ будь-яку коаліцію з ≤ ⌊(block_spark − 1)/2⌋, де block_spark — найменша коаліція пірів, чиї складені ефективні сигнатури P⊥·B_T мають дефіцит рангу за стовпцями. Виявлюваність піра — це ПОВНИЙ РАНГ ЗА СТОВПЦЯМИ P⊥·B_j (ненульова, але з дефіцитом рангу блок-атака — це ненульова атака, що потрапляє в range(G) і не лишає залишку), а не просто P⊥·B_j ≠ 0MODELLEDГеометрична інстанціація межі блокової іскри / безпечного оцінювання стану (Fawzi–Tabuada–Diggavi 2014; Shoukry–Tabuada 2016; блокова іскра Donoho–Elad 2003; Candès–Tao 2005) — НЕ консенсусний поріг Lamport–Shostak–Pease 3f+1 («візантійський» називає лише МОДЕЛЬ довільних/змовних несправностей). Конкретне число допустимих несправностей є властивістю Modelled репрезентативної геометрії мережі, перевіреною на самоузгодженість вручну сконструйованими аналітичними випадками та формулами підрахункуlunar_faultobs
Часова калібрувальна підлога автономного holdover для самореферентного місячного орбітального угруповання (T4)holdover_floor встановлює, що в ансамблі автономних вузлів, з'єднаних лише міжвузловими вимірюваннями, спільна швидкість ходу годинника (δα_j += 1 ∀j) є вільним параметром ансамблевого часу, що лежить у N(GᵀWG): жодна кількість додаткової міжвузлової локації не може її спостерегти (rate_in_gauge = true, temporal_gauge_dim = 2 зі спільним зміщенням). Це справжня підлога holdover — часовий аналог калібрувальної неоднозначності положення жорсткої системи відліку. Додавання одного зовнішнього зв'язку з абсолютною швидкістю (прямий зв'язок із позамережевим еталоном) виштовхує спільну швидкість із нуль-простору (rate_in_gauge = false, temporal_gauge_dim = 1), що доводить: підлога є справжньою калібрувальною неоднозначністю, а не артефактом моделі генератораMODELLEDАргумент вільного параметра ансамблевого часу (Percival 1978; Lewandowski & Thomas 1991), інстанційований на репрезентативній реальній мережі окремих вузлів DE440: нульовий тест відносного залишку аналітичного генератора спільної швидкості проти GᵀWG, де контраст зі знятою неоднозначністю розрізняє справжню калібрувальну неоднозначність і артефакт моделі генератора. Репрезентативна геометрія Modelled, а не сертифікований часовий бюджетlunar_faultobs
Спільний/диференціальний розподіл за доставниками, уніфікація одного дефіциту рангу та нахил розриву захисту (T5 / §0 / g7)Три грані єдиної декомпозиції ℝ^{state_dim} = N(GᵀWG) ⊕ range(GᵀWG) з 8-вимірною калібрувальною неоднозначністю датум⊕шкала часу як N(G) і state_dim − 8 = 32 спостережуваними напрямками як range(G): (T5) provider_mismatch_split класифікує спільне зміщення кількох доставників (∈ range(G)) як НЕВИЯВЛЮВАНЕ — таке, що потребує зовнішнього зв'язку, — а диференціальне зміщення (∉ range(G)) як самомоніторне / ВИЯВЛЮВАНЕ; (§0) уніфікація полягає в тому, що ТОЙ САМИЙ сліпий підпростір range(G) керує класом невиявлюваних несправностей, тож калібрувальна неоднозначність датума N(G) і підпростір, сліпий до несправностей, range(G) — це одна геометрія, а не дві; (g7) slope повертає нахил розриву захисту Брауна ‖Π_obs Δx̂‖ / ‖P⊥b‖_W → ∞ для несправності b ∈ range(G) (оцінювач псується за нульової парності) і скінченний для виявлюваної несправностіMODELLEDЗамкнена алгебра проєктора парності / псевдооберненого на репрезентативній реальній мережі окремих вузлів DE440: спільний/диференціальний розподіл, уніфікація N(G) ⊕ range(G) і нахил розриву захисту Брауна (1992) випливають із знищення діапазону P⊥·G = 0. Репрезентативна геометрія Modelled, а не сертифікований рівень захистуlunar_faultobs
MTIE і TDEV телекомунікаційної синхронізації на ряді похибки часу holdoverМаксимальна похибка часового інтервалу та девіація часу, які повідомляє тип сценарію telecom-timing, на записі holdover телекомунікаційного масштабу: MTIE ковзного вікна з монотонною чергою O(n) (telecom_timing::mtie_sliding, потрібна, щоб доба односекундних відліків лишалася швидкою) і TDEV рушія (allan::time_deviation), обчислені на сітці, яку повідомляє тип, і зчитані з повного прогону, що поглинає рядVALIDATEDallantools 2024,06 — незалежна стороння бібліотека стабільності частоти — mtie() і tdev() на tests/fixtures/telecom_timing/holdover_te_series.csv, ряд розібрано з того самого тексту з 17 значущими цифрами з обох боків; еталон записує SHA-256 ряду й відтворюється офлайн через tests/fixtures/telecom_timing/generate_telecom_timing_reference.py. Підтверджує ОЦІНЮВАЧІ на цьому записі, а не синтетичний holdover, який його породивtelecom_timing (mtie_sliding, mtie_curve_ns, tdev_curve_ns); allan (mtie, time_deviation)
Телекомунікаційні маски синхронізації ITU-T з PASS/FAIL і запасомТранскрибовані межі ITU-T G.8272 (07/2025) PRTC-A/B, G.8272.1 (2024) Amd. 1 (07/2025) ePRTC у режимі захоплення та ePRTC-A holdover (включно з обвідною похибки часу з таблиці 3), G.8273.2 (2023) Amd. 2 (11/2025) T-BC/T-TSC класів A–D і G.8271.1 (2022) Amd. 3 (05/2025) опорна точка C, кожен інтервал відкритий чи закритий, як його подає таблиця, з пропуском кожного запису «for further study»; вердикт і запас у граничній точці для кожної перевірки та час до перевищення кожного бюджету. Можна запустити як тип сценарію telecom-timingMODELLEDТранскрипція названих Рекомендацій (вільно завантажуваних з itu.int), кожна межа з посиланням на свою таблицю чи пункт, перелічена разом з усіма непідтвердженими чи нереалізованими пунктами в docs/TELECOM-TIMING.md; тотожності неперервності в точках зламу, які випливають із таблиць, перевіряються в тестах. Транскрипція стандартів із перевірками внутрішньої узгодженості, а не тест відповідності й не зовнішня перевірка. 0,30 раунд 2 (попередньо зареєстровано 970003ee), заблоковано (лишається MODELLED): десять значень масок і тринадцять значень holdover ePRTC-A, які Рекомендації друкують як робочі числа (G.8272 рис. 1-2, G.8272.1 Amd.1 п. 8.2.1 і рис. V.1-V.3, G.8271.1 Amd.3 рис. 7-2 – 7-4), відтворюються в межах піводнієї друкованої одиниці, більшість із них є константами таблиць чи точками зламу; рис. 7-2 G.8271.1 позначає 200 нс на 1,3 с, тоді як його власна таблиця 7-1 дає 197,5 нс. Межі класів A–D G.8273.2 не мають друкованого робочого значення, а позначки точок зламу ePRTC у режимі захоплення G.8272.1 (на суцільних допоміжних лініях) виключено попередньо зареєстрованим правилом відбору, тож вони лишаються транскрипціямиtelecom_timing (MASKS, eprtc_a_holdover_limit_ns, check_curve, check_mask)
Маски генерації блукання для синхронізації частоти ITU-T (G.811, G.812, G.8262, G.8262.1)Сім масок генерації блукання MTIE і TDEV за сталої температури для типу telecom-timing: G.811 (09/1997) PRC (автономний), G.812 (06/2004) типи I, II і III, G.8262 (10/2024) EEC варіанти 1 і 2 та G.8262.1 (11/2025) eEEC (режим захоплення), включно зі степеневими частинами, які записують таблиці (8 τ^0.5 тощо), кожен інтервал відкритий чи закритий, як надруковано, виміряні через фільтр 10 Гц, який зазначають пункти (прийнято застосованим до вибірки); еталонний сценарій scenarios/telecom-synce-eec.toml ставить вільний OCXO проти трьох масок EEC. Не реалізовано: допуски за змінної температури, holdover, перехідні процеси, джитер і точність частоти G.811MODELLEDТранскрипція названих Рекомендацій (завантажено з itu.int 2026-10-13), кожен рядок повторно прочитано проти тексту, з неперервністю в точках зламу, яку означають надруковані коефіцієнти, обмеженою в тестах (наприклад 40 · 10^0,4 = 100,48 нс проти плато 100 нс у таблиці 4 G.812). Транскрипція стандартів із перевірками внутрішньої узгодженості, а не тест відповідності й не зовнішня перевірка. G.812 (06/2004) у переліку значиться замінений попередньо опублікованою редакцією 08/2026, а G.811 має Amd. 1 (04/2016); жодну з них не вдалося прочитати, тож жодну не перевірено. Сценарій із вільним OCXO завищує внесок генератора на інтервалах спостереження, довгих порівняно з сталою часу контуру; він нічого не каже про жоден годинник обладнанняtelecom_timing (MASKS, Segment::tau_exponent, MeasurementFilter::LowPass10HzAtSource, MaskCondition::Autonomous)
Формати журналів годинника (RINEX clock, TimeLab ASCII, TAPR TICC), прочитані до нормалізованого фазового рядуclock_log::read_input: єдиний шар розбору, що перетворює файл годинника RINEX (записи AS/AR одного названого годинника, версії 2 і від 3,00 до 3,04), журнал фази чи частоти ASCII у стилі TimeLab або журнал часових міток чи інтервалів TAPR TICC на однорідну фазову сітку з tau0, заданим, узятим із заголовка або як медіанний крок, із підрахунком кожної прогалини, позасіткового відліку та дубліката та політикою прогалин refuse, longest-run або linear; підключено за вибором до ряду telecom-timing ([series.clock_log], додаючи блок clock_log) і до типу clock ([clock_log], додаючи блок measured з ADEV, TDEV і MTIE, SHA-256 таблиці та SHA-256 фази; runs = 1). Без таблиці обидва типи побайтово ідентичніMODELLEDПопередньо зареєстровано в tests/fixtures/clock_log/PREREGISTRATION.md (зафіксовано окремо, 159334f2, до появи фікстури); записано в RESULTS.md. Три засіяні синтетичні журнали, по одному на формат (прогалина TICC у три епохи, другий годинник RINEX, який слід ігнорувати), прочитані назад незалежним читачем, написаним за docs/CLOCK-LOG-FORMATS.md тим самим автором: лічильники сітки, прогалин і заповнень рівні, а найбільша різниця фази 0 с (поріг 1e-13 с). oadev, tdev і mtie allantools 2024,6 на цій фазі збігаються в межах відносних 2.5e-14 (поріг 1e-10) на кожному коефіцієнті усереднення, який вона обчислює; вона не обчислює MTIE за весь запис, який повідомляє рушій, тож ця одна точка на журнал не має значення оракула, і поріг у його формулюванні там не виконано. MODELLED: синтетичні журнали, а оракул-читач ділить автора; реальні файли годинника TimeLab, TICC і RINEX з приладів не порівнювалисяclock_log (read_input, MeasuredPhaseReport, MEASURED_UNITS, TELECOM_LOG_UNITS); telecom_timing (SeriesInput::clock_log); api (clock kind [clock_log])
Формати журналів годинника linuxptp (ptp4l, phc2sys, ts2phc) і chrony (tracking, statistics), прочитані до нормалізованого фазового рядуclock_log::read_input з форматами ptp4l, phc2sys, ts2phc, chrony-tracking і chrony-statistics: записане зміщення рядка сервоприводу linuxptp (нс, власна часова мітка рядка в дужках, відліки до першого повідомлення сервоприводу про s2 відкидаються й підраховуються) або журналу chrony tracking чи statistics (с, за позицією стовпця, дата й час UTC) стає однорідною фазовою сіткою через ті самі політики прогалин, що й інші формати; селектор джерела (clock) називає один із кількох інтерфейсів, годинників чи адрес; журнали живлять ряд telecom-timing, тип clock і тип holdover-testMODELLEDФікстури, написані для Kshana за публічними макетами рядків демонів, із вигаданими значеннями (NOTICE.md у теці фікстур); жодного журналу з реальної установки не читали, і жоден оракул не порівнює розбір з іншим читачем, тож макет, що відрізняється між версіями демонів, усе ще може бути відхилений або прочитаний хибно. Оцінювачі, що живляться фазовим рядом, — це ті, які підтверджено проти allantools у рядках вищеclock_log (parse_linuxptp, parse_chrony, grid_timed_offsets)
Тест holdover, оцінений за записом похибки часу, наданим операторомТип holdover-test: запис похибки часу (журнал годинника linuxptp, chrony, TICC, TimeLab чи RINEX або пари time_s,time_error_ns) ділиться у два моменти, які оператор заявляє для вилучення й відновлення GNSS, на базовий, holdover і відновлювальний етапи; базовий рівень вимірюється проти масок ITU-T, написаних для захопленого годинника, а holdover — проти тих, що написані для holdover чи автономного годинника, обвідної holdover ePRTC-A і бюджетів похибки часу; holdover повідомляє зсув частоти за методом найменших квадратів, який утримала система, а відновлення — чи й коли |TE| увійшла в задану смугу й лишалася в ній задану витримку, з піком і найбільшим кроком. Кожна межа — та, яку транскрибує тип telecom-timing; два моменти — це заява оператора й не перевіряютьсяMODELLEDРучне обчислення на записах, побудованих за формулами, чиї нахил, крок, екстремум і час відновлення відомі до прогону (тести їх заявляють), і маски, обвідна та бюджети рядків telecom-timing вище. Жодного лабораторного вимірювання реального holdover не оцінювали й жодного зовнішнього оракула не порівнювали, тож тип не робить жодного твердження про жоден годинник чи систему; потрібен партнер із лабораторії часу, перш ніж якийсь показник для класу годинників можна буде підвищитиholdover_test (HoldoverTestScenario, recovery, linear_fit); telecom_timing (check_mask, check_envelope, budget_results)
Доступність сигналів GNSS у просторовому обсязі обслуговування (SSV) і за його межами, порівняно з буклетом ICG SSVРозгортки доступності типу gnss-ssv: за орбітальними угрупованнями (GPS, GLONASS, Galileo, BDS, QZSS, NavIC) і сукупно — частка пар (користувач, епоха) принаймні з одним і принаймні з чотирма сигналами та найдовша перерва, для користувача на сфері (глобальна оболонка буклета з 2,562 точок, 14 діб з кроком 1 хвилина) або на траєкторії (GEO, HEO, місячний перехід), за кеплеровими орбітами з додатка C буклета, сталою мінімальною випромінюваною потужністю всередині опорного позаосьового кута, затіненням Землею сферою плюс 50 км і порогом C/N0; антени користувачів із таблиці B10 буклетаMODELLEDБуклет ICG про просторовий обсяг обслуговування (UN OOSA ST/SPACE/75, 2018), сам будучи симуляцією, порівняно за попередньою реєстрацією, зафіксованою до прогону (xval/gnss-ssv/PREREGISTRATION.md; результати в xval/gnss-ssv/RESULTS.md, закріплені tests/ssv_booklet_results.rs, з промахами). Прогін 1 за попередньо зареєстрованим читанням: константи мінімальної випромінюваної потужності та місячний поріг збігаються (S0, S6 met); пороги верхнього та нижнього SSV, порогу RF, GEO та HEO NOT MET, майже всі через GLONASS, для якої буклет дає 20 і 28 градусів у таблицях B2 і B6 та 26 і 34 градуси в таблиці 4,2. Діагностичний варіант із кутами таблиці 4,2 збігається в кожній комірці верхнього SSV, нижнього SSV та шести місій GEO (він не замінює прогін 1; комірки RF, HEO та місячні все ще промахуються). Виміряні діаграми панелей GPS L1 не відтворюються параметричною заміною (RMS від 6 до 9 дБ проти порогу 3 дБ). Збіг показує, що заявлений метод буклета відтворюється, а не що сигнали GNSS поводяться такssv (constellations, geom, sweep, pattern, check)
Ефекти іоносфери, плазмосфери та атмосфери для променя на лімбі на дотичних сигналах GNSS і дизайн приймача слабких сигналів у типі gnss-ssvІоносфера Чепмена, плазмосфера типу Галлагера та нейтральна атмосфера (згин через рефрактивність, поглинання киснем, дефокусування), проінтегровані вздовж прямого променя між передавачем і користувачем: похилий повний електронний вміст, його плазмосферна частина, надлишкова затримка, висота дотичної та втрати на дотичних лініях зв'язку; і дизайн приймача слабких сигналів (когерентне й некогерентне інтегрування, межа бітів даних, допомога, доплерівський пошук), що задає поріг C/N0 з моделей захоплення та контурів стеженняMODELLEDЗамкнені форми та опубліковані величини в тестах (пік шару Чепмена та згин поверхневого лімба, кілька TECU плазмосфери на промені GPS–GEO); дизайн приймача повторно використовує моделі захоплення та контурів стеження та їхні тести. Жодні виміряні дані лімбового зондування чи прийому слабких сигналів з ним не порівнюютьсяssv (limb, weak)
Бортовий навігаційний фільтр GNSS для апаратів на високих орбітах і на траєкторіях переходу до МісяцяРежим [navigation] типу gnss-ssv: дев'ятистановий розширений фільтр Калмана (положення, швидкість, зміщення й дрейф годинника приймача, масштаб тиску сонячного випромінювання) на псевдодальностях, чия доступність, шум і C/N0 походять з тієї самої геометрії ліній зв'язку, що й розгортки; істину інтегровано з J2, третіми тілами Сонця й Місяця та тиском випромінювання з тінню, фільтр моделює J2 і треті тіла та оцінює тиск випромінювання; повідомляє похибки положення й швидкості всередині орбіт GNSS і над ними, найдовшу прогалину вимірювань і середнє NEESMODELLEDСимульована істина проти власної оцінки фільтра (середня нормалізована квадратична похибка оцінки узгодженого фільтра становить близько 3 для положення) і детермінізм за фіксованого зерна (seed). Жодних польотних чи записаних даних GNSS на високій орбіті не порівнюється; Сонце й Місяць — низькоточні кругові замінникиssv::nav (run_nav, Ekf)
Відносна навігація формації з кількох космічних апаратів на сильно еліптичній орбіті за GNSSРежим [formation] типу gnss-ssv: головний апарат і ведені апарати кожен запускає абсолютний фільтр; положення веденого відносно головного оцінюється відніманням абсолютних оцінок і відносним фільтром на однократно диференційованих псевдодальностях сигналів, які відстежують обидва апарати, з відносною динамікою як різницею двох нелінійних траєкторійMODELLEDТа сама симульована істина, що й для абсолютного фільтра: похибка відносного фільтра проти істинного відносного стану та перевірка, що він працює щонайменше не гірше за віднімання двох незалежних абсолютних визначень. Жодні польотні дані формацій не порівнюютьсяssv::formation (run_formation, RelEkf)
Бюджет похибок навігації та часу ланцюга фаз місії від запуску до входу в атмосферу (mission-thread)Тип mission-thread: документ із фаз, кожна з яких є одним із восьми зареєстрованих типів, що виконуються по черзі, а 6x6 коваріація, годинник і система відліку передаються далі за заданим правилом (carry; inflate, білий шум прискорення на заданому проміжку за прямолінійною моделлю; reacquire, інерційне зчислення шляху, а потім поріг джерела, ніколи не нижче нього, ніколи не скидання); перетворення систем відліку GCRF, MCI і MCMF та перетворення шкал часу через TT, кожне окремим рядком бюджету, з положенням Місяця з необов'язкового зрізу ядра DE440 і аналітичним рядом як заявленим запасним варіантом; запас відносно заданої вимоги, найслабша ланка, події та рисунок часової шкали. Кожне число є заданим входом або моделлю такогоMODELLEDРучні розрахунки в тестах (зростання прямолінійної коваріації, середнє сидеричне обертання, вікова швидкість місячного годинника) і, лише для положення Місяця, зафіксовані зрізи ядра DE440 проти закріплених значень JPL Horizons (найгірше 2,6 м і 7e-6 м/с). Жодні дані місій з цим ланцюгом не порівнюються; його фази є окремими рядками. Документ є заданим ланцюгом із ILLUSTRATIVE вхідними даними, лише публічними джерелами та без схвалення жодним агентствомmission_thread (scenario, handover, conversions, budget, phase)
Запуск і виведення на опорну орбіту із захопленням ГНСС і завмиранням (launch-ascent)Фаза launch-ascent: коваріація положення та швидкості для сталої швидкості з білим шумом прискорення (клас інерційного зчислення шляху), фікс ГНСС заданої точності, застосований після часу захоплення і поза заданими завмираннями, годинник зі зміщенням і дрейфом, що дисциплінується тими самими фіксами, та стан входу на опорну орбітуMODELLEDУсталений стан Ріккаті та ручний розрахунок передбачення в тестах. Тут ніщо не моделює ракету-носій чи приймач; кожне число є заданим входомmission_thread::earth::launch (LaunchAscent)
Відносна навігація до оболонки стикування на низькій навколоземній орбіті за ділянками датчиків (leo-rendezvous)Фаза leo-rendezvous: відносний стан у осях LVLH цілі із замкненим переходом Clohessy-Wiltshire, коваріація Калмана 6x6 з білим шумом прискорення та оновленнями положення, дисперсія яких дорівнює дисперсії датчика на поточній дальності, за ділянками заданого датчика (ILLUSTRATIVE оптична камера, лідар і форми радіодальнометрії); вікно стикування — це час від моменту, відколи відносна сигма лишається в оболонці захоплення, до кінця фази. Абсолютна коваріація переслідувача передається далі без змін, і рядок про це кажеMODELLEDОдноосьовий ручний розрахунок передбачення й оновлення в тесті; перехід Clohessy-Wiltshire — той, який cw_dynamics перевіряє за незалежним числовим інтегруванням. Датчики є ILLUSTRATIVE, і жодна справжня зустріч не порівнюєтьсяmission_thread::earth::rendezvous (LeoRendezvous); cw_dynamics; mission_thread::sensors
Трансмісячна інжекція та цисмісячний політ: пропагований середній стан і коваріація з оновленнями відстеження (tli-and-cruise)Фаза tli-and-cruise: середній стан за пропагатором Ковелла рушія (точкова маса Землі та J2, Сонце й Місяць як треті тіла, Місяць із ядра DE440 ланцюга там, де воно охоплює сегмент, а Сонце з аналітичного ряду); коваріація за матрицею переходу стану, взятою прямою різницею з тієї пропагації (номінальний прогін і шість збурених прогонів на сегмент) з білим шумом прискорення; розмір і похибка напрямку імпульсу TLI; фікси gnss-ssv, чия доступність і PDOP походять зі зміщення за космічним обсягом обслуговування вздовж оскулюючої орбіти, що заступає дугу; відстеження дальності та швидкості зміни дальності вздовж геоцентричного напрямку, масштабоване шкалою роботи наземної мережі, з оновленням у формі ДжозефаMODELLEDТеорема Ліувілля (визначник матриці переходу стану консервативної частини дорівнює одиниці) і точніша різниця в тестах; середній стан порівнюється з публічною траєкторією в рядку нижче, якого він не досягає. Похибка імпульсу, оновлення та коваріація ні з чим не порівнюютьсяmission_thread::earth::tli_cruise (TliCruise); propagator; ssv::sweep
Коваріація на інтерфейсі входу, ймовірність коридору, пікове уповільнення та область посадки (entry)Фаза entry: повернення вибігом із tli-and-cruise без імпульсу, що закінчується на інтерфейсі входу; кут нахилу траєкторії та його сигма з повної коваріації за градієнтом скінченних різниць; ймовірність, що кут лежить у заданому коридорі; пікове уповільнення при номінальному куті й на обох краях коридору за планарним балістичним входом рушія як точкової маси (виявляється відскок) поряд із замкненою формою Аллена–Еггерса; область посадки із заданої чутливості за дальністю та коваріації на інтерфейсі впоперек площини орбіти. Підйомна сила, наведення чи нагрівання не моделюютьсяMODELLEDРучні розрахунки в тестах (сигма кута — це перпендикулярна сигма швидкості, поділена на швидкість; гауссова маса в коридорі). Планарний вхід — власний вхід рушія, а форма Аллена–Еггерса — порівняння із замкненою формою; жоден здійснений політний вхід не порівнюєтьсяmission_thread::earth::entry (Entry); reentry
Покриття наземної мережі та шкала відстеження для фази ланцюга ([ground_network] із mission-thread)Накладка наземної мережі: станції з мінімальним кутом місця, видимість апарата за заданою геометрією (стан входу, пролетений у двотільній задачі з J2, положення Місяця для польоту або задана шкала), передавання між станціями, кожне з яких втрачає заданий час, і результатна шкала, передана на частоту оновлень наземного відстеження фази; найдовший інтервал без станції у видимості є рядком бюджетуMODELLEDПеревірки геометрії зеніту та антипода й очікувана видимість далекої цілі в тестах. Жодна справжня мережа, антена чи розклад не моделюютьсяmission_thread::earth::ground_network
Відносна навігація до стикування на місячній орбіті (lunar-orbit-rendezvous)Тип і фаза lunar-orbit-rendezvous: спільна пакетна оцінка Гаусса–Ньютона двох апаратів на дузі (двадцять один параметр: обидва стани та стійкі зміщення положення сигналу в просторі, спільні й незалежні), що нарощується на чверть, половину та цілу дугу із поділом кроку навпіл, з абсолютного фікса на апарат (межа відстеження пілот-коду AFS, ILLUSTRATIVE набір ретрансляторів) і дальності міжлінії, за місячною силовою моделлю крейта; середня нормалізована квадратична похибка оцінки, перевірка Clohessy-Wiltshire на круговій орбіті та передана далі коваріація 6x6MODELLEDСамоузгодженість за попередньою реєстрацією (xval/mission-thread-lunar/PREREGISTRATION.md, результати та історія оцінювача в RESULTS.md): середня NEES відносного стану становить від 5,85 до 5,93 проти смуги від 5,2 до 6,8 у чотирьох конфігураціях, MET для четвертого проєкту оцінювача після того, як три проєкти послідовного фільтра його не досягли; істина й оцінювач мають одну силову модель, тож це нічого не каже про похибку моделі. Пропагатор, який вони ділять, порівнюється з LRO і CAPSTONE у рядку нижчеlunar_rendezvous (LunarRendezvousScenario); lunar_phase; mission_thread::lunar
Бюджет розсіювання посадки в місячному полярному місці (lunar-descent)Тип і фаза lunar-descent: п'ятистанова інерційна модель похибок за віссю (положення, швидкість, зміщення акселерометра, нахил, зміщення гіроскопа) під час активного спуску, підтримувана фіксами AFS (автономними або диференціальними, із випадком трьох ретрансляторів з підтримкою годинника), фіксом за рельєфом (зіставлювач terrain-nav рушія на синтетичному рельєфі або межа Крамера–Рао на цифровій моделі LOLA з правилом проблеми апертури) і місячним часом, з еліпсом приземлення за Монте-КарлоMODELLEDЗамкнений інерційний дрейф, власні результати повторно використаних типів і калібрування 3-сигмового еліпса (частка всередині збігається з очікуваною) у тестах. Жодна здійснена чи випробувана посадка не порівнюєтьсяlunar_landing (LunarLandingScenario); lunar_phase; terrain_nav
Доступність позиціонування та часу на поверхні за місцем і порою року на місячних полюсах (lunar-surface)Тип і фаза lunar-surface: доступність ретрансляторів і PDOP, видимість Землі й Сонця та дисциплінований поверхневий годинник для кожного місця й пори року, з обрієм рельєфу з moonlight-service-volume; прогін для одного місця дорівнює доступності й PDOP цього типу до бітаMODELLEDТочна рівність з наявним типом для одного місця та перевірки монотонності в тестах. Набір ретрансляторів є ILLUSTRATIVE, і жодне вимірювання на поверхні не порівнюєтьсяlunar_surface_map (LunarSurfaceMapScenario); lunar_phase
Активне виведення з місячного полярного місця на орбіту входу (lunar-ascent)Тип і фаза lunar-ascent: п'ятистанова інерційна модель похибок за віссю, виконана на активному виведенні з питомою силою вздовж траєкторії, підтримувана фіксами AFS і місячним часом, що звітує коваріацію положення та швидкості на вході, перенесену на орбіту, і розсіювання при відсічці двигуна (повідомлене, не перенесене)MODELLEDЗамкнений інерційний дрейф і перевірки монотонності в тестах. Жодне здійснене виведення не порівнюєтьсяlunar_ascent (LunarAscentScenario); lunar_phase
Пропагація місячної силової моделі проти публічних відновлених траєкторій місячних орбітальних апаратів і цисмісячного просторуПропагатор, спільний для місячних типів (GRAIL GL0660B, ступінь і порядок 150, Земля та Сонце як треті тіла, релятивізм, місячна орієнтація DE440), порівняний з публічними траєкторіями JPL Horizons для LRO (24 год, відліки по 10 хвилин) і CAPSTONE (один оберт за 6,5 доби, годинні відліки) за порогами, зафіксованими у зафіксованому файлі до прогонуMODELLEDЕфемериди космічних апаратів JPL Horizons для LRO і CAPSTONE проти порогів, попередньо зареєстрованих у xval/mission-thread-lunar/PREREGISTRATION.md (поправки від 1 до 6). LRO: MET, 33 м найбільша 3-D різниця та 2,4 м RMS радіально проти 500 м і 60 м. CAPSTONE: NOT MET, різниця кінцевого положення 136,8 км проти 25 км і різниця періапсиду 28,4 км проти 10 км, причини не відокремлено. Рядок є змодельованим, бо поріг CAPSTONE не досягнуто, а порівняння перевіряє спільний пропагатор, а не жоден фільтр, сигнал чи бюджетlunar_od (LunarForceModel); precise_od; mission_thread_lunar_oracles (example)
Пропагація середнього стану цисмісячного простору проти публічної траєкторії Artemis I (tli-and-cruise)Пропагація середнього стану фази tli-and-cruise (Ковелл, точкова маса Землі та J2, Сонце й Місяць як треті тіла, Місяць зі зрізу DE440) порівняна з публічною траєкторією JPL Horizons для Artemis I на дузі вибігу 72 год від 2022-11-16 18:00 TDB, в епохи через 12 годин, за порогами, зафіксованими у зафіксованому файлі до прогонуMODELLEDJPL Horizons, ціль -1023 (траєкторія після TLI за фактичним польотом за навігацією NASA), проти порогів, попередньо зареєстрованих у xval/mission-thread/PREREGISTRATION.md (поправка 1 змінює лише проміжок запиту). NOT MET і підтверджено як невиконане: найбільша різниця положення 45,3 км проти 5 км і різниця швидкості 0,249 м/с на 72 год проти 0,05 м/с. Діагностика, написана після вердикту, відносить промах до п'яти імпульсних кроків швидкості від 0,09 до 0,22 м/с в еталоні (попереднє зареєстроване розуміння, що вікно не мало імпульсу, було хибним); протягом решти 67 годин модель відтворює наступний погодинний стан з медіаною 0,38 м. Перевіряє лише середній стан однієї дуги вибігу: ні коваріацію, ні фільтр, ні оновлення, ні іншу фазуmission_thread::earth::tli_cruise; propagator; mission_thread_oracle (example)
Члени похибки холодноатомного інтерферометра: фазовий шум лазера Рамана, зміщення від кривини хвильового фронту та розв'язання неоднозначності смугinertial::cai_error_terms (бібліотечні функції, ще не доступні зі типу сценарію): вагова функція фази Рамана триімпульсного інтерферометра з квадратних імпульсів (Cheinet et al. 2008, рівн. 8) із замкненою формою білої фази (pi/2)^2 S_phi0/tau_R і числовим шляхом для будь-якого спектра; шум частоти лазера, який затримка ретровідбиття не скасовує (Le Gouet et al. 2007, рівн. 9–11); зміщення хвильового фронту чистого дефокусу sigma_v^2/R теплової хмари та його зменшення радіусом виявлення; імовірність хибного індексу смуги erfc(pi/(sqrt(2) s)) для допомоги класичного акселерометра та для двох часів опитування, і її оберненаMODELLEDКожна замкнена форма проти незалежного числового шляху в тестах (частотна квадратура точної передавальної функції та фільтра затримки, Монте-Карло за атомами для зміщення хвильового фронту, Монте-Карло за пострілами для індексу смуги) і її граничні випадки. Одне опубліковане робоче значення: Cheinet et al. 2008 (arXiv:physics/0510197, розд. IV) стверджують, що за tau_R = 20 мкс для 1 мрад на постріл потрібен білий фазовий шум Рамана нижче -111 дБ рад^2/Гц; один лише білий член дає 0,99 мрад (стаття виводить рівень за своїм рівнянням 17, фліккер плюс білий). Внутрішня узгодженість і одне робоче значення, а не зовнішня перевірка; аберації вищих порядків і шум будь-якого конкретного лазера не змодельованоinertial::cai_error_terms
Точні еквівалентні ступені свободи за Greenhall і Riley для дисперсій Аллана, модифікованої Аллана та Адамараallan::edf_greenhall (з обгортками edf_greenhall_adev, _mdev і _hdev): повний алгоритм Greenhall і Riley, Proc. 35th PTTI (2003), розд. 3 (рівн. 7–13 і коефіцієнти великого J з таблиць 1–3), для порядків різниці від 1 до 3, показників шуму від +2 до -4, де alpha + 2d > 1, з перекриттям і без, модифікованих і немодифікованих оцінювачів; NaN, де не застосовується, включно з немодифікованим випадком білого PM із ceil(M/S) <= d, чия замкнена форма не реалізована. assurance::uncertainty::edf тепер ділить код і зберігає свої виходи біт у бітVALIDATEDallantools 2024,6 ci.edf_greenhall, стороння реалізація опублікованого алгоритму, запущена scripts/gen_greenhall_edf_ref.py на сітці, попередньо зареєстрованій у xval/greenhall-edf/PREREGISTRATION.md (зафіксовано окремо, 0db0bb7a, до будь-якого порівняння): у всіх 4 876 точках, де вона повертає скінченний edf, kshana збігається в межах відносних 6.0e-13 (поріг 1e-9); у її 46 точках NotImplementedError kshana повертає NaN; кожна мітка випадку трапляється; обгортки дорівнюють ядру біт у біт; uncertainty::edf бітово ідентичний на 274 280 значеннях (закріплено як SHA-256 до рефакторингу). У 32 точках (alpha -4, d 3, немодифікований, випадок 2,2) allantools виходить з ладу в пошуку за таблицею 2, тож вони не мають значення оракула й не враховуються. Stable32 не запускали. 0,36 редакція (docs/revisions/STUDIO15-greenhall-edf-portable.md): на портативній математиці ядро бере свій логарифм із обчислення double-double, округленого один раз (allan::greenhall_ln), і незмінений поріг 1 знову тримається в усіх 4 876 точках, найгірше відносно 6.0e-13; охоронця uncertainty::edf перебазовано на портативний дамп 0,36 (3 746 із 274 280 значень зрушилося, щонайбільше на 1.6e-12 відносно, від бази на математиці хоста)allan (edf_greenhall, greenhall_edf_core); assurance::uncertainty (edf)
Пресети holdover генераторів за публічними специфікаціямиЧотири пресети — OCXO (Microchip OX-208), рубідієвий (Microchip 8040C), цезієвий (Microchip 5071A, високопродуктивна трубка) і CSAC (Microchip SA.45s) — кожен із максимумами девіації Аллана, старінням і межею температури зі своєї специфікації; невід'ємне підгонювання найменшими квадратами шуму частоти білого + фліккерного + випадкового блукання, масштабоване так, щоб обгорнути кожну точку специфікації, фліккерна підлога ніколи не нижча за показник найдовшого τ, лінійне старіння та синусоїдний температурний член, синтезовані як засіяний (seeded) holdover після втрати GNSSMODELLEDЧотири названі специфікації Microchip (номери документів і URL у кожному пресеті та в docs/TELECOM-TIMING.md) для вхідних показників; замкнена рампа старіння та властивість обгортки підгонки як внутрішні перевірки. Те, як показники стають моделлю шуму — підгонка, правило підлоги, 30-денний місяць, лінійне читання температури, — є вибором моделювання; жоден пресет не є вимірюванням примірника. 0,30 раунд 2, односторонні пороги проти виміряних примірників (попередньо зареєстровано a01c491c), висновок (лишається MODELLED): станція IGS THU2 Symmetricom 8040C у фінальних годинниках ESA MGEX має девіацію Аллана від 0,35 до 0,87 від рубідієвого пресета, але похибку holdover від 1,07 до 1,60 від нього; запис 5071A лежить поза цезієвим пресетом до 1000 с (вимірювальний білий фазовий шум, 30x на 1 с) і в holdover (від 1,15 до 8,74); найгірший серійний SA.45s 2011 року в 1.26x пресета CSAC на 1 с; OX-208 не має виміряного запису (заблоковано)telecom_timing (PRESETS, fit_noise, with_flicker_floor, synthesize_holdover); models (ClockModel)
Прогноз holdover за виміряним записом годинника, перевірений на відкладених данихШлях виміряного запису типу slot-timing: девіація Аллана з перекриттям запису фази, підігнана невід'ємним методом найменших квадратів із вагами edf у базисі білої фази та частотної модуляції за IEEE Std 1139 (slot_timing::fit_weighted), потім обернена для часу вибігу, коли похибка часу досягає порога (slot_timing::slot_budget). Підлога червоного шуму вимірюється із запису, а не припускаєтьсяVALIDATEDРеальний вільний атомний годинник: 556 990 односекундних фазових відліків цезієвого стандарту 5071A, виміряних проти водневого мазера (A. Wallin, поширюється з allantools; закріплений коміт і SHA-256 у scripts/fetch_cs5071a.sh), той самий запис, який використовує tests/cs5071a_reference.rs для оцінювачів. Відкладені дві третини — зовнішнє вимірювання, якого прогноз ніколи не бачив. Залежить від даних: робочий процес realdata-clock отримує запис і запускає тест з KSHANA_REQUIRE_REALDATA=1. Підтверджує шлях «підігнати, потім обернути» на атомному стандарті, де домінує білий FM, на вибігах до приблизно 50 000 с; не специфікацію чи джерела класу, не детерміновані члени. НЕ кварцовий генератор: на виміряному записі OCXO (tests/slot_timing_ocxo_holdout.rs, allantools, 5,5 год проти водневого мазера) відкладений прогноз консервативний, від 0,59 до 0,70 виміряного порушення, і здебільшого поза порогом, бо шумова підлога того генератора вдвічі зменшилася під час запису; у вибірці він у межах від 0,98 до 1,17. Кварцовий випадок лишається MODELLED. Так само НЕ атомні годинники на орбіті: на 10 годинниках супутників GPS Block IIF (tests/slot_timing_igs_holdout.rs, фінальні годинники IGS 30 с, 14 діб, протокол написано до завантаження) 8 потрапляють у поріг, а 2 (G25, G30) оптимістичні до приблизно 2x, тож за протоколом орбітальний випадок лишається MODELLEDslot_timing (ClockNoise::from_phase_record, fit_weighted, slot_budget, breach_after_sync_s)
Секунди, поки вільний годинник залишає охоронну зону часового слоту, та частота визначень, що тримає його всерединіТип slot-timing: передбачена похибка E(t) = k·√(σ₀² + σ_x²(t)) + (|y₀| + |c_T·ΔT|)·t + ½|D|t² обернена для порушення, часу, що лишився, інтервалу повторної синхронізації за вирахуванням затримки визначення та кількості визначень на добу, кожен член розписано з названням домінантного; годинники із шести типових значень ClockClass (додано TCXO, OCXO і RAFS, кожен із посиланням на одну специфікацію), пресетів telecom-timing, вбудованої специфікації чи виміряного запису; порушення за межами найдовшого часу усереднення джерела позначається як екстрапольованеMODELLEDЗамкнені форми для кожного члена окремо та незалежний пошук кореня holdover::holdover_seconds; показники специфікацій — названі документи (docs/SLOT-TIMING.md). Типове значення класу спирається на припущену підлогу червоного шуму, а джерело-специфікація є обвідною максимумів, тож жодне не є вимірюванням будь-якого примірникаslot_timing (predicted_error_s, breach_after_sync_s, terms_at, slot_budget, ClockNoise::from_datasheet, SlotTimingScenario); clock_state (ClockClass::Tcxo, Ocxo, Rafs, source)
Рівень захисту часу для приймача на орбіті в умовах спуфінгу GNSSorbital_timing::orbital_timing, доступний як розділ про спуфінг у виді slot-timing: швидкість і період кругової орбіти, найдовший час, протягом якого наземний спуфер може діяти на супутник за один прохід, нижня межа монітора з підтримкою годинника та затримка виявлення CUSUM, умовний рівень захисту (нижня межа плюс інерційний дрейф за час затримки), відхилення, яке накопичує спуфер із заданою максимальною швидкістю наростання, доки супутник не залишить свою зону покриття або не буде виконано незалежну перевірку, а також те, чи кожна перевірка під час наземного контакту або через міжсупутникову лінію незалежна від одного наземного спуфераMODELLEDЗведення до наявного рівня захисту часу та до замкнених формул для кругової орбіти й сферичної Землі, що описують видимість. Умовно щодо виявлення: один наземний спуфер із заданою швидкістю наростання, прохід над головою на нерухомій Землі; не validated на приймачі під спуфінгом на орбітіorbital_timing (orbital_timing, visibility_half_angle_rad, max_pass_s, crosslink_neighbour_is_outside_footprint)
Замкнені вирази для спектральної густини потужності сигналів L-діапазону та коефіцієнтів спектрального розділенняСпектральні густини потужності одиничної площі для GPS L1 C/A і L2C (BPSK(1)), GPS L5 і Galileo E5a (BPSK(10)), sine-BOC(1 1) та Galileo E1 MBOC(6,1,1/11) (navsignal::Modulation::psd, з доданим варіантом MBOC), їхні чисельно знайдені нулі й максимуми (spectrum::psd_nulls_hz, psd_peak_hz, main_lobe_null_to_null_hz), а також коефіцієнт спектрального розділення сигналу щодо будь-якого спектра за будь-якого зсуву (navsignal::spectral_separation_coeff_offset) або щодо тону, плоского шуму, чирпа чи узгодженого шуму (spectrum::Jammer::ssc), з коефіцієнтом антиглушіння Q = 1/(R_c kappa)VALIDATEDОпубліковані підручникові значення: головна пелюстка BPSK(n) від нуля до нуля шириною 2n x 1,023 МГц і коефіцієнти антиглушіння Q = 1 для вузькосмугового (CW) глушника та Q = 1,5 для глушника з розширеним спектром, узгодженого з C/A (Kaplan & Hegarty, Understanding GPS/GNSS, 3rd ed., розділ 9,4); головні пелюстки BOC(m,n) з центрами на плюс-мінус m x 1,023 МГц (Betz, Binary Offset Carrier Modulations for Radionavigation, NAVIGATION 48(4), 2001); коефіцієнти спектрального розділення -61.8, -64.8 і -67.8 дБ/Гц для C/A із C/A, BOC(1 1) із BOC(1 1) та C/A із BOC(1 1) (Betz 2001; Hein et al., MBOC: The New Optimized Spreading Modulation Recommended for Galileo L1 OS and GPS L1C, Inside GNSS, May/June 2006), відтворені тут за їхніми замкненими формулами автокореляції через теорему Парсеваля. Максимум BOC(1 1) не припадає на 1,023 МГц: пелюстка тягнеться від нуля несівної до 2,046 МГц і має пік на 0,759 МГц, і тест фіксує обидва значення. Суміш MBOC відповідає визначенню з ICD і перевірена лише на одиничну площу та лінійністьnavsignal (Modulation::psd, spectral_separation_coeff_offset, q_from_ssc); spectrum (psd_nulls_hz, psd_peak_hz, main_lobe_null_to_null_hz, Jammer::ssc)
Водоспад спектра L-діапазону з J/S для кожного діапазону та ефективним C/N0 за сценарним графіком роботи глушниківВид spectrum: сітка «частота за часом» спектральної густини потужності L-діапазону (тепловий поріг k T_sys, де T_sys = T_ant + 290 K (F - 1), сигнали за їхніми мінімальними прийнятими потужностями з специфікації інтерфейсу та глушники безперервної хвилі, вузькосмугові, чирп і з узгодженим шумом із часом вмикання та вимикання), кожна комірка усереднена за своїм інтервалом і рядком (чирпи точно за повними та частковими розгортками, глушники за шпаруватістю), ефективне C/N0 для кожного діапазону = [1/(C/N0) + sum (J/S) kappa]^-1 для кожного рядка, J/S для кожного діапазону, J/S у смузі та SVG-водоспад зі стовпчиками C/N0. Звіт містить перехресну перевірку щодо ланцюга виду jamming на тих самих вхідних даних лініїMODELLEDЗведення до рівняння антиглушіння та бюджету лінії наявного виду jamming (той самий код, викликаний на тих самих вхідних даних) і до замкненої формули порога шуму k T0 F. Спектри сигналів під цим є у валідованому рядку вище; потужності глушників, часовий графік і смуги входу приймача задаються сценарієм, спектри безперервні (без ліній розширювального коду), а автоматичне регулювання підсилення, бланкування чи діаграма спрямованості антени на глушник не впливають. У репозиторії немає виміряного спектра із глушінням, із яким можна було б перевірити складену модель. Таблиця Q виду jamming (CW і вузькосмуговий 1, широкосмуговий і з перестроюванням 2 з версії 0,36: підручникові значення, зафіксовані за замкненими формулами navsignal) збігається зі значенням цієї моделі для CW і відрізняється від того, що вона виводить для шуму, узгодженого з C/A (1,5), та для плоского шуму від нуля до нуля без нормування в смузі (2,2); звіт друкує обидваspectrum (SpectrumScenario, SpectrumModel::bin_psd_w_per_hz, SpectrumModel::band_state, effective_cn0_multi_dbhz, system_temp_k, Jammer::power_fraction_in, Jammer::duty)
Введення та виведення записів SigMF і оцінки спектра Велча для комплексних IQsigmf: читання й запис записів Signal Metadata Format (JSON .sigmf-meta з основними полями global, captures та annotations; сирі .sigmf-data як cf32_le, ci16_le або ci8, цілочисельні декодери спільні з realdata::iqif::load_iq), усе на рядках і буферах байтів. spectrum::welch_psd: періодограми з вікном Ганна, з перекриттям і усередненням, зі спектральною густиною, на власному перетворенні за основою 2 у цьому крейті (spectrum::fft_in_place). Ці дві частини і становлять validated-твердження. spectrum::synthesise_iq породжує модель як IQ, а розділ [iq] виду spectrum проводить модель через IQ і SigMF до Велча та порівнює з моделлю; його розділ [recording] оцінює реальний запис (у нативних збірках); синтез і ці порівняння з моделлю лежать поза межами validated-твердженняVALIDATEDscipy 1.18.1 scipy.signal.welch (BSD-3-Clause) з тим самим періодичним вікном Ганна, перекриттям, масштабуванням густини, без вилучення тренда й з двобічним усередненням за середнім: кожен бін у межах 1e-12 відносної похибки (спостережено 6.0e-14) на 27 випадках, із кількістю сегментів, узятою з власної спектрограми scipy. sigmf-python 1.13.0 (LGPL-3.0, запускається як інструмент) записує п'ять сторонніх записів (cf32_le, ci16_le, ci8, два записи з анотаціями, ненульовий перший sample_start), які крейт декодує побітово ідентично з однаковими основними полями, і читає записи крейту назад побітово ідентично; схема метаданих SigMF v1.2.6 не повідомляє жодної помилки для метаданих крейту. Допуски зафіксовано до першого порівняння. Поза межами твердження: spectrum::synthesise_iq і порівняння [iq] та [recording] з моделлю (у синтезу немає єдино правильної відповіді; періодичний чирп показує лінії, френелівські пульсації та крайові хвости, яких немає в гладкій моделі, повна потужність у межах 2 %), угода про масштабування цілих до дробових (крейт ділить на 32767 і 127, автомасштабування sigmf-python на 2^15 і 2^7, що специфікація залишає відкритим; порівняння використовує сирі коди), багатоканальні записи та типи даних, які читач відхиляєsigmf (read, write, encode, decode, parse_meta, meta_to_json); spectrum (welch_psd, fft_in_place, synthesise_iq)
Положення планет у Сонячній системі за кеплерівськими елементами JPL StandishГеліоцентричні положення Меркурія, Венери, барицентра Земля–Місяць, Землі, Марса, Юпітера та Сатурна за таблицею Standish 1 (1800 рік н. е. – 2050 рік н. е.) і всіх восьми планет за таблицями 2a/2b (3000 рік до н. е. – 3000 рік н. е., з членами середньої аномалії b, c, s, f), які крок за кроком дотримуються алгоритму зі сторінки JPL і повернуті до ICRF (International Celestial Reference Frame) за нахилом екліптики зі сторінки; Земля відокремлюється від барицентра за лунним рядом Монтенбрука й Гілла та відношенням мас. Скомпоновано як ephem_provider::AnalyticSolarSystem, тож будь-яке тіло доступне відносно будь-якого іншого, і може запускатися як вид solar-systemVALIDATEDГеліоцентричні геометричні вектори JPL Horizons DE441 (екліптичні та ICRF), отримані після комітів попередньої реєстрації 80451866, 8d38a28b і 558cc807. Поріг: для кожної планети й складової RMS не більше ніж 1.0x від наближених похибок з Explanatory Supplement 3rd ed. Table 8.10.1 (рядок EMB для Землі); поділ Земля–EMB перевіряється безпосередньо за DE441 399 мінус 3, не більше 0,3 град і 8,1 км на кожній епосі 1950–2050 (поріг довжини 8,1 км походить із точності лунного ряду, заявленої у власній документації ефемерид Kshana з посиланням на Монтенбрука й Гілла, і не перевірявся за книгою; виміряне значення 6,09 км лежить близько до нього). Статистику RMS обрано, знаючи, що попереднє порівняння на 27 епохах досягало 1.87x від номіналу в максимумі; похибки в окремих епохах сягають 3.83x (3.87x у випадку ICRF). Supplement не визначає свої значення як RMS. Випадок B повертає обидві сторони за нахилом екліптики IAU 1976, введеним у тесті, тож поворот не перевіряється сам за собою. Вибір таблиці за замовчуванням в AnalyticSolarSystem не перевіряється (тести примусово задають таблицю 1). Уран і Нептун за таблицею 1 — окремий рядок MODELLEDephem (standish_state, standish_elements, standish_nominal_error, ecliptic_to_icrf); ephem_provider (AnalyticSolarSystem); solar_system (SolarSystemScenario)
Положення Сонця, Місяця, Меркурія та Венери з ядра DE440 на епохи UTC (KernelEphemeris)Геометричні положення Сонця, Меркурія, Венери, Землі та Місяця одне відносно одного (осі J2000/ICRF, метри) з ядра JPL DE440 через ephem_provider::KernelEphemeris на епохи UTC: імена тіл відображаються на коди NAIF, UTC проходить через таблицю високосних секунд, а TT до TDB — через дочленний ряд TDB-TT із двома членами, ядро читається власним читачем рушія. Тіло, яке ядро містить лише як барицентр системи (від Марса до Нептуна, Плутон у de440s), відхиляється і ніколи не підміняється. Рядок Standish без ядра залишається шляхом для браузера та резервним шляхомVALIDATEDSkyfield 1,54 (MIT) зі своєю таблицею високосних секунд, своїм TDB-TT і власним читачем того самого NAIF de440s.bsp (jplephem), запущений як окрема програма на епохи UTC. Попередньо зареєстровано (0bfafe6d) до появи фікстури, сітку засіяно хешем цього коміту, з порогом 5e-5 с, помноженим на відносну швидкість (заявлена точність рушія для двочленного TDB-TT), плюс 1e-13 барицентричної відстані плюс 1e-5 м, для кожної складової. Результат: усі 600 у межах, найгірше 0,66 порога (2,96 м на швидкій парі, власна похибка ряду TDB-TT). Мутація: TT, використаний як TDB, не проходить на 33 порогах. Обидві сторони читають DE440: це перевіряє провайдера та його ланцюг часу, а не DE440. Поза межами твердження: планети далі за Венеру як тіла (de440s містить лише їхні барицентри), супутники планет і точність нижче двочленного ряду TDB-TT (кілька метрів для найшвидших пар)ephem_provider (KernelEphemeris::relative_position_utc, utc_to_tdb_jd2); naif_kernel; timescales
Світловий час між тілами Сонячної системиНьютонівський односторонній світловий час від будь-якого тіла до будь-якого іншого, прийнятий на епоху, розв'язаний радіометричним розв'язувачем світлового часу з нерухомою точкою (radiometric::light_time_solution, передавач у своєму запізнілому положенні) через solar_system::link_on на будь-якому EphemerisProvider; вид solar-system запускає його на аналітичній Сонячній системі в геліоцентричній системі відліку (solar_system::link). Двосторонній діапазон з radiometric::two_way_range і затримка Шапіро від Сонця з radiometric::shapiro_delay повідомляються окремо і зовнішньо не порівнюються. Видається для кожного тіла щодо спостерігача та для будь-якої додаткової лінії видом solar-system, а для низхідної лінії від тіла до Землі — видом body-pntVALIDATEDОдносторонній ньютонівський світловий час низхідної гілки JPL Horizons DE441 LT (VEC_CORR=LT, спостерігач у центрі Землі), попередньо зареєстровано (480037d3, поправка 54d5c86f, що змінила лише крок вузлів інтерполяції після того, як перше отримання не пройшло передумову точності інтерполяції 10 м, до порівняння будь-якого світлового часу) з порогом 1e-6 с на світловий час; розв'язувачу подано барицентричні положення DE441, щоб ітерація із запізнілим передавачем була помітною (розв'язувач першої ітерації помиляється до 0,1 с). На аналітичних положеннях Standish світловий час настільки добрий, наскільки добрі ці положення (див. рядок положень планет); реалізована лінія трактує Сонце як інерційний центр, що лишається в межах цієї похибки положення, але окремо не validated. two_way_range і shapiro_delay зовнішньо не порівнюютьсяradiometric (light_time_solution, two_way_range, shapiro_delay); solar_system (link, link_on); ephem_provider (AnalyticSolarSystem)
Уран і Нептун за таблицею Standish 1, Плутон і швидкості планетПоложення Урана й Нептуна за таблицею Standish 1 (типова в межах 1800 рік н. е. – 2050 рік н. е.), Плутона за рядком таблиці 1 від 1992 року, якого вже немає на поточній сторінці JPL, і геліоцентрична швидкість кожної планети: двотільна похідна із середнім рухом, що випливає з елементів, плюс поворот еліпса через швидкості перигелію, нахилу й вузлаMODELLEDВиміряно за JPL Horizons DE441 (ті самі закомічені фікстури), але не validated: заявлені значення таблиці 1 для Урана й Нептуна перевищено до 2,0 і 5,2 разів відносно геліоцентричних положень DE441 (Нептун вкладається в них відносно барицентричних положень, що наводить на думку, що підгонка була не геліоцентричною), сторінка не заявляє жодної похибки для Плутона, а для швидкостей опублікованої межі не існує. Таблиці 2a/2b вкладаються у свої значення для Урана й Нептуна і покриті валідованим рядкомephem (standish_state, StandishElements::state_at_mean_anomaly, Planet::Pluto); solar_system (position_label)
Положення Місяця та семи великих супутників (Фобос, Деймос, галілеєві супутники, Титан)Геоцентричний Місяць за рядом Монтенбрука й Гілла (чий член -1.3972 град на століття вже відносить його до рівнодення J2000) та планетоцентричні положення й швидкості Фобоса, Деймоса, Іо, Європи, Ганімеда й Калісто за середніми елементами JPL Solar System Dynamics у площині Лапласа кожного супутника, зі швидкістю середньої довготи, взятою зі швидкості синхронного обертання IAU (таблиця друкує період із замало цифр, щоб утримати фазу), та Титана за моделлю обертання IAU (супутник на мінус тілозв'язаній осі x на середній відстані), оскільки надрукований рядок площини Лапласа для Титана не відтворює Horizons навіть на власній епосіMODELLEDВиміряно за ефемеридами супутників JPL Horizons (DE441, MAR099, JUP365, SAT441), закомічено в tests/fixtures/solar_system/horizons_satellites_icrf.csv із запитом і датою отримання; для середніх елементів чи для розміщення за моделлю обертання опублікованої точності не існує, тож зафіксовані пороги ловлять регресії, а не validate. Середні елементи не враховують резонансних і сонячних збурень, а вікове прискорення Фобоса не моделюєтьсяephem (satellite_state, Satellite, SatelliteMethod, moon_icrf, moon_icrf_velocity); ephem_provider (AnalyticSolarSystem)
Фізичні сталі кожного тіла Сонячної системи та звіт про всю системуBody отримує Меркурій, Венеру, Юпітер, Сатурн, Уран, Нептун, Плутон, Фобос, Деймос, Іо, Європу, Ганімед, Калісто й Титан (гравітаційний параметр, опорний радіус, J2 там, де опублікований, із радіусом, до якого він віднесений, полюс і нульовий меридіан IAU), пошук за іменем і запис BodyFacts (код NAIF, клас, батьківське тіло, екваторіальний і середній радіус); вид solar-system повідомляє їх для всіх вісімнадцяти тіл разом із положеннями, світловими часами та треком орбіти за один оберт, а кожне тіло позначене VALIDATED або MODELLEDMODELLEDПереписування опублікованих сталих, кожна з посиланням там, де визначена: гравітаційні параметри з записів тіл JPL Horizons і таблиці фізичних параметрів супутників JPL, радіуси з таблиць фізичних параметрів JPL (IAU WGCCRE 2015), полюси та нульові меридіани від Робочої групи IAU з картографічних координат і елементів обертання (середні значення, без швидкості T і періодичних членів), J2 з Smith et al. 2012, Iess et al. 2018 і 2019 та Jacobson 2009 і 2014. Перевірено на внутрішню узгодженість (період обертання Юпітера за швидкістю System III, кожне J2 за своїм опорним радіусом), а не за зовнішнім оракулом. 0,30 раунд 2: значення GM прийнято з gm_de440, а елементи Фобоса й Деймоса з pck00011, тож 0 з 84 сталих чотирнадцяти доданих тіл тепер відрізняються від NAIF (було 12), що є перевіркою переписування і не враховується. 0,36: орієнтацію IAU в системі, пов'язаній із тілом, і GM чотирнадцяти доданих тіл виділено у власний рядок VALIDATED («IAU body orientation and gravitational parameter of the fourteen added solar-system bodies»); цей рядок зберігає решту. J2 і середній радіус цитуються, а не validated; положення у звіті спираються на власні рядки; а prime_meridian_deg у звіті для Землі, Місяця та Марса лишається на умовних сталих (до 6.6e-3, 2.8e-2 і 9.6e-4 рад від IAU_<BODY>). Ревізії 0,30: Phobos GM 7.087e5 -> 7.087546066894452e5, Deimos 9.62e4 -> 9.615569648120313e4, Uranus 5.7939506103e15 -> 5.793951256527211e15, Neptune 6.83509997e15 -> 6.835103145462294e15, Pluto 8.69326e11 -> 8.696138177608748e11 м³/с²; екваторіальний радіус Фобоса 13,1 -> 13,0 км; prime_meridian_deg тепер включає квадратичні та періодичні члениbody (Body::by_name, Body::facts, Body::prime_meridian, SOLAR_SYSTEM, BodyFacts); solar_system (SolarSystemScenario, position_label)
Орієнтація IAU і гравітаційний параметр чотирнадцяти доданих тіл Сонячної системиBody::iau_rotation_et, поворот від J2000 до тілозв'язаної системи IAU для Меркурія, Венери, Юпітера, Сатурна, Урана, Нептуна, Плутона, Фобоса, Деймоса, Іо, Європи, Ганімеда, Калісто й Титана з кожною швидкістю на століття, квадратичним і періодичним членом, які тіло має в pck00011, та поле гравітаційного параметра mu тих самих чотирнадцяти тіл. Сонце, Земля, Місяць і Марс мають умовні сталі, що належать іншим рядкам, і не охопленіVALIDATEDNAIF SPICE Toolkit (CSPICE N0067 через spiceypy) pxform('J2000', 'IAU_<BODY>') на pck00011.tpc, незалежна реалізація тієї самої моделі обертання IAU, і NAIF gm_de440.tpc для GM, фікстури згенеровано окремою програмою, що не викликає жодного коду Kshana (tests/fixtures/body_orientation_spice_oracle/, NOTICE.md). Попередньо зареєстровано 154bc54 (з початковим порогом 1e-9 рад від c2434204) до появи фікстури свіжої епохи; свіжу фікстуру перегенеровано незалежно, і вона ідентична побайтово. GM є переписуванням DE440, перевіреним за опублікованим файлом, а не незалежним визначенням GM. Результати: docs/design/evidence/mr08-body-orientation/RESULTS.mdbody (Body::iau_rotation_et, Body::iau_angles_et, Body)
Позиціонування навколо будь-якого тіла Сонячної системи з локальним угрупованням і лінією далекого космосу із ЗемлеюВид body-pnt: орбітальний апарат або поверхневий посадковий модуль навколо тіла, обраного за іменем, навігує за односторонніми псевдодальностями від навігаційного угруповання Уокера навколо тіла (двотільні орбіти з віковим дрейфом за J2 тіла, невідомий годинник користувача) і необов'язковою безгодинниковою двосторонньою дальністю від Землі, причому напрям і відстань до Землі беруться з аналітичних ефемерид на кожній епосі; лінії візування, перекриті сферою тіла, та маска висоти над поверхнею; на кожну епоху — GDOP і PDOP лише за угрупованням (orbit::dop), формальна невизначеність положення з рядком Землі та без нього і засіяні фікси за Гауссом–Ньютоном (batch_ls::gauss_newton) обома способами, зі світловим часом і круговим проходом від тіла до ЗемліMODELLEDЗамкнені форми та самоузгодженість: третій закон Кеплера для періоду ретранслятора, радіус орбіти й радіус поверхні, що зберігаються протягом прогону, додавання вимірювання, яке ніколи не збільшує формальну невизначеність, і засіяні похибки, що узгоджуються з коваріацією. Орбіти ретрансляторів ігнорують треті тіла (збурення Юпітера на ретранслятори навколо Європи не моделюється), шум гауссів на заданих рівнях, а модель вимірювання миттєва, тож це не validated за навігаційними даними жодної місіїbody_pnt (BodyPntScenario, formal_sigma, fix_error); orbit (dop); batch_ls (gauss_newton); mars_pnt (chord_clears_sphere); mars_frame (bodyfixed_to_inertial)
Геометрія угруповань Уокера та опубліковані номінальні слоти GPS, Galileo і ГЛОНАССГенератори виду constellation-design: схеми Walker delta і star у конвенції T/P/F (крок вузлів 360/P або 180/P, крок у площині 360·P/T, зсув фази між площинами 360·F/T), а також базове та розширюване 24-слотове угруповання GPS, пресети Galileo і ГЛОНАСС, побудовані за їхніми опублікованими номінальними елементами та розміщені в земній фіксованій системі за грінвіцьким годинним кутом, який наводять їхні документиVALIDATEDОпубліковані документи агентств: Galileo Open Service Service Definition Document issue 1,1 (European GNSS Service Centre) Tables 1 і 23, опорне угруповання на 2016-11-21 00:00 UTC; GLONASS Interface Control Document edition 5,1 (2008) розділ 5,2, формула слотів для довготи вузла й аргумента широти; GPS Standard Positioning Service Performance Standard 5th edition (April 2020) Tables 3.2-1, 3.2-2 і 3.2-3, включно зі стовпцем перетину екватора слідом на землі, що є незалежним викладом земної фіксованої геометрії, яку пресет має відтворювати. Це підтверджує генератори та переписування; фаза середньої орбіти та вузли нахиленої геосинхронної орбіти BeiDou не опубліковані і не охопленіconstellation (WalkerSpec::elements, gps_slots, galileo_walker, glonass_slots, GPS_BASELINE_SLOTS, GPS_EXPANDABLE_SLOTS)
Глобальне геометричне погіршення точності базового угруповання GPSРушій покриття constellation-design на базовому 24-слотовому пресеті GPS за умов додатка B до GPS Standard Positioning Service Performance Standard (SPS PS) (одна зоряна доба, 287 п'ятихвилинних кроків, глобальна сітка 4 x 4 град, зважена за косинусом широти, усе у видимості, маска 5 град, один годинник приймача): глобальний розподіл HDOP, медіана PDOP і доступність PDOP не більше 6, глобально та в найгіршій точціVALIDATEDGPS SPS PS 5th edition (April 2020) Appendix B sections B.3.2.2 і B.3.2.3, опублікований глобально усереднений розподіл HDOP повністю заповненого базового 24-слотового угруповання (медіана 0,94, 90 % 1,16, 95 % 1,25, 98 % 1,37, середнє 0,96), Table 3.8-1 (доступність PDOP) і Table B.3-1 (ансамблевий PDOP деградованого угруповання, використаний лише як верхня межа), плюс виведена вручну замкнена формула для однієї епохи. Розподіли VDOP і PDOP повного угруповання опубліковані лише як рисунок, тож PDOP зафіксовано односторонньо; найгірша просторово-часова точка (HDOP 2,40 і VDOP 5,22 тут, 2,49 і 5,43 опубліковано) залежить від сітки і повідомляється, а не фіксуєтьсяconstellation (coverage, dop_at, NormalAccum)
Карти покриття та геометричного погіршення точності для довільних багатогрупових проєктів у масштабі навколо будь-якого центрального тілаВид constellation-design поза двома зафіксованими випадками: явні та багатошарові проєкти, кілька угруповань за прогон з одним годинником приймача на угруповання, Земля, Місяць і Марс зі сталих тіл, пресет BeiDou (змодельовано фазу середньої орбіти та перетин нахиленої геосинхронної орбіти на 118 град E), кількість супутників у видимості для кожної комірки, GDOP, PDOP, HDOP, VDOP і доступність, проріджені треки на землі та префільтр видимості за широтою підсупутникової точки, що запускає проєкт на 5 000 супутників на сітці 10 град за частку секундиMODELLEDВнутрішня узгодженість: повний перебір висот, зведення, пораховані вручну та через orbit::dop, і замкнена геометрія Уокера та геосинхронна геометрія. Двотільні орбіти з необов'язковим віковим J2, сферичне тіло з локальною вертикаллю вздовж радіуса, лише геометрична видимість (без потужності сигналу, справності супутників, рельєфу чи збурень від третіх тіл), а відносна фаза між системами береться з різних опорних епох, тож це не знімок на жодну дату. Огляд 0,30, знахідка (лишається MODELLED): пресети досягають опублікованих односторонніх нижніх меж доступності DOP (BeiDou OS Performance Standard 3,0, Galileo OS SDD) на 100 %, але коли PDOP рушія подвоєно в робочій копії, вони все одно досягаються (найгірша точка 99,36 %), тож ці межі не можуть виявити навіть похибку 100 % у величині, яку обчислює цей рядок; їх посилення після прогону було б постфактумним допуском. Для підвищення потрібне двобічне порівняння значень DOP на ідентичній геометрії з наперед заданим допуском. 0,30 раунд 2 (tests/coverage_dop_full_oracle.rs, попередня реєстрація add671d6), знахідка (лишається MODELLED): положення, висота, азимут і треки на землі Orekit 12,2 з GDOP/PDOP/HDOP/VDOP gnss_lib_py 1.0.4 (спільний годинник) і зворотною матрицею numpy (один годинник на угруповання) збігаються за кожним порогом на проєктах Galileo, GPS, BeiDou, Galileo+GPS (по одному годиннику) і Землі з 1584 супутників (DOP у межах 2e-14 відносно, однаковий фікс, доступність і кількість видимих). На проєктах Місяця та Марса елементи, положення, видимість і треки збігаються, але DOP перевищує наперед заданий відносний поріг 1e-9 у комірках, де найбільший PDOP становить 1434 або більше (до 8e-6), а 4 комірки відрізняються на одну епоху фікса на чисельно сингулярній геометрії (півот рушія 1e-10 проти рангу numpy), тож рядок не validated. Ревізії 0,30: опорним годинником TDOP/GDOP тепер є угруповання з найменшим номером у видимості (constellation-multi-gnss-coverage глобальний GDOP max 2,2236 -> 2,1205, середнє 1,122 -> 1,131), а кількості видимих за угрупованнями підсумовуються як ціліconstellation (coverage, ConstellationDesignScenario, beidou_slots, body_by_name)
Ланцюгова місія за різними видами сценаріїв на одному спільному часовому графікуФази виду campaign: кожна фаза запускає один або кілька сценаріїв наявних видів через run_toml, зчитує їхні виходи в іменовані канали (похибка часу годинника та охоронний поріг, середнє ефективне відношення несівної до густини шуму та поріг відстеження, вертикальний рівень захисту та межа тривоги, похибка положення, супутники у відстеженні, прапорці тривог) за пресетами для кожного виду або явними шляхами результатів, розміщує їх на початку фази й утримує до спільної сітки, з межами фаз і подіями; стан передається далі через carry (канал продовжується від кінцевого значення попередньої фази), handoff (номер попередньої фази, записаний у наступний сценарій) та end_at (фаза закінчується в момент, який обчислив прогін, наприклад час виявлення монітором спуфінгу); хеш кампанії та дайджест за кожним результатом учасниківMODELLEDТотожності композиції щодо автономних прогонів тих самих видів: однофазна кампанія відтворює автономний вихід біт у біт, перенесений зсув дорівнює власному останньому відліку попереднього прогону, а фаза, завершена за end_at, має довжину, точно рівну часу виявлення прогону. Адитивне перенесення через межу фаз і утримання нульового порядку є вибором моделювання, і кожна фаза настільки добра, наскільки добрий вид, що її запускав; жодну ланцюгову місію не звірено з виміряноюcampaign (run_campaign_detailed, run_chain, presets, extract, to_svg)
Перебори параметрів і засіяні ансамблі Монте-Карло за будь-яким видом сценаріюРозділи sweep (від одного до трьох ключів із крапками будь-якого виду, за значеннями осей загального перебору, за потреби з ансамблем у кожному вузлі) і monte_carlo виду campaign: реалізація k запускається з base_seed + k; кожна метрика повідомляє середнє, стандартне відхилення, перцентилі 5/50/95 за найближчим рангом і перцентильний бутстреп-довірчий інтервал 95% для середнього із фіксованим зерном (inertial::metric_stat); одиниці метрик беруться з власного блоку units виду, що перебираєтьсяMODELLEDЗамкнена форма випадкового блукання фази за білого частотного шуму, дисперсія q_wf tau (NIST Technical Note 1337), для статистичного апарату та побайтова рівність з автономними прогонами для засівання. Це перевіряє арифметику ансамблю на власній моделі годинника рушія, а не на зовнішньому наборі данихcampaign (run_sweep, run_monte_carlo, ensemble); sweep (GenericAxis, coords_of, set_dotted_value); inertial (metric_stat)
Кілька сценаріїв за спільних умов із зведеним підсумкомРозділ compose виду campaign: іменовані спільні значення (наприклад, потужність і положення одного глушника), записані в кожен складник за ключами, до яких їх прив'язано, запуск кожного складника та для кожної метрики найменше, найбільше й середнє значення серед складників із зазначенням складника; одиниці метрик мають збігатися в усіх складникахMODELLEDТотожність композиції щодо автономного прогону. Арифметика спільних умов — це облік; фізика належить видам-складникам, кожен з яких має власний рядокcampaign (run_compose)
Обмежена оптимізація однієї метрики за параметрами кампаніїРозділ optimize виду campaign (CAP-32): від одного до трьох ключів сценарію з крапками, обмежених [lo, hi] у лінійній або логарифмічній шкалі, одна метрика, прочитана за шляхом результату, мета minimize, maximize або target; метод grid (значення осей перебору) або детермінований симплекс Нелдера–Міда в нормованих координатах із проєкцією на коробку та стандартними коефіцієнтами; відсутня або нескінченна метрика оцінюється як найгірша і лишається в trace; за runs > 1 метрика є середнім за спільними зернами; кожне обчислення є справжнім прогоном названого виду, перелічене в trace і враховане в дайджесті відтворюваностіMODELLEDЛише внутрішньо: точна замкнена форма -20 log10(range) рівняння лінії, незалежна повна сітка перебору того самого виду та функція Розенброка. 1-D поріг раунду 1: NOT MET (попередньо зареєстрована коробка виключила розв'язок 3 дБ; оптимізатор зупинився на межі), зафіксовано в docs/design/evidence/cap32-optimize/RESULTS.md і повторно не оцінювалося. Оптимум є локальним для коробки та початкової точки; твердження про глобальний оптимум немаєcampaign::optimize (run_optimize, nelder_mead)
Замкнені форми для обмеженої смуги для будь-якого далекомірного сигналу: потужність у смузі та джитер стеження за кодом ранній–пізній порівняно з опублікованими значеннями, з перехресною перевіркою смуги Габора та спектрального розділення зі зсувомnavsignal: інтеграл синуса (sine_integral), частка потужності BPSK-R у двобічній смузі в замкненій формі (bpsk_power_in_band_closed_form), габорівська ширина смуги обмеженого BPSK у замкненій формі (bpsk_gabor_bandwidth_closed_form_hz), джитер ранньо-пізньої системи фазового автопідлаштування за затримкою, когерентний і некогерентний, у обмеженій смузі для будь-якого спектра одиничної площі за Betz & Kolodziejski 2009 (dll_jitter_bandlimited_s) та його габорівська межа за зникаючого рознесення (dll_jitter_small_spacing_limit_s), коефіцієнт спектрального розділення BPSK зі зсувом у замкненій формі (bpsk_offset_ssc_closed_form), спектр Galileo E5 AltBOC(15 10) (altboc_15_10_psd) і розбирач міток модуляції (parse_modulation); використовується видом leo-signal для кожного проєкту сигналуVALIDATEDЗовнішньо зафіксовано: 90,3 відсотка потужності головної пелюстки, когерентний ранньо-пізній джитер у заданій робочій точці, табличні значення інтеграла синуса та власний коефіцієнт спектрального розділення BPSK 2/(3 R_c) за нульового зсуву. Лише внутрішні перехресні перевірки, а не зовнішня валідація: замкнена форма габорівської ширини смуги обмеженого BPSK та її асимптота, а також коефіцієнт спектрального розділення BPSK зі зсувом за ненульових зсувів, обидва виведені тут і перевірені квадратурою. Опубліковані замкнені форми: спектр BPSK-R у вигляді квадрата sinc і його 90 відсотків потужності головної пелюстки (Kaplan & Hegarty, Understanding GPS/GNSS, 3rd ed.); когерентний ранньо-пізній джитер стеження за кодом sigma^2 = B_L d / (2 C/N0) chips^2 (Kaplan & Hegarty, розділ 8) і його узагальнення на обмежену смугу з габорівською межею (Betz & Kolodziejski, Generalized Theory of Code Tracking with an Early-Late Discriminator, Part I, IEEE Transactions on Aerospace and Electronic Systems 45(4), 2009); таблиці інтеграла синуса Abramowitz & Stegun (Table 5,1); коефіцієнт спектрального розділення як перетворення Фур'є квадрата автокореляції (Betz 2001). Спектр AltBOC перевірено лише на одиничну площу та положення пелюсток (вираз з Galileo Open Service Signal-in-Space Interface Control Document інтегрується до 8 і ділиться на це значення).navsignal (sine_integral, bpsk_power_in_band_closed_form, bpsk_gabor_bandwidth_closed_form_hz, dll_jitter_bandlimited_s, dll_jitter_small_spacing_limit_s, bpsk_offset_ssc_closed_form, altboc_15_10_psd, parse_modulation)
Максимальний доплерівський зсув навігаційного супутника на низькій навколоземній орбіті, що визначає розмір пошуку захопленняleo_signal::max_doppler_hz: найбільший доплерівський зсув супутника під час проходу над головою на масці висоти для кругової орбіти, v R_E cos(el) / (R_E + h) помножене на f / c, за власною несівною та висотою орбіти кожного пресету; вид leo-signal додає складники генератора та користувача і перетворює це на доплерівські біниVALIDATEDОпубліковані значення: максимальний доплерівський зсув Xona Pulsar X1 від 32 до 34 кГц (Leclère, Marathe & Reid, ION GNSS+ 2025, https://arxiv.org/abs/2509.19551); доплерівський зсув Iridium до +/-36 кГц (Resilient Navigation and Timing Foundation, Recent PNT Improvements and Test Results Based on Low Earth Orbit Satellites). Обертання Землі не враховано, що зсуває значення до приблизно 2,3 кГц; обидва опубліковані значення досягаються і без нього.leo_signal (max_doppler_hz)
Проєкти сигналів позиціонування, навігації та часу на низькій навколоземній орбіті: стеження за кодом, захоплення, сумісність з GNSS і компромісний вибір діапазону для будь-якої системиВид leo-signal: параметризовані проєкти сигналів (діапазон, ширина смуги передавання, виділення ITU; компоненти захоплення, даних і пілотний із спектрами BPSK(n), BOC(m,n), MBOC або плоскими, частками потужності, піднесучими FDMA, довжинами кодів і швидкостями даних) зі вбудованих публічних файлів пресетів (Xona Pulsar, Iridium STL, сигнал нагоди Starlink, CentiSpace, загальний проєкт C-діапазону та загальні проєкти UHF/L/S/C/широкий C, кожен із URL джерела, а неопубліковані значення позначено як REPRESENTATIVE) або записаних безпосередньо; для кожного сигналу спектральна густина потужності в обмеженій смузі, частки потужності в смузі, габорівська ширина смуги, джитер коду залежно від C/N0 та рознесення і точність далекометрії, простір пошуку захоплення, ймовірність виявлення квадратичним детектором і середній час послідовного та кодово-паралельного захоплення, коефіцієнт спектрального розділення в напрямку GPS L1 C/A, Galileo E1, GPS L5, Galileo E5a, E5b і AltBOC та з них із погіршенням C/N0, а також допуск J/S для CW, широкосмугових і узгоджених завад за ланцюгом SSC виду spectrum; компромісний вибір діапазону за іоносферною затримкою, втратами у вільному просторі, точністю далекометрії за однакового C/N0 і однакового EIRP та стійкістю до глушників; і якісні перевірки форми проєкту порівняно з описаним вимірюваннямMODELLEDВалідовані замкнені форми двох рядків вище, тотожність хибної тривоги квадратичного детектора P_d(snr = 0) = P_fa і середній час захоплення за Холмсом, а також зведення до власного ланцюга SSC виду spectrum (той самий код Jammer::ssc). Самі проєкти є вхідними даними: пресети з позначкою REPRESENTATIVE або WORKSHOP не є опублікованими специфікаціями, покращені спектри Feher QPSK, маніпуляції зсувом коду та OFDM наближені, а перевірки форми порівнюють форми, а не відкалібровані рівні.leo_signal (LeoSignalScenario, SignalDesign, Component, Shape, code_jitter_m, gabor_bandwidth_hz, detection_probability, threshold_for_pfa, mean_acquisition_time_s, ssc_leo_into_gnss, ssc_gnss_into_leo, jammer_tolerance, gnss_victim, preset, public_signal)
Багатодіапазонний водоспад спектра (UHF, L, S, C) із проєктними сигналами та глушниками для кожного діапазонуВид spectrum, розширений за межі L-діапазону: діапазони, задані як пресет проєкту сигналу (змальований з усіма компонентами, обмежений смугою передавання, C/N0 і J/S віднесені до компонента, що відстежується) або як власна несівна й модуляція; додаткові панелі водоспаду за будь-яким діапазоном частот на тому самому часовому графіку та колірній шкалі; широкосмуговий (загороджувальний) глушник поруч із CW, вузькосмуговим, чирпом і узгодженим шумом; J/S і ефективне C/N0 для кожного діапазону за незмінним ланцюгом коефіцієнтів спектрального розділенняMODELLEDЗведення до наявного ланцюга spectrum і рівняння антиглушіння виду jamming (односкладниковий діапазон дає ті самі числа, що й до розширення) та спектрів сигналів із валідованих рядків. Потужності глушників, часовий графік, смуги входу приймача та проєктні сигнали є вхідними даними, а проєктний сигнал обрізається на своїй смузі передавання (без позасмугового випромінювання).spectrum (Band::unit_psd, Band::tracked_power_dbw, BandDesign, BandCfg, PanelCfg, SpectrumScenario, Waveform, multi_band_svg); leo_signal (SignalDesign::to_spectrum_band)
Коефіцієнти питомого згасання в дощі для будь-якого діапазону, який використовує лінія LEO-PNTРівняння ITU-R (International Telecommunication Union, Radiocommunication Sector) P.838-3 від (1) до (5): k_H, alpha_H, k_V, alpha_V з апроксимацій кривих таблиць від 1 до 4, залежні від траси й поляризації (k, alpha) та питоме згасання k R^alpha; використовується складником дощу виду leo-passVALIDATEDITU-R P.838-3 (03/2005) Table 5, власні табульовані k_H, alpha_H, k_V, alpha_V Рекомендації, закомічені в tests/fixtures/leo_link/p838_3_table5.csv з URL PDF і датою отримання. Таблицю округлено до надрукованих цифр, тож порогом є це округленняleo_link::itu (p838_coefficients, p838_k_alpha, rain_specific_attenuation_db_km)
Довгострокове згасання в дощі на похилій трасі лінії Земля–космосITU-R P.618-14 розділ 2.2.1.1 кроки від 2 до 10 (похила та горизонтальна траса нижче висоти дощу, коефіцієнти горизонтального скорочення та вертикального коригування, A0.01 і його масштабування до 0,001 % – 5 % середнього року), причому висота дощу (P.839) і R0.01 (P.837) є вхідними даними, бо рушій не містить жодної цифрової карти; застосовується для кожного діапазону та епохи видом leo-passVALIDATEDФайл прикладів валідації ITU-R Study Group 3 CG-3M3J-13-ValEx-Rev8.3.0 для P.618-14, як його табульовано на сторінках валідації ITU-Rpy, з висотою дощу P.839-4 для кожного майданчика з тих самих прикладів; закомічено в tests/fixtures/leo_link/p618_14_rain_attenuation.csv з URL і датою отримання. Підтверджує процедуру за заданих h_R і R0.01, а не картиleo_link::itu (p618_rain_attenuation_db, RainPath)
Тропосферна амплітудна сцинтиляція на лінії Земля–космосITU-R P.618-14 розділ 2.4.1 кроки від 3 до 9 (опорна сигма з N_wet, ефективна довжина траси, коефіцієнт усереднення антеною, глибина завмирання для 0,01 % – 50 % часу), де N_wet є вхідним значенням або обчислюється з температури, вологості й тиску за виразами ITU-R P.453-14; нижче 4 ГГц вид leo-pass позначає значення як екстраполяціюVALIDATEDПриклади валідації ITU-R Study Group 3 (CG-3M3J-13-ValEx-Rev8.3.0) для сцинтиляції за P.618-14, з N_wet за P.453-14 для кожного майданчика з тих самих прикладів; закомічено в tests/fixtures/leo_link/p618_14_scintillation.csv з URL і датою отримання. Вираз вологої рефракції з температури та вологості цим рядком не охопленийleo_link::itu (p618_scintillation_db, wet_refractivity, ScintillationPath)
Втрати на проникнення в будівлю для користувача LEO-PNT у приміщенніITU-R P.2109-2 Annex 1 рівняння від (1) до (10) з Table 1: втрати, що не перевищуються з імовірністю P, для традиційних і термічно ефективних будівель на висоті траси біля фасаду, від 80 МГц до 100 ГГц; застосовується для кожного діапазону та епохи до користувача в приміщенні видом leo-pass (випадок UHF у приміщенні)VALIDATEDЗначення робочої книги валідації ITU-R Study Group 3 Clutter and BEL, як їх переписано в скрипті валідації еталонної реалізації MATLAB (github.com/eeveetza/p2109), закомічено в tests/fixtures/leo_link/p2109_bel.csv з URL і датою отримання. Робоча книга друкує три десяткові знакиleo_link::itu (p2109_building_entry_loss_db, BuildingClass); detection (normal_inv_cdf)
Іоносферна затримка першого порядку для кожного діапазону, безіоносферна комбінація та втрати у вільному просторіГрупова затримка 40,3 STEC/f^2 для кожного діапазону; безіоносферні коефіцієнти f1^2/(f1^2 - f2^2) і -f2^2/(f1^2 - f2^2) та підсилення шуму sqrt(a1^2 s1^2 + a2^2 s2^2) для будь-якої пари діапазонів; втрати у вільному просторі 20 log10(4 pi R f/c) з linkbudget::free_space_loss_db у формі «кілометри–мегагерци»VALIDATEDIS-GPS-200 розділ 20.3.3.3.3.2, який наводить відношення групових затримок L1/L2 gamma = (77/60)^2, що випливає з масштабування першого порядку за 1/f^2, і формула передавання Фріса (Proc. IRE, 1946). Підтверджує закони масштабування, а не похилий TECleo_link::iono (group_delay_m, iono_free_coefficients, iono_free_noise_amplification); leo_link (fspl_db); linkbudget (free_space_loss_db)
Максимальний доплерівський зсув, який бачить нерухомий користувач від орбіти LEO або MEOleo_link::geometry::max_static_user_range_rate: пошук за кожним положенням на орбіті й кожним користувачем на горизонті супутника на круговій орбіті, з обертанням Землі, найбільшої швидкості зміни дальності, плюс орбітальна та найбільша земна фіксована швидкості супутника; повідомляється для кожного діапазону як доплерівська обвідна видом leo-pass і використовується як вікно пошуку холодного старту його енергоощадної моделіVALIDATEDLeclere, Marathe and Reid, Insights into Xona Pulsar LEO PNT: Constellation, Signals, and Receiver Design, ION GNSS+ 2025, arXiv 2509,19551, Table 1 (нерухомий приймач на сфері 6371 км, обертання Землі як єдиний інший ефект): 37751,7 / 33628,5 / 31813,4 / 4018,4 Гц на L1. Охоплює кругові двотільні орбітиleo_link::geometry (max_static_user_range_rate, DopplerEnvelope, doppler_hz)
Прохід LEO-PNT і бюджет його лінії для кожного діапазону порівняно із супутниками MEO GNSS у видимостіВид leo-pass: супутники із проєктного проходу, елементів, TLE через SGP4 або угруповання Уокера з constellation-design; для кожного діапазону та епохи кути візування, дальність, замкнені форми швидкості зміни дальності та прискорення дальності (перевіряються кожного прогону за центральними різницями та повідомляються), втрати у вільному просторі, EIRP з ізофлюксною, гаусовою або плоскою діаграмою, патч-антена, напівсферична або ізотропна антена користувача, газове згасання за ITU-R P.676-10 Annex 2, дощ і сцинтиляція за P.618, втрати на проникнення в будівлю за P.2109, поляризаційна розузгодженість, шумова температура системи, C/N0, доплерівський зсув і його швидкість та затримка першого порядку з косого TEC за Klobuchar або вертикальним TEC, масштабованого часткою Чепмена нижче супутника; безіоносферні пари із кодовим шумом на піку проходу; несівні Galileo або GPS із прийнятих потужностей з їхніх інтерфейсних документів через той самий приймачMODELLEDЗамкнені форми та самоузгодженість: тотожності швидкості зміни дальності та прискорення дальності порівняно з числовими похідними, ізофлюксне посилення, що компенсує зростання дальності, підручникові межі поляризаційних втрат, якісне спостереження LEO порівняно з GNSS (дзвоноподібний прохід на кілька хвилин із піком на кілька дБ вище за плоскі несівні GNSS 44–51 дБ-Гц). EIRP і діаграми є опублікованими прийнятими потужностями, перетвореними на EIRP, або репрезентативним вибором, газовий складник є застарілим спрощеним методом P.676-10, і ніщо не порівняно з виміряним C/N0 для LEOleo_pass (LeoPassScenario); leo_link::geometry (design_pass, link_geometry, numerical_check, SatMotion, UserMotion); leo_link::antenna; leo_link::itu (p676_gaseous_attenuation_db); leo_link (system_noise_temperature_k, cn0_dbhz)
Іменовані пресети систем LEO-PNT із заявленими джерелами та рушій, незалежний від системиleo_link::presets: загальний багатодіапазонний (UHF, L, S, C), загальний C-діапазон, Xona Pulsar X1/X5, Iridium STL, Starlink як сигнал нагоди лише з доплерівським зсувом, CentiSpace і необов'язковий пресет Celeste IOD, кожен із джерелом, позначеним PUBLIC (з URL), REPRESENTATIVE або WORKSHOP, причому workshop-джерело міститься в необов'язковому файлі пресету Celeste IOD, що компілюється лише тоді, коли цей файл існує; кожен діапазон і орбіту можна перевизначити в сценарії, а сценарій може взагалі не називати пресетуMODELLEDПереписування наведених публічних значень і перевірка узгодженості: EIRP, заданий з опублікованої мінімальної прийнятої потужності, передбачає опубліковане максимальне значення в межах 0,5 дБ із плоскою діаграмою. Це перевірка розкиду дальності, а не валідація антени жодного супутника; репрезентативні пресети не роблять жодних тверджень про реальну системуleo_link::presets (SystemPreset, BandPreset, all, by_id, gnss_meo); leo_pass (resolve_bands)
Енергоощадне позиціонування: час до першого фікса та енергія на фікс залежно від робочого циклуleo_link::energy і розділ [iot] виду leo-pass: когерентне інтегрування, обмежене швидкістю зміни доплерівського зсуву, квадратичні некогерентні суми до порога виявлення, пошук за доплерівськими бінами в обвідній статичного користувача орбіти (холодний) або в допоміжному вікні (гарячий), паралельний або послідовний пошук коду, час навігаційного повідомлення за холодного старту, енергія на фікс і час роботи батареї за різних інтервалів фіксів, для кожного діапазону LEO та сигналу GNSSMODELLEDВнутрішня узгодженість заявленої проєктної моделі: кожен вибір потужності, порога й пошуку є вхідним даним, а модель ігнорує неоднозначність меж бітів, пропущене виявлення та повторне захоплення. Не порівнювалося з виміряним приймачемleo_link::energy (fix_budget, duty_curve, IotReceiver, IotSignal); leo_pass (iot_section)
Глобально усереднені ваги похибки дальності сигналу в просторі для будь-якої висоти орбітиleo_navmsg::sisre::sisre_weights: радіальна вага w_R і квадрат поперечної ваги w_AC^2 як середні значення cos^2 і половини sin^2 надирного кута лінії візування за користувачами, рівномірно розподіленими на видимому сегменті Землі вище маски висоти, для будь-якого радіуса орбіти, інтегруванням за Сімпсоном; використовується кожним показником SISRE leo-navmsg (на 510 км, w_R 0,46 і w_AC^2 1/2.5)VALIDATEDОпублікована таблиця вагових коефіцієнтів SISRE Монтенбрука, Штайгенбергера та Гаушільда (2018), Multi-GNSS signal-in-space range error assessment - Methodology and results, Advances in Space Research 61(12):3020-3038, doi 10.1016/j.asr.2018.03.041: GPS 0,98 і 1/49, GLONASS 0,98 і 1/45, Galileo 0,98 і 1/61, BeiDou MEO 0,98 і 1/54, BeiDou IGSO/GEO 0,99 і 1/126. Те саме усереднення, обчислене на радіусах LEO, дає ваги LEO; опублікованої таблиці для LEO не зафіксовано, тож значення для LEO є застосуванням валідованого методу, а не окремо валідованимиleo_navmsg::sisre (sisre_weights, StatsAcc)
Користувацький алгоритм широкомовних ефемерид Galileo ICD як основа навігаційного повідомлення LEOleo_navmsg::elements::kepler_point: кеплерівське обчислення за Galileo OS SIS ICD (рівняння Кеплера, поправки другої гармоніки, земний фіксований вузол), написане окремо від обчислювача RINEX рушія, що повертає положення з аргументом широти, нахилом і вузлом, на яких будується система поправок вздовж/впоперек/радіально, і додаткові члени Liu et al. 2025VALIDATEDПоложення ECEF eph2pos RTKLIB 2.4.2-p13 (незалежна реалізація того самого алгоритму ICD) для справжніх широкомовних записів BKG/IGS від 2024-09-10, обидва закомічені з походженням у tests/fixtures/rinex_sp3_interop (NOTICE, rinex_ecef_reference.txt, brdc_multignss_slice.rnx). Це підтверджує кеплерівський користувацький алгоритм; поправки вздовж/впоперек/радіально, додані зверху, охоплені власними рядками, а члени Liu — рядком 22-параметрової моделі Liu et al. 2025leo_navmsg::elements (kepler_point, kepler_frame, ephemeris_at, sat_state)
Перевірка кадру CRC-24Q для навігаційного повідомлення LEOleo_navmsg::codec::crc24q: породжувальний поліном 0x1864CFB, початкове значення 0, без відображення, без фінального XOR, перевірка, яку кадр LEO Kshana несе над кожним попереднім байтомVALIDATEDКонтрольне значення каталогу CRC для цих параметрів (каталог CRC reveng.sourceforge.io, CRC-24/LTE-A: ширина 24, поліном 0x864CFB, init 0, check 0xCDE703), які є параметрами CRC-24Q з RTCM 10403 і Galileo OS SIS ICD, та приклад кадру повідомлення типу 1005, надрукований у RTCM 10403leo_navmsg::codec (crc24q, encode, decode)
Фітер широкомовних ефемерид LEO та похибка дальності сигналу в просторі залежно від інтервалу апроксимації та періоду оновленняФітер і компроміс виду leo-navmsg: еталонна орбіта, проінтегрована із зональною гравітацією J2–J6 або EGM2008 до обраного ступеня та опором, і засіяний вільний або кермований годинник; апроксимація Левенберга–Марквардта кеплерівського набору Galileo на неособливих елементах зі слабкими апріорними, потім поліноми поправок вздовж, впоперек і радіально лінійним методом найменших квадратів; поліном годинника, апроксимований за вирахуванням релятивістського складника користувача; SISRE (лише орбіта та з годинником) за періодами використання, центрованими у своїх вікнах апроксимації, залежно від інтервалу апроксимації та періоду оновлення. Validated-частина: 16-параметрова кеплерівська апроксимація та її SISRE лише для орбіти залежно від інтервалу апроксимації на справжніх прецизійних орбітах, а також проінтегрована еталонна орбіта J2–J6/EGM2008(20, 70)/опір порівняно з Orekit 12,2 у межах 4,6 мм за 6 год (поріг 2 см, той самий вхід густини); поліноми поправок, апроксимація годинника (засіяний вільний або кермований годинник) і компроміс за періодом оновлення лишаються modelledVALIDATEDСправжні прецизійні наукові орбіти як еталон (операційні редуковано-динамічні орбіти TU Graz IfG/ITSG, вільні для будь-якого використання з подякою; значення SHA-256 у NOTICE фікстури), апроксимовані 16-параметровим набором на дугах 20 і 30 хв, порівняно зі статистикою, яку Liu et al. 2025 (Remote Sensing 17(16):2894, CC BY 4,0) публікують для тих самих супутників і днів: RMS уздовж, впоперек і радіально кожен у межах 1.5x (виміряно від 0,804 до 1,087), SISRE у межах 1.5x (виміряно від 0,716 до 0,809) і ваги SISRE в межах 0,005 від його Table 2 (виміряно 0,0007); допуски зафіксовано до порівняння. Покомпонентний критерій надає тесту зубів: обнулення швидкості нахилу залишає кожне відношення SISRE в межах 1.5x, але не проходить критерій поперечної складової. Рівномірне відношення SISRE від 0,72 до 0,81 — це відношення статті: її надруковані значення SISRE використовують ваги Table 2 без піднесення до квадрата замість власного Eq. 9, якого дотримується Kshana (Montenbruck et al. 2018). Проінтегрована еталонна орбіта (зональні J2–J6, EGM2008 до ступеня 20 і 70, опір) узгоджується з Orekit 12,2 (CS GROUP, Apache-2.0) і Hipparchus 3,1, поширена з того самого початкового стану в тих самих системах відліку з тим самим входом густини, у межах 4,55 мм за 6 год (поріг 0,02 м зафіксовано до прогону, попередня реєстрація 65e4d46c). Поза межами твердження: поліноми поправок, апроксимація годинника та компроміс за періодом оновлення, що зберігають внутрішні перевірки (двотільна еталонна орбіта, відновлена 16-параметровим набором до значень нижче 1 мм, і внутрішня перехресна перевірка numpy експортованих повідомлень на GRACE-FO з його годинником CLK1B, написана й запущена цим проєктом і не є незалежним оракулом)leo_navmsg::fit (fit_message, lstsq, polyfit); leo_navmsg::truth (TruthOrbit, TruthClock); leo_navmsg (sequence_stats, LeoNavmsgScenario)
Оновлення навігаційного повідомлення LEO посеред проходу з перевіркою неперервності в момент перемиканняАналіз midpass-update виду leo-navmsg: найвищий прохід над користувачем у межах інтервалу пошуку, повідомлення за глобальним розкладом із періодами використання, центрованими у своїх вікнах апроксимації, і в кожен момент перемикання стрибок положення 3D, стрибок годинника, стрибок псевдодальності користувача, найбільший стрибок за будь-якою видимою лінією візування (замкнена форма за надирним конусом), похибка дальності до і після та PASS/FAIL щодо порогаMODELLEDВнутрішня узгодженість (тотожність стрибка та межа конуса порівняно з вибіркою повним перебором). Поріг є вхідним даним; жодної опублікованої вимоги до неперервності LEO не зафіксованоleo_navmsg (LeoNavmsgScenario::midpass, worst_case_jump, elevation, geodetic_to_ecef)
Задокументоване двійкове кодування навігаційного повідомлення LEO з бюджетом похибки квантуванняleo_navmsg::codec: власний кадр Kshana (преамбула, версія, модель, довжина, корисне навантаження, CRC-24Q) для чотирьох моделей ефемерид, поліном годинника, SVID, видання даних, діапазон, справність, набір Klobuchar, коефіцієнти NeQuick-G і параметри UTC, кожне поле із заявленою шириною та кроком (field_table), квантування з відмовою за виходу за діапазон і бюджет найбільшої зміни положення та годинника, яку спричиняє зміна на півкроку кожного поля протягом вікна чинностіMODELLEDТотожності туди-назад і сам бюджет. Формат є власним форматом Kshana, змодельованим за опублікованими складниками повідомлень і набором полів Galileo ICD; це не бітова розкладка Celeste чи будь-якої іншої системи (жодна не є публічною), тож зовнішньої розкладки для валідації немаєleo_navmsg::codec (encode, decode, write_payload, read_payload, field_table, quantisation_budget)
Експорт навігаційних повідомлень LEO у стилі RINEX-4 і CSVleo_navmsg::text: блок у стилі RINEX-4 (заголовок запису > EPH, рядок супутника та епохи з трьома складниками годинника, рядки широкомовної орбіти D19.12) з літерою системи L і типами записів KP16, KRAC, LU22 та APOL, позначений у кожному заголовку як розширення Kshana, що не є частиною RINEX 4,02, і таблиця CSV зі схемою стовпців за замовчуванням і схемами пресетів, кожна з імпортеромMODELLEDТуди-назад і календарна арифметика. RINEX 4,02 не визначає записів навігації LEO (IGS RINEX 4,02), тож розкладка є задокументованим розширенням з arXiv 2401,17767 як попереднім рівнем; зовнішнього читача для неї, щоб звірити, не існуєleo_navmsg::text (rinex_export, rinex_import, csv_export, csv_import, calendar, from_calendar)
22-параметрова ефемеридна модель LEO Liu et al. 2025 та її апроксимація на справжніх прецизійних орбітахваріант Liu22 моделі leo_navmsg::elements::EphemerisModel, що обчислюється kepler_point з Liu22Extra: 16-параметровий набір плюс швидкість великої півосі a_dot, швидкість середнього руху n_dot, що входить як n = sqrt(mu/A0^3) + dn + n_dot tk, переписана зі статті Eq. 1 (порівняння апроксимації не залежить від цієї умовності масштабу, тож зміст переданого значення nDot тут не validated), та одно- й триоберотні гармоніки радіуса Crs1, Crc1, Crs3, Crc3 за нескоригованим аргументом широти. Її апроксимація через leo_navmsg::fit::fit_message бере початок і оцінювач з розділу 2,3 статті (кожна поправка починається з нуля; звичайний метод найменших квадратів без апріорних; обмеження статті у 100 ітерацій), але зупиняється за правилом збіжності параметрів Kshana (кожен крок менший за 1e-3 від його формальної сигми) замість правила статті про зміну RMS нижче 0,1 мм. Апроксимовано на дугах 20 і 30 хвилин табульованої прецизійної орбітиVALIDATEDВиміряно: операційні редуковано-динамічні орбіти TU Graz IfG/ITSG (вільні для будь-якого використання з подякою; значення SHA-256 у NOTICE фікстури) GRACE-A, GRACE-C, Sentinel-2A і Sentinel-6A є еталоном, апроксимовані на дугах 20 і 30 хв і порівняні з 22-параметровими рядками (a_dot, n_dot, Crs3, Crc3, Crs1, Crc1) таблиць 4, 5, 6 і 8 Liu, Su, Xie, Zhou and Qu (2025), Remote Sensing 17(16):2894, doi 10.3390/rs17162894 (CC BY 4,0; числа цитуються, а не вбудовуються). Пороги зафіксовано до першого порівняння: RMS уздовж, впоперек і радіально кожен у межах 1.5x двобічно та SISRE у межах 1.5x для кожного супутника та обох довжин дуги. Повторний прогін раунду 2 було попередньо зареєстровано (aa559785) до зміни рушія та до отримання відкладених орбіт: апроксимація за Eq. 1 і розділом 2,3 статті плюс дві нові відкладені доби на супутник щодо тих самих надрукованих значень. Виміряно: кожне відношення для днів зі статті від 0,755 до 1,138, а кожне відношення для відкладених діб від 0,683 до 1,186. Розкрито: відношення вздовж траси першого прогону 1,71 (Sentinel-2A) і 1,86 (Sentinel-6A) для 20 хв були відомі до повторного прогону. Найнижчі відношення SISRE для відкладених діб лежать поблизу нижньої межі 0,667, бо надруковане у статті SISRE використовує ваги Table 2 без піднесення до квадрата (див. рядок 16-параметрового фітера). Попередня реєстрація помилково описала правило зупинки статті (стаття зупиняється за зміни RMS нижче 0,1 мм); збережено попередньо зареєстроване правило збіжності параметрів. Мутація: відновлення апріорних із центром у нулі дає для Sentinel-6A 20 хв вздовж траси 1,08 проти 0,70 см (1,54), що не проходить. Перевірка рецензента: умовність до версії 0.30 (множник 1/2 на n_dot) лишає кожне значення незмінним, тож порівняння обмежує функціональний простір 22-параметрової моделі та якість її апроксимації, а не умовність n_dot. Поза межами твердження: поліном ATOMIC ECEF і синтетична п'ятивисотна таблиця порівняння моделей, які мають власний рядок MODELLEDleo_navmsg::elements (kepler_point, Liu22Extra); leo_navmsg::fit (fit_message, fit_kepler, initial_params, formal_sigma); leo_navmsg::truth (TruthOrbit)
Поліном ECEF ATOMIC з нульовим годинником і синтетичне порівняння моделей LEO для п'яти висотваріант EcefPoly моделі leo_navmsg::elements::EphemerisModel: поліном ECEF для кожної осі без складників годинника, релятивістський складник із -2 r.v/c^2, оцінений щодо кермованого годинника. Також аналіз порівняння моделей (liu_comparison над LIU2025_TABLE), який апроксимує 22-параметричну модель на п'яти висотах зі статті на 20-хвилинних дугах орбіти, проінтегрованої в Kshana, і друкує результат поряд з опублікованим SISREMODELLEDФакти про модель ATOMIC з InsideGNSS (поліном 6-го порядку, чинність близько однієї хвилини, оновлення кожні 30 с, годинник кермований, похибка годинника 24 см). Це описові факти без опублікованих чисел для порівняння. Таблиця для п'яти висот друкує SISRE Liu et al. 2025 (8,88, 6,21, 2,87, 2,11 і 0,75 см на 320, 475, 786, 966 і 1336 км на 20-хвилинній дузі) поряд з апроксимацією Kshana на власній проінтегрованій орбіті (4,25, 2,87, 2,20, 1,25 і 0,51 см; відношення від 0,46 до 0,77), не зафіксовано, бо стаття апроксимувала справжні прецизійні орбіти, а еталонні орбіти відрізняються. 22-параметрова модель і сама апроксимація валідовані на справжніх орбітах у рядку «22-параметрова ефемеридна модель LEO Liu et al. 2025 та її апроксимація на справжніх прецизійних орбітах». Ревізія 0,30: значення таблиці змістилися з апроксимацією за умовністю статті (GRACE-A 5,40 -> 4,25 см, GRACE-C 4,12 -> 2,87, Sentinel-2A 2,95 -> 2,20, HY-2A 2,38 -> 1,25, Sentinel-6A 0,70 -> 0,51)leo_navmsg::elements (EcefPoly, ephemeris_at); leo_navmsg (liu_comparison, LIU2025_TABLE)
Одночастотні іоносферні служби та служби UTC навігаційного повідомлення LEOleo_navmsg::services: широкомовна затримка Klobuchar на будь-якій несівній (модель L1 рушія, масштабована на (f_L1/f)^2), ефективний рівень іонізації NeQuick-G Az = ai0 + ai1 mu + ai2 mu^2 з правилами для всіх нулів і [0, 400] sfu, та перехід від системного часу до UTC за трьома випадками високосних секунд з ICDVALIDATEDGNSSTk 15.3.1 (ARL:UT, LGPL-3.0, коміт 55ea3344, запускається як окрема програма через обв'язку; жодного коду GNSSTk не вбудовано): getIonoCorr від KlobucharIonoNavData на L1, L2 і L5, getEffIonoLevel від NeQuickIonoNavData для Az з правилами для всіх нулів і [0, 400] sfu та getOffset від GPSLNavTimeOffset для дрейфу UTC, у межах 1e-3 м, 1e-6 sfu і 1e-9 с; а також ERFA через pyerfa 2.0.1.5 (BSD-3), яка виводить UTC з таблиці високосних секунд IERS, для трьох випадків високосних секунд з ICD на справжніх високосних секундах 2015-06-30 і 2016-12-31, зокрема на показі 23:59:60, у межах 1e-9 с (GNSSTk не реалізує правило довжини доби випадку (b) з ICD, тож тут не використовувався, як записано в попередній реєстрації). Вхідні дані — справжні коефіцієнти заголовків IGS BRDC. Попередньо зареєстровано (6a66994b; поправка 88807a7e закомітила підмножину сітки високосних секунд із 21 602 рядків до порівняння будь-якого значення Kshana). Інтегрування електронної густини NeQuick не реалізовано, і для супутника LEO, що летить усередині іоносфери, поправка не робитьсяleo_navmsg::services (klobuchar_delay_m, effective_ionisation_level, system_to_utc)
Доплерівський зсув, який має обробляти наземний приймач від навігаційного супутника LEOТочна швидкість зміни дальності супутника, чиї земні фіксовані положення й швидкість походять із двотільної орбіти з віковим дрейфом J2 та обертанням Землі (leo_fusion::geom::EarthOrbit::state, швидкість є точною похідною положення за часом), перетворена на доплерівський зсув на несівній; найбільший абсолютний доплерівський зсув, швидкість його зміни та ривок вище маски висоти за вікно (leo_fusion::doppler::doppler_envelope), що повідомляється для кожної системи LEO видом leo-pvt у режимі dopplerVALIDATEDОпубліковані значення, відтворені із заявленої орбіти та несівної: доплерівський зсув Iridium до плюс-мінус 36 кГц (Resilient Navigation and Timing Foundation, Recent PNT improvements and test results based on LEO satellites) і максимальний доплерівський зсув Xona Pulsar X1 від 32 до 34 кГц (Leclère, Marathe and Reid, ION GNSS+ 2025, arXiv:2509,19551). Значення Iridium є округленою верхньою межею, звідси поріг 5%. Швидкість зміни доплерівського зсуву та ривок повідомляються, але не валідовані: змодельований ривок проходу над головою для Pulsar X1 становить близько 1,0 Гц/с^2 проти опублікованого 1,26leo_fusion::geom (EarthOrbit); leo_fusion::doppler (range_rate, doppler_envelope)
Позиціонування за доплерівським зсувом LEO, за одним і кількома супутниками, зі станами дрейфу годинника та швидкостіПакетне позиціонування за Гауссом–Ньютоном за швидкістю зміни дальності з аналітичними частинними похідними (d rho_dot / d r = -(I - u u^T)(v_s - v_u)/rho, d/dv = -u, d/d drift = 1), постійна швидкість користувача як опція, псевдовимірювання висоти для поверхневого користувача, демпфовані кроки; формальна коваріація в істинній точці; проєкції вздовж траси, впоперек траси та вертикальна; точність одного проходу залежно від поперечного зсуву користувача; час найбільшого зближення. Режим doppler виду leo-pvt додає похибку залежно від довжини вікна та режим сигналів нагоди лише за доплерівським зсувом (пресет starlink-sop)MODELLEDВнутрішня узгодженість: відновлення без шуму, кінематична тотожність rho_ddot = (|v|^2 - rho_dot^2 + d.a)/rho, продиференційована чисельно, нульовий доплерівський зсув у момент найбільшого зближення, дзеркальний розв'язок одного проходу та засіяні похибки порівняно з формальною коваріацією. Значення Starlink з Kozhaya, Saroufim and Kassas (NAVIGATION 72(1), 2025: близько 2 м за 20 с з трьома супутниками) є лише порівнянням: змодельований приймач із досконалими ефемеридами та всіма похибками в сигмі доплерівського зсуву 30 Гц у кілька разів менш точний на тому самому вікні, а приймач і частота вимірювань зі статті не відтвореніleo_fusion::doppler (solve, formal_covariance, single_pass_geometry, offset_site, closest_approach); leo_fusion::pvt_kind (run_doppler)
Спільне псевдодальномірне позиціонування за GNSS і LEO з міжсистемними зсувами та моделями похибок для кожного сигналуФікси за зваженим методом найменших квадратів Гаусса–Ньютона за будь-якого поєднання систем, один годинник приймача на систему (міжсистемний зсув оцінюється разом із положенням) або відомий широкомовний зсув на опорній шкалі часу; сигми окремих вимірювань задає викликач, за замовчуванням це тепловий шум системи фазового автопідлаштування за затримкою рушія (navsignal::dll_code_jitter_chips) за C/N0 на висоті, поєднаний із похибкою дальності сигналу в просторі; незважений DOP (GDOP, PDOP, HDOP, VDOP, TDOP) у локальній геодезичній системі, формальні сигми схід–північ–зеніт і сигми зсувів; спільний режим joint виду leo-pvt порівнює фікси лише GNSS, лише LEO та злиті й перебирає DOP залежно від кількості доданих супутників LEOMODELLEDВиведений вручну DOP для чотирьох супутників (один супутник у зеніті та три на горизонті з рознесенням 120 град, чия нормальна матриця обертається вручну), структурна тотожність, за якою система з власним годинником і одним супутником не додає геометрії, відновлення положення, годинника та зсуву без шуму і засіяні похибки порівняно з коваріацією. Лише внутрішні перевірки; не порівнювалося з виходом приймача. Зовнішнє порівняння 0,30, знахідка (лишається MODELLED): на добі багатосистемних даних IGS (ABMF 2018-05-13, GPS і Galileo C1C, широкомовні ефемериди, Klobuchar) міжсистемний зсув узгоджується з RTKLIB v2.4.2-p13 rnx2rtkp (медіана різниці -0.11 нс після виправлення широкомовної групової затримки 0,30, -0.35 нс до нього; поріг 1 нс), але лише 93,6 % із 280 епох (93,2 % до виправлення) лежать у межах 3 м від координати ITRF2020 проти попередньо зареєстрованих 95 %. Сам RTKLIB досягає 88,2 % на тих самих даних, тож поріг лежить за межами можливостей одночастотного широкомовного позиціонування на цій станції та в цю добу, а не є розбіжністю розв'язувача; тест порівняння закомічено ігнорованим. 0,30 раунд 2, суворіші вхідні дані за незмінного порога 3 м / 95 % / 1 нс, знахідка (лишається MODELLED): з безіоносферною парою Galileo E1/E5a (попередня реєстрація 6927e039) у межах 3 м лежать 79,9 % епох (RTKLIB 67,9 %); з прецизійними орбітами, годинниками, зсувами антен супутників і кодовими зсувами CODE MGEX (попередня реєстрація 7d8c3597) 94,2 % (RTKLIB 94,1 %), а міжсистемний зсув відрізняється від RTKLIB на -1.03 нс, бо одиночний режим RTKLIB ігнорує зсуви антен супутників (+0,04 нс, коли обидва їх опускають)leo_fusion::joint_pvt (solve, dop, code_sigma_dll_m, SystemClock); leo_fusion::system (SystemCfg, System); leo_fusion::pvt_kind (run_joint)
Збіжність прецизійного точкового позиціонування лише за GNSS і з доповненням LEOРозширений фільтр Калмана для PPP із плаваючими неоднозначностями за безіоносферними кодом і фазою: статичні координати, білий годинник приймача, один міжсистемний зсув на кожну додаткову систему, вологу зенітну затримку у вигляді випадкового блукання, спроєктовану на 1/sin(висота), плаваючу неоднозначність на кожну дугу супутника, що додається за сходу й скидається за заходу, та похибку прецизійних орбіти й годинника, спільну для коду та фази супутника, яка обробляється як одне корельоване дворядкове оновлення у формі, стабілізованій за Джозефом; вимірювання змодельовано з тієї самої моделі; час збіжності (похибки нижче порогів до кінця прогону), криві похибок і усереднений за прогоном NEES положення лише для GNSS і для кожного випадку LEO, запуск як вид leo-pppMODELLEDТест хі-квадрат за NEES є перевіркою внутрішньої узгодженості (еталон і фільтр поділяють модель). Тренд порівнюється з Li et al., LEO constellation-augmented multi-GNSS for rapid PPP convergence, J. Geod. 93:749-764 (2019), doi 10.1007/s00190-018-1195-2: multi-GNSS 9,6 хв скорочується до 7,0, 3,2, 2,1 і 1,3 хв з 60, 96, 192 і 288 супутниками LEO. Вбудований сценарій дає 7,4, 4,8, 3,2, 2,7 і 2,3 хв із власними репрезентативними оболонками 1000 км, 60 град, шумом і станціями; угруповання, шум і визначення збіжності зі статті не відтворені, тож це MODELLED-узгодженість тренду (монотонне скорочення, найбільше угруповання менше третини часу лише GNSS), а не валідаціяleo_fusion::ppp (run, PppScenario, LI_2019)
Точність позиціонування 5G у нетерестріальних мережах залежно від ширини смуги сигналуГраниця Крамера–Рао для часу приходу за середньоквадратичною (габорівською) шириною смуги, c/(2 pi beta sqrt(2 (C/N0) T)), для плоского спектра OFDM (beta = B/sqrt(12)), спектра BPSK з обмеженою смугою (чисельник у замкненій формі) або будь-якого спектра квадратурою, і для частоти комплексного тону, sqrt(3/(2 pi^2 (C/N0) T^3)); фікси за часом приходу низхідної лінії з невідомим годинником приймача та одно-супутниковий доплерівський фікс за прохід у діапазоні S 3GPP n256 MSS, запуск як вид ntn-positioningVALIDATEDОпубліковані опрацьовані значення (P1): Bachl, Lei and Nabeel, arXiv:2608,10270 (2026), межі для одного SSB в NR NTN, відтворені з карти SSB 3GPP TS 38,211 через власні числові функції Kshana (W_rms 1,9616 проти 1,96 МГц, sigma_t 38,755 проти 39 мкс, sigma_f 100.79/87.28 проти 101/87 Гц, sigma_rho 0.5970/0.5831 проти 0.60/0.58 м, кожне в межах половини одиниці надрукованої останньої цифри); середньоквадратичні ширини смуги BPSK-R з Betz 2001 Table 1 (1.128/3.477 проти 1.1/3.5 МГц, додатково); коваріації фіксів за часом приходу та доплерівським зсувом узгоджуються з numpy 2.4.6 numpy.linalg.inv на експортованій геометрії (P2; 5e-15 і 1.2e-5 відносно, пороги 1e-5 і 1e-3). Попередньо зареєстровано (9f2875db; частина C 0d66dccd). Фікс рушія joint_pvt::formal_sigma_enu (межа, обчислена в істинному положенні, а не в зашумленому фіксі) було написано після того, як перший прогін на 200 кГц не пройшов на 6.5e-5, і його повторно запущено за незмінного допуску. Форми для плоского спектра та комплексного тону, які запускає сценарій (gabor_bandwidth_flat_hz, doppler_crb_sigma_hz), досягають перевірки P1 через внутрішні модульні тести тотожностей у крейті. Межі для каналу без багатопроменевості, а не досягнута точність. Ревізія 0,30: ntn-5g-positioning toa_median_sigma_3d_m 2,0903959 -> 2,0903962 м (NR 5 МГц) і 25,938613 -> 25,938839 м (NB 200 кГц)leo_fusion::ntn (gabor_bandwidth_flat_hz, gabor_bandwidth_bpsk_hz, gabor_bandwidth_numeric_hz, rms_duration_numeric_s, toa_crb_sigma_m, doppler_crb_sigma_hz, frequency_crb_sigma_hz, NtnScenario::geometry, NtnScenario); leo_fusion::joint_pvt (formal_sigma_enu)
Передавання часу до UTC за допомогою LEO залежно від C/N0 і генератора приймачаВимірювання годинника від кожного супутника LEO у видимості в відомому положенні, об'єднані за оберненою дисперсією з моделі шуму псевдодальності, відфільтровані двостановим (фаза, частота) фільтром Калмана, чий шум процесу є білим і випадковоблукальним частотним шумом класу генератора (slot_timing::ClockNoise, clock_state::ClockClass; дисперсія інерційного дрейфу з holdover::coast_phase_variance), засіяний еталонний годинник з тих самих рівнів і вираз системного часу до UTC з IS-GPS-200 розділ 20.3.3.5.2.4 з невизначеністю широкомовного зсуву, доданою як зсув для кожного прогону; режим timing виду leo-pvt перебирає генератори й зсуви C/N0MODELLEDВнутрішня узгодженість: опублікований вираз зсуву, обчислений вручну, нормована похибка на 40 зернах і нижня межа, задана невизначеністю зсуву. Значення NIST для приймачів часу Iridium з мініатюрним атомним годинником (менше 40 нс від UTC(NIST) за 40 діб) є лише порівнянням; вбудований сценарій Iridium дає від 10 до 11 нс RMS за номінальної потужності з його репрезентативною похибкою дальності 5 м. Флікерний частотний шум та іоносферна затримка не симулюютьсяleo_fusion::timing (simulate, utc_offset_s, system_to_utc_s); leo_fusion::pvt_kind (run_timing)
Покриття LEO та геометричне погіршення точності для полярних і арктичних користувачів порівняно із MEO GNSSСупутники у видимості та медіанні PDOP, HDOP і VDOP із доступністю залежно від широти, за вибіркових довгот і епох, для систем MEO GNSS окремо, систем LEO окремо та всіх разом, кожна система з власною маскою та моделлю годинника, запуск як полярний режим виду leo-pvt; орбіти є наборами елементів SGP4/SDP4 на епоху перебору (2026-01-01T00:00:00 UTC у полярному режимі), переведеними в земну фіксовану систему на валідованому шляху навколоземних орбіт (IAU 2006/2000A, UT1 = UTC, без руху полюса)VALIDATEDOrekit 13.1.8 (Apache-2.0) з Hipparchus 4.0.3: стани GCRS рушія, повернуті до ITRF за допомогою Orekit (IERS 2010), видимість WGS-84 TopocentricFrame щодо маски кожної системи, org.orekit.gnss.DOPComputer для одного невідомого годинника та NumPy 2.4.6 numpy.linalg.inv (P2) для кількох; зі шляхом, перевіреним щодо python-sgp4 і ERFA (рядок «One Earth-orbit path»). Пороги зафіксовано до прогону (попередня реєстрація 72ea9eb0; T2 і T3 — пороги раунду 2 версії 0,30). Крок TEME -> GCRS, заморожений на J2000, робить тест червоним (4739 збоїв). Лише геометрія; без сцинтиляції, рельєфу чи потужності сигналу. VDOP GNSS зростає до полюса (1,20 на екваторі до 1,51 на 89,9 град для GPS і Galileo у вбудованому сценарії), тоді як навколополярна оболонка LEO там сходиться. Історія: раунд 2 (3254d456) збігся на табульованих двотільних станах; повне твердження раунду 1 D8 щодо власного поширення TLE в Orekit (e947e69d) було знахідкою, SDP4 в Orekit за e = 0 та його IERS 1996 TEME, зафіксованоleo_fusion::polar (latitude_sweep, latitude_sweep_at, element_sets, satellite_states_at); leo_fusion::joint_pvt (dop); sgp4 (MeanElementSet::from_earth_fixed, SgpOrbit, teme_to_itrs_matrix)
Іменовані системи LEO PNT як необов'язкові пресети даних, кожна із джереломВхідні дані, незалежні від системи: кожна система є оболонками Уокера, явними елементами або пресетом GNSS, сигналом (несівна, швидкість чипів, ширина смуги, прийнята потужність або діапазон C/N0), SISRE, сигмою доплерівського зсуву та моделлю годинника; пресети заповнюють лише те, що сценарій залишає, по одному файлу на пресет з джерелами, позначеними PUBLIC (з URL), WORKSHOP або ВИВЕДЕНИМИ, а неопубліковані значення перелічено як репрезентативні: Xona Pulsar X1/X5, Iridium STL, сигнали нагоди Starlink, CentiSpace, репрезентативна система C-діапазону, ефемеридна модель ATOMIC з нульовим годинником і один пресет, виведений із workshop, в необов'язковому файлі пресету Celeste IOD, який вилучається видаленням цього файлу та його сценаріївMODELLEDПереписування наведених публічних значень, перевірене на структуру (кожне публічне джерело має URL, шаблони Уокера діляться рівно, C/N0 з прийнятої потужності над kT за 290 K), а не за зовнішнім оракулом. Репрезентативні значення названо в кожному пресеті, і вони ілюстративніleo_fusion::presets (all, by_id, cn0_range_dbhz, noise_density_dbw_hz); leo_fusion::system (SystemCfg::build)
Одна система LEO-PNT наскрізно: проєкт сигналу, бюджет лінії проходу, навігаційне повідомлення та злите позиціонування, вихід кожної стадії передається наступнійВид leo-pnt-chain: проєкт leo-signal (публічний пресет або вбудований) задає центр, ширину смуги, швидкість чипів і розподіл EIRP діапазону leo-pass; прохід дає C/N0 компонента, що відстежується, і джитер коду в обмеженій смузі для кожної епохи; лінія C/N0 за найменшими квадратами за sin(висота), SISRE повідомлення leo-navmsg (апроксимований на орбіті супутника проходу, плюс заявлений складник визначення орбіти як корінь із суми квадратів) та несівна й швидкість чипів проєкту передаються кожній системі LEO спільного фікса leo-pvt і, за потреби, випадкам LEO в leo-ppp; кожну передачу повідомлено зі значенням і одиницеюMODELLEDСамоузгодженість передач: кожне передане значення дорівнює власному виходу попередньої стадії, а зміна вхідного значення попередньої стадії зсуває кожне залежне від нього значення нижче за ланцюгом. Стадії зберігають власні мітки; ланцюг не додає ні фізики, ні зовнішнього оракулаleo_pnt_chain (LeoPntChainScenario); leo_pass (BandCfg::signal, design_tracking); leo_navmsg (LeoNavmsgScenario::broadcast_sisre); leo_fusion::pvt_kind; leo_fusion::ppp
Виявлення спуфінгу за узгодженістю доплерівського зсуву LEO та геометрії проходуРозділ [spoofer] виду leo-pass: спуфер підробляє, узгоджено за дальністю та швидкістю її зміни, сигнали, які видно в заявленому положенні, що стрибає та/або відсувається від істинного після початку (для кожного діапазону LEO та сигналу MEO GNSS); приймач передбачає кожну швидкість зміни дальності за широкомовною орбітою та незалежним апріорним положенням і швидкістю та перевіряє виміряні швидкості зміни дальності узагальненою статистикою хі-квадрат за найменшими квадратами на вікні епох (дрейф годинника є завадним параметром або з апріорним), на каналах GNSS, каналах LEO та всіх каналах, з тепловим шумом системи фазового автопідлаштування за частотою з C/N0 (Kaplan & Hegarty 2006, розділ 5.6.2); імовірність виявлення з нецентрального закону хі-квадрат за заданої імовірності хибної тривоги, виявлення оголошується за заданої імовірності пропущеного виявленняMODELLEDЗамкнені форми та тотожності, а не зовнішнє вимірювання: градієнт швидкості зміни дальності порівняно з центральною різницею, статистика інформаційної форми порівняно з щільною коваріаційною формою, чистий дрейф годинника, що дає нуль, відсув, пояснений апріорним, що дає не більше |dx|^2/sigma_p^2, статистика квадратична за стрибком. Жодне значення виявлення не порівнювалося з виміряною атакою; спуфер ідеалізований (без підпису за потужністю, кутом приходу чи піком кореляції)leo_link::spoof (range_rate_position_gradient, line_of_sight, fll_frequency_jitter_hz, doppler_consistency_window, doppler_consistency); leo_pass (SpooferCfg, spoof_section)
Виявлення спуфінгу за міждіапазонною узгодженістю багатодіапазонного сигналу LEOДля кожного супутника LEO та пари далекомірних діапазонів розділ [spoofer] формує безгеометричну комбінацію псевдодальності, вилучає модель іоносфери приймача та перевіряє її крок від епохи до епохи щодо кодового шуму двох діапазонів і заявленої допустимої немодельованої швидкості іоносфери (двобічна гаусова, точна ймовірність виявлення); спуфер, що підробляє одні діапазони й не підробляє інші, або кожен діапазон без іоносфери, помітний у момент початку; спуфер, що підробляє кожен діапазон і симулює іоносферу, непомітний, про що результат прямо зазначаєMODELLEDТотожності: крок початку безіоносферного спуфера дорівнює різниці змодельованих іоносферних затримок пари, поріг дорівнює двобічному нормальному квантилю, помноженому на стандартне відхилення кроку, плюс межа швидкості. Модель іоносфери приймача є моделлю рушія, тож справжній залишок нульовий у середньому за побудовою; зовнішнього оракула немаєleo_link::spoof (cross_band_step); leo_pass (spoof_section: pairs, cross_band)
Зондування іоносфери: похилий TEC із дводіапазонної затримки проходу LEOДля кожної пари діапазонів супутника leo-pass звіт дає похилий повний електронний вміст, який безгеометрична кодова комбінація відновлює на піку проходу, (P2 - P1) f1^2 f2^2 / (40,3 (f1^2 - f2^2)), та його 1-сигму з теплового кодового шуму двох діапазонів, тож будь-який багатодіапазонний проєкт LEO-PNT можна оцінювати як іоносферний зондMODELLEDТотожність дисперсії першого порядку, точна за побудовою щодо власної затримки першого порядку рушія (чиє масштабування 1/f^2 VALIDATED щодо IS-GPS-200 у власному рядку); точність обмежена лише тепловим кодовим шумом, без багатопроменевості чи міжчастотних зсувів. 0,30 раунд 2, виміряно (попередня реєстрація 5e795f93), знахідка (лишається MODELLED): глобальна іоносферна карта CODE CODG1330.18I щодо коду ABMF C1C/C2W із зсувами CODE дає 33 із 36 середніх за дугами в межах 3 TECU (найгірше +6,84 TECU на вечірній дузі; RMS на епоху 3,95 TECU) проти порога на кожну дугу; не валідованоleo_pass (IonoFreePair::geometry_free_stec_tecu, geometry_free_stec_sigma_tecu); leo_link::iono::geometry_free_stec_tecu
Коваріація датума місячної системи відліку з оціненими станціями порівняно з 50-цифровою розширеною точністюКоваріація семипараметричного датума Гельмерта сценарію lunar-frame-campaign з оціненими земними станціями (станцію 1 закріплено), як її обчислює lunar_frame_campaign у binary64: спільна інформація Фішера станцій і маяків, накопичена з якобіана затримки, блок станцій маргіналізовано доповненням Шура через якобієвий спектральний обернений, H = AᵀSA, сформована з проєктом Гельмерта та обернена спектрально. Задача погано обумовлена за побудовою (число обумовленості Гельмерта від 2.1e8 до 2.3e8, число обумовленості спільної інформації від 1.6e12 до 3.0e13): відносна зміна 1e-9 у поправці Шура зсуває сигми датума до 28 %. Повідомлено: сім сигм датума, число обумовленості Гельмерта та найслабший напрямок. ТВЕРДЖЕННЯ, ЗВУЖЕНЕ: сигми датума та число обумовленості рушія лежать у межах апріорної межі похибки найгіршого випадку зворотно стійкого конвеєра подвійної точності на цій задачі; це не стверджує, що вони настільки точні, наскільки дозволяє подвійна точність (шлях факторизації приблизно в тисячу разів точніший на тих самих вхідних даних, а опційний розв'язувач квадратного кореня приблизно в десять мільйонів разів), а найслабший напрямок валідовано лише там, де його поріг нижче прямого кута (контроль із закріпленими станціями)VALIDATEDmpmath 1.3.0 (BSD-3-Clause) на 50 значущих цифрах, самоперевірений на 80 (узгодження 1.1e-38 або краще), на закомічених якобіані, вагах і проєкті Гельмерта рушія: власний LU-розв'язок mpmath для доповнення Шура, його обернена для H та його якобієве власне розкладання (P2, незалежна числова бібліотека). Попередньо зареєстровано 804662d5 до появи фікстури, з порогами із формули зворотної похибки першого порядку: стала (3n+1)n + m, помножена на одиничне округлення (Higham, Accuracy and Stability of Numerical Algorithms, Theorem 10,4, форма Tier B), помножена на точну чутливість кожної величини першого порядку до спільної інформації, доповнення Шура та H. Виміряно: сигми датума в межах 4.8e-6 на 2026-03-18 (пороги від 9.6e-2 до 2.2e-1), 9.7e-6 на 2024-01-01 (пороги від 2.8e-2 до 6.9e-2) і 2.0e-14 із закріпленими станціями (пороги від 1.0e-11 до 2.8e-7); число обумовленості в межах 4.6e-6, 1.3e-5 і 4.1e-14. На сценаріях з оціненими станціями пороги є порогами найгіршого випадку й на чотири порядки перевищують виміряну похибку, а поріг найслабшого напрямку там перевищує прямий кут, тож ця одна перевірка не враховується; на контролі із закріпленими станціями найслабший напрямок узгоджується до 6.6e-16 рад проти порога 9.4e-11, виміряно хордою між одиничними векторами (попередній компаратор acos не міг розрізняти кути менші за 1.5e-8 рад; поріг не змінено). Діагностика: маршрути Холецького та QR у NumPy 2.3.5 досягають 9e-9 і 5e-9 на вхідних даних 2024-01-01, його обернений і власний маршрути 2.9e-6 і 6.2e-6: рушій у межах своєї межі, але приблизно в тисячу разів менш точний, ніж маршрут факторизації. Підтверджує лінійну алгебру на закомічених вхідних даних, а не якобіан (це робить ланка SPICE рядка кампанії) і не фізичну точність ілюстративної кампаніїlunar_frame_campaign, fim
Розв'язувач датума інформації квадратного кореня порівняно з 50-цифровою розширеною точністюОпційний розв'язувач інформації квадратного кореня (lunar-frame-campaign solver = "srif"; значення за замовчуванням не змінено), який ніколи не формує й не обертає інформаційну матрицю для датума: QR Хаусхолдера (ортогонально-трикутне розкладання) відбіленого якобіана затримки як оновлення вимірювання фільтра інформації квадратного кореня, земні станції маргіналізуються через хвостовий трикутний блок (чий добуток Грама є доповненням Шура), другий QR від R_bb A для семипараметричного датума Гельмерта, сигми як норми рядків оберненої трикутної та спектр (число обумовленості, найслабший напрямок) з односторонньої якобієвої сингулярної декомпозиції. Скалярні добутки компенсуються безпомилковим добутком із розщепленням Деккера, тож кожна операція є правильно округленою базовою операцією IEEE-754 або квадратним коренем; ідентичність результатів на кожній платформі обґрунтовується з цього, а не перевіряється між платформамиVALIDATEDmpmath 1.3.0 (BSD-3-Clause) на 50 значущих цифрах, самоперевірений на 80 (узгодження 1.4e-43 або краще), на закомічених якобіані, вагах і проєкті Гельмерта рушія (P2, незалежна числова бібліотека: власні LU-розв'язок, обернена, розкладання Холецького та якобієве власне розкладання mpmath). Попередньо зареєстровано b41908c9 до написання розв'язувача, з порогами із межі зворотної похибки першого порядку у формі квадратного кореня: стала QR Хаусхолдера mn плюс (3n+1)n, помножена на одиничне округлення (Higham, Accuracy and Stability of Numerical Algorithms, Theorem 19,4 і Chapter 8) помножене на точні чутливості. Виміряно: сигми датума в межах 3.0e-13 на 2026-06-09 (пороги від 4.1e-7 до 5.3e-7), 1.9e-15 із закріпленими станціями (пороги до 4.8e-12), 3.8e-13 на 2026-03-18 та 2.3e-13 на 2024-01-01, де типовий спектральний розв'язувач помиляється на 4.8e-6 і 9.7e-6; число обумовленості в межах 4.9e-13; найслабший напрямок у межах 1.4e-13 рад (контроль 1.7e-16 проти 5.1e-10). МЕЖА ПЕРЕВІРКИ: пороги засвідчують лише похибки датума нижче приблизно 2e-7 відносно; виміряні значення 1e-13 є спостереженнями, а не тим, що засвідчують пороги. Перевірка відхиляє типовий спектральний розв'язувач (сигми 9.7e-6 проти 2.9e-7 на 2024-01-01; на визначальну дату 1.3e-6 проти 4.9e-7, запас від 1,3 до 2,6) і хибно взяту обернену трикутну (норми стовпців: червоний), але перевернутий знак Хаусхолдера, некомпенсований скалярний добуток і сигми зі спектральної оберненої H, сформованої з множника квадратного кореня (3.7e-9), усе проходять, тож перевірка не показує, що кожен крок квадратного кореня потрібен. Підтверджує лінійну алгебру опційного розв'язувача на закомічених вхідних даних, а не якобіан і не типовий розв'язувач; побітова відтворюваність між платформами обґрунтовується з використаних операцій і перевірена лише як ідентичність повторного прогону на одній платформіlinalg_sr, lunar_frame_campaign
Морські монітори довіри: арифметика, на якій вони ґрунтуються (декодування NMEA, геодезичні зсуви, статистики кінематики та залишків датчиків)Для судна receiver_trust декодує речення NMEA 0183, які випромінюють приймач і його прилади (GGA, RMC, VTG, HDT, VHW, VBW, ZDA, GSV), формує зсув схід–північ між фіксами (maritime::en_offset_m) і з них — статистики, за якими рішення ухвалюють монітори: неявну швидкість, залишок за лічильником шляху, неявне прискорення та неявну швидкість повороту на вікнах 30 с, залишки «курс проти шляхового кута», «лаг проти шляхової швидкості» та висоти антени (медіани за 10 с), а також розкид і зростання відношення сигнал/шум супутників.VALIDATEDЩО ПЕРЕВІРЕНО ЗОВНІШНЬО, сформульовано вузько: (1) декодування кожного поля, яке читають монітори, порівняно з pynmea2 1.19.0 (MIT) на 8 синтетичних журналах (1 086 епох), до 1e-9 в одиниці поля (широта й довгота, висота, відокремлення геоїда, HDOP, швидкості, шляховий кут, курс, відношення сигнал/шум; цілі числа й дати точно; час доби до 1e-6 с), найбільші відмінності на рівні останньої цифри double; (2) зсув схід–північ між двома фіксами як відстань і азимут, порівняно з геодезичною лінією WGS84 з geographiclib 2,1 (MIT) на 223 парах фіксів з базами до 2 км, від -45 до 70 градусів широти й через антимеридіан, до 0,01 м і 0,001 градуса (азимут порівнюється із середнім азимутом геодезичної лінії, напрямком хорди); (3) вхідні статистики моніторів на 341 оцінених епохах синтетичного рейсу тривалістю 400 с з поворотом і стрибком положення, порівняно з перерахунками на Python, які використовують geographiclib для відстані та азимута, pynmea2 для декодування та numpy для медіан і стандартних відхилень: неявна швидкість до 0,005 м/с, залишок за лічильником шляху до 0,02 м, прискорення до 5e-4 м/с^2, швидкість повороту до 1e-3 град/с, медіани залишків і розкид та зростання відношення сигнал/шум до 1e-6. ЩО НЕ ПЕРЕВІРЕНО: довжини вікон, допуски й пороги моніторів є власними правилами цього проєкту; Python відтворює їх з тієї самої документації, тож узгодженість підтверджує реалізацію арифметики, а не правила. Для речення THS немає класу в pynmea2, а речення ROT не читається; жодне з них не охоплене. Таблиця від мовця NMEA та номера супутника до ідентифікатора супутника у стилі RINEX є власною таблицею цього проєкту (порівнюються лише номер, мовець і значення). Для вхідних даних про крок часу, годинник хоста та стан автентифікації оракула немає. Усі дані є синтетичним текстом з receiver_trust::synth; нічого тут не є вимірюванням, і жодних тверджень про те, як будь-який монітор працює на справжніх завадах, не робиться. Азимут: порівняно із середнім азимутом геодезичної лінії. Попередньо зареєстроване порівняння з прямим азимутом у фіксі 1 не пройшло на 0,001 градуса (77 із 223 пар, найгірше 8.3e-3 градуса) через розбіжність у визначенні, а не в арифметиці; поправку внесено після першого прогону, і обидва результати записано (порівняння з прямим азимутом лишається в тесті як описова, непопередньо зареєстрована межа 0,01 градуса). Розкрито: перші прогони виявили вхідні дані, що задіювали замало (прискорення й швидкість повороту на кожній епосі обрізалися до нуля, а трек через антимеридіан його ніколи не перетинав), помилку в синтетичному генераторі (без обгортання довготи) і, для азимута, те, що зареєстрована величина оракула (прямий азимут геодезичної лінії в першому фіксі) відрізняється від напрямку хорди приблизно на половину зближення меридіанів (77 із 223 пар поза 0,001 градуса, найгірше 8.3e-3); вхідні дані виправлено, а азимут порівняно із середнім азимутом за того самого допуску (поправки від 1 до 3 у попередній реєстрації, внесені після перегляду результатів, а отже, не наосліп); порівняння шляхового кута й курсу зроблено циклічними (360 і 0 градусів є одним курсом, поправка 5). Мутація: масштабування зсуву на схід на 1e-4 не проходить порівняння геодезії.receiver_trust (ingest, maritime)
Морська оцінка довіри: агрегування доказів моніторів у оцінку 0–100 і її три смугиКожен монітор зводить свої докази до відношення статистики до порога; оцінка дорівнює 100 мінус сума за моніторами ваги, помноженої на обмежену лінійну рампу відношення (0 до 0,5, 1 на 1,5), обмежена до 0–100 і округлена до 0,1, зі смугами на 90 і 55; кожна епоха перелічує монітори, що зняли бали, та їхні бали.MODELLEDРеалізація щодо специфікації, NOT зовнішній оракул: чиста за походженням (clean-room) реалізація на Python (scripts/maritime_score_cleanroom.py), написана читачем, якому дали лише docs/RECEIVER-TRUST.md і docs/MARITIME-TRUST.md, а не вихідний код на Rust, узгоджується зі score_from_ratios на 600 векторах відношень (оцінка, смуга, бали та порядок відрахувань, різниця 0), після того як документацію було доповнено там, де перший читач знайшов її мовчазною або суперечливою (порядок за рівності, округлення, відношення монітора типу «пройшов або ні», два приклади, чиї числа не збігалися з формулою). Це показує, що документації достатньо, а код робить те, що в ній сказано. ЩО НЕ ПЕРЕВІРЕНО, і чому рядок лишається MODELLED: саме правило (ваги, рампа, межі смуг, утримання доказів) є власним правилом цього проєкту, попередньо зареєстрованим, але без зовнішнього джерела, і ніщо тут не показує, що оцінка 80 або 40 означає те, що хотів би штурман, на справжніх завадах; жодного значення такого роду не наведено. Пороги моніторів так само є власними порогами цього проєкту (Row A перевіряє лише їхню арифметику).receiver_trust (score, monitors, live)
Відповідність потоку навчання NMEA 0183 і декодовані значенняСинтетичні потоки NMEA 0183 містка для навчання екіпажу (kshana nmea-scenario): GGA, RMC, VTG, ZDA, GNS, GSA, GSV, HDT, VBW і маркер PKSHT, згенеровані з еталонного треку зі змодельованими ефектами приймача, неба, глушіння та спуфінгу. Лише текстовий вихід; нічого не передається.VALIDATEDЩО ПЕРЕВІРЕНО ЗОВНІШНЬО, сформульовано вузько: усі 225 227 речень восьми синтетичних навчальних потоків (чотири сценарії бібліотеки, зерна 1 і 7; GGA, RMC, VTG, ZDA, GNS, GSA, GSV, HDT, VBW і маркер PKSHT) розбираються в pynmea2 1.19.0, незалежному розбирачі NMEA, з коректною контрольною сумою та очікуваними мовцем і типом. Положення, шляхова швидкість, шляховий кут, курс, час і дата UTC, стан фікса та кількість супутників у GGA, які він декодує, дорівнюють еталонному треку генератора в межах допусків, зафіксованих до першого порівняння (1.5e-6 град, 0,06 вуз., 0,07 км/год, 0,11 град шляхового кута, 0,5 град курсу, 0,02 с), запуск scripts/gen_nmea_training_ref.py з фікстурою в tests/fixtures/nmea_training_ref/. Очікування кількості супутників у GGA було виправлено після першого прогону до конвенції NMEA (00 без фікса); числові допуски без змін від коміту попередньої реєстрації. ЩО НЕ ПЕРЕВІРЕНО: що будь-який приймач, картплотер чи система містка приймає ці потоки; реалістичність моделей приймача, неба, глушіння чи спуфінгу (номінальне небо, змодельований шум, профілі дрейфу та відтворення, усі MODELLED); HDOP, висота та вміст DOP і GSA/GSV поза синтаксисом і кількостями; журнал інструктора. Нічого не передається, і жодної стійкості до глушіння чи спуфінгу не заявляється.nmea_synth (track, sentences, scenarios); cli nmea-scenario
Карта завад: значення кодів точності, значення «недоступно» в AIS, прив'язка до комірки сітки, довжина маршруту за станом комірки та маскування внутрішньої сушіПрочитання кодів навігаційної точності та цілісності ADS-B, які використовує карта (межа EPU, яку означає код NACp, межа радіуса стримування, яку означає код NIC, і низький та добрий класи, які метод із них виводить); значення «недоступно» для положення та швидкості AIS, які читач AIS відкидає; фіксована комірка сітки широти/довготи, в яку потрапляє положення; довжина маршруту та її розподіл за станом комірки (деградована, недеградована, неоцінена, не спостерігалася), які повідомляє експозиція маршруту; і те, чи лежить положення вглиб суші від полігона суші більш ніж на буфер. Комірка, позначена як деградована чи аномальна, є твердженням про повідомлені поля точності або неправдоподібні положення, а не висновком про завади, і нічого тут цього не перевіряє.VALIDATEDЩО ПЕРЕВІРЕНО ЗОВНІШНЬО, сформульовано вузько: п'ять незалежних реалізацій читають ті самі синтетичні вхідні дані. (1) pyModeS 2,21 декодує синтетичні кадри DF17 операційного стану та положення в повітрі; межі EPU для NACp в Kshana узгоджуються до 0,5 м (найбільша різниця 0,4 м), її межі стримування NIC для кодів від 5 до 11 узгоджуються до 1 м, а її низький і добрий класи ставлять усі 12 кодів NACp і кожен код NIC, який видає оракул (від 0 до 11), по той самий бік порогів, які випливають з меж оракула (0 розбіжностей). (2) pyais 3.3.0 декодує речення AIVDM типу 1, чиї біти корисного навантаження скрипт пакує із сирих значень полів ITU-R M.1371; Kshana відхиляє саме декодовані положення «недоступно» (широта 91, довгота 181) і швидкість (102,3 вуз.), а від 0 до 102,2 вуз. лишає як декодовано (0 розбіжностей на 94 кадрах). (3) shapely 2.2.0 covers() на полігонах комірок узгоджується з grid::Grid::cell_of для 1770 точок за розмірів комірки 0,5, 0,25, 1 і 0,07 градуса, зокрема точок поблизу країв, обох полюсів і антимеридіана (0 розбіжностей). (4) перетин маршруту та комірок у shapely 2.2.0 з довжинами геодезичних ліній WGS84 GeographicLib 2,1 узгоджується з експозицією маршруту на 8 синтетичних маршрутах, зокрема двох, що перетинають антимеридіан: повна довжина до 0,6% (найбільша різниця 0,49%, сфера проти еліпсоїда) і довжина кожного стану комірки до 0,6% плюс 125 м на фрагмент (найбільша — 21% цього допуску). (5) contains() у shapely 2.2.0 з азимутальною рівновіддаленою відстанню pyproj до берегової лінії узгоджується з маскою внутрішньої суші 2000 м на 992 точках центрів ґратки навколо чотирьох синтетичних островів, один з озером (0 розбіжностей; 4 точки в межах 20 м від буфера виключено й пораховано). Допуски зафіксовано в tests/fixtures/interference_map_ref/PREREGISTRATION.md до будь-якого порівняння й не змінювано після; два дефекти в синтетичних вхідних даних, знайдені першим прогоном, записано там же. ЩО НЕ ПЕРЕВІРЕНО: Kshana не декодує сирі кадри Mode S чи речення AIVDM, тож це підтверджує її прочитання вже декодованих значень, а не декодер. Радіуси стримування NIC оракула для кодів 1, 2 і 4 відрізняються від DO-260B (20, 8 і 2 NM), тому числово порівнюються лише коди від 5 до 11. Правило положення (0, 0), нижня межа висоти, фільтр типу джерела, хешування ідентифікаторів, пороги та статистики методу й вибір розміру комірки є власними в Kshana і не звіряються ні з чим. Порівняння маршруту використовує те саме визначення прямої за широтою та довготою шляху з обох боків, тож воно перевіряє довжини та прив'язку до комірок, а не те, що цей шлях правильний для судна чи літака. Ніщо тут не показує, що позначена комірка є завадами. Вхідні дані синтетичні; фікстури оракулів пишуться scripts/gen_interference_map_ref.py (pyModeS має ліцензію GPL-3.0 і використовується лише в цьому офлайн-скрипті; CI не потребує Python).interference_map (adsb::nacp_epu_bound_m, adsb::nic_rc_bound_range_m, adsb::AdsbParams::classify, ais::ais_position_is_valid, ais::ais_speed_kn, grid::Grid::cell_of, route::exposure, land::LandMask::is_inland)
Область джерела завад: допустима область випромінювача за повідомленнями про положення літаків і суденДопустима область, де може перебувати джерело спотворених навігаційних повідомлень, за повідомленнями про положення ADS-B (NIC/NACp) або AIS: радіолінія прямої видимості за радіусом Землі 4/3 з висоти повідомлення та діапазону висот антени випромінювача, обмежена ефективна дальність для невідомої потужності, уражені одиниці тягнуть апостеріорний розподіл до свого охоплення, а неуражені одиниці з прямою видимістю штовхають проти нього, згруповані в сесії за часом і простором. Результат — області найвищої щільності на заданих рівнях довіри, апостеріорний центроїд з моментним еліпсом, початок, кінець, тривалість сесії, уражена площа та кількість різних літаків вище мінімуму для публікації, добовий профіль і години на добу. Без рельєфу; одне джерело на сесію; достовірність обумовлена моделлю. Необов'язкове злиття з фіксом TDOA з geolocation.MODELLEDПоки жодної зовнішньої. Лише синтетичні кола пряме-обернене, від генератора, що ділить модель оцінювача, тож вони перевіряють код і калібрування заданих рівнів за цією моделлю й нічого про справжні випромінювачі. Зовнішню перевірку за опублікованими місцями передавачів Jammertest 2025 було попередньо зареєстровано (docs/emitter-region/PREREGISTRATION.md, затверджено власником до будь-якого оціненого прогону) і виконано один раз (docs/emitter-region/RESULTS.md): ADS-B NOT ASSESSABLE (2 заплановані сесії, менше за зареєстрований мінімум 4) і AIS NOT ASSESSABLE (жодної опублікованої сесії), тож жоден поріг не перевірено, а рядок лишається MODELLEDinterference_map::emitter (estimate, sessions, build_units, profile, GaussianFix::from_tdoa), interference_map::emitter_out (locate), kshana interference-map locate
Дротові формати телеметрії довіри: текстова експозиція Prometheus та OpenTelemetry OTLP/HTTP JSONДовіра до GNSS (оцінка, смуга, причини, шлюз і, на запит, положення) як текстова експозиція Prometheus, що віддається на /metrics, і як метрики OTLP/HTTP JSON, з обмеженням кардинальності міток причин.VALIDATEDЩО ПЕРЕВІРЕНО ЗОВНІШНЬО, сформульовано вузько: наша текстова експозиція Prometheus для синтетичного потоку з 84 рядків (значення міток з лапками, зворотними скісними рисками, переведеннями рядка та не-ASCII текстом, 64 рядів причин плюс згортка «other», шлюзові та позиційні вимірники) приймається текстовим розбирачем prometheus_client 0.26.0, а сім'ї метрик, типи, довідковий текст, набори міток і значення, які він читає, точно дорівнюють стану реєстру (значення — рівністю f64). Наш OTLP/HTTP JSON для того самого реєстру розбирається protobuf 7.36.2 json_format.Parse(ignore_unknown_fields=False) в ExportMetricsServiceRequest з opentelemetry-proto 1.45.1, і кожна назва метрики, опис, одиниця, вид, монотонність, часова агрегація, атрибут, значення, початковий час і час точно дорівнюють стану реєстру. Показано, що обидва розбирачі відхиляють невідоме поле, значення неправильного типу та спотворений рядок (scripts/gen_telemetry_formats_ref.py). Схема 1,3 (0,36), попередньо зареєстрована (fb226057) до того, як будь-який інструмент її прочитав: для синтетичного потоку схеми 1.3 з 64 рядків (стани геометрії, DOP, мітки та втрата сигналу наявні, null, відсутні й невідомі; класи відрахувань; нерозбірні рядки) ті самі два розбирачі читають ряди геометрії (Prometheus kshana_trust_geometry*, OTLP kshana.geometry.*) і мітку класу на kshana_trust_reason_active точно так, як це випливає з реєстру (24 сім'ї та 54 зразки; 12 метрик і 31 точок), promtool 3.5.0 check metrics завершується з 0 без проблем лінтера, а OpenTelemetry Collector contrib 0.135.0 приймає OTLP/HTTP JSON (стан 200, нічого не відхилено), і його файловий експортер записує запит без змін (xval/telemetry-1.3, з керуванням даними: випускні архіви завантажуються із зафіксованими SHA-256, а їхні виходи закомічено). ЩО НЕ ПЕРЕВІРЕНО: кінцева точка HTTP, доставка, тайм-аути та перепідключення не перевіряються оракулом, так само як і приймач prometheus у Collector; реєстр читається через методи доступу, тож помилка в самому стані реєстру не була б виявлена; перевірка OTLP «закомічений вихід актуальний» запускається лише з функцією otlp; назви метрик і їхня корисність для оперативного центру не валідовано; CEF і LEEF не охоплені (див. наступний рядок).telemetry (prometheus: Registry, render; otlp: build_payload, Exporter (feature otlp); sample)
Події SIEM телеметрії довіри: Common Event Format (CEF) через syslogПодії зміни смуги (або за епохою) як корисні навантаження Common Event Format в оболонці RFC 5424 через UDP або TCP, із задокументованим відображенням полів і екрануванням CEF.VALIDATEDЩО ПЕРЕВІРЕНО ЗОВНІШНЬО, сформульовано вузько: щодо двох незалежних розбирачів з відкритим кодом (оракули: pycef 1,11 (PyPI, MIT); кодек Logstash CEF (logstash-codec-cef 6.2.7 у Logstash 8.15.3)), на корпусі рядків CEF, які записав цей крейт (157 до поправки 4 нижче, 170 після неї, 176 після поправки 5): кожна зміна смуги та кожна епоха закоміченого синтетичного потоку довіри з 84 рядків, плюс змагальний текст у хостах, причинах, мітках часу та назвах шлюзів, що містять знаки рівності, зворотні скісні риски, зворотну скісну риску із знаком рівності, вертикальні риски, переведення рядка, повернення каретки, табуляції, послідовності пробілів, багатобайтові й астральні символи та двійники ключів, екстремальні оцінки й зсуви, кожну смугу з попередньою смугою та без неї. pycef розбирає рядки, чий заголовок не потребує екранування (153 до поправки 4, 166 після неї, 172 після поправки 5), і відновлює точно поля заголовка, серйозність, точний набір ключів розширення та кожне значення (числа — рівністю f64), після правил зняття екранування специфікації CEF, яких pycef не застосовує, а scripts/gen_cef_ref.py застосовує. Кодек Logstash, який знімає екранування сам, розбирає кожен рядок (157, потім 170, потім 176), задовольняє той самий поріг і також відновлює чотири поля заголовка, що потребують екранування (вертикальна риска, зворотна скісна риска та знак рівності в рядку версії), які шаблон заголовка pycef прочитати не може, тож екранування заголовка спирається лише на кодек Logstash. Поріг порівняння було зареєстровано в комітах 5172e579 (pycef) і 0a7598aa (Logstash) до запуску будь-якого з розбирачів, і обидва його досягли за першого порівняння. Розкрито п'ять поправок. Поправки від (1) до (3) не торкнулися жодного правила порівняння й жодного очікуваного значення: (1) твердження про розмір корпусу виправлено з 5 на 4 зміни смуги, це помилка підрахунку, бо в потоці 4; (2) налаштування роздільника конвеєра в запускачі Logstash виправлено після першої спроби, що не дала подій; (3) оцінку довіри та зсув епохи перенесено з цілочисельних полів CEF cn1 і cn2 у поля з рухомою комою cfp1 і cfp2, зміна дротового формату, зроблена в цьому випуску, після чого корпус перегенеровано, а обидва оракули запущено знову з незмінним порогом, і вони знову його досягли. Поправка (4), 0,36, розширила корпус і очікуваний набір ключів, зареєстрована в d6331429 до запуску будь-якого розбирача на нових рядках: вхідні дані схеми 1,3 додають геометрію супутників у власні поля cs6 (мітка geometry: стан, потім ';' і класи відрахувань), cfp3 (geometryHdop) і cfp4 (geometryPdop); 13 випадків геометрії (корпус до 170 рядків) і три нові ключі; обидва досягли порога, в іншому без змін, за першого порівняння (pycef 166 із 170 рядків розібрано, 4 заголовкові випадки рівня 2 як раніше; Logstash 170 із 170). Поправка (5), 0,36, додала 6 випадків мітки геометрії (корпус до 176 рядків), зареєстрована в 9a8e4fa9 до запуску будь-якого розбирача на них: для вхідних даних, що несуть мітку геометрії, cs6 отримує третє поле (';' і мітку), а cn1 (geometryUsedSatellites) — використані супутники; таблицю відображення кодека Logstash було прочитано першою (полів flexString немає, тож cs6, а не flexString1); обидва досягли порога за першого порівняння (pycef 172 із 176, Logstash 176 із 176), і кожен попередній еталонний запис відтворено без змін. ЩО НЕ ПЕРЕВІРЕНО: жоден розбирач не перевіряє типи значень cfp (обидва зберігають їх як текст), тож використання полів з рухомою комою спирається на словник CEF, а не на оракул; жоден постачальницький SIEM не запускався; назви ключів розширення та їхнє відображення є вибором цього крейта, а розбирачі показують лише те, що вони читаються назад як записані; оболонка RFC 5424, доставка, тайм-аути та перепідключення не охоплені; pycef є малим розбирачем, останній випуск якого був у 2020, а кодек Logstash є вагомішим оракулом.telemetry (syslog: cef, rfc5424, SyslogSink; time)
Події SIEM телеметрії довіри: Log Event Extended Format (LEEF) через syslogПодії зміни смуги (або за епохою) як корисні навантаження Log Event Extended Format 2,0 в оболонці RFC 5424 через UDP або TCP, із задокументованим відображенням полів.MODELLEDЩО ПЕРЕВІРЕНО: власні тести точних рядків цього крейта щодо задокументованого відображення полів LEEF і полів оболонки RFC 5424; підтримуваного розбирача LEEF з відкритим кодом не існує (пошук за індексом пакетів Python не знайшов жодного), тож формат перевіряється за власною специфікацією, прочитаною тим самим автором, а не за зовнішнім оракулом. ЩО НЕ ПЕРЕВІРЕНО: чи приймаються корисні навантаження LEEF розбирачем або SIEM будь-якого постачальника; правила екранування поза задокументованими; поведінка справжнього колектора syslog.telemetry (syslog: leef, rfc5424, SyslogSink; time)
Цілісність пакета доказів: підпис, ланцюг хешів і процедура верифікаціїПідписаний, зв'язаний ланцюгом хешів пакет доказів події довіри до GNSS: SHA-256 для кожного файлу та ланцюг над маніфестом, підпис Ed25519 над точними байтами маніфесту та верифікатор, що називає кожну помилку (змінений, вилучений, перейменований, підмінений або доданий файл, переупорядкований чи відредагований маніфест, маніфест, хешований заново без ключа, повторно підписаний пакет, неправильний закріплений ключ і токен позначки часу, який вилучено, замінено, сміттєвий або над іншим документом).VALIDATEDЩО ПЕРЕВІРЕНО ЗОВНІШНЬО, сформульовано вузько: (1) функції Ed25519, які пакет використовує для підпису та суворої перевірки (evidence::bundle::sign_detached, evidence::verify::verify_detached), байт у байт відтворюють відкриті ключі та підписи тестових векторів RFC 8032 розділ 7,1 1, 2, 3 і 1024, приймають їх і відхиляють кожен перевернутий біт вектора 1 і кожен сьомий біт інших та неканонічний підпис S+L; вектори розбираються з тексту RFC і відтворюються двома незалежними реалізаціями (cryptography/OpenSSL і PyNaCl/libsodium) у scripts/gen_ed25519_rfc8032_ref.py. (2) evidence::bundle::sha256_hex, хеш за кожним хешем пакета та ланцюгом, точно відтворює приклади SHA-256 з FIPS 180-4 (abc; повідомлення з 448 біт; мільйон a), порожнє повідомлення та дайджести hashlib драбини від 0 до 130 байтів через межі доповнення. (3) Верифікатор, написаний на Python лише за docs/EVIDENCE-PACKS.md (scripts/evidence_verify_cleanroom.py: hashlib і cryptography; його автор не читав жодного коду Rust), точно узгоджується з верифікатором на Rust на 71 синтетичних цілих і підроблених пакетах за вердиктом, набором помилок з іменами файлів, вердиктом підпису та головою ланцюга, перерахованою з файлів, і тією, яку записує маніфест. Перший прогін: 64 із 71 збіглися; розбіжності були однією неоднозначністю специфікації (перевірка закріпленого ключа щодо нечитного маніфесту), одним відхиленням інтерфейсу оракула та одним недобудованим випадком; речення специфікації уточнено, оракул реалізовано заново за текстом, а випадок завершено, без зміни жодного допуску чи очікування (записано в коміті d54e14c6). ЩО НЕ ПЕРЕВІРЕНО: верифікатор clean-room є незалежною реалізацією іншого автора, а не стороннім авторитетом, і він поділяє вибори специфікації, тож підтверджує цю реалізацію правил, а не самі правила; вектори валідують примітиви, а не задум формату пакета. У цьому рядку токен RFC 3161 читається лише заради відбитка повідомлення, а тестові токени синтетичні й непідписані; підпис і ланцюг органу перевіряються, за вибором (kshana evidence verify --tsa-ca), окремим рядком «RFC 3161 timestamp-token signature and chain verification». Випадки підробки синтетичні. Ніщо тут не є юридичним висновком чи засвідченням будь-якого пакета.evidence (bundle: create_bundle, sign_detached, chain_link, sha256_hex; verify: verify_bundle, verify_detached; tsr; assemble; cli)
Перевірка підпису та ланцюга токена позначки часу RFC 3161evidence::tsa::verify_token і опційна kshana evidence verify --tsa-ca <anchors.pem> для timestamp.tsr пакета: RFC 3161 TimeStampResp або голий TimeStampToken (CMS SignedData над TSTInfo), перевірений офлайн за довіреними якорями так, як його перевіряє openssl ts -verify: тип вмісту підписаних атрибутів і дайджест повідомлення над TSTInfo; підпис над підписаними атрибутами (RSA PKCS#1 v1.5, RSASSA-PSS, ECDSA P-256 і P-384; відкриті операції RSA на crypto-bigint); хеш ESS signing-certificate v1 (SHA-1) або v2, що називає сертифікат підписувача, знайдений серед сертифікатів токена та недовірених сертифікатів викликача; критичне, єдине розширене використання ключа timeStamping підписувача; ланцюг до довіреного самовидного якоря з підписом кожного сертифіката, станом CA та використанням ключа, і кожним сертифікатом, чинним на genTime токена; і відбиток повідомлення щодо даних. Не перевіряється: відкликання (CRL, OCSP), обмеження імен і політик, nonceVALIDATEDOpenSSL 3.0.13 (openssl ts -verify -attime genTime і openssl cms -verify -cades -purpose timestampsign плюс відбиток TSTInfo для токенів RSA-PSS), запущений tests/fixtures/evidence_tsa/run_openssl.sh на 27 випадках cases.tsv: RSA PKCS#1 v1.5 з SHA-256 і SHA-512 та ESS v1 і v2, корінь ECDSA P-384 над проміжним P-256 і TSA P-256 та P-384, RSA-PSS, токен без сертифіката підписувача з поданням і без нього, токени з підписом CAdES, перевернутий байт підпису (три алгоритми), змінений TSTInfo (два), перевернутий підпис проміжного сертифіката, двійник сертифіката ESS, хибні якорі (чотири), прострочений сертифікат TSA, некритичне й хибне розширене використання ключа та хибні дані (три). Попередньо зареєстровано в tests/fixtures/evidence_tsa/PREREGISTRATION.md (закомічено окремо, 30ad70b2, до появи верифікатора; вердикти OpenSSL перезапущено згодом, побайтово ідентичні). Перший прогін: усі 27 вердиктів збігаються (B1) і кожен genTime збігається до секунди (B2). Межі, сформульовано вузько: самозгенеровані тестові сертифікати й токени, створені тим самим OpenSSL, що їх судить; OpenSSL є незалежною реалізацією, а не органом позначок часу; токен жодного публічного органу не вбудовано (freetsa.org не заявляє ліцензії). Ніщо тут не засвідчує жодної справжньої позначки часуevidence::tsa (verify_token, pem_certificates); evidence::verify (VerifyOptions::tsa_anchors, Failure::TimestampAuthorityInvalid); evidence::cli (--tsa-ca)
Пороги завад приймача-довіри, відкалібровані на наборі даних JammerTest 2024receiver_trust::calibration::run_dataset: попередньо зареєстроване калібрування моніторів падіння C/N0, AGC та індикатора глушіння на публічному наборі даних JammerTest 2024 (Zenodo 15911589, GPL-3.0-or-later, завантажується під час виконання, ніколи не вбудовується): для кожної теки часова шкала в 1 с з mon_rf.csv і rinex.csv, монітори запускаються один раз, кожна епоха після калібрування позначається чистою або глушінням за attack_log теки (зсунутим із CEST до UTC, охоронний інтервал 60 с), кожен поріг перебирається за фіксованою сіткою, обирається найменший поріг із сукупною ймовірністю хибної тривоги на чистих даних не більше 0,01, і підрахунки з відкладеною текою (leave-one-folder-out); перехресна перевірка читача UBX. Вибір постачається лише як опційний профіль [monitors] profile = "jammertest-2024-calibrated" (cn0_drop_db 1,5, agc_k_sigma 3,5, jam_ind_threshold 29); типове правило та кожен вихід без нього не змінюютьсяMODELLEDОпубліковані журнали подій набору даних (вікна attack_log) як еталон подій, за попередньою реєстрацією xval/jammertest-trust/PREREGISTRATION.md (закомічено окремо, 0fa012b, до запуску обв'язки). Перший і єдиний прогін (xval/jammertest-trust/RESULTS.md): 14 із 24 тек придатні до оцінки (7 з глушінням), 3 502 чистих і 9 560 епох глушіння. Імовірність хибної тривоги на чистих даних для відкладеної теки: cn0_drop_db 0,0231 (81/3502) проти порога 0,02, FAIL; agc_k_sigma 0,0003, пройдено; jam_ind_threshold 0,0094, пройдено; об'єднання трьох: хибні тривоги 0,0328, виявлення 0,807 проти 0,05 і 0,50, пройдено. За зареєстрованим правилом рядок MODELLED (один поріг не виконано). Вузько: один тип приймача (u-blox ZED-F9P), одна подія, заплановані одно-хвилинні слоти як еталон (виявлення є нижньою межею; чисте означає поза записаними вікнами); відкалібровано на журналах CSV, а читач UBX дає більше хибних тривог на двох теках. Смуги морської оцінки довіри не каліброваноreceiver_trust::calibration (run_dataset); receiver_trust::monitors (MonitorConfig::profile, JAMMERTEST_2024_CALIBRATED); realdata::jammertest; examples/jammertest_trust_calibration.rs
Оцінювання Jammertest: журнал приймача, оцінений за кожним запланованим випробуванням (затримка виявлення, пропущені тривоги, хибні тривоги, час відновлення) відповідно до опублікованого плану випробуваньjammertest::{plan, score, dataset} (kshana jammertest import|score): каталог випробувань NPRA і план передавання (MIT, завантажені із закріпленим SHA-256, ніколи не включені до репозиторію) читаються як запланована істина зі збереженням ідентифікаторів каталогу; прогін receiver-trust оцінюється за кожним випробуванням (перша тривога мінус плановий початок, виявлено/із запізненням/пропущено відносно допуску, час до першого відрізка без тривог, тривоги поза всіма слотами та їхнім охоронним інтервалом) із підписаним пакетом доказів, що містить підсумкову картку оцінок. Розклад — це заплановані слоти, а не записані часи фактичного випромінюванняMODELLEDКількість слотів плану для кожної області випробувань (76, 77 і 45 слотів, з яких передають 61, 63 і 32) незалежно підрахована скриптом за тим самим JSON; вікна attack_log набору даних 2024 узято як істину щодо подій, згідно з xval/jammertest-score/PREREGISTRATION.md (зафіксовано окремим комітом, c2e6d3b, до запуску оцінювача). Перший і єдиний прогін (xval/jammertest-score/RESULTS.md): зареєстроване правило мінімуму даних НЕ ВИКОНАНО (4 придатні до оцінювання вікна глушіння із 4 з 12 папок UBX проти мінімуму в 10 вікон із 2 папок: 5 папок відкинуто за правилом базового рівня, 3 журнали UBX містять лише тиждень GPS і секунди тижня), тому пороги B1–B4 неможливо оцінити; нічого не послаблено і не запущено повторно. v2 (xval/jammertest-score/PREREGISTRATION-v2.md, зафіксовано окремим комітом, лише обробка даних: журнали лише з GPS-часом розміщено за датою, 12 папок лише з CSV, сесія рухомої платформи для рухомих ровер-приймачів; ті самі пороги та правило мінімуму даних): збережено 14 із 24 папок, але лише 7 придатних до оцінювання вікон глушіння, правило мінімуму даних знову не виконано, жоден поріг не можна оцінити (RESULTS-v2.md). Запланована істина: плановий слот не є записом фактичного випромінювання, пропуск може означати випробування, яке так і не відбулося, затримка відраховується від планового початку, а «чисто» означає поза плановими слотами. Виявлення моніторами в області вимірювань нічого не говорить про спуфер малої потужності. Один тип приймача (u-blox ZED-F9P). Набір даних SimulaMet NMEA 2025 не використовується (ліцензію не вказано, доступ за підпискою)jammertest::plan (parse_catalog, parse_plan, import, import_attack_log, events_toml); jammertest::score (score_run); jammertest::dataset (run_dataset); jammertest (score_log, score_pack); examples/jammertest_score_2024.rs
Експорт для випробувального стенда (kshana bench-export): стовпці в геоцентричній, геодезичній та локальній швидкості, стовпці орієнтації та вихід NMEA 0183Геоцентричне положення, геодезичне положення, геоцентрична швидкість, стовпці курсу/тангажу/крену та UTC із руху в CSV, а також речення NMEA GGA/RMC, записані із синтетичних сценаріїв (gnss-ins, зокрема automotive-urban-canyon, jamming, gnss-sim). Лише рух і події; сигнал не записується, жодних тверджень про продуктивність симулятора чи приймача немає.VALIDATEDЩО ПЕРЕВІРЕНО ЗОВНІШНЬО, сформульовано вузько: порівняно з pyproj 3.8.0 (PROJ 9.8.1), geographiclib 2,1, pynmea2 1.19.0 і scipy 1.18.1, запуск scripts/gen_testbench_ref.py на 4 синтетичних сценаріях, з допусками, зафіксованими до першого порівняння (кожен — найгірший випадок округлення записувача): геоцентричні стовпці дорівнюють перетворенню геодезичних стовпців у WGS 84 (найгірше 1.3e-4 м, поріг 3e-4) і зворотному перетворенню (1.3e-9 град, поріг 2e-9; висота 1.3e-4 м, поріг 3e-4) у кожному рядку; геоцентрична швидкість, повернута до північ–схід–вниз топоцентричною операцією PROJ, дорівнює істинній швидкості NED рушія (7.5e-5 м/с, поріг 2e-4); курс, тангаж і крен дорівнюють yaw-pitch-roll зі scipy для істинного кватерніона рушія (5.0e-7 град, поріг 1e-6); кожне речення NMEA розбирається в pynmea2 з коректною контрольною сумою, а його декодоване положення (1.2e-3 м, поріг 5e-3), висота, швидкість, напрям руху (5.0e-4 град, поріг 1e-3) і час дорівнюють значенням руху; стовпець UTC дорівнює незалежній арифметиці дати й часу. SHA-256 точних перевірених байтів CSV і NMEA закріплено. ЩО НЕ ПЕРЕВІРЕНО: сама істинна траєкторія сценарію (профіль руху та його інтегрування); умовності (курс — це рискання корпусу, а не напрям руху, і відрізняється від нього до приблизно 77 градусів на automotive-urban-canyon; якість GGA, кількість супутників і HDOP — заповнювачі); чи читає будь-який лабораторний симулятор ці файли так, як задумано; будь-яка продуктивність симулятора чи приймача. Оракули перевіряють перетворення та кодування, а не фізику сценарію. Обробку локальної системи координат перевірено лише через поворот швидкості та швидкість і напрям руху в NMEA (у CSV немає стовпця локального положення).interop::testbench (write_motion_csv, write_nmea, trajectory_of, export); fusion::pack::truth_trajectory
Зіставлення з публічними рамковими документами щодо compliancecompliance (kshana compliance-report): відображення результатів Kshana на пункти публічних рамок лише за номерами, заповнене з наданих прогонів; результат зараховується для можливості лише тоді, коли містить докази, які називає відображення, порожній набір нічого не засвідчує, а формулювання — «підтримує докази для» (supports evidence for); звіт не є висновком, що будь-яку рамку виконано, і не є оцінкою чи схваленням будь-кого.MODELLEDПосилання перевірено за індексом заголовків цитованих публічних документів, видобутим скриптом, зчитаним 2026-10-10 (tests/compliance_references.rs). ЩО ПЕРЕВІРЕНО: 49 цитованих посилань на пункти, розділи, абзаци чи заголовки існують у цитованому документі, а 7 цитованих URL відкрилися в записану дату (2 — іншим маршрутом); негативні контролі не проходять. ЩО НЕ ПЕРЕВІРЕНО: чи є правильним будь-який переказ, відображення чи прогалина; пункти EN 16803 (платні, лише текст каталогу); пізніші редакції; індекс не є незалежною реалізацією.compliance
Морські інтеграції: плагін Signal K, потік шлюзу та панель оцінки OpenCPN, еталонна збіркаОцінка довіри, смуга, причини, стан шлюзу та положення, повідомлене приймачем, публікуються під navigation.gnss.kshana на сервері Signal K зі сповіщеннями warn, alarm і normal (integrations/signalk); потік NMEA через шлюз, у якому фікс позначено недійсним, поки довіра колапсувала, і з одним реченням PKSHT на цикл, передається до OpenCPN через TCP самим шлюзом або невеликим ретранслятором, а власна панель оцінки OpenCPN читає речення PKSHT (integrations/opencpn); а також модулі systemd і контейнер, що запускають шлюз (deploy/reference-build). Там, де вони показують результат, він супроводжується консультативним застереженням: Консультативне програмне забезпечення, не навігаційне обладнання із затвердженням типу (IEC 61108, IEC 61162): відповідальність за навігацію судна залишається на операторі.MODELLEDЩО ПЕРЕВІРЕНО, сформульовано вузько: що ці інтеграції працюють із реальним програмним забезпеченням, для якого їх написано. ДОКАЗИ зафіксовано в integrations/signalk/evidence/README.md (з його файлами JSON) та integrations/opencpn/evidence/README.md (з його знімками екрана та журналами), кожен зі скриптом, що їх відтворює. (1) Signal K: плагін, завантажений у закріплений npm-пакет signalk-server 2.33.0, у приватному просторі імен мережі лише з loopback, на синтетичних даних. Власні інтерфейси REST і WebSocket сервера показали опубліковані шляхи, метадані оцінки та сповіщення, яке пройшло стани «відсутнє», warn, alarm, normal (після утримання) і знову warn, коли дані припинилися. Коли реальний kshana запускався плагіном на NMEA, яку отримав сам сервер, сповіщення пройшло warn, потім alarm, а повідомлене положення було опубліковано; власний navigation.position сервера записувався його постачальником NMEA, ніколи не плагіном. Повторно запущено проти живої схеми JSON 1,2. (2) OpenCPN: плагін, зібраний із заголовком API плагінів OpenCPN та wxWidgets 3.2.4, завантажений у пакет Ubuntu 24,04 з OpenCPN 5.8.4 під віртуальним дисплеєм; OpenCPN завантажив його, виконав його ініціалізацію і передав йому речення PKSHT потоку через шлюз, а панель стала червоною на смузі без довіри. В одному чистому прогоні власне положення судна в OpenCPN перестало оновлюватися, а індикатор фікса впав, коли шлюз позначив фікс недійсним. Другий прогін, у якому подачу здійснював безпосередньо слухач TCP шлюзу, показав доставку до плагіна, але не чисте порівняння «до і після». (3) Тести ретранслятора відтворюють записаний уривок потоку через шлюз крізь справжній сокет TCP і перевіряють, що отримує споживач (байти без змін, коректні контрольні суми в кожному реченні, зокрема в переписаних, узгодженість GGA і RMC, одне PKSHT на цикл із полем шлюзу там, де фікс недійсний), а наскрізний скрипт перевіряє, що споживач слухача шлюзу отримує точно ті самі байти, які той самий шлюз пише у стандартний вивід. (4) Розбирачі PKSHT (JavaScript і C++) запущено на реченнях, записаних із виводу kshana, і вони відхиляють хибну контрольну суму, версію або оцінку поза межами від 0 до 100. (5) Модулі systemd перевірено за допомогою systemd-analyze verify (systemd 255, двійкові файли замінено заглушками) і за допомогою перевірок на оболонку в ExecStart, політику перезапуску та ключі пісочниці; обробку аргументів точкою входу контейнера перевірено із заглушкою замість двійкового файлу. ЩО НЕ ПЕРЕВІРЕНО: для жодного значення, яке показують ці інтеграції, немає зовнішнього оракула. Самі значення довіри — це рядки вище, а прогін інтеграції показує лише те, що проводка їх переносить; саме тому цей рядок має рівень MODELLED, а не VALIDATED (docs/VALIDATION.md). Не використовувалися реальне судно, приймач, тривалий прогін, інша версія будь-якого з хостів, інша операційна система чи робочий стіл; усі дані — синтетичний текст, і тут немає жодного вимірювання. Звукову та візуальну обробку сповіщення реальним клієнтом Signal K, кнопку панелі інструментів OpenCPN, налаштування та застарілий стан, а також пакування для менеджера плагінів OpenCPN не перевіряли. Ключі пісочниці systemd перевірено лише на синтаксис, не запускалися під живим systemd, а збірка образу контейнера та його перевірка працездатності не мають тут зафіксованих доказів. Жодних показників виявлення чи хибної тривоги не заявляється. Консультативне програмне забезпечення, не навігаційне обладнання із затвердженням типу (IEC 61108, IEC 61162): відповідальність за навігацію судна залишається на операторі.receiver_trust (наживо: шлюз, його слухач TCP, PKSHT); поза крейтом: integrations/signalk (JavaScript), integrations/opencpn (ретранслятор JavaScript, нативний плагін C++), deploy/reference-build (модулі systemd, контейнер)
Стеження за BOC(1 1): масштабування DLL і розв'язання неоднозначностей bump-jump (за вибором)Поле boc в iq::track::LoopConfig (за вибором, за замовчуванням None): три дискримінатори DLL, масштабовані так, що вони показують похибку коду в чипах з одиничним нахилом на головному піку синусного BOC(1 1), і монітор bump-jump на дуже ранньому та дуже пізньому корелятора за піврізницею піднесучої (0,5 чипа), який перестрибує NCO коду до головного піку, коли лічильник вгору/вниз досягає N (8 за замовчуванням). Без цього параметра всі вихідні дані не змінюються.MODELLEDВнутрішня узгодженість щодо введеної істини та замкнених формул, за порогами, попередньо зареєстрованими в 6b68f6cc (docs/design/evidence/boc-bump-jump/). Інформаційний сигнал BeiDou B1C (PRN 19, 5 MS/s), згенерований iq::scene: з вимкненим параметром старт на бічному піку залишається хибно захопленим на передбачених ±(0,5 + d/4) чипа (виміряно ±0,549); з увімкненим — один стрибок до головного піку на 0,08 с і середньоквадратичне значення в пізньому вікні 0,0008 чипа при 45 дБ-Гц та 0,0048 чипа при 35 дБ-Гц; жодного стрибка з головного піку при 35, 40 і 45 дБ-Гц упродовж 4 с; масштабований нахил EMLP від 0,94 до 0,99 на дискретизованому сигналі (немасштабований від 3,6 до 3,8). Лише детектор bump-jump, на трійках корелятора з точною коваріацією шуму BOC(1 1), не дав хибного стрибка в 100 000 оновленнях при 25–45 дБ-Гц і виявив 1000 із 1000 стартів на бічному піку при 35 дБ-Гц. NOT MET (висновок F1): попередньо зареєстрована сітка модульних тестів для масштабування містить зміщення поза лінійним діапазоном дискримінаторів, де масштабовані показання промахуються повз зміщення до 48 %. ЩО НЕ ПЕРЕВІРЕНО: польові IQ, фронтенди з обмеженою смугою, складені репліки MBOC/QMBOC і будь-який зовнішній приймач.iq::track::boc (BocKind, BocTracking, BumpJump, boc11_dll_scale); iq::track::channel (the bump-jump taps and Channel::bump_jumps)
Канал іоносферних мерехтінь IQ (модель Cornell) порівняно з виміряними мерехтіннями GPS L1 на 50 Гцiq::channel::scint, модель мерехтінь Cornell (інтенсивність за Райсом, спектр Баттерворта другого порядку, фаза arg z), що працює із виміряними для вікна S4 і часом декореляції інтенсивності та порівнюється за тим, що вона породжує понад ці два входи; realdata::scint50 читає виміряний журнал, прибирає тренд і виконує порівняння.MODELLEDВиміряні дані за порогами, попередньо зареєстрованими в b6ccb499 (xval/scint-malindi/): запис Zenodo 16941224 (INGV, Малінді, 18 березня 2023, GPS PRN 26, інтенсивність і фаза несівної на 50 Гц, CC BY 4,0, SHA-256 перевірено). 22 придатних вікон по 60 с (N1 виконано). MET: розподіл інтенсивності (Колмогоров–Смирнов D 0,0415, поріг 0,05) і фазові мерехтіння, пов'язані з S4 (медіана виміряного/модельного sigma-phi 0,779, поріг від 2/3 до 3/2). NOT MET (висновок F1): частка глибоких завмирань у моделі в 2,38 раза більша за виміряну (поріг від 0,5 до 2), а середнє завмирання в 3,51 раза довше (поріг від 2/3 до 3/2). Висновок F2: зареєстрована обробка читає загорнуту фазу моделі, що виявила самоперевірка; B3, повторений постфактум із розгорнутою фазою, дає 0,804. ЩО НЕ ПЕРЕВІРЕНО: інші ночі, станції, широти чи сигнали; шум приймача в моделі. Рядок залишається MODELLED.iq::channel::scint (Scintillation, ScintParams); realdata::scint50 (parse_log, segments, measured_windows, model_windows, compare)
Варіант CFAR з усередненням за комірками в IQ-захопленніiq::acq::ca_cfar і ca_cfar_cells (за вибором): комірка сітки захоплення порівнюється із середнім опорних комірок її рядка Доплера (охоронні лаги та крок лагів, із циклічним переходом по періоду) з коефіцієнтом alpha, заданим із замкненої формули ймовірності хибної тривоги CA-CFAR для M некогерентних блоків (ca_cfar_pfa, ca_cfar_alpha). Детектор за потужністю відліку залишається типовим, і всі наявні вихідні дані не змінюються.MODELLEDЗамкнена формула, за порогами, попередньо зареєстрованими в 3724aefa (docs/design/evidence/acq-cfar/). Імовірність хибної тривоги CA-CFAR для комірок Gamma(M) порівняно з Монте-Карло точної моделі: 18 із 18 випадків у межах 3 біноміальних сигм. На кожній комірці пошуків iq::acq (GPS L1 C/A, 2,5 MS/s, по 210 000 комірок) за проєктного значення 1 %: 0,977 % і 0,969 % на гаусівському шумі та 1,006 % і 0,999 % на шумі, квантованому до 2 біт (M = 1 і 4; поріг плюс-мінус 20 %); рішення не змінюються при масштабуванні входу. NOT MET (висновок F1): на безшумовому 2-бітовому сигналі виявлення та його комірка правильні, але 1,28 % позапікових комірок рядка піку (поріг 1 %) перевищують поріг на детермінованих бічних пелюстках кореляції коду. ЩО НЕ ПЕРЕВІРЕНО: інші варіанти CFAR, двовимірні вікна, фронтенди з обмеженою смугою, польові дані.iq::acq (CfarConfig, ca_cfar, ca_cfar_cells, ca_cfar_pfa, ca_cfar_alpha)
Модель спектра: смуги ГЛОНАСС, BeiDou і Galileo E6 (за вибором)spectrum::default_band визначає, лише за назвою (MORE_BAND_NAMES), ГЛОНАСС L1OF і L2OF на кожному каналі FDMA K = -7 до 6 (BPSK, 0,511 Мчип/с), BeiDou B1I (BPSK(2)), B1C (MBOC(6,1,1/11)), B2a і B3I (BPSK(10)) та Galileo E6 (BPSK(5)), із несівними та мінімальними потужностями прийому з їхніх документів керування інтерфейсом; типовий набір смуг і всі наявні вихідні дані не змінюються.MODELLEDОпубліковані документи керування інтерфейсом і замкнені формули, за порогами, попередньо зареєстрованими в 5806f28b (docs/design/evidence/spectrum-bands/): ГЛОНАСС ICD, видання 5,1, BDS-SIS-ICD B1I 3,0, B1C 1,0, B2a 1,0 і B3I 1,0, Galileo OS SIS ICD, випуск 2,1. MET: кожна несівна, чипова швидкість і потужність прийому як транскрибовано (28 каналів ГЛОНАСС), перші нулі BPSK на чипової швидкості, складена B1C, що дорівнює MBOC(6,1,1/11), як дає таблиця потужності її ICD, тотожність шляху C/N0 та побайтово ідентичні сценарії спектра. NOT MET: поріг одиничної площі, який виявився недосяжним у записаному вигляді (висновок F1; площі дорівнюють замкненій формулі частки в смузі), і порозрядна згода хвильових форм B1I і B1C шару IQ з обвідною моделі (1,26 і 1,56 дБ проти 0,5 дБ, висновок F2; ГЛОНАСС 0,07 дБ), оскільки коди Голда і Вейля мають нерівномірні лінійчаті спектри; усереднено по смузі головні пелюстки збігаються в межах 0,25 дБ. ЩО НЕ ПЕРЕВІРЕНО: записані IQ, інші сигнали, внутрішньосистемні завади.spectrum (default_band, MORE_BAND_NAMES, GLONASS_CHANNELS)
Первинні далекомірні коди BeiDou B1I порівняно з незалежним генераторомiq::signals::beidou::b1i_bits і b1i: коди Голда BDS-SIS-ICD-B1I-3.0, усічені до 2046 чипів, PRN від 1 до 63, у такому вигляді, як їх генерує, захоплює та відстежує шар IQ.VALIDATEDGNSS-SDR v0.0.19 (тег v0.0.19, коміт 1ddd4562), незалежна реалізація з відкритим кодом того самого ICD: його beidou_b1i_code_gen_int, скомпільований окремо, згенерував усі 63 кодів. Зафіксовано лише його вихідні дані програми: tests/fixtures/iq_signals/beidou_b1i_gnss_sdr.txt, префікс із 64 чипів і SHA-256 кожного коду з 2046 чипів. Ці вихідні дані — це первинні коди PRN BeiDou B1I, які визначає публічний BDS-SIS-ICD-B1I-3.0; ні вихідного коду, ні двійкових файлів GNSS-SDR у репозиторії немає. Поріг попередньо зареєстровано в 911106d1 (xval/beidou-b1i-gnss-sdr/): усі 2046 чипів усіх 63 PRN ідентичні, без інверсії, зсуву чи перепозначення. Результат: 63 із 63 ідентичні; фікстуру згенеровано заново зі свіжого чекауту v0.0.19 (SHA-256 вихідного файлу, як записано), і вона побайтово ідентична. ЩО НЕ ПЕРЕВІРЕНО: вторинний код NH20, перелік PRN GEO, несівна та чипова швидкість.iq::signals::beidou (b1i_bits, b1i)
Далекомірні та накладні коди GPS L1C порівняно з надрукованими контрольними стовпцями IS-GPS-800Jiq::signals::gps::l1c_p_bits, l1c_d_bits і l1c_o_bits: далекомірні коди Вейля L1CP і L1CD (обчислена послідовність Лежандра, індекс Вейля, послідовність розширення, вставлена перед чипом p) і накладні коди L1CO S1, PRN від 1 до 63.VALIDATEDIS-GPS-800J (01-AUG-2022, заява про розповсюдження A), контрольні стовпці, надруковані поряд із параметрами генератора: таблиця 3.2-2 — початкові та кінцеві 24 чипи кожного коду L1CP і L1CD, таблиця 3.2-3 — початкові та кінцеві 11 бітів кожного коду L1CO, таблиця 6.2-1 — послідовність Лежандра довжини 10223; транскрибовано скриптом scripts/extract_is_gps_800_tables.py з PDF (SHA-256 c4aad710...). Пороги попередньо зареєстровано в fe372e26 (docs/design/evidence/l1c-codes/): ідентичні 252 із 252 стовпців, 63 із 63 накладок і 10 223 із 10 223 бітів Лежандра; витягування з --check проходить; негативний контроль не проходить на перепозначених, інвертованих і зсунутих кодах. ЩО НЕ ПЕРЕВІРЕНО: самі параметри генератора (вони походять із тих самих таблиць), чипи між надрукованими стовпцями, шаблон піднесучої TMBOC і коди L1CO S2.iq::signals::gps (l1c_weil, l1c_ranging_bits, l1c_p_bits, l1c_d_bits, l1co_s1_run, l1c_o_bits); iq::signals::tables
Первинні коди LunaNet AFS-I і AFS-Q порівняно з надрукованими контрольними стовпцями LSIS-AFS V1.0iq::signals::lunanet::afs_i_bits і afs_q_primary_bits (назви сигналів lunanet-afs-i і lunanet-afs-q у kshana iq): код Голда AFS-I (2047, скорочений циклічно до 2046, G2 із затримкою для кожного PRN) і первинний код Вейля AFS-Q (обчислена послідовність Лежандра, індекс Вейля, послідовність розширення, вставлена перед чипом p), PRN від 1 до 210.VALIDATEDПорівняно з надрукованими таблицями LSIS-AFS V1.0 (позначеними в специфікації як TBC): LunaNet Interoperability Specification V5, Applicable Document 1 Volume A: LunaNet Signal-In-Space Recommended Standard, Augmented Forward Signal (LSIS-AFS) V1.0, 29 січня 2025 (NASA; SHA-256 PDF 986e0795...), контрольні стовпці, які він друкує поряд із параметрами генератора: таблиці C-1–C-5 і D-2–D-6 — перші й останні 24 чипи кожного коду AFS-I і AFS-Q, таблиця D-1 — послідовність Лежандра довжини 10223; витягнуто скриптом scripts/extract_lunanet_afs_tables.py (xval/lunanet-afs/oracle/). Пороги попередньо зареєстровано в b3ba5d5 (xval/lunanet-afs/PREREGISTRATION.md) до появи генератора: B1 420 із 420, B2 ідентично, B3 420 із 420. Документ позначає свої таблиці кодів як {LSIS-TBC} і зазначає, що вони лише для тестування та інтеграції, тому це підтверджує за допомогою незалежної перевірки побудову щодо таблиць цього видання, а не пізнішого. Попередньо зареєстроване твердження про надрукований початковий стан G2 (B1b) було сформульовано з хибним напрямом і NOT MET (0 із 210), зафіксовано; виправлене співвідношення (2047 мінус затримка) виконується для 210 із 210 і записано як постфактум. ЩО НЕ ПЕРЕВІРЕНО: самі параметри генератора (ті самі таблиці), чипи між надрукованими стовпцями, третинний код, шар повідомлень і кодування LDPC.iq::signals::lunanet (afs_i_bits, afs_q_primary_bits, legendre_bits); iq::signals::lunanet_tables; iq::lunanet_afs::check_spec
Третинні коди LunaNet AFS і шар повідомлень (SB1 BCH, CRC-24Q, перемежувач) порівняно з LSIS-AFS V1.0iq::signals::lunanet::afs_q_tertiary_bits, afs_q_tiered; iq::lunanet_afs: шаблон синхронізації, кодер SB1 BCH(51 8) і декодер із 256 гіпотез, CRC-24Q, блоковий перемежувач 60 x 98, перевірник потоку символів (kshana lunanet-afs-check) і генератор тестового потоку із підкадрами-заповнювачами. Кодування LDPC зі швидкістю 1/2 для підкадрів від 2 до 4 не реалізовано (його матриці наведено в окремому додатку).MODELLEDLSIS-AFS V1.0 (як вище): послідовність Лежандра довжини 1499 (таблиця E-1, ідентична) і третинні перші та останні 24 чипи (таблиці E-2–E-6: ідентичні 419 із 420 стовпців; документ друкує ті самі останні 24 чипи, A14850, для PRN 147 і PRN 151, а генератор відтворює чипи PRN 151, тож запис для PRN 147, найімовірніше, є друкарською помилкою; поріг 420 із 420 NOT MET, а промах зафіксовано); робочий приклад коду SB1 на рисунку 8 (один приклад: 0x045 кодується в 0x229F61DBB84A0); CRC-24Q порівняно з контрольним значенням каталогу 0xCDE703 для ASCII 123456789; власна арифметика кадру документа. Пороги попередньо зареєстровано в b3ba5d5. Один зафіксований промах і один робочий приклад для шару повідомлень, тому рядок залишається MODELLED. ЩО НЕ ПЕРЕВІРЕНО: LDPC і слова CRC всередині підкадрів від 2 до 4, зміст повідомлень і будь-який записаний потікiq::lunanet_afs; iq::signals::lunanet (afs_q_tertiary_bits, afs_q_overlay_bits, afs_q_tiered); surface (lunanet_afs_check_spec, lunanet_afs_check_symbols, lunanet_afs_generate)
Пакети стандартів: сценарії, оцінені за порогами, заявленими до прогонуstandards_pack (kshana standards-pack): тестові профілі рамки DHS Resilient PNT для рівнів від 1 до 4, рівні точності IMO MSC.1/Circ.1575 та оцінювання цілісності, а також пакети ICAO Doc 9849, додаток F, — моніторинг, оцінювання та пом'якшення: кожен тест запускає вбудований вид сценарію і порівнює поля результату з порогами, заявленими в пакеті, а тести, яким потрібен журнал приймача, перелічено як NEEDS INPUT і не оцінюються.MODELLEDЖодного зовнішнього для результатів сценаріїв: кожен тест пакета запускає вид сценарію рівня MODELLED. Пороги — це заявлений профіль автора пакета (рамка DHS не заявляє значень; межі точності IMO — це таблиця C-1 MSC.1/Circ.1575, прочитана повністю; пакет ICAO відповідає власній презентації ICAO щодо Плану пом'якшення RFI, бо Doc 9849 є платною публікацією і її не читали), зафіксовані до будь-якого оціненого прогону у файлах PREREGISTRATION.md у стилі xval у standards/. Виконаний поріг (MET) означає, що змодельований сценарій виконав заявлений поріг, і нічого не говорить про продуктstandards_pack; compliance (standards-pack facts in compliance-report)
Пакет доказів лабораторного кругового випробування (сценарій, умови випробування, журнал приймача, оцінка)evidence::roundtrip (kshana evidence round-trip) і експорт журналу приймача kshana.test-conditions/1 з kshana bench-export: підписаний пакет, що записує хеш сценарію, хеш заявлених умов, хеш журналу та оцінку щодо заявлених подій, і відмовляє в умовах, які не збігаються з подіями оцінювання, чи в журналі, хеш якого не є заявленим. Сигнал не записується, не відтворюється і не планується.MODELLEDЖодного зовнішнього: пакет пов'язує хеші та оцінку журналу приймача рівня MODELLED, перевірені на синтетичних даних (експортований NMEA вбудованого сценарію, розглянутий як журнал приймача). Лабораторного прогону не заявляєтьсяevidence::roundtrip, evidence::assemble, interop::testbench (write_conditions_json), iq::campaign::conditions
Рушій стеження IQ порівняно з GNSS-SDR 0.0.19 на незалежних записахПовний рушій стеження шару IQ (iq::track через kshana iq track: передавання від захоплення, корелятори, NCO, ФАПЧ Костаса другого порядку на 15 Гц, ССЗ DLL першого порядку з допомогою несівної на 2 Гц на огинаючій EML, індикатор захоплення та оцінювачі C/N0) на GPS L1 C/A при 30–45 дБ-Гц.MODELLEDGNSS-SDR 0.0.19 (GPL-3.0-or-later, пакет Ubuntu 24,04, запущений як окрема програма; зафіксовано лише похідні числа) стежить за тими самими записами numpy (незалежними від рушія), обидва виміряно щодо аналітичної істини. Пороги попередньо зареєстровано в 48edd4a5, змінено до будь-якого тестового запису в 1e4288c4 (ФАПЧ-ФАП на 10 Гц лише під час входження в синхронізм в обох приймачах, після того як зареєстроване калібрування не пройшло через хибне передавання в GNSS-SDR, висновок F3). MET при 30, 35, 40 і 45 дБ-Гц: джитер несівної в межах 4,3 %, джитер коду в межах 4,6 %, а середнє й розкид Доплера в межах показників GNSS-SDR. NOT MET: C/N0 NWPR рушія показує на 2,3–7,1 дБ нижче за SNV GNSS-SDR (висновок F4, відома межа NWPR; його M2M4 у межах 0,06 дБ від істини); індикатори фазового захоплення відрізняються за визначенням (F5); при 30 дБ-Гц GNSS-SDR двічі зірвав, а рушій ні (F6). Власне передавання GNSS-SDR захоплювалося на хибній частоті в 3 із 30 калібрувальних прогонів. ЩО НЕ ПЕРЕВІРЕНО: інші сигнали, знімання біт даних, повторне захоплення, польові записи. Рядок залишається MODELLED.iq::track (Channel, LoopCore, design); iq::cli::track
Коефіцієнти підсилення антени CRPA у виді jamming порівняно з незалежним перерахунком у numpyНеобов'язковий розділ [crpa] виду jamming: промінь для кожного каналу на кожен супутник (формування нуля з джерелом глушіння як нулем або MVDR на sigma^2 I + P_j a_j a_j^H), що масштабує шум кожного каналу на ||w||^2 і глушіння на |w^H a_j|^2 перед наявним рівнянням C/N0 в умовах протидії глушінню.MODELLEDНезалежний перерахунок у numpy (xval/crpa-jamming/oracle.py, без спільного коду: вектори спрямованості numpy, numpy.linalg.solve та inv) кожного каналу геометрії jamming-demo із квадратною решіткою з 4 елементів за обох зважувань. Пороги попередньо зареєстровано в 08d83b4d. MET: A1 (усі 150 результатів сценаріїв побайтово ідентичні без цього розділу, після виправлення: перша збірка додала одиниці crpa до таблиці одиниць кожного прогону jamming), A2 (один елемент дорівнює відсутності решітки з точністю до 1e-12 дБ), A3 за шумовим підсиленням решітки та ефективним C/N0 (912 зважувань каналів у межах 1e-9 дБ, найгірше 2.1e-14 дБ) і за нулем глушника при формуванні нуля (нижче -200 дБ з обох боків), A4 (MVDR у межах 0,1 дБ від формування нуля при JNR 80 дБ). NOT MET: A3 за підсиленням глушника в MVDR, 194 із 456 каналів понад 1e-9 дБ на 0,36 переносної математики (202 на математиці хоста; docs/revisions/STUDIO15-batch4-rebaseline.md) (найгірше 1.7e-6 дБ) на залишках від -100 до -188 дБ, де float64-скасування обмежує обидві реалізації (inv і solve у numpy розходяться між собою на 169 каналах, найгірше 7.9e-7 дБ); ефективний C/N0, який вони живлять, не зазнає впливу. ЩО НЕ ПЕРЕВІРЕНО: взаємний зв'язок, розузгодження елементів, широкосмугова обробка, кілька глушників, будь-яке апаратне забезпечення антен. Перерахунок тих самих рівнянь, а не зовнішній оракул; рядок залишається MODELLED.jamming (CrpaCfg, crpa_weights, run_jamming); crpa (null_steering_weights, mvdr_weights, covariance)
Затінення глушника рельєфом у виді jamming порівняно з незалежним перерахунком у numpy на реальному тайлі SRTMНеобов'язковий розділ [terrain] виду jamming: профіль рельєфу вздовж великого кола між глушником і приймачем на тайлі SRTM .hgt із випуклістю Землі за k-фактором, домінантне лезо ножа (найбільше значення Френеля–Кірхгофа nu) і втрати на одному лезі ножа за ITU-R P.526-15, розділ 4,1, що віднімаються від потужності глушника на вході приймача.MODELLEDНезалежний перерахунок у numpy (xval/jamming-terrain/oracle.py, без спільного коду: власне читання .hgt, білінійна інтерполяція, цикл перетворення WGS 84, профіль, випуклість, nu та J(nu)) десяти розташувань глушника навколо приймача в басейні Бедвотер на зафіксованому реальному тайлі SRTM tests/fixtures/terrain/N36W117_sub6.hgt. Пороги та розташування попередньо зареєстровано в 92cd2bfd. Усі MET: адитивність (усі 150 результатів сценаріїв побайтово ідентичні без цього розділу); точки профілю й перешкода кожного розташування збігаються, а nu і втрати в межах 1.6e-10 (поріг 1e-9); втрати ніколи не зростають, коли глушник піднімається від 2 до 4902 м; втрати знижують кожне J/S рівно на себе й більше ні на що; J(nu) у межах 1e-12 дБ від оракула. Висновки: розташування за хребтами Блек і Фунерал втрачають від 44 до 48 дБ; два розташування на дні долини втрачають 8 і 15 дБ лише через випуклість Землі за висот антен 2 м, граничний випадок моделі одного леза ножа. ЩО НЕ ПЕРЕВІРЕНО: будь-яке виміряне поширення, дифракція на кількох лезах, відбиття від землі, кластерні перешкоди, власна похибка ЦМР. Перерахунок тієї самої моделі, а не зовнішній оракул; рядок залишається MODELLED.jamming_terrain (TerrainCfg, jammer_terrain, knife_edge_loss_db); jamming (run_jamming_sky)
Гістерезис захоплення та квантувач фронтенда у виді jamming порівняно з незалежними перерахункамиНеобов'язкові розділи виду jamming [acquisition] (супутник захоплюється на порозі захоплення або вище після затримки повторного захоплення й утримується, поки значення на порозі стеження або вище) та [front_end] (показання AGC 10 log10(1 + J/N) і втрати квантувача АЦП на гаусівському вході, що віднімаються від кожного каналу та позначаються як недійсні для негаусівських глушників).MODELLEDНезалежний перерахунок на Python кожного прапорця захоплення (xval/jamming-acq-agc/hysteresis.py) за ефективним C/N0 рушія для кожної епохи, незалежний Монте-Карло на numpy для втрат квантувача (xval/jamming-acq-agc/quantiser_mc.py, власний пошук оптимального кроку, 2^22 відліків) та цикл AGC шару IQ. Пороги попередньо зареєстровано в 70c72fcc, із додатковим набором прогонів у 37793290. MET: адитивність (усі 150 результатів сценаріїв побайтово ідентичні без цих розділів); кожен прапорець збігається на додаткових прогонах (1824 каналів, 732 із них демонструють гістерезис); монотонність за порогом; втрати квантувача в межах 0,0007 дБ від Монте-Карло при 1–4 бітах (поріг 0,02 дБ); показання AGC у межах 0,012 дБ від циклу AGC (поріг 0,05 дБ). NOT MET: зареєстровані прогони гістерезису (jamming-demo при 10–30 дБВт) були неінформативними, адже всі канали було втрачено, а їхні H2 і H4 виконано лише тривіально. Висновок: із CW-глушником 1-бітовий АЦП втрачає приблизно на 5 дБ більше, ніж гаусівське значення, яке застосовує рушій, і позначає це як недійсне. ЩО НЕ ПЕРЕВІРЕНО: сам пошук захоплення, динаміка AGC в часі, будь-яке апаратне забезпечення приймача. Перерахунки тієї самої моделі, а не зовнішній оракул; рядок залишається MODELLED.jamming_rx (AcquisitionCfg, AcqState, FrontEndCfg, front_end); jamming (run_jamming_sky); iq::frontend::quant (optimum_step_sigma)
Обмежене входження FLL нижче порога передавання від FLL до ФАПЧ типового проєкту (за вибором)Необов'язкове carrier.fll_pull_in_max_s в iq::track (поле fll_pull_in_max_s в iq::track::LoopConfig): за fll_assist = pull-in FLL передає керування ФАПЧ після фіксованого часу входження незалежно від PLI, із відповідним часом утримання повернення, доки PLI вперше не досягне fll_off_pli.MODELLEDВнутрішня узгодженість щодо введеної істини: синтетичне джерело GPS L1 C/A без даних (PRN 13, 1500 Гц, 4,1 МГц, 8 с, десять зерен шуму), фаза несівної якого відома, за порогами, попередньо зареєстрованими в 58789af0 (docs/design/evidence/fll-handover-floor/). MET: контроль (необмежений типовий режим ніколи не передає керування в 9 із 10 зерен при 33 дБ-Гц); адитивність (типовий хеш і наявні тести стеження не змінюються); входження з початковою розбіжністю 100 Гц при 45 дБ-Гц. NOT MET: з обмеженням у 1,0 с передавання та утримання в кожному прогоні (16 із 20 при 33 дБ-Гц, 8 із 20 при 31 дБ-Гц; решта циклічно чергують примусове передавання й повернення FLL) і фазовий джитер у межах 25 % від самої ФАПЧ (10,8 проти 6,1 градуса при 33 дБ-Гц). ЩО НЕ ПЕРЕВІРЕНО: біти даних, інші сигнали та частоти дискретизації, польові записи. Типовий режим не змінюється; рядок залишається MODELLED.iq::track (LoopConfig, FllGate, design); iq::track::channel (the FLL gate)
Зчитувач розв'язку RTKLIB .pos для receiver-trustЧитає файл розв'язку RTKLIB (календарний час або тиждень GPS/секунди тижня, положення за широтою/довготою або ECEF, кількість використаних супутників) у часову шкалу receiver-trust (receiver_trust::machines::rtklib).MODELLEDЖодного зовнішнього: жодного файлу, створеного RTKLIB, не читали, а розкладка стовпців узята з посібника RTKLIB. Перевірено лише на самостійно написаних файлах; перетворення ECEF повторно використовує frames::ecef_to_geodetic, яке має власні рядкиreceiver_trust::machines::rtklib (read_rtklib_pos); receiver_trust::LogFormat::RtklibPos
Журнали NovAtel OEM7 у форматах ASCII та двійковому (BESTPOS, RANGE, RXSTATUS) для receiver-trustЧитає BESTPOS (положення), RANGE (C/No для кожного сигналу) і RXSTATUS (прапорець глушника приймача як самозвіт епохи) із журналів OEM7 в ASCII та двійковому форматі, з перевіркою CRC, лише для читання (receiver_trust::machines::novatel).MODELLEDЖодного зовнішнього як порогу відповідності. Розкладки полів і CRC відповідають публічній документації OEM7 (docs.novatel.com); процедуру CRC один раз перевірено за CRC, який документація наводить для власного прикладу BESTPOSA (процитовано, а не відтворено дослівно). Фікстури написано самостійно; жодного журналу від реального приймача не читалиreceiver_trust::machines::novatel (read_novatel, novatel_crc32); receiver_trust::LogFormat::Novatel
Зчитувач відношення несівна/шум RTCM 3 MSM4 і MSM7 для receiver-trustЧитає C/N0 кожної комірки сигналу в повідомленнях RTCM 3 MSM4 і MSM7 (GPS, ГЛОНАСС, Galileo, SBAS, QZSS, BeiDou, NavIC) із потоку кадрів, з перевіркою CRC-24Q (receiver_trust::machines::rtcm3). Розкладки взято з таблиць pyrtcm під ліцензією BSD, а не з тексту стандарту RTCM.MODELLEDReferenceImpl в одноразовій перевірці, а не тест у наборі: декодер pyrtcm 1.2.0 читає ті самі самостійно написані кадри й отримує те саме C/N0 і час епохи. Він має те саме джерело таблиць, що й цей зчитувач, тому перевіряє обробку бітів, а не розкладку. Жодного запису від реального приймача чи базової станції не читалиreceiver_trust::machines::rtcm3 (read_rtcm3, crc24q); receiver_trust::LogFormat::Rtcm3
Адаптер монітора GNSS-SDR для receiver-trustЧитає повідомлення GNSS-SDR Monitor (Gnss_Synchro) і PVT-монітора, ретрансльовані у рядки JSON з іменами полів proto, у C/N0 для кожного каналу, фікс, кількість використаних супутників, HDOP і небо (receiver_trust::machines::gnss_sdr; integrations/gnss-sdr/relay.py).MODELLEDЖодного зовнішнього: імена полів узято з документації GNSS-SDR; ні зчитувач, ні relay.py не запускали проти живого GNSS-SDR чи реального записуreceiver_trust::machines::gnss_sdr (read_gnss_sdr_monitor); receiver_trust::LogFormat::GnssSdr
Прийом журналів IMU, вхід курсу за гіроскопом і підгонка за Алланом параметрів гібридних датчиківЧитає CSV IMU (задокументовані стовпці або розкладка EuRoC); інтегрує швидкість рискання в курс, який читає монітор heading-course ([log.imu]); і підганяє параметри шуму акселерометра та гіроскопа гібридних сценаріїв і сценаріїв злиття за нерухомим журналом через девіацію Аллана з перекриттям (imu-fit).MODELLEDЖодного зовнішнього: підгонку перевірено на синтетичних журналах білого шуму з відомими коефіцієнтами, а курс — на журналах зі сталою швидкістю рискання. Жодного реального журналу IMU не підганяли, а q_aa не підганяєтьсяreceiver_trust::machines::imu, imu_fit; surface::imu_fit; scenario [log.imu]
Експортер виявлення та стану Home Assistant MQTT для телеметрії довіриДокумент стану JSON і повідомлення виявлення Home Assistant MQTT для потоку довіри, що виводяться як текст на кожній поверхні та публікуються через MQTT 3.1.1 QoS 0 командним рядком (telemetry::mqtt; trust-telemetry --mqtt-tcp, --print-mqtt, format mqtt).MODELLEDЖодного зовнішнього: пакети читав слухач loopback, написаний для тесту, а не справжній брокер, і Home Assistant не запускалиtelemetry::mqtt (discovery, state_json, connect_packet, publish_packet, MqttSink); surface::TelemetryFormat::Mqtt
Пакет receiver-trust для ROS 2 і міст gnss_lib_pyМіст без ROS, що записує повідомлення про фікс і супутники як NMEA та оцінює їх через прив'язку Python (integrations/ros2/kshana_trust), і міст gnss_lib_py від NavData до receiver-trust через формат rtklib-pos (integrations/gnss_lib_py).MODELLEDЖодного зовнішнього: вузол ROS не запускали на живому графі ROS 2, а імена полів ublox_ubx_msgs не звіряли з працюючим драйвером. gnss_lib_py (MIT) запускали для тесту мостуintegrations/ros2/kshana_trust (bridge.py, trust_node.py); integrations/gnss_lib_py/kshana_gnss_lib_py.py