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

API и интеграцииПравить на GitHubИсточник: docs/POSITIONING.md

Место Kshana

Kshana — открытый воспроизводимый движок доказательств устойчивости PNT (позиционирования, навигации и времени). Вы описываете сценарий — датчики или часы, пропадание ГНСС (глобальной навигационной спутниковой системы), атаку подавлением или спуфингом, бюджет — и он показывает, насколько хорошо держатся время и положение, оценивая это по эксплуатационным показателям качества (FoM). Каждая возможность, стоящая за этими показателями, помечена в машинно проверяемой матрице как VALIDATED (проверено по независимому внешнему оракулу), MODELLED (внутренне согласовано, внешне не проверено) или PARTNER (отвечает аппаратный партнёр). На этой странице сказано, в чём он ведущий, для чего предназначен и чем не является.

В чём он ведущий: время и holdover для критической инфраструктуры#

Лучше всего проверена в движке синхронизация времени. Телекоммуникационные сети, энергосети и финансовые площадки получают время от ГНСС, и каждому приходится рассчитывать holdover: как долго локальные часы могут идти свободно после потери ГНСС, прежде чем ошибка времени выйдет за бюджет.

  • Что относится к VALIDATED. Оценщики стабильности частоты, из которых строится ответ по holdover, — девиация Аллана (ADEV), модифицированная девиация Аллана (MDEV), девиация времени (TDEV), максимальная ошибка временного интервала (MTIE) и оценщик Theo1 с расширенным диапазоном — проверены по эталонным девиациям Stable32, независимой библиотеке allantools и реальным измеренным цезиевым часам. Расчёт дисперсии выбега в holdover и его обращение во время holdover проверены по SciPy. Каждая строка, её тест и её оракул описаны в VERIFICATION-MATRIX.md.
  • Что остаётся MODELLED. Нижние границы шума для каждого класса часов (например, долговременная нижняя граница данного класса генераторов) определяют ответ для стабильных часов, и это типовые показатели, а не измерения вашего устройства. Для числа, которое вы собираетесь отстаивать, подставьте измеренные нижние границы.
  • Телекоммуникационные блоки. Вид telecom-timing сообщает MTIE и TDEV, сверяет их с масками Сектора стандартизации электросвязи Международного союза электросвязи (ITU-T) — G.8272 для первичных часов опорного времени (PRTC), G.8272.1 для расширенных PRTC (ePRTC), G.8273.2 для телекоммуникационных пограничных часов (T-BC) и G.8271.1 для сетевых пределов в опорной точке C — и сообщает, как долго holdover остаётся в пределах каждого бюджета ошибки времени. См. TELECOM-TIMING.md.

Чем он отличается#

Не физика и не стандарты составляют отличие: пропагация Simplified General Perturbations 4 (SGP4), девиация Аллана, системы координат и геометрический фактор DOP доступны, бесплатны и корректны в других библиотеках, и Kshana сверяет себя с несколькими из них. Отличие — в дисциплине доказательств:

  • Открытость. Движок распространяется под GNU Affero General Public License (AGPL), так что любой может прочитать его и перезапустить. Для закрытой интеграции существует коммерческая лицензия.
  • Воспроизводимость. Результат определяется scenario + seed + engine version побитово, и прогоном можно поделиться в виде ссылки на браузерную песочницу.
  • Помеченное происхождение. Каждый параметр датчика привязан к опубликованному источнику (PROVENANCE.md), и каждая возможность несёт свой уровень VALIDATED / MODELLED / PARTNER. Охрана непрерывной интеграции (CI) отклоняет строку VALIDATED без независимого внешнего оракула, так что внутреннюю самопроверку нельзя выдать за валидацию.

Мы не нашли другого открытого инструмента, который сочетал бы всё это в области holdover, целостности, инерциального выбега и квантовых датчиков, но поиск, ничего не нашедший, не доказывает, что ничего нет; мы не утверждаем, что мы единственные.

Квантовые системы: нейтральный метод сравнения, результаты помечены MODELLED#

Kshana сравнивает квантовые и классические часы и инерциальные датчики на одном и том же сценарии одним и тем же кодом: каждое устройство — это модель ошибок, и движок не знает, какое из них «квантовое». Рассматривайте его как нейтральный метод сравнения квантовых и классических систем, результаты которого помечены MODELLED. Большинство входных данных — опубликованные коэффициенты Аллана / бюджета шума; у акселерометра на атомном интерферометре с холодными атомами есть слой из первых принципов, из которого выводится его коэффициент шума. Измеренные данные девиации Аллана партнёра можно подать через вид quantum-trade — это путь для повышения уровня показателей конкретного устройства. См. QUANTUM.md и QUANTUM-MODELS.md.

Луна, цислунное пространство и дальний космос: поддерживаются, а не главное#

Лунный / цислунный набор (мониторинг лунной целостности, ядро задачи трёх тел Земля–Луна, лунные шкалы времени, анализ зоны обслуживания) и движок радиометрической навигации в дальнем космосе — это поддерживаемые возможности. Большинство их строк MODELLED, а лунную навигацию уже обслуживают специализированные инструменты, поэтому они предлагаются как возможности того же движка, каждая со своим уровнем, а не как главное направление.

Остальное в движке#

Тот же движок с теми же уровнями охватывает также:

  • PNT на низкой околоземной орбите (LEO), от начала до конца. Проектирование сигнала (leo-signal), пролёт и бюджет линии по диапазонам (leo-pass), широковещательное навигационное сообщение (leo-navmsg), объединённое позиционирование на средней и низкой околоземных орбитах (leo-pvt), сходимость прецизионного абсолютного позиционирования (PPP) с дополнением LEO (leo-ppp), позиционирование по нетерриториальной сети 5G (ntn-positioning) и leo-pnt-chain, который передаёт выход каждой стадии следующей для одной системы.
  • Спектр. Водопад спектральной плотности мощности в L-диапазоне (а также в диапазонах сверхвысоких частот (UHF), S и C) при заданной по сценарию временной шкале помехи, с отношением помехи к сигналу по диапазонам и эффективной несущей к плотности шума (spectrum), а также ввод и вывод записей Signal Metadata Format (SigMF).
  • Солнечная система и любое центральное тело. Положения и физические константы планет и крупных спутников (solar-system), позиционирование вокруг любого из этих тел (body-pnt) и проектирование орбитальных группировок Walker и по опубликованным слотам с картами покрытия и геометрического фактора DOP вокруг любого из них (constellation-design).
  • Кампании. Существующие виды, соединённые в цепочку на одной общей временной шкале, с перебором, прогоняемые как ансамбли Монте-Карло с начальным значением либо запускаемые бок о бок при общих условиях (campaign).
  • Выходные данные. Каждый прогон записывает документ результата, график и отчёт в HTML (HyperText Markup Language) и JSON (JavaScript Object Notation); --animate записывает анимацию SVG (Scalable Vector Graphics), HTML или последовательность кадров; --export записывает эфемериды CZML (Cesium Language), KML (Keyhole Markup Language), GeoJSON или STK (Systems Tool Kit) для видов, которые размещают объекты на Земле, и SigMF для spectrum.

Большинство этих строк MODELLED; матрица верификации называет немногие, относящиеся к VALIDATED (например, рекомендации Международного союза электросвязи по дождю и сцинтилляциям, алгоритм широковещательных эфемерид Galileo, проверка кадра по CRC-24Q (24-битному циклическому избыточному коду) и решатель времени распространения света для планет).

Чем Kshana не является#

  • Это не имитатор радиочастотных (РЧ) сигналов и не стенд полунатурного моделирования (HIL). Kshana не управляет никаким радиооборудованием и ничего не передаёт. Большая его часть работает на уровне моделей ошибок и бюджетов линий — до того, как покупается оборудование или лабораторное время. На уровне сигнала это только программное обеспечение: слой IQ ГНСС (iq) записывает файлы отсчётов IQ (синфазная/квадратурная составляющие) в основной полосе для легитимных сигналов ГНСС для программных приёмников и запускает на них собственный программный приёмник; раздел [iq] вида spectrum (начиная с 0.29.0) записывает снимок SigMF (Signal Metadata Format) своей аналитической модели, включающий заданные источники помех (шумоподобные — по отсчётам частоты, тоны и чирпы — как формы волны); а spoof_capture суммирует аутентичный сигнал и копию сигнала спуфера в памяти, чтобы проверить захват контура, не записывая её. Испытание аппаратного приёмника на реальном РЧ-воздействии — задача РЧ-имитатора.
  • Это не замена MATLAB/Simulink, STK или Orekit. Он работает рядом с ними. Он читает и записывает используемые ими форматы обмена — сообщения об эфемеридах орбиты CCSDS (Consultative Committee for Space Data Systems), прецизионные орбиты SP3 (Standard Product 3), RINEX (Receiver Independent Exchange Format) — записывает эфемериды CZML, KML, GeoJSON и STK для их средств просмотра, а его численная силовая модель перекрёстно проверяется по Orekit, а не предлагается вместо него.
  • Это не движок обработки ГНСС по фазе несущей и не служба позиционирования (см. ниже).
  • Это не орган сертификации. Метка VALIDATED означает, что возможность совпадает с внешним оракулом; это не сертификация какого-либо продукта или оператора.

Чем Kshana является и не является по сравнению с движком обработки ГНСС#

Kshana не является движком обработки ГНСС по фазе несущей, и ни один вид сценария не является службой позиционирования. Одной ногой он стоит в области измерений — как код библиотеки, на который опирается исследование характеристик и который проверяется по независимым эталонам. Кинематическое позиционирование в реальном времени (RTK) на короткой базе с фиксацией целых неоднозначностей LAMBDA (least-squares ambiguity decorrelation adjustment) выполняется по реальным двухчастотным наблюдениям RINEX, как и статический фильтр прецизионного абсолютного позиционирования (PPP) с плавающими неоднозначностями с окончательными орбитами и часами IGS, а часы приёмника, которые оценивает этот фильтр, — это решение по времени относительно окончательных часов станции IGS. Каждый из этих трёх — строка VALIDATED матрицы верификации по указанным там данным станций IGS, и каждый работает на статических коротких окнах наблюдений, а не как потоковая служба с разрешением неоднозначностей на длинных базах, сглаживанием по несущей или кинематическим ровером. Вид leo-ppp запускает фильтр PPP с плавающими неоднозначностями по коду и фазе несущей, но на измерениях, которые он сам имитирует, чтобы изучить время сходимости с дополнением LEO и без него; файл наблюдений он не обрабатывает. Вид pvt (положение, скорость и время) решает положение приёмника по реальным кодовым псевдодальностям RINEX и широковещательным эфемеридам, проверен по обследованной координате Международной службы ГНСС (IGS) (станция ABMF, 2018-05-13) с результатом 5,7 м СКО (среднеквадратичное отклонение) в 3-мерном пространстве / 1,1 м по горизонтали. Но продукт — это исследование характеристик, а не служба позиционирования, и приведённое ниже изложение призвано избавить потенциального пользователя от разочарования из-за неподходящего инструмента.

Kshana Движок обработки ГНСС (RTKLIB — открытая библиотека кинематического позиционирования в реальном времени; gLAB — набор инструментов лаборатории ГНСС группы gAGE Политехнического университета Каталонии)
Входная величина сценарий: модели ошибок датчиков, окна пропаданий, геометрия — или, для pvt, файл реальных наблюдений RINEX плюс широковещательная навигация реальные наблюдения ГНСС (RINEX), эфемериды, поправки
Вывод показатели качества характеристик: holdover, ошибка времени/положения, доступность, границы целостности/безопасности — плюс положение по коду в режиме одиночного определения (SPP) из вида pvt решение по положению/скорости/времени (SPP, PPP, RTK)
Вопрос, на который он отвечает «насколько хороша была бы эта архитектура и где она ломается?» «по этим измерениям, где я сейчас?»
Квантовые / оптические датчики моделируются как модели ошибок (оптические часы, инерциальный измерительный блок (IMU) на холодных атомах, оптическая передача времени), результаты помечены MODELLED не моделируется
Обработка реальных наблюдений SPP по коду из реальных наблюдений RINEX (pvt, уровень метров); RTK на короткой базе с LAMBDA и статический PPP с плавающими неоднозначностями по реальной фазе несущей — как код библиотеки, проверенный по станциям IGS (VALIDATED, статические и короткие окна, не потоковая служба); плюс геометрия / геометрический фактор DOP / доступность основная компетенция, вплоть до PPP/RTK по фазе несущей
Установка ноль — работает во вкладке браузера (WebAssembly) нативная сборка / набор инструментов

Дополняют, а не конкурируют — RTKLIB и gLAB#

RTKLIB и gLAB — зрелые, широко используемые пакеты обработки ГНСС. Они берут реальные измерения и выдают решение по положению (SPP/PPP/RTK; gLAB также превосходный учебный инструмент с богатой историей в Европейском космическом агентстве (ESA) и в Европейской геостационарной навигационной оверлейной службе (EGNOS)). Kshana их не заменяет и не пытается заменить. Его путь работы с наблюдениями узок: кодовое одиночное позиционирование (pvt) и, как проверенный код библиотеки, RTK на короткой базе с фиксацией целых неоднозначностей LAMBDA и статический фильтр PPP с плавающими неоднозначностями по реальным двухчастотным наблюдениям, каждый VALIDATED по данным станций IGS (фильтр PPP также по прогону RTKLIB на тех же входных данных). В нём нет сглаживания по несущей, кинематической или потоковой обработки и разрешения неоднозначностей на длинных базах, а pvt не оценивает тропосферу и ионосферу — он применяет модели тропосферы Саастамойнена/Нилла и безионосферную комбинацию L1/L2, но не решает их как состояния.

Конвейер дополняющий:

  • RTKLIB / gLAB отвечают на вопрос «где я, по этим сигналам?»
  • Kshana отвечает на вопрос «как долго я сохраняю хороший ответ, когда эти сигналы пропадают, и что мне даёт лучшие часы или инерциальный датчик, классический или квантовый?»

Естественный рабочий процесс использует движок обработки для участка с доступной ГНСС, а Kshana — для изучения поведения holdover и пространства компромиссов по датчикам вокруг него. Если вам нужна служба позиционирования по фазе несущей — кинематическое PPP или RTK, длинные базы, сетевое разрешение неоднозначностей, — используйте RTKLIB или gLAB; если нужны воспроизводимые, помеченные доказательства об устойчивости и holdover, именно для этого создан Kshana.

Ступень в браузере без установки#

Большинство инструментов моделирования в этой области (RTKLIB, gLAB, General Mission Analysis Tool (GMAT), Orekit, STK) требуют нативной установки или лицензии и времени на освоение до первого результата. Kshana компилируется в WebAssembly и работает целиком в браузере — песочница загружает готовый сценарий, запускает настоящий движок на стороне клиента (ничего не загружается на сервер) и показывает результат за секунды. Управляемые ползунки и сценарии в один щелчок означают, что для первого полезного результата не нужны ни TOML (Tom's Obvious Minimal Language, формат файлов сценариев), ни набор инструментов.

Эта ступень без установки — осознанная позиция:

  • Доступность — рецензент, студент или специалист по закупкам может опробовать настоящий движок по ссылке, на любом устройстве, без какой-либо настройки.
  • Воспроизводимость — тот же движок, что работает в браузере, является библиотекой, поставляемой на crates.io, в Python Package Index (PyPI) и npm; результат воспроизводим по scenario + seed + engine version, а прогоном можно поделиться в виде URL (веб-адреса).
  • Честность — самостоятельный запуск движка в открытую — самый сильный ответ на призыв «доверяйте числам»: браузерная ступень и есть поверхность аудита.

Браузерная ступень не делает Kshana заменой настольного пакета обработки — она делает вопрос о сравнительных исследованиях характеристик доступным для тех, кто никогда бы такой пакет не установил.

См. также#

  • CAPABILITY.md — карта области действия по строкам (полная область действия решателя pvt и невязки — в строке Обработка ГНСС / PNT).
  • VALIDATION.md — что проверено, с доказательствами.
  • TELECOM-TIMING.md — вид телекоммуникационной синхронизации и его маски.
  • GLOSSARY.md — определения используемых здесь терминов простым языком.
  • web/README.md — браузерная песочница.