Рабочий пример: Kshana как связующий слой для анализа миссии из нескольких инструментов
Здесь одна траектория проходит от начала до конца через сценарии стандартного взаимодействия и анализа миссии; видно, как Kshana располагается между высокоточными инструментами, которыми программа уже пользуется, а не конкурирует с ними: GMAT (General Mission Analysis Tool), Orekit и STK (Systems Tool Kit) для проектирования траектории, Basilisk или 42 для моделирования системы управления ориентацией и орбитой (AOCS). Каждый шаг — это запускаемый вид сценария, и каждый результат несёт label с указанием своей области применения и уровня доказательств.
Честное замечание: это конвейер геометрического и аналитического уровня, соответствующий стадии до фазы A и сравнительным исследованиям (до первой формальной фазы проектирования миссии). Это не сертификация динамики полёта; см. поле
labelкаждого вида.
Прочие сокращения, используемые ниже: FDS (система динамики полёта), CCSDS (Консультативный комитет по космическим системам передачи данных), OEM (Orbit Ephemeris Message, сообщение с эфемеридами орбиты), SGP4 (Simplified General Perturbations 4, распространитель по двухстрочным элементам орбиты), TOML (формат файла сценария) и CLI (интерфейс командной строки).
Конвейер#
external FDS (GMAT/Orekit/STK) Kshana open core
│ CCSDS OEM ephemeris │
▼ ▼
[oem-interop] ──ingest──▶ [passes] ──▶ [link-budget] (when does the
import the orbit the when is it does the contact close?)
designer produced visible? downlink close?
│
▼
[space-weather] (how fast does drag
activity-driven decay the orbit?)
density
Шаги — это отдельные прогоны: каждый берёт входные данные из собственного файла сценария, поэтому число переносится от одного шага к следующему правкой следующего файла (например, наклонная дальность из passes в link-budget). Вид campaign может объединять несколько видов в одном прогоне при общих условиях; см. CAMPAIGNS.md.
Каждая команда ниже запускается из корня репозитория, а сводка под ней — это первая строка, которую kshana 0.40.0 выводит для поставляемого сценария.
1. Загрузка траектории, созданной проектировщиком (oem-interop)#
GMAT, Orekit и STK умеют экспортировать сообщения CCSDS Orbit Ephemeris Message. Kshana их импортирует (обратное направление моста), поэтому анализ в Kshana может начинаться с той самой орбиты, которую утвердил проектировщик траектории, а не с заново выведенного приближения:
kshana scenarios/oem-interop.toml # round-trips a reference orbit (self-test)
# or, to ingest a real file, set oem_text in the scenario to the external OEM
oem-interop: round-tripped 2 segment(s), 12 states; max round-trip error 4.88e-7 km / 4.61e-10 km/s (MODELLED interop)
Она сообщает сегменты, объекты, системы отсчёта и интервал эпох, а также проверку согласованности скоростей, показывающую, что эфемериды загружены верно (ошибка кругового преобразования ниже 1×10⁻⁶ км). Если вместо этого дан внешний файл в oem_text, она сообщает, что разобрала: для OEM, который записывает kshana scenarios/orbit-sgp4-gps.toml --export-oem gps.oem, она выводит oem-interop: ingested 30 segment(s), 10830 states from external OEM (originator KSHANA) (MODELLED interop). label прямо указывает, что это структурная и физическая проверка загрузки, а не проверка точности орбиты источника.
2. Когда спутник виден с наземной станции? (passes)#
kshana scenarios/passes.toml
passes: 5 pass(es) of a 550 km / 97.6° orbit over (52.2°, 4.4°) > 10° in 24 h; 1659 s total access (MODELLED)
Предсказывает проходы (восход и заход) над станцией выше маски возвышения: приём сигнала (AOS), момент наибольшего сближения (TCA), потеря сигнала (LOS), максимальное возвышение и длительность, а также суммарное время доступа. Это запрос на планирование наземного сегмента. Орбита задана набором элементов SGP4, приведённым к связанной с Землёй системе по цепочке IAU 2006/2000A, а возвышения кажущиеся: рефракция по ITU-R P.834-9 и время распространения света на нисходящей линии, каждое из которых можно включать и отключать (refraction, light_time).
3. Замыкается ли сеанс связи? (link-budget)#
Для прохода подставьте наклонную дальность и параметры терминала в уравнение линии связи CCSDS 401 / DSN 810-005 (Сеть дальней космической связи NASA):
kshana scenarios/link-budget.toml
link-budget: x-band, 2000 km, 1000000 bit/s -> FSPL 177.0 dB, Eb/N0 96.6 dB, margin 92.1 dB (closes)
Сообщает потери в свободном пространстве (FSPL), отношение несущей к спектральной плотности шума (C/N₀), энергию на бит к спектральной плотности шума (Eb/N₀), запас и то, замыкается ли линия относительно требуемого Eb/N₀: это проверка осуществимости связи, превращающая «спутник виден» в «мы действительно можем скачать данные». Числа прямо следуют из входных данных файла (здесь ЭИИМ (эквивалентная изотропно излучаемая мощность) 55 дБВт при добротности приёма G/T (отношение коэффициента усиления к шумовой температуре) 53 дБ/К); перед тем как читать запас, подставьте параметры своего терминала. Это детерминированный расчёт, а не откалиброванный паспорт терминала.
4. Как быстро среда её затормаживает? (space-weather)#
kshana scenarios/space-weather.toml
space-weather: F10.7=180 F10.7a=165 Kp=4.0 (ap=27) -> T_inf=1047 K; density x1.49 at 300 km (MODELLED)
Определяет плотность нейтральной термосферы по солнечной (F10.7 — радиоизлучение на 10,7 см — и его 81-суточное среднее F10.7a) и геомагнитной (индексы Kp и ap) активности через экзосферную температуру Jacchia-71. Это передаёт колебание плотности в ~5–10 раз за солнечный цикл, которое статическая атмосфера опускает, так что оценка времени жизни орбиты или торможения отражает режим космической погоды, а не фиксированную атмосферу. Начиная с 0,30 плотность — это плотность термосферы Jacchia 1971, охарактеризованная относительно NRLMSISE-00 (Naval Research Laboratory, масс-спектрометр и некогерентное рассеяние), но не является атмосферой NRLMSISE-00, проверенной по данным.
5. Передача результата дальше (экспорт)#
Тот же CLI записывает стандартные файлы для следующего инструмента. Для сценария orbit параметр --export-oem <file> записывает эфемериды CCSDS OEM 2,0 со скоростью (файл, который читают GMAT, Orekit и STK), --export-sp3 <file> — точные эфемериды SP3 (Standard Product 3), а --export-omm <file> — каталог сообщений CCSDS Orbit Mean-Elements Message. --export <czml|kml|geojson|stk|sigmf|all|list> охватывает средства просмотра: CZML (Cesium Language), KML (Keyhole Markup Language, для Google Earth), GeoJSON, файлы эфемерид STK (.e, по одному на спутник плюс пользователь) и записи SigMF (Signal Metadata Format) от вида spectrum. --export list показывает, что применимо к сценарию. Для Луны вид lunar-interop-export выдаёт лунную систему отсчёта, шкалу времени и эфемериды в виде CCSDS OEM с проверкой соответствия. См. INTEROP.md.
Почему это связующий слой, а не конкурент#
Каждый шаг — это небольшой, поддающийся аудиту, воспроизводимый сценарий с явной пометкой области применения. Высокоточные инструменты отвечают за оптимизацию траекторий, шестистепенное (6-DoF) моделирование AOCS и аэротермику входа, спуска и посадки (EDL); Kshana отвечает за открытую, цитируемую, запускаемую соединительную ткань: загрузку стандартных форматов, ответы на сквозные вопросы геометрии и осуществимости и передачу результата дальше на уровне, который любой партнёр может запустить без лицензии. См. также сопутствующие виды анализа миссии launch-window, reentry, eo-coverage, space-packet и attitude-budget.