Машинный перевод, не проверенный носителем языка. Эталоном служит английская версия.

Валидация и доказательстваПравить на GitHubИсточник: docs/CAPABILITY.md

Карта возможностей — что 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: геоцентрическая, жёстко связанная с Землёй), трассу подспутниковой точки WGS-84 (WGS: World Geodetic System) (широта/долгота/высота) и азимут/угол места/дальность станции + скорость изменения дальности/Доплер (радиальная скорость изменения дальности совпадает с истинной производной положения без шума JD (JD: юлианская дата) до 6e-9 м/с) — и через экспорт эфемерид OEM (Orbit Ephemeris Message) CCSDS (Consultative Committee for Space Data Systems) с передачей скорости (--export-oem). Численный пропагатор (Коуэлла) (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 совпадает с замкнутой вековой скоростью по теории первого порядка, зональное ускорение проверено как точный градиент собственного потенциала (и сводящееся к замкнутой форме J2, проверенной по 666 векторам), а solve_kepler_checked возвращает Err, а не неверный ответ, когда метод Ньютона не сходится (например, вблизи перигея при e = 0,999). Гравитация третьего тела (Солнце и Луна), управляемая эпохой, подключена к интегратору с зависимостью от времени (ForceModel::third_body / accel_at, с низкоточными эфемеридами Солнца и Луны Монтенбрука и Гилла из src/ephem.rs — ядро DE/SPK (DE: Development Ephemeris; SPK: ядро планетных эфемерид) не нужно): каждое вычисление 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 + новая RHS accel_rv / с передачей скорости): квадратичное торможение −½·ρ(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̂ (радиальному, наружу), её учебниковому отношению ≈1.9e-9 к двухтельной для LEO, упрощённой вручную форме для радиальной скорости и консервативной сигнатуре (она возмущает орбиту, но удерживает большую полуось в пределах метра в сутки, что структурно противоположно торможению). Член увлечения инерциальных систем Лензе–Тирринга (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 м — признак согласованной подгонки по методу наименьших квадратов), с последовательным рекурсивным вариантом на фильтре с сигма-точками Стандартная силовая модель 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 (атмосферная модель Исследовательской лаборатории ВМС США по данным масс-спектрометра и радара некогерентного рассеяния; пункт о термосферной плотности с погрешностью < 5 %); давление солнечного излучения (SRP) задано моделью «пушечного ядра» с геометрической тенью конической umbra+penumbra (без потемнения солнечного края, без тени от сплюснутой Земли, без учёта формы и ориентации спутника); релятивистские поправки охватывают члены Шварцшильда и Лензе–Тирринга (увлечение систем отсчёта), оба включаются по выбору, но настройка параметров PPN (parametrised post-Newtonian, параметризованный постньютоновский формализм) не выполняется; влияние третьих тел и SRP рассчитывается по низкоточным эфемеридам (~0,005° для Солнца, ~0,3° для Луны), а не с точностью ядер DE/SPK. Уровни консервативной силовой модели (две точки → J2–J6 → Солнце/Луна → SRP) VALIDATED against Orekit 12,2 (худший случай 0,08 м за 24 ч, tests/numerical_cowell_propagator_reference.rs), а пакетное и последовательное определение орбиты VALIDATED against Orekit 12,2 по его оценщикам (tests/batch_sequential_orbit_determination_reference.rs); уровень торможения и абсолютная достоверность входных данных по эфемеридам и плотности остаются MODELLED; перекрёстной проверки с GMAT (General Mission Analysis Tool, универсальный инструмент анализа миссий) нет тессеральная гравитация в стандартной модели Cowell + торможение по NRLMSISE-00 + потемнение солнечного края + эфемериды класса DE + перекрёстная проверка с GMAT + измерения скорости изменения дальности и углов в OD и аналитическая STM (state-transition matrix, матрица перехода состояния): P2+
Системы времени частичная src/timescales.rs: API юлианских дат (гражданская дата↔JD, MJD (modified Julian date, модифицированная юлианская дата)), 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 (разность между временем вращения Земли и всемирным координированным временем) и угол вращения Земли 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 against 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 against 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, с его IERS EOP (Earth orientation parameters, параметры ориентации Земли); 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 мсд, меньше собственного упрощения при вращении системы скоростей); путь с погрешностью < 0,1 мсд, полной 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 (global navigation satellite system, глобальная навигационная спутниковая система)); это отдельный крейт вне стандартных проверок 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: нормированный квадрат инновации; NEES: нормированный квадрат ошибки оценки) по доверительным полосам χ², выводится как filter_health в результате JSON (JavaScript Object Notation) и в виде зелёной/янтарной карточки на площадке, с тестом перебора рассогласования Q/R, доказывающим, что монитор переключается на inconsistent при неверной настройке (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: частотная модуляция); честный FoM (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 (cumulative sum, кумулятивная сумма) — откалиброван по реальной записи спуфинга (JammerTest 2024, Zenodo 15911589) и воспроизводим через cargo run --example tpl_jammertest. Modelled-композиция, зависящая от обнаружения: конечной безусловной границы не существует (достаточно медленная рампа обходит единичный монитор с привязкой к часам). Максимальная ошибка временного интервала (MTIE) и TDEV VALIDATED against allantools (tests/mtie_reference.rs, tests/mdev_tdev_reference.rs), а обращение дисперсии выбега holdover VALIDATED against 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 по алгоритму Greenhall (простые замкнутые формы имеют ограниченное смещение, но грубее точной BasicSum) и идентификация смесей из нескольких типов шума точный edf + идентификация смешанного шума: P2
Обработка GNSS / PNT частичная Симуляция псевдодальностей в области измерений (вид gnss-sim, src/gnss_sim.rs): для каждого видимого спутника синтезируется ρ = geometric range + c·δt_rx − c·δt_sv + I + T + noise + multipath и доплеровский сдвиг L1, с одночастотной ионосферной моделью Клобучара (IS-GPS-200 (IS: Interface Specification, спецификация интерфейса; GPS: Global Positioning System, глобальная система позиционирования) §20.3.3.5.2.5) и зенитной тропосферой Саастамойнена (Davis 1985), спроецированными функцией отображения Niell (1996) — каждая модель проверена модульным тестом по ручному расчёту — затем остатки передаются в мгновенный RAIM (receiver autonomous integrity monitoring, автономный контроль целостности в приёмнике) для HPL/VPL на каждую эпоху (HPL: горизонтальный уровень защиты; VPL: вертикальный уровень защиты) и выводится массив gnss_measurements[] (псевдодальность, доплеровский сдвиг, C/N₀, поправки ионосферы и тропосферы для каждого SV (space vehicle, то есть спутник)). Кроме того: DOP/доступность (DOP: геометрический фактор) и RAIM с разделением решений по орбитам; приём многосистемных навигационных файлов RINEX (Receiver Independent Exchange Format) 3 (GPS/Galileo/QZSS/BeiDou (QZSS: японская квазизенитная спутниковая система) по IS-GPS-200, вектор состояния ГЛОНАСС (российская глобальная навигационная спутниковая система)) разобран → положение SV в ECEF и смещение часов, пригоден как полноценный источник Propagator И как встроенный блок созвездия rinex (scenarios/orbit-rinex.toml); приём файлов наблюдений RINEX 3 (формат наблюдений 4,00 должен разбираться, но ни один файл 4,00 не проверялся; навигационные файлы RINEX 4 отклоняются по названию, а не декодируются неверно); решатель одноточечного позиционирования (вид pvt, src/pvt.rs), превращающий реальные кодовые псевдодальности RINEX и бортовые эфемериды в положение приёмника итеративным взвешенным методом наименьших квадратов — поправка Саньяка на вращение Земли, бортовые часы спутника с −TGD, двухчастотная безионосферная комбинация L1/L2 (или одночастотная Klobuchar), тропосфера Саастамойнена/Niell, весовые коэффициенты по возвышению, DOP и мгновенный RAIM — проверен на реальных данных IGS (International GNSS Service, Международная служба GNSS) (станция ABMF, Гваделупа, 2018-05-13): 5,7 м СКО (RMS) в 3D / 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 against опубликованные координаты ITRF2020 станций IGS (WTZR/WTZZ, tests/rtk_real_wettzell_oracle.rs, tests/ppp_real_wettzell_oracle.rs, пороги зарегистрированы заранее); по-прежнему отсутствуют разрешение целочисленных неоднозначностей в PPP, кинематический и сетевой RTK и работа в реальном времени. Сглаживание несущей по Hatch — зафиксированный результат уровня MODELLED (его заранее зарегистрированные пороги не были достигнуты). Вид leo-ppp запускает плавающий фильтр PPP на измерениях, которые он сам симулирует, для исследований сходимости; прямой пакет gnss-sim остаётся симулятором от истины; BeiDou-GEO (GEO: геостационарная орбита) исключён фиксация неоднозначностей в PPP, кинематический или сетевой RTK, работа в реальном времени: используйте RTKLIB/gLAB (RTKLIB: библиотека кинематического позиционирования в реальном времени с открытым исходным кодом)
Слияние датчиков / инерциальное счисление пути по INS (inertial navigation system, инерциальная навигационная система) полностью 3-осная бесплатформенная библиотека (src/inertial/{attitude,mechanization,imu_errors}.rs): кватернионная ориентация с компенсацией конусного и скуллинг-движения, полная механизация в NED (north-east-down, север-восток-вниз) (угловая скорость Земли + транспортная скорость, гравитация Сомильяны для WGS-84) и детерминированная модель ошибок IMU (inertial measurement unit, инерциальный измерительный блок) (смоделированы масштабный коэффициент, неортогональность осей, g-чувствительность, квантование, линейный дрейф скорости). Бесплатформенный навигатор теперь подключён к работающему пакету слабосвязанной GNSS/INS с показателем качества (src/fusion/pack.rs, kind = "gnss-ins"): трёхосная механизация корректируется 15-state фильтром Калмана по ошибкам состояния (EKF) (extended Kalman filter, расширенный фильтр Калмана) (src/fusion/{gnss_ins_ekf,closed_loop}.rs, обратная связь по положению/скорости/ориентации/смещениям), пока GNSS доступна, а затем выбегает через перерыв — это заменяет сброс по истинному значению подлинным слиянием и сообщает слитую горизонтальную ошибку в сравнении с выбегом свободной INS без обратной связи. Отдельный прежний пакет inertial по-прежнему запускает скалярный бюджет с 1 степенью свободы (DOF: degree of freedom) со сбросом по истинному значению. Также реализовано обновление по тесносвязанным псевдодальностям (update_tightly_coupled / fuse_tightly_coupled): оно формирует инновацию в области дальности (якобиан линии визирования по δp) и продолжает коррекцию при менее чем четырёх спутниках, когда решение PVT (position, velocity and time, положение, скорость и время) при слабой связи не существует. Полный 17-state тесносвязанный UKF GNSS/INS (unscented Kalman filter, фильтр Калмана без запаха) (src/fusion/tightly_coupled17.rs) включает положение, скорость, ошибку ориентации, смещения акселерометра и гироскопа и часы приёмника (смещение + дрейф), с инерциальным счислением на квантовом CAI (CAI: cold-atom interferometer, интерферометр на холодных атомах) — шум процесса случайного блуждания скорости — это выведенный q_va акселерометра на холодных атомах — выбег в течение перерыва в 120 секунд ограничен несколькими сотнями метров (против километров у свободной INS навигационного класса). Этот 17-state UKF теперь доступен как запускаемый сценарий (src/fusion/hybrid_ukf.rs, kind = "hybrid-ukf", доступен из CLI/Python/WASM/MCP): 15 состояний ошибок INS дополнены поправкой смещения акселерометра на основе CAI (интерферометр на холодных атомах задаёт нижний предел случайного блуждания скорости q_va) и 2-state фазово-частотными часами, шум процесса которых берётся из движка часов с q-параметрами (clock_state::q_from_allan, профиль Аллана → q_wf/q_rw), управляемыми ограниченной в скобках моделью ошибок CAI, так что прогон демонстрирует гибридизацию классической IMU на коротких интервалах и квантовой на длинных. Его показатель качества — самосогласованность фильтра: объединённые NEES + белизна инноваций (NIS) по ансамблю Монте-Карло относительно их 95% полос χ² (согласованный фильтр попадает в полосы; фильтр с неверной настройкой отмечается, это объективно проверяемое условие). Это утверждение о САМОСОГЛАСОВАННОСТИ при смоделированных шумах, а НЕ гарантия точности в реальных условиях: входные данные CAI и часов заданы в скобках и смоделированы, оборудование CAI принадлежит партнёру, и ничто здесь не подразумевает TRL (technology readiness level, уровень технологической готовности) >3, лётную историю или внешнюю валидацию. Детерминированная модель ошибок IMU настраивается для каждого датчика в файле сценария TOML (Tom's Obvious Minimal Language) gnss-ins ([imu_*.error_model]: масштабный коэффициент, неортогональность осей, g-чувствительность, квантование, линейный дрейф скорости), а при отсутствии настроек по умолчанию используется чисто постоянное смещение Тесносвязанная схема работает только по псевдодальностям (фаза несущей в дорожной карте); сценарий hybrid-ukf использует одну траекторию с постоянной скоростью на одном уровне, на которой состояния ошибок ориентации и смещений IMU наблюдаемы лишь слабо, поэтому согласованность NEES оценивается по оцениваемому подмножеству (положение, скорость, часы = 8 состояний) — наблюдаемость всех 17 состояний требует манёвренной траектории (дорожная карта); пара смещение акселерометра/наклон при слабой связи разделима слабо, поэтому калибровка отдельных смещений не заявляется; модель ошибок IMU не учитывает выпрямление вибраций и дрейф от градиента температуры; 17-state UKF и тесносвязанные пути самопроверены (аналитическое интегрирование при постоянной скорости, сходимость при поддержке GNSS, восстановление смещений, ограничение выбега CAI на 120 с и оракул согласованности χ² для NEES/NIS) — сама механизация бесплатформенной системы VALIDATED against NaveGo v1.4 (tests/classical_strapdown_ins_reference.rs: ориентация побитово идентична, скорость и положение в пределах названных аналитических границ), но перекрёстная проверка на уровне фильтра (NaveGo или набор данных транспортного средства KF-GINS) не проводилась тесная связь по фазе несущей, наблюдаемость всех 17 состояний при манёвренной траектории, библиотека траекторий, перекрёстная проверка фильтра по NaveGo/KF-GINS: P2
Целостность / RAIM / ARAIM (advanced receiver autonomous integrity monitoring, усовершенствованный автономный контроль целостности в приёмнике) частичная Реальный мгновенный 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 (technical note, техническая записка) / 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 against RTKLIB raim_fde в tests/integrity_snapshot_raim_rtklib_oracle.rs); разделение решений ARAIM ADD v4.2 с несколькими гипотезами и определением подмножеств из нескольких спутников находится в src/araim_reference.rs (VALIDATED against Stanford MAAST, tests/integrity_araim_stanford_oracle.rs), но бюджет raim::araim_raim с единой сигмой по-прежнему охватывает только отказы одного 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; ядра мгновенного RAIM/MHSS/ARAIM проверяются на геометрии реальных точных орбит IGS (SP3) (tests/igs_real_data.rs) и на реальных TLE GPS+Galileo с Celestrak (tests/araim_dual_real_data.rs, каждый спутник пересчитан на одну общую эпоху UTC — последнюю эпоху TLE (two-line element set, двухстрочный набор элементов) в наборе, 2026-06-07T07:21:04 — для пользователя на высоте 400 км с наклонением 45° за 24 ч: доступность при VAL (vertical alert limit, вертикальный предел тревоги) 12 м / HAL (horizontal alert limit, горизонтальный предел тревоги) 10 м составляет 0,993 только для GPS, 1,000 для объединённых GPS+Galileo и 0,990 в двухсозвездном режиме, устойчивом к отказам созвездия; ранее опубликованная здесь цифра 0,21→0,67 с «ограниченным» устойчивым режимом получена расчётом каждого спутника от его собственной эпохи TLE — небо, которого никогда не существовало, — и отозвана); прежнее сравнение «EU-ARAIM-TN Table A-3» отозвано (публичного источника нет), а воспроизведение записей максимального URA из публичной вехи 3 ARAIM рабочей группы WG-C ЕС и США (таблицы 5–7, строки Depleted и Baseline) предпринято в xval/araim-m3/ при оговорённых отклонениях (MODELLED, см. INTEGRITY.md); не сертифицировано по DO-229/ARAIM ARAIM с несколькими отказами (ADD v4.2): готово; подмножества из нескольких SV в raim + паритет с gLAB в области приёмника + подключение к FoM: P2 (см. INTEGRITY.md)
Моделирование угроз спуфинга и подавления (jamming) частичная Стохастический детектор спуфинга времени (вид spoof, src/spoof.rs + src/detection.rs): четыре формы внедрения (линейная рампа, скачок, meaconing, повтор) против монитора с привязкой к часам с двусторонним энергетическим тестом χ²₁ / тестом Неймана–Пирсона, порог обнаружения задаётся целевым бюджетом ложных тревог P_fa, а вероятность пропуска обнаружения P_md сообщается и в замкнутой форме, и методом Монте-Карло (оба значения согласуются с точностью до нескольких ×1/√N) — показатель качества безопасности равен 1 − P_md. Кроме того, модель подавления (jamming) на основе бюджета линии (вид jamming, src/jamming.rs): отношение помеха/сигнал по геометрии (потери в свободном пространстве + усиление приёмной антенны по направлениям), стандартное уравнение эффективного C/N₀ при защите от подавления (выигрыш при обработке за счёт сжатия спектра + коэффициент спектрального разделения Q; Kaplan & Hegarty §9,4), потеря захвата для каждого спутника при настраиваемом пороге сопровождения и показатель качества availability_under_jamming для орбитальной группировки Walker. Кроме того, многоуровневый набор мониторов спуфинга по РЧ и измерениям (РЧ: радиочастотный) (src/spoof_monitors.rs): проверка паритета на согласованность RAIM по нескольким спутникам (parity_raim_test, взвешенная сумма квадратов остатков (SOS) против порога χ²(m−4) — и он верно отмечает, что синфазное смещение для RAIM невидимо), монитор AGC (automatic gain control, автоматическая регулировка усиления) (AgcMonitor, превышение принятой мощности над ожидаемым уровнем), монитор качества сигнала / SQM (signal-quality monitoring) (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 (см. строку о навигационных сигналах). Детектор спуфинга с привязкой к часам рассчитан на одни часы; мониторы по РЧ и измерениям теперь интегрированы (CombinedSpoofDetector) и охарактеризованы по опубликованным параметрам сценариев TEXBAT (Humphreys et al.); остаётся проверка на необработанных векторах — отсчётах IQ (синфазная/квадратурная составляющие) TEXBAT (для которых нужен тракт захвата и сопровождения SDR (software-defined radio, программно-определяемое радио), которого у kshana нет, так как это симулятор, а не приёмник) или лицензированном сценарии Spirent — задокументированное продолжение работ с привязкой к часам + интегрированная согласованность RAIM по нескольким SV + 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 — мера информации о дальности / по Крамеру–Рао); тепловой шум дрожания при когерентном сопровождении кода петлёй DLL (delay-locked loop, петля слежения за задержкой) early–late (Kaplan & Hegarty §8 — ~долей метра для C/A при 45 дБ-Гц, монотонно по C/N₀); и огибающая ошибки многолучевости (когерентный EML (early-minus-late, «раньше минус позже»), находится по нулю составного дискриминатора — подавление узким коррелятором подтверждено). Слой компромиссов при проектировании дальномерных кодов (CodeFamily) добавляет боковой лепесток периодической автокорреляции m-последовательностей и кодов Голда (1/L для m-последовательности) и трёхзначную границу взаимной корреляции Голда t(n)/L — воспроизводя опубликованную взаимную корреляцию Голда GPS C/A −23,9 дБ (внешний ориентир) и число 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 (legacy navigation message, прежнее навигационное сообщение) побитово совпадают с gps-sdr-sim. Всё ещё отсутствует: дискриминаторы петель предполагают идеальный корреляционный треугольник BPSK, поэтому разрешения неоднозначности сопровождения BOC нет; модели канала и петель — MODELLED, проверены по замкнутым формам и заложенной истине, а не по измеренным полевым IQ; только скалярные петли (без векторного сопровождения). Проектирование аппаратной части антенн и РЧ-полезной нагрузки (диаграммы направленности, входной тракт) сознательно вне области работ — это роль партнёра по полезной нагрузке. 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-Stark (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 (signal-to-noise ratio, отношение сигнал/шум) для каждого выстрела) и предустановка для площадки на JS (JavaScript) остаются нерешёнными систематические эффекты волнового фронта + воспроизведение лётных испытаний: P2+ (QUANTUM-MODELS.md)
Проектирование орбитальной группировки частичная Синтетические Walker (как аналитические кеплеровы, так и со средними элементами SGP4, последние распространяются через ядро, проверенное до 4,12 мм — src/walker.rs) + реальная видимость нескольких орбитальных группировок по TLE и DOP (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 и ГЛОНАСС которого VALIDATED по опубликованным таблицам, а глобальный базовый геометрический фактор GPS VALIDATED по стандарту характеристик службы стандартного позиционирования GPS, тогда как карты покрытия для произвольных проектов остаются 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) — перекрёстная таблица «требование→модуль→тест→оракул→статус», инварианты честности которой проверены модульными тестами: строку можно пометить как validated только при наличии независимого внешнего оракула (NIST/AIAA/SOFA/IGS/опубликованное значение), так что внутренняя проверка самосогласованности не может сойти за валидацию; выводится в Markdown/CSV (CSV: значения, разделённые запятыми) для перекрёстной таблицы верификации по ECSS-E-ST-10-02 (ECSS: Европейское сотрудничество по стандартизации в космосе) и фиксирует четыре принадлежащих партнёрам пробела по аппаратной части и обеспечению качества продукции (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 (multiplexed BOC, мультиплексированный BOC) или плоские, подобные OFDM (orthogonal frequency-division multiplexing, мультиплексирование с ортогональным частотным разделением), сопровождение кода, захват, совместимость с GNSS, компромисс по диапазонам), leo-pass (пролёт проектного спутника, по элементам, по TLE или Walker с бюджетом линии для каждого диапазона: дождь по ITU-R (International Telecommunication Union Radiocommunication Sector, сектор радиосвязи МСЭ), сцинтилляции и потери при проникновении в здания, ионосфера, антенна, доплеровский сдвиг, относительно видимых спутников GNSS на MEO (medium Earth orbit, средняя околоземная орбита)), leo-navmsg (бортовые эфемериды и часы на кеплеровой основе Galileo ICD (interface control document, документ по управлению интерфейсом) или выбираемые модели LEO, подогнаны и закодированы с проверкой кадра CRC-24Q (24-bit cyclic redundancy check, циклический избыточный код)), leo-pvt (слитое позиционирование по псевдодальностям и доплеровским сдвигам MEO + LEO по любым орбитальным группировкам), leo-ppp (сходимость PPP с поддержкой LEO и без неё на симулированных измерениях), ntn-positioning (границы позиционирования 5G NTN, нетеррестриальных сетей, по ширине полосы сигнала) и leo-pnt-chain (одна система от начала до конца, выход каждого этапа передаётся следующему). Части уровня VALIDATED: параметры линии ITU-R по таблицам и проверочным примерам рекомендаций, максимальный доплеровский сдвиг по опубликованной таблице, пользовательский алгоритм Galileo по RTKLIB до 1 мм, CRC-24Q, веса SISRE (signal-in-space range error, ошибка дальности в сигнале в пространстве) Полевых данных и записанных сигналов нет; показатели позиционирования, PPP, NTN и времени — MODELLED (замкнутые формы, согласованность фильтра, сравнения с опубликованными тенденциями); предустановки взяты из открытых источников или выведены, это не данные операторов проверка по реальным записанным сигналам: P3
Спектр / РЧ-обстановка частичная Вид spectrum (src/spectrum.rs): диапазон L GNSS (а также многодиапазонные проекты UHF (ultra-high-frequency, ультравысокие частоты), S и C) как одна спектральная плотность мощности, частота по горизонтали и время по вертикали, под заданным сценарием помех (непрерывная волна, узкополосные, ЛЧМ и согласованные широкополосные помехи), с отношением J/S (помеха/сигнал) и эффективным C/N₀ (отношение несущей к спектральной плотности шума) для каждого диапазона; запись и чтение записей SigMF и оценки спектра Уэлча для комплексных отсчётов. Замкнутые формы спектров сигналов и коэффициенты спектрального разделения VALIDATED; водопад — MODELLED Сигналы ГЛОНАСС, 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), сноса, спуфинга времени и повтора и журнал инструктора (только текст). src/interference_map/: сводные карты ухудшения навигации по сообщениям самолётов и судов с открытой лицензией и подверженность маршрута, по локальным файлам Потоки — это обучающие данные, их нельзя использовать для действующих навигационных систем судна; карты сводные, это не прогноз, и они зависят от переданных сообщений docs/NMEA-TRAINING.md, docs/INTERFERENCE-MAP.md
Экспорт для испытательного стенда (test-bench) частичная 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 (root-sum-square, корень из суммы квадратов) по членам 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: бюджет линии Фрииса для дальнего космоса (мощность передатчика · усиления антенн · шум → C/N₀ · Eb/N₀ · запас), питающий радиометрический путь и GSE (ground support equipment, наземное вспомогательное оборудование), плюс оптические и РЧ-линии передачи времени (src/timetransfer*.rs) и запускаемый вид link-budget — однонаправленное уравнение линии CCSDS-401/DSN-810-005 (DSN: Deep Space Network, сеть дальней космической связи) C/N₀ = EIRP − FSPL − L_other + G/T − k с входами EIRP (effective isotropic radiated power, эквивалентная изотропно излучаемая мощность) / 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 against 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 (keyword-value notation, нотация «ключ-значение»), GMAT/Orekit/STK) через запускаемый вид oem-interop (src/oem.rs parse_oem, мост с обходом туда и обратно; соответствующий формату обмен для одного объекта VALIDATED по независимому разборщику oem 0.4.5); разбор и вывод Tracking-Data-Message CCSDS-TDM (503) (src/ccsds_tdm.rs, формат обмена радиометрическими данными для дальнего космоса); и вид space-packet (src/space_packet.rs): кодирование и декодирование первичного заголовка Space Packet 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) частичная RINEX 3 NAV для нескольких GNSS — GPS, Galileo, QZSS, BeiDou MEO/IGSO (IS-GPS-200) и ГЛОНАСС (PZ-90 (PZ: Parametry Zemli, российская геодезическая система координат) вектор состояния 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) и проверен обходом туда и обратно на реальной орбитальной группировке 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 (International Association of Geomagnetism and Aeronomy, Международная ассоциация геомагнетизма и аэрономии), суточный Ap, центрированный 81-суточный F10.7a), экзосферная температура по Jacchia-71 и связь плотности термосферы с активностью поверх статической атмосферы — MODELLED первого порядка, НЕ модель абсолютной плотности NRLMSISE. Ионосфера: широковещательная модель Клобучара (VALIDATED по RTKLIB) и читатель карт TEC (total electron content, полное электронное содержание) в формате 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): самописный разборщик цифровой модели рельефа (DEM) SRTM (Shuttle Radar Topography Mission) .hgt (16-битные знаковые значения, big-endian, по строкам, первой идёт северная строка, пустое значение -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 (sampling importance resampling, выборка по значимости с ресемплингом) (прогноз по приращению 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 примерно до 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 мГал; поисковый результат). 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 (ground sample distance, размер пикселя на местности) / доступа / повторного обзора EO по пространственному треугольнику SMAD (Space Mission Analysis and Design)). Нет симуляции EDL/аэротермики с 6 степенями свободы, оптимизатора траекторий, радиометрии датчиков/MTF (MTF: модуляционная передаточная функция). P3
Лунная / цислунная PNT (LunaNet) частичная src/lunar.rs: движок лунного ARAIM, повторно использующий земное ядро MHSS с параметрами LunaNet LNIS (LunaNet Interoperability Specification, спецификация совместимости LunaNet) (σ_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 км | Скорректированные дифференциальным методом начальные условия (IC) NRHO теперь подключены, но денормированное селеноцентрическое (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. Радиометрический навигационный движок: итеративная задержка света + задержка Шапиро, двух-/одно-/трёхсторонний доплеровский сдвиг и дальность (Moyer, два плеча), когерентная задержка транспондера, регенеративная/PN-дальнометрия (PN: псевдошум) (CCSDS 414), Δ-DOR (CCSDS 506), среды солнечной плазмы/тропосферы/ионосферы (src/radiometric.rs); разбор и вывод CCSDS-TDM (503) (src/ccsds_tdm.rs); SRIF с пониженной динамикой (square-root information filter, информационный фильтр в квадратных корнях) с эмпирическими ускорениями RTN (радиальное, трансверсальное, нормальное) + 3-state бортовыми часами + торможением в атмосфере Марса (src/deepspace_od.rs, clock_state.rs, mars_atmos.rs), выполняющий OD на Mars-LMO (LMO: низкая орбита Марса) ≈ 0,2 м в синтетическом замкнутом контуре; слияние односторонних и двусторонних измерений; многотельное динамическое ядро (src/body.rs, Mars GMM-3 (GMM: Goddard Mars Model), система отсчёта IAU Mars 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 замкнутого контура); динамика с центром в Солнце проверена перекрёстно по DE440 JPL (Jet Propulsion Laboratory) (137 м на 1-суточной дуге, xval/anise-mars-od). Отсутствует: валидация по реальным данным слежения DSN/ESTRACK (ESTRACK: Европейская сеть космического слежения); гравитация Марса в собственной системе отсчёта (поле GMM-3 степени и порядка 120 загружается из таблицы PDS SHADR, from_shadr, VALIDATED по pyshtools, и подключается через Body::with_gravity_field, но вычисляется в IAU, а не в собственной системе Konopliv-2006); эфемериды класса DE в ядре (в xval только при наличии ядра). P3
Солнечная система и PNT вокруг любого тела частичная Вид solar-system: положения, скорости и физические константы Солнца, планет, Плутона, Луны и семи крупных спутников на одну эпоху, со временем распространения света между телами; положения планет (элементы JPL Standish) и время распространения света VALIDATED по JPL Horizons (tests/solar_system_horizons_reference.rs), спутники, Плутон и таблица внешних планет остаются MODELLED. Вид body-pnt: орбитальный аппарат или посадочный модуль вокруг любого каталогизированного тела (Марс, Луна, Европа, Ганимед, Титан и другие), навигирующий по односторонним псевдодальностям от локальной орбитальной группировки Walker плюс необязательная двусторонняя дальность с Земли — MODELLED. В ядре нет файла планетарных эфемерид (аналитические элементы), релейные орбиты body-pnt используют только J2 (полные поля Mars GMM-3 степени и порядка 120 и лунное GRAIL GL0660B степени и порядка 660 загружаются из таблиц PDS SHADR и присоединяются к Body для распространителя, src/gravity_pds.rs). P3
Кампании / компоновка миссий частичная Вид campaign (src/campaign.rs): существующие виды, соединённые на одной общей временной шкале (например, подавление (jamming), затем спуфинг, затем holdover с инерциальным выбегом, затем сигнал тревоги по целостности, затем восстановление), перебор параметров и ансамбли Монте-Карло с заданным начальным значением по любому виду, а также несколько сценариев при общих условиях со сводным итогом; каждое число читается из реального прогона вида-участника. Тождества композиции проверяются (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 или кадры) превращает временной ряд в анимацию (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 для начинающих (user experience, пользовательский опыт) частичная Браузерная площадка с выпущенным управляемым режимом: адаптивные к сценарию управляемые ползунки (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 (смоделированы, перекрёстно проверены внутри системы — не проверены внешне): (1) Испытательный стенд оценки обнаружения РЧ-помех методами машинного обучения src/impairment_eval.rs — размеченный синтетический (на основе параметров, не IQ) корпус помех + не зависящая от детектора оснастка ROC/AUC/матрицы ошибок/Pfa-Pmd (ROC: рабочая характеристика приёмника; AUC: площадь под кривой) с защитой от утечки и стратифицированным разбиением; встроенные детекторы — прозрачные базовые реализации опубликованных методов, а не SOTA (state of the art, передовой уровень), и высокий AUC здесь демонстрирует конвейер, а не характеристики в полевых условиях. (2) Движок сравнения квантовой и классической PNT src/quantum_trade.rs — приём измеренной ADEV (подгонка σ_y²(τ)=q_wf/τ + q_rw·τ/3 + q_drift·τ³/20 методом NNLS (non-negative least squares, неотрицательные наименьшие квадраты), проверена обходом туда и обратно по q_from_allan), таблица выигрыша по времени и инерциальному holdover, несущая в артефакте оговорку о допущении нижнего предела, и огибающая устойчивости к отказу GNSS по времени; он количественно оценивает квантовый выигрыш партнёра, но никогда не валидирует устройство. Оба прошли состязательную проверку (были обнаружены и исправлены ошибка базиса дрейфа τ²→τ³ и ложное утверждение об устойчивости «ограничено неопределённо долго»). 911 тестов библиотеки на момент этого дополнения, fmt+clippy без замечаний.

Дополнение об обмене / стандартном формате (src/interchange.rs): Kshana Interchange Format (KIF) — нейтральная, версионированная, самоописывающая Envelope, которая оборачивает любой артефакт (сценарий, результат, сравнительное исследование) узнаваемой меткой format, единственным источником истины SCHEMA_VERSION (версия схемы, прежде скопированная как литерал в 15 местах, теперь задана в одной константе, на которую ссылается весь крейт), создающим engine_version и явным проверяемым контрактом совместимости (compatibility(): тот же major / равный или более старый minor читается при дисциплине аддитивных полей; более новый minor или другой major отклоняется на границе через Envelope::parse, а не разбирается молча с ошибкой). Допускает обход туда и обратно (wrap→to_json→parse→payload_as::<T>()) для любой полезной нагрузки Deserialize; намеренно без меток времени, чтобы сохранить побитовую воспроизводимость Kshana. Описано в SCHEMA.md, чтобы формат можно было цитировать, а не только выдавать, — позиционирование «будущего стандарта» в открытом ядре. 923 тестов библиотеки на момент этого дополнения, fmt+clippy без замечаний.

Дополнения FutureNAV по наращиванию преимущества (смоделированы, перекрёстно проверены внутри системы — не проверены внешне): (1) Слой бережливой стоимости покрытия / ROI (return on investment, окупаемость вложений) src/frugal.rs — слой подачи выгод над движком расчёта размера орбитальной группировки (walker), который сообщает стоимость одного процентного пункта покрытия и ROI в виде покрытия на евро относительно базового уровня; стоимость спутника задаётся вызывающей стороной в виде вилки низкая/номинальная/высокая с указанием источников (без выдуманных точечных цен), поэтому результаты — диапазоны, а не ложные точки; смоделированная экономическая постановка смоделированного показателя покрытия, а не коммерческое предложение. (2) Отображение влияния пропуска обнаружения на целостность src/integrity_impact.rs — отображает необнаруженное смещение положения, вызванное спуфингом или подавлением (jamming), в его эффективную ошибку → область Стэнфорда (доступно / система недоступна / вводит в заблуждение / опасно вводит в заблуждение) относительно пределов тревоги для конкретного контекста (открытое небо и город, HAL и VAL), используя внешне привязанный RAIM classify_stanford; мост от пропуска обнаружения к пределу тревоги смоделирован, это не сертифицированное распределение целостности. Оба отображены в машинно проверяемую матрицу верификации (src/verification.rs, инвариант Validated⇒ExternalDataset сохранён; актуальное число строк указано в сгенерированном заголовке VERIFICATION-MATRIX.md). Перекрёстная проверка, защита от утечки и стратифицированное по параметрам разбиение для оснастки оценки ИИ уже выпущены в src/impairment_eval.rs (stratified_split, Split::has_leakage). 951 тестов библиотеки на момент этого дополнения, fmt+clippy без замечаний.

Дополнения FutureNAV по исследованию разрыва оптимизма (смоделированы, перекрёстно проверены по замкнутым формам внутри системы — не проверены внешне, не заявление о переходе от симуляции к полевым условиям): контролируемое синтетическое исследование разрыва оптимизма по AUC между данными из распределения и вне распределения для детекторов РЧ-помех. (1) Обучаемые детекторы src/impairment_ml.rs — фиксированное отображение признаков + стандартизатор, подогнанный на обучающей выборке, базовая логистическая регрессия (детерминированный градиентный спуск по всему пакету) и однослойный MLP (multilayer perceptron, многослойный перцептрон; обратное распространение с заданным начальным значением, SGD (stochastic gradient descent, стохастический градиентный спуск)) за тем же трейтом ImpairmentDetector, что использует базовые реализации опубликованных методов. (2) Статистика, выведенная вручную src/eval_stats.rs — доверительные интервалы (CI) бутстрепа по процентилям, дисперсия и CI AUC по DeLong, Спирмен ρ и гребневая регрессия, каждая проверена по замкнутой форме (бинормальная AUC Φ(d′/√2), вручную рассчитанная дисперсия DeLong, учебный ρ со связанными рангами, точное восстановление по OLS (ordinary least squares, обычный метод наименьших квадратов)). (3) Само исследование src/impairment_study.rs — AUC для каждого класса, тенденция закона масштабирования для каждой (detector,class) (разрыв против 1−тяжесть) и гребневой предиктор разрыва только по ID, оценивающий разрыв оптимизма только по диагностике внутри распределения, оценённый по схемам исключения одного детектора и исключения одного класса против базового предсказания среднего. Артефакт одной командой через cargo run --release --example optimism_study. Каждое число — это AUC по меткам, выведенным из модели, на синтетическом корпусе на основе параметров; разрыв — это сдвиг тяжести между синтетическими данными, но никогда не результат обнаружения в полевых условиях. Отображено в машинно проверяемую матрицу верификации (src/verification.rs, инвариант Validated⇒ExternalDataset сохранён).