Проектирование орбитальной группировки
Вид constellation-design строит одну или несколько орбитальных группировок спутников вокруг Земли, Луны, Марса или любого другого тела из каталога Солнечной системы (src/body.rs: восемь планет, Плутон, Луна, Фобос, Деймос, четыре галилеевых спутника и Титан, с теми же константами, что используют виды solar-system и body-pnt; см. SOLAR-SYSTEM.md) и строит карты их покрытия и геометрического фактора DOP (ухудшение точности) по сетке широты и долготы. Источник: src/constellation.rs.
kshana scenarios/constellation-multi-gnss-coverage.toml
# constellation-design: 102 satellites (GPS, Galileo, BeiDou, GLONASS) around the Earth;
# availability 100.00% (PDOP <= 6 at 10 deg mask), worst site 100.00%, median PDOP 0.95,
# mean 31.0 in view; 648 grid points x 95 epochs (MODELLED)
Тело выбирается с помощью body (по умолчанию earth). Прогон охватывает duration_s (по умолчанию одни звёздные сутки, 86 164 с) с шагом step_s (по умолчанию 600 с), выше mask_deg (по умолчанию 5 град.), по сетке grid_step_deg (по умолчанию 10 град.), которую можно ограничить с помощью lat_min_deg, lat_max_deg, lon_min_deg и lon_max_deg; j2 = true добавляет вековой дрейф из-за J2, второй зональной гармоники гравитационного поля тела.
Что подаётся на вход#
- Оболочки Уокера в соглашении
T/P/F:Tспутников вPравноудалённых плоскостях с фазовым сдвигомF. Схема delta распределяет восходящие узлы по 360 град., схема star — по 180 град. Плоскостьkнаходится в узлеraan0 + k·ΔΩ, а спутникjв ней — при средней аномалииm0 + j·360·P/T + k·360·F/T. - Явные наборы элементов: большая полуось или высота, эксцентриситет, наклонение, прямое восхождение восходящего узла (RAAN), аргумент перицентра и средняя аномалия.
- Пресеты по опубликованным номинальным элементам (только для Земли; пресет вокруг другого тела является ошибкой):
| Пресет | Спутники | Источник |
|---|---|---|
gps-baseline |
24 | Global Positioning System (GPS) Standard Positioning Service Performance Standard (SPS PS), 5-е издание, апрель 2020, таблицы 3.2-1 и 3.2-3 |
gps-expandable |
от 24 до 30 | SPS PS, таблица 3.2-2: каждый из шести расширяемых слотов (B1, D2, F2, A2, C4, E3), названных в expanded, заменяется парой «передний и задний»; по умолчанию все шесть |
galileo |
24 | Galileo Open Service Service Definition Document (OS SDD), выпуск 1,1: Уокер 24/3/1, большая полуось 29 599,801 км, 56 град. (таблица 1), слоты из таблицы 23 |
beidou, beidou-meo |
30, 24 | BeiDou Open Service Performance Standard 3,0 (2021), раздел 4,1: средняя околоземная орбита (MEO), Уокер 24/3/1 на 21 528 км и 55 град., плюс три геостационарных (GEO) спутника на 80, 110,5 и 140 град. в. д. и три наклонных геосинхронных (IGSO) спутника на 55 град. |
glonass |
24 | GLONASS Interface Control Document (ICD), редакция 5,1 (2008), раздел 5,2: формула слотов, 19 100 км, 64,8 град. |
RAAN в таблице GPS инерциальна на её эпоху; пресет преобразует её в долготу узла в Земной системе координат с помощью часового угла Гринвича, указанного в таблице (100,765 град.). GLONASS задаёт абсолютные (гринвичские) долготы узлов напрямую. В документе Galileo часовой угол не указан, поэтому его RAAN используется как долгота узла. Стандарт BeiDou не указывает фазу MEO и узлы IGSO; пресет начинает схему MEO с узла 0 и средней аномалии 0 и помещает три IGSO на одну трассу, пересекающую экватор на 118 град. в. д. Эти два выбора смоделированы.
Несколько орбитальных группировок могут разделять один прогон. При clock = "per-constellation" (по умолчанию) приёмник оценивает одни часы на каждую систему в зоне видимости, как это делает приёмник нескольких GNSS (Global Navigation Satellite System); clock = "common" использует одни общие часы.
Что получается на выходе#
Для каждой ячейки сетки: среднее, наименьшее и наибольшее число спутников над маской; доля эпох с решением и с DOP положения (PDOP) не выше pdop_threshold; средние геометрический, позиционный, горизонтальный и вертикальный DOP (GDOP, PDOP, HDOP, VDOP); наибольший PDOP. Глобально, с весом по косинусу широты, чтобы каждая ячейка учитывалась по своей площади: доступность, доступность в наихудшем месте, а также среднее, медиана, 90-й, 95-й и 99-й процентили и максимум каждого DOP. Для каждого спутника: прореженная трасса подспутниковой точки (track_points отсчётов, по умолчанию 24, не более чем для max_tracks спутников, по умолчанию 120). Диаграмма состоит из двух карт: доступности и среднего PDOP.
Как это масштабируется#
Спутник на радиусе r находится выше маски возвышения ε в точности тогда, когда его центральный угол от пользователя не превышает λ = arccos((R/r)·cos ε) − ε, поэтому проверка видимости сводится к одному скалярному произведению с cos λ. В каждую эпоху спутники также сортируются по широте подспутниковой точки, а строка сетки на широте φ проверяет только спутники в пределах λ_max от φ. Оба приёма точны на сферическом теле, а модульный тест сверяет каждую карту с полным перебором по прямой проверке возвышения. Блок work сообщает число парных проверок, которые сделал бы полный перебор, и число выполненных. Проектная конфигурация модульного теста из 5 000 спутников на сетке 10 град. (648 точек, 6 эпох) сохраняет 9,9 % из 19 440 000 парных проверок полного перебора; входящий в поставку сценарий leo-pnt-mega-shell (5 000 спутников, 648 точек, 12 эпох) выполняется примерно за 0,14 с двоичным файлом командной строки релиза на ноутбуке с процессором Apple silicon. Время по часам зависит от машины и её нагрузки. Движок не использует потоки, часы и файловую систему, поэтому выполняется без изменений как WebAssembly.
Что проверяется и по чему#
VALIDATED, по опубликованным документам:
- генератор Уокера воспроизводит все 24 строки таблицы 23 Galileo OS SDD, а формула слотов в ICD GLONASS даёт тот же набор из 24 слотов, что и Уокер 24/3/1;
- пресет GPS воспроизводит столбец пересечения экватора трассой подспутниковой точки в таблицах 3.2-1 и 3.2-2 SPS PS: 35 из 36 положений в пределах 0,0108 град. при пороге округления 0,015 град. Для E3F принят более мягкий порог 0,06 град., потому что строка E3F в самой таблице несогласованна со своими RAAN и аргументом широты: её аргумент широты на 14,60 град. опережает аргумент E3, что сдвигает пересечение на 7,30 град., тогда как таблица сдвигает его на 7,36 град.;
- базовый уровень GPS при условиях приложения B SPS PS (одни звёздные сутки, 287 шагов по пять минут, сетка 4 град., все спутники в зоне видимости, маска 5 град.) даёт глобальную медиану HDOP 0,940, 90 % — 1,165, 95 % — 1,255, 98 % — 1,370 и среднее 0,965 при опубликованных 0,94, 1,16, 1,25, 1,37 и 0,96 (порог 0,03, зафиксированный до первого прогона). Медиана PDOP 1,795 ниже 1,815 из таблицы B.3-1, которая описывает ухудшенную смесь из 20–24 спутников. PDOP не более 6 сохраняется 100 % времени при 98 % глобально и 88 % в наихудшем месте по таблице 3.8-1.
Проверено по выводу вручную, а не по внешнему документу: DOP для одной эпохи совпадает с замкнутой формулой для спутника в зените и трёх спутников на возвышении 30 град. (PDOP 8/3, GDOP 3,0732).
MODELLED: орбиты двух тел с необязательным вековым дрейфом J2; сферическое тело; только геометрическая видимость (без мощности сигнала, состояния спутников и рельефа); без возмущения от третьего тела, от которого зависит реальная лунная замороженная орбита. Наихудшая отдельная точка пространства и времени зависит от сетки: HDOP 2,40 и VDOP 5,22 здесь против опубликованных 2,49 и 5,43; эти значения приводятся, но не фиксируются. Пресеты четырёх систем взяты с разных опорных эпох, поэтому их взаимная фаза в одном прогоне не является моментальным снимком какой-либо даты.
Входящие в поставку сценарии#
В каждой строке приведено то, что прогон выводит для kshana 0.40.0.
scenarios/constellation-multi-gnss-coverage.toml: GPS, Galileo, BeiDou и GLONASS (102 спутника) за одни сутки выше маски 10 град., по одним часам на систему. Доступность (PDOP не более 6) 100 % глобально и в наихудшем месте, медиана PDOP 0,95, в среднем 31,0 спутника в зоне видимости.scenarios/leo-pnt-mega-shell.toml: 5 000 спутников на четырёх оболочках низкой околоземной орбиты (LEO) для позиционирования, навигации и времени (PNT), с J2, выше маски 20 град. Доступность (PDOP не более 3) 99,22 % глобально и 0 % в наихудшем месте, медиана PDOP 1,11, в среднем 39,4 спутника в зоне видимости.scenarios/lunar-relay-constellation.toml: 8 спутников на эллиптических лунных замороженных орбитах и круговая оболочка из 6 спутников вокруг Луны. Доступность (PDOP не более 6) 21,33 % глобально и 0 % в наихудшем месте, медиана PDOP 5,22, в среднем 3,2 спутника в зоне видимости.
Покрытие LEO-PNT для полярных и арктических пользователей по сравнению с GNSS на средней околоземной орбите — это полярный режим вида leo-pvt (scenarios/polar-arctic-leo-coverage.toml; см. LEO-PNT.md).