Карта можливостей — що Kshana робить, робить частково і чого не робить
Kshana — це рушій доказів продуктивності та стійкості PNT (позиціонування, навігації та часу), а не повний інструментарій космічних систем. Він ставить на перше місце синхронізацію часу та holdover — свою найкраще перевірену область (див. POSITIONING.md). Ця сторінка — чесна карта обсягу: для кожної області можливостей, яку може перевіряти рецензент із закупівель чи досліджень, вона вказує статус, що реально існує в коді, чого бракує і де це розташоване на дорожній карті. Статус — один із таких:
- повна — реалізовано наскрізно й перевірено до рівня, указаного в рядку;
- часткова — реальна, але обмежена модель (обсяг явно обмежено нижче);
- відсутня — не змодельовано (наразі поза обсягом).
Ці три — єдині значення, яких набуває стовпчик статусу. Вони оцінюють зрілість можливості, що є іншою віссю, ніж оцінка VALIDATED / MODELLED / PARTNER у VERIFICATION-MATRIX.md — та оцінює походження доказів, рядок за рядком, і перевіряється машинно за src/verification.rs.
Тут немає нічого прагнучого: «часткова» ніколи не означає «майже готово», вона означає «стільки й не більше». Див. також VALIDATION.md, INTEGRITY.md, QUANTUM-MODELS.md і реєстр закриття перебільшень CLAIMS-VS-REALITY.md (кожне історичне перебільшення, як його усунуто, і запобіжник CI (безперервна інтеграція), що підтримує усунення).
Основний PNT (де Kshana справді працює)#
| Можливість | Статус | Що існує | Чого бракує | Дорожня карта |
|---|---|---|---|---|
| Визначення орбіти та пропагація | часткова | SGP4/SDP4 без залежностей (SGP4: Simplified General Perturbations 4; SDP4: Simplified Deep-space Perturbations 4), перевірений до 4,12 мм за всіма 666 векторами AIAA (American Institute of Aeronautics and Astronautics) 2006-6753 (положення і швидкість, остання до 1 мм/с); аналітичний кеплерів + вековий J2; інерціальна швидкість відкрита й подається наскрізно через запускний сценарій ephemeris (src/ephemeris.rs, досяжний з CLI/Python/WASM/MCP (CLI: інтерфейс командного рядка; WASM: WebAssembly; MCP: Model Context Protocol)) — на кожному кроці він видає стан TEME (істинний екватор, середнє рівнодення) і GCRS (Geocentric Celestial Reference System), положення (положення + швидкість), положення ITRF/ECEF (ITRF: International Terrestrial Reference Frame; ECEF: Earth-centred, Earth-fixed), WGS-84 (WGS: World Geodetic System) трасу підсупутникової точки (широта/довгота/висота) та азимут/висоту/дальність станції + швидкість зміни дальності/Доплер (радіальна швидкість зміни дальності збігається з істинною похідною положення без шуму JD (JD: Julian date) до 6e-9 м/с) — і через експорт ефемерид зі швидкістю CCSDS (Consultative Committee for Space Data Systems) OEM (Orbit Ephemeris Message) (--export-oem). Числовий пропагатор (Cowell) (src/propagator.rs) інтегрує настроювану силову модель зонального тяжіння — повне зональне поле Землі до ступеня 6 (forces::zonal_accel, опублікований EGM-96 (EGM: Earth Gravitational Model) J2..J6) — з вибором адаптивного драйвера: подвоєння кроку RK4 (Рунге–Кутта четвертого порядку) або вкладена пара Дормана–Принса RK5(4) (integrate_dopri / propagate_dopri, дешевша вкладена оцінка похибки із 7 обчислень, що проходить ту саму перевірку Кеплера й збігається зі шляхом RK4 до <1 м на орбіті J2..J6) — закріплений аналітичною істиною, сильнішою за числову перехресну перевірку інструментом: незбурена орбіта відтворює точний розв'язок Кеплера в універсальних змінних із точністю до субметра за 24 год (суворіший поріг, ніж «проти еталона < 10 м» віхи), енергія та момент імпульсу зберігаються до ~1e-9 відносно, вузлова регресія J2 збігається із замкненою вікововою швидкістю за теорією першого порядку, зональне прискорення перевірено як точний градієнт власного потенціалу (і таке, що зводиться до перевіреної за 666 векторами замкненої форми J2), а solve_kepler_checked повертає Err замість хибної відповіді, коли Ньютон не збігається (наприклад, біля перигею e = 0,999). Гравітація третіх тіл (Сонця й Місяця), керована епохою, вбудована в інтегратор, що змінюється з часом (ForceModel::third_body / accel_at, з низькоточними ефемеридами Сонця та Місяця Монтенбрука й Гілла з src/ephem.rs — ядро DE/SPK (DE: Development Ephemeris; SPK: planetary ephemeris kernel) не потрібне): кожне обчислення RHS (права частина) бере положення збурювачів на просунуту епоху epoch_jd_tt + t/86400, тож Сонце й Місяць рухаються своїми орбітами під час інтегрування. Збурення перевірено як точний градієнт свого збурювального потенціалу, воно зникає в геоцентрі й має підручникові величини для LEO (низька навколоземна орбіта) (~5e-7 м/с² Сонце, ~1.1e-6 м/с² Місяць); ефемериди Сонця потрапляють у виведені вручну опорні значення J2000 (відстань у перигелії, схилення в сонцестояння ~−23°, рух ~1°/добу), а ефемериди Місяця — у свою оболонку перигею/апогею, середню відстань ~384 400 км, межу нахилу ≤ 5,3° і повернення напрямку за сидеричний місяць; а підключення інтегрування доведено побітово точним (доданок RHS дорівнює third_body_accel у вибраному положенні при t = 0 і t = 1 добі), причому зсув епохи на чверть року дає іншу траєкторію. Тиск сонячного випромінювання (SRP) їде на тому самому RHS, керованому епохою (forces::srp_accel / ForceModel::solar_radiation): модель гарматного ядра ν·P☉·cᵣ·(A/m)·(AU/d)²·d̂ із коефіцієнтом затемнення forces::conical_shadow «тінь+напівтінь» (гладкий ν ∈ [0 1], перевірений на плавне спадання крізь монотонну напівтінь, що виходить за межі циліндра тіні), перевірений за підручниковим тиском на 1 AU (AU: астрономічна одиниця) (≈ 4.54e-6 Н/м²), величиною ~1.36e-7 м/с² для LEO, що відштовхує від Сонця, спаданням за оберненим квадратом (подвоєння відстані до Сонця зменшує вчетверо), точно нульовим прискоренням у циліндрі тіні та пропагованим зміщенням, що масштабується ~лінійно з A/m. Атмосферне гальмування — перший доданок, що залежить від швидкості (forces::drag_accel / ForceModel::drag + новий accel_rv / RHS із передаванням швидкості): квадратичне гальмування −½·ρ(h)·(C_D·A/m)·|v_rel|·v_rel відносно співобертової атмосфери v_rel = v − ωₑ ẑ × r, де ρ — кускова експоненційна за Валладо forces::atmospheric_density — перевірене опорним значенням 1,225 кг/м³ на рівні моря, строго монотонним спаданням для LEO із фізичною шкалою висоти ~58 км, величиною гальмування ~2e-6 м/с², що протидіє відносній швидкості, і сигнатурою дисипації (орбіта 300 км монотонно втрачає питому енергію, а її велика піввісь спадає на обмежені ~км/добу, тоді як вакуумна орбіта зберігає енергію). Постньютонівська (Шварцшильдова) релятивістська поправка — другий доданок, що залежить від швидкості (forces::relativistic_accel / ForceModel::relativity): форма IERS (International Earth Rotation and Reference Systems Service) β = γ = 1 a = (μ/c²r³)·{[4μ/r − v²]·r + 4(r·v)·v}, головний чинник релятивістського зсуву перигею — перевірена за її замкненим колоподібним значенням 3μ²/(c²r³)·r̂ (радіальним, назовні), її підручниковим співвідношенням для LEO ≈1.9e-9 до двотільного, виведеною вручну спрощеною формою радіальної швидкості та консервативною сигнатурою (вона збурює орбіту, але тримає велику піввісь у межах метра/добу, структурна протилежність гальмуванню). Доданок Лензе–Тіррінга (захоплення інерціальних систем) (forces::lense_thirring_accel / ForceModel::lense_thirring, IERS 2010 §10) — це гравітомагнітна поправка понад Шварцшильдову — необов'язкова, на ~1–2 порядки менша за неї на LEO, перевірена на зникнення без обертання Землі та на розташування нижче величини Шварцшильда. Визначення орбіти (OD, src/orbit_determination.rs) замикає цикл від спостережень назад до стану: пакетний метод Гаусса–Ньютона (src/batch_ls.rs) зводить кандидата [r, v] до найкращої підгонки дальностей наземних станцій, пропагованих уздовж дуги (субметр / мм·с⁻¹ за безшумних дальностей; ~2 м із залишком після підгонки на рівні шуму 5 м — сигнатура узгодженої підгонки найменших квадратів), з послідовним рекурсивним варіантом на фільтрі unscented |
Типова силова модель Cowell містить лише зональне поле: високоступеневе тесеральне поле EGM2008 (Earth Gravitational Model 2008) (src/gravity_sh.rs, ступінь/порядок 70, із завантажувачем from_gfc для файлів ICGEM (International Centre for Global Earth Models)) входить лише до рушія точної підгонки ефемерид (src/precise_od.rs; див. AGENCY-ORBIT-VALIDATION.md); густина гальмування — це статична кускова експоненційна за Валладо (незалежна від сонячної активності), а не NRLMSISE-00 (Naval Research Laboratory Mass Spectrometer and Incoherent Scatter Radar Extended atmosphere model; застереження щодо густини термосфери < 5 %); SRP — це модель гарматного ядра з геометричною конічною тінню «тінь+напівтінь» (без потемніння до краю сонячного диска, без тіні від сплюснутої Землі, без форми/орієнтації супутника); релятивізм охоплює доданки Шварцшильда та Лензе–Тіррінга (захоплення інерціальних систем), обидва необов'язкові, але без налаштування параметрів PPN (PPN: parametrised post-Newtonian); третє тіло/SRP використовують низькоточні ефемериди (~0,005° Сонце, ~0,3° Місяць), а не точність ядра DE/SPK. Рівні консервативної силової моделі (двотільна → J2–J6 → Сонце/Місяць → SRP) VALIDATED за Orekit 12,2 (найгірше 0,08 м за 24 год, tests/numerical_cowell_propagator_reference.rs), а пакетне/послідовне визначення орбіти VALIDATED за оцінювачами Orekit 12,2 (tests/batch_sequential_orbit_determination_reference.rs); рівень гальмування та абсолютна точність вхідних ефемерид/густини лишаються MODELLED; перехресної перевірки за GMAT (General Mission Analysis Tool) немає |
тесеральна гравітація в типовій моделі Cowell + гальмування NRLMSISE-00 + потемніння до краю сонячного диска + ефемериди рівня DE + перехресна перевірка за GMAT + вимірювання швидкості зміни дальності/кута для OD та аналітична STM (матриця переходу стану): P2+ |
| Системи часу | часткова | src/timescales.rs: API юліанських дат (цивільна↔JD, MJD (модифікована юліанська дата)), UTC↔TAI (UTC: Coordinated Universal Time; TAI: International Atomic Time) за повною таблицею стрибкових секунд IERS (10→37 с, 1972→2017), TAI→TT (TT: Terrestrial Time), UT1 (Universal Time 1, час обертання Землі) через DUT1 (різниця часу обертання Землі та Coordinated Universal Time) і кут обертання Землі IAU-2000 (IAU: International Astronomical Union) (ERA перевірений побітово за вектором SOFA (Standards of Fundamental Astronomy) eraEra00). Наближення DUT1≈0 на шляху SGP4 явно задокументоване у місці виклику gstime (похибка GMST (Greenwich mean sidereal time) ≤ ~13″, цілком у межах власної похибки моделі SGP4), а сценарій ephemeris приймає явні параметри dut1_s/xp_arcsec/yp_arcsec або вбудований реальний ряд IERS finals2000A (eop_finals2000a / kshana --eop <file>, інтерпольований через той самий EopSeries, що й precise_od), щоб траса на поверхні редукувалася через реальні UT1 / рух полюса IERS, а не лише номінальні скаляри |
Шляхи навколоземних орбіт досі використовують однокомпонентну JD на f64 (роздільність ~50 мкс близько 2020 — саме це, а не алгоритм, є межею для перехресної перевірки скінченними різницями); двокомпонентна JD існує (timescales::TwoPartJd, використовується радіометричними шляхами, шляхами CCSDS-TDM, імітатора наземного сегмента та Сонячної системи, а також src/jd2.rs Jd2) і проведена через SGP4 (Sgp4::propagate_at(Jd2)), прогноз прольотів, геометрію та конструкції Walker (перевірено за SOFA, tests/jd2_sofa_time_oracle.rs), а також через обертання Землі на шляху орбіти (jd2::gmst82, cio::gcrs_to_itrs_matrix_jd2, orbit::Propagator::position_in_frame_jd2, необов'язковий two_part_jd сценарію ефемерид; VALIDATED за ERFA, tests/jd2_earth_rotation_erfa_oracle.rs), з беззбитковими перетвореннями між Jd2 і TwoPartJd; типові шляхи навколоземних орбіт зберігають однокомпонентну дату f64, якщо не задано two_part_jd, а епоха силової моделі Cowell навмисно лишається однокомпонентною f64 (її аналітична похибка Сонця/Місяця затьмарює округлення 40 мкс); UTC з гумовою секундою до 1972 року (1960–1971) змодельовано на двокомпонентному шляху (jd2, timescales::tai_minus_utc_on_date, VALIDATED за ERFA, tests/jd2_pre1972_sofa_oracle.rs), але однокомпонентна f64 timescales::tai_minus_utc досі обмежує до 10 с до 1972; предиктор орієнтації Землі за методом найменших квадратів + авторегресії (src/eop_ls_ar.rs, порівняний з Bulletin A IERS як висновок) тепер може продовжити ряд EOP за його останній рядок (EopSeries::with_ls_ar_prediction, необов'язково; tests/eop_prediction_beyond_table.rs), тож аргументи системи відліку за межами таблиці слідують прогнозу замість обмеження; типовий ряд досі обмежує, а жоден ключ сценарію ще не вмикає прогнозування |
виконано (основа); двокомпонентна JD через обертання Землі на шляху орбіти: виконано (необов'язково в сценарії ефемерид) ; прогноз EOP за межами таблиці: виконано (бібліотека, необов'язково); UTC до 1972 року на двокомпонентному шляху: виконано |
| Системи відліку | повна | src/frames.rs: TEME↔ECEF на основі GMST, геодезична WGS-84↔ECEF (точна + ітераційна обернена, з машинною точністю на всіх висотах) і геодезичний наземний спостерігач станції (азимут/висота/дальність); прецесія IAU 2006 (src/precession.rs: кути Фукусіми–Вільямса (γ̄, φ̄, ψ̄, ε̄_A) + матриця зсуву-прецесії GCRS↔середня на епоху); нутація IAU 2000A/2000B + повний ланцюг TEME→GCRS (src/nutation.rs: повний ряд IAU 2000A — 678 місячно-сонячних + 687 планетарних членів, nutation_iau2000a / nutation_matrix_2000a, таблиця згенерована машинним способом з еталона ERFA (Essential Routines for Fundamental Astronomy) nut00a за допомогою tools/gen_nut00a.py — поряд із 77-членним рядом 2000B, аргументами Делоне, матрицею нутації SOFA iauNumat, рівнянням рівнодень і teme_to_gcrs(r, v, jd_tt) через TEME→TOD→MOD→GCRS (істинна на епоху, середня на епоху) — обидва ряди перевірено побітово за еталонними векторами SOFA/ERFA nut00a/nut00b, Δψ/Δε до 1e-13 рад); рух полюса IERS PEF→ITRF (псевдоземна фіксована до земної) (teme_to_itrf / polar_motion_matrix, SOFA iauPom00, x_p/y_p надаються викликачем — ефект десятків метрів на орбітальному радіусі); редукція IAU 2006/2000A на основі CIO (CIO: Celestial Intermediate Origin) (src/cio.rs: ланцюг GCRS↔CIRS↔ITRS без рівнодення (CIRS: Celestial Intermediate Reference System; ITRS: International Terrestrial Reference System) — CIP (Celestial Intermediate Pole) X,Y з матриці NPB (нутація-прецесія-зсув) 2006/2000A, 66-членний ряд локатора CIO s, gcrs_to_cirs_matrix, кут обертання Землі та повний gcrs_to_itrs_matrix — перевірено побітово за векторами SOFA eraXys06a/eraC2ixys/eraEra00). Наскрізні перетворення тепер прив'язані до опублікованого авторитетного робочого прикладу, а не лише до самоузгодженості: за станом Валладо AIAA 2006-6753 (2004-04-06, з його EOP IERS (параметри орієнтації Землі); tests/frame_reference_vectors.rs) TEME→PEF збігається до 0,1 мм, TEME→ITRF до 0,6 мм, повний CIO GCRS→ITRS до 4 мм, а ECEF→геодезична відтворює широту/довготу/висоту з Прикладу 3-3 Валладо до останньої опублікованої цифри. Увесь ланцюг доступний користувачеві через сценарій ephemeris (положення ITRF/ECEF + траса підсупутникової точки WGS-84 на кожному кроці) |
Типовий ланцюг TEME→GCRS використовує 2000B (~1 mas, нижче за власне спрощення обертання системи швидкості); шлях із < 0,1 mas для повного 2000A доступний через nutation_matrix_2000a, а строга редукція CIO (X, Y, s) — через src/cio.rs. Застарілий шлях TEME використовує GMST IAU-1982 (конвенція SGP4). Незалежна числова перехресна перевірка за ANISE/SPICE (ANISE: Attitude, Navigation, Instrument, Spacecraft, Ephemeris — інструментарій планетарної геометрії на чистому Rust; SPICE: Spacecraft, Planet, Instrument, C-matrix, Events) надана (xval/anise-frames/: gcrs_to_itrs_matrix проти GCRF→ITRF93 ANISE (GCRF: Geocentric Celestial Reference Frame; ITRF93: International Terrestrial Reference Frame 1993) за вісім епох 2020–2023, ≤ 0,86 м на землі, ≤ 3,6 м на орбіті GNSS (глобальна навігаційна супутникова система)); це окремий крейт поза типовими шлюзами CI. precession_matrix і teme_to_gcrs_matrix також перевірено безпосередньо за ERFA на 40 епохах 1950–2100, а ланцюг CIO приймає зсуви небесного полюса IERS dX, dY (cio::gcrs_to_cirs_matrix_with_offsets; tests/frames_erfa_vector_oracle.rs); типові шляхи досі нехтують dX, dY. Матриця верифікації оцінює цей рядок як VALIDATED (вектори SOFA/ERFA + Валладо) |
TEME↔ECEF + геодезична: виконано (перевірено за Валладо); інерціальна TEME→GCRS: виконано (2000B + повна 2000A); ITRF із рухом полюса: виконано (перевірено за Валладо); CIO GCRS→ITRS: виконано (перевірено за Валладо) |
| Синхронізація часу та частота | часткова | Точний двостановий годинник Калмана з van-Loan-Q (NIST (National Institute of Standards and Technology) SP (Special Publication) 1065) з оновленням коваріації, стабілізованим за Джозефом (додатно напіввизначений за екстремальних відношень Q/R, перевірений Холецьким у CI) і монітором здоров'я узгодженості фільтра (src/filter_health.rs): оцінка NIS/NEES Монте-Карло (NIS: normalised innovation squared; NEES: normalised estimation error squared) за довірчими смугами χ², що відображається як filter_health у JSON результату (JavaScript Object Notation) і як зелена/бурштинова картка на майданчику, з перебірним тестом неузгодженості Q/R, що доводить: монітор перемикається на неузгоджений, коли налаштування хибне (Bar-Shalom §5,4); перекривні оцінювачі ADEV (девіація Аллана), MDEV (модифікована девіація Аллана), TDEV (девіація часу), HDEV (девіація Адамара) + довірчі інтервали на основі χ² з ефективними ступенями вільності, специфічними для типу шуму (замкнені форми NIST SP 1065 Таблиця 5 для WPM/FPM/WFM/FFM/RWFM (WPM: білий фазовий шум; FPM: фліккерний фазовий шум; WFM: білий частотний шум; FFM: фліккерний частотний шум; RWFM: частотний шум випадкового блукання), набір, який використовує Stable32; експортована крива ADEV визначає тип степеневого закону запису за нахилом MDEV і додає 95-відсоткову смугу на τ — src/allan.rs), чисельно перевірені за еталонними девіаціями Stable32 для канонічного набору NBS14 до 1e-4 (tests/allan_reference.rs), а edf перехресно перевірено ансамблем Монте-Карло білого FM (FM: частотна модуляція); чесний показник якості (figure of merit) holdover, обмежений сіткою; ансамблі годинників; модель двостороннього передавання часу зі скасуванням взаємної затримки + підлогою диференціальної затримки з невзаємним випадковим блуканням FM (src/timetransfer.rs, повідомляється сигнатура Аллана); калькулятор holdover годинника за відсутності GNSS (src/holdover.rs), що відкриває замкнене зростання похибки вибігу van-Loan σ_x²(t) = q_wf·t + q_rw·t³/3 + q_drift·t⁵/20 як зверненням holdover до порогу для користувача (як довго годинник вільно працює, перш ніж похибка часу перевищить бюджет), з репрезентативними класами квантових годинників (оптична ґратка/пастка іонів/іони ртуті) — змодельовано, без зовнішньої перевірки: перехресно перевірено за багатокроковою рекурсією коваріації clock_state і чесно зазначено, що для дуже стабільного годинника holdover до жорсткого порогу визначається припущеною підлогою червоного шуму на довгих τ, а не цитованою ADEV (для обґрунтованого числа використовуйте виміряні підлоги). Умовний рівень захисту часу (src/tpl.rs) спирається на ту саму механіку holdover для випадку спуфінгу: межа невиявленої похибки часу за незалежної перехресної перевірки — підлога монітора k-σ плюс дисперсія вибігу van-Loan за затримку виявлення плюс час до тривоги CUSUM (кумулятивна сума) — відкалібрована на реальному записаному спуфінгу (JammerTest 2024, Zenodo 15911589) і відтворювана через cargo run --example tpl_jammertest. Змодельована композиція, за умови виявлення: скінченної безумовної межі немає (досить повільний дрейф уникає єдиного монітора з допомогою годинника). Максимальна похибка часового інтервалу (MTIE) і TDEV VALIDATED за allantools (tests/mtie_reference.rs, tests/mdev_tdev_reference.rs), а обернення дисперсії вибігу holdover VALIDATED за SciPy (tests/gnss_denied_clock_holdover_reference.rs); вид telecom-timing застосовує їх до масок ITU-T (International Telecommunication Union Telecommunication Standardization Sector) G.8272 / G.8272.1 / G.8273.2 / G.8271.1 — див. TELECOM-TIMING.md |
повний edf за алгоритмом Грінхола (прості замкнені форми обмежені за зміщенням, але грубіші за точний BasicSum) та ідентифікація сумішей кількох типів шуму | точний edf + ідентифікація змішаного шуму: P2 |
| Обробка GNSS / PNT | часткова | Імітація псевдодальності в області вимірювань (вид gnss-sim, src/gnss_sim.rs): для кожного видимого супутника синтезується ρ = geometric range + c·δt_rx − c·δt_sv + I + T + noise + multipath та доплерівське зміщення L1, з одночастотною іоносферою Klobuchar (IS-GPS-200 (IS: Interface Specification; GPS: Global Positioning System) §20.3.3.5.2.5) та зенітною тропосферою Саастамойнена (Davis 1985), спроєктованими функцією відображення Нілла (1996) — кожну модель перевірено модульними тестами за ручним обчисленням — після чого залишки подаються на RAIM за знімком (автономний контроль цілісності приймачем) для HPL/VPL на кожну епоху (HPL: горизонтальний рівень захисту; VPL: вертикальний рівень захисту) і видається масив gnss_measurements[] (псевдодальність, Доплер, C/N₀, поправки іоносфери/тропосфери на SV (космічний апарат, тобто супутник)). Плюс DOP/доступність (DOP: геометричний чинник погіршення точності) і RAIM розділення розв'язків за орбітами; завантаження RINEX (Receiver Independent Exchange Format) 3 NAV для кількох GNSS (GPS/Galileo/QZSS/BeiDou (QZSS: японська Quasi-Zenith Satellite System) через IS-GPS-200, вектор стану GLONASS (російська Global Navigation Satellite System)) розібрано → ECEF-положення SV і зсув годинника, придатні як повноцінне джерело Propagator І як вбудований блок орбітального угруповання rinex (scenarios/orbit-rinex.toml); завантаження RINEX 3 OBSERVATION (макет спостережень 4,00 має розбиратися, але жоден файл 4,00 не перевірявся; файли RINEX 4 NAVIGATION відхиляються за назвою, а не розкодовуються хибно); розв'язувач одноточкового позиціонування (вид pvt, src/pvt.rs), що перетворює реальні кодові псевдодальності RINEX + бортові ефемериди на положення приймача ітераційним зваженим методом найменших квадратів — поправка Саньяка/обертання Землі, борту годинник супутника з −TGD, безіоносферна комбінація L1/L2 на двох частотах (або одночастотна Klobuchar), тропосфера Саастамойнена/Нілла, вагування за висотою, DOP і RAIM за знімком — перевірено на реальних даних IGS (International GNSS Service) (станція ABMF, Гваделупа, 2018-05-13) до 5,7 м 3-D RMS (середньоквадратичне) / 1,1 м горизонтально проти відомої координати станції (tests/pvt_abmf.rs, scenarios/pvt-abmf.toml); і читання/запис прецизійних орбіт SP3 (Standard Product 3, формат прецизійних орбіт) |
Кодовий рушій позиціонування плюс, починаючи з 0,36, обробка фази несівної на реальних спостереженнях: розв'язувач pvt обчислює реальне положення з реальних кодових вимірювань (одноточкове позиціонування, метровий рівень, з безіоносферною комбінацією на двох частотах); rtk_real::run_rtk виконує RTK на короткій базі за реальними двочастотними кодом і фазою GPS (подвійні різниці, плаваючий фільтр Калмана, фіксація цілочисельних неоднозначностей LAMBDA з тестом відношення, src/lambda.rs), а статичний плаваючий фільтр PPP працює на реальних коді та фазі з кінцевими орбітами та годинниками IGS. Обидва VALIDATED за опублікованими координатами ITRF2020 станцій IGS (WTZR/WTZZ, tests/rtk_real_wettzell_oracle.rs, tests/ppp_real_wettzell_oracle.rs, пороги зареєстровано заздалегідь); бракує розв'язання цілочисельних неоднозначностей PPP, кінематичного або мережевого RTK і роботи в реальному часі. Згладжування несівною за Хетчем — це зафіксований висновок MODELLED (його попередньо зареєстровані пороги не виконано). Вид leo-ppp запускає плаваючий фільтр PPP на вимірюваннях, які сам імітує, для досліджень збіжності; прямий пакет gnss-sim лишається імітатором від істини; BeiDou-GEO (GEO: геостаціонарна орбіта) виключено |
фіксація неоднозначностей PPP, кінематичний або мережевий RTK, робота в реальному часі: використовуйте RTKLIB/gLAB (RTKLIB: бібліотека з відкритим кодом для кінематичного позиціонування в реальному часі) |
| Злиття сенсорів / навігація за лічильником шляху INS (інерціальна навігаційна система) | повна | 3-вісна бібліотека стрепдауна (src/inertial/{attitude,mechanization,imu_errors}.rs): кватерніонна орієнтація з компенсацією конінгу/скулінгу, повна механізація NED (північ-схід-вниз) (швидкість Землі + транспортна швидкість, гравітація Соміліани WGS-84) і детермінована модель похибок IMU (інерціальний вимірювальний блок) (змодельовано масштабний коефіцієнт, неспівосність, g-чутливість, квантування, лінійний дрейф швидкості). Навігатор стрепдауна тепер підключено до запускного слабко зв'язаного пакета GNSS/INS з показником якості (src/fusion/pack.rs, kind = "gnss-ins"): тривісну механізацію дисциплінує EKF (розширений фільтр Калмана) похибок із 15 станів (src/fusion/{gnss_ins_ekf,closed_loop}.rs, зворотний зв'язок за положенням/швидкістю/орієнтацією/зсувами), поки GNSS працює, потім вона рухається за інерцією крізь відмову — замінюючи скидання до істини справжнім злиттям і повідомляючи злиту горизонтальну похибку проти вибігу вільної INS без зворотного зв'язку. Окремий застарілий пакет inertial усе ще виконує скалярний бюджет 1-DOF (DOF: ступінь вільності) зі скиданням до істини. Реалізовано також оновлення щільно зв'язаної псевдодальності (update_tightly_coupled / fuse_tightly_coupled): воно формує інновацію в області дальностей (якобіан променя зору за δp) і далі коригує за менш ніж чотирьох супутників, коли слабко зв'язаного рішення PVT (положення, швидкість і час) не існує. Повний 17-станний щільно зв'язаний UKF GNSS/INS (unscented-фільтр Калмана) (src/fusion/tightly_coupled17.rs) несе положення, швидкість, похибку орієнтації, зсуви акселерометрів і гіроскопів та годинник приймача (зсув + дрейф), з квантовою CAI (CAI: холодноатомний інтерферометр) навігацією за лічильником шляху — шум процесу випадкового блукання швидкості є виведеним q_va холодноатомного акселерометра — вибіг на відмові тривалістю 120 секунд обмежується кількома сотнями метрів (проти кілометрів вільної INS навігаційного класу). Цей 17-станний UKF тепер відкрито як запускний сценарій (src/fusion/hybrid_ukf.rs, kind = "hybrid-ukf", досяжний з CLI/Python/WASM/MCP): 15 станів похибок INS доповнено поправкою зсуву акселерометра, виведеною з CAI (холодноатомний інтерферометр задає підлогу випадкового блукання швидкості q_va) і 2-станним годинником «фаза+частота», шум процесу якого надходить від рушія годинника з q-параметрами (clock_state::q_from_allan, профіль Аллана → q_wf/q_rw), що керується обрамленою моделлю похибок CAI, тож прогін демонструє гібридизацію класичної IMU на короткому і квантової на довгому проміжку. Його показник якості — самоузгодженість фільтра — об'єднані NEES + білість інновацій (NIS) за ансамблем Монте-Карло проти їхніх 95-відсоткових смуг χ² (узгоджений фільтр потрапляє в смуги; розстроєний фільтр позначається, об'єктивно перевірюваний шлюз). Це твердження про САМОУЗГОДЖЕНІСТЬ за змодельованого шуму, а НЕ гарантія точності в реальному світі — входи CAI/годинника обрамлені/змодельовані, апаратура CAI належить партнеру, і ніщо тут не означає TRL (рівень технологічної готовності)>3, льотної історії чи зовнішньої перевірки. Детерміновану модель похибок IMU можна налаштувати для кожного сенсора у файлі сценарію gnss-ins TOML (Tom's Obvious Minimal Language) ([imu_*.error_model]: масштабний коефіцієнт, неспівосність, g-чутливість, квантування, лінійний дрейф швидкості), а коли його не задано, типово використовується чисте джерело сталого зсуву |
Щільне зв'язування лише за псевдодальністю (фаза несівної — у дорожній карті); сценарій hybrid-ukf використовує єдину траєкторію зі сталою швидкістю на одному рівні, на якій стани похибок орієнтації та зсувів IMU спостерігаються лише слабко, тож узгодженість NEES оцінюється за підмножиною, що оцінюється (положення, швидкість, годинник = 8 станів) — повна спостережуваність 17 станів потребує траєкторії з маневруванням (дорожня карта); пара зсуву акселерометра/нахилу в слабко зв'язаному режимі лише слабко розділяється, тож калібрування кожного зсуву не заявляється; модель похибок IMU не враховує випрямлення вібрації та дрейф через градієнт температури; 17-станний UKF і щільно зв'язані шляхи самоперевірені (аналітичне інтегрування зі сталою швидкістю, збіжність за допомогою GNSS, відновлення зсувів, обмеження 120-секундної відмови за CAI та оракул узгодженості NEES/NIS χ²) — сама механізація стрепдауна VALIDATED за NaveGo v1.4 (tests/classical_strapdown_ins_reference.rs: орієнтація біт-в-біт, швидкість/положення в межах названих аналітичних меж), але перехресної перевірки на рівні фільтра (NaveGo або набір даних транспортного засобу KF-GINS) не проводилося |
щільне зв'язування за фазою несівної, повна спостережуваність 17 станів за траєкторії з маневруванням, бібліотека траєкторій, перехресна перевірка на рівні фільтра за NaveGo/KF-GINS: P2 |
| Цілісність / RAIM / ARAIM (розширений автономний контроль цілісності приймачем) | часткова | Справжній RAIM за знімком у src/raim.rs: розв'язок методом найменших квадратів + виявлення несправностей за залишками χ² (точний поріг із незалежного від залежностей неповного гамма-χ²) і HPL/VPL на основі нахилу (pbias із нецентрального χ² для налаштованих P_fa/P_md); RAIM розділення розв'язків (MHSS) з виявленням/ідентифікацією несправностей; бюджет ризику цілісності ARAIM (P_HMI) (araim_raim), що розв'язує найменші HPL/VPL, чия сума P_HMI = Σ_k p_fault,k·Q((PL−T_k)/σ_k) задовольняє явний розподіл ризику цілісності, режим несправності всього орбітального угруповання для двох/кількох угруповань (araim_dual_raim, EU (Європейський союз) ARAIM TN (технічна нота) / DO-316; P_const = 0 ⇒ побітово araim_raim), явне повідомлення підтримки цілісності (IntegritySupportMessage: σ_URA/σ_URE/b_nom/P_sat/P_const, з еталонними значеннями WG-C (WG: робоча група) GPS+Galileo), а також діаграма цілісності Стенфорда(-ESA, Європейське космічне агентство) (вид сценарію integrity і окремий рендерер stanford_svg чотирьох зон + межі PL=error). Задокументовано наскрізно в ARAIM_REFERENCE.md. Плюс самоузгодженість фільтра для FoM сценарію (межа k-σ) |
RAIM досяжний через вид сценарію integrity і (0,36, необов'язково) поряд із FoM годинника/holdover як окремий блок integrity_fom ([integrity]: RAIM за знімком на пресеті неба з заданого пункту, недоступний, поки GNSS відмовлений; MODELLED), ніколи не зливається з FoM holdover, що й далі повідомляє самоузгодженість; RAIM за знімком несе FDE окремого супутника (виявлення та виключення несправностей, raim::snapshot_raim_fde, VALIDATED за RTKLIB raim_fde у tests/integrity_snapshot_raim_rtklib_oracle.rs); розділення розв'язків множинних гіпотез ARAIM ADD v4.2 із визначенням підмножин для кількох супутників міститься в src/araim_reference.rs (VALIDATED за Stanford MAAST, tests/integrity_araim_stanford_oracle.rs), але бюджет raim::araim_raim з однаковою sigma все ще охоплює лише несправності окремого SV і всього угруповання та не відповідає ADD (0,36, необов'язково: одночасні несправності кількох підмножин SV за правилом підмножин ADD v4.2, узагальненим за межі пар, araim_subset_raim, add_v42_protection_levels_to_order; MODELLED, без прогону MAAST за межі пар), а виключення кількох SV не змодельовано; і araim_dual_raim підключено до виконавця сценаріїв TOML через прапорець araim_dual (scenarios/araim-gps-galileo.toml), з відліковим шляхом доступності на епоху araim_dual_constellation_availability; ядра знімка/MHSS/ARAIM перевірено на реальній геометрії прецизійних орбіт IGS (SP3) (tests/igs_real_data.rs) і на реальних TLE Celestrak GPS+Galileo (tests/araim_dual_real_data.rs, кожен супутник пропаговано до однієї спільної епохи UTC — найпізнішої епохи TLE (двострокового набору елементів) у наборі, 2026-06-07T07:21:04 — для користувача на висоті 400 км з нахилом 45° протягом 24 год: доступність за 12 м VAL (вертикальна межа тривоги) / 10 м HAL (горизонтальна межа тривоги) становить 0,993 лише для GPS, 1,000 для об'єднаних GPS+Galileo і 0,990 у двоугруповальному режимі, стійкому до несправностей угруповання; показник, раніше опублікований тут, 0,21→0,67 із «обмеженим» стійким режимом, походив із пропагації кожного супутника від його власної епохи TLE — неба, якого ніколи не існувало, — і відкликаний); раніше згадане порівняння «EU-ARAIM-TN Table A-3» відкликане (публічного джерела немає), а відтворення публічних максимальних значень URA для EU-US WG-C ARAIM Milestone 3 (Таблиці 5–7, рядки Depleted і Baseline) намагається виконати xval/araim-m3/ із зазначеними відхиленнями (MODELLED, див. INTEGRITY.md); не сертифіковано за DO-229/ARAIM |
ARAIM із кількома несправностями (ADD v4.2): виконано; підмножини кількох SV у raim + паритет gLAB в області приймача + підключення FoM: P2 (див. INTEGRITY.md) |
| Моделювання загроз спуфінгу / глушіння | часткова | Стохастичний детектор спуфінгу часу (вид spoof, src/spoof.rs + src/detection.rs): чотири форми впровадження (лінійний дрейф, ступінчастий стрибок, meaconing, повторне відтворення) проти монітора з допомогою годинника з двостороннім енергетичним тестом χ²₁ / тестом Неймана–Пірсона, поріг виявлення встановлено за цільовим бюджетом хибної тривоги P_fa, а ймовірність пропущеного виявлення P_md повідомляється і в замкненій формі, і методом Монте-Карло (обидва збігаються до кількох ×1/√N) — показник якості безпеки дорівнює 1 − P_md. Плюс модель глушіння за бюджетом лінії зв'язку (вид jamming, src/jamming.rs): відношення глушника до сигналу з геометрії (втрати вільного простору + підсилення приймальної антени за напрямом), стандартне рівняння ефективного C/N₀ за протидії глушінню (виграш обробки від стиснення спектра + чинник спектрального розділення Q; Kaplan & Hegarty §9,4), втрата захоплення для кожного супутника за налаштованого порогу відстеження та показник якості availability_under_jamming для орбітального угруповання Walker. Плюс багатошаровий набір моніторів спуфінгу за RF/вимірюваннями (RF: радіочастотні) (src/spoof_monitors.rs): багатосупутниковий паритетний тест узгодженості RAIM (parity_raim_test, зважена сума квадратів залишків SOS проти порогу χ²(m−4) — і він правильно позначає, що синфазне зміщення невидиме для RAIM), монітор AGC (автоматичне регулювання підсилення) (AgcMonitor, перевищення прийнятої потужності над очікуваною підлогою), монітор якості сигналу / SQM (контроль якості сигналу) (SqmMonitor, розбаланс корелятора Early/Late) і комбінатор злиття шарів (fuse_spoof_layers). Вони складаються в інтегрований CombinedSpoofDetector, чий evaluate приймає одну епоху спостережуваних величин (геометрія + залишки, потужність AGC, відводи Early/Late) і проганяє всі три шари через зважене злиття одним викликом, повертаючи діагностику кожного шару; він відкритий як запускний сценарій spoof-detect (src/spoof_detect.rs, доступний з CLI / Python / майданчика, JSON + SVG (Scalable Vector Graphics)) і схарактеризований за опублікованими параметрами сценаріїв TEXBAT (Texas Spoofing Test Battery) (Humphreys et al., ION (Institute of Navigation) GNSS 2012; tests/spoof_texbat_validation.rs) — відтворюючи задокументований візерунок виявності, включно з негативними результатами: надпотужний ds2 виявляється через AGC + SQM, ds3 зі збіжною потужністю — лише через SQM, ds4 із поштовхом положення — через RAIM, а ds7 зі збіжною потужністю та вирівняною фазою несівної (правильно) віддано детектору з допомогою годинника |
Вид jamming — це бюджет лінії зв'язку: у ньому немає багатопроменевості та динаміки AGC в часі. Починаючи з 0,36 він приймає чотири необов'язкові розділи: [crpa], адаптивний пучок решітки для кожного каналу (нульове наведення або MVDR з src/crpa.rs, перевірений за незалежним перерахунком у numpy; MODELLED), і [terrain] — втрата дифракції на одному ножовому краї на шляху глушника над плиткою SRTM (src/jamming_terrain.rs, ITU-R P.526-15 §4,1, перевірена за незалежним перерахунком у numpy на реальній плитці; MODELLED, лише один ножовий край), [acquisition] — гістерезис захоплення проти відстеження, і [front_end] — усталене показання AGC та втрата квантувача АЦП за гаусового входу (src/jamming_rx.rs; позначено як недійсне для негаусових глушників; MODELLED). Дзеркальна багатопроменевість, завмирання наземного мобільного каналу та AGC існують у шарі IQ (src/iq/channel/multipath.rs, src/iq/channel/land_mobile.rs, src/iq/frontend/agc.rs) і не підключені до виду jamming; таблиця спектрального розділення Q містить підручникові значення за типами (CW і вузькосмугові 1, широкосмугові та з перестроюванням 2 з 0,36), прив'язані до коефіцієнтів, виведених зі спектральних густин потужності (PSD) у navsignal (див. рядок сигналу навігації). Детектор спуфінгу з допомогою годинника є одногодинниковим; монітори RF/вимірювань тепер інтегровані (CombinedSpoofDetector) і схарактеризовані за опублікованими параметрами сценаріїв TEXBAT (Humphreys et al.); залишок — перевірка за сирими векторами — відліками IQ (синфазна/квадратурна складові) TEXBAT (для яких потрібен фронтенд захоплення/відстеження SDR (програмно-визначуване радіо), якого kshana не має, бо це симулятор, а не приймач) або ліцензованим сценарієм Spirent — задокументоване продовження |
з допомогою годинника + інтегрований комбінований детектор багатосупутникової узгодженості RAIM + AGC + SQM + характеристика за параметрами TEXBAT: виконано; перевірка за сирими векторами (TEXBAT IQ / ліцензований Spirent): продовження |
| Модуляція навігаційного сигналу та якість відстеження коду | часткова | src/navsignal.rs: рівень сигналу між бюджетом лінії та областю вимірювань. Спектральні густини потужності одиничної площі для BPSK-R(n) (двійкова фазова маніпуляція, прямокутні чипи) і sine-BOC(m,n) (двійкова зміщена несівна) (перевірені в CI на одиничну площу, на замкнену форму власного коефіцієнта спектрального розділення (SSC) BPSK κ = 2/(3R_c) і на спектральне розщеплення BOC — нуль на несівній, піки на ±f_s); коефіцієнт спектрального розділення κ = ∫ G_s(f)G_i(f) df, який тепер виводить Q для протидії глушінню, що його використовує jamming, із реальних спектрів сигналу/глушника (Q = 1/(R_c·κ)) замість репрезентативної константи (широкосмугове еталонне значення перехресно перевіряється в CI); середньоквадратична (Габора) смуга (BOC > BPSK — міра інформації про дальність / Крамера–Рао); тепловий джитер відстеження коду когерентним early–late DLL (контур із фазовим автопідстроюванням затримки) (Kaplan & Hegarty §8 — ~субметровий для C/A на 45 dB-Hz, монотонний за C/N₀); і огинаюча похибки багатопроменевості (когерентний EML (early-minus-late), знайдена за нулем складеного дискримінатора — придушення вузьким корелятором підтверджено). Шар проєктних компромісів кодів дальності (CodeFamily) додає бічну пелюстку періодичної автокореляції m-послідовності/Голда (1/L для m-послідовності) і триплетно-значну межу взаємної кореляції Голда t(n)/L — відтворюючи опубліковану взаємну кореляцію Голда GPS C/A −23,9 dB (зовнішній якір) і кількість m-послідовностей φ(2ⁿ−1)/n — плюс обернення довжина коду↔однозначна дальність; гарантії Голда чесно повертають None, де немає бажаної пари (n mod 4 = 0), замість того, щоб повідомляти межу, яка не виконується. |
Починаючи з 0.31.0 окремий шар IQ (src/iq/, команди kshana iq; проєкт у design/GNSS-IQ-PLAN.md) додає програмний ланцюг приймача: захоплення FFT (швидке перетворення Фур'є), багатоканальний банк відстеження DLL/PLL/FLL (контури з автопідстроюванням затримки, фази та частоти), фільтрацію фронтенда та квантування від 1 до 14 біт і потокову передачу записаних наборів даних. Незалежний програмний приймач відновлює введену істину своїх сцен, а коди GPS L1 C/A і біти LNAV (застаріле навігаційне повідомлення) побітово збігаються з gps-sdr-sim. Досі бракує: дискримінатори контурів припускають ідеальний кореляційний трикутник BPSK, тож розв'язання неоднозначності відстеження BOC відсутнє; моделі каналу та контурів — MODELLED, перевірені за замкненими формами та введеною істиною, не за виміряними польовими IQ; лише скалярні контури (без векторного відстеження). Проєктування апаратури антен/RF-корисного навантаження (діаграми спрямованості, фронтенд) свідомо поза обсягом — це роль партнера з корисного навантаження. |
неоднозначність BOC + польова перевірка IQ для шару IQ: P2+ |
| Фізика квантових сенсорів PNT | часткова | Більшість сенсорів — це опубліковані коефіцієнти Аллана/бюджету шуму (CSAC, оптичні), плюс акселерометр на холодноатомному інтерферометрі (CAI) з перших принципів у src/inertial/quantum_imu.rs: триімпульсна фаза Маха–Цендера Φ = k_eff·a·T², квантовий проєкційний (дробовий) шум σ_Φ = 1/(C√N), виведена PSD випадкового блукання швидкості q_va, яку споживає інерціальний стек, спад контрасту, передавальна функція вібрації |H(ω)| + дисперсія білої PSD, а тепер також систематики Коріоліса/обертання (coriolis_phase, еквівалентне зміщення 2Ω×v) і світлового зсуву AC-Старка (AC: змінний струм) (ac_stark_phase, симетричне скасування) + перебір дрейфу часу циклу (cai_drift_sweep), і складений бюджет похибки квантової інерціальної навігації за лічильником шляху (QuantumNavBudget), що зводить білошумове випадкове блукання швидкості CAI разом із залишковим зсувом (½·b·t², перехресно перевіреним незалежним інтегратором Ейлера AccelModel), похибкою масштабного коефіцієнта та необов'язковою довготривалою деградацією стабільності (окремою від декогеренції на кожен постріл) в один показник дрейфу положення за holdover плюс інерціальний holdover до порогу — двійник навігації за лічильником шляху для holdover годинника. Змодельована квантова підлога обрамлена (а не зрівняна за паритетом) значенням 96 нм/с²/√Гц мобільного гравіметра Freier et al. 2016 (arXiv:1512,05660) — вона лежить нижче й у межах ~2 порядків від нього. Задокументовано в QUANTUM.md |
Систематики хвильового фронту/наведення пучка не змодельовано; межу неоднозначності смуг Маха–Цендера змодельовано (max_unambiguous_accel, dynamic_range_cells у src/inertial/quantum_imu.rs), але розв'язання неоднозначності ні; точні бюджети льотних випробувань CARIOQA-PMP (CARIOQA: Cold Atom Rubidium Interferometer in Orbit for Quantum Accelerometry) / Boeing-AOSense (потрібні опубліковані PSD платформи + SNR (відношення сигнал/шум) на кожен постріл) і пресет майданчика JS (JavaScript) лишаються залишком |
систематики хвильового фронту + відтворення льотних випробувань: P2+ (QUANTUM-MODELS.md) |
| Проєктування орбітального угруповання | часткова | Синтетичний Walker (і аналітичний кеплерів, і за середніми елементами SGP4, останній пропагований через ядро, перевірене до 4,12 мм — src/walker.rs) + видимість і DOP для реальних TLE кількох орбітальних угруповань (GPS+Galileo до 100%), перевірені за реальним знімком Celestrak gps-ops (tests/igs_real_data.rs); перебір проєктів за PDOP (геометричний чинник погіршення точності положення) на сітці {planes × sats × inclination} та показники якості частки покриття / часу повторного відвідування; запускний вид constellation-design (візерунки Walker delta і star у конвенції i: T/P/F, явні списки елементів, багатооболонкові проєкти та опубліковані пресети, навколо Землі, Місяця, Марса чи будь-якого іншого каталогізованого тіла), чия геометрія Walker та опубліковані слоти GPS, Galileo і GLONASS VALIDATED за опублікованими таблицями, а глобальний базовий геометричний чинник DOP для GPS VALIDATED за стандартом продуктивності GPS Standard Positioning Service, тоді як карти покриття для довільних проєктів лишаються MODELLED; безградієнтний оптимізатор проєкту (optimize_walker_design), що шукає на сітці найкращий проєкт за вибраною метою (MinSatellitesForCoverage / MaxCoverage / MinWorstPdop), перевірений на повернення переможця повного перебору; і аналітична геометрія смуг покриття (coverage_half_angle_rad, street_half_width_rad; замкнені форми Райдера/Бесте, перевірені вручну — GPS за маски 5°: λ ≈ 71,2°, піввисота смуги для 4 супутників ≈ 62,8°) |
Існує ідеалізоване визначення розміру мінімальної кількості супутників за смугами покриття (walker::StreetsCoverageDesign); точна на шві поправка Райдера на межі протилежно обертових площин не реалізована; майданчик малює 3-D подання орбіт без залежностей (web/studio/lib/orbit3d.mjs), а експорт CZML (Cesium Language), --export czml, завантажує геометрію на глобус CesiumJS; ядро DOP VALIDATED за gnss_lib_py (tests/dop_reference.rs), а повний конвеєр видимості кількох орбітальних угруповань перехресно перевірено наскрізно за Orekit 12,2 + gnss_lib_py (tests/coverage_dop_full_oracle.rs): проєкти для Землі збігаються за кожним порогом, але проєкти для Місяця й Марса не досягають порогу DOP на чисельно сингулярній геометрії, тож рядок лишається MODELLED; геодезичний проти геоцентричного «вгору» у системі DOP |
визначення розміру за смугами покриття + 3-D подання орбіт + наскрізна перехресна перевірка для Землі: виконано; точна на шві поправка Райдера + погано зумовлений DOP поза Землею: P2 |
| Верифікація та валідація | часткова | Перевірки зовнішніми оракулами по всьому рушію (SGP4 проти 666 векторів AIAA, сімейство Аллана проти Stable32 і allantools, системи відліку проти SOFA/ERFA, силова модель і визначення орбіти проти Orekit, ARAIM проти робочого прикладу WG-C та інші; актуальну кількість наведено у згенерованому заголовку VERIFICATION-MATRIX.md); детерміновані перевірки Аллана; матриця верифікації з машинною перевіркою (src/verification.rs) — перехресне посилання вимога→модуль→тест→оракул→статус, чиї інваріанти чесності перевірено модульними тестами: рядок можна позначити як перевірений лише якщо він має незалежний зовнішній оракул (NIST/AIAA/SOFA/IGS/опубліковане значення), тож внутрішня перевірка самоузгодженості не може видавати себе за валідацію; відтворюється в Markdown/CSV (значення, розділені комами) для перехресного посилання верифікації ECSS-E-ST-10-02 (ECSS: European Cooperation for Space Standardization) і фіксує як такі чотири прогалини апаратури/PA (PA: забезпечення якості продукції), що належать партнеру |
Калібрувальні ансамблі поки що охоплюють три перевірки з одним зерном (CALIBRATION-ENSEMBLES.md, зареєстровані заздалегідь: інтервал бутстрепу Монте-Карло покриває на 96 % із 200 зерен; один допуск перцентиля чутливий до зерна, NOT MET на 91,5 %); решта рядків досі калібруються на окремих зернах. Матриця забезпечує класифікацію рядків, а CI тепер також перевіряє, що кожен тест, файл і елемент усередині крейта, на які посилається рядок, існують (tests/verification_rows_name_a_test_that_exists.rs, tests/verification_rows_cite_evidence_that_exists.rs), і що опубліковані показники все ще відтворюються (tests/published_figures_still_reproduce.rs); вона не оцінює сам оракул, який рецензент усе ще читає |
калібрувальні ансамблі: P1 |
| LEO-PNT (позиціонування, навігація та час з низької навколоземної орбіти) | часткова | Сім видів, незалежних від системи, з названими публічними пресетами: leo-signal (проєкти сигналів будь-якого діапазону та структури: компоненти BPSK, BOC, MBOC (мультиплексований BOC) або плоскі типу OFDM (ортогональне частотне мультиплексування), відстеження коду, захоплення, сумісність з GNSS, торгівля діапазонами), leo-pass (проєктований, елементний, TLE або Walker проліт із бюджетом лінії для кожного діапазону: дощ, сцинтиляція та втрати входу в будівлю за ITU-R (Сектор радіозв'язку Міжнародного союзу електрозв'язку), іоносфера, антена, Доплер, проти супутників MEO (середня навколоземна орбіта) GNSS у зоні видимості), leo-navmsg (бортові ефемериди та годинник на кеплеровій основі Galileo ICD (документ керування інтерфейсом) або вибірні моделі LEO, підігнані й закодовані з перевіркою кадру CRC-24Q (24-бітова циклічна перевірка надлишковості)), leo-pvt (злите позиціонування за псевдодальністю та Доплером MEO + LEO для будь-яких орбітальних угруповань), leo-ppp (збіжність PPP з доповненням LEO та без нього, на змодельованих вимірюваннях), ntn-positioning (межі позиціонування 5G NTN, нетерестріальної мережі, за смугою сигналу) і leo-pnt-chain (одна система наскрізно, вихід кожного етапу передається наступному). Частини VALIDATED: терміни лінії за ITU-R проти таблиць і прикладів перевірки з Рекомендацій, максимальний Доплер проти опублікованої таблиці, користувацький алгоритм Galileo проти RTKLIB до 1 мм, CRC-24Q, ваги SISRE (похибка дальності сигналу в просторі) |
Немає польових даних чи записаних сигналів; показники позиціонування, PPP, NTN і синхронізації часу — MODELLED (замкнені форми, узгодженість фільтра, порівняння з опублікованими трендами); пресети є з публічних джерел або виведеними, а не даними оператора | перевірка за реальними записаними сигналами: P3 |
| Спектр / радіочастотне середовище | часткова | Вид spectrum (src/spectrum.rs): L-діапазон GNSS (і багатодіапазонні проєкти ультрависокої частоти (UHF), S- та C-діапазонів) як єдина спектральна густина потужності, частота впоперек і час донизу, під сценарною часовою шкалою глушників (безперервнохвильові, вузькосмугові, чирпові та узгоджені широкосмугові глушники), з J/S (відношення глушника до сигналу) і ефективним C/N₀ (відношення несівної до густини шуму) для кожного діапазону; записи SigMF на вході та виході й оцінки спектра Велча комплексних відліків. Замкнені спектри сигналів і коефіцієнти спектрального розділення VALIDATED; водоспад — MODELLED |
Сигнали GLONASS, BeiDou і Galileo E6 не змодельовано; немає перевірки фронтенда приймача чи записаних IQ (синфазна/квадратурна складові) | порівняння із записаними сигналами: P3 |
| Довіра до журналу приймача (судна й загальна) | часткова | src/receiver_trust/: монітори над власним журналом приймача (відношення несівної до густини шуму, узгодженість положення, швидкості та курсу, час) із подіями та прогнозами, заявленими до прогону; на платформі судна — оцінка 0–100 з причинами; живий режим на потоці з реченням $PKSHT і необов'язковим шлюзом. MODELLED; лише консультативно, не навігаційне обладнання із затвердженням типу |
Пороги — це заявлені типові значення, не виміряні на приймачах у експлуатації; журнал оцінює лише цей журнал; жодного радіочастотного входу чи виходу; не навігаційне обладнання із затвердженням типу | docs/RECEIVER-TRUST.md, docs/MARITIME-TRUST.md |
| Пакети доказів і телеметрія довіри | часткова | src/evidence/: підписаний пакет вікна журналу з хеш-ланцюгом, його конфігурації та результату рушія, що перевіряється офлайн, з необов'язковим токеном позначки часу RFC 3161. src/telemetry/: потік довіри у вигляді метрик Prometheus, подій syslog (CEF або LEEF) і необов'язково OpenTelemetry, із зразком панелі Grafana |
Пакет — це технічний запис, а не юридичний висновок, і він не каже, що спричинило подію; підпис центру позначок часу не перевіряється; телеметрія передає лише телеметрію | docs/EVIDENCE-PACKS.md, docs/TRUST-TELEMETRY.md |
| Потоки для навчання екіпажів і карти завад | часткова | src/nmea_synth/: синтетичний мостовий NMEA зі сценарними подіями глушіння (jamming), відриву (drag-off), спуфінгу часу та повторного відтворення (replay) і журналом інструктора (лише текст). src/interference_map/: зведені карти погіршеної навігації за даними з відкритою ліцензією від повітряних і морських суден та вплив на маршрут, з локальних файлів |
Потоки — це навчальні дані, ніколи не для живих навігаційних систем судна; карти є зведеними, не прогнозом, і залежать від наданих повідомлень | docs/NMEA-TRAINING.md, docs/INTERFERENCE-MAP.md |
| Експорт для випробувального стенда | часткова | src/interop/testbench.rs: рух транспортного засобу та події сценарію gnss-ins, jamming або gnss-sim у вигляді CSV руху, NMEA, тексту маршрутних точок і файлів подій для лабораторного імітатора GNSS |
Жодного сигналу не записується; жодної продуктивності імітатора чи приймача не заявляється; файли перевіряються як зчитані назад читачами руху одного імітатора з відкритим кодом (gps-sdr-sim), але фізика власної істинної траєкторії сценарію зовнішньо не перевіряється | docs/TEST-BENCH.md |
| Перевірка Galileo OSNMA | часткова | src/osnma/ і kshana osnma verify: читає сторінки Galileo I/NAV або потік UBX і повідомляє для кожного супутника та епохи, чи автентифіковано навігаційні дані (підписаний ключ із коренем Меркла, ланцюжок TESLA, MAC), з причиною збою перевірки та необов'язковим незалежним еталонним часом для свіжості; також osnma_verify у Python і WebAssembly |
Автентифікує дані за ключами, які надає користувач; не заявляє про продуктивність протидії спуфінгу і не є службою навігаційної цілісності чи обладнанням із затвердженням типу; перевірено на синтетичних векторах, офіційні тестові вектори ICD доступні як зовнішнє завантаження | docs/OSNMA.md |
| Зіставлення compliance з публічними рамками | часткова | src/compliance/ і kshana compliance-report: результати Kshana, зіставлені з шістьма публічними рамками стійкості та стандартами з джерелами та прогалиною в кожному рядку; прогін зараховується лише тоді, коли його результат містить поля, які записує його вид |
Зіставлення — це судження; звіт каже, для чого набір прогонів підтримує докази, але ніколи не те, що рамки виконано чи продукт схвалено; EN 16803 цитується лише за текстом каталогу | docs/compliance/README.md |
| Морські інтеграції | часткова | Плагін Signal K, OpenCPN через NMEA у режимі шлюзу поверх TCP та еталонна збірка для малого комп'ютера поруч із приймачем (integrations/, deploy/) |
Перевірено на записаному синтетичному виході; плагін не опубліковано в npm; лише консультативно, не навігаційне обладнання із затвердженням типу | docs/MARINE-INTEGRATIONS.md |
Ширші області космічних систем (наразі поза обсягом)#
Кілька з них мають статус відсутня; інші тепер є моделями першого порядку partial (види для аналізу місій / середовища, додані в серії v0.17.0) — перелічені, щоб обсяг був однозначним, а не випливав із мовчання. Kshana — це симулятор PNT, а не GMAT/STK/Orekit (STK: Systems Tool Kit); ці суміжні моделі свідомо першого порядку та MODELLED, ніколи не перевірені льотні інструменти.
| Можливість | Статус | Примітка / дорожня карта |
|---|---|---|
| Проєктування місій / оптимізація траєкторій | часткова | src/maneuver.rs: імпульсні вузли ΔV із поширенням коваріації 6×6 (системи координат похибок виконання ECI/LVLH (ECI: земна інерціальна; LVLH: місцева вертикаль, місцевий горизонт)), інтегрування скінченного прискорення, перевірене за замкненим рівнянням Ціолковського до < 0,01 %, однооборотовий розв'язувач Ламберта за Izzo-2015 + точний пропагатор Кеплера в універсальних змінних (виходи Ламберта прогнано туди й назад за двотільною істиною) і porkchop (запуск × прибуття) перебір C3 / V∞ прибуття, поданий як JSON-сітка контурів, мінімум якої перевірено за аналітичною підлогою Гомана. Жодного оптимізатора траєкторій; багатооборотовий розв'язувач Ламберта (maneuver::lambert_multirev, до трьох обертів, обидві гілки) VALIDATED за pykep 3.0.1 (tests/lambert_multirev_oracle.rs); porkchop працює на синтетичній компланарно-круговій моделі або, з maneuver::porkchop_kernel, на DE440 SPK (VALIDATED за станами SPICE + Ламбертом pykep, tests/porkchop_de440_oracle.rs); maneuver::optimise_transfer_kernel знаходить неперервний оптимум дати (мінімум C3 або мінімум V∞ прибуття, Тип I або II) на DE440, VALIDATED за незалежним оптимізатором SPICE + pykep + SciPy (tests/transfer_optimiser_oracle.rs); щодо опублікованих мінімумів NASA/TM-2010-216764 2026 для Землі–Марса він збігається зі значеннями Типу II і не досягає мінімуму C3 Типу I на −5,18 % (зафіксовано). Сам GMAT не запускався; pykep — бібліотечний оракул. Шов планетарних ефемерид для далекого космосу (src/ephem_provider.rs) і перехресна перевірка DE440 (Development Ephemeris 440) (xval/anise-mars-od, 137 м на 1-добовій дузі Марса) тепер існують — див. рядок PNT для далекого космосу / міжпланетного простору. Шар імітації продуктивності над GMAT/Orekit, а не заміна. P3 |
| AOCS (система керування орієнтацією та орбітою) / GNC (наведення, навігація та керування) / орієнтація | часткова | Вид attitude-budget (src/attitude_budget.rs): гравітаційно-градієнтний момент у найгіршому випадку 1.5·(μ/R³)·ΔI + бюджет похибки наведення RSS (корінь із суми квадратів) за складовими 1σ окремих внесків — MODELLED скалярний бюджет наведення/збурень до появи апаратури. Динаміка орієнтації твердого тіла без моменту з кватерніонним станом (src/attitude_dynamics.rs: рівняння Ейлера + кінематика кватерніонів, RK4) VALIDATED за вузлом космічного апарата Basilisk 2.9.1 (tests/attitude_dynamics_basilisk_oracle.rs, кватерніон у межах 1e-9 за 1e4 с), а пік гравітаційно-градієнтного моменту — за GravityGradientEffector Basilisk (tests/attitude_gg_torque_basilisk_oracle.rs); визначення орієнтації за Вабою міститься в src/wahba.rs. Вид aocs (src/aocs.rs, src/aocs_kind.rs, AOCS.md): інерціальний розворот зі збалансованими реактивними маховиками за зворотним зв'язком MRP, мінімально-нормові моменти маховиків з обмеженнями двигунів; замкнений контур VALIDATED за Basilisk 2.9.1 на трьох попередньо зареєстрованих випадках до округлення. MEKF за гіроскопом і зоряним трекером (src/aocs_mekf.rs) може замкнути контур за власною оцінкою (MODELLED, узгодженість фільтра). Без наведення на супровід, інтегрального зворотного зв'язку, керування кінетичним моментом, магнітних моментних приводів, двигунів, тертя маховиків чи обмежень швидкості; без зовнішнього моменту середовища в динаміці орієнтації; не польовий контролер. P3 |
| Системи відліку → пов'язані із Землею | повна | Виконано — TEME→ECEF/ITRF, рух полюса та ланцюг GCRS→ITRS на основі CIO реалізовано та VALIDATED (побітово проти SOFA/ERFA; 4 мм наскрізно проти Валладо). Див. рядок Системи відліку вище |
| Зв'язок і бюджети ліній | часткова | src/linkbudget.rs: бюджет лінії далекого космосу за Фрііс (потужність Tx · підсилення антен · шум → C/N₀ · Eb/N₀ · запас), що живить радіометричний шлях/GSE (GSE: наземне допоміжне обладнання), а також оптичні/РЧ лінії передавання часу (src/timetransfer*.rs), і запускний вид link-budget — односпрямоване рівняння лінії CCSDS-401/DSN-810-005 (DSN: Deep Space Network) C/N₀ = EIRP − FSPL − L_other + G/T − k із входами EIRP (ефективна ізотропно випромінювана потужність) / G-T і вибором діапазону S/X/Ka (MODELLED інженерний бюджет лінії, а не калібрований паспорт терміналу). Без планування доступу, без адаптивного кодування. P2 |
| Наземний сегмент і операції | часткова | Тип passes (src/passes.rs): прогнозування проходів наземної станції (схід/захід) — AOS/TCA/LOS (AOS: початок прийому сигналу; TCA: час найближчого зближення; LOS: втрата сигналу), максимальний кут місця, тривалість кожного проходу та загальний доступ на горизонті за набором елементів SGP4 у земній системі координат IAU 2006/2000A із рефракцією за ITU-R P.834-9 і з урахуванням часу проходження світла — VALIDATED за Orekit 13.1.8 на станціях на рівні моря (60 випадків / 1210 проходів, tests/pass_predictor_on_path_orekit_oracle.rs); геометричний passes::predict_passes має статус VALIDATED за детектором кута місця Orekit 12,2 (22 сценарії / 129 проходів, tests/ground_station_pass_prediction_reference.rs); оптимізатора планування і розв'язання конфліктів немає. P3 |
| Телеметрія / TT&C / CCSDS | часткова | власний формат TOML на вході / JSON на виході; експорт та імпорт CCSDS OEM (Orbit Ephemeris Message, повідомлення з ефемеридами орбіти) (502.0-B KVN (запис «ключ-значення»), GMAT/Orekit/STK) через тип oem-interop, що запускається (src/oem.rs, міст круговорота parse_oem; відповідний стандарту обмін для одного об'єкта має статус VALIDATED за незалежним аналізатором oem 0.4.5); розбір і формування CCSDS-TDM (503) Tracking-Data-Message (повідомлення з даними відстеження) (src/ccsds_tdm.rs, формат обміну радіометричними даними для далекого космосу); та тип space-packet (src/space_packet.rs): кодування й декодування первинного заголовка космічного пакета CCSDS 133.0-B з побітово точним круговоротом. Модуль запису CCSDS OMM (Orbit Mean-Elements Message, повідомлення із середніми елементами орбіти, 502.0-B-2, частина родини ODM) (src/omm.rs) публікує середні елементи SGP4 у форматі KVN, а зчитувач ядер NAIF SPICE на чистому Rust (src/naif_kernel.rs: контейнер DAF, SPK типу 2, двійковий PCK типу 2) забезпечує роботу ephem_provider::KernelEphemeris. Інші типи повідомлень CCSDS (OPM, OCM, AEM (AEM: Attitude Ephemeris Message, повідомлення з ефемеридами орієнтації)) і запис SPICE залишаються пунктом дорожньої карти (P2) |
| Інтероперабельність і стандарти (RINEX/SP3/SPICE/CCSDS) | часткова | Багатосистемний ГНСС (GNSS) NAV у RINEX 3 — GPS, Galileo, QZSS, BeiDou MEO/IGSO (IS-GPS-200) і ГЛОНАСС (вектор стану в ПЗ-90 (ПЗ: «Параметры Земли», російська геодезична система), RK4) — завантажується, поширюється та запускається як одне змішане орбітальне угруповання; аналізатор ОБСЕРВАЦІЙ RINEX 3 (псевдодальність/несівна/Доплер/SNR за кодом спостереження, з прапорцями LLI/SSI (LLI: індикатор втрати захоплення; SSI: індикатор потужності сигналу); для 4,00 очікується, що розбір працює, але це не перевірено); круговорот читання ↔ запису прецизійних ефемерид SP3-c/d (розбір і експорт для Ginan/RTKLIB/gLAB) і пропагатор Лагранжа 10-го порядку (11 точок) (Propagator::Sp3Precise); експорт SP3 доступний із CLI (kshana <orbit.toml> --export-sp3 out.sp3 або export_sp3 = true) і перевірений круговоротом (round-trip-validated) на реальному угрупованні GPS до <0,5 м упродовж 24 год (tests/sp3_export_roundtrip.rs); записувач ефемерид CCSDS OEM 2,0 — експорт стану TEME зі швидкістю для інструментів динаміки польоту — тепер доступний із CLI (kshana <orbit.toml> --export-oem out.oem або export_oem = true) і звірений круговоротом зі станом пропагатора (tests/sp3_export_roundtrip.rs). Аналізатор спостережень RINEX тепер живить рішення одноточкового позиціонування (pvt, перевірене на реальних даних IGS — див. рядок GNSS / PNT). Додатково CCSDS-TDM (503): розбір і формування повідомлення з даними відстеження (src/ccsds_tdm.rs). Експорт геометрії для засобів перегляду та інструментів аналізу місій: CZML, KML (Keyhole Markup Language), GeoJSON і ефемериди STK (--export, src/interop/), кожен із яких зчитується назад валідатором, написаним за специфікацією формату (tests/interop_formats.rs), імпорт маршруту GeoJSON (--import-route), записи SigMF (Signal Metadata Format) на вході й виході для типу spectrum, а також текст у стилі RINEX-4 / CSV для навігаційного повідомлення LEO (INTEROP.md, STANDARDS.md). Немає BeiDou-GEO, цілочисельного розв'язання неоднозначностей PPP і кінематичного RTK (статичний PPP із дійсними неоднозначностями та RTK на короткій базі на реальних даних існують, див. рядок GNSS / PNT), немає записувача SPICE, а також OPM/AEM (читач OEM існує через тип oem-interop, записувач OMM — у src/omm.rs, а читач SPICE SPK/PCK — у src/naif_kernel.rs) — P2 «приєднувати суміжні галузі через стандартні формати» |
| Космічна погода / середовище (іоносфера/атмосфера/радіація) | часткова | Тип space-weather (src/space_weather.rs): сонячні та геомагнітні індекси (Kp↔ap за 28-ступеневою таблицею IAGA (Міжнародна асоціація геомагнетизму й аерономії), добовий Ap, центрований 81-добовий F10.7a), екзосферна температура за Jacchia-71 та зв'язок густини термосфери з активністю над статичною атмосферою — MODELLED першого порядку, не модель абсолютної густини NRLMSISE. Іоносфера: широкомовна модель Клобухара (VALIDATED за RTKLIB) і зчитувач карт TEC (повний електронний вміст) у форматі IONEX (IONosphere map EXchange format) (src/ionex.rs, з модульними тестами). Реальна глобальна іоносферна карта CODE (CODG1330.18I) є виміряним оракулом рядка геометрично-вільного похилого TEC (tests/geometry_free_tec_gim_oracle.rs), але цей тест обчислює карту у власному генераторі тестових даних, тож сам зчитувач src/ionex.rs ще не звірено з реальним продуктом; фізичної моделі іоносфери або моделі, керованої космічною погодою, немає; P2+ |
| Навігація за гравітаційними картами / альтернативний PNT | часткова | src/gravimeter.rs: модель вимірювань холодноатомного гравіметра, рівень білого шуму якої виводиться зі спектральної густини амплітуди (ASD) акселерометра CAI (σ = ASD/√τ), повністю нормоване сферично-гармонічне поле гравітаційних аномалій низького степеня (перевірене за замкненими виразами функцій Лежандра та виведеною вручну аномалією з одним членом) плюс синтетичні маскони, і частинковий фільтр зіставлення гравітаційної карти (поєднує mapmatch + particle_filter), що відновлює трек без GPS за послідовністю аномалій, крізь яку летить апарат. 60-хвилинний бенчмарк без GPS (run_gps_denied_gravity_nav, scenarios/gps-denied-gravity-nav.toml) моделює політ на ~700 км із годинним перебоєм, під час якого інерційне рішення дрейфує до ≈ 70 км, а ієрархічний «від грубого до точного» зіставник із детермінованим затравленим білим шумом гравіметра відновлює його до ≈ 145 м (< 500 м) — стабільно для різних реалізацій шуму та, як можна довести, з обмеженням за рівнем деталізації (одна груба сітка застрягає на ~2 км). Додатково повна геомагнітна модель головного поля IGRF-14 (IGRF: International Geomagnetic Reference Field) (src/igrf.rs: сферично-гармонічне поле IAGA з нормуванням за Шмідтом до степеня/порядку 13, 2025,0 + вікова варіація, коефіцієнти згенеровано машинно з офіційного igrf14coeffs.txt; перевірено за замкненим виразом нахиленого диполя, скінченно-різницевим обчисленням скалярного потенціалу та відомим геомагнітним полюсом і силою поля) — магнітне поле, яке платформа може зіставляти з картою для навігації за магнітними аномаліями. Додатково навігація за рельєфом (TERCOM/SITAN (TERCOM: зіставлення контурів рельєфу; SITAN: Sandia Inertial Terrain-Aided Navigation, інерційна навігація з корекцією за рельєфом)) і комбінований навігатор за гравітацією, магнітним полем і рельєфом (src/altpnt/terrain.rs): написаний вручну аналізатор .hgt цифрової моделі рельєфу (DEM) SRTM (Shuttle Radar Topography Mission) (16-бітні цілі зі знаком, зі старшим байтом спочатку, рядками, з північним рядком першим, пропуск -32768; перевірений за специфікацією драйвера GDAL (Geospatial Data Abstraction Library) SRTMHGT (формат файлів висот Shuttle Radar Topography Mission) і замкненим білінійним оракулом середньої точки), модель висотоміра (радіо-/баровисотомір) та зіставник run_terrain_nav, що відновлює трек без GPS за профілем висот місцевості відносно DEM, і run_combined_altpnt, який об'єднує три скалярні канали поля на кожну шляхову точку (Δg мГал · |B| нТл аномалія земної кори · висота м), тож спільна апостеріорна оцінка гостріша (нижча CRLB (границя Крамера–Рао)), ніж за будь-якого одного поля, — обмежена < 500 м упродовж 60-хвилинного перебою і, у середньому, не гірша за найкращий окремий канал. Додатково послідовна (рекурсивна) навігація за рельєфом — SITAN як фільтр, що працює безперервно (src/altpnt/sequential.rs, run_sequential_trn): та сама модель вимірювань «висотомір проти DEM», яка виконується епоха за епохою рушієм particle_filter SIR (вибірка за значущістю з повторною вибіркою) (прогноз за приростом INS + шум процесу → переважування за збігом з рельєфом → повторна вибірка при виродженні), тож змінний у часі дрейф INS відстежується уздовж треку, тоді як пакетний зіставник відновлює лише одне стале зміщення, — рекурсивна оцінка лишається обмеженою та повторно збігається (кінцева ≈ 70 м), тоді як непідтримувана розв'язка необмежено розходиться до ≈ 5 км, а похибка за епохами відповідає характерності рельєфу, із монітором ефективного розміру вибірки. Чесні межі: карта відома й незмінна — рекурсивна локалізація за збереженою DEM (половина локалізації в SLAM за рельєфом (simultaneous localisation and mapping, одночасна локалізація та картографування)); спільне оцінювання карти — окремий RBPF нижче. Усі чотири тепер підключені до рушія сценаріїв через kind= (gravity-map, terrain-nav, combined-altpnt, terrain-slam) із SVG-діаграмою дрейфу (scenarios/terrain-nav.toml, scenarios/combined-altpnt.toml, scenarios/terrain-slam.toml). 0,36 (WP-10): навігатор gravity-map приймає за вибором реальне еталонне поле ([reference]: вбудований EGM2008 до степеня 70 або файл ICGEM .gfc), синтез аномалій якого збігається з ICGEM Calculation Service приблизно до 1e-8 мГал (VALIDATED, xval/icgem-egm2008/); на цьому полі степеня 70 60-хвилинний бенчмарк завершується на 3106 м, тож поріг < 500 м NOT MET (було заздалегідь зареєстровано та передбачено: степінь 70 надто згладжений). Необов'язковий Монте-Карло з похибкою карти ([map_error_mc], scenarios/gravity-map-error-mc.toml) показує, що синтетичне виправлення 144 м припускає точну карту (у 1 з 20 реалізацій у межах 500 м за корельованої похибки 2 мГал; exploratory). combined-altpnt приймає за вибором магнітну сітку земної кори EMAG2v3 ([magnetic_grid]; EMAG2 завантажується, а не постачається разом із кодом, і жодного навігаційного результату на ній не заявляється). terrain-nav за задумом залишається лише з DEM: це одноканальний зіставник TERCOM/SITAN, а магнітне зіставлення міститься в combined-altpnt, який поєднує рельєф із магнітним і гравітаційним каналами; магнітний канал у terrain-nav дублював би його, тож пункт аудиту «EMAG2 у terrain-nav» закрито підключенням combined-altpnt (RM-16). Перевірки на реальних SRTM виконуються в CI на двох закомічених вирізках повної роздільності (вузол у вузол збігаються з GDAL 3.8.4, xval/srtm-ungate/). Спільне оцінювання карти існує (run_sequential_trn_on_map, RBPF у стилі FastSLAM): за один прохід воно дає виграш 1,5 % проти SITAN з відомою картою на помилковій карті, не досягаючи попередньо зареєстрованого порогу 10 % (xval/terrain-slam-rbpf/). Досі відсутні: високостепенева гравітаційна модель у навігаційному прогоні (потрібна нова попередня реєстрація), результат магнітної навігації на реальній сітці та випадок SLAM із поверненням на пройдену ділянку (замиканням петлі). P3 |
| Вхід в атмосферу / EDL (вхід, спуск і посадка), аналіз запуску, EO/корисне навантаження (EO: спостереження Землі) | часткова | Геометрія MODELLED першого порядку через три типи, що запускаються: reentry (src/reentry.rs, балістичний коридор Аллена–Еггерса — пікове уповільнення, швидкості піку перевантаження та піку нагрівання, висота піку перевантаження), launch-window (src/launch.rs, двотільний азимут запуску sin Az = cos i/cos lat, Δv зміни площини орбіти, виграш від обертання майданчика, добові можливості) і eo-coverage (src/eo_payload.rs, геометрія смуги огляду / GSD (розмір пікселя на місцевості) / доступу / повторного проходу EO за космічним трикутником SMAD (Space Mission Analysis and Design)). Немає 6-DoF-симуляції EDL/аеротермодинаміки, оптимізатора траєкторії, радіометрії сенсора/MTF (MTF: функція передавання модуляції). P3 |
| Місячний / цисмісячний PNT (LunaNet) | часткова | src/lunar.rs: двигун місячного ARAIM, що повторно використовує земне ядро MHSS із параметрами LunaNet LNIS (LunaNet Interoperability Specification) (σ_URE ≈ 30 м, P_sat ≈ 1e-4), редукція цисмісячних систем координат MCI↔MCMF (MCI: інерційна з центром у Місяці; MCMF: з центром у Місяці, пов'язана з Місяцем) (mci_to_mcmf / mcmf_to_mci, спрощена модель середнього обертання із зоряною швидкістю) і селенографічні широта/довгота/висота (mcmf_to_selenographic), а також прохід рівня захисту на південному полюсі (south_pole_hpl_pass), що кількісно визначає прогалину цілісності — за дальнометрії 30 м HPL скінченний, але перевищує межу тривоги 50 м для поверхневих операцій. src/cr3bp.rs додає CR3BP Земля–Місяць (circular restricted three-body problem, обмежена кругова задача трьох тіл) (динаміка в обертовій системі + пропагатор RK4 + стала Якобі + п'ять точок Лагранжа, перевірені за опублікованими значеннями L1/L2/L3 і точними L4/L5) — тритільне ядро, потрібне справжній NRHO (near-rectilinear halo orbit, майже прямолінійна гало-орбіта), — і матрицю переходу стану з диференціальним корегувальником одиночної стрільби (cr3bp_jacobian, propagate_state_stm, differential_correct_halo), що дає справді періодичні гало-орбіти/NRHO навколо L2: STM перевірено за скінченними різницями, скориговані гало замикаються на себе з машинною точністю (зі збереженням сталої Якобі), а початкове опубліковане значення стану в апоселенії відтворює південну NRHO L2 9:2 (орбіту Gateway) з періодом ≈ 6,57 доби і периселенієм ≈ 3 250 км — що узгоджується з опублікованими ≈ 6,56 доби / ≈ 3 370 км | Диференціально скориговані початкові умови NRHO (IC) тепер підключені, але денормалізоване селеноцентричне (MCI/MCMF) перетворення скоригованої орбіти і продовження родини залишаються на потім; головноосьова орієнтація Місяця за DE440 зі справжньою фізичною лібрацією існує (src/lunar_orientation.rs, з PCK moon_pa_de440, звірена зі SPICE pxform у tests/lunar_pa_orientation_spice_oracle.rs), але старіший шлях lunar::mci_to_mcmf досі використовує середнє обертання без лібрації та прецесії полюса; NRHO — це розв'язок CR3BP (кругова задача без Сонця), не перевірений за реальними ефемеридами LANS/Gateway (LANS: Lunar Augmented Navigation Service); тип сценарію lunar-integrity, що запускається (scenarios/lunanet-araim.toml), надає прохід на південному полюсі з CLI | селеноцентричне перетворення + продовження родини + інтерфейс SPICE/LunaNet: P3 |
| Далекий космос / міжпланетний PNT (Марс, радіометрія) | часткова | Випущено v0.17.0. Радіометричний навігаційний двигун: ітеративний час проходження світла + затримка Шапіро, дво-/одно-/триходовий Доплер і дальність (дві гілки за Мойєром), когерентне перевипромінювання транспондера, регенеративна/PN (PN: псевдошумова) дальнометрія (CCSDS 414), Δ-DOR (CCSDS 506), середовища сонячної плазми/тропосфери/іоносфери (src/radiometric.rs); розбір і формування CCSDS-TDM (503) (src/ccsds_tdm.rs); фільтр SRIF зі зниженою динамікою (square-root information filter, інформаційний фільтр із квадратним коренем) із емпіричними прискореннями RTN (radial, transverse, normal: радіальне, трансверсальне, нормальне) + 3-станним бортовим годинником + опором Марса (src/deepspace_od.rs, clock_state.rs, mars_atmos.rs), що забезпечує визначення орбіти (OD) на низькій орбіті Марса (LMO) ≈ 0,2 м у синтетичному замкненому контурі; злиття одно- й двоходових даних; багатотільне ядро динаміки (src/body.rs, Mars GMM-3 (GMM: Goddard Mars Model), марсіанська система IAU src/mars_frame.rs, шов EphemerisProvider src/ephem_provider.rs, двочастинна JD + TT↔TDB (TDB: барицентричний динамічний час)); а також сценарій релейного PNT mars-pnt (ареостаціонарне угруповання MARCONI, src/mars_pnt.rs) + наскрізний симулятор продуктивності GSE (src/gse_sim.rs). Перевірено симуляцією (коваріація/FoM замкненого контуру); динаміку з центром у Сонці звірено з JPL (Jet Propulsion Laboratory) DE440 (137 м на дузі в 1 добу, xval/anise-mars-od). Відсутнє: перевірка на реальних даних відстеження DSN/ESTRACK (ESTRACK: European Space Tracking network); гравітація Марса у власній системі координат (поле GMM-3 d/o 120 завантажується з таблиці PDS SHADR, from_shadr, VALIDATED за pyshtools, і підключається через Body::with_gravity_field, але обчислюється в системі IAU, а не у власній системі Konopliv-2006); ефемериди класу DE у ядрі (у xval — за наявності ядра). P3 |
| Сонячна система та PNT навколо будь-якого тіла | часткова | Тип solar-system: положення, швидкості та фізичні сталі Сонця, планет, Плутона, Місяця та семи великих супутників на одну епоху, із часом проходження світла між тілами; положення планет (елементи JPL за Стендішем) і час проходження світла VALIDATED за JPL Horizons (tests/solar_system_horizons_reference.rs), а супутники, Плутон і таблиця зовнішніх планет залишаються MODELLED. Тип body-pnt: орбітальний апарат або посадковий модуль навколо будь-якого каталогізованого тіла (Марс, Місяць, Європа, Ганімед, Титан та інші), що навігує за односторонніми псевдодальностями від локального угруповання Волкера плюс необов'язкова двостороння дальність із Землі — MODELLED. Планетного ядра ефемерид у ядрі немає (аналітичні елементи), релейні орбіти body-pnt використовують лише J2 (повні поля Mars GMM-3 d/o 120 і Moon GRAIL GL0660B d/o 660 завантажуються з таблиць PDS SHADR і підключаються до Body для пропагатора, src/gravity_pds.rs). P3 |
| Кампанії / композиція місій | часткова | Тип campaign (src/campaign.rs): наявні типи, поєднані на одній спільній часовій осі (наприклад, глушіння, потім спуфінг, потім holdover з інерційним дрейфом INS, потім сигнал тривоги цілісності, потім відновлення), перебори параметрів і ансамблі Монте-Карло із зерном для будь-якого типу, а також кілька сценаріїв за спільних умов зі зведеним підсумком; кожне число читається з реального прогону типу-учасника. Тотожності композиції перевіряються тестами (tests/campaign_composition_reference.rs: кампанія з однієї фази відтворює окремий прогін байт у байт); MODELLED. Розділ [optimize] (сітка або обмежений метод Нелдера–Міда за одним–трьома ключами, одна метрика, мінімізація, максимізація або досягнення цілі) відповідає попередньо зареєстрованим порогам за замкненим виразом і повним перебором (tests/campaign_optimize_reference.rs); MODELLED, локальний пошук без заяв про глобальний оптимум і без градієнтних чи баєсових методів. P3 |
| Звіти, анімація та вихідні дані | часткова | Кожен прогін записує result.json, діаграму та звіт (report.html, report.json), позначки в яких читаються з матриці верифікації, а записана команда відтворює результат байт у байт (tests/advanced_report_cli.rs); --animate (svg, html або frames) відтворює часовий ряд як анімацію (src/animation.rs, ANIMATION.md); --export записує формати обміну з рядка про інтероперабельність. Це подання прогону, а не докази щодо фізики. |
Екосистема та готовність (відстежується чесно, не є можливістю коду)#
| Напрям | Статус | Примітка |
|---|---|---|
| Мовні прив'язки та пакування | часткова | Rust + Python (abi3) + WASM у трьох реєстрах. Типізовані поверхні (0,36, CAP-34): Python RunOutput з доступом через NumPy (array, columns, series) і типізовані заглушками ScenarioKind / ErrorKind / KindMeta; JavaScript run_typed (типізований об'єкт RunOutput) і scenario_kinds, з тим самим словником у оголошеннях TypeScript. Документи результатів лишаються JSON для кожного типу, типізовані лише спільною оболонкою (units, версії) |
| Освіта / ознайомлення (UX, досвід користувача) | часткова | Браузерний майданчик із випущеним керованим режимом: адаптивні до сценарію повзунки керованого режиму (web/studio/lib/guided.mjs, до шести регуляторів на сценарій) та інтерактивний керований тур (web/studio/lib/tour.mjs, який можна повторити на майданчику). Кожен прогін також отримує речення-пояснення простою мовою та свої ключові показники, прочитані з документа результату (web/studio/lib/meaning.mjs, із шаблонами для кожного типу в meaning-kinds.mjs; тип без шаблону отримує свій перший головний показник, викладений просто). Відсутнє: пояснення для кожного показника окремо поза межами цього речення (їх охоплює зрозумілий GLOSSARY.md) |
| Спільнота / управління | часткова | Каркас управління наявний — GOVERNANCE.md (модель доброзичливого супроводжувача + технічний поріг + межа відкритого/закритого), CODE_OF_CONDUCT.md, CONTRIBUTING.md, SECURITY.md, шаблони для задач і PR (PR: pull request) , FUNDING.yml, dependabot. Один засновник; активна зовнішня спільнота (учасники, цитування) залежить від людей і часу та ще формується (комунікація очікує перегляду) |
| Готовність до фінансування та закупівель | немає | TRL ~3; цитувань або контрактів від агентств поки немає (див. нотатки зі стратегії) |
Оновлено 2026-10-29 для рушія 0.40.0 (92 типи сценаріїв, із kshana kinds --json; нові в 0.40.0: mission-thread, lunar-orbit-rendezvous, lunar-descent, lunar-surface і lunar-ascent). 2026-10-22: рушій 0.39.0, 87 типів, без нових типів. 2026-10-19: рушій 0.38.0, 87 типів (нові в 0.38.0: holdover-test, gnss-ssv і lunar-infrastructure). 2026-10-18: 84 типи (нове в 0,37: optical-atmosphere). 2026-10-16: 83 типи (нові в 0,36: acm-link, aocs, ascent-losses, contact-schedule, entry-heating, eo-radiometry, lunar-station-coverage і time-transfer-budget). 2026-10-10: рушій 0.35.0, 75 типів, без нових типів. 2026-10-09 і 2026-10-08: попередні редакції. 2026-10-04: у рядку Nav-signal зазначено шар IQ 0.31.0. 2026-09-29: додано рядки LEO-PNT, спектр, PNT Сонячної системи / будь-якого тіла, кампанії та вихідні дані. Раніше: узгоджено з 27-рядковою матрицею можливостей великого аудиту від 2026-06-02; рядок PNT далекого космосу / Марса додано в v0.17.0. Доповнення Quantum-PNT (holdover годинника без ГНСС src/holdover.rs, складений бюджет інерційної навігації з квантовими датчиками QuantumNavBudget, компроміси при проєктуванні дальнометричних кодів CodeFamily, машинно перевірювана матриця верифікації src/verification.rs) внесено в рядки Timing, Quantum-PNT-sensor, Nav-signal і V&V — кожне позначено як перевірене або змодельоване за своїм фактичним оракулом.
Доповнення демонстратора FutureNAV (modelled, внутрішньо перехресно перевірені — не перевірені зовні): (1) Тестовий стенд оцінювання виявлення РЧ-завад методами машинного навчання src/impairment_eval.rs — позначений синтетичний (на основі параметрів, не IQ) корпус завад + незалежна від детектора обв'язка ROC/AUC/confusion/Pfa-Pmd (ROC: робоча характеристика приймача; AUC: площа під кривою) із захистом від витоку та стратифікованим поділом; вбудовані детектори — прозорі базові версії опублікованих методів, а не SOTA (state of the art, найкращий рівень), і висока AUC тут демонструє конвеєр, а не польову продуктивність. (2) Рушій компромісу квантового й класичного PNT src/quantum_trade.rs — завантаження виміряної ADEV (підгонка NNLS (метод невід'ємних найменших квадратів) σ_y²(τ)=q_wf/τ + q_rw·τ/3 + q_drift·τ³/20, перевірена круговоротом щодо q_from_allan), таблиця переваг holdover для часу та інерційної навігації, яка несе на артефакті застереження про припущення щодо мінімуму, і огинаюча стійкості без ГНСС залежно від часу; він кількісно оцінює квантову перевагу партнера, але ніколи не перевіряє пристрій. Обидва пройшли змагальний огляд (виявлено й виправлено помилку базису дрейфу τ²→τ³ та хибне твердження про стійкість «обмежено необмежено довго»). 911 бібліотечних тестів на момент цього доповнення, fmt+clippy без зауважень.
Доповнення інтероперабельності / стандартного формату (src/interchange.rs): Kshana Interchange Format (KIF) — нейтральна, версійована, самоописова Envelope, що обгортає будь-який артефакт (сценарій, результат, дослідження компромісів) впізнаваним тегом format, єдиним джерелом істини SCHEMA_VERSION (версія схеми, раніше скопійована як літерал у 15 місцях, тепер зберігається в одній константі, на яку посилається весь крейт), engine_version виробника та явним, протестованим договором сумісності (compatibility(): сумісність з тим самим мажором / рівним чи старшим мінором читається за дисципліни додавання полів; новіший мінор або інший мажор відхиляється на межі за допомогою Envelope::parse, а не мовчки розбирається хибно). Круговорот (wrap→to_json→parse→payload_as::<T>()) для будь-якого корисного навантаження Deserialize; свідомо без часових міток, щоб зберегти побітову відтворюваність Kshana. Задокументовано в SCHEMA.md, тож формат можна цитувати, а не лише випускати, — позиціонування відкритого ядра як «стандарту, що очікує свого часу». 923 бібліотечних тестів на момент цього доповнення, fmt+clippy без зауважень.
Доповнення збірки переваги FutureNAV (modelled, внутрішньо перехресно перевірені — не перевірені зовні): (1) Економний шар вартості на одиницю покриття / ROI (return on investment, окупність інвестицій) src/frugal.rs — шар подання вигод поверх рушія розрахунку розміру угруповання (walker), який повідомляє вартість на відсотковий пункт покриття та окупність покриття на євро порівняно з базовим рівнем; вартість одного супутника є заданим викликачем, обґрунтованим джерелами діапазоном мінімум/номінал/максимум (без вигаданих точкових цін), тож результатами є діапазони, а не хибні точкові значення; це змодельоване економічне подання змодельованого показника покриття, а не комерційна пропозиція. (2) Відображення впливу пропущеного виявлення на цілісність src/integrity_impact.rs — відображає невиявлене зміщення положення, спричинене спуфінгом/глушінням, на його ефективну похибку → область Стенфорда (доступно / система недоступна / оманлива інформація / небезпечно оманлива інформація) відносно контекстно-залежних порогів тривоги (відкрите небо проти міста, HAL проти VAL), із застосуванням зовнішньо прив'язаного RAIM classify_stanford; міст «пропущене виявлення→поріг тривоги» є modelled, а не сертифікованим розподілом цілісності. Обидва відображено в машинно перевірюваній матриці верифікації (src/verification.rs, інваріант Validated⇒ExternalDataset збережено; актуальна кількість рядків указана у згенерованому заголовку VERIFICATION-MATRIX.md). Перехресну перевірку / захист від витоку / розбиття, стратифіковане за параметрами, для обв'язки оцінювання ШІ вже випущено в src/impairment_eval.rs (stratified_split, Split::has_leakage). 951 бібліотечних тестів на момент цього доповнення, fmt+clippy без зауважень.
Доповнення дослідження розриву оптимізму FutureNAV (modelled, внутрішньо перехресно перевірені за замкненими виразами — не перевірені зовні, не твердження про перенесення з симуляції в поле): контрольоване синтетичне дослідження розриву оптимізму AUC між розподілом навчання та поза ним для детекторів РЧ-завад. (1) Детектори, що навчаються src/impairment_ml.rs — фіксоване відображення ознак + стандартизатор, підібраний за навчальною вибіркою, базова логістична регресія (детермінований градієнтний спуск на повній вибірці) та одношаровий MLP (багатошаровий перцептрон; зворотне поширення із зерном і SGD (стохастичний градієнтний спуск)) за тим самим трейтом ImpairmentDetector, що й базові версії опублікованих методів. (2) Виведена вручну статистика src/eval_stats.rs — довірчі інтервали (CI) за перцентильним бутстрепом, дисперсія/CI AUC за DeLong, Спірмена ρ та гребенева регресія, кожну з яких перевірено за замкненим виразом (бінормальна AUC Φ(d′/√2), вручну опрацьована дисперсія DeLong, підручниковий ρ із зв'язаними рангами, точне відновлення OLS (звичайні найменші квадрати)). (3) Дослідження src/impairment_study.rs — AUC за класами, тренд закону масштабування за (detector,class) (розрив проти 1−тяжкість) і гребеневий предиктор розриву лише за ID, що оцінює розрив оптимізму лише за діагностикою в межах розподілу, з оцінюванням з виключенням одного детектора та з виключенням одного класу проти базового предиктора середнього. Артефакт однією командою через cargo run --release --example optimism_study. Кожне число є AUC за мітками, виведеними з моделі, на синтетичному корпусі на основі параметрів; розрив є синтетичним→синтетичним зсувом тяжкості, а ніколи не результатом польового виявлення. Відображено в машинно перевірюваній матриці верифікації (src/verification.rs, інваріант Validated⇒ExternalDataset збережено).