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

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

Можливості, обчислені за моделлю - обґрунтування

Ці можливості реалізовано за опублікованою фізикою або фізикою перших принципів із тестами, але чесно позначено MODELLED - вони не перевірені за незалежним зовнішнім оракулом до заявленого допуску. Інваріантні тести матриці гарантують, що VALIDATED можуть бути лише рядки, підкріплені ExternalDataset, тож нічого звідси не можна непомітно підвищити. Кожен рядок пояснює, чому він лишається в обчислених за моделлю.

Вимога Можливість Вид оракула Чому він лишається обчисленим за моделлю Модуль Тести
Тінь SRP із потемнінням Сонця до краю (за вибором) Освітлена частка SRP як незатулена частка сонячного потоку з потемнінням до краю (закон наближення Еддінгтона I(mu)/I(1) = 2/5 + 3/5 mu, квадратура Гаусса–Лежандра) над сферичною або WGS-84 Землею (srp_shadow::limb_darkened_shadow, варіант ShadowModel OblateEarthLimbDarkened) InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - зовнішнього немає: Orekit 12,2 не має відношення освітленості з потемнінням до краю. Перевірено лише за замкненими формами того самого закону srp_shadow srp_shadow::tests (кільцева замкнена форма, рівномірний закон, що відтворює конічну тінь, межі повного Сонця та повної тіні)
Сонце та Місяць за DE440 у моделі сил Cowell (за вибором) Рівень ефемерид за вибором для членів третього тіла та SRP чисельної ForceModel Cowell: геоцентричні Сонце та Місяць із будь-якого EphemerisProvider (ядро DE440 SPK через KernelEphemeris) у TDB = TT + (TDB - TT), з відмовою постачальнику, який не може обслужити епоху, і підрахунком будь-якого повернення до аналітичного ряду; за замовчуванням вимкнено ExternalDataset підтвердження частини зовні перевірене, але вся можливість складається з обчислених за моделлю частин, тож можливість лишається обчисленою за моделлю - Orekit 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; причину не виділено. Зафіксовано та закріплено, тож рядок лишається MODELLED propagator (ForceModel::with_ephemeris, ForceEphemeris), ephem_provider tests/propagator_de440_orekit_oracle.rs (5 випадків x 25 щогодинних станів за 24 год, LEO, GEO і HEO, третє тіло та третє тіло + SRP: найгірше |dr| 0,0170 м, |dv| 1.84e-5 м/с; аналітичний контроль відхиляється на 9,96 м; Сонце 6,39 м і Місяць 0,244 м від положень DE440 Orekit, зафіксований промах); модульні тести propagator (відмова провайдера, облік резервного переходу, спільний між клонами)
Атмосферний приплив S1 (за вибором) Добовий атмосферний приплив S1 від тиску повітря як збурення геопотенціалу: модель N1 Б'янкале та Боде (2006), степені від 2 до 6, за формулою навантаження IERS 2010 рівн. 6,21 (tides::atmospheric_tide_s1, s1_air_tide_acceleration), вмикається за вибором у моделях сил Cowell і прецизійній (air_tide_s1, за замовчуванням вимкнено) InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - зовнішнього немає для ефекту геопотенціалу. 24 коефіцієнти перенесено з GFZ STR06/01 Table 1 модель N1 і перевірено повторно рядок за рядком за звітом (SHA-256 890865ae); ступені 0, 1, 7 і 8 не використовуються. Ray and Ponte (2003) не друкують таблиці сферичних гармонік, тож другого джерела для порівняння не було tides, propagator, precise_od tides::tests (член S1 добовий, повертається на 90 градусів за чверть доби та має амплітуду коефіцієнта навантаження кожного рядка; фізична величина на LEO); propagator::tests::the_s1_air_tide_flag_adds_exactly_the_s1_acceleration
Високостепенева сферично-гармонічна гравітація (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 Geopotential ExternalDataset підтвердження частини зовні перевірене, але вся можливість складається з обчислених за моделлю частин, тож можливість лишається обчисленою за моделлю - Orekit 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; перевірка mpmath із 50 цифр відносить помилку на pyshtools), на самій полярній осі значення оракула немає, а попередньо зареєстрований контроль чутливості ступеня 70 для 24-годинної орбіти не виконано (0,726 м проти > 1 м). Кожен промах зафіксовано, а не підігнано, тож рядок лишається MODELLED gravity_sh, propagator (FieldEvaluator) tests/gravity_sh_high_degree.rs (Orekit у 8 позаосьових точках: макс. |da| 2.2e-17 м/с^2 при N = 70, виконується завжди; 3.5e-17, 3.9e-17 і 7.3e-17 м/с^2 при N = 200, 360, 2190, за наявності даних KSHANA_EGM2008_GFC); tests/cowell_tesseral_200_orekit_oracle.rs (24-годинна орбіта 200x200, за наявності даних: найгірше |dr| 0,1317 м, |dv| 1.45e-4 м/с; контроль ступеня 70 0,726 м); модульні тести gravity_sh (збіг з класичним обчислювачем до 1e-13 при ступені 70, скінченна різниця та неперервність на полюсі для поля ступеня 2190, член ступеня 2190 з антипереповненням проти обчислення з розширеним показником)
Пакетне визначення орбіти за швидкістю зміни дальності та az/el із маскуванням станції Відновлення стану на епоху зі змішаних вимірювань дальності, швидкості зміни дальності та азимута/кута місця вище маски кута місця методом Гаусса–Ньютона за H = (dh/dx(t)) Phi(t, t0): аналітичні частинні похідні вимірювань і варіаційна матриця переходу стану з аналітичними двотільними частинними похідними + J2 (інтегрована RK4, а не STM у замкненому вигляді) ExternalDataset підтвердження частини зовні перевірене, але вся можливість складається з обчислених за моделлю частин, тож можливість лишається обчисленою за моделлю - Orekit 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) tests/od_tracking_measurements_reference.rs (8 сценаріїв: швидкість зміни дальності, az/el і змішані, LEO та MEO, без шуму та із зерном сигма 5 м / 5 мм/с / 1e-4 рад, маски 5 і 10 град, проти Orekit 12,2: множини видимих ідентичні; значення вимірювань у межах 5.84e-8 м, 6.30e-10 м/с, 1.44e-13 рад; STM у межах 1.2e-14 відносно; зашумлені стани в межах 1,74 см і 1.14e-5 м/с; післяпідгінковий RMS для кожного типу в межах 2.7e-4 відносно; kshana без шуму проти істини 1.06e-8 м; kshana без шуму проти Orekit 1,464 і 1,740 см у двох сценаріях, зафіксований промах порогу 1 см); модульні тести orbit_determination і batch_ls
Зважування спостережень за кодом точності SP3 Відображення кодів точності SP3 (заголовок ++ показники степеня у 2^n мм, база %f, стандартні відхилення base^n мм для кожного запису) на сигми положення для кожного спостереження для рушія прецизійного визначення орбіти (sp3::parse_sp3_accuracy, Sp3Accuracy::position_sigma_m) InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - зовнішнього немає: ваги є вибором моделювання (формат SP3 визначає код лише як показник точності від виробника; тут його прочитано як односигмовий для кожної осі). Наявні зафіксовані прогони агентств не змінилися sp3, precise_od модульні тести src/sp3.rs; tests/agency_galileo.rs::galileo_e11_sp3_accuracy_weighted_fit (закомічена 8-годинна фікстура ESOC, сигма 0,032 м з показника заголовка 5: 3D RMS рівня 1 0,132 м без змін, рівня 2 0,035 м проти 0,070 м при сигмі 1 м, зміна походить від переурівноваженого емпіричного апріорного обмеження); tests/agency_swarm.rs (продукт Swarm не містить кодів точності та переходить на резервний варіант, закріплено)
Приєднання опублікованого гравітаційного поля до тіла with_gravity_field (у Body, в src/gravity_pds.rs): приєднує будь-яке завантажене сферично-гармонічне поле (наприклад, GMM-3 або GL0660B) до Body, щоб пропагатор обчислював його в системі, пов'язаній з тілом; за вибором, тіла за замовчуванням не змінюються InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - лише внутрішня узгодженість. Кожне опубліковане поле визначене в зв'язаній із тілом системі координат свого виробника (GMM-3 у марсіанській системі Konopliv et al. 2006, GL0660B у місячній системі головних осей DE421), тоді як поле обчислюється в системі IAU; зсув не змодельовано gravity_pds, body, propagator, mars_frame tests/planetary_gravity_pds.rs::a_shadr_field_attached_to_a_body_drives_the_propagator; gravity_pds::tests::with_gravity_field_is_opt_in
Кодувальники навігаційних повідомлень, окрім 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), блочне перемежування та синхропослідовності, з відповідними тестовими декодерами InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - внутрішній круговий прохід і відомі відповіді ICD; жоден сторонній декодер не запускався (стенд RTKLIB/GNSS-SDR, що читає KSHANA_NAVMSG_ORACLE_JSON, залежить від наявності даних). MODELLED gnss_navmsg (gps_cnav, gal_inav, gal_fnav, fec) gnss_navmsg::tests (контрольне значення CRC-24Q 0xCDE703; імпульсна характеристика згортального коду; Viterbi виправляє вставлені помилки; ширини розкладки); tests/gnss_navmsg_roundtrip.rs (початкові біти полів дорівнюють номерам бітів ICD; кодування -> FEC -> перемежування -> Viterbi -> декодування повертає значення в межах половини LSB); tests/gnss_navmsg_galileo_brdc_grid.rs (записи IGS BRDC 2018-133 Galileo на сітці LSB, найгірше 3.6e-3 LSB; попередньо зареєстрований поріг кількості супутників не досягнуто, 15 із 20, FINDING)
Згладжування коду за несівною за Hatch на реальних спостереженнях RINEX Фільтр Hatch без розбіжності (безіоносферний код, що несе безіоносферна несівна, вікно з N епох, перезапуск при втраті захоплення, стрибку геометрично-вільної комбінації або пропуску) у складанні прецизійного одноточкового позиціонування InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - FINDING проти опублікованої координати ITRF2020 WTZR: попередньо зареєстровані пороги (згладжена медіана та p95 не більше 0,6 x сирих; tests/fixtures/gnss_wettzell_2025055/PREREGISTRATION_HATCH.md) не досягнуто, відношення 0,718 і 0,923; залишкова похибка рівня метрів схожа на зміщення (зміщення коду C1C, антена, приплив, довгоперіодна багатопроменевість), а не білий шум, який усуває згладжування. MODELLED: статистику фільтра перевірено внутрішньо hatch (HatchFilter), pvt (assemble_epoch_precise_smoothed, CarrierSmoother) hatch::tests (наскрізна передача без шуму; дисперсія білого шуму 1/(2N-1); перезапуски); tests/hatch_wettzell_oracle.rs::hatch_finding_is_pinned (WTZR 2025-02-24 01-06 год, 600 епох, N = 100: медіана 3D-похибки 1,553 -> 1,116 м, p95 3,473 -> 3,207 м)
Читання файлів спостережень RINEX 4 Заголовки спостережень RINEX 4.0x (DOI, LICENSE OF USE, STATION INFORMATION, MERGED FILE; мітки зіставляються в стовпцях 61-80 для версії 4 і новіших) і записи епох InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - відповідність формату на реальному опублікованому файлі RINEX 4,00 (зчитані значення дорівнюють надрукованим у файлі літералам) і заголовку, виведеному зі специфікації; незалежний читач не запускався, тож MODELLED rinex_obs (parse_obs) tests/rinex4_obs_mao0.rs (перші 4 епохи файлу IGS MGEX RINEX 4,00 MAO000USA_R_20231980000_01D_30S_MO, 58 супутників, 7 систем: записи заголовка та значення першої епохи дорівнюють опублікованим літералам); rinex_obs::tests::parses_a_rinex_4_header_with_its_new_records (синтетичний заголовок 4,02 зі специфікації)
Положення геостаціонарного супутника BeiDou за бортовими ефемеридами Положення геостаціонарного супутника за бортовими ефемеридами за BDS-SIS-ICD-B1I v3.0 §5.2.4.12 (квазіінерційна система, потім Rz(Ω̇e·tk)·Rx(−5°)), вмикається за вибором через поле include_beidou_geo в NavParseOptions, тож стандартний зчитувач і далі пропускає GEO InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - попередньо зареєстровано (7aa264b, 110fef9) проти точної орбіти IGS MGEX з GEO; жодного такого продукту не було доступно із сеансу, що його будував, тож порівняння відкладене, а рядок MODELLED (перевірено лише за опублікованими номінальними слотами GEO) rinex (RinexEphemeris::sv_position_ecef_bds_geo, NavParseOptions) tests/bds_geo_broadcast_oracle.rs (реальні записи C01-C04: геостаціонарний радіус, довготи 140.02/80.04/110.55/159.99 град на опублікованих слотах, |широта| 2,13 град з нахилом проти 6,65 без; попередньо зареєстроване порівняння широкомовного та точного SP3 залежить від наявності даних KSHANA_BDS_GEO_SP3 і не запускалося); rinex::tests
Тісно зв'язана GNSS/INS на фазі несівної з дійсними неоднозначностями EKF у просторі помилок над 15 станами INS, двостановим годинником приймача та однією дійсною неоднозначністю несівної на кожен супутник, що відстежується; псевдодальність, фаза несівної та необов'язкова швидкість зміни дальності від угруповання SGP4 Walker (час проходження світла та ефект Саньяка), поправки Klobuchar і Saastamoinen/Niell, що застосовуються в контурі на власному положенні фільтра; виявлення зривів за часово-диференційованою несівною з порогом для кожного супутника, розширеним за невизначеністю швидкості; повторна ініціалізація неоднозначностей після зривів і повторного захоплення InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - внутрішня узгодженість: вимірювання синтезовано з моделей, які використовує фільтр (χ² NEES/NIS за зернами, безшумна збіжність, вставлення зривів). MODELLED; реальні дані приймача чи сторонній фільтр не порівнювалися fusion::carrier_tc (run_carrier_tc, CarrierTcCfg), fusion::trajectory (truth_epochs) tests/fusion_carrier_tc.rs (їзда за траєкторією figure-8: усталений 3D RMS 0,025 м за несівною проти 0,470 м за кодом на однакових вимірюваннях; 12 зерен, середнє NIS/dof 1,00 і усталене NEES/dof 0,92; зрив на 1 цикл виявлено в його епосі без хибних тривог, а розв'язок залишився цілим; вимкнення широкомовних поправок підвищує похибку коду з 0,51 м до 19,6 м (іоносфера) і 8,0 м (тропосфера); безшумний прогін збігається до 0,3 мм)
Пакети GNSS/INS для морського, залізничного й авіаційного застосування з опцією тісного зв'язування Три сценарії gnss-ins на бібліотеці траєкторій (судно, що маневрує на 8 м/с, з п'ятихвилинним перебоєм; потяг, що проходить крізь виїмку з двома супутниками і тунель; літак, перебій якого охоплює віраж із креном 25 градусів) і необов'язкова таблиця [tight] пакета: псевдодальності від угруповання SGP4 Walker, злиті навігатором із замкненим контуром, усі супутники вище маски в номінальному режимі та кілька найвищих у погіршеному InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - внутрішнє: показники якості кожного пакета проти його власної істини та порівняння слабкого/тісного зв'язування на однакових входах. MODELLED; порівняння аудиту з NaveGo не запускалося fusion::pack (TightCfg, [tight]), сценарії gnss-ins-maritime / gnss-ins-rail / gnss-ins-aviation tests/gnss_ins_packs.rs (кожен пакет: об'єднання краще за вільний INS під час відключення для обох датчиків; залізниця: тісне 5,3 м проти слабкого 12,9 м для навігаційного класу та 15,6 м проти 18,8 м для тактичного під час відключення, доступність 0,97 проти 0,95; таблицю тісного зв'язування перевірено); tests/gnss_ins_legacy_trajectory_pin.rs (слабко зв'язаний типовий варіант побітово ідентичний)
Зв'язаний фільтр псевдодальностей PNT зі станом зміщення та 3D-розширенням у пакеті злиття Один зведений фільтр Калмана за положенням, швидкістю, фазою та частотою годинника, що отримує псевдодальності, які зв'язують положення і годинник (оновлення у формі Джозефа з перехресною коваріацією); варіант 1-DOF, доповнений станом сталого зміщення акселерометра, який пакет злиття запускає за [coupled]; та 3D-версія з 8 станами з рядками лінії візування InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - внутрішня узгодженість: істину змодельовано з власних моделей фільтрів (χ² NEES за зернами Монте-Карло, роз'єднаний пакет на однакових датчиках). MODELLED fusion::coupled (CoupledPntFilter, CoupledPntBiasFilter, CoupledPnt3d), fusion (run_coupled_suite), hybrid (CoupledCfg) tests/fusion_coupled_filters.rs (3D-фільтр за 60 зернами: середнє NEES другої половини 8,12 для 8 станів, сума χ² останньої епохи всередині смуги 95 %; виправлення годинника на 0,1 нс зменшує 3D-сигму позиції з 5,58 м до 3,07 м; фільтр зміщення за 60 зернами: сума χ²(5) у смузі, зміщення в межах 3 сигм у 59 із 60; fusion-pnt-coupled із зміщеними акселерометрами: p95 позиції 18,7 м / 90,0 м і цілісність 1,00 / 0,97 у зв'язаному варіанті проти 430 м / 4060 м і 0,006 / 0,000 у роз'єднаному); fusion::coupled::tests; tests/fusion_coupled_pack.rs (fusion і hybrid без [coupled] побітово ідентичні)
Бібліотека траєкторій GNSS/INS та імпорт істини з CSV Профілі руху на вибір для пакета gnss-ins (пряма, фігура-8, міський рух зі зупинками, набір висоти літаком і координований віраж, знімальний дрон), задані командами швидкостей Ейлера та прискорення вздовж треку, замкненими на істинному стані за допомогою кінематичного IMU (доцентровий, гравітаційний і коріолісів складники), і імпортована істина з CSV, перетворена на IMU, що її відтворює; історичний рух не змінюється, якщо профіль не задано InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - внутрішнє: тотожності кінематики твердого тіла, круговий прохід CSV і власна коваріація фільтра. MODELLED (жоден реальний журнал руху не порівнюється) fusion::trajectory (TrajectoryCfg, Trajectory, kinematic_imu, parse_truth_csv), fusion::pack ([trajectory]) fusion::trajectory::tests (узгоджений поворот не має бічної сили, а коефіцієнт навантаження дорівнює 1/cos φ; імпорт CSV відтворює пролетений профіль з точністю 1e-3 м/с і 1 м); tests/gnss_ins_trajectory_library.rs (кожен профіль виконується, а об'єднання краще за вільний INS під час відключення; кожен виконує свій названий рух; спостережуваність курсу: сигма рисканя після 240 с 1,27 град при прямолінійному крейсерському русі проти 0,039 град при figure-8 та 0,062 град при русі зі зупинками); tests/gnss_ins_legacy_trajectory_pin.rs (застарілий результат і хеші істини побітово ідентичні)
NRHO Земля–Місяць CR3BP 9:2 проти орбіти, якою літав CAPSTONE Обмежена кругова південна майже прямолінійна гало-орбіта L2 9:2, яку коригує cr3bp::differential_correct_halo (родина орбіт Gateway і CAPSTONE), порівняна за середньою геометрією (період, радіус периселенія, радіус апоселенія) з орбітою, якою CAPSTONE фактично літав. Вимірювання того, наскільки добре член CR3BP описує реальну орбіту; орбіта CR3BP не є орбітою за моделлю ефемерид і не порівнюється епоха за епохою ExternalDataset підтвердження частини зовні перевірене, але вся можливість складається з обчислених за моделлю частин, тож можливість лишається обчисленою за моделлю - виміряно за реконструйованою ефемеридою CAPSTONE з JPL Horizons (NAIF -1176, CAPSTONE_merged, ICRF з центром у Місяці, 2023-03-01..31 з кроком 10 хв), закомічено байт у байт (tests/fixtures/capstone_horizons/, NOTICE.md), попередньо зареєстровано 4e868170 до отримання, як вимірювання з порогами для середньої геометрії. Це не валідація: CR3BP не враховує Сонця, ексцентриситету Місяця та утримання на орбіті, яке виконував CAPSTONE, тож пороги описують, наскільки репрезентативна модельна орбіта, а не точність. Результати: docs/design/evidence/cap29d-capstone-nrho/RESULTS.md cr3bp (differential_correct_halo, PeriodicOrbit) tests/capstone_nrho_horizons.rs::cr3bp_nrho_matches_capstone_mean_geometry (CAPSTONE, березень 2023, 4 перилуни та 5 аполунів: період 6,5004 доби проти 6,5699 доби (1,07 %, поріг 3 %), аполуній 71 182 проти 71 215 км (0,05 %, поріг 5 %), перилуній 3 385 проти 3 245 км (4,1 %, поріг 20 %)); cr3bp::tests::reproduces_l2_southern_nrho_92_regime
Похибка положення з геометрії: похибка 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, та сама арифметика) для тієї самої геометрії InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - внутрішня узгодженість із замкненою формою: за лінійною гауссовою моделлю коваріація методу найменших квадратів дорівнює sigma^2 (H^T H)^-1 (Kaplan and Hegarty (eds.), Understanding GPS: Principles and Applications, 2nd ed., Artech House, 2006, ch. 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 (рядок 'GNSS geometry / dilution of precision'); цей рядок додає крок від цих множників до метрів через розв'язувач рушія і не запозичує статусу того рядка. ЧОМУ 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) tests/uere_dop_monte_carlo.rs (position_error_is_sigma_times_dop_on_the_gnss_lib_py_geometries: усі 104 перевірки проходять з першого прогону після попередньої реєстрації e50c88d2, найгірша дисперсія 3,2 %, RMS 1,6 %, кореляція 0,012, середнє 2,2 стандартної похибки, частка еліпса 0,0039; negative_control_a_doubled_pdop_fails_every_geometry; negative_control_elevation_dependent_errors_fail_the_low_elevation_geometries: обидва контролі не проходять, як і потрібно; position_error_is_sigma_times_dop_on_masked_skies: дві геометрії маскованої лінії горизонту з нотатки про проєктування, небо 10sat-mixed під пресетами міської вулиці (4 супутники, PDOP 16,6) і контейнерного терміналу (9 супутників, PDOP 2,5), усі 26 перевірок проходять з першого прогону після попередньої реєстрації 03999c11, tests/fixtures/dop/PREREGISTRATION-MASKED.md); tests/position_error_dop_ci.rs (перша окрема перевірка на чотирьох вручну вибраних небесах (відкрите, скупчене, каньйон, півнеба; сигма 1 м, зерно 0x0D0B5EED) з довірчими інтервалами хі-квадрат на 1e-6 загалом за 20 перевірок: відношення від 0,987 до 1,009, власні PDOP/GDOP розв'язувача дорівнюють ядровим з точністю 2.5e-12, і негативні контролі для похибки DOP 10 % та похибок 1/sin(висота); виконано до попередньої реєстрації, тож про це повідомлено, але це не попередня реєстрація); dop_error_mc::tests; dop_error_ci::tests
Класифікація довіри з урахуванням геометрії: геометрія супутників поруч з оцінкою довіри до приймача та клас для кожного зниження 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 %) від заявленого неба, — до inconsistency InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - внутрішня узгодженість: класифікацію перевірено за сформульованими правилами та за відношеннями, виведеними вручну на синтетичних правках закоміченого демонстраційного журналу, а закріплення відсутності змін утримують виводи 0.35.0: жодна оцінка не змінюється, якщо геометрія не погана; мітку завжди повідомляють. ЧОМУ MODELLED: пороги вибрано, а не підігнано (походження в geometry_model кожного прогону; показники IEC 61108-1 і GPS SPS наведено як цитовано, їх слід звірити з текстом стандартів), і немає зовнішнього розміченого набору даних про природне погіршення геометрії проти атак, за яким можна було б перевірити класифікацію. Виведений DOP повторно використовує ядро orbit::dop, VALIDATED проти gnss_lib_py, чий статус цей рядок не запозичує. Клас геометрії - це твердження про небо, а не висновок, що атаки не було receiver_trust (geometry: GeometryTracker, geometry_ratio, sky_ratio, geometry_points, GeometryLabel; score: DeductionClass, score_with; monitors; live); telemetry (sample, prometheus, syslog, otlp) tests/natural_degradation_trust.rs (a_stated_skyline_reads_the_fjord_as_geometry: на синтетичному проході фіордом зі scenarios/training/fjord-natural-degradation.toml ті самі 624 епохи знижуються з указаним [skyline] і без нього; з ним sky-blocked повідомляється в 680 епохах (0 без нього: резервний варіант за азимутальною прогалиною нічого не бачить у двосторонньому фіорді), open_fraction становить 0,758, а епохи класу середовища зменшуються з 78 до 33, решта - це втрати супутників, які вказана лінія горизонту залишає на відкритому місці; поза подією лінія горизонту не змінює жодної оцінки); receiver_trust::geometry::tests (відношення, виведені вручну на порогах, межі порогів, наростання та обмеження, нижня межа, межі міток, перевизначення [geometry], DOP на перевіреному ядрі, утримувані та прострочені небеса, невідоме не вгадується, втрата сигналу, допуск поганої геометрії, сторожові значення відсутності розв'язку); tests/geometry_trust.rs (справедливе маскове небо позначене та не оцінене, погане маскове небо, втрата низької висоти, падіння потужності, підроблений HDOP, повна втрата сигналу, відведення під час поганої геометрії, невідома геометрія, перевизначення сеансу, схема live); tests/geometry_trust_no_change.rs (обидва приклади сеансів побайтово ідентичні 0.35.0 після видалення доданих ключів); tests/geometry_corpus_identity.rs (кожен закомічений корпус NMEA судна, також як GPS-лише відкрите небо, і сценарії навчання екіпажу: побайтово ідентичні 0.35.0, окрім поганих епох, які відрізняються лише відніманням за геометрію)
Зведення міського каньйону, секторів і рельєфу до таблиці skyline: міський каньйон у замкненому вигляді (зріз atan((h - a) / d) при d = (w/2) / abs(sin(az - s)), відкриті кінці для скінченної довжини), секторі з різкими краями за годинниковою стрілкою із замиканням, а точки рельєфу зведено до таблиці зі спадом кривини d^2/(2 * 4/3 R); горизонт — це їхній поточковий максимум з будь-якою таблицею InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - внутрішнє: замкнені форми перевірено за значеннями, обчисленими вручну (висоти верху стін указаної вулиці, умова відкритого кінця, спад кривизни указаної точки). Зовнішнього оракула немає: нотатка про проєктування відносить ці зведення до 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::tests (canyon_matches_hand_computed_wall_elevations; terrain_takes_the_curvature_drop; sectors_have_sharp_edges_and_wrap; a_preset_is_overridden_or_added_to_field_by_field; malformed_sections_are_refused)
Пресети горизонту (міська вулиця, підхід до гавані, фіорд, контейнерний термінал) 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 град над двома вузькими секторами); перевизначаються поле за полем InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - немає: вибрані та заявлені розміри, а не обстеження жодної вулиці, порту, фіорду чи терміналу (відношення сторін вулиці лежить у смузі 0.5-2 за Oke (1988); фіорд має порядок західнонорвезьких фіордів; штабелі використовують висоту high-cube за ISO 668). Тест перевіряє пресети за їхніми власними заявленими розмірами, це перевірка перенесення, яку правило валідації не враховує skyline (PRESETS, preset, preset_list) skyline::tests (presets_carry_the_note_dimensions_and_provenance)
Функції геометрії неба: видимість, 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 немає ReferenceImpl перевірено за окремою реалізацією в цій самій кодовій базі - незалежною від тестованого модуля, але не зовнішньо авторитетною - множники 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) geometry::tests (ellipse_of_an_analytic_two_by_two_case; sky_geometry_equals_orbit_dop_on_the_same_visible_set; ecef_input_matches_azimuth_elevation_input; one_clock_per_system_adds_a_state_and_costs_geometry; monte_carlo_is_seeded_and_agrees_with_the_geometry; presets_propagate_and_are_seen_from_a_site); tests/dop_reference.rs (ядро для одного годинника проти gnss_lib_py)
Holdover годинника за відсутності GNSS Зростання похибки вибігу в замкненому вигляді + holdover до порога; класи квантових годинників ReferenceImpl перевірено за окремою реалізацією в цій самій кодовій базі - незалежною від тестованого модуля, але не зовнішньо авторитетною - багатокрокова рекурсія коваріації clock_state (перехресна перевірка в тій самій кодовій базі); основне ядро дисперсії вибігу та інверсії holdover зовні перевірене проти scipy (див. 'Clock-holdover coast-variance & threshold inversion'). Показники holdover для кожного класу з підлогою червоного шуму лишаються MODELLED holdover holdover::tests (проти багатокрокової рекурсії коваріації Калмана; точний білий FM; круговий прохід); ядро дисперсії вибігу зовні перевірене в tests/gnss_denied_clock_holdover_reference.rs (проти scipy Van-Loan/brentq)
Картки виміряних пристроїв-годинників (передбачення на відкладених даних) clock_library: картка пристрою (білий шум фази, білий, фліккерний і випадкового блукання FM плюс лінійний дрейф частоти), підігнана за однією третиною іменованого виміряного запису годинника після журналованого кондиціювання (вилучено пропуски, викиди фази, стрибки фази, сплески; стрибки частоти записано в журнал), зважена за ступенями свободи типів шуму, ідентифікованими за лагом 1, а її передбачена девіація Аллана оцінюється на відкладених двох третинах; зчитувачі файлів годинників RINEX та IGS, файлів окремих лабораторій BIPM і Circular T розділу 1; перетворення картки на модель шуму слотової синхронізації, розширену калманівську модель годинника та рівні шуму монітора спуфінгу ExternalDataset підтвердження частини зовні перевірене, але вся можливість складається з обчислених за моделлю частин, тож можливість лишається обчисленою за моделлю - виміряні записи, відкладені: фінальні комбіновані 30-секундні годинники IGS 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) tests/clock_library_device_cards_oracle.rs (gps_iif_cards_reproduce_the_recorded_finding; receiver_training_is_blocked_by_the_epoch_minimum; non_blind_cards_are_reported; попередньо зареєстровано 2ec76864); clock_library::card::tests; clock_library::condition::tests; clock_library::series::tests; realdata::clk::tests; tests/clock_library_f9p_cards_oracle.rs (f9p_first_pipeline_reproduces_the_recorded_finding; f9p_corrected_pipeline_reproduces_the_recorded_finding; залежить від наявності даних)
Картки виміряних годинників 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 у передбаченій девіації Аллана ExternalDataset підтвердження частини зовні перевірене, але вся можливість складається з обчислених за моделлю частин, тож можливість лишається обчисленою за моделлю - виміряні записи, відкладені: фінальні комбіновані 30-секундні годинники IGS 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) tests/clock_library_periodic_cards_oracle.rs (periodic_cards_reproduce_the_recorded_finding; попередньо зареєстровано fb475550); clock_library::card::tests (a_periodic_card_carries_the_sinusoid_a_power_law_card_cannot)
Оцінювання стану бортового годинника 3-станний (фаза/частота/дрейф) калманівський годинник за Ван-Лоуном зі стабілізацією за Джозефом ReferenceImpl перевірено за окремою реалізацією в цій самій кодовій базі - незалежною від тестованого модуля, але не зовнішньо авторитетною - filterpy 1.4.5 KalmanFilter (R. Labbe, MIT), із F через scipy.linalg.expm і Q через блокову матрицю Van-Loan 1978 - незалежна еталонна реалізація, що відтворює повну траєкторію фільтра kshana. Узгодженість між реалізаціями: фізика годинника / калібрування за Алланом зовні не перевірені, тож лишається MODELLED. Зовнішнє порівняння 0,30, знахідка (лишається MODELLED): на фінальних 30-секундних годинниках IGS 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-станову модель не входять. Раунд 2 для 0,30, розширений фільтр (фліккер-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,90 clock_state clock_state::tests (аналітична Q за Van-Loan; NEES; додатність PSD); tests/clock_state_reference.rs (повна траєкторія передбачення та оновлення - стан x і коваріація P 3×3 за 1925 кроками / 4 наборами параметрів проти filterpy 1.4.5; найгірше |relΔ| 2.8e-14); tests/clock_state_igs_holdout_oracle.rs::three_state_filter_on_held_out_igs_clocks_finding (закріплює знахідку); tests/clock_state_ext_igs_fresh_oracle.rs::extended_filter_on_fresh_igs_clocks_finding; tests/clock_state_ext_igs_conditioned_oracle.rs::conditioned_extended_filter_finding (раунд D9 3)
Бюджетування похибки передавання часу Двосторонній TWSTFT (Саньяк), спільний вид GNSS, PPP; джитер лінії → дальність ExternalDataset підтвердження частини зовні перевірене, але вся можливість складається з обчислених за моделлю частин, тож можливість лишається обчисленою за моделлю - величину Саньяка перевірено за авторитетним ОПУБЛІКОВАНИМ ЗНАЧЕННЯМ - N. Ashby, 'Relativity in the GPS', Living Reviews in Relativity 6:1 (2003), Eq. 1,29: екваторіальний обліт на схід накопичує 207,4 нс (2ωA_E/c²); kshana відтворює 207,386 нс. Незалежно підтверджено RTKLIB 2.4.3 geodist() (Takasu, BSD-2-Clause), яка несе ту саму геометрію 2Aω/c². Складений бюджет транспондера BIPM TWSTFT / common-view / PPP не має зовнішнього оракула, тож можливість лишається обчисленою за моделлю timetransfer, timetransfer_adv timetransfer::tests (взаємне скасування; дві форми тотожності Саньяка); tests/time_transfer_error_budgeting_reference.rs (екваторіальний обліт, Саньяк = 207,386 нс проти опублікованого Ashby 207,4 нс з точністю <0,05 нс; а також геометрія Саньяка/geodist, перехресно перевірена за RTKLIB 2.4.3 geodist(), зібраною з вихідного коду C)
Аналіз модуляції навігаційного сигналу та стеження за кодом PSD BPSK-R/BOC, спектральне розділення κ, смуга Габора, джитер DLL, багатопроменевість ExternalDataset підтвердження частини зовні перевірене, але вся можливість складається з обчислених за моделлю частин, тож можливість лишається обчисленою за моделлю - взаємна й автокореляція Голда GPS C/A збігаються ТОЧНО (цілі ±65/−1/63) із незалежним формуванням кодів за IS-GPS-200; форма PSD BPSK-R(1)/BOC(1 1) проти незалежної періодограми scipy. Замкнені форми модуляції/SSC/DLL (Betz 2001 / Kaplan & Hegarty) лишаються аналітичними, тож рядок лишається MODELLED - але підтвердження частини про кореляцію кодів зовні збігається. Раунд 2 для 0,30, проти надрукованих значень Betz 2001 і Hein et al. 2006 (попередньо зареєстровано 9f4f2ce8, половини надрукованої одиниці), знахідка (лишається MODELLED): усі 45 спектральних клітинок Table 1, значення кореляції 1 ГГц, показники завад MBOC і 2 із 3 зсувів Fig. 17 збігаються; перші бічні пелюстки 24 МГц, зсув BOC(8 4) Fig. 17 і кожне найгірше зміщення багатопроменевості Figs. 18-21 (на 11-15 % нижче) не збігаються. Kshana і незалежне обчислення NumPy за попередньо зареєстрованим прочитанням збігаються між собою, тож розбіжність лежить у цьому прочитанні або в незазначеній деталі статті; причину не з'ясовано navsignal navsignal::tests (власний SSC BPSK = 2/3R_c; PSD одиничної площі; DLL); tests/nav_signal_modulation_code_tracking_reference.rs (взаємна/автокореляція Голда GPS C/A: точний цілочисельний збіг із незалежним формуванням кодів за IS-GPS-200; PSD BPSK-R(1)/sine-BOC(1 1) проти незалежної періодограми scipy); tests/nav_signal_betz_hein_published_oracle.rs (betz_text_correlation_values_over_1_ghz; hein_mboc_interference_improvements; finding_betz_side_lobes_and_multipath, закріплено)
Характеристики квантового інерціального датчика Холодноатомний інтерферометричний акселерометр із перших принципів (k_eff·T², QPN) ExternalDataset підтвердження частини зовні перевірене, але вся можливість складається з обчислених за моделлю частин, тож можливість лишається обчисленою за моделлю - опубліковані числові вектори первинних статей про CAI (передавальна функція Cheinet 2008; чутливість Peters/Freier): k_eff·T² збігається точно, АСД дробового шуму - одностороння нижня межа в межах ~2× від кожного опублікованого приладу (реальні пристрої несуть технічний шум вище квантової межі). Вилка, а не паритет. Раунд 2 для 0,30 (попередньо зареєстровано fcb9ac64), знахідка (лишається MODELLED): шум обертання лише від QPN проти виміряних точок Gauguet et al. 2009 Fig. 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 quantum_imu::tests (k_eff; T² Маха-Цендера; вилка межі Freier-2016); tests/quantum_inertial_sensor_reference.rs (передавальна функція |H(ω)|, k_eff·T² і АСД дробового шуму проти опублікованих числових векторів Cheinet 2008 / Peters / Freier); tests/quantum_inertial_measured_qpn.rs (gauguet_finding_qpn_floor_sits_below_the_measured_noise, закріплено; gradiometer_qpn_line_matches_janvier_model)
Неоднозначність смуг / динамічний діапазон квантового інерціального датчика Динамічний діапазон неоднозначності смуг Маха–Цендера: 2π-періодичне зчитування смуг задає максимальне однозначне питоме зусилля a_max=π/(k_eff·T²), а однозначний діапазон у клітинках роздільності a_max/σ_a=π/σ_Φ не залежить від оптичного масштабного коефіцієнта — виграш чутливості T² коштує однозначного діапазону в точній пропорції (час опитування обмінює роздільність на діапазон, а кількість клітинок лишається заданою фазовим шумом зчитування) InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - самоузгодженість моделі смуг інтерферометра: край напівсмуги, 2π-періодична структура накладання та скасування масштабного коефіцієнта у відношенні діапазону до роздільності - це замкнені алгебричні тотожності, перевірені за власними функціями фази та чутливості Маха-Цендера рушія - перевірки внутрішньої узгодженості, НЕ зовнішній набір даних, тож рядок лишається InternalConsistency. MODELLED ідеальна триімпульсна неоднозначність смуг; жодних меж на однозначний діапазон від аберацій хвильового фронту чи втрати контрасту inertial::quantum_imu quantum_imu::tests (a_max лежить на краю напівсмуги ±π з масштабуванням діапазону 1/T²; відновлення згорнутої фази точне всередині [−a_max,a_max] і накладається рівно на 2·a_max поза ним; однозначний динамічний діапазон a_max/σ_a=π/σ_Φ однаковий для двох дуже різних масштабних коефіцієнтів довжина хвилі/T; методи CaiAccelerometer збігаються з вільними функціями)
Стійкість квантового інерціального навігаційного рахунку Складений бюджет позиції зі зміщення, масштабного коефіцієнта, VRW та спаду стабільності протягом holdover ReferenceImpl перевірено за окремою реалізацією в цій самій кодовій базі - незалежною від тестованого модуля, але не зовнішньо авторитетною - незалежне чисельне інтегрування SDE методом Монте-Карло в numpy для двічі проінтегрованого шуму білого прискорення (перевіряє аналітичну дисперсію VRW справді незалежним алгоритмом) + опорне опубліковане значення Groves 2013 для членів зміщення/масштабного коефіцієнта; числа пристроїв CAI кількісно описують апаратну частину партнера і лишаються MODELLED inertial::quantum_imu (QuantumNavBudget) budget_tests (зміщення проти інтегратора AccelModel; VRW проти аналітичного інтеграла); tests/quantum_inertial_dead_reckoning_reference.rs (VRW проти незалежного подвійного інтегрування шуму білого прискорення методом Монте-Карло в numpy, найгірше відхилення 0,42% у межах ±3% за 6 часами вибігу; зміщення/масштабний коефіцієнт проти замкненого значення Groves 2013; круговий прохід holdover)
Стійкість до глушіння за відсутності GNSS Геометричний J/S, бюджет лінії протидії глушінню C/N₀, втрата захоплення для кожного супутника InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - рівняння бюджету лінії C/N₀ проти завад перехресно перевірено за незалежним виведенням у numpy (ділить ту саму замкнену форму → InternalConsistency), а також характеристика погіршення C/N₀ реального JammerTest-2024. Раунд 2 для 0,30, заблоковано (лишається MODELLED): виміряне падіння C/N0 JammerTest 2024 проти прогнозу бюджету лінії (попередньо зареєстровано 6a66994b, у межах 3 дБ) не запускалося, бо положення та спрямування антени F8.1 у Bleik і частка L1 у потужності багатодіапазонного 1.6.4 наростання не задокументовані в каталозі тестів чи офіційному журналі jamming jamming::tests (broadband_q_equals_the_spectral_separation_closed_form і cw_q_equals_the_spectral_separation_closed_form: таблиця Q, CW і вузькосмуговий 1, широкосмуговий і ковзний 2, закріплені за замкненими формами navsignal; a_cw_jammer_is_more_damaging_than_broadband_noise_at_equal_js); tests/gnss_denied_jamming_resilience_reference.rs (FSPL/J-S/ефективне C-N₀ проти незалежного виведення бюджету лінії Kaplan & Hegarty §9,4 у numpy; реальне C/N₀ JammerTest монотонно падає крізь поріг 25 дБ-Гц); tests/jamming_jammertest_cn0_oracle.rs (попередньо зареєстровано, заблоковано, не запускалося)
Виявлення спуфінгу Злитий для кожної епохи показник якості безпеки з χ² за допомогою годинника, RAIM, AGC, SQM ExternalDataset підтвердження частини зовні перевірене, але вся можливість складається з обчислених за моделлю частин, тож можливість лишається обчисленою за моделлю - параметри сценарію TEXBAT (Humphreys 2012) - характеристика, а не закріплені вектори. Зовнішнє порівняння 0,30, знахідка (лишається MODELLED): на JammerTest 2024 (Bleik; дані GPL-3.0) монітори рівня спостережуваних (хі-квадрат із підтримкою годинника, RAIM, збій розв'язку) не підняли тривоги протягом 10 с жодного з 8 оцінюваних опублікованих початків спуфінгу (де вікно перед початком було чистим, перша тривога настала через 10,2-39 с після початку опублікованого слоту), а три вікна перед початком містили хибні тривоги монітора годинника (81, 64 і 173 епох). Першим спостережуваним ефектом була втрата двочастотного стеження GPS, а не неузгодженість RAIM. Опубліковані початки - це початки слотів розкладу з роздільністю в хвилину; те, що вони передують РЧ-захопленню, є тлумаченням, а не вимірюванням. Раунд 2 для 0,30, проти офіційного журналу 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 tests/spoof_texbat_validation.rs (характеристика параметрів TEXBAT); tests/spoof_detection_jammertest_oracle.rs::monitors_against_the_published_onsets_reproduce_the_recorded_disagreement (закріплює знахідку); tests/spoof_detection_jammertest_log_oracle.rs::engine_monitors_against_the_logged_onsets_reproduce_the_recorded_disagreement; tests/clock_library_tcxo_card_jammertest_oracle.rs (round_3_is_blocked_by_the_training_minimum; round_4_reproduces_the_recorded_finding; round_4b_reproduces_the_recorded_finding; D9)
Рівень захисту синхронізації часу за спуфінгу Межа в замкненому вигляді для найгіршої невиявленої похибки часу = поріг монітора + σ вибігу генератора за затримки виявлення CUSUM, подана як смуга рівня червоного шуму InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - складається з перевірених за зовнішнім еталоном примітивів (allan/holdover Van-Loan, нижня межа безпеки); відкалібровано на сценарії JammerTest 2024 2.1.1 (~1,01 мс реального відтягування часу, що обслуговується, проти ≤51 нс заявлених). Міст над перевіреними за зовнішнім еталоном частинами - сам не є зовнішньою перевіркою. Зовнішнє порівняння 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 проти прямої, підігнаної до її ж оцінок перед початком, тож навіть збіг не був би цілком незалежним. Раунд 2 для 0,30, проти початків з офіційного журналу 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 tpl::tests (замкнені оракули + CUSUM); examples/tpl_jammertest.rs (калібрування за реальним спуфінгом JammerTest 2024); tests/tpl_jammertest_coverage_oracle.rs::tpl_against_measured_time_error_reproduces_the_recorded_disagreement (закріплює знахідку); tests/tpl_jammertest_log_oracle.rs::drift_state_tpl_against_the_logged_onsets_reproduces_the_recorded_disagreement
Альтернативний / додатковий PNT Зіставлення гравітаційних карт, прив'язка до рельєфу (TERCOM/SITAN), магнітна аномалія InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - коефіцієнти IGRF-14; CRLB узгодженого фільтра з перших принципів. Поле еталонного тесту гравітації з реальним полем зовні перевірене (рядок 'Gravity-anomaly synthesis from a spherical-harmonic model'), але його навігаційний результат не має зовнішнього оракула altpnt, mapmatch, gravimeter, igrf tests/alternative_complementary_pnt_reference.rs (CRLB зіставлення з картою; поле IGRF-14); mapmatch::tests; gravimeter::tests; igrf::tests; tests/gravity_map_real_field.rs (60-хвилинний еталонний тест без GPS на реальному полі EGM2008 ступеня 70, попередньо зареєстрований у xval/icgem-egm2008/: зіставлено 3106 м, тож поріг < 500 м NOT MET і закріплено як не досягнутий, а десятикратне зменшення дрейфу 70,6 км MET; а також Монте-Карло за похибкою карти із зерном); altpnt::terrain::tests::emag2_format_grid_reproduces_the_synthetic_magnetic_channel і tests/emag2_real_grid.rs (читач EMAG2v3 на реальному фрагменті, залежний від наявності даних; жодного навігаційного результату на ньому не заявлено); tests/terrain_slam_rbpf.rs (спільна оцінка карти, RBPF у стилі FastSLAM, проти SITAN з відомою картою при 15 м корельованої похибки карти за 20 зернами, попередньо зареєстровано в xval/terrain-slam-rbpf/: середній виграш 1,5% і краще в 10 із 20, тож пороги 10% і 12 із 20 NOT MET і закріплені як не досягнуті; без шкоди на ідеальній карті, MET)
Відтворюваність і гарантування якості програмного забезпечення Детерміновані, хешовані за сценарієм, SBOM + міжплатформні еталонні (golden) бар'єри ExternalDataset підтвердження частини зовні перевірене, але вся можливість складається з обчислених за моделлю частин, тож можливість лишається обчисленою за моделлю - відповідність SBOM офіційній схемі CycloneDX 1,5 JSON Schema (+ дійсні ідентифікатори SPDX) - зовнішній опублікований стандарт, нуль помилок перевірки на всьому графі залежностей; частина про детермінованість FoM / байтову відтворюваність лишається закріпленою перевіркою самоузгодженості, тож рядок лишається MODELLED report, scenario; CI (golden/determinism/SBOM) tests/golden.rs, tests/determinism.rs, tests/cross_platform_golden.rs; tests/reproducibility_software_assurance_reference.rs (згенерований SBOM проходить перевірку з нулем помилок за офіційною схемою CycloneDX 1,5 JSON Schema на всьому постачуваному графі з 66 компонентів: типові + python + wasm можливості, без залежностей розробки)
Оцінювання виявлення РЧ-завад методами машинного навчання (13494) Розмічений синтетичний корпус порушень + незалежний від детектора каркас ROC/AUC/матриці помилок/Pfa-Pmd; захист від витоку, стратифікований розподіл, звіт про оптимізм за зсуву розподілу (у режимі й поза режимом). Запускається з CLI/прив'язок як вид сценарію impairment-eval (scenarios/impairment-eval.toml) InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - замкнені межі AUC (Манна-Вітні) + оракул-ідеальний детектор; корпус СИНТЕТИЧНИЙ (прив'язаний до параметрів, не польові дані/IQ) impairment_eval impairment_eval::tests (AUC ідеальний=1/ідентичний=0.5/нічия=0,125, ROC монотонна, зведений>0,8, розділення шарів для кожного класу, захист від витоку, відтворюваний корпус, прапорці зсуву розподілу вказують на оптимізм); dominance_demonstrators (досяжний + відтворюваний + MODELLED-not-VALIDATED + прогалина оптимізму самоузгоджена)
Дослідження прогалини оптимізму виявлення РЧ-завад методами машинного навчання та предиктор прогалини лише за ідентифікатором Контрольоване синтетичне дослідження розриву оптимізму AUC між розподілом навчання та поза ним для опублікованих і навчених (логістична регресія / MLP з одним прихованим шаром) детекторів: тренди законів масштабування для кожного класу (Спірмен ρ + нахил за 1−тяжкістю) і гребеневий предиктор лише за ID, що оцінює розрив тільки за діагностикою всередині розподілу, оцінений за схемами leave-one-detector-out і leave-one-class-out. Відтворюється через cargo run --release --example optimism_study InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - статистики, виведені вручну, проти замкнених форм (біномальний AUC Φ(d'/√2), дисперсія DeLong, ранговий Спірмен із зв'язками, точне відновлення OLS) + перехресна перевірка з виключенням одного проти базового рівня «передбачити середнє». Корпус СИНТЕТИЧНИЙ (прив'язаний до параметрів, ніколи не польові дані/IQ), а прогалина оптимізму - це синтетичний→синтетичний зсув суворості, а НЕ результат переходу від симуляції до поля impairment_study, impairment_ml, eval_stats impairment_study::tests (AUC оракула для кожного класу≈1, вивчена прогалина оптимізму>0, форма сітки + довірчий інтервал бутстрепу охоплює середнє + додатний тренд масштабування, ознаки ідентифікатора скінченні, предиктор прогалини перемагає «передбачити середнє» за ОБОХ перехресних перевірок з виключенням одного детектора та одного класу + детермінований); impairment_ml::tests (logreg розділяє + детермінований + втрата↓, MLP розв'язує XOR, чого лінійна модель не може + із зерном); eval_stats::tests (бутстреп/DeLong/Спірмен/гребінь проти замкнених форм)
Квантовий проти класичного компроміс PNT та стійкість за відсутності GNSS (13503) Уведення виміряного ADEV (NNLS), таблиця компромісів (holdover синхронізації/інерціальний + вигода), обгортка стійкості за часом; застереження про мінімум передано з артефактом. Запускається з CLI/прив'язок як вид сценарію quantum-trade (scenarios/quantum-trade.toml) ExternalDataset підтвердження частини зовні перевірене, але вся можливість складається з обчислених за моделлю частин, тож можливість лишається обчисленою за моделлю - ядро підгонки виміряної ADEV→PSD (NNLS) збігається зі scipy.optimize.nnls (tests/scipy_reference.rs / tests/quantum_vs_classical_pnt_trade_reference.rs) - незалежне зовнішнє ядро; але ЧИСЛА компромісу кількісно описують (ніколи не перевіряють) годинник/CAI партнера, тож сам компроміс лишається MODELLED, без ореолу перевіреності quantum_trade quantum_trade::tests (відновлення за круговим проходом ADEV, невід'ємність NNLS, застереження про межу присутнє/відсутнє, виграш>1, монотонна огинаюча + межа alt-PNT); dominance_demonstrators (виміряна ADEV керується даними, а не припущеною межею, припущений клас позначає межу + застереження, неправильна крива відхиляється, MODELLED-not-VALIDATED)
Середовище космічної погоди та термосферна густина, зумовлена активністю Сонячні/геомагнітні індекси (визначальна таблиця Kp↔ap), екзосферна температура Jacchia-1971 і термосферна густина Jacchia 1971 (SAO Special Report 332: статичні дифузійні профілі, що відтворюють її Таблицю 7, із добовими, геомагнітними, піврічними, сезонно-широтними та гелієвими варіаціями) проти статичної атмосфери USSA76. Запускається з CLI/прив'язок як вид сценарію space-weather (scenarios/space-weather.toml) ExternalDataset підтвердження частини зовні перевірене, але вся можливість складається з обчислених за моделлю частин, тож можливість лишається обчисленою за моделлю - означальна таблиця 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 додано). Раунд 2 для 0,30, виміряні густини за акселерометрами 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 space_weather::tests (Kp↔ap точно в точках сітки + круговий прохід + монотонність, середнє добового Ap, екзосферна T проти опублікованих опорних значень сонячного мінімуму/середнього/максимуму + приросту під час бурі, густина одиниця в опорній точці, розмах сонячного циклу в спостережуваній смузі 5–10×, сценарій відтворюваний + MODELLED-not-VALIDATED + відхилення поза діапазоном); dominance_demonstrators (досяжний + відтворюваний + фізична T + MODELLED-not-VALIDATED); tests/space_weather_density_accelerometer_oracle.rs::jacchia71_finding_is_pinned
Вікно запуску та геометрія виведення (аналіз місії) Азимут(и) запуску за двох тіл (sin Az = cos i / cos lat), мінімальне досяжне нахилення, колова швидкість, східний бонус обертання Землі, Δv зміни площини за доглегом і добові можливості, а за заданих епохи та рядків IERS finals2000A — швидкість пункту відносно істинного полюса (launch::site_rotation_speed_at). Запускається з CLI/прив'язок як вид сценарію launch-window (scenarios/launch-window.toml) InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - замкнена сферично-тригонометрична геометрія запуску проти опублікованих опорних розв'язаних прикладів (Vallado, Fundamentals of Astrodynamics 4th ed., Algorithm 37 азимут запуску + Ch.6 зміна площини; tests/launch_window_ascent_geometry_reference.rs). Вони повторно використовують ту саму замкнену форму, яку реалізує kshana (паритет з опублікованим значенням / перевірка перенесення, InternalConsistency); MODELLED двотілова задача, без швидкісного трикутника обертової Землі / підйому / моделі втрат на опір. Зовнішнє порівняння 0,30 з Orekit 12,2 (Apache-2.0), знахідка (лишається MODELLED): геометрія збігається з точністю до заокруглення (нахил, прочитаний з азимута вигоряння за 158 випадками, найгірше 2.6e-15 рад; мінімальний нахил, колова швидкість і delta-v dogleg до 3e-16), але швидкість місця запуску за обертанням Землі не досягає попередньо зареєстрованого відносного порогу 1e-6 на широті 62,9 град (1.12e-6). Розбіжність зростає як tan(lat), що узгоджується зі зсувом полюса руху полюса близько 5.8e-7 рад у системі Землі Orekit, який сферичне ω·R·cos(lat) не враховує. Твердження не було звужене до прогону, тож рядок не може бути підвищений за цим порівнянням. Раунд 2 для 0,30 (попередньо зареєстровано 71bebf63): з епохою та рядками IERS швидкість місця запуску за справжнім полюсом (поле сценарію site_rotation_speed_true_pole_m_s) збігається з Orekit у межах 1e-6 на 24 місцях за чотирма довготами (найгірше 4.9e-8), але номінальна швидкість без епохи, яку сценарій типово видає як бонус обертання Землі, усе ще не досягає на 1.12e-6, тож рядок лишається MODELLED до рішення щодо типового виводу launch launch::tests (запуск суворо на схід досягає i=широта, KSC→ISS = підручникові 45°, полярний = N/S, i<широти недосяжний, 465 м/с екваторіальний бонус, зміна площини 10° ≈ 1,34 км/с + 180° = 2v, кількість щоденних можливостей, сценарій відтворюваний/MODELLED + шлях dogleg); dominance_demonstrators (досяжний + відтворюваний + KSC→ISS 45° + MODELLED-not-VALIDATED); tests/launch_geometry_orekit_oracle.rs::burnout_azimuth_reproduces_the_target_inclination_in_orekit; tests/launch_geometry_orekit_oracle.rs::earth_rotation_speed_gap_is_recorded_as_a_finding; tests/launch_geometry_orekit_oracle.rs::true_pole_site_speed_matches_orekit_at_a_fresh_epoch_and_longitudes
Балістичний коридор входу в атмосферу (Аллен–Еггерс) Пікове сповільнення (незалежне від балістичного коефіцієнта), швидкість і висота на піку перевантаження та швидкість піку нагрівання для балістичного входу в експоненціальну атмосферу. Запускається з CLI/прив'язок як вид сценарію reentry (scenarios/reentry.toml) InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - замкнений аналітичний вхід Аллена-Еггерса, додатково перехресно перевірений чисельним інтегруванням 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 and Qualls, NASA NTRS 20080008567) пікове сповільнення за Алленом-Еггерсом для надрукованого інерційного стану входу (12,9 км/с, -8.2 град, H 7200 м) становить 61,8 g проти 32,89 g за найкращою оціненою траєкторією, +88 % проти допуску 15 %: розв'язок з постійним кутом траєкторії та без гравітації приблизно подвоює пік пологого входу зі швидкістю вище параболічної. Stardust не мав акселерометра, тож реконструкція є оцінкою траєкторії. Раунд 2 для 0,30, заблоковано (лишається MODELLED): інтегрований плоский точково-масовий розв'язок (reentry::simulate_planar_entry, US76, гравітація за оберненим квадратом, кривизна) збігається з найкращими оціненими траєкторіями Stardust і Genesis у межах 15 % (+11,3 %, +5,6 %), але ці максимуми є результатами агентських симуляцій, а не вимірюваннями, тож це лише перехресна перевірка. Порівняння з акселерометром (попередньо зареєстровано a94a283d) заблоковано через відсутність читабельної копії аналізу Hayabusa2 REMM (doi 10.57350/jesa.16) reentry reentry::tests (пік g не залежить від балістичного коефіцієнта + фізична смуга g, зростає з крутішим γ / швидшим входом, швидкість піку g = V_e·e^(−1/2) і пікового нагрівання = V_e·e^(−1/6) швидша, висота піку g фізична + глибша для більшого B, сценарій відтворюваний/MODELLED + вироджена геометрія відхиляється); dominance_demonstrators (досяжний + відтворюваний + частка V_e·e^(−1/2) + MODELLED-not-VALIDATED); tests/reentry_reconstruction_oracle.rs::reentry_overprediction_is_recorded_as_a_finding; tests/reentry_point_mass_reconstruction_oracle.rs::point_mass_peak_deceleration_matches_reconstructed_entries (лише перехресна перевірка); tests/reentry_point_mass_accelerometer_oracle.rs (заблоковано, не запускалося)
Адаптивне кодування та модуляція DVB-S2 уздовж проходження низхідної лінії LEO Es/N0 низхідної лінії уздовж кожного проходження одного супутника над однією станцією (EIRP, втрати у вільному просторі, атмосферні втрати за законом косеканса, інші втрати, G/T, стала Больцмана, символьна швидкість), найефективніший MODCOD DVB-S2, що перевищує свій квазібезпомилковий поріг за ETSI EN 302 307-1 V1.4.1, Таблиця 13, плюс запас реалізації на кожному кроці, обсяг даних ACM проходження та базовий рівень зі сталим кодуванням, що замикається на масці та за найбільшої дальності. Запускається як вид сценарію acm-link. Ілюстративні вхідні дані; MODELLED. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - внутрішня узгодженість: спектральна ефективність, обчислена в замкненій формі з K_bch Table 5a і довжин кадрів, збігається з ефективностями, надрукованими в Table 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 contact_schedule::tests::modcod_efficiency_closed_form_matches_the_printed_table; contact_schedule::tests::modcod_selection_is_monotone_and_honours_the_margin; contact_schedule::tests::link_budget_pieces_have_closed_forms; contact_schedule::tests::acm_link_defaults_run_and_acm_beats_ccm
Планування наземних контактів для кількох супутників і станцій з розв'язанням конфліктів Кандидатні контакти з кожного проходження супутник–станція з їхнім обсягом даних ACM; конфлікти, де одна антена обслуговувала б два супутники в межах свого часу переналаштування або один супутник передавав би на дві станції одночасно; зважена за пріоритетом ціль доставки, обмежена накопиченим обсягом кожного супутника; ліниве жадібне планування за граничним значенням, базовий рівень «хто перший» та точний метод гілок і меж на до 26 кандидатах, із зазначенням розриву оптимальності жадібного методу. Запускається як вид сценарію contact-schedule. Ілюстративні вхідні дані; MODELLED. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - внутрішня узгодженість: точний метод гілок і меж збігається з повним перебором на малих випадкових наборах, кожен план перевірено як допустимий за правилами конфліктів, а жадібний алгоритм ніколи не перевершує точного оптимуму. ЧОГО НЕМАЄ: жоден зовнішній планувальник чи операційний план не порівнювалися; контакти беруться цілком (без розділення), відставання фіксоване на початку вікна, час повороту понад фіксований оборот і бортове сховище не змодельовані. contact_schedule (conflicts, objective, delivered, schedule_chronological, schedule_greedy, schedule_optimal, ContactScheduleScenario) contact_schedule::tests::conflicts_cover_turnaround_and_one_station_per_satellite; contact_schedule::tests::greedy_is_feasible_and_the_exact_solver_beats_or_ties_it; contact_schedule::tests::exact_solver_matches_brute_force_and_plans_are_feasible; contact_schedule::tests::exact_solver_declines_above_the_limit; contact_schedule::tests::contact_schedule_defaults_run_reproducibly; contact_schedule::tests::scenarios_reject_bad_inputs
Ощадливе подання вартості на покриття / ROI Вартість на відсоток покриття + ROI «покриття на євро» над рушієм розрахунку розміру угруповання; вартість супутника — це вилка низька/номінальна/висока, надана викликачем (без вигаданих цін) InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - замкнена арифметика вартості проти значень, виведених вручну; економічне ПОДАННЯ обчисленого за моделлю показника покриття, а не пропозиція чи перевірена за зовнішнім еталоном модель вартості frugal (over walker) frugal::tests (виведена вручну вартість на покриття 48/96=0,5, відношення ROI 2,667, упорядкування вилки + захист від нульового покриття)
Вплив пропущеного виявлення на цілісність (HPL/VPL з урахуванням контексту проти межі тривоги) Відображає невиявлене зміщення спуфінгу/глушіння на ефективну похибку → область Стенфорда (доступно/недоступно/MI/HMI) проти HAL/VAL для конкретного контексту (відкрите небо проти міста) ReferenceImpl перевірено за окремою реалізацією в цій самій кодовій базі - незалежною від тестованого модуля, але не зовнішньо авторитетною - складається із зовнішньо перевіреної класифікації RAIM за Стенфордом (raim::classify_stanford); саме відображення пропущеного виявлення → AL обчислене за моделлю, а не сертифікований розподіл цілісності integrity_impact (over raim) integrity_impact::tests (той самий пропуск перемикає Available→MI→HMI із посиленням контексту; консервативний PL→Unavailable; HMI для кожної осі; захист входів)
Цитований лист параметрів моделі похибок CAI (13503) Вилка (найкраще/номінально/консервативно) продуктивності холодноатомного інтерферометра — нестабільність зміщення, випадкове блукання швидкості/кута, стабільність масштабного коефіцієнта, частота вибірки, обмежена опитуванням, динамічний діапазон неоднозначності смуг — кожна з простежуваним цитуванням; живить QuantumNavBudget без моделювання апаратури InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - внутрішня узгодженість: цитовану вилку VRW перехресно перевірено за фізикою CaiAccelerometer::accel_asd + сирий динамічний діапазон, обчислений із межі неоднозначності смуг; числа є вилками з огляду літератури, MODELLED (needs_source_confirmation), жоден пристрій не перевірено за зовнішнім еталоном, без ореолу перевіреності inertial::cai_params (over inertial::quantum_imu) inertial::cai_params::tests (фізичний VRW потрапляє всередину цитованої вилки VRW на всіх 3 рівнях; сирий діапазон неоднозначності смуг обчислено з k_eff·T²; консервативний бюджет дрейфує більше за найкращий; кожну вилку підкріплено джерелом і позначено прапорцем підтвердження; захист упорядкування вилки)
Еталонний тест відповідності цілісності часу — класифікатор епох за діаграмою цілісності Стенфорда Класифікація епох TIB за діаграмою цілісності Стенфорда (номінально / недоступно / MI / HMI) InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - незалежна повторна реалізація в numpy чотирирегіонного правила (scripts/gen_tib_scorer_reference.py) на ідентичному наборі вибірок; метод цитовано зі стенфордсько-ESA діаграми цілісності (Tossaint et al., ION GNSS 2007) і RTCA DO-229 WAAS MOPS. НЕ зовнішній оракул точності ExternalDataset - еталонний тест застрахований від нечесності. src/benchmark/stanford.rs src/benchmark/stanford.rs::tests (чотири регіони + включні межі + |похибка| + недоступність PL>AL); tests/tib_scorer_reference.rs (лічильники класифікації проти незалежного numpy на фіксованому синтетичному наборі)
Еталонний тест відповідності цілісності часу — оцінювач покриття цілісності Оцінювання покриття цілісності TIB (частоти HMI/MI/доступності + вердикт покриття верхньою межею (overbound)) InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - незалежний повторний підрахунок регіонів у numpy в tests/fixtures/tib/reference.json; лише перехресна перевірка механізму оцінювання, без заяви про точність. src/benchmark/coverage.rs src/benchmark/coverage.rs::tests (чисте/занижені межі/усе недоступне/порожнє); tests/tib_scorer_reference.rs (лічильники + частки + coverage_ok проти numpy з точністю 1e-12)
Еталонний тест відповідності цілісності часу — каталог збоїв (параметричні генератори) Меню збоїв TIB (розходження доменів, удар годинника, вибіг holdover, статична/покрокова/симетрична/асиметрична затримка, повтор у межах свіжості, вибірковий шлях, кворум k із N) InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - репрезентативні параметричні генератори відмов (обчислені за моделлю); набір невиявних відмов (симетрична затримка, повтор у межах свіжості) цитовано з Mizrahi RFC 7384 і Narula & Humphreys (IEEE JSTSP 2018). Зовнішнього оракула немає - каталог відмов не робить виміряного твердження. src/benchmark/faults.rs src/benchmark/faults.rs::tests (профілі зсувів, монотонний вибіг, позначення набору невиявних, узгодженість max_offset, рівно два невиявні класи)
Еталонний тест відповідності цілісності часу — вердикт поглинання невиявного Вердикт TIB щодо поглинання невиявного (симетричне/повтор мають поглинатися PL, ніколи не повідомлятися як виявлені) InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - перевірка властивості, що перелік Verdict структурно не може повідомити невиявну відмову як виявлену (Mizrahi RFC 7384); поглинуто ⟺ PL ≥ зсув. Оракула точності немає. src/benchmark/scorecard.rs src/benchmark/scorecard.rs::tests (еталонний PL поглинає; зламаний PL непоглинений, ніколи не виявлений; вердикт покриття для виявних; властивість чесності: жоден вердикт покриття/виявлення недосяжний для невиявного сценарію)
Самоопис гібридного оптичного/RF звіту Звіт hybrid-optical-rf зазначає конфігурацію лінії, з якою він справді виконувався (довжина хвилі несівної, передавальна та приймальна апертура, дальність, ширина імпульсу, час інтегрування, ефективності та втрати, розв'язані типові значення) і несе блок одиниць із одиницею та класом походження кожної величини, яку стаття ймовірно цитуватиме, зокрема сліди коваріації передавання в квадратних метрах InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - зовнішнього оракула немає, і його не може бути: це самоопис, а не вимірювання. Його записано, бо його відсутність була дефектом -- P5 довелося брати довжину хвилі несівної та передавальну апертуру з типових значень у джерелі й виводити з перевірки внутрішньої узгодженості, що голе variance вимірюється в квадратних метрах. Виведення було правильним, і саме тому це мало значення: ніщо не виявило б його помилковість hybrid_integrity hybrid_integrity::tests (розв'язану конфігурацію повертають для типових значень і для перевизначень, без кругового проходу довжини хвилі через метри; кожен запис одиниць містить і одиницю, і клас походження; кожне поле, назване блоком одиниць, справді видається, тож він не може документувати привида)
Доступність гібридної оптичної/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, замкнені дальності замикання та стеження і використання дальності) — це обернення за дальністю того самого бюджету. Звіт повністю зазначає, на блоці та в записі одиниць, на який потрапляє читач, що цей показник ОБМЕЖЕНИЙ ЗАПАСОМ/ГЕОМЕТРІЄЮ і ДЕТЕРМІНОВАНИЙ, тоді як оптична доступність ОБМЕЖЕНА ПОГОДОЮ/КЛІМАТОЛОГІЄЮ і ймовірнісна, тож їх ніколи не можна наводити як порівнянну пару відсотків InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - зовнішнього оракула немає, а ExternalDataset відхилено. Два входи - запас Eb/N0 і перетин порога C/N0, обидва функції EIRP, показника якості та зосередженого розподілу втрат, що є MODELLED; немає виміряного запису доступності гібридної оптично-РЧ послуги Земля-Місяць, за яким можна було б перевірити складений показник. Наявні перевірки внутрішні й так і названі: композицію перераховано з власних опублікованих запасів звіту, а не з нутрощів емітера, а дальність замикання перевірено повторним прогоном рівняння лінії В ній і вимогою, щоб запас зник -- круговий прохід інверсії, а не незалежна реалізація. Чесну межу показника записано в самому звіті: це детермінований індикатор 0/1, а не ймовірність, бо ніщо в цьому рушії не вимірює розподіл відмов РЧ-лінії в цьому діапазоні та геометрії. Цей відсутній вхід названо в rf_availability.factors_not_included, а не вигадано, і саме його надання потрібне для ймовірнісної РЧ-доступності hybrid_integrity, linkbudget, jamming hybrid_integrity::tests (доступність дорівнює добутку двох індикаторів, перерахованих з власних запасів звіту, а ці запаси самі зібрано з власних EIRP, втрат у вільному просторі, зосередженої втрати, показника якості, члена Больцмана, швидкості даних і вимоги звіту з точністю 1e-9 дБ; значення виміряно як 0 або 1, тоді як оптичну доступність у тому самому прогоні виміряно строго між ними; кожен рядок чинника несе клас походження із закритого словника field_schema; повідомлену дальність замикання, повторно пропущену через бюджет лінії, повертає запас від 0 до 1e-9 дБ і виміряно, що вона не залежить від дальності, на якій стояв прогін, на чотирьох декадах, тоді як використання дальності зсувається рівно на відношення дальностей; лінія -40 дБВт повідомляє доступність 0, LOST, і використання вище 1, а не частку; застаріле зауваження 'цей рушій не обчислює РЧ-аналога доступності' стверджено зниклим, а заміну стверджено як таку, що називає нове поле; неправильний РЧ-вхід відхиляється, а не обмежується)
Порівняння оптичного та 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 сценарію, і відмова пояснює чому: цей вхід не несе жодної конфігурації. Випущений двосторонній оптичний заголовок і точний множник, що з'єднує його з односторонньою порівняльною ногою, подано поряд із відношенням, тож звіт не можна прочитати як такий, що несе дві розбіжні оптичні сигми InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - зовнішнього оракула для ВІДНОШЕННЯ немає, а ExternalDataset відхилено свідомо. Основний РЧ-ланцюг його має -- 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 має власний рядок замкненої форми. Заявити будь-яке з цих опорних значень для цього рядка означало б позичену валідацію, запобігти якій і призначені інваріанти матриці: величина тут є ВІДНОШЕННЯМ за конфігурації з EIRP, показником якості, потужністю передавача та апертурою, що є MODELLED, і не існує виміряного порівняння оптичної та РЧ-далекометрії в спільній робочій точці, за яким можна було б її перевірити. Внутрішньо перевіряється те, у чому відношення справді може помилитися: що обидві гілки лежать в одній робочій точці. Це виміряно масштабуванням спільного часу накопичення та вимогою, щоб обидві гілки рухалися за тим самим законом квадратного кореня, а відношення лишалося на місці, і забезпечено прямою відмовою від відношення, коли часи усереднення розходяться. Обидві гілки - це межі теплового/дробового шуму, і обидві виключають затримку в середовищі, похибку годинника та неоднозначність, тож виключення однакове з кожного боку; звіт каже про це, а не залишає це на виведення hybrid_integrity, optical_linkbudget, linkbudget, navsignal hybrid_integrity::tests (відношення дорівнює двом виданим гілкам, поділеним, з відносною точністю 1e-15, а його обернена та децибельна форми збігаються; дальність і часова сигма кожної гілки пов'язані рівно через c; виданий спільний конфіг стверджено рівним власним дальності та часу інтегрування сценарію, а дальність РЧ-гілки стверджено рівною дальності оптичної гілки; C/N0 РЧ-гілки побітово збігається з тим, що в блоці доступності, з одного бюджету лінії, а не з повторного виведення; властивість ПОРІВНЯННЯ ОДНОГО З ОДНИМ MEASURED, а не стверджено -- учетверіння спільного часу накопичення зменшує оптичну гілку вдвічі до 1e-12 і РЧ-гілку до 1e-7 і лишає відношення незрушеним з відносною точністю 3.19e-9, чого гілка, що потай усереднює щось інше, не змогла б; перевизначення rf_dll_bandwidth_hz, що порушує спільний час усереднення, робить відношення нульовим з причиною, що називає обидва часи, тоді як обидві гілки все ж видаються; односторонній прогін робить порівняльну гілку побітово рівною випущеному головному показнику зі штрафним чинником рівно 1, а двосторонній прогін відтворює штраф 0.5/sqrt(геометрична втрата зворотного шляху), перерахований з власного geometric_loss_db звіту з точністю 1e-12)
Самоопис звіту про бюджет лінії Звіт про бюджет лінії зазначає кожну абсолютну константу, з якої обчислено його власний запас -- частоту несівної, яку використали втрати у вільному просторі, EIRP, показник якості, зосереджені втрати та член Больцмана -- плюс потрібне G/T, за якого запас нульовий, сталу лінії (EIRP - втрати - потрібне Eb/N0), що є єдиною комбінацією, яку опублікована таблиця швидкості/підсилення може будь-коли зафіксувати, і, коли викликач задає шумову температуру системи, підсилення приймальної антени, яке цей показник якості передбачає InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - зовнішнього оракула немає: це самоопис рівняння, уже перевіреного за опублікованою таблицею контролю проєкту (див. рядок односторонньої лінії зв'язку). Його записано, бо його відсутність була виміряним дефектом -- відтворення випущеного d1_rate_gain_beamwidth.csv вимагало зворотного розв'язання однієї ефективної сталої з точністю 0,0034 дБ за всіма тридцятьма рядками, а рушій тепер і називає цю комбінацію, і доводить тестом, що жодна випущена таблиця ніколи не могла б розділити її три складники linkbudget linkbudget::tests (у трьох діапазонах, на чотирьох декадах дальності та за обома вердиктами замикання запас і втрата у вільному просторі під ним перераховуються лише зі звіту з точністю краще ніж 1e-9 дБ; потрібне G/T, зібране з членів рівняння, збігається з тією самою величиною, отриманою як G/T мінус запас, а повторний прогін на ньому обнуляє запас; три бюджети з дуже різними EIRP, втратою та порогом, але з рівною сталою лінії дають однакову вимогу, тоді як 1 дБ на сталій зсуває її рівно на 1 дБ; розподіл підсилення відсутній, якщо не задано шумову температуру, а недодатну відхилено; кожне поле, назване блоком одиниць, справді видається)
Таблиця місячного часового перетину за класами годинників Один прогін бюджету місячного часу видає рядок перетину «годинник проти системи відліку» для кожного класу годинників проти єдиного спільного члена системи відліку, тож годинник — єдина змінна порівняння; кожен рядок несе перетин, досягнутий двома шляхами -- знайдений бісекцією із загальної степеневої кривої похибки часу та виведений алгебраїчно з домінантного типу шуму рядка -- з відносною різницею між ними InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - два різні обчислення однієї величини в одній кодовій базі, а не одне, викладене двічі: бісекція кривої степеневого закону IEEE-1139 нічого не знає про тип шуму, тоді як замкнена форма інвертує домінантний тип алгебрично, тож неправильно класифікований тип шуму чи погана вилка проявляються як не мала відносна різниця. Чотири значення також відтворюють опубліковану таблицю статті з точністю до половини її останньої надрукованої цифри -- але саму ту таблицю було реконструйовано з тієї самої замкненої форми, тож це перевірка відтворюваності, а не зовнішній оракул, а член системи відліку, проти якого це виміряно, є розподілом, обчисленим за моделлю lunar_time_budget lunar_time_budget::tests і lunar_time_budget_scenario::tests (усі чотири класи присутні в одному прогоні та в порядку запитаної підмножини; кожен рядок збігається зі своєю замкненою формою з відносною точністю краще ніж 1e-12; масштабування похибки системи відліку на k масштабує перетин на k для годинника з фліккер-FM і на k^2 для годинника з білим FM, перевірено при k=2 і k=3, що розділяє два класи шуму; кожен рядок відтворює перетин одного годинника, який бюджет уже повідомляв; кожен рядок відновлює один спільний член системи відліку; невідому назву годинника відхилено)
Площа захоплення залежно від висоти та ширини променя Двоосьовий перебір площі поверхневого захоплення, зваженої за діаграмою та обмеженої висотою, за висотою передавача та діаметром антени, що видається одним рядком на робочу точку з шириною променя за половинної потужності, яку передбачає кожен діаметр, а захоплення лімба подано як ПОРІГ -- для кожного рядка J/S лімба, його запас і потужність передавача, яка його замкнула б; для кожної сітки знайдені перетини або явне твердження, що лімб ніде на сітці не досягається, із дефіцитом InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - включення множин: відношення завади до сигналу входить як рівномірний децибельний зсув, тож захоплена множина при вищій потужності передавача містить множину при нижчій, а частка може лише зростати -- властивість, якої діаграма Ейрі НЕ дає за шириною променя чи висотою, де захоплена область розпадається на кільця, а частка справді немонотонна. Жодна опублікована таблиця не дає частки захопленого диска місячного орбітального передавача залежно від висоти та ширини променя, тож немає нічого зовнішнього, за чим можна перевірити ці клітинки; діаграма під ними окремо перевірена за зовнішнім еталоном за опублікованими значеннями Бесселя і має власний рядок antenna antenna::tests і attack_surface::tests (сітка повна, і кожна захоплена частка лежить у [0 1]; захоплена частка не спадає за потужністю передавача в кожному вузлі; вона НЕ монотонна за шириною променя чи висотою, що закріплено власним тестом, тому розгортку не можна згодом згладити; базовий вузол відтворює наявну захоплену частку побітово; оцінювання лише на лімбі побітово ідентичне останній точці повної розгортки; знайдений перетин лежить на порозі з точністю 1e-9 дБ і оточений)
Відтворюваність бюджету похибки місячного часу Сценарій lunar-time-budget публікує свої масивні виходи як довгу таблицю (індекс сітки, час усереднення, член) поряд зі звітом, тож сім кривих x(tau) для кожного члена та загальна корінь-з-суми-квадратів є виходом рушія, а не тим, що читач відтворює з розділу про метод InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - лише самоузгодженість: опублікований підсумок перевірено за кореневою сумою квадратів членів у тому самому файлі, а видана крива відтворює випущений p3_time_budget_curve.csv за всіма 57 точками. Обидві перевірки ділять власні визначення членів цього рушія, тож жодна не є незалежною. Член годинника спирається на опубліковані специфікації годинників, а ВЕЛИЧИНИ нижніх меж ліній, системи відліку, релятивістських і ефемеридних членів є задокументованими розподілами бюджету без зовнішнього оракула lunar_time_budget_scenario lunar_time_budget_scenario::tests (усі 57 часів усереднення x 8 членів присутні, індекс сітки пробігає 0..=56 і несе по 8 рядків; рядок total дорівнює кореневій сумі квадратів семи членів поруч з ним на кожному tau; таблиця слідує запитаній сітці, а не жорстко закодованій; її видання лишає JSON звіту побайтово ідентичним)
Лабораторія часу місячної станції: holdover miniRAFS проти LTC Необов'язковий блок [time_lab] сценарію lunar-time-budget моделює годинник місячної опорної станції (типово клас miniRAFS, або будь-який названий клас, або картка пристрою, підігнана за заданими точками стабільності), скерований на Координований місячний час, а потім вільно хідний або повторно скерований кожні N секунд: крива похибки часу x(t) як корінь із суми квадратів степеневого члена годинника, сталого залишку скерування (ILLUSTRATIVE), сталого залишку реалізації LTC і вмикного члена швидкості від висоти станції; час після скерування до 1, 10 і 100 нс (або заданих порогів) бісекцією поряд із замкненим оберненням для домінантного типу шуму, і домінантний член на кожному заданому горизонті, усе з одиницями InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - лише внутрішня узгодженість: бісекційний час до порога перевірено за замкненою оберненою формою домінантного типу шуму годинника, а вільний хід члена годинника - за власним членом годинника бюджету. Класи годинників спираються на опубліковані одноденні специфікації (їхні власні рядки); швидкість LTC тут не виводиться заново і має власний рядок VALIDATED (Місячний координатний час); залишок керування є ILLUSTRATIVE, залишок реалізації - розподіл бюджету, а теплова модель не включена. Наносекундну ціль, описану в матеріалах ICG WG-B Lunar PNT за червень 2024, наведено як твердження джерела, а не прийнято як заяву; ніщо тут не є твердженням про будь-який реальний станційний годинник lunar_time_lab (over clock_specs, lunar_time_budget, lunar_time) lunar_time_lab::tests (free_run_clock_term_is_the_budget_clock_term: з вимкненим керуванням член годинника дорівнює члену годинника бюджету до біта для всіх чотирьох класів; bisection_matches_the_closed_form у межах 1e-9 відносно для обох класів шуму; threshold_below_the_floor_is_flagged; steering_holds_and_resets; height_term_is_opt_in_and_linear; device_card_reproduces_a_named_class; bad_inputs_are_refused); tests/lunar_station_time_lab.rs (the_block_is_additive: типовий документ, таблиця та підсумок не змінюються, а блок додає лише власний об'єкт та одиниці; time_to_threshold_matches_the_closed_form_through_the_scenario; clocks_are_ordered_over_the_span_where_the_model_orders_them: optical < PHM < RAFS < miniRAFS від 1 с до 7e5 с, причому криві PHM і RAFS перетинаються між 7e5 і 8e5 с, закріплено як розкриту властивість моделей годинників з одним типом шуму; every_time_lab_field_has_a_unit; unknown_time_lab_fields_and_clocks_are_refused)
Місячна геодезична VLBI Затримка VLBI ближнього поля для земної бази, що спостерігає місячний маяк + частинні похідні ReferenceImpl перевірено за окремою реалізацією в цій самій кодовій базі - незалежною від тестованого модуля, але не зовнішньо авторитетною - плоскохвильовий 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. Твердження в документації модуля, що наближення систем відліку нижчі за точність моделі, на цьому рівні не виконується. Раунд 2 для 0,30: шлях ядра (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 lunar_vlbi::tests (межа далекого поля збігається з delta_dor; поправка ближнього поля; частинні похідні скінченних різниць); tests/lunar_vlbi_anise_oracle.rs::near_field_delay_disagrees_with_the_anise_light_time_difference
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 дБ). InternalConsistency перевірено за власною замкненою / аналітичною тотожністю - виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом - замкнені тотожності та внутрішня узгодженість; зовнішній оракул НЕ заявляється. Напівкут лімба перевірено за asin(R_earth/r_orbit), а геометрію - за ним; втрату у вільному просторі, ядро DOP і поширення SGP4, які це складає, кожне окремо перевірено зовні у власних рядках, і цей рядок не запозичує їхнього статусу. ЧОМУ MODELLED, і це передавальна діаграма: підсилення під кутом - це рівномірно освітлена кругова апертура, діаграма Ейрі, тоді як реальна антена GPS L1 - дванадцятиелементна спіральна решітка з формованим головним пелюстком, пік якого зсунуто з осі, щоб вирівняти потужність по диску Землі, і з бічними пелюстками, що не є Ейрі. Опубліковані виміряні діаграми існують і тут не включені, тож порядки та порядки величин зберігаються, а дБ будь-якого окремого супутника - ні. ПЕРША РЕАЛІЗАЦІЯ ЦЬОГО РЯДКА БУЛА ПОМИЛКОВОЮ ТАК, ЩО ЦЕ ВАРТО ЗАПИСАТИ: вираз Ейрі чинний лише в передній півсфері, його аргумент змінюється як sin(theta), і поблизу theta 180 град він загортається й повертає ПОВНЕ ПІДСИЛЕННЯ ВЗДОВЖ ОСІ позаду апертури - тож дві найсильніші лінії в першому звіті були супутниками, що спрямовували свої антени від Місяця, і лише вони перетнули поріг. Позаду апертури модель тепер застосовує плоску нижню межу заднього пелюстка, заявлену як межу, а не вигадану форму діаграми. Навмисно відсутнє, кожне робить бюджет ОПТИМІСТИЧНИМ: жодної іоносферної чи тропосферної втрати на променях, що ковзають по лімбу, жодної поляризаційної, наведення чи реалізаційної втрати, і сферична Земля без рефракційного розширення. Положення Місяця є ВХОДОМ, а не пошуком в ефемеридах, бо тестується лінія та геометрія променя. Підвищення цього рядка до перевіреного за зовнішнім еталоном потребує виміряної передавальної діаграми та нормальних точок LuGRE, за якими можна перевіряти; жодного з них немає в репозиторії, і жодного тут не вигадано. Раунд 2 для 0,30, знахідка (лишається MODELLED): шлях лінії з виміряними входами (реальні положення SP3, потужність передавача для кожного блоку, табульовані передавальні та приймальні діаграми, гістерезис захоплення та стеження) перевірено за Montenbruck et al. 2023 Table 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_lunar::tests (11 тестів бібліотеки: напівкут земного лімба проти його замкненої форми asin(R/r) з додатковим твердженням, що КОЖНА незаслонена лінія лежить поза цим конусом, тож тест заслонення та кут лімба не можуть розходитися; предикат заслонення перевірено на ближньому боці, дальньому боці та у випадку, коли тіло лежить ПОЗАДУ передавача; втрату на трасі обмежено правдоподібною смугою місячної дальності на кожній лінії; множину відстежуваних показано підмножиною геометрично видимих і неперетинною із заслоненою; монотонність в обох напрямках - більше приймального підсилення ніколи не зменшує кількість, суворіший поріг ніколи її не збільшує; жодній лінії не зараховано більше підсилення вздовж осі; приймач усередині Землі відхилено; розгортку стверджено такою, що справді ЗМІНЮЄТЬСЯ за епохою; а доступність сигналу та розв'язку стверджено різними, правильно впорядкованими та узгодженими з рядками для кожної епохи); tests/earth_gnss_measured_montenbruck_oracle.rs::finding_genesis_nadir_counts_exceed_the_paper (закріплено); tests/lugre_relative_cn0_visibility.rs::too_few_iir_records_at_lunar_distance_for_the_relative_cn0_bar (закріплена знахідка)
Визначення місячної орбіти: Earth-GNSS проти наземних радіометричних вимірювань Визначення орбіти на майже прямолінійній гало-орбіті (або еліптичній замороженій орбіті) за двома незалежними типами даних: псевдодальності Earth-GNSS, прийняті на борту (правило лінії з рядка Earth-GNSS на місячній відстані плюс затулення Місяцем), і наземні двосторонні дальність і швидкість зміни дальності від трьох станцій Deep Space Network. Кожне є одним кроком пакетних найменших квадратів навколо опорної орбіти з його формальною коваріацією; Монте-Карло із зерном (seed) різниці двох оцінок перевіряє, чи пояснюють її дві коваріації (q = d' (P_G + P_R)^-1 d, хі-квадрат із шістьма ступенями свободи, коли моделі збігаються) і що немоделюване прискорення робить зі статистикою. ReferenceImpl перевірено за окремою реалізацією в цій самій кодовій базі - незалежною від тестованого модуля, але не зовнішньо авторитетною - незалежна програма scipy/numpy інтегрує ті самі варіаційні рівняння (поріг O1). Нічого не порівнюється з вимірюванням місячної орбіти. Оракул перевіряє чисельні методи заявлених формул, а не фізику, тож рядок лишається MODELLED. Обмежена задача трьох тіл: без Сонця, без місячних гармонік, вісь обертання Землі вздовж нормалі до орбіти, ILLUSTRATIVE входи приймача та станції. lunar_infra::{orbit, gnss, od} tests/lunar_infra_od_consistency.rs (поріг O1: матриця переходу станів, прив'язана за три доби та за один період, дорівнює scipy DOP853 з відносною точністю 1e-6; поріг C1: середнє q і частка всередині 95 %; поріг C2: вибірка над формальним слідом кожного оцінювача; поріг C3, NOT MET і закріплено: з 3e-10 м/с2 немодельованого прискорення перевищення в межах 95 % становить 0,0525, а не щонайменше 0,5 - бортову оцінку відомо лише з точністю до сотень метрів, тож близько десяти метрів зсуву ховається всередині її коваріації); lunar_infra::orbit::tests, lunar_infra::gnss::tests, lunar_infra::od::tests, lunar_infra::la::tests
Місячне розв'язання неоднозначностей фази несівної: поверхня та орбітальний апарат Фаза несівної та код Earth-GNSS з одинарними різницями між приймачами на місячній поверхневій станції та орбітальному апараті, із профільованою різницею годинників на кожну епоху, однією неоднозначністю на безперервне проходження та найдовшим проходженням як калібром. Коваріація плаваючої неоднозначності — доповнення за Шуром; LAMBDA розв'язує цілі числа, частота початкового завантаження (bootstrapped) повідомляється поряд із частотою успіху цілочисельних найменших квадратів Монте-Карло із зерном (seed) та сигмами плаваючої та фіксованої позиції. Повідомлено як знайдено: за зареєстрованих 12 дБі задача подвійних різниць не формується (поправка 1 перенесла типове значення на 25 дБі після того, як побачили лише лічильники доступності), а за 25 дБі цілочисельну фіксацію НЕ досягнуто — вона поза досяжністю (щонайбільше кілька відсотків), хоча плаваючий розв'язок покращується з дугою. ReferenceImpl перевірено за окремою реалізацією в цій самій кодовій базі - незалежною від тестованого модуля, але не зовнішньо авторитетною - незалежний розв'язок у numpy тих самих нормальних рівнянь з експортованих рядків (Q3) і повний перебір цілих чисел (Q4). Жодне вимірювання фази несівної ГНСС (GNSS) чи місячної не порівнюється. MODELLED. lunar_infra::phase; lambda tests/lunar_infra_carrier_phase.rs (поріг Q1: успіх Монте-Карло щонайменше межа бутстрепу мінус три стандартні похибки; Q2: жодного падіння з довжиною дуги понад три стандартні похибки; Q4: LAMBDA дорівнює повному перебору для 200 вибірок розмірності до п'яти; Q3: плаваючий план дорівнює незалежному розв'язку numpy з точністю 1e-9 для коваріацій неоднозначності та позиції, а бутстрепована частка NOT MET при 1e-9, закріплено: вона відрізняється на відносні 1.7e-6, бо нормальна ФР у LAMBDA є наближенням Абрамовіца й Стігана)
Спільне оцінювання місячної системи відліку: поверхневі станції та орбітальні апарати Інформація Фішера семипараметричного датума місячної системи відліку від лазерної далекометрії земних станцій до п'яти рефлекторів окремо та із доданими дальностями «орбітальний апарат — поверхнева станція»: інформаційна матриця, ранг, сигми Крамера–Рао, метрика виродженості модуля місячної ідентифікованості та випадкові набори станцій із зерном (seed). Орбіта вважається відомою в місячних осях (її похибка передається сигмою дальності орбітального апарата). ReferenceImpl перевірено за окремою реалізацією в цій самій кодовій базі - незалежною від тестованого модуля, але не зовнішньо авторитетною - незалежна скінченна різниця numpy прямої моделі (F2). Нічого не порівнюється з реальними розв'язками місячної системи відліку. Чинник умовний щодо припущеної відомої орбіти та сигми дальності 1 м. MODELLED. lunar_infra::frame; lunar_datum; lunar_identifiability; lunar_llr_geometry tests/lunar_infra_studies_3_5.rs (поріг F1: слід CRLB не зростає, а найменше власне значення не спадає зі зв'язками орбітального апарата, у прикладі та у 20 випадкових наборів із зерном (seed); поріг F2: частинні похідні дальності дорівнюють незалежній скінченній різниці numpy longdouble прямої моделі Родрига на 50 геометріях; поріг F3: найменше власне значення зростає щонайменше у 2,0 раза, знайдено близько 111 разів)
Точність прив'язки систем відліку в космосі: суміщені GNSS, VLBI і лазерна далекометрія Точність за Крамером–Рао міжтехнологічних зсувів перенесення, масштабу та обертання між системами GNSS, VLBI і лазерної далекометрії, коли один космічний апарат несе всі три, з вилученою на кожній епосі позицією апарата та дев'ятьма завадними параметрами локальної прив'язки з апріорною інформацією, перебраними за точністю локальної прив'язки. Коваріації шляхом квадратного кореня (нормальні рівняння втрачають цифри, коли технології майже досконалі). ReferenceImpl перевірено за окремою реалізацією в тій самій кодовій базі — незалежною від досліджуваного модуля, але не зовнішньо авторитетною — незалежна складена система numpy, у якій невідомі положення виключено явними доповненнями Шура (T3). Із даними GRASP, Genesis чи іншої місії не порівнюється. MODELLED. lunar_infra::tie; fim::crlb_srif tests/lunar_infra_studies_3_5.rs (поріг T1: сигми зсуву не спадають, коли локальний зв'язок послаблюється; T2: за масштабування сигм технік на 1e-6 сигма зсуву кожної пари лежить у межах 1 % від sqrt(2), помноженого на сигму локального зв'язку, знайдено в межах 3e-7; T3: інформаційна матриця збігається з незалежним складанням numpy до 1e-9). Перший прогін T2 з обертанням нормальних рівнянь не досяг порогу (1,3 % на зв'язку 0,1 м, значення нижче підлоги на 1 м); причина була числовою, і коваріацію перенесено на квадратнокореневий маршрут до повторної оцінки порогу.
Чутливість місячних чисел Лява та лібрації Інформація Фішера h2, k2, l2 і фізичних амплітуд лібрації від лазерної далекометрії (радіальне та горизонтальне припливне зміщення, обертання рефлектора), стеження за орбітальним апаратом (прискорення k2 степеня 2, проінтегроване вздовж лінії візування, із вилученим трендом), поверхневого гравіметра (гравіметричний множник 1 + h2 - 1,5 k2) і поверхневого годинника (відносна швидкість (1 + k2 - h2) W2/c2, прив'язана до констант місячного часу). Номінальні значення h2 і l2 — точки лінеаризації; дослідження каже, що до чого чутливе, а не які ці числа. ReferenceImpl перевірено за окремою реалізацією в тій самій кодовій базі — незалежною від досліджуваного модуля, але не зовнішньо авторитетною — незалежне складання numpy зі скінченних різниць (G2) і обчислення за замкненою формулою (G4). Чутливість до k2 для родини орбітального апарата є оцінкою верхньої межі (стан орбіти тут поглинає лише сталу та тренд). Жодне вимірювання місячного припливу чи лібрації не порівнюється; k2 наведено за Lemoine et al. 2014 як номінальне значення. MODELLED. lunar_infra::geodesy; lunar_od::degree2_tide_accel; lunar_time tests/lunar_infra_studies_3_5.rs (поріг G1: аналітичні частинні похідні збігаються з центральною скінченною різницею кожної прямої моделі до 1e-8; G2: інформація 5x5 збігається з незалежним складанням numpy до 1e-6; G4: амплітуда припливу годинника та її чутливості до k2 і h2 збігаються з незалежним обчисленням до 1e-9; поріг G3 NOT MET у частині сліду, зафіксовано: додавання родини ніколи не знижує найменшого власного значення (28 із 28), але слід псевдообернення зріс у 12 із 28 додавань, бо додана родина підвищила ранг)
Доповнення 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 м, тож читачеві ніколи не доводиться припускати, що внесли всі три ReferenceImpl перевірено за окремою реалізацією в тій самій кодовій базі — незалежною від досліджуваного модуля, але не зовнішньо авторитетною — Арифметика 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 і перевірено двома валідаційними тестами, проте вона НЕ мала жодного рядка матриці й жодного виду сценарію, тож її взагалі не можна було досягти з прогону. Вона була заявлена в тексті, відсутня в реєстрі (ledger) і недосяжна в рушії водночас. Рядок і вид додано разом. 0,30 раунд 2 (попередня реєстрація db0eb9ec), заблоковано (залишається MODELLED): видимість ANISE 0.10.6 і DOP numpy на геометрії рядка збігаються (видимі набори точні, зокрема 72 випадків поблизу горизонту та 48 поблизу маски; DOP у межах 7.2e-13), але наведені метри — це DOP, помножений на ілюстративну 1,158 м середньоквадратичну похибку дальності без оракула; обмеження обсягу, що виключило б їх, очікує рішення власника lunar_beacon lunar_beacon::tests (видимість горизонту за замкненою формулою L01; DOP із доповненням маяками проти базового; корінь суми квадратів бюджету похибок; співвідношення DOP-метри); tests/validate_p2_beacon_before_after_table.rs (уся таблиця до/після зафіксована за закоміченим еталонним результатом (golden) із відносною точністю 1e-9); tests/validate_p2_beacon_before_after_independent_dop.rs (та сама геометрія через НЕЗАЛЕЖНИЙ шлях DOP, тож доповнення не перевіряється за ядром, яке його створило); tests/validate_lunar_beacon_anise_visibility_dop.rs::beacon_visibility_and_augmented_dop_match_anise_and_numpy
Рівень захисту від спільної моди та загальна огортка цілісності cmpl_horizontal обмежує k-сигма горизонтальну похибку положення, яку вносить сліпий синфазний клас, формуючи blind_position_covariance = SCovS^T і проєктуючи її в ENU; integrity_envelope повідомляє hpl_total = hpl_araim + cmpl. Різниця, заради якої існує ця пара: тест ЗАЛИШКІВ RAIM/ARAIM доведено сліпий до похибок із range(G), а РІВЕНЬ ЗАХИСТУ ARAIM — ні: його безвідмовний доданок уже обмежує їх до URA постачальника плюс номінального зміщення. Тому CMPL — це лише міжпостачальницький НАДЛИШОК, який URA/ISM окремого постачальника не перекриває, а сума — консервативна межа за нерівністю трикутника, а не RSS, чинна лише там, де цей надлишок ще не міститься в URA. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Аналітична алгебра проєктора, перевірена сама на собі: коваріація, обмежена range(G), має давати додатний CMPL, коваріація, обмежена простором парності, має давати приблизно нуль, а оболонка має складати два вимірювально-просторово ортогональні внески. Синфазна коваріація, геометрія орбітального угруповання та k — репрезентативні модельні вхідні дані, НЕ засвідчений бюджет, і не стверджується, що межа за трикутником є точною. ПРИМІТКА ПРО ПОХОДЖЕННЯ: cmpl_horizontal, blind_position_covariance та integrity_envelope є публічними й постачаються, а їхні модульні тести вже цитував рядок про синфазну сліпоту, проте САМЕ ТВЕРДЖЕННЯ ПРО ОБОЛОНКУ не мало рядка, тож єдине застереження, яке зберігає його чесним, — що сума є межею за трикутником, а не RSS, — ніде в реєстрі (ledger) не було сказано. Рядок реєструє твердження й застереження разом. lunar_common_mode lunar_common_mode::tests (common_mode_covariance_gives_positive_cmpl, parity_only_covariance_gives_near_zero_cmpl, envelope_sums_the_two_classes, state_map_matches_split)
Спостережуваність абсолютної місячної станції (дефект датуму) Спостережуваність за інформацією Фішера для спільного місячного розв'язку: без земних базових ліній абсолютний датум системи відліку лежить у нуль-просторі HᵀWH (положення станції не спостерігається); ≥3 базових ліній відновлюють повний ранг і обмежують похибку станції за Крамером–Рао, яку оцінювач досягає InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Аналітична структура дефекту датума: неспостережна абсолютна мода системи відліку лежить у нуль-просторі інформації Фішера (замкнена формула), поріг рангу збігається з опублікованим обґрунтуванням конструкції з 3 станцій, а оцінювач досягає отриманої CRLB у Монте-Карло. Сама місячна геометрія — репрезентативна мережа (не льотні ефемериди), тож рядок залишається MODELLED; рушій FIM/CRLB, на якому все базується, окремо перевірено за замкненими формулами Kay (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 lunar_combination::tests (дефіцит рангу без земних базових ліній; три базові лінії відновлюють повний ранг — поріг 3 станцій за рангом інформації, а не за похибкою розв'язку; CRLB станції досягається оцінювачем з ефективністю 0,98; CRLB монотонно звужується зі збільшенням базових ліній); tests/lunar_observability_numpy_oracle.rs::lunar_observability_matches_numpy_on_the_committed_jacobians
Генерація розширювальних кодів 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, і ніколи не розповсюджується ExternalDataset піделемент твердження перевірено зовні, але вся можливість складається з модельних частин, тож можливість залишається модельною — Еталон: значення, які 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) lunar_afs::codes::tests (регістри максимальної довжини, баланс Лежандра, круговий обхід затримки G2, композиція рівнів); tests/lunar_afs_codes_lsis_reference.rs::afs_codes_finding_one_misprinted_table_cell (без кешу LSIS: чотири цитовані числа фіксують знахідку; з ним: 2 937 232 чипів і бітів проти файлів додатка 3 LSIS, надруковані перші/останні 24 чипів, таблиці Лежандра D-1 і E-1 та ініціалізації G2 дають рівно один відмінний елемент — комірку «останні 24 чипів» PRN 147 у таблиці E-5, яка дублює комірку PRN 151, тоді як файл додатка 3 збігається з генератором); суворий попередньо зареєстрований тест afs_codes_match_lsis_v1_tables_and_annex3_bit_exact ігнорується разом із цією прогалиною
Замкнена декодованість LunaNet AFS незалежним приймачем (LSIS V1.0) Запис AFS від Kshana, захоплений, відстежений і декодований незалежним програмним приймачем та порівняний із власними істинними мітками запису. Це доводить лише відповідність стандарту та узгодженість міток; це не твердження про фізику каналу, поширення, прийняту потужність чи бюджети лінії, значення яких у записі є обраними вхідними даними ExternalDataset піделемент твердження перевірено зовні, але вся можливість складається з модельних частин, тож можливість залишається модельною — Бібліотека: PocketSDR-AFS (T. Ebinuma за PocketSDR 0,13 T. Takasu, BSD-2-Clause, коміт 5b23809f30d68518b7fad7a564fd0fac57cc497d, збірка S-band, копія лише з друком рівня журналу), за критеріями, зафіксованими до кожного прогону. Третє попередньо зареєстроване порівняння повністю досягає порогів декодування й супроводу C1 і C2, але не свого запобіжника G0 у письмовому вигляді (два прогони немодифікованого приймача відрізняються в тих самих чотирьох записах захоплення), а друге не досягло порогу на 5 порушень, тож рядок залишається MODELLED. LANS-AFS-SIM і PocketSDR-AFS мають спільного автора й вважаються однією незалежною реалізацією; перевірки за надрукованими векторами в рядку кодування кадрів захищають від спільного хибного прочитання lunar_afs::waveform (запис і мітки істини), xval/lunar-afs/run_pocketsdr.sh tests/lunar_afs_decodability_pocketsdr_v3_oracle.rs::third_run_finding_c1_c2_hold_g0_is_receiver_nondeterminism (третя попередня реєстрація: 2 вузли, супроводжувано 4 канали, найгірша похибка Доплера 0,57 Гц, найгірша похибка зсуву коду 0,008 чипа, усі 6 кадрів декодовано з правильним TOI через перехід 99 -> 0 і з відповідним підкадром 2; G0 не досягнуто у письмовому вигляді через власну міжпрогонову мінливість приймача в його записах захоплення); tests/lunar_afs_decodability_pocketsdr_4bit_oracle.rs::decodability_finding_five_violations (друге: 5 порушень); tests/lunar_afs_decodability_pocketsdr_oracle.rs::first_run_finding_no_acquisition_outside_the_receivers_4_bit_range (перше: недійсне); суворі тести трьох файлів ігноруються разом із їхніми прогалинами
Міжгенераторна відповідність 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 супутники) InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — gps-sdr-sim (MIT, коміт 28ca29a6, запущений як окрема програма через закомічений стенд), попередньо зареєстровано 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 tests/gps_l1ca_gpssdrsim_cross_generator.rs::gps_sdr_sim_truncates_where_the_broadcast_integer_needs_rounding (зафіксована знахідка); tests/gps_l1ca_gpssdrsim_cross_generator.rs::ca_codes_lnav_fields_and_parity_match_gps_sdr_sim_bit_exactly (суворий, ігнорується разом із прогалиною); gps_lnav::tests
Захоплення GNSS IQ на незалежно згенерованих відліках I/Q iq::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-sim ExternalDataset піделемент твердження перевірено зовні, але вся можливість складається з модельних частин, тож можливість залишається модельною — відліки 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) tests/iq_gpssdrsim_cross_generator.rs::acquisition_threshold_is_crossed_on_gps_sdr_sim_noise_free_samples (зафіксована знахідка); tests/iq_gpssdrsim_cross_generator.rs::acquisition_finds_gps_sdr_sim_satellites_in_its_samples (суворий, ігнорується разом із прогалиною)
Монітори IQ, оцінені в кампаніях лабораторного відтворення: виявлення, пропуски, хибні тривоги та замкнені оцінки хибних тривог iq::campaign::detect і виконавець кампаній: необов'язкова таблиця [monitors] запускає монітори IQ на кожній комірці за єдиний прохід виконавця. Монітори потужності та спектра бачать відліки після кожного ланцюга входу; монітори C/N0, SQM і захоплення бачать оновлення петель кожного відстежуваного каналу. Кожну тривогу оцінюють за вказаними подіями: виявлено чи пропущено для кожної (подія, вид тривоги, канал), час до виявлення та хибні тривоги поза подіями за їхню експозицію. Для кожного тесту вказано замкнену оцінку хибної тривоги: потужність на блок (точний гамма-хвіст), спектральний надлишок на блок (наближення), ексцес (односторонній гауссівський), імпульси (біноміальна межа), SQM на усереднене оновлення (2Q(k) = Q(1/2, k^2/2), нове) та ARL0 CUSUM для C/N0 (Зігмунд). Без таблиці комірки, ключі та дайджести не змінюються. Жодна форма хвилі завад не синтезується InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Власні замкнені формули моніторів на власних сценах 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) tests/iq_campaign_monitors.rs: m1_power_test_false_alarm_rate_matches_the_closed_form (73 із 5900 блоків проти 99 % біноміального інтервалу [40, 80] для P_fa 0,01), m2_sqm_false_alarm_fraction_is_within_a_factor_of_2_of_2q_k (delta 0,0160, відношення 0,0131 проти 0,01), m4_cn0_false_alarms_stay_within_the_poisson_bound_of_arl0 (0 проти 0), the_monitors_table_parses_and_validates; m3_every_attenuation_is_detected_within_twice_the_arl1 (суворий, ігнорується разом із прогалиною); тести iq::campaign::detect; тести iq::monitor::stats (gaussian_two_sided_tail_matches_known_values); tests/iq_campaign.rs (закріплені дайджести без таблиці не змінюються)
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. Кампанія без моніторів не записує жодного з них InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Синтетичні кампанії зі власних сцен 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) tests/iq_campaign_roc.rs: r2_with_nothing_to_detect_the_roc_sits_at_chance (AUC cn0_drop 0,500, sqm_delta 0,566, power_drop 0,639 на заявлених подіях, що нічого не ослаблюють); r1_the_cn0_drop_roc_separates_6_db_attenuations (суворий, ігнорується разом із прогалиною); тести iq::campaign::detect (the_roc_of_separated_and_of_identical_samples, windows_tile_the_time_outside_the_events)
Калібрування моделей 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 за журналом приймача не змінюється InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Синтетичне відновлення параметрів на власних сценах 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 tests/iq_labfit_campaign.rs: bar_c_holdout_prediction_intervals_cover_between_80_and_98_percent (покриття PI90 0,891 на 558 бінах, 0,900 на 10 подіях часу до втрати за кожної моделі захоплення), the_report_carries_its_inputs_censoring_validation_and_labels (входи, цензурування, хеш і вердикти [validation], аудит блоку одиниць), the_cluster_bootstrap_reproduces_from_the_campaign_and_seed, a_validation_mode_fit_refuses_to_start_without_its_table; bar_a_prime_delta_eff_is_recovered_and_q_is_stated_not_fitted, bar_d_closed_form_threshold_matches_the_direct_estimate_within_1_db і bar_b_prime_ci_subset (суворі, ігноруються разом із прогалиною); bar_b_prime_full_set_of_50_campaigns (ігнорується, запускається перед випуском); тести iq::labfit::cn0 (точна виродженість Q-delta, відновлення delta за заявленого Q, обернення замкненого порогу); тести iq::labfit::iqfit (умови моделі захоплення точно відтворюють модель C/N0); tests/iq_labfit_followup.rs (продовження, зареєстроване в 1e532f84: s1_delta_eff_on_the_stepped_campaign MET, s2_d_as_written_on_the_stepped_campaign із підтвердженням записаного NOT MET, r1_dwell_corrected_d_on_the_fresh_ramp_campaign MET, у release)
Кодування GPS LNAV, декодоване незалежною бібліотекою приймача Підкадри LNAV 1–3 від Kshana (gps_lnav::encode_subframes) для 32 ефемерид brdc0010.22n, подані в decode_word і decode_frame з RTKLIB: парність кожного слова, декодування підкадрів із узгодженим випуском даних і кожен декодований параметр проти цілого числа Kshana та проти вхідного значення InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — RTKLIB 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 tests/gps_lnav_rtklib_decode_oracle.rs::rtklib_recovers_every_integer_and_differs_only_by_its_decimal_two_to_the_minus_43 (зафіксована знахідка); tests/gps_lnav_rtklib_decode_oracle.rs::kshana_lnav_subframes_decode_in_rtklib_to_the_broadcast_parameters (суворий, ігнорується разом із прогалиною)
Кодування навігаційного повідомлення GPS LNAV Підкадри LNAV 1–3 за IS-GPS-200 (gps_lnav::encode_subframes: квантування до найближчого кожного параметра годинника й орбіти за масштабними множниками специфікації та значенням pi, упаковка в додатковому коді, слова TLM і HOW, парність за таблицею 20-XIV з інверсією D29*/D30*, біти розв'язання парності слів 2 і 10), повідомлення, яке передає генератор сигналу GPS L1 C/A ExternalDataset піделемент твердження перевірено зовні, але вся можливість складається з модельних частин, тож можливість залишається модельною — RTKLIB 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 не досягла порогу в один ulp (41 значень). Післяперевірка інтегратором (залишається MODELLED): порівняння збігається, і мутація набору парності також дає збій, але попередня реєстрація d4d9eb9d потрапила в публічну гілку о 20:02:29 UTC, через дві секунди після коміту результату 1783f904 (20:02:27 UTC), який уже містить вивід RTKLIB для файлу, тож порядок «зареєстровано до отримання файлу» показати не можна; свіжа реєстрація, надіслана до отримання небаченого широкомовного файлу, це розв'язала б gps_lnav tests/gps_lnav_rtklib_integer_oracle.rs::kshana_lnav_integers_decode_in_rtklib_from_an_unseen_broadcast_file (32 супутники широкомовного файлу IGS від 2 березня 2025: 960 із 960 слів проходять парність RTKLIB, 96 із 96 підкадрів декодуються, 608 із 608 декодованих широкомовних цілих дорівнюють цілим Kshana, кожен вхід у межах половини кванта, тиждень і часи точні); gps_lnav::tests
Захоплення та оцінка C/N0 на реальних місячних IQ Паралельний пошук фази коду (acquisition::pcps_acquire: портативний FFT, когерентне згортання, некогерентне накопичення, поріг хі-квадрат для ймовірності хибної тривоги в усьому пошуку), уточнення, відкритопетльова миттєва кореляція з кодовим Доплером та оцінювач C/N0 M2M4, запущені на 4-бітових пакетах IQ LuGRE L1, прочитаних через realdata::ion_sdr InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — GNSS-SDR 0.0.19 (GPL-3.0, окрема програма, закріплена конфігурація) на дев'яти неповерхневих пакетах L1 і СИРОМУ 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 порожня, жодна льотна СИРА епоха не лежить у межах 30 с від будь-якого пакета (найближча 141 с). Більшість позитивів — артефакти: голі рівні в доповняльному коді мають середнє -0.5 за I і Q, нульочастотну лінію на 32 дБ вище за шум у біні 1 кГц, яку захоплюють обидва приймачі. Два пакети (OP5, OP12) було виключено помилково: прочитання їхніх метаданих без цифр сприйняли за суперечність із їхніми заголовками; справжньою причиною було те, що зчитувач не міг прочитати відлік, ширший за слово (відтоді виправлено). Залишається MODELLED acquisition, portable_math, realdata::ion_sdr, realdata::lugre tests/lugre_acquisition_gnss_sdr_oracle.rs::finding_dc_artefacts_and_no_contemporaneous_flight_cn0 (зафіксована знахідка, залежить від даних); tests/lugre_acquisition_gnss_sdr_oracle.rs::acquisition_and_relative_cn0_on_lugre_iq_match_gnss_sdr_and_the_flight_receiver (суворий, ігнорується разом із прогалиною); acquisition::tests; realdata::ion_sdr::tests; realdata::lugre::tests
Захоплення на реальних місячних IQ проти прогнозованого за орбітою Доплера (рішення за потужністю відліків) acquisition::pcps_acquire з рішенням за потужністю відліків на дев'яти пакетах LuGRE L1 не на поверхні з рівнями mid-rise; різниці Доплера між захопленими супутниками порівняно з різницями, прогнозованими за остаточними орбітами ESA та реконструйованою Firefly траєкторією Blue Ghost InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Передбачений Доплер за фінальними орбітами 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), чого статистика потужності відліків не бачить. Залишається MODELLED acquisition, realdata::ion_sdr tests/lugre_acquisition_predicted_doppler_oracle.rs::noise_alone_crosses_the_sample_power_threshold_on_lugre_iq (зафіксована знахідка, залежить від даних); tests/lugre_acquisition_predicted_doppler_oracle.rs::acquired_doppler_differences_on_lugre_iq_match_the_orbit_prediction (суворий, ігнорується разом із прогалиною)
Захоплення на реальних місячних IQ, оцінене за прогнозованим за орбітою Доплером acquisition::pcps_acquire з рішенням за усередненням комірок (пік над середньою коміркою сітки, стійке до смуго-обмеженого шуму) на дев'яти пакетах LuGRE L1 не на поверхні з рівнями mid-rise; різниці Доплера між захопленими супутниками порівняно з різницями, прогнозованими за остаточними орбітами ESA та реконструйованою Firefly траєкторією Blue Ghost InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Передбачений Доплер за фінальними орбітами 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 Гц між двома прогонами) реєстрація також недооцінила. Залишається MODELLED acquisition, realdata::ion_sdr tests/lugre_acquisition_cell_average_doppler_oracle.rs::strong_pairs_match_the_prediction_only_with_the_doppler_sign_reversed (зафіксована знахідка, залежить від даних); tests/lugre_acquisition_cell_average_doppler_oracle.rs::cell_average_acquisitions_on_lugre_iq_match_the_orbit_predicted_doppler (суворий, ігнорується разом із прогалиною)
Захоплення на відкладених реальних місячних IQ проти прогнозованого за орбітою Доплера acquisition::pcps_acquire (рішення за усередненням комірок, ймовірність хибної тривоги 1e-7) з refine_doppler_coherent на пакетах LuGRE L1, записаних на місячній поверхні (I у старшому півбайті, рівні mid-rise); різниці Доплера між захопленими супутниками порівняно з різницями, прогнозованими за остаточними орбітами ESA та ядром місця посадки Firefly InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Передбачений Доплер за фінальними орбітами ESA/ESOC і ядром NAIF CLPS для місця посадки Firefly (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 tests/lugre_surface_acquisition_doppler_oracle.rs::each_surface_acquisition_is_a_single_predicted_visible_satellite (зафіксована знахідка, залежить від даних); tests/lugre_surface_acquisition_doppler_oracle.rs::surface_acquisitions_match_the_orbit_predicted_doppler (суворий, ігнорується разом із прогалиною)
Місячний диференційний PNT Диференціальна опорна станція класу NovaMoon: скасування синфазної складової + залишок, що зростає з базовою лінією + рівні захисту DGNSS InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Тотожність диференціального взаємного скасування похибок + повторне використання механізму SBAS PL за DO-229E; розв'язок одинарної різниці + WLS додатково перехресно перевірено за lsq()/matinv() з RTKLIB (Takasu, BSD-2-Clause, скомпільований C) — незалежний код розв'язувача, але та сама алгебра різниць LOS першого порядку, тож усе ще InternalConsistency lunar_dpnt lunar_dpnt::tests (синфазна складова годинника скасовується точно; залишок зростає з базовою лінією; повторно використовує SBAS PL; кількість супутників дотримується до межі конструктора 24, тож більше орбітальне угруповання не може непомітно повернути менше); tests/lunar_differential_pnt_reference.rs (залишок одинарної різниці + розв'язок положення WLS проти lsq() з RTKLIB, скомпільованого з вихідного коду C)
Експорт для місячної взаємодії Експорт місячної системи відліку + часу + ефемерид, узгоджений із LunaNet/IOAG (CCSDS OEM + KIF), із відповідністю при круговому проході InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — місячний експорт 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 lunar_interop::tests (OEM містить місячні REF_FRAME/TIME_SYSTEM; метадані часу проходять круговий обхід; оболонка KIF); tests/lunar_interoperability_export_reference.rs (місячний OEM, випущений kshana, повторно розібраний незалежною бібліотекою Python oem: токени REF_FRAME/TIME_SYSTEM/CENTER + стан на кожну епоху з точністю формату; пошкоджений експорт відхиляється); tests/lunar_interop_oem_oracle.rs::recorded_two_reader_outcome_is_for_todays_export
Оцінювання за рамками стійкості PNT Субоцінки за вимірами за власними сімома категоріями стійкості Kshana (не термінами DHS), функціями RDRR RethinkPNT і критеріями Янга, кожна позначена Modelled із її рушієм; орієнтовний рівень RPCF із бар'єром обмеженої деградації. Самооцінка на основі симуляції, ніколи не сертифікація. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Виведені вручну формули для кожної метрики: обернене різноманіття Сімпсона, зважене середнє складової оцінки, обмежені/необмежені тривалості часової шкали, драбина рівнів за найслабшою ланкою resilience::arch, resilience::score, resilience::diversity, resilience::timeline resilience::score::tests (монотонність, межі складової оцінки, обмеження рівня, модельне походження); resilience::diversity::tests (обернений Сімпсон, синфазність, SPOF)
Дослідження нестійкості рішень за оцінкою стійкості Кількісно оцінює, як одна складена оцінка / рівень RPCF переупорядковує архітектури за виправданого симплекса ваг і ансамблю загроз (частота зміни top-1, дисперсія тау Кендалла, частота зміни рівня, діапазони рангів); аналіз заявленого проти виміряного та колапсу різноманітності. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Замкнені тотожності рангових статистик (tau у [-1,1] із вручну обчисленими значеннями; детермінований Діріхле із зерном) і сконструйовані стабільні/нестабільні свідки resilience::stats, resilience::study, resilience::panel resilience::stats::tests (ручний приклад tau Кендала, симплекс Діріхле, частота перевертань); resilience::study::tests (контроль стабільності, свідок нестабільності, заявлене проти виміряного, колапс різноманіття)
Репрезентативність демонстрації та прогалини до польоту Реєстр чесності для кожного результату, що кваліфікує вихід демонстрації: його зовнішні опори, змодельовані припущення, прогалини до польоту та репрезентативний діапазон TRL, із примусовими інваріантами (Validated вимагає зовнішньої опори; Modelled вимагає прогалини і не може претендувати на TRL вище 4). InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Замкнені інваріанти, що відповідають дисципліні «репрезентативність обґрунтована + прогалини до льотного стану визначені»; прив'язано до межі між статусом верифікації та видом оракула representativeness representativeness::tests (validated-needs-external-anchor, modelled-needs-gap, modelled-TRL-ceiling, malformed-band, поля JSON)
Докази компромісу квантове проти класичного (спільна форма) Один відтворюваний об'єкт TradeEvidence (фіксована рамка: сценарій+зерно+рушій; спільні значення квантове-проти-класичного для кожного показника якості з коректною за полярністю перевагою, необов'язковий 95% ДІ, мітка validated/modelled), що несе запис репрезентативності, щоб кожна квантова вертикаль PNT повідомляла про компроміс однаково чесно. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Замкнені тотожності вигоди/переможця + вірна обгортка наявного quantum_trade::TradeResult; чесність прив'язано до реєстру репрезентативності та міток верифікації qtrade qtrade::tests (полярність вигоди вища/нижча-краща, вірно обгортає реальний TradeResult, нечесні докази відхиляються, validated-FoM потребує зовнішнього якоря, детермінований JSON)
Бібліотека моделей похибок квантових пристроїв Картки пристроїв (оптичні/на захоплених іонах/на іонах ртуті + класичні годинники, повторно використані з holdover/clock_state; інтерферометр на холодних атомах; класичні + заплутані/однофотонні лінії передавання часу), кожна з записом репрезентативності; заплутана лінія додає модель точності часу, обмежену дробовим шумом (~джитер/sqrt(R*tau), штраф за темнові лічби, систематична межа). InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Повторно використані коефіцієнти годинника/CAI (holdover/clock_state, опубліковані значення) + замкнені тотожності дробового шуму/втрат для лінії заплутаності quantum_devices quantum_devices::tests (картки годинників чесні й упорядковані; точність заплутаності ~1/sqrt(tau); виявлена частота -10x/10 дБ; темнові лічби погіршують; системні нижні межі обмежують; картка модельна + дійсна)
Довірений квантовий час (передавання часу + безпечне поширення + аномалії) Наскрізний ланцюг передавання часу квантовий проти класичного (інерційний дрейф годинника + точність лінії в квадратурі), повторно використаний рівень захисту часу, показник безпеки проти атак із затримкою/повтором (1-P_md) та ймовірність виявлення аномалії годинника + затримка CUSUM, подані як чесний TradeEvidence із записом репрезентативності. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Замкнений квадратурний бюджет над повторно використаними перевіреними ядрами (ADEV проти Stable32/NIST; межа TPL; виявлення analytic_pd/pmd); чесність прив'язано до реєстру репрезентативності timetransfer_chain timetransfer_chain::tests (точність поліпшується з інтеграцією; квантовий варіант може виграти І програти; PL скінченний-додатний; FoM безпеки в [0 1] і зростає із затримкою атаки; Pd аномалії монотонна; торгівельне порівняння is_honest)
Квантова навігація без GNSS Квантова (інтерферометр на холодних атомах) проти класичної інерціальної навігації навігаційного класу з рахуванням шляху під час відмови GNSS: зростання похибки положення, holdover до порогу положення та компроміс квантове-проти-класичного як чесний TradeEvidence; чесна примітка про спостережуваність (зсув не спостерігається без виправлення, тому похибка зростає). InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Повторно використані інерціальні бюджети, перехресно перевірені незалежним подвійним інтегруванням в Octave того самого ЗДР навігації за лічильником шляху (інше середовище виконання, спільна модель → ReferenceImpl), плюс опублікований короткостроковий шум Freier-2016 як односторонній якір; квантово-класична складова залишається MODELLED quantum_nav_od quantum_nav_od::tests (квантовий варіант перевершує класичний за тривалої перерви; перевага залежить від перерви; торгівельне порівняння is_honest); tests/gnss_free_quantum_navigation_reference.rs (зростання положення за лічильником шляху проти незалежного подвійного інтегрування в Octave + опублікований якір шуму Freier-2016)
Виявлення збоїв/аномалій для квантових систем PNT Каталог позначених квантових збоїв (стрибок частоти/дрейф/втрата захоплення годинника; стрибок зсуву/випадіння датчика), ROC AUC статистики виявлення з бутстреп-ДІ та мінімальний виявний збій за фіксованої частоти хибних тривог; монітор за допомогою квантового годинника виявляє менші збої, ніж класичний, поданий як чесний TradeEvidence. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Замкнена гауссова AUC = Phi(mu/(sigma*sqrt2)), перехресно перевірена із зовнішньо перевіреним eval_stats::bootstrap_auc_ci (проти scikit-learn) + аналітичні пороги виявлення quantum_faults quantum_faults::tests (відомі значення аналітичної AUC; емпірична бутстреп-AUC охоплює замкнену форму; квантовий варіант виявляє менші несправності / вищу AUC; перевага зникає для величезних несправностей; каталог із 5 класів; торгівельне порівняння is_honest)
Пасивна геолокація випромінювача за TDOA/FDOA Визначення місця випромінювача (джамера/спуфера або оказійного джерела для зворотного PNT) за різницею часу прибуття в мережі приймачів — перетин гіперболоїдів τᵢ=(Rᵢ−R₀)/c, розв'язаний методом найменших квадратів Гауса–Ньютона — і, додаючи різницю частот прибуття (різниці швидкості зміни дальності) з рухомими приймачами, спільне відновлення положення та швидкості; з нижньою межею Крамера–Рао для коваріації положення з геометрії вимірювань InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Самоузгодженість оцінювача та геометрії: круговий обхід пряма→обернена, тотожність Фішера/CRLB J·CRLB=I, монотонність GDOP і досягнення оцінювачем власної межі Крамера–Рао за шуму Монте-Карло — перевірки внутрішньої узгодженості, НЕ зовнішній набір даних, тож рядок залишається InternalConsistency. Пасивна геолокація MODELLED — модель прямої видимості точкового джерела; без доданків багатопроменевості / NLOS, зміщення годинника приймача чи атмосферної рефракції. 0,30 раунд 2, проти Ho і Chan 1993 та Ho і 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 geolocation::tests (безшумна TDOA пряма→обернена до 1e-6 м; J·CRLB=I із симетричною додатно визначеною коваріацією; слід дисперсії положення CRLB не зростає, коли додається приймач; спільна TDOA+FDOA відновлює положення+швидкість рухомого випромінювача; <4 приймачів відхиляються); tests/geolocation_reference.rs (круговий обхід на чотирьох геометріях із мережею, різноманітною в 3-D; оцінювач Гаусса–Ньютона досягає своєї межі Крамера–Рао — емпірична коваріація похибки відстежує аналітичну межу за 4000 випробувань Монте-Карло); tests/geolocation_crlb_published_oracle.rs (ho_chan_1993_maximum_tdoa; ho_xu_2004_fig7_with_the_authors_corrected_source; ho_xu_2004_bound_matches_the_authors_code; finding_ho_chan_ottawa_printed_values_are_not_the_bound і finding_ho_xu_fig7_printed_source_is_not_the_plotted_one, зафіксовано)
Конвективне нагрівання в точці гальмування при вході (Саттон–Грейвс) для входу в 3 ступенях свободи Конвективний тепловий потік у точці гальмування q = k sqrt(rho/R_n) V^3 зі сталими Саттона–Грейвса для повітря Землі та атмосфери Марса (NASA TR R-376, 1971), його пік і інтегрований тепловий заряд уздовж входу в 3 ступенях свободи, балістичного або з підйомною силою за сталого крену, на Землі чи Марсі. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Внутрішня узгодженість: співвідношення й сталі так, як надруковано в NASA TR R-376, перевірка збіжності за половинним кроком і очікуваний порядок піків нагрівання та гальмування. ЧОГО ТУТ НЕМАЄ: жодне опубліковане значення нагрівання не порівнювалося (статті про Stardust наводять проєктну межу та оцінку конвективного плюс радіаційного нагрівання близько 1200 Вт/см2, якої співвідношення лише для конвекції досягти не може); немає ні радіаційного нагрівання, ні поправки на температуру стінки чи каталітичність, ні відгуку теплового захисту. entry_eo_ascent::entry_heating (stagnation_heat_flux, simulate_entry) entry_eo_ascent::entry_heating::tests::heat_flux_relation_has_the_published_form_and_constants; entry_eo_ascent::entry_heating::tests::lift_lowers_peak_deceleration_and_heat_flux_of_a_shallow_entry; entry_eo_ascent::entry_heating::tests::mars_entry_runs_with_the_mars_constants; tests/entry_stardust_published.rs (записує 746 Вт/см2 для Stardust без порогу)
Радіометрія електрооптичного формувача зображень, MTF, відносний відгук краю та NIIRS за GIQE 4 Бюджет відношення сигнал/шум надирного формувача зображень (ламбертівська яскравість сцени, рівняння камери, дробовий, темновий, зчитувальний шум і шум квантування), системна MTF на Найквісті як добуток дифракції необструктованої апертури, апертури детектора, лінійного змазування та гауссового джитера, відгук краю та відносний відгук краю, проінтегровані з цієї MTF, Q = lambda F / p, і NIIRS за GIQE версії 4 без компенсації MTF. Може запускатися як вид сценарію eo-radiometry. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Замкнені форми: дифракційна 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) entry_eo_ascent::eo_radiometry::tests::diffraction_mtf_has_its_closed_form_values; entry_eo_ascent::eo_radiometry::tests::a_pure_pixel_aperture_has_a_ramp_edge_and_rer_one; entry_eo_ascent::eo_radiometry::tests::a_gaussian_blur_has_the_normal_cdf_edge; entry_eo_ascent::eo_radiometry::tests::snr_budget_scales_as_shot_noise_when_signal_dominates; entry_eo_ascent::eo_radiometry::tests::giqe4_switches_coefficients_at_rer_0_9_and_falls_with_gsd
Втрати запуску на гравітацію, опір, керування та протитиск на виведенні Плоский гравітаційний поворот виведення багатоступеневого апарата над необертовою сферичною Землею крізь стандартну атмосферу США 1976 (густина й тиск), із поштовхом тангажа, тягою, зменшеною протитиском сопла, вигоряннями ступенів на точних межах кроків і втратами на гравітацію, опір, керування та протитиск, проінтегрованими поряд зі станом. Може запускатися як вид сценарію ascent-losses. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Внутрішня узгодженість: точна тотожність швидкість вигоряння = сума Isp g0 ln(m0/mf) мінус чотири інтегровані втрати (залишок нижче 1e-6 м/с), рівняння Ціолковського для вертикального вакуумного горіння, де єдина втрата — гравітація, а також тиски US76 на рівні моря й на тропопаузі. ЧОГО ТУТ НЕМАЄ: втрати жодного опублікованого апарата не порівнювалися; немає ні обертання Землі, ні пасивної ділянки, ні дроселювання, ні наведення, окрім поштовху; стале C_D; це не оптимізатор траєкторії. entry_eo_ascent::ascent (simulate_ascent, AscentScenario); reentry::us76_pressure entry_eo_ascent::ascent::tests::the_loss_identity_holds_to_integration_error; entry_eo_ascent::ascent::tests::vertical_vacuum_burn_has_only_gravity_loss_and_stays_vertical; entry_eo_ascent::ascent::tests::us76_pressure_has_the_standard_values; entry_eo_ascent::ascent::tests::a_larger_kick_lowers_burnout_flight_path_angle
Двостороннє рівняння TWSTFT, бюджет невизначеності та стабільність лінії з фліккером і добовою невзаємністю Двостороннє рівняння TWSTFT, розв'язане для T_A - T_B із затримками передавання та приймання станцій, Ku-діапазонною іоносферною асиметрією вгору/вниз, різницею затримок транспондера та членами Саньяка, проти його точної прямої моделі; квадратурний бюджет невизначеності з TDEV лінії як складником типу A; двосторонній ряд із білим і фліккерним фазовим шумом (Kasdin-Walter), добовою невзаємністю та сталим залишком взаємності; а також швидкість, залишкове СКВ, TDEV і ADEV наданих рядів годинників станцій Circular T, MJD-CSV або IGS RINEX. Може запускатися як вид сценарію time-transfer-budget. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Внутрішня узгодженість: пряма модель і розв'язуване рівняння збігаються до 1e-15 с, член Саньяка дорівнює незалежній петльовій формі 2A omega/c^2 за BIPM у модулі, іоносферний член — 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) twstft_budget::tests (двостороннє рівняння відновлює зсув точно; член Саньяка дорівнює замкненій петльовій формі BIPM; іоносферний член відстежує розщеплення частот, а тропосфера скасовується; фліккерна фаза має плоску TDEV; добовий залишок піднімає TDEV поблизу півдоби; зсув взаємності зсуває offset, а не TDEV; стабільність ряду усуває швидкість); time_transfer_budget::tests
Числові методи оптичної атмосфери на похилому шляху: дисперсія Рітова, сцинтиляція, ймовірність завмирання гамма-гамма, усереднення за апертурою, оптична товща хмар і ясного повітря Cn2 Хуфнагеля–Веллі, проінтегрована вздовж похилого шляху для дисперсії Рітова плоскої та сферичної хвилі (вгору і вниз), індексу сцинтиляції Ендрюса–Філіпса та параметрів гамма-гамма, ймовірності завмирання гамма-гамма й запасу на завмирання, коефіцієнта усереднення за апертурою за слабкої турбулентності, оптичної товщі хмар для стовпа рідкої води та оптичної товщі ясного повітря за видимістю Кіма плюс Релея, що замінює зосереджені атмосферні втрати бюджету оптичної лінії, коли надано атмосферу. Може запускатися всередині виду сценарію optical-atmosphere. ExternalDataset піделемент твердження перевірено зовні, але вся можливість складається з модельних частин, тож можливість залишається модельною — Числові результати порівняно з незалежною програмою (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, тоді як Andrews і Phillips дають 5/6; реалізовано форму 5/6 optical_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) tests/optical_atmosphere_reference.rs (попередньо зареєстровані пороги A1-A3 проти незалежного оракула mpmath: 216 вузлів сітки Рытова, найгірша відносна похибка 3.4e-7 проти порогу 1e-6, сцинтиляція найгірше 4.5e-16, коефіцієнт апертури найгірше 5.7e-16, 96 ймовірностей завмирання гамма-гамма найгірше 1.3e-12 у log10, оптична глибина хмар і чистого повітря найгірше 6.6e-16); tests/optical_atmosphere_no_moved_output.rs (поріг A5: бюджет лінії із зосередженими втратами та наявні виходи доступності майданчиків побітово ідентичні базовому коміту за 1 000 наборів параметрів)
Залежна від погоди доступність оптичної наземної станції та рознесення станцій, корельоване за відстанню Доступність оптичної лінії проти вказаного запасу лінії за логнормального клімату рідкої води в хмарах (кількість за ITU-R P.840, екстинкція в геометричній оптиці) і незалежного завмирання від турбулентності гамма-гамма, запас лінії, потрібний для цільових доступностей, і стеля, яку жоден запас не піднімає, логнормальні тривалості відмов, питання «що якби» щодо технік покращення та однофакторна гауссова мережева доступність із копулою, парна кореляція якої дорівнює exp(-відстань/довжина декореляції). Може запускатися як вид сценарію optical-atmosphere. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Внутрішня узгодженість: замкнені межі й монотонність моделі рознесення, замкнена форма хмарної стелі та тотожності логнормальних відмов. Жодного зовнішнього оракула НЕ заявлено і не порівнювалося: не використано виміряного запису доступності оптичної наземної станції чи безхмарної лінії видимості. ЧОМУ MODELLED: хмарний клімат (ймовірність хмар, медіана й розкид вмісту рідкої води, тривалості відмов), незалежність хмар і турбулентності, гауссова форма копули, довжина декореляції та кожне підсилення методу — припущення; вбудовані сценарії заявляють ILLUSTRATIVE клімати, а не набір даних. Для підвищення цього рядка потрібні цитований виміряний запис доступності та поріг, зареєстрований до порівняння optical_weather; optical_sitediv; optical_techniques; optical_atmosphere_scenario tests/optical_atmosphere_identities.rs (поріг A4: rho = 0 дорівнює незалежному об'єднанню, а rho = 1 — найкращому одиночному майданчику до 1e-12, і нуль порушень монотонності за кількістю майданчиків і за кореляцією; перший прогін цього порогу не досяг його на 3e-9, бо нормальна ФР, що використовувалася, була формою Абрамовіца-Стегуна з 1.5e-7, і цей дефект реалізації замінено ФР неповної гамма-функції без зміни порогу); optical_weather::tests і optical_sitediv::tests (монотонний запас, хмарна стеля як замкнена форма, тотожності тривалості відмов, обернення пошуку запасу)
Безперервність часу та віддалеміровання крізь оптичні відмови Розподіл тривалостей відмов оптичної станції, зв'язаний із замкненою дисперсією інерційного дрейфу моделі holdover годинника: похибка часу та віддалеміровання за вказаними квантилями відмов, holdover до порогу часу, частка відмов і часу відмов у його межах та доступність часу A + U E[min(D, T_h)]/E[D] для класичних і квантових класів годинників. Може запускатися всередині виду сценарію optical-atmosphere. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Внутрішня узгодженість із модулем holdover, біт у біт; жодного зовнішнього оракула НЕ заявлено. Спектральні густини класів — це синтезовані підлоги довгих tau, які модуль holdover уже містить, тож цифри успадковують його заявлене застереження, що holdover до жорсткого порогу визначається припущеною підлогою червоного шуму, а не цитованою девіацією Аллана. Тривалості відмов — логнормальна модель із заявленими параметрами, а не виміряний запис перебування хмар optical_outage_holdover (couple, clock_psds); holdover (coast_phase_sigma, holdover_seconds, phase_to_range_m) tests/optical_atmosphere_identities.rs (поріг A6: похибка часу на кожну відмову дорівнює holdover::coast_phase_sigma, а похибка дальності — phase_to_range_m біт у біт за 9 годинників, 3 середніх тривалостей, 3 розкидів і 4 квантилів); optical_outage_holdover::tests
Запас оптичної лінії в часі: одна зернова реалізація погоди станції Необов'язкова таблиця [timeseries] (тривалість, крок, зерно) змушує вид optical-atmosphere також записувати для кожної станції одну зернову реалізацію вказаної моделі станції в часі: епізоди хмар (ясні проміжки експоненційні, хмарні відмови логнормальні із вказаним середнім і розкидом, частка часу в хмарах задана вказаною ймовірністю хмар), один логнормальний стовп рідкої води на епізод хмар, один відлік сцинтиляції гамма-гамма на крок, а з них — запас лінії, завмирання від хмар і сцинтиляції та прапорець роботи лінії, з реалізованою доступністю, часткою хмар, кількістю відмов і найдовшою відмовою. Без таблиці результатом є документ 0,37. Вибірки проходять переносними шляхами розподілів і математики, тому native і wasm32 дають ті самі байти. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Лише внутрішня узгодженість; жодного зовнішнього оракула НЕ заявлено, і для реалізації погоди його не існує. Перевірки порівнюють одну вибірку зі статистичним виходом тієї самої моделі, тож успішне проходження означає, що генератор вибирає із заявлених розподілів (доступність вибірки та частка хмар лежать у попередньо зареєстрованих допусках від заявлених цифр), а не що будь-який реальний майданчик поводиться так. Ряд — одна реалізація, а не клімат: його доступність відрізняється від заявленої на похибку вибірки, а відліки сцинтиляції на різних кроках незалежні, що є заявленим спрощенням процесу, який декорелюється за мілісекунди. Вхідні дані погоди лишаються припущеннями сценарію. optical_timeseries (site_series, SiteModel, SeriesSpec, Series); optical_atmosphere_scenario (TimeseriesSpec) tests/optical_atmosphere_timeseries.rs (пороги T1-T6 з xval/optical-atmosphere/PREREGISTRATION-timeseries.md, зафіксовані до першого прогону: те саме зерно ті самі байти, а інше зерно інші байти; немає ключа без таблиці; за 8760 год із кроком 600 с, зерна 37 і 38, реалізована доступність кожного з трьох типових майданчиків у межах 6 пунктів від заявленої (найгірше 3,3), а реалізована частка хмар у межах 5 пунктів від заявленої ймовірності (найгірше 2,1); запас дорівнює бюджету мінус два завмирання, а up дорівнює «запас невід'ємний» на кожному кроці; жодного непереносного математичного виклику в модулі; надто довгі прогони й погані кроки відхиляються)
Зчитувач файлів даних орбіти 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, опір). ExternalDataset піделемент твердження перевірено зовні, але вся можливість складається з модельних частин, тож можливість залишається модельною — Мітка 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) tests/mro_odf_reader_label_oracle.rs (реальний ODF MRO, 2007-304/305, проти його мітки PDS: кількість записів, позиції груп, станції, часи початку й кінця та типи даних збігаються; кількість рядків таблиці в кінці файлу розходиться на одиницю, суперечність мітки, зафіксовано як знахідку); odf::tests (круговий обхід вручну складеного запису, епоха 1950); tests/mro_odf_short_arc_od_oracle.rs (залежить від даних, входи закріплено SHA-256, потрібен щомісячний CI з реальними даними: Доплер, передбачений за навігаційною реконструкцією MRO mro_psp5 на оцінюваних проходах DSS 63 і DSS 14, 12,5 мГц СКВ, поріг 30 мГц, виконано; зареєстроване визначення орбіти не дало орбіти, зафіксовано як знахідку; прогін 2 із демпфованим оцінювачем, зареєстрований окремо: орбіта 0,36 км СКВ і 0,53 км максимум проти mro_psp5, виконано, післяпідгонний Доплер 48,6 мГц проти 30 мГц, не виконано, зафіксовано як знахідку; зчитувач SPK type 1 проти CSPICE, 5e-7 м); mars_od::tests
Мультиплікативна оцінка орієнтації EKF за гіроскопом і зоряним датчиком Мультиплікативний EKF Лефферта–Маркі–Шустера: стани похибки орієнтації в системі тіла та зсуву гіроскопа, пропагація зі швидкістю гіроскопа за вирахуванням оцінки зсуву та дискретним шумом процесу Фаренкопфа (випадкове блукання кута й швидкості), оновлення зоряного датчика із залишком 2 vec(q^-1 q_st) у формі Жозефа та мультиплікативне скидання; дискретний симулятор гіроскопа й зоряного датчика Фаренкопфа. Вид aocs може замкнути цикл керування на свою оцінку. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Внутрішня узгодженість: нормалізований квадрат похибки оцінювання фільтра проти істини, змодельованої з тих самих моделей датчиків за зернами Монте-Карло, і збіжність оцінок орієнтації та зміщення. ЧОГО ТУТ НЕМАЄ: жоден зовнішній оцінювач чи льотні дані не порівнювалися (у Basilisk 2.9.1 немає модуля MEKF); моделі датчиків — підручникові, без неспіввісності, масштабного коефіцієнта чи ефектів поля зору зіркового датчика. aocs_mekf (Mekf, GyroSim, attitude_error, spd_solve6); aocs_kind (estimator) aocs_mekf::tests::mekf_is_consistent_over_monte_carlo_seeds (40 зерен, середній NEES із шістьма ступенями свободи за другу половину в межах від 4,5 до 7,5); aocs_mekf::tests::star_tracker_updates_bound_the_attitude_error; aocs_mekf::tests::attitude_error_is_the_body_frame_small_angle; aocs_kind::tests::estimator_loop_runs_and_reports_consistency
Робочий цикл апертури: навігація проти зв'язку Один прогін бере план контактів (список вікон aos_s/los_s, кожне з яких просить апертуру для навігації чи зв'язку — той самий словник вікон, який видає passes::predict_passes, перетворений aperture_duty::windows_from_passes), кількість апертур і явну політику арбітражу, і повертає навігаційний робочий цикл, цикл зв'язку, простійний цикл і простій на сеанс. Політика є вхідним параметром зі задокументованим типовим значенням (navigation-priority; також communications-priority і невитісняльна first-come-first-served), а звіт несе визначену політику, її повне визначення та визначення робочого циклу й простою, бо показник робочого циклу, наведений без правила арбітражу, не відтворюється. Розклад є точним інтервальним проходом по межах вікон, тож вікно, що закінчується точно там, де починається наступне, ніколи не конкурує, а секунди апертури навігації, зв'язку та простою накопичуються незалежно за цей один прохід. Може запускатися як вид сценарію aperture-duty-cycle InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Внутрішня узгодженість за трьома величинами, обчисленими різними виразами в тому самому проході й потім вимаганими зійтися. Апертурні секунди навігації, апертурні секунди зв'язку та апертурні секунди простою накопичуються окремо — простій із (апертури − |обслужено|) на елементарний інтервал, ніколи не як залишок — а їхню суму перевіряють проти апертури × horizon_s, що негайно порушується неправильно обрамленою межею, двічі врахованим інтервалом чи пропущеним; обслужені часи окремих сеансів окремо мають скластися назад у дві суми послуг. Структурні властивості планувальника виміряно, а не припущено: обслужений час перевіряється як неспадний за кількістю апертур на 200 псевдовипадкових планах для всіх трьох політик (не очевидно для невитісняльної політики, де додаткова апертура змінює, хто що утримує на кожній подальшій межі), а арифметика меж зафіксована на парі дотику/перекриття в одну секунду, де похибка на одиницю інакше сховалася б. Міст передбачувача проходів перевірено за виходом passes::predict_passes: з однією апертурою і без конкурентної послуги апертурні секунди навігації дорівнюють власній сумі тривалостей проходів передбачувача. Жодного зовнішнього оракула не заявлено, і його не існує: можливість замінює ручну арифметику, а не перевіряється за нею, вбудований план контактів ілюстративний, а не льотний, і жоден операційний планувальник не публікує пари план-плюс-відповідь із заявленим правилом арбітражу — робота, обчислена за незаявленою політикою, непорівнянна з обчисленою за заявленою, а залежність від політики виміряно (навігаційні робочі цикли 100/150 проти 50/150 на тотожному плані). Час повороту та перемикання, обсяг даних, стан буфера, енергія та замикання лінії виключено в мітці звіту, а не змодельовано мовчки aperture_duty aperture_duty::tests (вікно, що закінчується точно тоді, коли починається наступне, не конкурує, а зсув його на секунду раніше коштує рівно однієї секунди — запобіжник похибки на одиницю; вікна, що перекриваються понад кількість апертур, переводять сеанс нижчого рангу у відмову, із зафіксованим інтервалом конкуренції; політика арбітражу вирішує, яка послуга утримує апертуру, а числа всіх трьох політик зафіксовано на одному плані; «першим прийшов, першим обслужено» не витісняє сеанс, що вже утримує апертуру; сеанс, який програє арбітраж на старті, отримує апертуру, коли вона звільняється; три робочі цикли враховують кожну доступну апертурну секунду для 3 політик × 4 кількостей апертур; додавання апертури ніколи не збільшує відмови жодного сеансу, виміряно на 200 псевдовипадкових планах × 3 політиках × кожній кількості апертур; достатньо апертур для кожного сеансу не залишає жодної відмови; горизонт звіту обрізає план і задає знаменник робочого циклу; передбачений перелік проходів стає планом контактів без другого типу вікна; числа робочого циклу вбудованого плану є виходами рушія для однієї та двох апертур; звіт називає політику, що дала ці числа; кожна повідомлена величина має одиницю й клас походження; сценарій відтворюваний і заявляє себе як MODELLED; сценарій відхиляє план, який не може розкласти); api::tests::aperture_duty_cycle_kind_round_trips_through_the_dispatch
Радіоглушіння навігації на поверхні Місяця (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-jamming ReferenceImpl перевірено за окремою реалізацією в тій самій кодовій базі — незалежною від досліджуваного модуля, але не зовнішньо авторитетною — Перехресна перевірка композиції за незалежним шляхом коду в репозиторії: кожен 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/модельним: вимірюваної місячної кампанії глушіння, за якою можна було б перевіряти, не існує, а орбітальне угруповання — ілюстративна геометрія класу Moonlight/LCNS із публічних джерел, а не льотні ефемериди lunar_jamming (композиція jamming, lunar_service, lunar) lunar_jamming::tests (17 тестів бібліотеки: j_over_s_equals_the_difference_of_two_independent_link_budget_runs; the_report_prints_both_link_budget_legs_so_the_difference_is_checkable_from_it; the_scenario_reports_one_j_over_s_row_per_visible_satellite_and_never_a_median; a_single_median_j_over_s_would_misreport_the_outcome_that_the_table_reports; a_closer_jammer_raises_j_over_s_by_exactly_the_free_space_loss_difference; a_more_distant_satellite_is_the_weaker_signal_so_it_carries_the_higher_j_over_s; j_over_s_is_invariant_to_the_user_antenna_boresight_gain; a_narrowband_jammer_leaves_no_higher_effective_cn0_than_broadband_at_equal_js; a_selenographic_jammer_gets_its_range_from_the_shared_lunar_geometry; a_strong_enough_jammer_takes_every_lunar_link_below_the_tracking_threshold; no_jammer_is_a_clean_sky_lunar_baseline_with_an_undefined_j_over_s; raising_the_elevation_mask_can_only_remove_rows_never_change_the_ones_that_remain; every_emitted_numeric_field_has_a_unit_and_a_provenance_class; the_csv_table_carries_every_row_of_the_json_table; the_run_is_deterministic_and_the_dispatch_surface_is_populated; bad_inputs_are_rejected_rather_than_producing_a_number); api::tests::lunar_jamming_kind_round_trips_through_the_dispatch_with_a_per_satellite_table
Контур відмови на Місяці зі смугою невизначеності від виміряного розкиду 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 із лічильною причиною, а не як нескінченність чи обмежений радіус InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Внутрішня узгодженість із власними прямими функціями рушія — це все, що ця можливість може чесно стверджувати. Кожна точка контуру — замкнене обернення, і кожне обернення перевірено проштовхуванням його відповіді назад через ПРЯМУ функцію, за якою оцінено власні рядки звіту: стовпець 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 відхилено, а разом із ним і підтвердження за зовнішнім еталоном: не існує виміряної місячної кампанії глушіння, з якою можна було б порівняти радіус відмови, орбітальне угруповання — ілюстративна геометрія класу 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; обернення jamming::effective_cn0_dbhz, jamming::j_over_s_db і jamming::free_space_path_loss_db) lunar_jamming::tests (10 тестів бібліотеки: the_contour_is_the_exact_inverse_of_the_functions_the_rows_were_scored_with; the_band_is_the_measured_quantiles_pushed_through_the_contour_not_a_sigma; the_asymmetry_the_band_carries_is_the_samples_own_shape_bent_by_the_criterion; the_contour_is_monotone_in_cn0_measured_over_a_dense_sweep_not_assumed; the_band_recovers_the_split_verdict_the_single_scalar_contour_lost; the_distribution_is_the_tables_own_order_statistics_and_keeps_the_rows; a_link_already_below_the_threshold_gets_a_null_contour_point_not_a_number; a_clean_sky_run_has_no_contour_at_all_rather_than_an_empty_one; the_denial_threshold_is_the_same_thirty_decibels_the_rest_of_the_engine_uses; the_units_block_describes_the_contour_and_names_nothing_the_report_omits)
Потужність виявлення монітора цілісності між модальностями Звіт hybrid-optical-rf вказує, що монітор хі-квадрат між модальностями справді може ВИЯВИТИ, а не лише те, що він проходить безвідмовний випадок: мінімальний виявний зсув на кожну контрольовану вісь (схід, північ, вгору, годинник) за вказаних у сценарії ймовірностей хибної тривоги та пропущеного виявлення, криву потужності виявлення по обидва боки від нього, безшумове кратне зсуву, за якого реалізована статистика вперше перетинає поріг, і час до виявлення для рампи зсуву із вказаною швидкістю. Збої також вносяться крізь справжній монітор, а статистика, яку він повертає, подається поряд з аналітичним прогнозом InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Два внутрішні оракули, жодного зовнішнього набору даних. (1) Замкнений круговий обхід: мінімальне виявне зміщення отримано оберненням хвоста нецентрального хі-квадрата за параметром нецентральності (raim::pbias) і перевірено подаванням отриманої нецентральності назад через raim::noncentral_chi2_cdf за власного порогу монітора, що має повернути P_md. (2) Ін'єкція проти аналізу: зміщення записується в оцінку RF однієї осі, і cross_raim::run_cross_raim запускається знову, тож статистика, яку порівнюють з аналітичною нецентральністю, — це та, що обчислив монітор, а не перевиведення. Монте-Карло самої статистики із зерном міститься в тестах як третя перевірка; його свідомо НЕМАЄ у звіті, бо вибіркова оцінка була б повільнішою й не відтворюваною біт у біт. ExternalDataset відхилено: величина — це потужність виявлення ЦЬОГО монітора за розподілу сигм ЦЬОГО сценарію, а величини сигм, на які масштабується MDB, — модельні репрезентативні вхідні дані, а не вимірювання. ReferenceImpl також розглянуто й відхилено — Монте-Карло вибирає ту саму статистику, яку описує аналіз, тож він виявляє помилки переписування та коефіцієнтів, але не є незалежною реалізацією монітора. 0,30 раунд 2 (попередня реєстрація 0135a9e4), заблоковано (залишається MODELLED): SciPy 1.18.1 chi2/ncx2/brentq відтворюють поріг звіту (у межах 5.4e-12), MDB за осями, криву потужності, кратність перетину та час виявлення наростання (у межах 5.3e-10) на п'яти конфігураціях; статистики ін'єктованих несправностей не мають незалежного оракула, а величини сигм — модельні вхідні дані, тож обмеження обсягу очікує рішення власника hybrid_integrity hybrid_integrity::tests (крива потужності виявлення йде від частоти хибних тривог за нульової несправності до 1 − P_md за мінімального виявного зміщення; мінімальне виявне зміщення, подане назад через noncentral_chi2_cdf за порогу, який застосував сам монітор, повертає P_md до 1e-9 на кожній осі та через публічний допоміжний засіб; зміщення, фактично ін'єктоване в оцінку RF, зсуває власну статистику монітора рівно на обчислене вручну b²/(σ_rf² + σ_opt²); безшумне зміщення виявляється вище √(T/λ*)×MDB і пропускається нижче, а драбина ін'єкцій охоплює цей перетин; потужність виявлення монотонна за величиною несправності й однакова на всіх чотирьох осях у кратних MDB; Монте-Карло статистики монітора з 200,000 відліків із зерном відтворює аналітичну потужність у межах 4σ у чотирьох точках кривої; MDB часу закріплено вище за межу попередження про час, що є виміряною слабкістю, а не властивістю; виміряно, що квантиль Вілсона-Хілферті розходиться з точним порогом монітора приблизно на 4%, що фіксує, чому його не використано; величина наростання дорівнює точно MDB/швидкість і масштабується обернено до швидкості, а недодатна швидкість дає null, а не нуль); tests/hybrid_fault_power_scipy_oracle.rs (report_detection_power_matches_scipy_chi2_and_ncx2; report_detection_power_matches_scipy_with_comparable_sigmas)
Повторне зростання коваріації після передавання щодо порогу тривоги Звіт hybrid-optical-rf розкриває модель шуму процесу фільтра й вказує, як довго розв'язок після передавання лишається в межах порогу тривоги: для обох напрямків передавання він несе коваріацію на кожну вісь, залишену передаванням, пропагує її вперед за вказаного шуму процесу випадкового блукання та повідомляє час, коли масштабований за покриттям 1σ досягає горизонтального, вертикального порогів тривоги та порогу тривоги за часом, який поріг спрацьовує першим, сталу часу подвоєння дисперсії та вибірковий профіль інерційного дрейфу, що охоплює перетин. PSD шуму процесу, коефіцієнт покриття та пороги тривоги є вхідними даними з задокументованими типовими значеннями InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Зовнішнього оракула немає. Перетин є замкненим розв'язком зростання дисперсії випадкового блукання, а тести перераховують його незалежно за значеннями, які публікує сам звіт, а не за внутрішніми даними випромінювача. Початкову коваріацію закріплено біт у біт за слідом, який наявний блок передавання вже повідомляв, тож інерційний хід не може поширювати коваріацію, якої ніхто інший не бачив. Спектральні густини шуму процесу — MODELLED репрезентативні вхідні дані, і часи перетину масштабуються прямо з ними, що тест масштабування формулює як виміряну властивість, а не твердження. ExternalDataset свідомо відхилено: час інерційного ходу є прямою функцією двох модельних спектральних густин і меж попередження, які самі репрезентативні, а виміряного місячного оптично-радіочастотного інерційного ходу при передаванні, з яким можна було б порівняти, не існує. Зовнішній оракул тут потребував би опублікованої кривої зростання коваріації після передавання або точності holdover для порівнянного приймача із заявленою моделлю шуму процесу, перевіреної з допуском hybrid_integrity hybrid_integrity::tests (інерційний хід починається рівно зі сліду коваріації, який повідомляє блок передавання, в обох напрямках, тож програна діагональ не може відхилитися від повідомленого передавання; повідомлений час перетину перераховується з власної сигми передавання звіту, спектральної густини шуму процесу та коефіцієнта покриття, а межа лежить усередині попередження безпосередньо до нього і поза ним безпосередньо після; час інерційного ходу масштабується точно обернено до спектральної густини шуму процесу та скорочується, коли межа попередження звужується; інерційний хід із нульовою спектральною густиною повідомляє null, а не нульовий час, бо ніколи — це не негайно; випущений профіль перетинає рівно один раз і охоплює повідомлений перетин; час подвоєння дисперсії та час перетину межі попередження закріплено окремо, будучи різними на вісім порядків після жорсткого оптичного етапу й у межах одного порядку після м'якого етапу RF; відмова від оптичної модальності дає більше часу інерційного ходу, ніж відмова від RF, рівно на різницю коваріацій, поділену на горизонтальну швидкість зростання; а random_walk_time_to_limit розрізняє вже-поза, перетинає-в-t і ніколи-не-перетинає)
Діаграма антени поза бісектрисою в експорті місячної геометрії Експорт геометрії для кожного супутника несе для кожної (епоха, супутник) кут поза бісектрисою НА СУПУТНИКУ та посилення передавання в бік місця від справжньої діаграми круглої апертури з рівномірним освітленням (Ейрі) і повідомляє кількість у промені за цією діаграмою ПОРЯД із кількістю у промені за симетричним наближенням «посилення-ширина променя» (θ_3dB[град.] = √(31000/G_lin)), з різницею, поданою як явна поправка в лініях, у супутниках на епоху та як найгірша окрема епоха. Обидві неявні ефективності апертури наближення подано (0,641 проти правила 70·λ/D градусів, із яким воно цитується, 0,920 проти рівномірної круглої апертури), щоб ефективність, яку воно мовчки припускає, була вказана, а не виведена. Типово вимкнено: блок з'являється лише коли задано і місце експорту, і апертуру InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Змішано, і розділено, а не об'єднано. ДІАГРАМА під цим зовнішньо перевірена за зовнішнім еталоном і зберігає власний рядок (фікстура 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 antenna::tests і lunar_service::tests (перетин половинної потужності, знайдений бісекцією за діаграмою, збігається з опублікованим Ейрі x = 1,61634 і дає точну ширину 1,02899·λ/D, фіксуючи, що загальноприйнятий коефіцієнт 1,02 припадає на −2,955 дБ, а не −3,010 дБ; діаграма строго спадає на 400 точках від осі до першого нуля; алгебра передбаченої ефективності проходить круговий обхід до 1e-12 і відтворює 0,641 / 0,920; кут відносно осі збігається з tan θ = R·sin γ/(r − R·cos γ) у 20 точках і в обох межах до 1e-12; наближений конус містить реальний промінь рядок за рядком; підсумкові лічби дорівнюють прапорцям на рядок, які вони підсумовують, а поправка дорівнює їхній різниці; кожен вердикт рядка можна перерахувати лише зі звіту, що випускається; кожне числове й булеве поле, що випускається, має одиницю та клас походження; неможлива апертура не випускає блоку; без налаштованої антени експорт зберігає рівно свої шість наявних ключів, 0 листків змінено і 0 видалено); tests/validate_lunar_export_offboresight_spice.rs (flown_orbiter_export_matches_spice_geometry_and_scipy_pattern; documented_working_point_matches_anise_propagation_and_scipy_pattern)
Втрата захоплення петлею відстеження та затягування спуфінгу під завадами Втрата захоплення, обчислена з динаміки петель замість відношення потужностей: тепловий джитер 1σ несівної (Костас) і коду (некогерентний рано/пізно) проти C/N₀ із втратою на квадратування, проти вказаних правил 3σ_PLL + θ_e ≤ 45° і 3σ_DLL + відставання рампи ≤ d/2 чипа; пороги C/N₀ втрати та повторного захоплення з названою визначальною петлею та гістерезисом, ВИВЕДЕНИМ із ширшої смуги затягування, а не заявленим; заявлений час до втрати захоплення від детектора захоплення з двома порогами та підтверджувальними витримками, поданий окремо від фізичного часу виходу фази (середній час Вітербі між прослизаннями циклів, у log₁₀ с, бо охоплює сотні декад); найбільше зрушення коду та швидкість Доплера несівної, які можуть відстежувати петлі жертви; і РАДІУС ВІДМОВИ, що випливає з динаміки петель, поданий поряд з наявним радіусом відношення потужностей з їхньою знаковою різницею як власним названим полем. Може запускатися як вид сценарію tracking-loop ReferenceImpl перевірено за окремою реалізацією в тій самій кодовій базі — незалежною від досліджуваного модуля, але не зовнішньо авторитетною — Власний корелятор sdr рушія (sdr::correlate / synth_if / CaCode), прокручений на синтетичній ПЧ із зерном за калібрувального C/N₀, — окремий шлях коду, що приходить до тих самих чисел числовою кореляцією дискретизованих IQ, а не алгебраїчним виразом джитера, тож це інший шлях, а не переформулювання, — плюс стандартні табличні значення модифікованої функції Бесселя I₀ для члена прослизання циклів. Теорія контурів за Kaplan & Hegarty розд. 8 і Viterbi/Gardner для часу прослизання. Рядок залишається ReferenceImpl/MODELLED: перехресна перевірка міститься в тій самій кодовій базі, а перевірка bessel_i0 перевіряє одну спеціальну функцію, а не модель супроводу, тож підвищення рядка на цій підставі було б самообслуговувальним маркуванням. ExternalDataset потребував би записаного набору даних сирої ПЧ з істинним C/N₀ та анотованим моментом втрати захоплення (клас TEXBAT/OAKBAT); жоден не постачається в цьому дереві, і навіть з IQ ці набори не публікують істини стану контуру на епоху, тож заявлений час втрати захоплення можна було б перевірити лише за детектором захоплення іншого приймача, що є модельним вибором, а не оракулом. Смуги контурів, час інтегрування, інтервал корелятора, коефіцієнт втягування, часи перебування, потужність глушника та підсилення антен — репрезентативні діапазонні цифри, а не технічний паспорт. 0,30 раунд 2, GNSS-SDR 0.0.19 (GPL-3.0, запущений як програма) на незалежно згенерованій ПЧ (попередня реєстрація 6ef7698c, зміни методу вимірювання розкрито), знахідка (залишається MODELLED): джитер замкненого ФАПЧ і DLL збігається в межах 8 % за 35–45 дБ-Гц, динамічне навантаження 10 Гц/с у межах 1 %, а відставання кодової розгортки першого порядку в межах 2 %; за 30 дБ-Гц джитер ФАПЧ на 21 % вищий, а джитер DLL на 32 % нижчий, виміряні пороги за правилом 15 градусів лежать на 1,5 дБ вище за рушій, а контур другого порядку прослизає на 0,5–2 декади частіше, ніж межа часу прослизання першого порядку. 0,30 перегляд: час прослизання Costas тепер використовує SNR контуру rho/4 (півциклові прослизання); типова jitter_table log10_mean_time_to_cycle_slip_s падає з 11,58 до 2,10 за порогу 25,47 дБ-Гц tracking_loop (композиція sdr, jamming) tracking_loop::tests (джитер дискримінатора Costas у розімкненому контурі проти sdr::correlate, прокрученого на синтетичній ПЧ із зерном, 3 об'єднані реалізації шуму × 900 епох, збіжність до 0,63% у 35-45 дБ-Гц, причому член втрат на піднесення до квадрата має підходити щонайменше у 3× краще, ніж форма без втрат на піднесення до квадрата, де це можна розрізнити; насичення атан-дискримінатора поблизу 32 дБ-Гц стверджується, а не лише заявляється, тож межу чинності закріплено; замкнена σ проти прокрученого контуру Costas sdr за 4000 епох до 3,7%; відставання розгортки DLL першого порядку проти прокрученого DLL sdr до 0,17%; bessel_i0 проти табличних I₀ до 7.4e-8; ширина гістерезису має потрапляти в [5·log₁₀ r, 10·log₁₀ r] для 4 відношень × 2 часів інтегрування × 3 смуг); api::tests::tracking_loop_kind_round_trips_through_the_dispatch; tests/tracking_loop_gnss_sdr_oracle.rs::finding_is_pinned
Коваріація координат точки місячної поверхні за розкладом затримок VLBI, окремо від коваріації земної станції Третій вибір датуму, all-stations-fixed, що тримає кожну земну станцію й оцінює лише зв'язані з Місяцем координати МАЯКА — конфігурація, для якої насправді наводиться невизначеність точки місячної поверхні, бо координати земних станцій є входом моделі затримки, а не її невідомою. Вона існує тому, що коваріація рівня станції та коваріація точки поверхні є РІЗНИМИ ВЕЛИЧИНАМИ, розділеними плечем важеля ρ/B, і досі ніщо не заважало цитувати одну проти іншої. Видаваний блок beacon_link несе ρ, найдовшу базову лінію, плече важеля, форму рівнорозподілу для точки поверхні c·σ_τ·(ρ/B)·√(g/N), обчислену сигму маяка на координату та їхнє відношення — відношення null, а не оманливе, коли маяк не оцінюється або матриця дефіцитна за рангом. B береться як НАЙДОВША наявна базова лінія, найсприятливіша, тож відношення може лише занижувати. Може запускатися як datum = "all-stations-fixed" з estimate_beacon = true, що відхиляється з повідомленням, яке називає відсутній вхід, коли маяк не оцінюється ReferenceImpl перевірено за окремою реалізацією в тій самій кодовій базі — незалежною від досліджуваного модуля, але не зовнішньо авторитетною — Замкнені тотожності, без заявленого чи наявного зовнішнього оракула. Важіль перевірено проти ρ/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) перевірена за зовнішнім еталоном у власному рядку «…, kernel path»; на цьому аналітичному шляху найменша сигма маяка на 3,9 % нижча за оракул SPICE того рядка, тому цей рядок залишається MODELLED lunar_vlbi_fim (композиція lunar_vlbi, fim, cio, lunar_frame, frames) lunar_vlbi_fim::tests (7 тестів бібліотеки: кожне написання датума проходить круговий обхід через parse/as_str, а невідоме відхиляється; утримання кожної станції без маяка відхиляється з помилкою, що називає estimate_beacon; важіль стверджується РІВНИМ ρ/B, а рівнорозподіл маяка РІВНИМ рівнорозподілу станції, помноженому на нього, обидва до 1e-15, з додатковим твердженням, що важіль перевищує 10, тож два бюджети не можна сплутати на цій геометрії; опубліковану базову лінію фікстури закріплено на 10726,748 км, а її розклад із 49 відліків має давати строго менше за 49 взаємно видимих спостережень; виміряно, що спектр маяка на одній базовій лінії охоплює щонайменше п'ять декад, а отримане відношення стверджується вищим за 1 за AM-HM і вищим за 100 фактично; розкладка станції плюс маяка стверджується дефіцитною за рангом з ОБОМА обчисленими полями null, тоді як модельний компаранд усе ще повідомляється. Плюс запобіжник на самій фікстурі: ключ верхнього рівня, вставлений після масиву таблиць, натомість стає даними станції, тож точку вставки стверджено, а розібраний сценарій перевірено на наявність ключа — режим відмови — це прогін, що мовчки використовує іншу конфігурацію, ніж названа в тесті)
Місячний диференціальний PNT — бюджет залишку лінії корекції Три члени, які диференціальна корекція набирає між епохою, в яку її обчислено, та епохою, в яку її використано, кожен раніше залишений як немоделюваний запас: похибка зйомки опорної станції (корельована між супутниками, незалежна від базової лінії, перенесення положення ~1:1 і доведено не підсилюється DOP), старіння корекції (заморожений вектор похибки орбіти, повторно спроєктований на лінію візування, на яку власний пропагатор рушія ставить супутник на одну затримку пізніше, плюс дрейф годинника c·σ_y(τ)·τ за калібрувальним степеневим законом) і рівномірне квантування лінії за точної повної шкали ±(orbit_err + clock_err) з дисперсією step²/12. Подано і в областях дальності, і положення, поряд із наявними залишком і рівнем захисту — ніколи замість них — із кривою затримки поряд з одиничним показником InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Замкнені тотожності та самоузгодженість: дисперсія рівномірного квантувальника 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 lunar_dpnt::tests (суто адитивний запобіжник, чия різниця набору ключів — рівно {correction_link, units}, а кожне наявне значення ідентичне біт у біт літералам, знятим до зміни; похибка обстеження НЕ декорелюється з базовою лінією, тоді як орбітальний член декорелюється, і переживає нульову базову лінію, де орбітальний член точно нульовий — структурна перевірка, що ловить підключення члена не туди; похибка станції 1 м переноситься 1:1 і доведено, що не підсилюється DOP; нульова затримка відтворює незістарений залишок біт у біт, а залишок монотонний за затримкою, причому крива, що випускається, дорівнює прямим прогонам; крок квантування зменшується вдвічі точно на біт і σ² = step²/12, а повна шкала відстежує ін'єктовані величини; кожен член, вимкнений по черзі, відновлює два інших у квадратурі; рівна σ на супутник поширюється точно в σ·PDOP, і цей PDOP збігається з orbit::dop; кожне поле, що випускається, має одиницю й клас походження, перевірено в обох напрямках)
Карта покриття та точності місячної опорної станції Свіп Монте-Карло моделі місячного диференціального PNT над південнополярною сіткою користувачів і добою епох (вид lunar-station-coverage): для диференціальної опорної станції на відомому південнополярному місці, для кожної точки та по області, процентильна виправлена й невиправлена похибка положення (3-D, горизонтальна, вертикальна), доступність із причиною для кожної недоступної епохи (user_lt4, station_missing_sat), покриття проти порогу, вказаного до прогону, рівні захисту DO-229E, радіус покриття на азимутальний сектор і бюджет лінії корекції на станції та в найгіршій точці. Не є твердженням про характеристики жодної реальної системи; не афілійовано з жодним агентством і не схвалено ним InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Арифметика, перерахована незалежним скриптом 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 (над lunar_dpnt, lunar_service) tests/lunar_station_coverage_reference.rs (one_point_one_epoch_one_trial_reduces_to_lunar_differential_pnt: до 1e-12 м із шумом приймача та без нього; zero_baseline_floor_is_zero_in_every_trial: 0 до 1e-9 м; survey_floor_matches_the_survey_transfer_prediction: p95 у смузі 5 %, заявленій до прогону; coverage_is_non_decreasing_in_the_threshold; corrected_error_grows_with_distance_along_an_azimuth; three_satellites_are_unavailable_with_a_reason_and_no_error; a_satellite_the_station_does_not_see_is_reported; deterministic_for_a_seed_and_moved_by_another; the_work_guard_refuses_an_oversized_grid; the_bundled_scenario_states_a_source_for_every_input; the_result_is_labelled_modelled_with_the_honesty_statement); tests/lunar_station_numpy_oracle.rs (попередньо зареєстроване перерахування numpy, записане разом із його промахом); lunar_service::tests::south_polar_ring_grid_is_the_published_comparison_grid; tests/lunar_differential_pnt_reference.rs, а також реєстр і міжплатформні еталонні результати (golden) без змін (адитивність); tests/field_units_global.rs (кожне випущене поле описано, без винятків)
Місячні маски горизонту рельєфу за вказаним профілем або полярною 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). За відсутності кожне місце зберігає пласку маску, а кожен документ побайтово ідентичний InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Замкнені поверхні (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 (над skyline, lunar_service::topocentric_basis); lunar_station; lunar_service (coverage_masked, masked_visible) lunar_terrain::tests (bare_sphere_horizon_is_the_dip: простежування променя відтворює -acos(R / (R + a)) до 1e-3 град на кожному азимуті; a_cone_on_a_lat_lon_tile_matches_the_analytic_cone: той самий конус, вибраний на плитку широти/довготи 0,005 град, збігається з аналітичним конусом до 0,25 град; a_lat_lon_tile_is_none_outside_and_wraps_longitude; crater_in_plateau_matches_the_closed_form: кратер із плоским дном на сфері, спостерігач у центрі та на 4 км і 7 км від нього, проти замкненої висоти краю atan2((R + H) cos s - (R + a), (R + H) sin s), де s — зі сферичного рівняння перетину краю, до 0,01 град на кожному азимуті; rasterised_cone_matches_the_analytic_cone: конус, растеризований на полярну стереографічну сітку 200 м і прочитаний через вибірник сітки, збігається з аналітичним конусом до 0,25 град; projection_round_trips_through_the_rasteriser_layout; bilinear_reproduces_a_plane_exactly; stated_horizon_goes_through_the_skyline_rules; an_empty_skyline_is_exactly_the_flat_test); tests/lunar_station_terrain.rs (without_terrain_the_document_has_no_terrain_keys; a_zero_horizon_under_a_positive_mask_is_the_flat_run, для обох видів; a_horizon_only_removes_satellites_and_a_wall_removes_everything: user_lt4 зберігає свою плоску кількість, а епохи, яких коштує горизонт, є terrain_masked (сама доступність може зрости, бо горизонт може приховати супутник, якого станція не бачить), а горизонт 89 град на станції не лишає нічого доступного; bad_terrain_sections_are_refused; the_vendored_crop_loads_and_is_oriented_as_the_source: дна кратерів Шеклтон і Гаворт низькі, масив Малаперт високий, дзеркальне зображення — ні; the_station_site_horizon_from_the_crop; service_volume_dem_points_outside_the_crop_keep_the_flat_mask; a_lat_lon_dem_tile_gives_the_station_the_crop_horizon: плитка, передискретизована з вбудованої вирізки, дає станції горизонт вирізки до 0,22 град (межа 0,5 град, зафіксована до прогону), з відлунням плитки та одиницями, а dem_path разом із dem_tile_path відхиляється; the_export_site_is_masked_by_the_terrain: кожен рядок експорту проходить над рельєфом рівно тоді, коли він видимий і не нижче за горизонт місця на його азимуті, геометрія не зсувається, CSV отримує стовпець лише з рельєфом; the_horizon_matches_the_preregistered_numpy_ray_cast); tests/prediction_frozen.rs, а також реєстр і міжплатформні еталонні результати (golden) без змін (адитивність)
Багатопроменевість місячної опорної станції та члени апаратури приймача Необов'язкова секція [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))); міжканальні зсуви для кожного каналу, сталі за випробування, на користувачі та на станції. Члени станції входять у її корекції, члени користувача — у сирі та виправлені вимірювання, кожен на власному зерновому потоці. За відсутності кожен документ не змінюється InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Замкнені форми та статистика власних вибірок моделі (InternalConsistency): формула DLL проти ручного обчислення, форма DO-229, різниця двох приймачів за нульової базової лінії, кореляція Гауса-Маркова за лагом 1. Жодного місячного вимірювання багатопроменевості чи приймача, з яким можна було б порівняти, не існує; значення ILLUSTRATIVE, і ніщо тут не є твердженням про жоден реальний приймач lunar_receiver; lunar_station lunar_receiver::tests (multipath_is_the_do229_form; dll_noise_matches_a_hand_computation: 0,825279 м за 45 дБ-Гц, 0,5 Гц, d = 1, 20 мс; bad_sections_are_refused); tests/lunar_station_ext.rs (receiver_absent_or_silent_is_the_plain_run; zero_baseline_multipath_is_the_difference_of_two_receivers: вибіркова сигма sqrt(2) a у межах 6 %; station_multipath_is_gauss_markov: кореляція за лагом 1 exp(-dt / tau) у межах 0,01, одинична дисперсія у межах 2 %; inter_channel_biases_are_constant_over_a_trial); tests/prediction_frozen.rs і еталонні результати (golden) без змін (адитивність)
Зростання похибки ефемерид місячної опорної станції за затримку корекції Необов'язковий вхід 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) InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Замкнена сигма члена зростання та перевірка поширення першого порядку (InternalConsistency). Доповнення K5 (tests/fixtures/lunar_station_published/ADDENDUM-LRS03.md, попередньо зареєстровано окремо в 59d88248): K5 не виконується за кожної швидкості, скоригований p95 3-D 369,8 м, 2315 м і 22797 м проти порогу 1,5 м (292,96 м записано без зростання), як заявлено до прогону. Жодне публічне джерело не дає швидкості місячного зростання: ILLUSTRATIVE lunar_station (orbit_growth_range_sigma_m) tests/lunar_station_ext.rs (growth_absent_or_zero_is_the_frozen_error_run; the_growth_term_has_the_closed_form_sigma: різниця похибки лінії із зростанням і без нього має вибіркову сигму rate tau / sqrt(3) у межах 6 % за 1600 вибірок; linear_growth_is_the_first_order_propagated_error: похибка швидкості dv, поширена вбудованим інтегратором двох тіл від орбіти сценарію, зсуває положення на dv tau у межах 1 % за 60 с і 600 с); tests/lunar_station_published_oracle.rs::k5_growth_addendum_run (ігнорується, записане доповнення)
Режими розв'язку місячної опорної станції: обмеження за висотою, три супутники, вікно для нерухомого користувача Необов'язковий розділ [solution] у lunar-station-coverage (LRS-06): рядок псевдовимірювання висоти up . dx = e_h із заданою 1-сигмою, що зважується разом із рядками дальностей; мінімум у три супутники дозволено лише з ним; зважений розв'язок методом найменших квадратів за останні window_epochs епох зі спільним нерухомим положенням і одним годинником на епоху (відповідь фільтра для нерухомого положення без шуму процесу на тих самих даних; похибки епох вважаються незалежними). Якщо розділ відсутній, розв'язок за знімком і кожен документ лишаються без змін. Доповнення до порівняння з опублікованими твердженнями за стилем розв'язку джерел, попередньо зареєстроване окремо InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Редукція знімка та замкнені випадки розв'язувача (InternalConsistency). Доповнення (tests/fixtures/lunar_station_published/ADDENDUM-LRS06.md, попередньо зареєстровано окремо в 001ca100) із обмеженням висоти 1 м, трьома супутниками та вікном із 6 епох (налаштування ILLUSTRATIVE; джерела вказують фільтр, обмеження висоти та три супутники, але не їхні налаштування): K1–K5 не виконуються, а K6 виконується, 1 із 6 як у записаному прогоні; скоригована похибка p95 3-D для R300 падає з 280,6 м до 2,11 м (горизонтальна 0,90 м, не оцінюється), а покриття лишається 0. Припущення про незалежність вікна грає йому на користь. Не є твердженням про жодну реальну систему lunar_solution; lunar_station (solution_figures) lunar_solution::tests (one_epoch_without_height_is_the_snapshot_solve: дорівнює lunar_dpnt::position_error_vector_from_range_errors до 1e-8 м, нещільний рядок висоти нічого не змінює, щільний фіксує похибку висоти; three_satellites_need_the_height_row; a_window_shares_the_position; bad_sections_are_refused); tests/lunar_station_ext.rs (the_default_solution_mode_is_the_snapshot_solve: кожна величина до 1e-6 відносно; height_aiding_and_a_window_do_what_they_say); tests/lunar_station_published_oracle.rs::solution_style_addendum_run (ігнорується, записане доповнення)
Точність і покриття місячної опорної станції порівняно з опублікованими твердженнями Сценарій lunar-station-coverage, виконаний за публічними припущеннями з опублікованих матеріалів про місячну диференціальну опорну станцію (чотири навігаційні супутники на 24-годинних заморожених еліптичних орбітах, SISE 10 м при 95 %, шум коду 0,30 м, затримка поправок 1 с і 600 с, субдециметрова зйомка станції, опублікована ділянка-приклад станції, кола навколо південного полюса радіусом 300 км і 600 км), і оцінений за числовими твердженнями джерел за шістьма односторонніми порогами, попередньо зареєстрованими до прогону: покриття всього південного полюса з субметровим p95 (K1, K2), субметровий і дециметровий скоригований p95 (K3, K4), субметровий рівень при затримці 600 с (K5) і збереження точності від бази 10 км до 500 км (K6) ExternalDataset піделемент твердження перевірено зовні, але вся можливість складається з модельних частин, тож можливість залишається модельною — Еталон: числові твердження п'яти публічних джерел, зареєстрованих з 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 3-D — 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 (над lunar_dpnt, lunar_service) tests/lunar_station_published_oracle.rs::recorded_finding_one_of_six_bars_passes (записані величини проти зареєстрованих порогів); tests/lunar_station_published_oracle.rs::published_claims_comparison_run (ігнорується, близько 7 с у release: перезапускає шість зареєстрованих випадків і стверджує записані величини)
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, відхиляються, а не обрізаються InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Внутрішня узгодженість (InternalConsistency): редукція порядку 2 до шляху ADD v4.2, перевіреного за MAAST, незалежне перевиведення апріорних ймовірностей і сконструйована несправність двох супутників. Жодного прогону MAAST чи RTKLIB далі пар не виконано, тож глибші набори гіпотез і рівні захисту subset RAIM зовнішньо не перевірено. araim_subset_raim ділить спрощення araim_dual_raim (одна сигма для цілісності та точності, один годинник, простий нормальний хвіст): він НЕ відповідає ADD araim_reference (add_v42_subset_plan, add_v42_protection_levels_to_order); raim (araim_subset_raim, SubsetRule) tests/raim_multi_sv_subsets.rs (deeper_orders_change_nothing_when_pairs_suffice; triples_are_refused_at_order_two_and_planned_deeper: N_fault,max >= 3, немоніторений ризик у межах P_THRES, підмножина, що вилучає три або більше супутників, моніторується, а понад десять моніторених апріорних ймовірностей перевиведено незалежно як P_no fault q^k до 1e-12; a_two_satellite_fault_is_found_as_a_pair: без тривоги за відсутності несправності, а зміщення 30 м на двох супутниках виявляється з парою як підмножиною найбільшого нормалізованого розділення); tests/araim_reference_vectors.rs і tests/integrity_araim_stanford_oracle.rs без змін (шлях порядку 2 — той, що перевірено за MAAST)
RAIM поряд із показниками якості holdover годинника Необов'язковий розділ [integrity] сценарію clock (clock_integrity::run): із заданої ділянки та пресетів орбітальних угруповань (geometry::sky_geometry), на кожній епосі цілісності, поки часова шкала GNSS не заперечена, знімковий RAIM (raim::snapshot_raim: тест хі-квадрат за парністю, нахилові рівні захисту) на супутниках над маскою із заданими гауссовими залишками з заданою сигмою та необов'язковим заданим зміщенням; окремий блок integrity_fom із вердиктами за епохами, рівнями захисту та доступністю. Заперечені епохи повідомляються як недоступні, ніколи не екстраполюються; показники якості holdover не змінюються, а без розділу вивід побайтово ідентичний InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Внутрішня узгодженість (InternalConsistency): рівні захисту — це рівні snapshot_raim, який перевірено за RTKLIB у його власному рядку, перераховані на тій самій геометрії; поведінка без несправностей і з ін'єктованою несправністю. Небо — репрезентативна геометрія з пресета (не датований альманах), залишки синтетичні, а сигма, межі попередження та ймовірності — заявлені вхідні дані; ніщо тут не є твердженням про доступність реального приймача clock_integrity (run, sky_at, IntegrityCfg); scenario (Scenario::integrity); report (RunResult::integrity_fom); api (диспетчеризація годинника) tests/clock_integrity.rs (the_block_is_separate_and_absent_by_default: величини holdover без змін, 111 епох відмови недоступні без рівня захисту, відхилено за runs > 1; protection_levels_are_the_snapshot_raims_on_the_same_sky: HPL і VPL кожної вибраної епохи точно дорівнюють snapshot_raim із нульовим залишком на тому самому пресетному небі, а прогін без несправності не піднімає тривоги; a_stated_bias_is_detected_while_it_lasts: зміщення 60 м викликає тривогу рівно на 10 епохах, які воно охоплює; every_integrity_field_has_a_unit); clock_integrity::tests; еталонні результати (golden) годинника без змін
Просторова, зашумлена, багатосімейна спостережуваність цисмісячної дуги за довжиною Поріг спостережуваності за довжиною цисмісячної дуги в ПРОСТОРОВІЙ шестистановій CR3BP, а не в плоскій чотиристановій, для сімей DRO, гало L2 та майже прямолінійного гало L2, із шумом вимірювань у граміані та ДВОМА критеріями, що повідомляються, бо єдиного чесного немає: опублікований критерій рангу, який доведено інваріантним до гомоскедастичної сигми вимірювань (відбілювання множить матрицю спостережуваності на скаляр, не змінюючи відносного спектра сингулярних значень, а отже ранг, дефект і число обумовленості), і критерій оцінюваності — перша дуга, на якій формальна 1σ невизначеність положення початкового стану головного апарата падає нижче заданої межі, — який якраз і рухається з шумом. Кожен поріг несе брекет сітки епох, у якому він лежить; недосяжний критерій має значення null із причиною. Плоский режим лишається типовим, а сім'ї поза площиною там відхиляються, а не сплющуються до стану, що не може їх подати InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Незалежний ранг за рядково-східчастою формою методом Гаусса з частковим вибором головного елемента підтверджує кожен вердикт рангу шестистанового вектора — інший алгоритм, що не ділить коду з маршрутом eigen/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 год для L2 NRHO і 40,42 год для L2 гало, а для сімейства планарних DRO, на якому виведено опубліковане твердження, НЕ ІСНУЄ — ранг 4 із 6 із дефектом датума 2 і двома точно нульовими власними значеннями, структурним дефектом, якого не усуває жодна довжина дуги cislunar_observability, observability_gramian, intersat_range, cislunar_srif cislunar_observability::tests і observability_gramian::tests (типовий документ зафіксовано біт у біт за FNV-1a його JSON, підсумку та SVG, причому явні типові значення стверджуються як нульова дія, а вісім ключів розширення стверджуються ВІДСУТНІМИ, щоб захоплення не можна було перегенерувати в самопорівняння; адитивний блок units виключено із заморожування тим, що його вилучають і повторно хешують проти сталої, зафіксованої до його появи, що доводить, а не припускає, що ніщо випущене не зрушило; інваріантність рангу за гомоскедастичної сигми стверджується за σ = 0, 0,1, 1, 10, 100 м; σ_pos, як стверджується, масштабується точно лінійно з σ до 1e-6 відносно; нуль-простір DRO стверджується точно як осі координат z і ż із розділенням двох причин — рядок дальності між компланарними апаратами має û_z = 0, а позаплощинний блок CR3BP точно розв'язується за z = 0; просторові якобіани проти центральних скінченних різниць і проти незалежної 3-D спостережуваної швидкості зміни дальності крейта; позаплощинні сімейства відхиляються в планарному режимі)
Похибка прогнозу орієнтації Землі в операційному стилі, виміряна як прогноз проти остаточних значень Підгонка методом найменших квадратів зміщення плюс швидкості на замикальному вікні плюс основні періодичні члени — річний, піврічний і два головні зональні припливи для UT1; Чандлера, річний і піврічний для полюса — екстрапольована з перенесенням останнього залишку у вікні вперед: клас, який використовує IERS Bulletin A, замість предиктора персистентності, на якому трималися опубліковані горизонти. Оцінено єдиним чесним способом: прогноз на T+h, побудований за швидкими рядками Bulletin A на момент T або раніше, виміряний проти ПІЗНІШЕ опублікованого остаточного значення Bulletin B на T+h, з персистентністю, оціненою на тому самому наборі епох проти тих самих остаточних значень поряд. Цільова епоха без опублікованого остаточного значення відкидається, а не переоцінюється проти швидкого стовпця; періодичний член, який вікно не може обмежити, повідомляється як відхилений із циклами, які воно насправді охоплює; неповне вікно відхиляється, а не тихо скорочується ReferenceImpl перевірено за окремою реалізацією в тій самій кодовій базі — незалежною від досліджуваного модуля, але не зовнішньо авторитетною — Три незалежні маршрути, жоден із яких не є опублікованою цифрою точності прогнозу. (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 frame_eop::tests, realtime_frame_eop::tests і tests/operational_eop_predictor_reference.rs (відновлення коефіцієнтів аналітичного сигналу до 1e-9 за 365-добового вікна; підгонка зміщення плюс швидкість дорівнює замкненому нахилу та перетину звичайних найменших квадратів до 1e-12 на реальних рядках; ДВА детектори заглядання вперед, що руйнують швидкі стовпці UT1 і полюса кожного рядка після епохи випуску — залишаючи фінальні дані Bulletin B неушкодженими — і вимагають побітово ідентичного виходу, підтверджено мутацією, що перетворює 10 тестів на червоні, коли бар'єр підгонки послаблюється рівно на одну добу; незалежно перебудований перелік епох; блок Bulletin B цілі викреслено, і показано, що епоха залишає таблицю; допуск членів перевірено за 6, 15, 150 і 365-добових вікон; монотонні кількості рядків; а заморожене захоплення типового звіту до зміни стверджується поле за полем без допуску, що додатково стверджує, що захоплення не містить нових ключів, тож його не можна непомітно перегенерувати в самопорівняння); tests/operational_eop_predictor_bulletin_a_oracle.rs::predictor_mae_against_bulletin_a_and_the_pcc_range_finding; tests/operational_eop_ls_ar_bulletin_a_oracle.rs::ls_ar_predictor_against_bulletin_a_finding; tests/eop_prediction_beyond_table.rs (розширення EopSeries::with_ls_ar_prediction за останнім рядком: відповіді в таблиці побітово ідентичні, прогнозні рядки дорівнюють ls_ar_predict, аргументи системи відліку за таблицею йдуть за прогнозом замість обрізання; внутрішня узгодженість)
Місячний датум системи відліку з кампанії спостережень Семипараметровий датум Гельмерта, поширений із СИМУЛЬОВАНОЇ КАМПАНІЇ СПОСТЕРЕЖЕНЬ, а не відновлений із введеного перетворення. Земні станції спостерігають за джерельним каталогом місячних поверхневих маяків за явним розкладом; частинні похідні затримки місячного VLBI накопичуються в інформаційну матрицю Фішера координат маяків і проводяться крізь дизайн Гельмерта A = [I₃ | [p]ₓ | p] у H = AᵀM_bA, тож повідомлена точність датума є функцією програми спостережень — точно лінійною за сигмою затримки та монотонною за дугою через лібрацію, яку звіт ВИМІРЮЄ. Дефект датума є предметом, а не виноскою: ранг, дефект, число обумовленості, спектр, ненаглядні напрямки в семипараметровому базисі, найслабший напрямок навіть за повного рангу та частка кожного параметра в ньому випускаються за кожного прогону, а будь-який параметр, який кампанія не обмежує, публікується як NULL зі статусом. Кореляція похибок маяків MEASURED, а не припускається — точно нуль за нерухомих станцій і виводиться з її ціною, коли станції оцінюються. Можна запустити як тип сценарію lunar-frame-campaign ReferenceImpl перевірено за окремою реалізацією в тій самій кодовій базі — незалежною від досліджуваного модуля, але не зовнішньо авторитетною — Замкнені тотожності та незалежний репозиторний маршрут, без заявленого зовнішнього оракула. Конструкцію Гельмерта — єдину нову похідну в модулі — перевиведено центральною скінченною різницею 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.md lunar_frame_campaign (composing lunar_vlbi, lunar_vlbi_fim, fim, lunar, lunar_frame_realise, frames, cio, lunar_frame) lunar_frame_campaign::tests (21 бібліотечний тест: проєкт Гельмерта порівняно із центральною скінченною різницею lunar_frame_realise::apply_helmert — модуля, для якого призначено датум, який не обчислює жодної похідної й тому фіксує угоду про знак [p]ₓ — усі 84 записи проєкту збігаються з точністю до < 1e-6; чисте зміщення мережі зчитується як чисте зміщення з витоком < 1e-6 в інші шість параметрів; сигма датума точно лінійна щодо сигми затримки з точністю 1e-8 за 3-кратної зміни для всіх семи параметрів; дуга 16 год виміряна гіршою, а дуга 48 год виміряна кращою за 24 год, причому виведений перебір лібрації впорядковано так само; найгіршу вісь зміщення стверджено як ДОМІНАНТНУ вісь окремо виміряного тілозакріпленого напрямку на Землю, і гіршу за інші більш ніж у 5 раза, — фізичний оракул, про який у розв'язувачі нічого не відомо; три колінеарні маяки дають дефект із усіма сигмами датума NULL, а нульові напрямки виведено в семипараметровому базисі; offblock_fraction і міжмаякова кореляція точно 0,0 за фіксованих станцій і обидві > 0 за оцінюваних; цифри ін'єктованого перетворення в блоці порівняння показано рівними незалежному прогону цього сценарію з точністю 1e-14 відносно, а не переписаними; захист від появи в документі будь-якого ін'єктованого чи відновленого датума; емісію lunar-frame-realisation зафіксовано побайтово за FNV-1a-64 над json‖summary‖svg для трьох форм входу, відбиток знято до початку роботи); tests/lunar_vlbi_campaign_spice_oracle.rs::lunar_frame_campaign_finding_stations_estimated_p2_precision (з обмеженням; суворий lunar_frame_campaign_matches_spice_geometry_and_numpy залишається проігнорованим); tests/lunar_frame_campaign_mpmath_oracle.rs::lunar_frame_campaign_datum_matches_mpmath_extended_precision (висновок; рішення засновника 2026-10-02, варіант A: цей рядок залишається MODELLED і не запозичує статусу окремого рядка; відносно 50-значного оракула mpmath, попередньо зареєстрованого як 804662d5, сигми датума рушія з оцінюваними станціями лежать у межах своєї апріорної межі зворотної похибки, відхиляючись на 9.7e-6 на 2024-01-01, а поріг 1e-9 був нижчим за те, чого досягає будь-який шлях у подвійній точності, найкращий, проєкція QR у NumPy, відхиляється на 5.5e-9; докази підтримують окремий рядок «Коваріація датума місячної системи відліку з оцінюваними станціями, відносно розширеної 50-значної точності»); tests/lunar_frame_campaign_pinv_fallback.rs::finding_step0_fresh_beacon_information_falls_back (зафіксовано); tests/lunar_frame_campaign_cond_bar_oracle.rs::finding_p2_condition_scaled_bar_not_met_on_the_estimated_scenarios (зафіксовано)
Незалежне підтвердження порогу довжини цисмісячної дуги іншим оцінювачем Пакетний оцінювач методом найменших квадратів, що ВІДНОВЛЮЄ початковий стан головного апарата за симульованими міжсупутниковими вимірюваннями на зростаючих префіксах тієї самої сітки епох, яку використовує таблиця «ранг проти дуги», із частинними похідними вимірювань, узятими як центральні скінченні різниці складеної прямої моделі. Він не споживає нічого з механізму, яким вимірювали поріг, — ні аналітичного рядка якобіана, ні варіаційної матриці переходу стану, ні сингулярного чи власного розкладу, ні допуску рангу, ні фільтра квадратного кореня інформації — і поділяє лише динаміку, початкові умови, скалярну спостережувану та сітку епох, кожну з яких названо у випущеному документі. Два критерії, обидва перебираються: безшумне відновлення (аналог рангу) і оцінюваність за Монте-Карло (аналог оцінюваності, виміряний проти відомої істини, а не передбачений за коваріацією). Можна запустити як тип сценарію cislunar-arc-recovery ReferenceImpl перевірено за окремою реалізацією в цій самій кодовій базі — незалежною від досліджуваного модуля, але не зовнішньо авторитетною — Окремий оцінювач у цій кодовій базі на іншому алгоритмі та з неперетинним кодовим шляхом: нелінійний зважений метод Гаусса–Ньютона зі скінченно-різницевими частинними похідними, чий вердикт зчитується як виміряна похибка відновлення стану в км і мм/с. Він не має спільних виразів із шляхом рангу й коваріації за матрицею Грама, а розділення ЗАБЕЗПЕЧУЄТЬСЯ захистом на рівні тексту джерела, а не просто проголошується. MEASURED на опублікованій планарній сітці DRO: критерій ОЦІНЮВАНОСТІ — CORROBORATED: виміряна межа Монте-Карло становить 5,739130 год проти формальної 5,739130 год (відношення 1,0000), а виміряне СКВ відтворює формальне 1σ на 21 довжині дуги із середньогеометричним відношенням 0,9804. Критерій РАНГУ НЕ підтверджено як межу відновлюваності: оцінювач відновлює з 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 год, halo 22,978723 год проти 39,829787 год, причому оцінюваність у обох випадках збігається точно. Шестистанова планарна DRO не відновлюється на жодній дузі, незалежно відтворюючи структурний дефект датума цього сімейства оцінювачем, якому про нього нічого не повідомляли. НЕ має зовнішнього якоря — динаміка й початкові умови спільні з аналізом, що перевіряється, і жоден публічний набір даних не публікує такого порогу — тому ExternalDataset відхилено cislunar_arc_recovery, batch_ls cislunar_arc_recovery::tests і tests/cislunar_arc_recovery_reference.rs (обидві межі та їхні відношення зафіксовано на опублікованій сітці; виміряну криву похибки порівняно з формальною коваріацією рядок за рядком із побічною межею в коефіцієнт два на рядок і межею за середнім геометричним; НЕГАТИВНИЙ КОНТРОЛЬ — шестистанова планарна DRO — стверджує, що критерій МОЖЕ не виконатися і що нерегуляризований оцінювач розбігається понад 1e6 км, а не повертає правдоподібну малу похибку; інваріантність параметризації стверджено на кожному префіксі з точністю 1e-3 відносно; захист на рівні тексту джерела, який видаляє коментарі, рядкові літерали та тестовий модуль, а потім завершується помилкою за будь-якої згадки якобіана, STM, рангу SVD чи механізму SRIF, перевірений мутацією через ін'єкцію забороненого виклику; перевірка лише для тестів, що скінченні різниці дорівнюють аналітичним рядкам, тож лінеаризація відома як правильна, тоді як аналітичний шлях в оцінювачі лишається відсутнім; детермінованість стверджено побайтово; випущений документ cislunar-observability зафіксовано за набором ключів, канонічним відбитком і підсумковим рядком)
Місячний обсяг обслуговування за реальною отриманою геометрією орбітального угруповання Приймає табличну селеноцентричну ефемериду станів (обчислення ядра SPK/BSP) або опубліковане визначення орбітального угруповання за ephemeris_path, виконує щодо неї ту саму розгортку покриття / DOP / рівня захисту та випускає вимогу до дальномірної точності σ_URE, яку з цього випливає, ПОРЯД зі змінними ілюстративними кеплеровими та збуреними результатами, а різницю подає як окрему іменовану величину. Кожен показник несе клас походження, що розрізняє виведене з ядра, виведене з опублікованих елементів і змодельоване, тож їх ніколи не можна сплутати в подальшому цитуванні InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — ГЕОМЕТРІЯ зовнішня і хешована: три еталонні набори, чиї числа походять лише з документів, отриманих із зазначенням 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 м), але нестачу було завищено у вісім разів. 5-супутникова демонстрація LANS дає НУЛЬ вибірок рівня захисту — п'ять супутників не можуть дати шість у видимості, потрібних набору гіпотез однієї несправності, — і поле вимоги ВІДСУТНЄ, а не сфабриковане; так само для чотирьох справжніх апаратів за покриття 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 lunar_ephemeris::tests (розбір формату та системи відліку; інтерполяція Лагранжа точна у вузлах і на лінійній траєкторії поза вузлом; елементи ICRF проходять редукцію IAU 2015 і побайтово дорівнюють явному застосуванню icrf_to_iau_moon; перетворення справжньої та середньої аномалії туди й назад проти прямого розв'язку Кеплера; пошкоджені файли відхиляються з указанням причини). lunar_service::tests (за незаданого ephemeris_path набір ключів звіту та його SHA-256 зафіксовано; кеплерівський рядок дорівнює окремому кеплерівському прогону поле за полем; тотожність σ_required · HPL_max / σ_URE = AL, потім ЗКВОЗНИЙ повторний прогін за обчисленою вимогою, що досягає 100 % доступності рівня захисту, і повторний прогін на 1 % вище, що її не досягає; кожне виведене числове поле обох нових блоків пройдено з отриманого JSON для одиниці та класу походження; зафіксовані еталонні набори зіставлено з їхніми вихідними таблицями супутник за супутником; горизонт за кінцем таблиці відхиляється); tests/lunar_service_requirement_orekit_oracle.rs::lncss_b_dense_finding_is_unchanged; tests/lunar_service_volume_orekit_oracle.rs::service_volume_matches_orekit_on_identical_ephemeris_and_grid
Одиниця й походження оголошені для кожної величини у звіті Машиночитна схема, що задає одиницю, клас походження та визначення для кожного числового поля кожного звіту сценарію, плюс єдина глобальна перевірка, яка запускає кожен зареєстрований тип сценарію й завершується помилкою, якщо випущене числове поле не має чогось із цього. Словник походження закритий, і кожен клас несе рівень доказів, причому два класи навмисно зіставлено з inherits-scenario-label і depends-on-input, а не наділено рівнем, якого клас не визначає InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Сам виведений документ: кожен числовий листок має зіставлятися із записом у власному блоці 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, а одиницю кожної позиції зчитано з власної таблиці units ПЕРЕБРАНОГО пакета в key_units і metric_units (або взято із задекларованої unit осі, яка має збігатися з одиницею пакета, коли існують обидві; null, коли немає жодної, — сказано прямо, а не вгадано). Попереднім був cislunar-observability, який зійшов зі списку, коли його випущений документ отримав блок units: прив'язка адитивності, яка називала units забороненим ключем, тепер ДОВОДИТЬ, що додавання адитивне — приберіть блок назад, і документ усе одно хешується у дві сталі, заморожені до його появи, тож випущене значення, яке змістилося під додаванням, усе одно не пройде. Робота також виявила дванадцять дефектів одиниць чи документації в наявному коді, про які повідомлено, а не виправлено за R1 field_schema tests/field_units_global.rs (усі 61 зареєстровані види запускаються, по одній формі документа на кожен: кожен числовий листок має зіставлятися із записом у власному блоці units цього документа; пошкоджений запис вважається відсутнім для КОЖНОГО виду, звільненого чи ні, тож заповнювач не купує покриття; список винятків не може перевищувати зафіксованої стелі, перелічений вид, що виявляється повністю покритим, ПРОВАЛЮЄ перевірку, щоб список не можна було нарощувати, а зареєстрований вид, відсутній у таблиці виконавця, провалює її, щоб новий пакет не прослизнув неперевіреним — що й сталося, спіймавши обидва види, додані після початку цієї роботи; односторонній храповик на відставанні описаного, але не визначеного; і перевірка актуальності зафіксованого документа схеми); field_schema::tests
Геодезія місячної опорної станції: доданий ретрорефлектор і маяк VLBI проти датума з п'яти масивів Необов'язкові входи extra_reflectors і extra_beacons сценарію lunar-llr-datum додають блок station_geodesy: інформація Гельмерта п'яти масивів із архівного зрізу місячної лазерної локації плюс інформація, яку додають до семипараметрового датума доданий ретрорефлектор (локований на архівних епохах нормальних точок, коли станція локації над своїм горизонтом, кожна з архівною вагою тієї нормальної точки) і доданий маяк VLBI (спостережуваний мережею та розкладом lunar-frame-campaign з нерухомими земними станціями через частинні похідні затримки lunar-vlbi-fim) у заданих місцях; після повторного розв'язання повідомляються 1-сигма кожного параметра Гельмерта до і після, їхнє відношення, норми до і після та крайні власні значення різниці Фішера. Якщо вхід відсутній або порожній, звіт не змінюється InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Лише внутрішня узгодженість: кожен доданий пункт є окремою точкою, а лазерна дальність чи затримка VLBI фіксованої станції стосується однієї точки, тож її інформація A_p^T M_p A_p додатно напівозначена й додається; тест перевіряє різницю Фішера та кожну дисперсію за цим. Результат п'яти масивів — це наявний рядок на реальних даних, і він не змінений. Доданий рефлектор повторно використовує епохи, заплановані для п'яти наявних масивів, ILLUSTRATIVE розклад, а мережа, розклад і сигма затримки доданого маяка є ILLUSTRATIVE входами кампанії місячної системи відліку; пункт є ILLUSTRATIVE південнополярною позицією. Південнополярний пункт бачить Землю низько над горизонтом або зовсім не бачить, що виражають наявні тести кутів огляду; жоден пункт не дальнометрується безперервно. Цифри є межами Крамера–Рао для скороченого набору параметрів, а не розв'язаним датумом і не твердженням про будь-яку реальну станцію lunar_llr (over lunar_frame_campaign::beacon_information, schedule_for and solve_datum_information, lunar_vlbi_fim) tests/lunar_station_geodesy.rs (empty_or_absent_extra_lists_are_bit_identical: порожні списки та базовий приклад дають типові звіт і підсумок побайтово; an_added_site_never_increases_any_variance: найменше власне значення H_after - H_before невід'ємне з точністю 1e-9 від найбільшого, кожне відношення сигм після/до не перевищує одиниці, і обидва додані пункти спостерігаються; the_rest_of_the_report_is_the_five_array_result; every_station_geodesy_field_has_a_unit; a_beacon_list_inside_the_campaign_block_is_refused); scenarios/lunar-station-geodesy-baseline.toml і scenarios/lunar-station-geodesy-with-station.toml (той самий архівований розклад і той самий блок кампанії VLBI)
Цілісність перевірки — зелений результат, що означає те, що каже Три структурні запобіжники над самим процесом верифікації, кожен закриває клас дефектів, який потрапляв до канонічної перевірки як нестабільний або хибний червоний результат. (1) Кожен сконструйований тимчасовий шлях у вихідному коді Rust має містити унікальну для виклику складову; ідентифікатор процесу відхиляється, бо cargo запускає тести бібліотеки як паралельні потоки ОДНОГО процесу, і pid спільний для всіх. (2) Кожне побайтове закріплення чи закріплення за хешем має заявляти поруч із собою або в заголовку свого модуля, що воно охоплює і що навмисно виключає, — щоб наскрізна зміна могла з першого погляду визначити, які закріплення в межах області, а які непомітно стали детекторами змін на весь репозиторій. (3) Зелений результат можна заявляти лише за ПОВНИМ набором: scripts/gate.sh запускає cargo test --all, фіксує справжній код завершення без жодного конвеєра на шляху й записує квитанцію з комітом, кількістю інтеграційних бінарників, кількістю тестів і тривалістю; перевірка перед надсиланням відмовляє в надсиланні, якщо коміт не названо жодною чинною квитанцією, на чистому дереві. Відтворюваність вибірково перевіряє окремо scripts/check-repeatability.sh, який запускає набір бібліотеки N разів і завершується помилкою, якщо множина пройдених тестів відрізняється. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Замкнена форма: кожен захист запускається над фіксованим відомо поганим фрагментом, який має спрацювати, і фіксованим відомо добрим, який має мовчати, обидва — літеральні сталі, на які детектор не може вплинути. Два відомо погані фрагменти — це дефекти F22 і F25 у їхній первісній формі. Це ВНУТРІШНІЙ оракул, і рядок відповідно MODELLED: він доводить, що захисти відрізняють дефект від його виправлення, а не те, що класи, які вони описують, вичерпні. Їхні заявлені сліпі зони — спільний стан, що не є шляхом, фіксація, утримувана в короткій іменованій сталій, рідкісна гонка, яку три прогони не вибірково охоплюють, і квитанція, яку може підробити будь-хто, хто може записувати файл, — виписано в документації модуля tests/source_guards.rs і в заголовку кожного скрипта, а не залишено на відкриття. scripts/gate.sh, scripts/check-gate-receipt.sh, scripts/check-repeatability.sh, scripts/install-gate-hook.sh tests/source_guards.rs (9 тестів: обидва захисти над усім деревом джерел, плюс мутаційні еталонні набори, що оцінюють кожен захист в обидва боки — шаблон F22, повідомлений на обох колізійних шляхах, прийнято поставлене атомарне послідовне виправлення, півисправлення повідомлено рівно на шляху, що втратив свій унікальний компонент, прийнято дескриптор тимчасового файлу та успадковану унікальну теку, відхилено настінний годинник; повідомлено про незадекларовану фіксацію, прийнято задекларовану, відхилено область без виключення, прийнято декларацію в докоментарі охоплювального тесту й показано, що вона не просочується в наступний тест; і кожне написання фіксації — hex, десяткове, рядок дайджесту, довжина в байтах, іменована кількість байтів, еталонний файл — розпізнається, тоді як сталі алгоритмів, зерна ГВЧ і малі перевірки кардинальності — ні)
Складений PL часу — проходження holdover із початком від P0 PL(τ)=max(TPL_handover,HPL(τ)); нижньонапівнеперервний PL(0+)≥PL(0−); K(IR/2) рухомий максимум; показники фази τ/τ³/τ⁵ InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Тести властивостей (монотонність, відсутність падіння під час передавання) + лінт показників проти holdover::coast_phase_variance src/integrity/composed_pl.rs integrity::composed_pl::tests (monotone, P0-floor, K(IR/2), exponents, lower-semicontinuity)
Складений PL часу — обвідна LIL м.н. (неможливість + узгодженість) Скінченного найгіршого holdover немає (броунівський супремум розходиться); HPL із розподілом за IR узгоджений з обвідною Гартмана–Вінтнера при IR→0 InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Тотожність замкненої майже напевно обвідної √(2Dt·lnln t) + перевірка домінування HPL; шов неможливості Baweja arXiv:2606,24210 src/integrity/lil_envelope.rs integrity::lil_envelope::tests (divergence, threshold, IR-tightening dominance)
Завищення межі зміщення простежуваності різнорідних UTC(k) для цілісності Завищення межі зміщення для кожного джерела b = (U/k_cov)·Phi^-1(1-tail/2) + старіння, що роздуває опубліковану розширену невизначеність типу B до виділеного хвоста цілісності; пов'язується з tpl_scalar як bias_s InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Незалежне відтворення замкненої форми верхньої межі на numpy і stdlib-statistics (InternalConsistency). Ряд BIPM Circular-T [UTC-UTC(USNO)] є ЛИШЕ ЦИТОВАНИМ входом — це ТОЙ САМИЙ ряд, який уже перевірено за незалежним зовнішнім еталоном для рядка покриття holdover R4, і його тут НЕ перевіряють повторно; відтворення його значень нічого не доводить щодо R2. Глибокий хвіст цілісності обчислено за моделлю. Зовнішнє порівняння 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), навчена на даних BIPM Circular T за 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 integrity::hetero_budget::tests + tests/hetero_budget_reference.rs; tests/hetero_budget_utc_k_oracle.rs::overbound_exceedance_on_real_utc_k_finding (з обмеженням даними: пропускається з повідомленням, коли ряд BIPM відсутній); tests/hetero_budget_utc_k_realised_overbound_oracle.rs::realised_offset_overbound_finding; tests/utck_bound_prospective_oracle.rs (D9 раунд 3, проспективний, ще не запущений: Circular T 465 з'явився 2026-10-12, а попередньо зареєстроване правило 1000 значень потребує випусків до приблизно 468)
Корельована перехресна коваріація зміщення простежуваності (розподіл, небезпечний за спільного режиму) Перехресна коваріація зміщень N×N з позадіагональними rho·b_i·b_j для джерел, що ділять реалізатор UTC(k); ДОВЕДЕНО correlated_fused_bias >= independent_fused_bias (наївний незалежний розподіл занижує межу злитого зміщення -> оптимістично -> небезпечно) InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Незалежне відтворення на numpy перехресної коваріації та нерівності зміщення злитого результату для корельованих і незалежних джерел (InternalConsistency). Репрезентативний набір джерел; сценарій обчислено за моделлю. src/integrity/hetero_budget.rs integrity::hetero_budget::tests (correlated_fused_bias_dominates_independent_when_correlated, rho_one_single_realizer_recovers_linear_sum) + tests/hetero_budget_reference.rs
Статистика узгодженості за спільного режиму (несправність спільного еталона, сліпа для розділення) Статистика рахунку (1^T Omega^-1 r)^2/(1^T Omega^-1 1) ~ chi^2_1 для зсуву за спільного режиму, якого розділення розв'язків (контрасти, ортогональні до 1) не бачить; зсув за спільного режиму її збільшує, тоді як попарні розділення лишаються плоскими InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Незалежне відтворення статистики на numpy + тест властивості, що введення спільної моди її підвищує (InternalConsistency). Сценарій обчислено за моделлю. Раунд 0,30 2 (попередньо зареєстровано f9aa360d), заблоковано (залишається MODELLED): LAPACK gesv з numpy 2.3.5 відтворює значення статистики на 261 зафіксованому випадку (у межах 3.5e-15 за добре обумовлених і 1.2e-9 за обумовленості до 6.1e7); нульовий закон хі-квадрат(1) є цитованою теоремою, а пласкі попарні розділення — тотожністю без виходу рушія для порівняння, тож визначення обсягу чекає на рішення власника src/integrity/gls_commonmode.rs integrity::gls_commonmode::tests (common_mode_shift_inflates_statistic_but_not_contrasts, post_fit_common_mode_statistic_is_zero) + tests/gls_reference.rs; tests/gls_common_mode_statistic_numpy_oracle.rs::common_mode_statistic_matches_numpy_lapack
Класифікація нуль-простору місячного датума (адитивність рангу LLR + підняття дефекту лібрацією) Класифікація задачі датума внутрішньої локації: одне спостереження дальності дає ранг 1 (6-вимірний нуль-простір); пара початок за X і масштаб майже нульова, а фізична лібрація DE440 піднімає дефект до нуля, тоді як пара лишається майже виродженою InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Відтворена рушієм геометрична структура плюс замкнена тотожність 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 tests/lunar_datum_identifiability_reference.rs (single_internal_range_row_has_six_dim_datum_null_space; extending_the_librating_arc_lifts_the_origin_scale_degeneracy); tests/lunar_datum_sosnica_oracle.rs::origin_scale_correlation_and_crlb_disagree_with_the_published_geometry
Мультитехнічна інформація про місячний датум (LLR + місячний VLBI + дальність орбітального апарата) Рядки якобіана датума для дальності LLR Земля–рефлектор, диференціальної затримки місячного VLBI на дві станції та дальності орбітальний апарат–маяк за 7-параметровим датумом, зведені в один узгоджено передобумовлений Фішер; демонструє, що позарадіальне (орбітальне / з різноманітністю за глибиною) стеження розриває виродженість початок за X – масштаб, тоді як поперечний VLBI допомагає лише опосередковано InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Аналітично-скінченно-різницеві перехресні перевірки частинних похідних кожної методики (внутрішні); НАПРЯМОК покращення є геометричним фактом. Розташування маяків, розклади та шум — MODELLED / репрезентативні (див. tests/fixtures/llr_geometry/NOTICE.md). lunar_datum, lunar_identifiability lunar_datum::tests (LLR/VLBI/orbiter analytic partials vs finite difference); lunar_identifiability::tests (adding_an_offradial_technique_collapses_the_origin_scale_degeneracy; transverse-vs-radial via crlb_diag)
Геометричний субстрат датума місячної LLR (рефлектори в головних осях, наземні станції, аналітичні частинні похідні дальності) П'ять ретрорефлекторних масивів на привернутому боці в метрах системи тіла PA та наземні станції LLR у геодезичних координатах; розміщення рефлекторів від системи тіла до інерційної через орієнтацію PA DE440; аналітичні частинні похідні дальності Земля–рефлектор за 4-параметровим датумом; і матриця Фішера лише за LLR, що виявляє виродженість лунацентр-X – масштаб, яка спонукає до 7-параметрового аналізу ExternalDataset підпункт перевірено зовні, але вся можливість складається з частин, обчислених за моделлю, тож можливість залишається обчисленою за моделлю — Обчислення перевірено внутрішньо: кожну аналітичну частинну похідну проти скінченної різниці, а випадок нульового датума проти номінальної дальності. КАТАЛОГ перевірено зовнішньо та незалежно — координати головних осей 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 (СКВ 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 lunar_llr_geometry::tests (reflector_and_station_catalogs_are_well_formed, analytic_partials_match_finite_difference, llr_one_way_range_is_earth_moon_scale, zero_datum_reproduces_nominal_range, llr_only_fisher_shows_strong_com_x_scale_degeneracy); tests/lunar_pa_frame_realisation_guard.rs; tests/llr_datum_degeneracy_reference.rs; tests/lunar_llr_geometry_range_oracle.rs::reflector_ranges_against_ilrs_normal_points
Виродженість між дальністю та зміщенням годинника в однонаправленій місячній локації та закон дизайну за геометричної різноманітності Виродженість радіальної дальності вузла та зміщення годинника приймача точна: 1 м відповідає 3,336 нс (одна c-а). Маргінал за доповненням Шура {масштаб, зміщення} (coupled_marginal_fisher) показує, що в геометрично різноманітній мережі двостороння локація піднімає маргінал приблизно в стільки ж разів, як і рівна кількість додаткових однонаправлених даних, тоді як в ідеалізованому режимі єдиного вузла двосторонній підйом більший на порядки. Закон дизайну, що з цього випливає: саме геометрична різноманітність, а не двостороння локація як така, відокремлює масштаб місячної системи відліку від зміщення шкали часу в однонаправленій локації; двосторонній або зовнішній часовий зв'язок потрібен лише в режимі низької різноманітності чи єдиного користувача. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Маргінальна інформація Фішера за доповненням Шура зв'язаної інформаційної матриці, засобами лінійної алгебри в замкненій формі, перевірена за двома граничними режимами, які вона передбачає. Еквівалентність 1 м до 3,336 нс є означенням метра через c і не є емпіричним результатом. Мережі спостережень — це репрезентативна геометрія, обчислена за моделлю, тож закон проєктування є твердженням про геометрію, подану йому на вхід, і не містить жодного твердження про будь-яку діючу місячну мережу. lunar_gauge lunar_gauge::tests (coupled_marginal_well_posed_network_is_psd, coupled_marginal_twoway_equals_more_oneway_in_diverse_network, coupled_marginal_twoway_lift_three_orders, oneway_range_row_has_correct_temporal_entries, twoway_range_row_has_zero_at_offset_and_rate, time_tie_row_equals_pure_offset_vector, rate_tie_row_has_correct_structure)
Репрезентативне меню мультитехнічних вимірювань і адитивне правило комбінування Фішера MeasurementBlock містить одну кандидатну вимірювальну кампанію як внесок інформації Фішера 7x7 плюс скалярну відносну вартість; block_from_rows будує її з сирих рядків якобіана датума, тож кожен блок передобумовлюється однаково через lunar_identifiability::assemble_multi_info; combine підсумовує інформацію обраної підмножини, що є правильним правилом, бо інформація Фішера адитивна для незалежних вимірювань; representative_lunar_menu надає детерміноване меню з чотирьох блоків (LLR, поперечний маяк VLBI на лімбі, орбітальний апарат на привернутому боці та орбітальний апарат на зворотному боці). Оптимізатор дизайну з обмеженням бюджету, що споживає це меню, не є частиною цього крейта. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Адитивність інформації Фішера для незалежних вимірювань є властивістю замкненої форми, яку тут перевірено за незалежно написаною поелементною сумою та за інваріантністю щодо порядку й монотонністю, що з неї випливають. ПРИМІТКА ЩОДО ДОКАЗІВ: для комбінатора раніше не було жодного тесту, а єдиний тест у модулі підсумовував дві інформаційні матриці безпосередньо, а не викликав його, тож зламаний комбінатор залишив би модуль «зеленим»; тепер тест проходить через combine і не проходить, коли його мутують. Усі розташування маяків, геометрія орбітальних апаратів, точності за методиками та відносні вартості — це репрезентативні вибори, а не значення місій (див. tests/fixtures/llr_geometry/NOTICE.md), тож кожна метрика виродженості та кожна цифра CRLB, одержана через це меню, успадковує статус «обчислено за моделлю» від lunar_identifiability::decompose. lunar_techniques lunar_techniques::tests (combine_is_additive_order_independent_and_empty_is_zero - порожній вибір дає нульову матрицю, одиничний вибір є тотожністю, пара дорівнює незалежно написаній поелементній сумі, а результат інваріантний щодо порядку вибору; adding_a_block_never_reduces_the_degeneracy_metric - монотонність за доданої інформації; radial_diversity_beats_transverse_for_breaking_the_degeneracy - блок орбітального апарата на зворотному боці підвищує метрику виродженості більше, ніж поперечний блок VLBI)
Допуск міждоставникової узгодженості для користувача зі змішаними доставниками consistency_tolerance: обертає бюджет положення користувача до вимоги міждоставникової узгодженості Гельмерта за параметрами (початок/масштаб/обертання) на опорному плечі важеля, за потреби роздутої CRLB реалізації одного доставника P1 InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Межа найгіршого випадку за нерівністю трикутника для дії точкового якобіана Гельмерта (замкнена форма) lunar_interop_budget lunar_interop_budget::tests (монотонність за бюджетом; зменшення бюджету RSS за CRLB для кожного постачальника; опрацьований допуск обертання на місячному плечі важеля; визначальний член = обертання)
Бюджет похибок міждоставникової місячної сумісності та закон дизайну «система відліку проти ефемериди» interop_budget: розподіл на зведену (спільна прив'язка системи відліку) та незведену (динаміка) частини за конвенціями PerProvider / CommonFrameTie / CommonEphemeris, з метрикою закону дизайну частки незведеного (~0,69 на реальних DE440/INPOP/EPM: спільна позначка системи відліку сама лишає домінантну підлогу) InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Агрегування СКВ перевірених за незалежним зовнішнім еталоном розбиттів по парах за кожною конвенцією (замкнена форма) lunar_interop_budget lunar_interop_budget::tests (CommonEphemeris обнуляє бюджет; CommonFrameTie < PerProvider; irreducible_fraction > 0,5 на реальних розбиттях; порядок конвенцій)
Межа виявлення/ідентифікації візантійської блок-іскри в автономній міжвузловій місячній мережі (T3) byzantine_bound інстанціює межу кодування безпечного оцінювання стану / розрідженої спостережуваності на геометрії мережі окремих вузлів: візантійський пір вводить довільну лінійну комбінацію вимірювань, у яких бере участь, і мережа ВИЯВЛЯЄ будь-яку коаліцію з ≤ f = block_spark − 1 пірів та однозначно ІДЕНТИФІКУЄ будь-яку коаліцію з ≤ ⌊(block_spark − 1)/2⌋, де block_spark — найменша коаліція пірів, чиї складені ефективні сигнатури P⊥·B_T мають дефіцит рангу за стовпцями. Виявлюваність піра — це ПОВНИЙ РАНГ ЗА СТОВПЦЯМИ P⊥·B_j (ненульова, але з дефіцитом рангу блок-атака — це ненульова атака, що потрапляє в range(G) і не лишає залишку), а не просто P⊥·B_j ≠ 0 InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Геометрична інстанціація поблочної межі spark / безпечного оцінювання стану (Fawzi–Tabuada–Diggavi 2014; Shoukry–Tabuada 2016; поблочний spark Donoho–Elad 2003; Candès–Tao 2005) — НЕ порогу консенсусу Lamport–Shostak–Pease 3f+1 («Візантійський» називає лише МОДЕЛЬ довільних / змовних несправностей). Конкретна кількість допустимих несправностей є властивістю репрезентативної геометрії мережі, обчисленою за моделлю, і перевіряється на самоузгодженість вручну побудованими аналітичними випадками та формулами підрахунку lunar_faultobs lunar_faultobs::tests — byzantine_c3_rank_deficient_but_nonzero_is_undetectable (ненульовий, але з дефіцитом рангу блок ⇒ block_spark 1, f_detect 0; незалежні стовпці ⇒ block_spark 2, f_detect 1), byzantine_real_network_uniform_bias_is_clock_offset (пір, що володіє всіма вимірюваннями вузла = похибка зміщення годинника ∈ range(G), невиявлювана, із чіткою спектральною щілиною Грама), byzantine_redundant_net_identifies_at_least_one (шість незалежних одновимірних пірів ⇒ block_spark 7, f_identify 3), byzantine_analytic_spark_identity_projector + byzantine_detect_identify_relations (ручні випадки P⊥ = I фіксують f_detect = block_spark − 1, f_identify = ⌊(block_spark − 1)/2⌋)
Часова калібрувальна підлога автономного 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), що доводить: підлога є справжньою калібрувальною неоднозначністю, а не артефактом моделі генератора InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Аргумент про вільний параметр ансамблевого часу (Percival 1978; Lewandowski & Thomas 1991), інстанційований на репрезентативній мережі по вузлах із реальними DE440: нульовий тест відносної нев'язки аналітичного генератора спільної швидкості щодо GᵀWG, де контраст із розв'язаною нічиєю відрізняє справжню калібрувальну свободу від артефакту моделі генератора. Репрезентативна геометрія, обчислена за моделлю, а не сертифікований бюджет синхронізації часу lunar_faultobs lunar_faultobs::tests — holdover_floor_self_ref_and_anchored (самопосилальна мережа: спільна швидкість лежить у N(GᵀWG), temporal_gauge_dim 2; після одного зовнішнього рядка прив'язки швидкості: швидкість вилучено з калібрувальної свободи, temporal_gauge_dim 1, спільне зміщення зберігається)
Спільний/диференціальний розподіл за доставниками, уніфікація одного дефіциту рангу та нахил розриву захисту (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) (оцінювач псується за нульової парності) і скінченний для виявлюваної несправності InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Алгебра проєктора парності / псевдообернення в замкненій формі на репрезентативній мережі по вузлах із реальними DE440: розбиття на спільне/диференціальне, об'єднання N(G) ⊕ range(G) і нахил Brown (1992) щілини захисту — усе випливає зі знищення діапазону P⊥·G = 0. Репрезентативна геометрія, обчислена за моделлю, а не сертифікований рівень захисту lunar_faultobs lunar_faultobs::tests — provider_mismatch_split_common_undetectable_differential_detectable (спільне зміщення невиявлюване, диференціальне виявлюване), slope_infinity_in_range_finite_detectable (g7: нахил ∞ для b ∈ range(G), скінченний для b ∉ range(G)), pernode_rank_is_state_dim_minus_eight (§0: rank(GᵀWG) = state_dim − 8, 8-вимірна калібрувальна свобода є всім нульовим простором зі спектральною щілиною >1e6)
Телекомунікаційні маски синхронізації 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-timing InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Транскрипція названих Рекомендацій (вільно доступних на 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), відтворено в межах половини друкованої одиниці, здебільшого це сталі таблиць або точки зламу; G.8271.1 рис. 7-2 позначає 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) telecom_timing::tests (mask_boundaries_follow_the_tables_exactly — відкриті та закриті кінці, щілина τ = 400 с у G.8271.1 таблиця 7-3, неперервність у кожній точці зламу, яку мають забезпечувати таблиці; a_curve_exactly_on_the_limit_passes_and_just_above_fails; eprtc_a_holdover_envelope_follows_table_3; a_coarse_record_is_not_evaluated_against_a_filtered_mask); tests/telecom_timing_reference.rs (telecom_timing_kind_round_trips_through_the_dispatch); tests/telecom_masks_itu_printed_values.rs (mask_values_match_the_numbers_the_recommendations_print; figure_7_2_label_at_1_3_s_is_not_its_own_table_value)
Маски генерації блукання для синхронізації частоти 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.811 InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Транскрипція названих Рекомендацій (завантажених з itu.int 2026-10-13), кожен рядок перечитано за текстом, з неперервністю в точках зламу, що випливає з друкованих коефіцієнтів, обмеженою в тестах (наприклад, 40 · 10^0,4 = 100,48 нс проти плато 100 нс у G.812 таблиця 4). Транскрипція стандартів із перевірками внутрішньої узгодженості, не тест на відповідність і не зовнішня перевірка. G.812 (06/2004) указано як замінений попередньо опублікованою редакцією 08/2026, а G.811 має Amd. 1 (04/2016); жодного з них не вдалося прочитати, тож жодного не перевірено. Сценарій вільного ходу OCXO завищує внесок генератора на інтервалах спостереження, довгих порівняно з сталою часу контуру; він нічого не говорить про годинник будь-якого обладнання telecom_timing (MASKS, Segment::tau_exponent, MeasurementFilter::LowPass10HzAtSource, MaskCondition::Autonomous) telecom_timing::tests (g811_prc_masks_follow_clause_6_1; g812_masks_follow_tables_3_4_6_and_7; g8262_masks_follow_tables_1_3_4_and_5; g8262_1_eeec_masks_follow_tables_1_and_3; a_linear_piece_is_evaluated_without_powf; wander_masks_pass_a_quiet_white_fm_flicker_series; wander_masks_fail_the_same_series_scaled_up)
Формати журналів годинника (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). Без таблиці обидва типи побайтово ідентичні InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Попередньо зареєстровано в 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]) clock_log::tests (рукописні журнали по форматах: заголовки, роздільники, одиниці, інтегрування частоти, канали й режими TICC, прогалини та політики, відмови); tests/clock_log_allantools.rs (попередньо зареєстроване порівняння: b1_each_log_reads_to_the_reference_phase; b2_adev_tdev_and_mtie_agree_with_allantools; b3_a_telecom_series_read_from_a_log_equals_the_same_samples; b3_the_clock_kind_measured_block_is_opt_in)
Формати журналів годинника 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-test InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Еталонні набори, написані для Kshana за публічними макетами рядків демонів, зі вигаданими значеннями (NOTICE.md у теці набору); жодного журналу зі справжньої інсталяції не прочитано, і жоден оракул не порівнює розбір з іншим читачем, тож макет, що різниться між версіями демона, усе ще може бути відхилений або прочитаний неправильно. Оцінювачі, які отримують ряд фаз, — це ті, що перевірені за allantools у рядках вище clock_log (parse_linuxptp, parse_chrony, grid_timed_offsets) clock_log::tests (ptp4l_reads_the_locked_offsets_in_ns; linuxptp_reads_only_the_named_program; ts2phc_gap_is_refused_or_filled; linuxptp_reads_syslog_prefixed_lines_and_picks_an_interface; linuxptp_refuses_a_servo_that_never_locks_and_backwards_stamps; chrony_tracking_reads_the_local_offset_in_seconds; chrony_statistics_needs_a_source_when_there_are_two; chrony_columns_of_the_other_log_are_not_read; clock_selector_is_refused_for_timelab_and_ticc_only) на еталонних наборах у tests/fixtures/clock_log/linuxptp_chrony/
Тест 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; два моменти — це заява оператора й не перевіряються InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Ручне обчислення на записах, побудованих за формулами, чий нахил, крок, екстремум і час відновлення відомі до прогону (тести їх наводять), та маски, обвідна й бюджети в рядках синхронізації телекомунікацій вище. Жодного лабораторного вимірювання реального holdover не оцінено і жодного зовнішнього оракула не порівнювали, тож цей вид не робить жодного твердження про будь-який годинник чи систему; перш ніж будь-яку цифру для класу годинників можна було б підвищити, потрібен лабораторний партнер з часу holdover_test (HoldoverTestScenario, recovery, linear_fit); telecom_timing (check_mask, check_envelope, budget_results) holdover_test::tests (the_record_is_split_at_the_stated_times; holdover_figures_match_a_hand_computation; recovery_is_timed_from_the_restoration; masks_are_measured_on_the_step_their_condition_names; a_record_with_no_baseline_says_so; bad_inputs_are_refused_with_the_reason; the_report_carries_the_label_the_units_and_no_conformance_word; a_ptp4l_log_is_scored_end_to_end)
Доступність сигналів GNSS у просторовому обсязі обслуговування (SSV) і за його межами, порівняно з буклетом ICG SSV Розгортки доступності типу gnss-ssv: за орбітальними угрупованнями (GPS, GLONASS, Galileo, BDS, QZSS, NavIC) і сукупно — частка пар (користувач, епоха) принаймні з одним і принаймні з чотирма сигналами та найдовша перерва, для користувача на сфері (глобальна оболонка буклета з 2,562 точок, 14 діб з кроком 1 хвилина) або на траєкторії (GEO, HEO, місячний перехід), за кеплеровими орбітами з додатка C буклета, сталою мінімальною випромінюваною потужністю всередині опорного позаосьового кута, затіненням Землею сферою плюс 50 км і порогом C/N0; антени користувачів із таблиці B10 буклета ExternalDataset підпункт перевірено зовні, але вся можливість складається з частин, обчислених за моделлю, тож можливість залишається обчисленою за моделлю — Буклет ICG Space Service Volume (UN OOSA ST/SPACE/75, 2018), сам будучи симуляцією, порівняно за попередньою реєстрацією, зафіксованою до прогону (xval/gnss-ssv/PREREGISTRATION.md; результати в xval/gnss-ssv/RESULTS.md, зафіксовані tests/ssv_booklet_results.rs, разом із промахами). Прогін 1 за попередньо зареєстрованим прочитанням: константи мінімальної випромінюваної потужності та місячний поріг збігаються (S0, S6 виконано); пороги верхнього та нижнього 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 параметричний замінник не відтворює (СКВ від 6 до 9 дБ проти порогу 3 дБ). Збіг показує, що заявлений метод буклета відтворено, а не те, що сигнали ГНСС поводяться саме так ssv (constellations, geom, sweep, pattern, check) ssv::geom::tests (the_grid_has_the_booklets_2562_points_on_the_unit_sphere; the_interval_form_equals_the_general_predicate; a_user_behind_the_earth_is_blocked_and_one_beside_the_limb_is_not); ssv::sweep::tests (a_small_shell_run_is_internally_consistent; pdop_of_a_regular_tetrahedron_like_set_is_finite_and_a_flat_set_is_not); ssv::pattern::tests (table_b10_antenna_reads_as_gain_against_angle_from_the_boresight)
Ефекти іоносфери, плазмосфери та атмосфери для променя на лімбі на дотичних сигналах GNSS і дизайн приймача слабких сигналів у типі gnss-ssv Іоносфера Чепмена, плазмосфера типу Галлагера та нейтральна атмосфера (згин через рефрактивність, поглинання киснем, дефокусування), проінтегровані вздовж прямого променя між передавачем і користувачем: похилий повний електронний вміст, його плазмосферна частина, надлишкова затримка, висота дотичної та втрати на дотичних лініях зв'язку; і дизайн приймача слабких сигналів (когерентне й некогерентне інтегрування, межа бітів даних, допомога, доплерівський пошук), що задає поріг C/N0 з моделей захоплення та контурів стеження InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Замкнені форми та опубліковані величини в тестах (пік шару Чепмена та згин поверхневого лімба, кілька TECU плазмосфери на промені GPS–GEO); проєкт приймача повторно використовує моделі захоплення та контурів стеження і їхні тести. Із ним не порівнювали жодних виміряних даних зондування лімба чи прийому слабких сигналів ssv (limb, weak) ssv::limb::tests (the_chapman_layer_peaks_at_its_height_with_its_density; the_surface_limb_bends_about_one_and_a_third_degrees; plasmaspheric_tec_is_a_few_tecu_for_an_equatorial_gps_to_geo_ray); ssv::weak::tests (longer_integration_lowers_the_acquisition_threshold; aiding_narrows_the_search_and_the_loop; a_conventional_receiver_is_far_above_the_ssv_signal_levels); ssv::scenario::tests (the_limb_medium_adds_statistics_and_can_cost_signals; a_weak_signal_receiver_replaces_the_fixed_threshold)
Бортовий навігаційний фільтр GNSS для апаратів на високих орбітах і на траєкторіях переходу до Місяця Режим [navigation] типу gnss-ssv: дев'ятистановий розширений фільтр Калмана (положення, швидкість, зміщення й дрейф годинника приймача, масштаб тиску сонячного випромінювання) на псевдодальностях, чия доступність, шум і C/N0 походять з тієї самої геометрії ліній зв'язку, що й розгортки; істину інтегровано з J2, третіми тілами Сонця й Місяця та тиском випромінювання з тінню, фільтр моделює J2 і треті тіла та оцінює тиск випромінювання; повідомляє похибки положення й швидкості всередині орбіт GNSS і над ними, найдовшу прогалину вимірювань і середнє NEES InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Змодельована істина проти власної оцінки фільтра (середній нормований квадрат похибки оцінювання узгодженого фільтра становить близько 3 для положення) і детермінованість за фіксованого зерна. Жодних польотних чи записаних даних ГНСС на високих орбітах не порівнювали; Сонце та Місяць — низькоточні кругові замінники ssv::nav (run_nav, Ekf) ssv::nav::tests (the_filter_converges_where_signals_are_plentiful_and_is_deterministic; the_covariance_is_consistent_with_the_error; without_signals_the_filter_coasts_and_the_gap_is_reported); ssv::scenario::tests (navigation_and_formation_run_and_report)
Відносна навігація формації з кількох космічних апаратів на сильно еліптичній орбіті за GNSS Режим [formation] типу gnss-ssv: головний апарат і ведені апарати кожен запускає абсолютний фільтр; положення веденого відносно головного оцінюється відніманням абсолютних оцінок і відносним фільтром на однократно диференційованих псевдодальностях сигналів, які відстежують обидва апарати, з відносною динамікою як різницею двох нелінійних траєкторій InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Та сама змодельована істина, що й для абсолютного фільтра: похибка відносного фільтра щодо справжнього відносного стану та перевірка того, що він працює щонайменше не гірше, ніж віднімання двох незалежних абсолютних визначень. Жодних польотних даних формацій не порівнювали ssv::formation (run_formation, RelEkf) ssv::formation::tests (differencing_beats_subtracting_absolute_estimates_and_is_deterministic); ssv::scenario::tests (navigation_and_formation_run_and_report; formation_needs_navigation_and_one_mode_only)
Бюджет похибок навігації та часу ланцюга фаз місії від запуску до входу в атмосферу (mission-thread) Тип mission-thread: документ із фаз, кожна з яких є одним із восьми зареєстрованих типів, що виконуються по черзі, а 6x6 коваріація, годинник і система відліку передаються далі за заданим правилом (carry; inflate, білий шум прискорення на заданому проміжку за прямолінійною моделлю; reacquire, інерційне зчислення шляху, а потім поріг джерела, ніколи не нижче нього, ніколи не скидання); перетворення систем відліку GCRF, MCI і MCMF та перетворення шкал часу через TT, кожне окремим рядком бюджету, з положенням Місяця з необов'язкового зрізу ядра DE440 і аналітичним рядом як заявленим запасним варіантом; запас відносно заданої вимоги, найслабша ланка, події та рисунок часової шкали. Кожне число є заданим входом або моделлю такого InternalConsistency звірено з власною замкненою / аналітичною тотожністю — це виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом — Ручні розрахунки в тестах (зростання коваріації за прямою лінією, середнє зоряне обертання, вікове значення ходу місячного годинника) і, лише для стану Місяця, зафіксовані вирізки ядра DE440 проти закріплених значень JPL Horizons (найгірше 2,6 m і 7e-6 m/s). Жодні дані місій не порівнюються з ланцюгом; його фази — окремі рядки. Документ є заданим ланцюгом із ILLUSTRATIVE входами, лише відкритими джерелами та без схвалення агентства mission_thread (scenario, handover, conversions, budget, phase) mission_thread::scenario::tests::a_thread_runs_hands_over_converts_and_names_the_weakest_link; mission_thread::scenario::tests::bad_documents_fail_with_the_reason; mission_thread::handover::tests::inflate_never_shrinks_a_sigma_and_matches_the_hand_calculation; mission_thread::handover::tests::reacquire_sets_an_axis_to_the_floor_only_where_the_floor_is_smaller; mission_thread::conversions::tests::mci_mcmf_round_trip_returns_the_state_and_the_covariance; mission_thread::conversions::tests::tt_to_ltc_shifts_bias_and_drift_by_the_secular_rate_and_back; mission_thread::conversions::tests::the_committed_kernel_cuts_agree_with_pinned_horizons_values; tests/field_units_global.rs (блок одиниць звіту)
Запуск і виведення на опорну орбіту із захопленням ГНСС і завмиранням (launch-ascent) Фаза launch-ascent: коваріація положення та швидкості для сталої швидкості з білим шумом прискорення (клас інерційного зчислення шляху), фікс ГНСС заданої точності, застосований після часу захоплення і поза заданими завмираннями, годинник зі зміщенням і дрейфом, що дисциплінується тими самими фіксами, та стан входу на опорну орбіту InternalConsistency звірено з власною замкненою / аналітичною тотожністю — це виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом — Усталений стан Ріккаті та ручний розрахунок прогнозу в тестах. Ніщо тут не моделює ракету-носій чи приймач; кожне число є заданим входом mission_thread::earth::launch (LaunchAscent) mission_thread::earth::launch::tests::with_gnss_the_sigma_settles_near_the_fix_and_an_outage_lets_it_grow; mission_thread::earth::launch::tests::before_acquisition_the_sigma_only_grows_and_a_longer_acquisition_is_worse; mission_thread::earth::launch::tests::a_phase_that_does_not_list_gnss_never_uses_it; mission_thread::earth::launch::tests::bad_models_and_entries_are_refused; mission_thread::earth::filter::tests::repeated_updates_reach_the_riccati_steady_state
Відносна навігація до оболонки стикування на низькій навколоземній орбіті за ділянками датчиків (leo-rendezvous) Фаза leo-rendezvous: відносний стан у осях LVLH цілі із замкненим переходом Clohessy-Wiltshire, коваріація Калмана 6x6 з білим шумом прискорення та оновленнями положення, дисперсія яких дорівнює дисперсії датчика на поточній дальності, за ділянками заданого датчика (ILLUSTRATIVE оптична камера, лідар і форми радіодальнометрії); вікно стикування — це час від моменту, відколи відносна сигма лишається в оболонці захоплення, до кінця фази. Абсолютна коваріація переслідувача передається далі без змін, і рядок про це каже InternalConsistency звірено з власною замкненою / аналітичною тотожністю — це виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом — Ручний розрахунок прогнозу й оновлення для однієї осі в тесті; перехід Клохессі–Вілтшира — той, який cw_dynamics перевіряє за незалежним чисельним інтегруванням. Датчики ILLUSTRATIVE, і жодне справжнє зближення не порівнюється mission_thread::earth::rendezvous (LeoRendezvous); cw_dynamics; mission_thread::sensors mission_thread::earth::rendezvous::tests::the_relative_sigma_falls_through_the_legs_and_opens_a_docking_window; mission_thread::earth::rendezvous::tests::without_relative_sensing_the_sigma_only_grows_and_no_window_opens; mission_thread::earth::rendezvous::tests::the_covariance_recursion_matches_a_one_axis_hand_calculation; mission_thread::earth::rendezvous::tests::bad_models_and_a_duration_mismatch_are_refused; mission_thread::sensors::tests::the_cross_range_error_grows_with_range_and_the_floor_dominates_up_close
Трансмісячна інжекція та цисмісячний політ: пропагований середній стан і коваріація з оновленнями відстеження (tli-and-cruise) Фаза tli-and-cruise: середній стан за пропагатором Ковелла рушія (точкова маса Землі та J2, Сонце й Місяць як треті тіла, Місяць із ядра DE440 ланцюга там, де воно охоплює сегмент, а Сонце з аналітичного ряду); коваріація за матрицею переходу стану, взятою прямою різницею з тієї пропагації (номінальний прогін і шість збурених прогонів на сегмент) з білим шумом прискорення; розмір і похибка напрямку імпульсу TLI; фікси gnss-ssv, чия доступність і PDOP походять зі зміщення за космічним обсягом обслуговування вздовж оскулюючої орбіти, що заступає дугу; відстеження дальності та швидкості зміни дальності вздовж геоцентричного напрямку, масштабоване шкалою роботи наземної мережі, з оновленням у формі Джозефа InternalConsistency звірено з власною замкненою / аналітичною тотожністю — це виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом — Теорема Ліувілля (визначник матриці переходу стану консервативної частини дорівнює одиниці) і точніша різниця в тестах; середній стан порівнюється з публічною траєкторією в рядку нижче, якої він не досягає. Похибка маневру, оновлення та коваріація ні з чим не порівнюються mission_thread::earth::tli_cruise (TliCruise); propagator; ssv::sweep mission_thread::earth::tli_cruise::tests::the_stm_is_symplectic_for_the_conservative_part_and_matches_a_finer_difference; mission_thread::earth::tli_cruise::tests::with_no_tracking_the_covariance_is_the_stm_propagation_of_the_entry_and_the_burn; mission_thread::earth::tli_cruise::tests::range_tracking_shrinks_the_line_of_sight_and_leaves_the_plane_of_the_sky; mission_thread::earth::tli_cruise::tests::the_thread_kernel_serves_the_moon_inside_its_window_and_the_series_outside; mission_thread::earth::tli_cruise::tests::gnss_ssv_fixes_are_applied_where_the_sweep_finds_four_signals; mission_thread::earth::tli_cruise::tests::a_phase_that_lists_a_source_the_model_lacks_is_refused_and_unknown_keys_too
Коваріація на інтерфейсі входу, ймовірність коридору, пікове уповільнення та область посадки (entry) Фаза entry: повернення вибігом із tli-and-cruise без імпульсу, що закінчується на інтерфейсі входу; кут нахилу траєкторії та його сигма з повної коваріації за градієнтом скінченних різниць; ймовірність, що кут лежить у заданому коридорі; пікове уповільнення при номінальному куті й на обох краях коридору за планарним балістичним входом рушія як точкової маси (виявляється відскок) поряд із замкненою формою Аллена–Еггерса; область посадки із заданої чутливості за дальністю та коваріації на інтерфейсі впоперек площини орбіти. Підйомна сила, наведення чи нагрівання не моделюються InternalConsistency звірено з власною замкненою / аналітичною тотожністю — це виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом — Ручні розрахунки в тестах (сигма кута дорівнює сигмі перпендикулярної швидкості, поділеній на швидкість; гауссова маса в коридорі). Плоский вхід — власний для рушія, а форма Аллена–Егерса є замкненим порівнянням; жоден виконаний вхід не порівнюється mission_thread::earth::entry (Entry); reentry mission_thread::earth::entry::tests::the_flight_path_angle_and_its_sigma_follow_the_velocity_error_over_the_speed; mission_thread::earth::entry::tests::the_corridor_probability_is_the_gaussian_mass_inside; mission_thread::earth::entry::tests::the_phase_reports_the_interface_the_corridor_the_peaks_and_the_footprint; mission_thread::earth::entry::tests::the_steep_edge_peaks_higher_and_a_limit_below_it_is_flagged; mission_thread::earth::entry::tests::bad_corridors_unknown_keys_and_burn_keys_are_refused
Покриття наземної мережі та шкала відстеження для фази ланцюга ([ground_network] із mission-thread) Накладка наземної мережі: станції з мінімальним кутом місця, видимість апарата за заданою геометрією (стан входу, пролетений у двотільній задачі з J2, положення Місяця для польоту або задана шкала), передавання між станціями, кожне з яких втрачає заданий час, і результатна шкала, передана на частоту оновлень наземного відстеження фази; найдовший інтервал без станції у видимості є рядком бюджету InternalConsistency звірено з власною замкненою / аналітичною тотожністю — це виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом — Перевірки геометрії зеніту й антипода та очікувана видимість далекої цілі в тестах. Жодна справжня мережа, антена чи розклад не моделюються mission_thread::earth::ground_network mission_thread::earth::ground_network::tests::a_vehicle_over_a_station_is_seen_and_one_on_the_other_side_of_the_earth_is_not; mission_thread::earth::ground_network::tests::the_moon_is_in_view_of_three_well_spread_stations_most_of_the_time; mission_thread::earth::ground_network::tests::handover_losses_reduce_the_duty_and_never_below_zero; mission_thread::earth::ground_network::tests::a_stated_duty_is_passed_through_and_bad_documents_are_refused; mission_thread::scenario::tests::the_overlay_sets_the_tracking_duty_of_a_phase_that_lists_ground_tracking
Відносна навігація до стикування на місячній орбіті (lunar-orbit-rendezvous) Тип і фаза lunar-orbit-rendezvous: спільна пакетна оцінка Гаусса–Ньютона двох апаратів на дузі (двадцять один параметр: обидва стани та стійкі зміщення положення сигналу в просторі, спільні й незалежні), що нарощується на чверть, половину та цілу дугу із поділом кроку навпіл, з абсолютного фікса на апарат (межа відстеження пілот-коду AFS, ILLUSTRATIVE набір ретрансляторів) і дальності міжлінії, за місячною силовою моделлю крейта; середня нормалізована квадратична похибка оцінки, перевірка Clohessy-Wiltshire на круговій орбіті та передана далі коваріація 6x6 InternalConsistency звірено з власною замкненою / аналітичною тотожністю — це виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом — Самоузгодженість за попередньою реєстрацією (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_rendezvous::tests::b1_mean_nees_is_inside_the_registered_band_in_all_four_configurations; lunar_rendezvous::tests::circular_cw_check_is_within_the_pre_registered_bar; lunar_rendezvous::tests::same_seed_gives_identical_documents; lunar_rendezvous::tests::b6_handover_without_a_measurement_only_propagates; mission_thread::lunar::tests::every_phase_runs_and_returns_a_modelled_outcome; tests/mission_thread_lunar_oracles.rs
Бюджет розсіювання посадки в місячному полярному місці (lunar-descent) Тип і фаза lunar-descent: п'ятистанова інерційна модель похибок за віссю (положення, швидкість, зміщення акселерометра, нахил, зміщення гіроскопа) під час активного спуску, підтримувана фіксами AFS (автономними або диференціальними, із випадком трьох ретрансляторів з підтримкою годинника), фіксом за рельєфом (зіставлювач terrain-nav рушія на синтетичному рельєфі або межа Крамера–Рао на цифровій моделі LOLA з правилом проблеми апертури) і місячним часом, з еліпсом приземлення за Монте-Карло InternalConsistency звірено з власною замкненою / аналітичною тотожністю — це виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом — Замкнений інерціальний дрейф, власні результати повторно використаних видів і калібрування еліпса 3-сигма (частка всередині узгоджується з очікуваною) у тестах. Жодну виконану чи випробувану посадку не порівнюють lunar_landing (LunarLandingScenario); lunar_phase; terrain_nav lunar_landing::tests::b4_with_no_aid_the_landing_error_is_the_closed_form_inertial_drift; lunar_landing::tests::b4_each_aid_reports_exactly_what_the_reused_kind_gives; lunar_landing::tests::b3_ellipse_calibration; lunar_landing::tests::a_plane_gives_no_fix_the_aperture_problem; lunar_landing::tests::a_bowl_matches_the_closed_form_bound; lunar_landing::tests::three_relays_make_the_fix_depend_on_the_clock
Доступність позиціонування та часу на поверхні за місцем і порою року на місячних полюсах (lunar-surface) Тип і фаза lunar-surface: доступність ретрансляторів і PDOP, видимість Землі й Сонця та дисциплінований поверхневий годинник для кожного місця й пори року, з обрієм рельєфу з moonlight-service-volume; прогін для одного місця дорівнює доступності й PDOP цього типу до біта ReferenceImpl звірено з окремою реалізацією в тій самій кодовій базі — незалежною від досліджуваного блока, але не зовнішньо авторитетною — Точна рівність з наявним видом для одного майданчика та перевірки монотонності в тестах. Набір ретрансляторів ILLUSTRATIVE, і жодне поверхневе вимірювання не порівнюється lunar_surface_map (LunarSurfaceMapScenario); lunar_phase lunar_surface_map::tests::b5_equals_the_service_volume_for_a_single_site; lunar_surface_map::tests::b5_equals_the_service_volume_with_the_real_terrain; lunar_surface_map::tests::terrain_never_adds_availability; lunar_surface_map::tests::timing_is_at_least_either_source_and_the_season_moves_the_earth_and_sun; lunar_surface_map::tests::same_inputs_give_identical_documents
Активне виведення з місячного полярного місця на орбіту входу (lunar-ascent) Тип і фаза lunar-ascent: п'ятистанова інерційна модель похибок за віссю, виконана на активному виведенні з питомою силою вздовж траєкторії, підтримувана фіксами AFS і місячним часом, що звітує коваріацію положення та швидкості на вході, перенесену на орбіту, і розсіювання при відсічці двигуна (повідомлене, не перенесене) InternalConsistency звірено з власною замкненою / аналітичною тотожністю — це виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом — Замкнений інерціальний дрейф і перевірки монотонності в тестах. Жоден виконаний зліт не порівнюється lunar_ascent (LunarAscentScenario); lunar_phase lunar_ascent::tests::with_no_aid_the_insertion_error_is_the_closed_form_inertial_drift; lunar_ascent::tests::the_aid_never_hurts_and_the_velocity_is_carried_with_its_correlation; lunar_ascent::tests::a_stale_tt_clock_costs_a_three_relay_fix; lunar_ascent::tests::the_same_inputs_give_identical_documents
Пропагація місячної силової моделі проти публічних відновлених траєкторій місячних орбітальних апаратів і цисмісячного простору Пропагатор, спільний для місячних типів (GRAIL GL0660B, ступінь і порядок 150, Земля та Сонце як треті тіла, релятивізм, місячна орієнтація DE440), порівняний з публічними траєкторіями JPL Horizons для LRO (24 год, відліки по 10 хвилин) і CAPSTONE (один оберт за 6,5 доби, годинні відліки) за порогами, зафіксованими у зафіксованому файлі до прогону ExternalDataset підтвердження частини твердження зовнішнє, але вся можливість складається зі змодельованих частин, тож можливість лишається змодельованою — ефемериди космічних апаратів JPL Horizons для LRO і CAPSTONE проти порогів, попередньо зареєстрованих у xval/mission-thread-lunar/PREREGISTRATION.md (поправки 1–6). LRO: MET, найбільша 3-D різниця 33 m і радіальна СКВ 2,4 m проти 500 m і 60 m. CAPSTONE: NOT MET, різниця кінцевого положення 136,8 km проти 25 km і різниця перицентра 28,4 km проти 10 km, причини не ізольовано. Рядок змодельований, бо поріг CAPSTONE не досягнуто, а порівняння перевіряє спільний пропагатор, а не жоден фільтр, сигнал чи бюджет lunar_od (LunarForceModel); precise_od; mission_thread_lunar_oracles (example) tests/mission_thread_lunar_oracles.rs::the_stored_numbers_meet_or_miss_the_registered_bars_as_recorded; tests/mission_thread_lunar_oracles.rs::the_fixtures_match_their_recorded_hashes
Пропагація середнього стану цисмісячного простору проти публічної траєкторії Artemis I (tli-and-cruise) Пропагація середнього стану фази tli-and-cruise (Ковелл, точкова маса Землі та J2, Сонце й Місяць як треті тіла, Місяць зі зрізу DE440) порівняна з публічною траєкторією JPL Horizons для Artemis I на дузі вибігу 72 год від 2022-11-16 18:00 TDB, в епохи через 12 годин, за порогами, зафіксованими у зафіксованому файлі до прогону ExternalDataset підтвердження частини твердження зовнішнє, але вся можливість складається зі змодельованих частин, тож можливість лишається змодельованою — JPL Horizons, ціль -1023 (навігаційна траєкторія NASA після TLI за фактом польоту), проти порогів, попередньо зареєстрованих у xval/mission-thread/PREREGISTRATION.md (поправка 1 змінює лише проміжок запиту). NOT MET, і це стверджується як недосягнення: найбільша різниця положення 45,3 km проти 5 km і різниця швидкості 0,249 m/s на 72 h проти 0,05 m/s. Діагностика, написана після вердикту, відносить недосягнення до п'яти імпульсних кроків швидкості від 0,09 до 0,22 m/s в еталоні (попередньо зареєстроване припущення, що вікно не містило маневру, було хибним); на решті 67 годин модель відтворює наступний погодинний стан із медіаною 0,38 m. Перевіряє лише середній стан однієї дуги пасивного польоту: жодної коваріації, фільтра, оновлення чи іншої фази mission_thread::earth::tli_cruise; propagator; mission_thread_oracle (example) tests/mission_thread_oracle.rs::the_stored_numbers_miss_the_registered_bars_as_recorded; tests/mission_thread_oracle.rs::the_diagnostic_places_the_miss_in_five_impulsive_events_not_in_the_force_model; tests/mission_thread_oracle.rs::the_kernel_cut_and_the_recorded_inputs_match_their_hashes
Члени похибки холодноатомного інтерферометра: фазовий шум лазера Рамана, зміщення від кривини хвильового фронту та розв'язання неоднозначності смуг 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)) для допомоги класичного акселерометра та для двох часів опитування, і її обернена InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Кожну замкнену форму перевірено незалежним числовим шляхом у тестах (частотна квадратура точної передавальної функції та фільтра затримки, Монте-Карло за атомами для зміщення хвильового фронту, Монте-Карло за пострілами для індексу смуги) та її граничними випадками. Одне опубліковане опрацьоване значення: Cheinet et al. 2008 (arXiv:physics/0510197, розд. IV) стверджують, що за tau_R = 20 мкс для 1 мрад на постріл потрібен білий фазовий шум Рамана нижче -111 дБ рад^2/Гц; сам лише білий член дає 0,99 мрад (стаття виводить рівень за своїм рівнянням 17, фліккер плюс білий). Внутрішня узгодженість і одне опрацьоване значення, а не зовнішня перевірка; аберації вищих порядків і шум будь-якого конкретного лазера не змодельовано inertial::cai_error_terms inertial::cai_error_terms::tests (raman_transfer_short_pulse_limit_matches_the_acceleration_transfer_function; white_raman_phase_closed_form_matches_quadrature; short_pulse_band_limited_closed_form_matches_quadrature; cheinet_2008_white_phase_noise_requirement_is_reproduced; delay_term_closed_form_matches_exact_filter_quadrature; defocus_phase_is_position_independent_and_tilt_cancels; curvature_bias_monte_carlo_matches_closed_form; curvature_bias_limiting_cases; classical_aided_resolution_monte_carlo_matches_closed_form; multi_t_resolution_monte_carlo_matches_closed_form; ambiguity_limits_and_inverse)
Пресети holdover генераторів за публічними специфікаціями Чотири пресети — OCXO (Microchip OX-208), рубідієвий (Microchip 8040C), цезієвий (Microchip 5071A, високопродуктивна трубка) і CSAC (Microchip SA.45s) — кожен із максимумами девіації Аллана, старінням і межею температури зі своєї специфікації; невід'ємне підгонювання найменшими квадратами шуму частоти білого + фліккерного + випадкового блукання, масштабоване так, щоб обгорнути кожну точку специфікації, фліккерна підлога ніколи не нижча за показник найдовшого τ, лінійне старіння та синусоїдний температурний член, синтезовані як засіяний (seeded) holdover після втрати GNSS InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Чотири названі специфікації 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) telecom_timing::tests (every_preset_carries_a_named_datasheet_and_figures; the_noise_fit_envelopes_every_datasheet_point; pure_aging_matches_its_closed_form — дискретний дрейф старіння в межах 0,1 % від (1/2)·D·t² за добу; same_seed_same_series_and_hash_different_seed_different_series); tests/oscillator_presets_measured.rs (caesium_finding_pinned; rubidium_finding_pinned; csac_finding_pinned; ocxo_preset_has_no_measured_record)
Секунди, поки вільний годинник залишає охоронну зону часового слоту, та частота визначень, що тримає його всередині Тип slot-timing: передбачена похибка E(t) = k·√(σ₀² + σ_x²(t)) + (|y₀| + |c_T·ΔT|)·t + ½|D|t² обернена для порушення, часу, що лишився, інтервалу повторної синхронізації за вирахуванням затримки визначення та кількості визначень на добу, кожен член розписано з названням домінантного; годинники із шести типових значень ClockClass (додано TCXO, OCXO і RAFS, кожен із посиланням на одну специфікацію), пресетів telecom-timing, вбудованої специфікації чи виміряного запису; порушення за межами найдовшого часу усереднення джерела позначається як екстрапольоване InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Замкнені форми для кожного члена окремо та незалежний пошук кореня 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) tests/slot_timing_igs_holdout.rs (10 годинників супутників GPS Block IIF, 14 діб фінальних годинників IGS: 8 у межах порогу 1,5, G25 і G30 оптимістичні до приблизно 2x, зафіксовано); tests/slot_timing_ocxo_holdout.rs (виміряний OCXO: прогноз на відкладених даних ніколи не оптимістичний, від 0,59 до 0,70 виміряного порушення; у вибірці в межах від 0,98 до 1,17; без члена частоти фіксації прогноз у вибірці оптимістичний за кожного порогу); slot_timing::tests (fix_frequency_uncertainty_alone_is_linear_in_time; reduces_to_the_holdover_inversion — кожен клас проти holdover::holdover_seconds з точністю 1e-9; white_fm_with_fix_error_has_its_closed_form; flicker_floor_alone_is_linear_in_time; ageing_alone_is_quadratic_in_time; frequency_offsets_add_in_magnitude; the_error_at_the_breach_is_the_guard; datasheet_fit_envelopes_every_point; datasheet_classes_match_their_presets_at_one_second; a_breach_beyond_the_datasheet_is_flagged_as_extrapolated; the_report_carries_the_result_and_a_unit_for_each_field)
Рівень захисту часу для приймача на орбіті в умовах спуфінгу GNSS orbital_timing::orbital_timing, доступний як розділ про спуфінг у виді slot-timing: швидкість і період кругової орбіти, найдовший час, протягом якого наземний спуфер може діяти на супутник за один прохід, нижня межа монітора з підтримкою годинника та затримка виявлення CUSUM, умовний рівень захисту (нижня межа плюс інерційний дрейф за час затримки), відхилення, яке накопичує спуфер із заданою максимальною швидкістю наростання, доки супутник не залишить свою зону покриття або не буде виконано незалежну перевірку, а також те, чи кожна перевірка під час наземного контакту або через міжсупутникову лінію незалежна від одного наземного спуфера InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Зведення до наявного рівня захисту часу та замкнених форм видимості для колової орбіти й сферичної Землі. За умови виявлення, один наземний спуфер із заданою швидкістю наростання, прохід над головою на необертовій Землі; не перевірено за незалежним зовнішнім еталоном на приймачі під спуфінгом на орбіті orbital_timing (orbital_timing, visibility_half_angle_rad, max_pass_s, crosslink_neighbour_is_outside_footprint) orbital_timing::tests (reduces_to_the_terrestrial_tpl — точно tpl::timing_protection_level_ns, коли годинник не має фліккерного, білого фазового чи випадкового блукального члена; leo_geometry_matches_its_closed_forms; crosslink_independence_follows_the_footprint; an_independent_check_caps_the_ramp_before_the_pass_ends; a_crosslink_inside_the_footprint_does_not_count; a_ramp_below_the_reference_is_never_detected)
Водоспад спектра 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 на тих самих вхідних даних лінії InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Зведення до рівняння протидії глушінню та бюджету лінії наявного виду 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) spectrum::tests (agrees_with_the_jamming_kind_chain — J/S дорівнює jamming::j_over_s_db, а ефективне C/N0 дорівнює jamming::effective_cn0_dbhz з Q = 1/(R_c kappa) з точністю 1e-9 дБ, і якір 32,105 дБ власного тесту виду глушіння; noise_floor_is_kt0f; chirp_window_splits_whole_and_partial_sweeps; duty_weights_partial_rows; demo_scenario_runs_and_denies_l1_while_l5_survives; defaults_run_with_no_jammer; bad_inputs_are_refused)
Уран і Нептун за таблицею Standish 1, Плутон і швидкості планет Положення Урана й Нептуна за таблицею Standish 1 (типова в межах 1800 рік н. е. – 2050 рік н. е.), Плутона за рядком таблиці 1 від 1992 року, якого вже немає на поточній сторінці JPL, і геліоцентрична швидкість кожної планети: двотільна похідна із середнім рухом, що випливає з елементів, плюс поворот еліпса через швидкості перигелію, нахилу й вузла ExternalDataset підпункт перевірено зовні, але вся можливість складається з частин, обчислених за моделлю, тож можливість залишається обчисленою за моделлю — Виміряно проти JPL Horizons DE441 (ті самі зафіксовані еталонні набори), але не перевірено за незалежним зовнішнім еталоном: заявлені в таблиці 1 цифри для Урана й Нептуна перевищено до 2,0 і 5,2 раза проти геліоцентричних положень DE441 (Нептун вкладається в них проти барицентричних положень, що наводить на думку, що підгонка не була геліоцентричною), на сторінці не вказано похибки для Плутона, а для швидкостей опублікованої межі не існує. Таблиці 2a/2b вкладаються у власні цифри для Урана й Нептуна та охоплені рядком, перевіреним за незалежним зовнішнім еталоном ephem (standish_state, StandishElements::state_at_mean_anomaly, Planet::Pluto); solar_system (position_label) tests/solar_system_horizons_reference.rs (standish_table1_uranus_and_neptune_exceed_the_nominal_error: зафіксовано на 2,04 і 5,16 номінальної похибки довготи, менше ніж у шість разів; pluto_from_the_1992_row_is_measured_not_validated: у межах 39 кутових секунд і 1.14e9 м; standish_velocities_track_horizons_to_one_percent: найгірше 3.7e-3 швидкості); ephem::tests (standish_velocity_is_the_derivative_of_the_position; pluto_has_no_table2_row_and_no_stated_error)
Положення Місяця та семи великих супутників (Фобос, Деймос, галілеєві супутники, Титан) Геоцентричний Місяць за рядом Монтенбрука й Гілла (чий член -1.3972 град на століття вже відносить його до рівнодення J2000) та планетоцентричні положення й швидкості Фобоса, Деймоса, Іо, Європи, Ганімеда й Калісто за середніми елементами JPL Solar System Dynamics у площині Лапласа кожного супутника, зі швидкістю середньої довготи, взятою зі швидкості синхронного обертання IAU (таблиця друкує період із замало цифр, щоб утримати фазу), та Титана за моделлю обертання IAU (супутник на мінус тілозв'язаній осі x на середній відстані), оскільки надрукований рядок площини Лапласа для Титана не відтворює Horizons навіть на власній епосі ExternalDataset підпункт перевірено зовні, але вся можливість складається з частин, обчислених за моделлю, тож можливість залишається обчисленою за моделлю — Виміряно проти ефемерид супутників JPL Horizons (DE441, MAR099, JUP365, SAT441), зафіксованих у tests/fixtures/solar_system/horizons_satellites_icrf.csv із запитом і датою отримання; опублікованої точності для середніх елементів чи для розміщення за моделлю обертання не існує, тож зафіксовані пороги ловлять регресії, а не підтверджують точність за незалежним зовнішнім еталоном. Середні елементи не враховують резонансних і сонячних збурень, а вікове прискорення Фобоса не змодельовано ephem (satellite_state, Satellite, SatelliteMethod, moon_icrf, moon_icrf_velocity); ephem_provider (AnalyticSolarSystem) tests/solar_system_horizons_reference.rs (moons_track_horizons_to_the_measured_angles: найгірша кутова похибка з погляду планети за 2000 до 2040, Фобос 5,65 град, Деймос 0,38, Іо 0,40, Європа 1,63, Ганімед 0,22, Каллісто 0,27, Титан 3,31; geocentric_moon_tracks_horizons: 0,046 град); ephem::tests (moons_sit_at_their_mean_distance_and_move_at_their_mean_speed); ephem_provider::tests (earth_and_moon_balance_about_their_barycentre)
Фізичні сталі кожного тіла Сонячної системи та звіт про всю систему Body отримує Меркурій, Венеру, Юпітер, Сатурн, Уран, Нептун, Плутон, Фобос, Деймос, Іо, Європу, Ганімед, Калісто й Титан (гравітаційний параметр, опорний радіус, J2 там, де опублікований, із радіусом, до якого він віднесений, полюс і нульовий меридіан IAU), пошук за іменем і запис BodyFacts (код NAIF, клас, батьківське тіло, екваторіальний і середній радіус); вид solar-system повідомляє їх для всіх вісімнадцяти тіл разом із положеннями, світловими часами та треком орбіти за один оберт, а кожне тіло позначене VALIDATED або MODELLED InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Транскрипція опублікованих констант, кожна з посиланням на місце визначення: гравітаційні параметри із записів тіл JPL Horizons і таблиці фізичних параметрів супутників JPL, радіуси з таблиць фізичних параметрів JPL (IAU WGCCRE 2015), полюси та початкові меридіани від Робочої групи IAU з картографічних координат і елементів обертання (середні значення, без швидкості за T і періодичних членів), J2 за Smith et al. 2012, Iess et al. 2018 і 2019 та Jacobson 2009 і 2014. Перевірено на внутрішню узгодженість (період обертання Юпітера щодо швидкості Системи III, кожен J2 щодо свого опорного радіуса), а не за зовнішнім оракулом. Раунд 0,30 2: значення GM прийнято з gm_de440, а елементи Фобоса й Деймоса з pck00011, тож 0 із 84 констант чотирнадцяти доданих тіл тепер відрізняються від NAIF (було 12), що є перевіркою транскрипції і не враховується. 0,36: орієнтацію IAU в системі, пов'язаній з тілом, і GM чотирнадцяти доданих тіл винесено в окремий власний рядок VALIDATED («Орієнтація тіл IAU та гравітаційний параметр чотирнадцяти доданих тіл Сонячної системи»); цей рядок зберігає решту. J2 і середній радіус процитовано, а не перевірено за незалежним зовнішнім еталоном; положення у звіті спираються на власні рядки; а prime_meridian_deg звіту для Землі, Місяця та Марса залишається на умовних константах (до 6.6e-3, 2.8e-2 і 9.6e-4 рад від IAU_<BODY>). Перегляди 0,30: GM Фобоса 7.087e5 -> 7.087546066894452e5, Деймоса 9.62e4 -> 9.615569648120313e4, Урана 5.7939506103e15 -> 5.793951256527211e15, Нептуна 6.83509997e15 -> 6.835103145462294e15, Плутона 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) body::tests (every_catalogue_body_resolves_by_name_and_carries_its_record; a_zonal_field_is_referenced_to_its_sources_radius; retrograde_rotators_have_negative_rates_and_periods_match_the_iau_rate); solar_system::tests (defaults_report_all_eighteen_bodies_with_tracks; earth_heliocentric_distance_is_one_au_and_period_one_year; a_planet_track_closes_on_its_orbit_and_starts_at_the_epoch_position; moons_orbit_their_planets_at_their_mean_distance; pluto_outside_its_table_is_an_error_not_a_guess; every_emitted_number_has_a_unit); tests/body_constants_naif_oracle.rs::only_the_conventional_constants_of_other_rows_differ
Позиціонування навколо будь-якого тіла Сонячної системи з локальним угрупованням і лінією далекого космосу із Землею Вид body-pnt: орбітальний апарат або поверхневий посадковий модуль навколо тіла, обраного за іменем, навігує за односторонніми псевдодальностями від навігаційного угруповання Уокера навколо тіла (двотільні орбіти з віковим дрейфом за J2 тіла, невідомий годинник користувача) і необов'язковою безгодинниковою двосторонньою дальністю від Землі, причому напрям і відстань до Землі беруться з аналітичних ефемерид на кожній епосі; лінії візування, перекриті сферою тіла, та маска висоти над поверхнею; на кожну епоху — GDOP і PDOP лише за угрупованням (orbit::dop), формальна невизначеність положення з рядком Землі та без нього і засіяні фікси за Гауссом–Ньютоном (batch_ls::gauss_newton) обома способами, зі світловим часом і круговим проходом від тіла до Землі InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Замкнені форми та самоузгодженість: третій закон Кеплера для періоду ретранслятора, радіус орбіти та радіус поверхні, що зберігаються протягом прогону, додавання вимірювання, яке ніколи не збільшує формальну невизначеність, і засіяні похибки, що узгоджуються з коваріацією. Орбіти ретрансляторів ігнорують треті тіла (тяжіння Юпітера на ретранслятори навколо Європи не змодельовано), шум гауссів на заданих рівнях, а модель вимірювання миттєва, тож це не перевірено за навігаційними даними будь-якої місії body_pnt (BodyPntScenario, formal_sigma, fix_error); orbit (dop); batch_ls (gauss_newton); mars_pnt (chord_clears_sphere); mars_frame (bodyfixed_to_inertial) body_pnt::tests (relay_period_is_keplers_third_law_for_the_body; an_orbiter_keeps_its_radius_and_a_lander_sits_on_the_surface; the_earth_range_never_worsens_the_formal_uncertainty; seeded_fix_errors_are_consistent_with_the_formal_sigma: середньоквадратичне значення кожної похибки визначення, поділене на її власну формальну сигму, у [0,6, 1,5]; earth_light_time_is_minutes_at_mars_and_the_run_is_deterministic; defaults_run_around_mars_and_every_number_has_a_unit)
Карти покриття та геометричного погіршення точності для довільних багатогрупових проєктів у масштабі навколо будь-якого центрального тіла Вид constellation-design поза двома зафіксованими випадками: явні та багатошарові проєкти, кілька угруповань за прогон з одним годинником приймача на угруповання, Земля, Місяць і Марс зі сталих тіл, пресет BeiDou (змодельовано фазу середньої орбіти та перетин нахиленої геосинхронної орбіти на 118 град E), кількість супутників у видимості для кожної комірки, GDOP, PDOP, HDOP, VDOP і доступність, проріджені треки на землі та префільтр видимості за широтою підсупутникової точки, що запускає проєкт на 5 000 супутників на сітці 10 град за частку секунди InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Внутрішня узгодженість: повний перебір сканування за висотою, ручні обчислення та зведення до orbit::dop, а також замкнена геометрія Walker і геосинхронних орбіт. Двотілові орбіти з необов'язковим віковим 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), тож рядок не перевірено за незалежним зовнішнім еталоном. Перегляди 0,30: опорним годинником TDOP/GDOP тепер є орбітальне угруповання з найменшим номером у видимості (constellation-multi-gnss-coverage глобальний максимум GDOP 2,2236 -> 2,1205, середнє 1,122 -> 1,131), а кількості видимих за угрупованнями підсумовуються як цілі числа constellation (coverage, ConstellationDesignScenario, beidou_slots, body_by_name) constellation::tests (prefilter_matches_brute_force_exactly — кожна карта й лічильник дорівнюють скануванню з прямою перевіркою висоти; five_thousand_satellites_on_a_coarse_grid — 5 000 супутників, друкує час прогону та збережені парні перевірки; a_clock_per_constellation_needs_one_more_satellite; beidou_geo_and_igso_geometry; lunar_shell_runs_around_the_moon; presets_are_earth_only_and_errors_are_clear; preset_counts); tests/constellation_availability_published_spec_oracle.rs::presets_meet_the_published_dop_availability (лише перевірка регресій); tests/coverage_dop_full_oracle.rs::finding_is_pinned; tests/coverage_dop_gnss_lib_py_oracle.rs (регресія)
Ланцюгова місія за різними видами сценаріїв на одному спільному часовому графіку Фази виду campaign: кожна фаза запускає один або кілька сценаріїв наявних видів через run_toml, зчитує їхні виходи в іменовані канали (похибка часу годинника та охоронний поріг, середнє ефективне відношення несівної до густини шуму та поріг відстеження, вертикальний рівень захисту та межа тривоги, похибка положення, супутники у відстеженні, прапорці тривог) за пресетами для кожного виду або явними шляхами результатів, розміщує їх на початку фази й утримує до спільної сітки, з межами фаз і подіями; стан передається далі через carry (канал продовжується від кінцевого значення попередньої фази), handoff (номер попередньої фази, записаний у наступний сценарій) та end_at (фаза закінчується в момент, який обчислив прогін, наприклад час виявлення монітором спуфінгу); хеш кампанії та дайджест за кожним результатом учасників InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Тотожності композиції проти окремих прогонів тих самих видів: однофазна кампанія відтворює окремий результат побітово, перенесене зміщення дорівнює останній вибірці попереднього прогону, а фаза, завершена end_at, має довжиною рівно час виявлення цього прогону. Адитивне перенесення через межу фаз і утримання нульового порядку є модельними виборами, а кожна фаза така добра, як вид, що її виконав; жодну зв'язану місію не перевіряли проти виміряної campaign (run_campaign_detailed, run_chain, presets, extract, to_svg) tests/campaign_composition_reference.rs (a_one_phase_clock_campaign_reproduces_the_standalone_run_bit_for_bit, a_one_phase_integrity_campaign_reproduces_the_standalone_run_bit_for_bit, a_one_phase_jamming_campaign_reproduces_the_standalone_run_bit_for_bit — результат члена побайтово ідентичний окремому прогону, а кожне вирівняне значення дорівнює окремому ряду; the_chained_mission_hands_state_on_and_ends_the_spoofing_phase_on_detection; a_handoff_writes_the_previous_phase_number_into_the_next_scenario; malformed_campaigns_fail_loudly)
Перебори параметрів і засіяні ансамблі Монте-Карло за будь-яким видом сценарію Розділи sweep (від одного до трьох ключів із крапками будь-якого виду, за значеннями осей загального перебору, за потреби з ансамблем у кожному вузлі) і monte_carlo виду campaign: реалізація k запускається з base_seed + k; кожна метрика повідомляє середнє, стандартне відхилення, перцентилі 5/50/95 за найближчим рангом і перцентильний бутстреп-довірчий інтервал 95% для середнього із фіксованим зерном (inertial::metric_stat); одиниці метрик беруться з власного блоку units виду, що перебирається InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Замкнена форма блукання фази за білого частотного шуму, дисперсія q_wf tau (NIST Technical Note 1337), для статистичного механізму, та побайтова рівність з окремими прогонами для засівання. Вона перевіряє арифметику ансамблю на власній моделі годинника рушія, а не на зовнішньому наборі даних campaign (run_sweep, run_monte_carlo, ensemble); sweep (GenericAxis, coords_of, set_dotted_value); inertial (metric_stat) tests/campaign_composition_reference.rs (a_fixed_seed_ensemble_is_byte_stable_and_each_realisation_is_the_standalone_run; the_ensemble_mean_and_spread_match_the_white_fm_closed_form — 200 зерен годинника з білим частотним шумом, що біжить за інерцією tau = 3010 с: справжнє середнє 0 всередині повідомленого інтервалу, піввисота інтервалу в межах 25% від 1,96 sigma/sqrt(n), а вибіркова дисперсія всередині двостороннього 99% інтервалу хі-квадрат для sigma = sqrt(q_wf tau) = 16,459 нс; калібрувальний ансамбль (CAP-10, попередньо зареєстровано ea451cb5, docs/CALIBRATION-ENSEMBLES.md, tests/calibration_ensembles.rs): на 200 незалежних ансамблях інтервал покриває справжнє середнє в 192 (всередині 99 % області біноміального розподілу Binomial(200, 0,95) [181, 197]) і перевірка хі-квадрат проходить у 196, тоді як допуск персентилів для одного зерна (p05 і p95 у межах 0,3 sigma) проходить лише у 183 із 200, NOT MET проти попередньо зареєстрованих 190, нестійка до зерна перевірка, записана, а не послаблена; a_one_node_sweep_and_a_one_member_composition_read_the_standalone_number)
Кілька сценаріїв за спільних умов із зведеним підсумком Розділ compose виду campaign: іменовані спільні значення (наприклад, потужність і положення одного глушника), записані в кожен складник за ключами, до яких їх прив'язано, запуск кожного складника та для кожної метрики найменше, найбільше й середнє значення серед складників із зазначенням складника; одиниці метрик мають збігатися в усіх складниках InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Тотожність композиції проти окремого прогону. Арифметика спільних умов є обліком; фізика — це фізика видів-учасників, кожен зі своїм рядком campaign (run_compose) tests/campaign_composition_reference.rs (a_one_node_sweep_and_a_one_member_composition_read_the_standalone_number — композиція з одного члена зчитує окреме число та дайджест результату)
Обмежена оптимізація однієї метрики за параметрами кампанії Розділ optimize виду campaign (CAP-32): від одного до трьох ключів сценарію з крапками, обмежених [lo, hi] у лінійній або логарифмічній шкалі, одна метрика, прочитана за шляхом результату, мета minimize, maximize або target; метод grid (значення осей перебору) або детермінований симплекс Нелдера–Міда в нормованих координатах із проєкцією на коробку та стандартними коефіцієнтами; відсутня або нескінченна метрика оцінюється як найгірша і лишається в trace; за runs > 1 метрика є середнім за спільними зернами; кожне обчислення є справжнім прогоном названого виду, перелічене в trace і враховане в дайджесті відтворюваності InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Лише внутрішньо: точна замкнена форма -20 log10(range) рівняння лінії, незалежна повна сітка для того самого виду та функція Розенброка. 1-D поріг раунду 1 — NOT MET (попередньо зареєстрований бокс виключав розв'язок 3 дБ; оптимізатор зупинився на межі), записано в docs/design/evidence/cap32-optimize/RESULTS.md і повторно не оцінювалося. Оптимум є локальним щодо боксу та початкової точки; жодного твердження про глобальний оптимум campaign::optimize (run_optimize, nelder_mead) tests/campaign_optimize_reference.rs (попередньо зареєстровано fbe6c8b3 і, після пропуску протоколу в раунді 1, 441f31bc: p2_prime_interior_target_range_matches_the_closed_form — 1-D розв'язок цілі в межах 6.1e-15 від r* = r0 10^((m(r0) - 3)/20) за 96 обчислень; p3_prime_contour_target_grid_and_nelder_mead і p3_grid_matches_brute_force_and_nelder_mead_does_at_least_as_well — найкращий результат методу сітки побітово дорівнює незалежному циклу повного перебору 41 x 41 над run_toml, Нелдер–Мід щонайменше такий самий за 177 і 161 обчислень; p4_nelder_mead_reaches_the_corner_maximum; p5_the_document_is_byte_stable_and_counts_agree; p2_round1_not_met_the_box_excludes_the_closed_form, який фіксує записаний пропуск раунду 1); campaign::optimize::tests (nelder_mead_meets_the_preregistered_rosenbrock_bar: f* = 1.7e-20 за 234 обчислень; a_non_finite_score_is_never_the_best; the_grid_mapping_is_the_sweeps)
Проєкти сигналів позиціонування, навігації та часу на низькій навколоземній орбіті: стеження за кодом, захоплення, сумісність з 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 та стійкістю до глушників; і якісні перевірки форми проєкту порівняно з описаним вимірюванням InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Замкнені форми двох рядків вище, перевірені за незалежним зовнішнім еталоном, тотожність хибної тривоги квадратичного детектора P_d(snr = 0) = P_fa і середній час захоплення Холмса, а також зведення до власного ланцюга SSC виду спектра (той самий код 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) leo_signal::tests (every_public_preset_parses_and_cites_a_url; detector_reduces_to_pfa_and_grows_with_snr; detection_probability_with_several_looks_matches_the_noncentral_chi_square; mean_time_of_a_perfect_detector_is_half_the_cells; compatibility_ssc_magnitudes_match_independent_quadrature; to_spectrum_band_is_consistent_with_the_design; jammer_tolerance_orders_cw_matched_wideband; e5_centred_signal_hits_e5a_and_e5b_equally; defaults_run_on_the_generic_band_preset; inline_signal_and_bad_inputs); tests/leo_signal_reference.rs (кожен вбудований сценарій, не залежний від системи, запускається без даних семінару, іоносферні відношення в торгівельному порівнянні смуг дорівнюють (f_ref/f)^2, а його різниці у вільному просторі 20 log10(f/f_ref), джитер на опорному C/N0 лежить між своєю межею Габора та формою необмеженої смуги, перевірки форми E5 сценарію з параметрами семінару узгоджені, коли цей файл присутній, і жоден вихідний файл не компілює цей файл)
Багатодіапазонний водоспад спектра (UHF, L, S, C) із проєктними сигналами та глушниками для кожного діапазону Вид spectrum, розширений за межі L-діапазону: діапазони, задані як пресет проєкту сигналу (змальований з усіма компонентами, обмежений смугою передавання, C/N0 і J/S віднесені до компонента, що відстежується) або як власна несівна й модуляція; додаткові панелі водоспаду за будь-яким діапазоном частот на тому самому часовому графіку та колірній шкалі; широкосмуговий (загороджувальний) глушник поруч із CW, вузькосмуговим, чирпом і узгодженим шумом; J/S і ефективне C/N0 для кожного діапазону за незмінним ланцюгом коефіцієнтів спектрального розділення InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Зведення до наявного ланцюга спектра та рівняння протидії глушінню виду глушіння (однокомпонентна смуга дає ті самі числа, що й до розширення) і спектри сигналів у рядках, перевірених за незалежним зовнішнім еталоном. Потужності джамерів, часова шкала, смуги вхідних каскадів і спроєктовані сигнали є входами, а спроєктований сигнал обрізається на своїй смузі передавання (без позасмугового випромінювання). spectrum (Band::unit_psd, Band::tracked_power_dbw, BandDesign, BandCfg, PanelCfg, SpectrumScenario, Waveform, multi_band_svg); leo_signal (SignalDesign::to_spectrum_band) tests/leo_signal_reference.rs (багатосмуговий водоспад запускається із чотирма панелями, джамери UHF, смуги L5, S і C заглушують лише власну смугу, а запуск звичайної смуги розширенням не змінюється); leo_signal::tests::to_spectrum_band_is_consistent_with_the_design; spectrum::tests (agrees_with_the_jamming_kind_chain)
Прохід 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 із прийнятих потужностей з їхніх інтерфейсних документів через той самий приймач InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Замкнені форми та самоузгодженість: тотожності швидкості та прискорення зміни дальності проти числових похідних, ізопотоковий коефіцієнт підсилення, що скасовує зростання дальності, підручникові межі втрат поляризації, якісне спостереження LEO порівняно з GNSS (дзвоноподібний прохід тривалістю хвилини з піком на кілька дБ вище за плоскі несівні GNSS 44–51 дБ-Гц). EIRP і діаграми є опублікованими прийнятими потужностями, перетвореними на EIRP, або репрезентативними виборами, газовий член є застарілим спрощеним методом P.676-10, і ніщо не порівнюється з виміряним C/N0 LEO leo_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_pass::tests (the_leo_pass_is_a_bell_above_flat_gnss; closed_form_doppler_agrees_with_the_numerical_derivative: менше 0,01 Гц і 0,01 Гц/с; indoor_uhf_suffers_less_building_loss_than_c_band; rain_attenuates_c_band_more_than_s_band; iono_delay_scales_as_one_over_f_squared_across_bands; a_fully_custom_band_needs_no_preset; a_walker_constellation_and_a_tle_satellite_both_run; defaults_run_with_no_preset_named_and_every_number_has_a_unit); leo_link::geometry::tests (kepler_velocity_is_the_derivative_of_the_position; a_designed_pass_reaches_the_requested_elevation; closed_form_range_rate_and_accel_match_central_differences_for_two_body_motion); leo_link::antenna::tests
Іменовані пресети систем 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, що компілюється лише тоді, коли цей файл існує; кожен діапазон і орбіту можна перевизначити в сценарії, а сценарій може взагалі не називати пресету InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Транскрипція процитованих публічних цифр і перевірка узгодженості: EIRP, заданий з опублікованої мінімальної прийнятої потужності, передбачає опублікований максимум у межах 0,5 дБ із плоскою діаграмою. Це перевірка розкиду дальності, а не підтвердження антени будь-якого супутника за незалежним зовнішнім еталоном; репрезентативні пресети не роблять жодного твердження про реальну систему leo_link::presets (SystemPreset, BandPreset, all, by_id, gnss_meo); leo_pass (resolve_bands) leo_link::presets::tests (every_preset_is_sourced_and_self_consistent; only_the_celeste_preset_is_sourced_from_the_workshop); leo_link::presets::xona_pulsar::tests (the_eirps_reproduce_the_published_minimum_power_at_ten_degrees; a_flat_pattern_lands_the_zenith_power_near_the_published_maximum: у межах 0,5 дБ від -139.1 і -136.2 дБВт); leo_link::presets::iridium::tests; leo_pass::tests (a_fully_custom_band_needs_no_preset)
Енергоощадне позиціонування: час до першого фікса та енергія на фікс залежно від робочого циклу leo_link::energy і розділ [iot] виду leo-pass: когерентне інтегрування, обмежене швидкістю зміни доплерівського зсуву, квадратичні некогерентні суми до порога виявлення, пошук за доплерівськими бінами в обвідній статичного користувача орбіти (холодний) або в допоміжному вікні (гарячий), паралельний або послідовний пошук коду, час навігаційного повідомлення за холодного старту, енергія на фікс і час роботи батареї за різних інтервалів фіксів, для кожного діапазону LEO та сигналу GNSS InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Внутрішня узгодженість заявленої проєктної моделі: кожен вибір потужності, порогу та пошуку є входом, а модель ігнорує неоднозначність меж біта, пропущене виявлення та повторне захоплення. Не порівнювано з виміряним приймачем leo_link::energy (fix_budget, duty_curve, IotReceiver, IotSignal); leo_pass (iot_section) leo_link::energy::tests (stronger_signals_and_smaller_doppler_windows_fix_faster; the_doppler_rate_caps_the_coherent_time; battery_life_grows_with_the_fix_interval_toward_the_sleep_floor); leo_pass::tests (the_run_is_deterministic_and_bad_inputs_are_rejected)
Оновлення навігаційного повідомлення LEO посеред проходу з перевіркою неперервності в момент перемикання Аналіз midpass-update виду leo-navmsg: найвищий прохід над користувачем у межах інтервалу пошуку, повідомлення за глобальним розкладом із періодами використання, центрованими у своїх вікнах апроксимації, і в кожен момент перемикання стрибок положення 3D, стрибок годинника, стрибок псевдодальності користувача, найбільший стрибок за будь-якою видимою лінією візування (замкнена форма за надирним конусом), похибка дальності до і після та PASS/FAIL щодо порога InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Внутрішня узгодженість (тотожність стрибка та межа конуса проти вибірки повним перебором). Поріг є входом; жодної опублікованої вимоги до безперервності LEO не зафіксовано leo_navmsg (LeoNavmsgScenario::midpass, worst_case_jump, elevation, geodetic_to_ecef) leo_navmsg::tests::a_mid_pass_update_is_continuous (стрибок дальності кожного перемикання дорівнює зміні похибки дальності, а виправлена апроксимація 300 с, оновлювана кожні 150 с, проходить поріг 5 см); leo_navmsg::tests::a_keplerian_only_update_over_a_long_interval_is_flagged; leo_navmsg::tests::worst_case_jump_bounds_every_line_of_sight (замкнена форма обмежує щільну вибірку конуса)
Задокументоване двійкове кодування навігаційного повідомлення LEO з бюджетом похибки квантування leo_navmsg::codec: власний кадр Kshana (преамбула, версія, модель, довжина, корисне навантаження, CRC-24Q) для чотирьох моделей ефемерид, поліном годинника, SVID, видання даних, діапазон, справність, набір Klobuchar, коефіцієнти NeQuick-G і параметри UTC, кожне поле із заявленою шириною та кроком (field_table), квантування з відмовою за виходу за діапазон і бюджет найбільшої зміни положення та годинника, яку спричиняє зміна на півкроку кожного поля протягом вікна чинності InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Тотожності туди-й-назад і сам бюджет. Формат власний для Kshana, змодельований за опублікованими компонентами повідомлень і набором полів Galileo ICD; це не розкладка бітів Celeste чи будь-якої іншої системи (жодна не є публічною), тож немає зовнішньої розкладки, щоб перевіряти за нею leo_navmsg::codec (encode, decode, write_payload, read_payload, field_table, quantisation_budget) leo_navmsg::codec::tests (signed_fields_round_trip_through_the_bit_packer; week8_resolves_near_the_reference); leo_navmsg::tests::every_model_round_trips_through_the_binary_frame (кожна модель у межах 2 мм від точного повідомлення після декодування, повторне кодування побітово ідентичне, перевернутий біт відхилено за CRC); leo_navmsg::tests::every_field_of_the_budget_stays_under_a_millimetre
Експорт навігаційних повідомлень LEO у стилі RINEX-4 і CSV leo_navmsg::text: блок у стилі RINEX-4 (заголовок запису > EPH, рядок супутника та епохи з трьома складниками годинника, рядки широкомовної орбіти D19.12) з літерою системи L і типами записів KP16, KRAC, LU22 та APOL, позначений у кожному заголовку як розширення Kshana, що не є частиною RINEX 4,02, і таблиця CSV зі схемою стовпців за замовчуванням і схемами пресетів, кожна з імпортером InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Кругові перетворення та календарна арифметика. 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) leo_navmsg::text::tests (calendar_round_trips_and_knows_the_gps_origin; d19_is_rinex_shaped); leo_navmsg::tests::rinex_and_csv_round_trips (кожна модель у межах 0,1 мм після текстового блока, CSV точний)
Поліном ECEF ATOMIC з нульовим годинником і синтетичне порівняння моделей LEO для п'яти висот варіант EcefPoly моделі leo_navmsg::elements::EphemerisModel: поліном ECEF для кожної осі без складників годинника, релятивістський складник із -2 r.v/c^2, оцінений щодо кермованого годинника. Також аналіз порівняння моделей (liu_comparison над LIU2025_TABLE), який апроксимує 22-параметричну модель на п'яти висотах зі статті на 20-хвилинних дугах орбіти, проінтегрованої в Kshana, і друкує результат поряд з опублікованим SISRE InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — 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) leo_navmsg::tests::liu22_beats_the_16_parameter_set_over_a_20_minute_arc; leo_navmsg::tests::the_ecef_polynomial_fits_a_minute_to_millimetres; leo_navmsg::tests::every_preset_resolves_and_the_atomic_preset_selects_the_zero_clock_polynomial
Позиціонування за доплерівським зсувом 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) InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Внутрішня узгодженість: відновлення без шуму, кінематична тотожність rho_ddot = (|v|^2 - rho_dot^2 + d.a)/rho, числено продиференційована, нульовий Доплер у точці найближчого наближення, дзеркальний розв'язок одиночного проходу та засіяні похибки проти формальної коваріації. Цифра Starlink від Kozhaya, Saroufim і 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) leo_fusion::doppler::tests (range_acceleration_obeys_the_kinematic_identity_and_vanishes_doppler_at_closest_approach; noise_free_multi_satellite_doppler_recovers_the_user: до 1 мм і дрейф до 1e-6 м/с; a_single_pass_has_a_mirror_solution_across_the_ground_track; the_cross_track_error_grows_as_the_pass_goes_overhead; velocity_states_are_recovered_for_a_moving_user); leo_fusion::pvt_kind::tests (doppler_positioning_improves_with_the_window_and_is_deterministic: зважене СКВ нев'язки в [0,8, 1,2] і похибка менша за чотири формальні сигми); tests/leo_fusion_scenarios.rs (leo_doppler_positioning_forms_a_fix_and_the_cross_track_error_explodes_overhead; starlink_doppler_only_mode_runs_without_ranging); tests/starlink_doppler_published_proxy.rs (попередньо зареєстрований проксі проти опублікованих персентилів набору даних 3 «Unveiling Starlink for PNT», doi:10.33012/navi.685: із 3 супутниками (маска 47 град), без допомоги за висотою та 30 Гц p90 3-D похибки становить 92,2 м за 20 с і 870 м за 8 с проти опублікованих 2 м і 10 м, тож обидва пороги в коефіцієнт два — NOT MET, у бік завищення, і стверджено як не досягнуті; docs/design/evidence/cap11-starlink-doppler-proxy/)
Спільне псевдодальномірне позиціонування за GNSS і LEO з міжсистемними зсувами та моделями похибок для кожного сигналу Фікси за зваженим методом найменших квадратів Гаусса–Ньютона за будь-якого поєднання систем, один годинник приймача на систему (міжсистемний зсув оцінюється разом із положенням) або відомий широкомовний зсув на опорній шкалі часу; сигми окремих вимірювань задає викликач, за замовчуванням це тепловий шум системи фазового автопідлаштування за затримкою рушія (navsignal::dll_code_jitter_chips) за C/N0 на висоті, поєднаний із похибкою дальності сигналу в просторі; незважений DOP (GDOP, PDOP, HDOP, VDOP, TDOP) у локальній геодезичній системі, формальні сигми схід–північ–зеніт і сигми зсувів; спільний режим joint виду leo-pvt порівнює фікси лише GNSS, лише LEO та злиті й перебирає DOP залежно від кількості доданих супутників LEO InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Виведений вручну 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) leo_fusion::joint_pvt::tests (dop_matches_the_hand_derived_zenith_plus_three_horizon_case: HDOP = VDOP = sqrt(4/3), TDOP = sqrt(1/3), PDOP = sqrt(8/3), GDOP = sqrt(3) з точністю 1e-9; a_lone_satellite_with_its_own_clock_adds_nothing_and_a_known_offset_does; a_noise_free_fix_recovers_position_clock_and_inter_system_bias; seeded_fixes_agree_with_their_formal_covariance; dll_noise_is_the_textbook_figure_for_gps_l1_ca); leo_fusion::pvt_kind::tests (fusing_leo_never_worsens_the_median_pdop_and_the_isb_is_recovered); tests/leo_fusion_scenarios.rs (meo_leo_fusion_beats_gnss_alone_and_recovers_the_leo_bias); tests/joint_pvt_dual_freq_itrf_rtklib_oracle.rs::dual_frequency_finding_is_pinned; tests/joint_pvt_precise_itrf_rtklib_oracle.rs::precise_product_finding_is_pinned
Збіжність прецизійного точкового позиціонування лише за GNSS і з доповненням LEO Розширений фільтр Калмана для PPP із плаваючими неоднозначностями за безіоносферними кодом і фазою: статичні координати, білий годинник приймача, один міжсистемний зсув на кожну додаткову систему, вологу зенітну затримку у вигляді випадкового блукання, спроєктовану на 1/sin(висота), плаваючу неоднозначність на кожну дугу супутника, що додається за сходу й скидається за заходу, та похибку прецизійних орбіти й годинника, спільну для коду та фази супутника, яка обробляється як одне корельоване дворядкове оновлення у формі, стабілізованій за Джозефом; вимірювання змодельовано з тієї самої моделі; час збіжності (похибки нижче порогів до кінця прогону), криві похибок і усереднений за прогоном NEES положення лише для GNSS і для кожного випадку LEO, запуск як вид leo-ppp ExternalDataset підпункт перевірено зовні, але вся можливість складається з частин, обчислених за моделлю, тож можливість залишається обчисленою за моделлю — Тест хі-квадрат 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: мультиГНСС 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) leo_fusion::ppp::tests (the_filter_is_consistent_over_monte_carlo_seeds: 24 зерна, усереднене за прогонами середнє NEES у [2,4, 3,6] і щонайменше 75% епох усередині двосторонньої 95% смуги хі-квадрат; виміряно зі 150 зернами, середнє 2,84 лише для GNSS і 2,87 з LEO; leo_augmentation_shortens_convergence; same_seed_same_answer_and_every_number_has_a_unit); tests/leo_fusion_scenarios.rs (ppp_convergence_of_the_bundled_scenario_shortens_monotonically)
Передавання часу до 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/N0 InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Внутрішня узгодженість: опублікований вираз зміщення, обчислений вручну, нормована похибка за 40 зерен і нижня межа, задана невизначеністю зміщення. Цифра NIST для приймачів часу Iridium з мініатюрним атомним годинником (менше 40 нс від UTC(NIST) за 40 діб) є лише порівнянням; вбудований сценарій Iridium дає 10 до 11 нс СКВ за номінальної потужності з репрезентативною похибкою дальності 5 м. Фліккерний частотний шум та іоносферну затримку не змодельовано leo_fusion::timing (simulate, utc_offset_s, system_to_utc_s); leo_fusion::pvt_kind (run_timing) leo_fusion::timing::tests (the_utc_offset_follows_the_is_gps_200_expression; continuous_tracking_approaches_the_measurement_floor_and_gaps_cost_time; the_filter_is_consistent_over_seeds; the_utc_offset_uncertainty_sets_a_floor); tests/leo_fusion_scenarios.rs (leo_timing_error_grows_as_the_c_n0_falls)
Іменовані системи LEO PNT як необов'язкові пресети даних, кожна із джерелом Вхідні дані, незалежні від системи: кожна система є оболонками Уокера, явними елементами або пресетом GNSS, сигналом (несівна, швидкість чипів, ширина смуги, прийнята потужність або діапазон C/N0), SISRE, сигмою доплерівського зсуву та моделлю годинника; пресети заповнюють лише те, що сценарій залишає, по одному файлу на пресет з джерелами, позначеними PUBLIC (з URL), WORKSHOP або ВИВЕДЕНИМИ, а неопубліковані значення перелічено як репрезентативні: Xona Pulsar X1/X5, Iridium STL, сигнали нагоди Starlink, CentiSpace, репрезентативна система C-діапазону, ефемеридна модель ATOMIC з нульовим годинником і один пресет, виведений із workshop, в необов'язковому файлі пресету Celeste IOD, який вилучається видаленням цього файлу та його сценаріїв InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Транскрипція процитованих публічних значень, перевірена на структуру (кожне публічне джерело має URL, патерни Walker ділять рівно, C/N0 з прийнятої потужності над kT за 290 K), а не за зовнішнім оракулом. Репрезентативні значення названо в кожному пресеті, і вони ілюстративні leo_fusion::presets (all, by_id, cn0_range_dbhz, noise_density_dbw_hz); leo_fusion::system (SystemCfg::build) leo_fusion::presets::tests (every_preset_has_a_source_and_every_public_source_a_url; only_one_preset_uses_workshop_material; noise_density_at_290_k_is_minus_204_dbw_per_hz); tests/workshop_preset_isolation.rs (only_the_listed_files_name_the_workshop_preset; workshop_numbers_live_only_in_the_preset_file_and_its_scenarios: скани тексту джерел src, scenarios і tests); leo_fusion::system::tests (a_preset_fills_what_the_scenario_leaves_out; a_system_needs_no_preset; pseudorange_sigma_falls_with_elevation_and_never_below_the_sisre)
Одна система LEO-PNT наскрізно: проєкт сигналу, бюджет лінії проходу, навігаційне повідомлення та злите позиціонування, вихід кожної стадії передається наступній Вид leo-pnt-chain: проєкт leo-signal (публічний пресет або вбудований) задає центр, ширину смуги, швидкість чипів і розподіл EIRP діапазону leo-pass; прохід дає C/N0 компонента, що відстежується, і джитер коду в обмеженій смузі для кожної епохи; лінія C/N0 за найменшими квадратами за sin(висота), SISRE повідомлення leo-navmsg (апроксимований на орбіті супутника проходу, плюс заявлений складник визначення орбіти як корінь із суми квадратів) та несівна й швидкість чипів проєкту передаються кожній системі LEO спільного фікса leo-pvt і, за потреби, випадкам LEO в leo-ppp; кожну передачу повідомлено зі значенням і одиницею InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Самоузгодженість передач: кожне передане значення дорівнює власному виходу попередньої стадії, а мутація входу попередньої стадії зсуває кожну залежну від неї цифру нижче за ланцюгом. Стадії зберігають власні позначки; ланцюг не додає ні фізики, ні зовнішнього оракула leo_pnt_chain (LeoPntChainScenario); leo_pass (BandCfg::signal, design_tracking); leo_navmsg (LeoNavmsgScenario::broadcast_sisre); leo_fusion::pvt_kind; leo_fusion::ppp leo_pnt_chain::tests (a_sine_line_fit_recovers_its_line); tests/leo_pnt_chain.rs (every_upstream_change_moves_the_downstream_figures: сильніший EIRP, довший інтервал апроксимації та більший член визначення орбіти кожен зсуває передане значення й злите визначення; the_handed_on_values_are_the_stage_outputs; a_band_design_splits_the_eirp_and_reports_the_design_jitter; the_pass_export_reproduces_the_engine_range)
Виявлення спуфінгу за узгодженістю доплерівського зсуву LEO та геометрії проходу Розділ [spoofer] виду leo-pass: спуфер підробляє, узгоджено за дальністю та швидкістю її зміни, сигнали, які видно в заявленому положенні, що стрибає та/або відсувається від істинного після початку (для кожного діапазону LEO та сигналу MEO GNSS); приймач передбачає кожну швидкість зміни дальності за широкомовною орбітою та незалежним апріорним положенням і швидкістю та перевіряє виміряні швидкості зміни дальності узагальненою статистикою хі-квадрат за найменшими квадратами на вікні епох (дрейф годинника є завадним параметром або з апріорним), на каналах GNSS, каналах LEO та всіх каналах, з тепловим шумом системи фазового автопідлаштування за частотою з C/N0 (Kaplan & Hegarty 2006, розділ 5.6.2); імовірність виявлення з нецентрального закону хі-квадрат за заданої імовірності хибної тривоги, виявлення оголошується за заданої імовірності пропущеного виявлення InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Замкнені форми й тотожності, а не зовнішнє вимірювання: градієнт швидкості зміни дальності проти центральної різниці, статистика в інформаційній формі проти щільної коваріаційної форми, чистий дрейф годинника, що дає нуль, поштовх, який пояснює апріорне, що дає щонайбільше |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_link::spoof::tests (the_gradient_is_the_derivative_of_the_range_rate; fll_jitter_matches_the_formula_by_hand; a_common_mode_residual_is_a_clock_drift_and_is_not_detected; with_no_prior_and_equal_noise_the_statistic_is_the_scatter_about_the_mean; a_push_the_prior_explains_is_not_detected; a_velocity_push_is_hidden_by_a_loose_velocity_prior_only; the_information_form_equals_the_covariance_form); tests/leo_resilience_verticals.rs (the_monitors_are_silent_before_the_onset; the_doppler_statistic_is_quadratic_in_the_jump; leo_range_rates_see_a_jump_that_gnss_range_rates_do_not)
Виявлення спуфінгу за міждіапазонною узгодженістю багатодіапазонного сигналу LEO Для кожного супутника LEO та пари далекомірних діапазонів розділ [spoofer] формує безгеометричну комбінацію псевдодальності, вилучає модель іоносфери приймача та перевіряє її крок від епохи до епохи щодо кодового шуму двох діапазонів і заявленої допустимої немодельованої швидкості іоносфери (двобічна гаусова, точна ймовірність виявлення); спуфер, що підробляє одні діапазони й не підробляє інші, або кожен діапазон без іоносфери, помітний у момент початку; спуфер, що підробляє кожен діапазон і симулює іоносферу, непомітний, про що результат прямо зазначає InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Тотожності: ступінь початку спуфера без іоносфери дорівнює змодельованій різниці іоносферних затримок пари, поріг є двостороннім нормальним квантилем, помноженим на стандартне відхилення кроку, плюс межа швидкості. Іоносферна модель приймача є моделлю рушія, тож справжня нев'язка в середньому нульова за побудовою; зовнішнього оракула немає leo_link::spoof (cross_band_step); leo_pass (spoof_section: pairs, cross_band) leo_link::spoof::tests (the_cross_band_threshold_and_power); tests/leo_resilience_verticals.rs (a_ground_spoofer_leaves_the_ionospheric_step_and_an_ionosphere_aware_one_does_not; a_one_band_spoofer_is_seen_by_the_cross_band_monitor_at_the_onset; the_monitors_are_silent_before_the_onset)
Зондування іоносфери: похилий TEC із дводіапазонної затримки проходу LEO Для кожної пари діапазонів супутника leo-pass звіт дає похилий повний електронний вміст, який безгеометрична кодова комбінація відновлює на піку проходу, (P2 - P1) f1^2 f2^2 / (40,3 (f1^2 - f2^2)), та його 1-сигму з теплового кодового шуму двох діапазонів, тож будь-який багатодіапазонний проєкт LEO-PNT можна оцінювати як іоносферний зонд InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Тотожність дисперсії першого порядку, точна за побудовою проти власної затримки першого порядку рушія (чий масштаб 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 на вечірній дузі; СКВ на епоху 3,95 TECU) проти порогу «кожна дуга»; не перевірено за незалежним зовнішнім еталоном leo_pass (IonoFreePair::geometry_free_stec_tecu, geometry_free_stec_sigma_tecu); leo_link::iono::geometry_free_stec_tecu tests/leo_resilience_verticals.rs (the_geometry_free_tec_is_the_pass_slant_tec: дорівнює похилому TEC проходу в піку з точністю 1e-9, а його сигма дорівнює RSS кодового шуму над 40,3 (1/f1^2 - 1/f2^2)); tests/geometry_free_tec_gim_oracle.rs::geometry_free_finding_is_pinned
Морська оцінка довіри: агрегування доказів моніторів у оцінку 0–100 і її три смуги Кожен монітор зводить свої докази до відношення статистики до порога; оцінка дорівнює 100 мінус сума за моніторами ваги, помноженої на обмежену лінійну рампу відношення (0 до 0,5, 1 на 1,5), обмежена до 0–100 і округлена до 0,1, зі смугами на 90 і 55; кожна епоха перелічує монітори, що зняли бали, та їхні бали. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Реалізація проти специфікації, НЕ зовнішній оракул: чиста повторна реалізація мовою 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) tests/maritime_trust_reference.rs::t5_score_matches_the_clean_room_reading_of_the_documented_rule; receiver_trust::score::tests (монотонна за кожною статистикою, додавання монітора ніколи не підвищує оцінку, здорові статистики залишаються на 100)
Область джерела завад: допустима область випромінювача за повідомленнями про положення літаків і суден Допустима область, де може перебувати джерело спотворених навігаційних повідомлень, за повідомленнями про положення ADS-B (NIC/NACp) або AIS: радіолінія прямої видимості за радіусом Землі 4/3 з висоти повідомлення та діапазону висот антени випромінювача, обмежена ефективна дальність для невідомої потужності, уражені одиниці тягнуть апостеріорний розподіл до свого охоплення, а неуражені одиниці з прямою видимістю штовхають проти нього, згруповані в сесії за часом і простором. Результат — області найвищої щільності на заданих рівнях довіри, апостеріорний центроїд з моментним еліпсом, початок, кінець, тривалість сесії, уражена площа та кількість різних літаків вище мінімуму для публікації, добовий профіль і години на добу. Без рельєфу; одне джерело на сесію; достовірність обумовлена моделлю. Необов'язкове злиття з фіксом TDOA з geolocation. InternalConsistency звірено з власною замкненою / аналітичною тотожністю — це виявляє помилки перенесення та коефіцієнтів, але не є зовнішнім оракулом — Поки зовнішніх немає. Лише синтетичні прямо-зворотні цикли від генератора, що ділить модель оцінювача, тож вони перевіряють код і калібрування заданих рівнів за цією моделлю і нічого про справжні випромінювачі. Зовнішню перевірку за опублікованими майданчиками передавачів Jammertest 2025 було попередньо зареєстровано (docs/emitter-region/PREREGISTRATION.md, схвалено власником до будь-якого оцінюваного прогону) і виконано один раз (docs/emitter-region/RESULTS.md): ADS-B NOT ASSESSABLE (2 заплановані сесії, менше за зареєстрований мінімум 4) і AIS NOT ASSESSABLE (немає опублікованої сесії), тож жоден поріг не перевірявся, і рядок лишається MODELLED interference_map::emitter (estimate, sessions, build_units, profile, GaussianFix::from_tdoa), interference_map::emitter_out (locate), kshana interference-map locate модульні тести interference_map::emitter (круговий цикл проєкції, показник горизонту, синтетичні прямо-зворотні цикли: відомий випромінювач лежить усередині заданого регіону приблизно із заданою частотою, граничні випадки, кластеризація сесій, профіль, приватність і формулювання); випадки locate у tests/interference_map_cli.rs
Події SIEM телеметрії довіри: Log Event Extended Format (LEEF) через syslog Події зміни смуги (або за епохою) як корисні навантаження Log Event Extended Format 2,0 в оболонці RFC 5424 через UDP або TCP, із задокументованим відображенням полів. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — ЩО ПЕРЕВІРЕНО: власні тести цього крейта на точні рядки задокументованого відображення полів LEEF і поля оболонки RFC 5424; підтримуваного відкритого розбирача LEEF не існує (пошук в індексі пакетів Python нічого не знайшов), тож формат перевірено за власною специфікацією, прочитаною тим самим автором, а не за зовнішнім оракулом. ЩО НЕ ПЕРЕВІРЕНО: чи приймає корисне навантаження LEEF розбирач будь-якого постачальника або SIEM; правила екранування поза задокументованими; поведінку справжнього збирача syslog. telemetry (syslog: leef, rfc5424, SyslogSink; time) telemetry::syslog::tests (точні рядки LEEF, екранування, серйозність, оболонка RFC 5424, тайм-аути доставки та повторне з'єднання); tests/telemetry_cli.rs
Пороги завад приймача-довіри, відкалібровані на наборі даних JammerTest 2024 receiver_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); типове правило та кожен вихід без нього не змінюються ExternalDataset підпункт перевірено зовні, але вся можливість складається з частин, обчислених за моделлю, тож можливість залишається обчисленою за моделлю — Опубліковані журнали подій набору даних (вікна 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 tests/receiver_trust_jammertest_calibration.rs::the_recorded_calibration_reproduces (проігнороване, з обмеженням даними за KSHANA_JAMMERTEST_DIR: записаний відбір, кількості на відкладених даних, вердикти порогів і вердикт); receiver_trust::calibration::tests (мітки часу, парування вікон і зсув часового поясу, мітки, захисні смуги, виключення, відбір); receiver_trust::monitors::tests::threshold_profile_is_opt_in
Оцінювання Jammertest: журнал приймача, оцінений за кожним запланованим випробуванням (затримка виявлення, пропущені тривоги, хибні тривоги, час відновлення) відповідно до опублікованого плану випробувань jammertest::{plan, score, dataset} (kshana jammertest import|score): каталог випробувань NPRA і план передавання (MIT, завантажені із закріпленим SHA-256, ніколи не включені до репозиторію) читаються як запланована істина зі збереженням ідентифікаторів каталогу; прогін receiver-trust оцінюється за кожним випробуванням (перша тривога мінус плановий початок, виявлено/із запізненням/пропущено відносно допуску, час до першого відрізка без тривог, тривоги поза всіма слотами та їхнім охоронним інтервалом) із підписаним пакетом доказів, що містить підсумкову картку оцінок. Розклад — це заплановані слоти, а не записані часи фактичного випромінювання ExternalDataset підпункт перевірено зовні, але вся можливість складається з частин, обчислених за моделлю, тож можливість залишається обчисленою за моделлю — Кількості слотів плану за областями тестування (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). Набір NMEA SimulaMet за 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 tests/jammertest_plan_roundtrip.rs (з обмеженням даними за KSHANA_JAMMERTEST_PLAN_DIR: кількості слотів за областями тестування плану 2025, ідентифікатори каталогу, кругове перетворення TOML); tests/jammertest_score.rs (синтетичний журнал із відомим спадом: виявлено, пропущено, не придатне до оцінки, прогін хибної тривоги, підписаний пакет із таблицею результатів); jammertest::plan::tests; tests/jammertest_score_2024.rs (з обмеженням даними за KSHANA_JAMMERTEST_DIR: записаний прогін)
Зіставлення з публічними рамковими документами щодо compliance compliance (kshana compliance-report): відображення результатів Kshana на пункти публічних рамок лише за номерами, заповнене з наданих прогонів; результат зараховується для можливості лише тоді, коли містить докази, які називає відображення, порожній набір нічого не засвідчує, а формулювання — «підтримує докази для» (supports evidence for); звіт не є висновком, що будь-яку рамку виконано, і не є оцінкою чи схваленням будь-кого. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Посилання, перевірені за витягнутим скриптом індексом заголовків цитованих публічних документів, прочитаних 2026-10-10 (tests/compliance_references.rs). ЩО ПЕРЕВІРЕНО: 49 цитованих посилань на пункт, розділ, абзац чи заголовок існують у цитованому документі, а 7 цитованих URL розв'язалися в записану дату (2 через другий маршрут); негативні контролі провалюються. ЩО НЕ ПЕРЕВІРЕНО: чи правильний будь-який переказ, відображення чи прогалина; пункти EN 16803 (платні, лише текст каталогу); пізніші редакції; індекс не є незалежною реалізацією. compliance tests/compliance_report.rs::mapping_is_well_formed; tests/compliance_report.rs::wording_rule_holds_in_mapping_report_and_docs; tests/compliance_report.rs::empty_set_evidences_nothing; tests/compliance_report.rs::statuses_follow_the_runs_present; tests/compliance_references.rs
Морські інтеграції: плагін 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): відповідальність за навігацію судна залишається на операторі. IntegrationRun перевірено на справжньому хост-застосунку; інтеграційний прогін не є незалежним оракулом — ЩО ПЕРЕВІРЕНО, сказано вузько: що ці інтеграції працюють із справжнім програмним забезпеченням, для якого їх написано. ДОКАЗИ зафіксовано в integrations/signalk/evidence/README.md (з його файлами JSON) та integrations/opencpn/evidence/README.md (з його знімками екрана та журналами), кожен зі скриптом, що їх відтворює. (1) Signal K: плагін завантажено в зафіксований пакет npm signalk-server 2.33.0 у приватному просторі імен мережі лише з петлею, із синтетичними даними на вході. Власні інтерфейси 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 (live: the gate, its TCP listener, PKSHT); outside the crate: integrations/signalk (JavaScript), integrations/opencpn (JavaScript relay, C++ native plugin), deploy/reference-build (systemd units, container) tests/receiver_trust_live_cli.rs (шлюз і його TCP-слухач, сторона Rust); integrations/signalk/test/adapter.test.js, integrations/signalk/test/model.test.js і integrations/signalk/test/plugin.test.js (24 тести Node на записаному синтетичному виході); integrations/opencpn/test/relay.test.mjs (5 тестів Node); integrations/opencpn/test/e2e-live.mjs (справжній двійковий файл до споживача TCP, запускається вручну та в CI); integrations/opencpn/plugin/test/pksht_test.cpp і integrations/opencpn/plugin/test/trust_state_test.cpp (перевірки C++ розбирача PKSHT і стану панелі); deploy/reference-build/check-units.sh і deploy/reference-build/test-entrypoint.sh
Стеження за BOC(1 1): масштабування DLL і розв'язання неоднозначностей bump-jump (за вибором) Поле boc в iq::track::LoopConfig (за вибором, за замовчуванням None): три дискримінатори DLL, масштабовані так, що вони показують похибку коду в чипах з одиничним нахилом на головному піку синусного BOC(1 1), і монітор bump-jump на дуже ранньому та дуже пізньому корелятора за піврізницею піднесучої (0,5 чипа), який перестрибує NCO коду до головного піку, коли лічильник вгору/вниз досягає N (8 за замовчуванням). Без цього параметра всі вихідні дані не змінюються. InternalConsistency перевірено за власною замкненою / аналітичною тотожністю — виявляє помилки переписування та коефіцієнтів, але не є зовнішнім оракулом — Внутрішня узгодженість проти ін'єктованої істини та замкнених форм за порогами, попередньо зареєстрованими на 6b68f6cc (docs/design/evidence/boc-bump-jump/). Інформаційний сигнал BeiDou B1C (PRN 19, 5 МС/с), згенерований 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) tests/iq_boc_bump_jump.rs (b1_b2_b3_side_peak_and_false_jumps_on_the_iq_chain, b4_scaling_on_the_sampled_signal, b5_false_jump_rate_and_detection_at_correlator_level); модульні тести iq::track::boc (b4_unit_grid_misses_are_the_recorded_ones: попередньо зареєстрований поріг модульного тесту B4 збережено як написано, його записані промахи стверджено як висновок F1)
Канал іоносферних мерехтінь IQ (модель Cornell) порівняно з виміряними мерехтіннями GPS L1 на 50 Гц iq::channel::scint, модель мерехтінь Cornell (інтенсивність за Райсом, спектр Баттерворта другого порядку, фаза arg z), що працює із виміряними для вікна S4 і часом декореляції інтенсивності та порівнюється за тим, що вона породжує понад ці два входи; realdata::scint50 читає виміряний журнал, прибирає тренд і виконує порівняння. ExternalDataset підпункт перевірено зовні, але вся можливість складається з частин, обчислених за моделлю, тож можливість залишається обчисленою за моделлю — Виміряні дані за порогами, попередньо зареєстрованими на 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) tests/iq_scint_malindi_measured.rs (cornell_model_verdict_is_the_recorded_one, зареєстрований вердикт перевіряється як записаний, знахідка F1; finding_model_fades_are_deeper_and_longer_than_measured; posthoc_b3_with_the_model_phase_unwrapped, лише повідомляється; залежить від даних, завантажуються скриптом scripts/fetch_scint_malindi.sh); модульні тести realdata::scint50 (model_data_through_the_harness_shows_the_wrapped_phase_finding, знахідка F2)
Варіант CFAR з усередненням за комірками в IQ-захопленні iq::acq::ca_cfar і ca_cfar_cells (за вибором): комірка сітки захоплення порівнюється із середнім опорних комірок її рядка Доплера (охоронні лаги та крок лагів, із циклічним переходом по періоду) з коефіцієнтом alpha, заданим із замкненої формули ймовірності хибної тривоги CA-CFAR для M некогерентних блоків (ca_cfar_pfa, ca_cfar_alpha). Детектор за потужністю відліку залишається типовим, і всі наявні вихідні дані не змінюються. InternalConsistency перевірено за власною замкненою формою / аналітичною тотожністю — виявляє помилки транскрипції та коефіцієнтів, але не є зовнішнім оракулом — Замкнена форма, за порогами, попередньо зареєстрованими в 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) tests/iq_acq_cfar.rs (c1_closed_form_matches_monte_carlo_of_the_exact_model, c2_false_alarm_rate_on_gaussian_noise, c3_false_alarm_rate_on_two_bit_noise, c5_decisions_do_not_depend_on_the_input_scale; c4_noise_free_two_bit_signal_verdict_is_the_recorded_one, зареєстрований вердикт перевіряється як записаний, знахідка F1, зафіксована тестом finding_noise_free_sidelobes_exceed_the_cfar_rate); модульний тест iq::acq ca_cfar_closed_form_reduces_to_the_textbook_case_and_inverts
Модель спектра: смуги ГЛОНАСС, 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)), із несівними та мінімальними потужностями прийому з їхніх документів керування інтерфейсом; типовий набір смуг і всі наявні вихідні дані не змінюються. InternalConsistency перевірено за власною замкненою формою / аналітичною тотожністю — виявляє помилки транскрипції та коефіцієнтів, але не є зовнішнім оракулом — Опубліковані документи керування інтерфейсом і замкнені форми, за порогами, попередньо зареєстрованими в 5806f28b (docs/design/evidence/spectrum-bands/): GLONASS ICD Edition 5,1, BDS-SIS-ICD B1I 3,0, B1C 1,0, B2a 1,0 і B3I 1,0, Galileo OS SIS ICD Issue 2,1. MET: кожна несівна, швидкість чипів і прийнята потужність як транскрибовано (28 каналів GLONASS), перші нулі BPSK на швидкості чипів, складений сигнал B1C дорівнює MBOC(6,1,1/11), як дає таблиця потужності його ICD, тотожність тракту C/N0 і побайтово ідентичні спектральні сценарії. NOT MET: поріг одиничної площі, якого було неможливо досягти в тому вигляді, як його записано (знахідка F1; площі дорівнюють замкненій формі частки в смузі), і поелементна згода форм сигналів B1I і B1C шару IQ з огинаючою моделі (1,26 і 1,56 дБ проти 0,5 дБ, знахідка F2; GLONASS 0,07 дБ), бо коди Голда та Вейля мають нерівномірні лінійчаті спектри; усереднені за смугою головні пелюстки збігаються в межах 0,25 дБ. ЩО НЕ ПЕРЕВІРЕНО: записані дані IQ, інші сигнали, завади всередині системи. spectrum (default_band, MORE_BAND_NAMES, GLONASS_CHANNELS) tests/spectrum_more_bands.rs (s1_new_bands_carry_their_icd_values, s2_nulls_and_b1c_parts, s4_cn0_paths_agree_on_the_new_bands; s2_closed_form_densities_verdict_is_the_recorded_one, знахідка F1, зафіксована тестом finding_s2_areas_are_the_closed_form_in_band_fraction; s3_iq_layer_verdict_is_the_recorded_one, знахідка F2, зафіксована тестом finding_s3_per_bin_errors_follow_the_code_line_spectrum; posthoc_s3_band_averaged_shape, лише повідомляється)
Третинні коди LunaNet AFS і шар повідомлень (SB1 BCH, CRC-24Q, перемежувач) порівняно з LSIS-AFS V1.0 iq::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 не реалізовано (його матриці наведено в окремому додатку). ExternalDataset підзадачу перевірено зовні, але можливість загалом складається з обчислених за моделлю частин, тож можливість залишається обчисленою за моделлю — LSIS-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) tests/lunanet_afs_codes.rs (b4_legendre_1499_matches_and_tertiary_codes_match_except_one_printed_column, the_spec_check_reports_every_bar_and_pins_the_b4_miss); iq::lunanet_afs::tests (sb1_round_trips_every_field_and_corrects_flipped_symbols, generated_streams_pass_and_damage_is_found); tests/lunanet_afs_cli.rs
Пакети стандартів: сценарії, оцінені за порогами, заявленими до прогону standards_pack (kshana standards-pack): тестові профілі рамки DHS Resilient PNT для рівнів від 1 до 4, рівні точності IMO MSC.1/Circ.1575 та оцінювання цілісності, а також пакети ICAO Doc 9849, додаток F, — моніторинг, оцінювання та пом'якшення: кожен тест запускає вбудований вид сценарію і порівнює поля результату з порогами, заявленими в пакеті, а тести, яким потрібен журнал приймача, перелічено як NEEDS INPUT і не оцінюються. InternalConsistency перевірено за власною замкненою формою / аналітичною тотожністю — виявляє помилки транскрипції та коефіцієнтів, але не є зовнішнім оракулом — Зовнішніх немає для результатів сценаріїв: кожен тест пакета запускає сценарій виду 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) tests/standards_packs.rs (pinned_outcomes: статус кожного тесту, зокрема промахи L4-T1 і чотири тести точності IMO); standards_pack::tests
Пакет доказів лабораторного кругового випробування (сценарій, умови випробування, журнал приймача, оцінка) evidence::roundtrip (kshana evidence round-trip) і експорт журналу приймача kshana.test-conditions/1 з kshana bench-export: підписаний пакет, що записує хеш сценарію, хеш заявлених умов, хеш журналу та оцінку щодо заявлених подій, і відмовляє в умовах, які не збігаються з подіями оцінювання, чи в журналі, хеш якого не є заявленим. Сигнал не записується, не відтворюється і не планується. InternalConsistency перевірено за власною замкненою формою / аналітичною тотожністю — виявляє помилки транскрипції та коефіцієнтів, але не є зовнішнім оракулом — Зовнішніх немає: пакет пов'язує геш-суми та оцінку журналу приймача MODELLED, перевірену на синтетичних даних (експортований NMEA вбудованого сценарію розглядається як журнал приймача). Лабораторний прогін не заявляється evidence::roundtrip, evidence::assemble, interop::testbench (write_conditions_json), iq::campaign::conditions tests/round_trip_pack.rs (pack_links_scenario_conditions_log_and_score_and_verifies, conditions_that_disagree_with_the_scoring_events_are_refused, a_stated_log_hash_that_does_not_match_is_refused, published_schema_names_every_field_the_engine_writes)
Рушій стеження 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 дБ-Гц. ExternalDataset підзадачу перевірено зовні, але можливість загалом складається з обчислених за моделлю частин, тож можливість залишається обчисленою за моделлю — GNSS-SDR 0.0.19 (GPL-3.0-or-later, пакет Ubuntu 24,04, запускається як окрема програма; зафіксовано лише похідні числа) відстежує ті самі записи numpy (незалежні від рушія), обидва виміряні відносно аналітичної істини. Пороги попередньо зареєстровано в 48edd4a5, змінено до будь-якого тестового запису в 1e4288c4 (FLL 10 Гц лише під час втягування в обох приймачах, після того як зареєстроване калібрування не пройшло через помилкову передачу керування GNSS-SDR, знахідка F3). MET на 30, 35, 40 і 45 дБ-Гц: тремтіння несівної в межах 4,3 %, тремтіння коду в межах 4,6 %, а середнє та розкид Доплера в межах показників GNSS-SDR. NOT MET: NWPR C/N0 рушія показує на 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 tests/iq_track_gnss_sdr_oracle.rs (calibration_passes_for_both_receivers, registered_bars_give_the_recorded_verdict, recorded_numbers_are_pinned), на числах, отриманих за допомогою tests/fixtures/iq_track_gnss_sdr_oracle/make_fixture.py
Коефіцієнти підсилення антени 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 в умовах протидії глушінню. ReferenceImpl перевірено за окремою реалізацією в цій самій кодовій базі — незалежною від досліджуваного модуля, але не зовнішньо авторитетною — Незалежне перерахування в numpy (xval/crpa-jamming/oracle.py, без спільного коду: вектори керування numpy, numpy.linalg.solve та inv) кожної ланки геометрії демонстрації глушіння з 4-елементною квадратною решіткою за обох зважувань. Пороги попередньо зареєстровано в 08d83b4d. MET: A1 (усі 150 результатів сценаріїв побайтово ідентичні без цього розділу, після виправлення: перша збірка додавала одиниці crpa до таблиці одиниць кожного прогону глушіння), 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) tests/jamming_crpa.rs (a1_crpa_units_only_with_the_section, a2_one_element_is_no_array, a3_verdict_is_the_recorded_one, a4_mvdr_tends_to_the_null_at_high_jnr), проти xval/crpa-jamming/expected.json із xval/crpa-jamming/oracle.py
Затінення глушника рельєфом у виді jamming порівняно з незалежним перерахунком у numpy на реальному тайлі SRTM Необов'язковий розділ [terrain] виду jamming: профіль рельєфу вздовж великого кола між глушником і приймачем на тайлі SRTM .hgt із випуклістю Землі за k-фактором, домінантне лезо ножа (найбільше значення Френеля–Кірхгофа nu) і втрати на одному лезі ножа за ITU-R P.526-15, розділ 4,1, що віднімаються від потужності глушника на вході приймача. ReferenceImpl перевірено за окремою реалізацією в цій самій кодовій базі — незалежною від досліджуваного модуля, але не зовнішньо авторитетною — Незалежне перерахування в 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 м, що є гранично-ковзним випадком моделі з одним ножовим краєм. ЩО НЕ ПЕРЕВІРЕНО: будь-яке виміряне поширення, дифракція на кількох краях, відбиття від землі, місцеві перешкоди, власна похибка DEM. Перерахування тієї самої моделі, не зовнішній оракул; рядок залишається MODELLED. jamming_terrain (TerrainCfg, jammer_terrain, knife_edge_loss_db); jamming (run_jamming_sky) tests/jamming_terrain.rs (b1_terrain_units_only_with_the_section, b2_every_placement_matches_the_independent_numpy_recomputation, b3_the_loss_never_rises_as_the_jammer_rises, b4_the_loss_reaches_every_js_and_nothing_else, b5_the_knife_edge_function_matches_the_reference_expression), проти xval/jamming-terrain/expected.json із xval/jamming-terrain/oracle.py
Гістерезис захоплення та квантувач фронтенда у виді jamming порівняно з незалежними перерахунками Необов'язкові розділи виду jamming [acquisition] (супутник захоплюється на порозі захоплення або вище після затримки повторного захоплення й утримується, поки значення на порозі стеження або вище) та [front_end] (показання AGC 10 log10(1 + J/N) і втрати квантувача АЦП на гаусівському вході, що віднімаються від кожного каналу та позначаються як недійсні для негаусівських глушників). ReferenceImpl перевірено за окремою реалізацією в цій самій кодовій базі — незалежною від досліджуваного модуля, але не зовнішньо авторитетною — Незалежне перерахування на 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) tests/jamming_acq_agc.rs (h1_g1_units_only_with_their_section, h2_no_hysteresis_is_no_hysteresis, h2s_no_hysteresis_is_no_hysteresis_on_the_supplementary_runs, h3_flags_match_the_independent_recomputation, h3s_flags_match_the_independent_recomputation_on_the_supplementary_runs, h4_monotone_in_the_acquisition_threshold, h4s_monotone_in_the_acquisition_threshold_on_the_supplementary_runs, g2_quantiser_loss_matches_the_independent_monte_carlo, g3_agc_reading_matches_the_iq_layer_agc_loop), проти xval/jamming-acq-agc/expected_hysteresis.json, expected_hysteresis_s1.json і expected_quantiser.json
Обмежене входження 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. InternalConsistency перевірено за власною замкненою формою / аналітичною тотожністю — виявляє помилки транскрипції та коефіцієнтів, але не є зовнішнім оракулом — Внутрішня узгодженість з уведеною істиною: синтетичне джерело 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 % від самої PLL (10,8 проти 6,1 градуса при 33 дБ-Гц). ЩО НЕ ПЕРЕВІРЕНО: біти даних, інші сигнали та частоти дискретизації, польові записи. Типове значення не змінено; рядок залишається MODELLED. iq::track (LoopConfig, FllGate, design); iq::track::channel (the FLL gate) tests/iq_fll_handover_floor.rs (registered_bars_give_the_recorded_verdict, d1_the_key_is_part_of_the_hash_only_when_set, d4_the_capped_design_pulls_in_a_100_hz_handoff_error), на tests/fixtures/fll_handover_floor/results.csv
Зчитувач розв'язку RTKLIB .pos для receiver-trust Читає файл розв'язку RTKLIB (календарний час або тиждень GPS/секунди тижня, положення за широтою/довготою або ECEF, кількість використаних супутників) у часову шкалу receiver-trust (receiver_trust::machines::rtklib). InternalConsistency перевірено за власною замкненою формою / аналітичною тотожністю — виявляє помилки транскрипції та коефіцієнтів, але не є зовнішнім оракулом — Зовнішніх немає: жоден файл, створений RTKLIB, не читався, а розкладка стовпців узята з посібника RTKLIB. Перевірено лише на самостійно написаних файлах; перетворення ECEF повторно використовує frames::ecef_to_geodetic, який має власні рядки receiver_trust::machines::rtklib (read_rtklib_pos); receiver_trust::LogFormat::RtklibPos receiver_trust::machines::rtklib::tests (епохи широти/довготи, тиждень/TOW та ECEF, dms відхиляється, ворожий вхід); tests/receiver_trust_machines.rs::rtklib_pos_runs_as_a_receiver_log; integrations/gnss_lib_py/test_bridge.py
Журнали NovAtel OEM7 у форматах ASCII та двійковому (BESTPOS, RANGE, RXSTATUS) для receiver-trust Читає BESTPOS (положення), RANGE (C/No для кожного сигналу) і RXSTATUS (прапорець глушника приймача як самозвіт епохи) із журналів OEM7 в ASCII та двійковому форматі, з перевіркою CRC, лише для читання (receiver_trust::machines::novatel). InternalConsistency перевірено за власною замкненою формою / аналітичною тотожністю — виявляє помилки транскрипції та коефіцієнтів, але не є зовнішнім оракулом — Зовнішніх немає як порогу проходження. Розкладки полів і CRC відповідають публічній документації OEM7 (docs.novatel.com); підпрограму CRC один раз перевірено за CRC, який документація вказує для власного прикладу BESTPOSA (цитовано, не відтворено дослівно). Тестові набори написано самостійно; жоден журнал реального приймача не читався receiver_trust::machines::novatel (read_novatel, novatel_crc32); receiver_trust::LogFormat::Novatel receiver_trust::machines::novatel::tests (зафіксований CRC, записи ASCII і двійкові, хибний CRC пропускається, ворожий вхід); tests/receiver_trust_machines.rs::novatel_jammer_flag_reaches_the_receiver_self_report
Зчитувач відношення несівна/шум 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. ReferenceImpl перевірено за окремою реалізацією в цій самій кодовій базі — незалежною від досліджуваного модуля, але не зовнішньо авторитетною — ReferenceImpl в одноразовій перевірці, а не в тесті набору: декодер pyrtcm 1.2.0 читає ті самі самостійно написані кадри до того самого C/N0 і часу епохи. Він ділить джерело своїх таблиць із цим читачем, тож перевіряє обробку бітів, а не розкладку. Жоден запис із реального приймача чи базової станції не читався receiver_trust::machines::rtcm3 (read_rtcm3, crc24q); receiver_trust::LogFormat::Rtcm3 receiver_trust::machines::rtcm3::tests (каталожне контрольне значення CRC-24Q, C/N0 MSM4/MSM7 і об'єднання епох, відображення часу GLONASS та ідентифікаторів SBAS, хибний CRC та інші повідомлення)
Адаптер монітора 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). InternalConsistency перевірено за власною замкненою формою / аналітичною тотожністю — виявляє помилки транскрипції та коефіцієнтів, але не є зовнішнім оракулом — Зовнішніх немає: назви полів узято з документації GNSS-SDR; ні читач, ні relay.py не запускалися проти живого GNSS-SDR чи реального запису receiver_trust::machines::gnss_sdr (read_gnss_sdr_monitor); receiver_trust::LogFormat::GnssSdr receiver_trust::machines::gnss_sdr::tests; integrations/gnss-sdr/example.jsonl
Прийом журналів IMU, вхід курсу за гіроскопом і підгонка за Алланом параметрів гібридних датчиків Читає CSV IMU (задокументовані стовпці або розкладка EuRoC); інтегрує швидкість рискання в курс, який читає монітор heading-course ([log.imu]); і підганяє параметри шуму акселерометра та гіроскопа гібридних сценаріїв і сценаріїв злиття за нерухомим журналом через девіацію Аллана з перекриттям (imu-fit). InternalConsistency перевірено за власною замкненою формою / аналітичною тотожністю — виявляє помилки транскрипції та коефіцієнтів, але не є зовнішнім оракулом — Зовнішніх немає: підгонку перевірено на синтетичних журналах білого шуму з відомими коефіцієнтами, курс — на журналах зі сталою швидкістю повороту. Жоден реальний журнал IMU не підганявся, а q_aa не підганяється receiver_trust::machines::imu, imu_fit; surface::imu_fit; scenario [log.imu] receiver_trust::machines::imu::tests; receiver_trust::machines::imu_fit::tests (відомі коефіцієнти білого шуму відновлено в межах 10 %, відмови, TOML розбирається як AccelCfg); tests/receiver_trust_machines.rs (збіг і розбіжність курсу, вбудована несівна, imu_fit)
Експортер виявлення та стану Home Assistant MQTT для телеметрії довіри Документ стану JSON і повідомлення виявлення Home Assistant MQTT для потоку довіри, що виводяться як текст на кожній поверхні та публікуються через MQTT 3.1.1 QoS 0 командним рядком (telemetry::mqtt; trust-telemetry --mqtt-tcp, --print-mqtt, format mqtt). InternalConsistency перевірено за власною замкненою формою / аналітичною тотожністю — виявляє помилки транскрипції та коефіцієнтів, але не є зовнішнім оракулом — Зовнішніх немає: пакети читав петльовий слухач, написаний для тесту, а не справжній брокер, і Home Assistant не запускався telemetry::mqtt (discovery, state_json, connect_packet, publish_packet, MqttSink); surface::TelemetryFormat::Mqtt telemetry::mqtt::tests (байти пакетів, петльовий брокер, мертвий брокер враховано); tests/receiver_trust_machines.rs::trust_telemetry_mqtt_text_has_discovery_then_state
Пакет 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). InternalConsistency перевірено за власною замкненою формою / аналітичною тотожністю — виявляє помилки транскрипції та коефіцієнтів, але не є зовнішнім оракулом — Зовнішніх немає: вузол 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 tests/receiver_trust_machines.rs (rtklib_pos_runs_as_a_receiver_log: формат, який записує міст gnss_lib_py, прогнаний через receiver-trust); тести мостів на Python — це integrations/ros2/kshana_trust/test/test_bridge.py (міст із імітованим рушієм), integrations/ros2/kshana_trust/test/test_engine_integration.py (справжнє колесо оцінює стабільне визначення як номінальне, а стрибок на 1,1 км — як недовірене) та integrations/gnss_lib_py/test_bridge.py (справжній gnss_lib_py 1.1.0 і колесо), запускаються за допомогою pytest, а не cargo

221 можливостей позначено MODELLED.