Объединённые PNT (позиционирование, навигация и время) по спутникам MEO и LEO
Три вида сценариев обеспечивают позиционирование, навигацию и время (PNT) по спутникам на низкой околоземной орбите (LEO) отдельно или совместно с глобальными навигационными спутниковыми системами (GNSS) на средней околоземной орбите (MEO): leo-pvt (положение, скорость и время), leo-ppp (прецизионное абсолютное позиционирование) и ntn-positioning (нетерристриальная сеть 5G). Источник: src/leo_fusion/.
Движок не привязан к конкретной системе. Каждая орбитальная группировка задаётся оболочками Уокера, явными орбитальными элементами или предустановкой GNSS вида constellation-design; каждый сигнал задаётся несущей, скоростью следования элементов кода и огибающей отношения мощности несущей к спектральной плотности шума (C/N0); каждый бюджет ошибок — явное одно сигма. Именованные системы — необязательные предустановки, по одному файлу на каждую, и любая возможность, любой тест и любой встроенный сценарий работают без какой-либо конкретной из них.
Системы и предустановки#
Сценарий перечисляет свои системы в виде таблиц [[system]]. Этот полный сценарий объединяет базовую орбитальную группировку GPS с обобщённым слоем LEO и выполняется как записано (kshana <file>.toml; движок 0.40.0 даёт медианный геометрический фактор DOP по положению 2,43 для одной GPS и 1,17 для объединённого решения, а среднеквадратичную 3D-ошибку 2,06 м и 0,47 м):
kind = "leo-pvt"
mode = "joint"
seed = 3
duration_s = 600.0
step_s = 60.0
[user]
lat_deg = 40.42
lon_deg = -3.70
height_m = 650.0
[[system]]
name = "GPS"
preset = "gps-baseline"
cn0_dbhz = [38.0, 48.0]
sisre_m = 0.6
[[system]]
name = "Any LEO layer"
carrier_hz = 1.5e9 # any band
chip_rate_hz = 10.23e6 # omit with doppler_only = true for a signal of opportunity
cn0_dbhz = [45.0, 55.0] # at the elevation mask and at the zenith
sisre_m = 0.3 # signal-in-space range error of orbit and clock, one sigma
clock = "estimated" # its own receiver clock (inter-system bias solved) or "known"
isb_ns = 40.0 # true inter-system bias used to simulate its pseudoranges
[[system.shell]]
total = 240
planes = 12
phasing = 1
altitude_km = 1000.0
inclination_deg = 60.0
preset = "gps-baseline" (Global Positioning System, GPS; или galileo, beidou-meo, glonass) берёт опубликованную орбитальную группировку GNSS; leo_preset = "..." заполняет всё, что таблица не задаёт, из предустановки LEO. C/N0 линейно зависит от синуса угла места, от маски до зенита (выбор модели: реальная огибающая пролёта зависит от диаграммы направленности передающей антенны). Одно сигма псевдодальности — это тепловой шум схемы слежения за задержкой (DLL) движка (navsignal::dll_code_jitter_chips) при данном C/N0, объединённый с ошибкой дальности в пространстве сигнала (SISRE), если только sigma_pr_m не задаёт его явно; одно сигма скорости изменения дальности равно длине волны, умноженной на sigma_doppler_hz. Поскольку сигма является входной величиной, отдельная модель сигнала может подавать её, а код позиционирования не знает, откуда она взялась.
| Пресет | Что он передаёт | Источники |
|---|---|---|
xona-pulsar |
X1 на 1593,3225 МГц, 1,023 Мчип/с, принимаемая мощность от −148,2 до −139,1 дБВт; X5 на 1190,51625 МГц, 10,23 Мчип/с, от −144,9 до −136,2 дБВт; 258 спутников в 18 плоскостях на высоте 1080 км, 53 и 97 град | PUBLIC: arXiv:2509,19551. Representative: разделение между двумя наклонениями, фазирование, ошибка дальности |
iridium-stl |
Iridium Satellite Time and Location (STL): 66 спутников, шесть почти полярных плоскостей на высоте 780 км и 86,4 град; пакеты на 1616–1626 МГц, квадратурная фазовая манипуляция (QPSK) со скоростью 25 000 символ/с; принимаемая мощность в 300–2400 раз выше минимума GPS | PUBLIC: Resilient Navigation and Timing Foundation (RNTF), National Institute of Standards and Technology (NIST), орбитальная группировка. ПРОИЗВОДНЫЙ: мощность в дБВт. Representative: несущая в центре диапазона, ошибка дальности |
starlink-sop |
Только Доплер: 11,325 ГГц, маяк с ортогональным частотным мультиплексированием (OFDM) 240 МГц, C/N0 до 57,07 дБ-Гц, ошибка Доплера 30 Гц; первая оболочка из 1584 спутников на высоте 550 км и 53 град | PUBLIC: Kozhaya, Saroufim and Kassas 2025, Federal Communications Commission (FCC) 21-48. Representative: фазирование, C/N0 у горизонта |
centispace |
Двоичная фазовая манипуляция (BPSK) со скоростью 2,046 Мчип/с вблизи L1 и L5; определение орбиты с точностью до сантиметров | PUBLIC: первоначальная оценка, GPS Solutions. Representative: несущие, мощность, вся действующая орбитальная группировка |
generic-c-band |
Система диапазона C в распределении радионавигационной спутниковой службы (RNSS) 5010–5030 МГц, для систем, параметры которых не публикуются | PUBLIC: распределение Регламента радиосвязи Международного союза электросвязи (ITU). Всё остальное — representative |
atomic-zero-clock |
Модель эфемерид и часов: эфемериды в виде полинома шестого порядка, обновление каждые 30 с, часы, синхронизируемые со временем GNSS; SISRE 0,26 м | PUBLIC: InsideGNSS. ПРОИЗВОДНЫЙ: SISRE. Сочетается с любой орбитальной группировкой через ephemeris_preset |
celeste-iod |
Демонстрация на орбите (IOD) Celeste Европейского космического агентства (ESA), одна конфигурация параметризованной конструкции сигнала | PUBLIC орбита (ESA, тезисы Института навигации (ION) 16907); WORKSHOP параметры сигнала, представленные на семинаре ESA по LEO-PNT в рамках Программы инноваций и поддержки в области навигации (NAVISP), 2026 |
Все числа, полученные из семинара, находятся в модуле fusion файла src/celeste_iod.rs, который используется в scenarios/celeste-iod-fused-pvt.toml (tests/workshop_preset_isolation.rs проверяет, где они могут появляться). Как предустановка скрывается: все числа движка, полученные из семинара, находятся в одном файле, src/celeste_iod.rs, который build.rs компилирует только при его наличии, а также в сценариях, существующих только в репозитории, scenarios/*celeste-iod*.toml. Удаление этого файла и этих сценариев скрывает предустановку без правки исходного кода; все остальные тесты, оракулы и сценарии выполняются без неё, а число файлов сценариев в README по-прежнему учитывает скрытые файлы.
leo-pvt#
Один вид, четыре режима (mode = "doppler" | "joint" | "polar" | "timing").
Доплер. Приёмник, измеряющий Доплер f_D на длине волны λ, наблюдает скорость изменения дальности ρ̇ = −λ f_D = u·(v_s − v_u) + ḋ, где u — линия визирования, а ḋ — дрейф часов приёмника. Пакетная подгонка методом Гаусса–Ньютона определяет положение, дрейф и, при необходимости, постоянную скорость с аналитическими частными производными ∂ρ̇/∂r = −(I − u uᵀ)(v_s − v_u)/ρ: информацию о положении несёт только составляющая скорости спутника поперёк линии визирования, поэтому геометрия — это то, как поворачиваются линии визирования в течение окна. Отчёт приводит зависимость ошибки от длины окна, огибающую Доплера, скорости изменения Доплера и рывка для каждой системы, а также таблицу одного пролёта. Один пролёт определяет положение пользователя вдоль трассы (момент нулевого Доплера) и поперёк неё (крутизна кривой Доплера); поперечная ошибка неограниченно растёт, когда пролёт проходит над головой, а зеркальное отражение относительно трассы на поверхности подходит почти так же хорошо (разделяет их только вращение Земли). В этом режиме выполняется система только с Доплером (doppler_only = true, предустановка starlink-sop).
Joint. В каждую эпоху — взвешенный метод наименьших квадратов по псевдодальностям только систем GNSS, только систем LEO и всех вместе, с одними часами приёмника на систему (межсистемное смещение, ISB, оценивается) или с известным широковещательным смещением относительно опорной шкалы времени. Выдаются геометрический, позиционный, горизонтальный, вертикальный и временной факторы ухудшения точности (GDOP, PDOP, HDOP, VDOP, TDOP), ошибки, оценённые смещения и DOP в зависимости от числа спутников LEO, добавленных к геометрии GNSS.
Polar. Спутники в зоне видимости, медианный DOP и доступность в зависимости от широты для GNSS на MEO, LEO и для обеих вместе.
Timing. В известном положении каждая псевдодальность LEO является измерением часов. Приёмник запускает двухсостоянный (фаза, частота) фильтр Калмана, шумом процесса которого служат белый и случайно-блуждающий частотные шумы класса генератора (slot-timing и модели часов), удерживает время между пролётами и переводит системное время во всемирное координированное время (UTC) по выражению IS-GPS-200 Δt_UTC = Δt_LS + A0 + A1 (t_E − t_ot + 604800 (WN − WN_t)); неопределённость широковещательного смещения является смещением на прогон.
leo-ppp#
Расширенный фильтр Калмана (EKF) для плавающего прецизионного абсолютного позиционирования (PPP) по безионосферным кодовым и фазовым измерениям: статические координаты, белые часы приёмника, одно межсистемное смещение на каждую дополнительную систему, случайно-блуждающая зенитная влажная задержка и плавающая неоднозначность на каждую дугу спутника. Ошибка точных орбит и часов общая для кода и фазы спутника, поэтому каждый спутник — это одно коррелированное обновление из двух строк в форме Джозефа, которая сохраняет положительную определённость ковариации в течение тысяч фазовых обновлений миллиметрового уровня. Измерения моделируются по той же модели, поэтому нормированная квадратичная ошибка оценки (NEES) положения должна следовать закону хи-квадрат с тремя степенями свободы; тест проверяет это по начальным значениям (seed) Монте-Карло. Сходимость — это первая эпоха, после которой горизонтальная и вертикальная ошибки остаются ниже пороговых значений (10 см) до конца прогона.
Спутник LEO пересекает небо примерно за десять минут, спутник MEO смещается на несколько градусов, поэтому дуги LEO разделяют неоднозначности и положение намного раньше.
ntn-positioning#
Нисходящая линия нетерристриальной сети (NTN) 5G в диапазоне S подвижной спутниковой службы (MSS), диапазон n256 Проекта партнёрства 3-го поколения (3GPP) (2170–2200 МГц). Граница Крамера–Рао (CRB) для времени прихода равна c / (2π β sqrt(2 (C/N0) T)), где β — среднеквадратичная (по Габору) ширина полосы (B/√12 для плоского спектра OFDM), а для частоты тона — sqrt(3 / (2π² (C/N0) T³)). Этот вид сравнивает каналы (по умолчанию канал New Radio 5 МГц и узкополосный канал 200 кГц) по определениям места на основе времени прихода нисходящей линии с неизвестными часами приёмника и по определению места по Доплеру одного спутника за пролёт.
Входящие в поставку сценарии#
| Сценарий | Вид, режим | Что он показывает (с начальным значением, детерминированно) |
|---|---|---|
leo-doppler-positioning |
leo-pvt, doppler |
Слой Xona Pulsar X1 (258 спутников), шум Доплера 1 Гц: 3D-ошибка 7,5 м через десять минут (26 спутников); при одном пролёте поперечное одно сигма равно 303 м, когда пролёт проходит почти над головой (25 км от трассы), против 43 м на удалении 250 км от трассы |
starlink-sop-doppler-positioning |
leo-pvt, doppler |
Сигналы оказии только с Доплером, ошибка Доплера 30 Гц при 10 Гц: формальное горизонтальное одно сигма около 10 м через 20 с при 12 спутниках и 6 м через 60 с |
meo-leo-fused-pvt |
leo-pvt, joint |
Медианный PDOP GPS и Galileo 1,47 и среднеквадратичная (RMS) 3D-ошибка 1,06 м; Xona X5 отдельно 1,73 и 0,49 м; объединённо 1,06 и 0,41 м; смещение LEO 40 нс (11,99 м) оценено как 12,06 м |
leo-ppp-convergence |
leo-ppp |
Сходимость 7,4 мин (только GNSS на MEO), 4,8, 3,2, 2,7 и 2,3 мин при 60, 96, 192 и 288 спутниках LEO |
ntn-5g-positioning |
ntn-positioning |
Граница дальности от 0,26 до 1,03 м для 4,5 МГц и от 6,5 до 26 м для 180 кГц; определения места около 2 м против 26 м |
polar-arctic-leo-coverage |
leo-pvt, polar |
VDOP GPS и Galileo 1,20 на экваторе, 1,51 на 89,9 град; с Iridium 1,14 на полюсе |
leo-timing-utc |
leo-pvt, timing |
Передача времени по Iridium за 6 часов в Боулдере: от 9,9 до 11,4 нс RMS при номинальном C/N0 для четырёх классов генераторов, от 15,1 до 25,0 нс при уровне на 30 дБ ниже |
celeste-iod-fused-pvt (необязательно) |
leo-pvt, joint |
GNSS, к которой добавлены два спутника IOD на опорной шкале времени (только в репозитории, скрывается вместе с предустановкой) |
Эти виды выполняются и внутри других сценариев: leo-pvt входит в перебор leo-focus-fused-pnt-sisre и в кампании leo-vertical-autonomous-vehicle, leo-vertical-polar-arctic, leo-vertical-critical-infrastructure-timing и leo-vertical-5g-network-timing; leo-ppp — в перебор leo-focus-ppp-altitude; ntn-positioning — в перебор leo-focus-ntn-bandwidth; а leo-pvt и leo-ppp являются стадиями объединённого определения места и PPP вида leo-pnt-chain. Их результаты приведены на LEO-PNT.md.
Опубликованные значения и обозначения#
| Значение | Источник | Kshana | Метка |
|---|---|---|---|
| Доплер Iridium до ±36 кГц | RNTF | 35,9 кГц, максимум за сутки пролётов, в пределах 5% | VALIDATED (tests/leo_doppler_reference.rs) |
| Максимальный Доплер Xona Pulsar X1 от 32 до 34 кГц | arXiv:2509,19551 | 33,6 кГц для одного спутника каждой опубликованной оболочки (1080 км, 53 и 97 град), внутри интервала без расширения; одна оболочка 53 град достигает пика 31,8 кГц, поскольку вращение Земли замедляет прямую орбиту относительно земной поверхности | VALIDATED (тот же тест) |
| Рывок Xona Pulsar X1 ±1,26 Гц/с² | arXiv:2509,19551 | около 1,0 Гц/с² при пролёте над головой | приведено, не проверено по независимому эталону |
| Сходимость PPP 9,6 → 7,0, 3,2, 2,1, 1,3 мин при 60/96/192/288 LEO | Li et al., Journal of Geodesy 93:749 (2019), doi 10.1007/s00190-018-1195-2 | 7,4 → 4,8, 3,2, 2,7, 2,3 мин, монотонно | MODELLED согласованность тенденции (орбитальные группировки, шум и станции не воспроизведены) |
| Starlink около 2 м за 20 с при трёх спутниках | Kozhaya, Saroufim and Kassas 2025 | формальное горизонтальное одно сигма около 10 м через 20 с при 12 спутниках, с идеальными эфемеридами и всеми ошибками в сигме Доплера 30 Гц при 10 Гц | MODELLED сравнение (приёмник и частота измерений не воспроизведены) |
| Синхронизация по Iridium в пределах 40 нс от UTC(NIST) | NIST | около 10 нс RMS по модели | MODELLED сравнение |
Всё остальное — MODELLED, с обоснованием в матрице верификации (docs/VERIFICATION-MATRIX.md): DOP проверяется по выведенному вручную случаю с четырьмя спутниками, определения места — по их ковариации, модель Доплера — по тождеству ускорения дальности, фильтр PPP — по полосе NEES хи-квадрат, а границы — по квадратуре.
Ограничения, изложенные прямо#
- Двухтельные орбиты с вековым дрейфом от J2, второй зональной гармоники Земли; нет ошибки подгонки широковещательных эфемерид сверх одного сигма SISRE, нет диаграммы направленности антенны спутника.
- Нет ионосферной или тропосферной задержки в
leo-pvt(фильтр PPP содержит состояние влажной задержки; его безионосферная комбинация убирает ионосферу первого порядка), нет сцинтилляций, многолучевости, срывов цикла и разрешения целочисленных неоднозначностей. - Точность NTN является границей, а не достигнутым результатом.
- Значения предустановок, помеченные как representative, носят иллюстративный характер и не описывают конструкцию какого-либо оператора.