lunar-beacon (вид сценария)
Вид сценария движка v0.40.0, семейство Луна и цислунное пространство. Носит консультативный характер: результат анализа исследовательского и инженерного инструмента; это не навигационное оборудование с утверждённым типом и не служба обеспечения безопасности жизни. Каждая метка здесь принадлежит движку или матрице верификации; вид имеет уровень MODELLED, если матрица не указывает иное (как заслуживается метка: раздел README «Evidence»).
Что делает#
Дополнение лунной орбитальной навигационной службы поверхностными маяками в виде исполняемой таблицы «до/после». Пользователь у южного полюса видит разреженный орбитальный набор в узком участке неба, поэтому геометрия дальнометрии плохо обусловлена; несколько ПОДТВЕРЖДЁННЫХ СЪЁМКОЙ ПОВЕРХНОСТНЫХ МАЯКОВ дают строки линии визирования с малым возвышением и широким азимутом, которых недостаёт набору, целиком находящемуся над головой, и горизонтальный геометрический фактор DOP резко падает. Сценарий сообщает три конфигурации на одной эпохе — только спутники, спутники плюс видимые маяки и более крупная орбитальная группировка как альтернативный путь к той же геометрии — с числом видимых источников, полным DOP и реализованной точностью 1-sigma в МЕТРАХ, получаемой умножением на эквивалентную пользовательской ошибку дальности по каждому маяку, составленную как корень из суммы квадратов членов синхронизации часов, многолучевости и съёмки. Видимость маяков — это геометрический горизонт безатмосферной Луны по двум высотам (атмосферы нет, поэтому граница точна), а сборка DOP — то же ядро, перекрёстно проверенное по gnss_lib_py в tests/dop_reference.rs. ПОЧЕМУ ЭТОТ ВИД СУЩЕСТВУЕТ: модуль за ним находился в движке и проверялся независимым путём DOP начиная с L08/L09, но не был достижим из прогона — ни вида, ни ветки диспетчеризации, ни встроенного файла. README рекламировал возможность, а матрица верификации вообще не содержала для неё строки, поэтому она одновременно заявлялась в тексте и не заявлялась в реестре, оставаясь недостижимой в движке. Значения по умолчанию — это геометрия, для которой уже есть зафиксированный эталон (пользователь на -80 deg с антенной 2 m, три маяка на -80/0, -79/+60 и -79/-60 на высоте 2 km, шестиспутниковый иллюстративный снимок LCNS при t=0, маска 5 deg), так что «голый» прогон воспроизводит таблицу, уже охваченную оракулом, а не выдумывает новые числа. MODELLED: проект группировки, размещение маяков и каждая величина бюджета ошибок — иллюстративные входные данные, а не реальная съёмка или измеренная линия; внешне привязаны лишь арифметика DOP, замкнутая форма горизонта и соотношение sigma = DOP x sigma_URE. Не является обязательством по характеристикам службы.
Один прогон scenarios/lunar-beacon.toml кратко выглядит так: дополнение лунными поверхностными маяками — маска 5,0 deg, эпоха +0 s, sigma_URE по каждому маяку 1,1576 m 6 спутников, без маяков sats 5 beacons 0 GDOP 11,6627 PDOP 9,6941 HDOP 3,4868 VDOP 9,0454 TDOP 6,4840 реализованная 1-sigma: 3D 11,222 m H 4,036 m V 10,471 m 6 спутников + 1 видимых маяков sats 5 beacons 1 GDOP 4,9979 PDOP 4,1160 HDOP 1,9721 VDOP 3,6128 TDOP 2,8350 реализованная 1-sigma: 3D 4,765 m H 2,283 m V 4,182 m 24 спутника, без маяков sats 19 beacons 0 GDOP 2,8929 PDOP 2,4226 HDOP 1,0199 VDOP 2,1974 TDOP 1,5811 реализованная 1-sigma: 3D 2,804 m H 1,181 m V 2,544 m маяки улучшают PDOP в 2.355x; вместо этого более крупная группировка, 4.002x MODELLED: группировка, размещение маяков и бюджет ошибок — иллюстративные входные данные. Лежащее в основе ядро DOP валидировано по gnss_lib_py, а горизонт маяков — замкнутая форма L01.
Входные параметры#
Из схемы (kshana kinds --json):
- Обязательные поля: нет
- Необязательные поля:
user,beacons,n_satellites,comparison_n_satellites,epoch_s,elevation_mask_deg,clock_sync_m,multipath_m,survey_m
Пример scenarios/lunar-beacon.toml задаёт, среди прочего:
| Поле | Значение | Единица |
|---|---|---|
beacons[0].alt_m |
2000 | m |
beacons[0].lat_deg |
-80 | deg |
beacons[0].lon_deg |
0 | deg |
beacons[1].alt_m |
2000 | m |
beacons[1].lat_deg |
-79 | deg |
beacons[1].lon_deg |
60 | deg |
beacons[2].alt_m |
2000 | m |
beacons[2].lat_deg |
-79 | deg |
beacons[2].lon_deg |
-60 | deg |
clock_sync_m |
1 | m |
comparison_n_satellites |
24 | не указано |
elevation_mask_deg |
5 | deg |
Запустите#
kshana scenarios/lunar-beacon.toml
Что он даёт#
Скалярные результаты этого прогона с единицами, которые указывает движок:
| Результат | Значение | Единица |
|---|---|---|
beacon_pdop_improvement |
2.355211 | 1 |
constellation_pdop_improvement |
4.001566 | 1 |
elevation_mask_deg |
5 | deg |
epoch_s |
0 | s |
evidence.id_rule |
стабильный идентификатор строки матрицы (ID | текст |
evidence.matrix |
docs/VERIFICATION-MATRIX.md | текст |
evidence.tier |
MODELLED | текст |
sigma_ure_m |
1.157584 | m |
Доказательства#
MODELLED: строки матрицы верификации, называющие этот вид.
- MODELLED Геометрический фактор DOP с дополнением маяками для пользователя на лунной поверхности: строки линии визирования видимых спутников и строки дальнометрии видимых поверхностных маяков объединяются в одну матрицу плана и оцениваются через общее ядро DOP, а Тесты: validate_p2_beacon_before_after_table.rs.
Строки, которые задействовал сам прогон, с оракулом, который указывает им матрица (публичные источники названы там):
- MODELLED Детерминированные, хешируемые по сценарию, SBOM и кроссплатформенные эталонные проверки (golden). Оракул (ExternalDataset): соответствие SBOM официальной схеме JSON CycloneDX 1,5 (плюс допустимые идентификаторы SPDX) — внешний опубликованный стандарт, ноль ошибок валидации на всём графе зависимостей; часть о детерминизме FoM и побайтной воспроизводимости остаётся закреплённой проверкой внутренней согласованности, поэтому строка остаётся MODELLED
- MODELLED Геометрический фактор DOP с дополнением маяками для пользователя на лунной поверхности: строки линии визирования видимых спутников и строки дальнометрии видимых поверхностных маяков объединены. Оракул (ReferenceImpl): арифметика DOP — это ядро crate::orbit::dop, отдельно внешне валидированное по gnss_lib_py в tests/dop_reference.rs; эта строка не заимствует заново статус той строки. Горизонт видимости маяков — замкнутая форма L01, а sigma = DOP x sigma_URE — стандартное соотношение GNSS (Kaplan and Hegarty, Understanding GPS/GNSS, section 7). В пределах этой строки само дополнение проверено независимой
Ограничения#
Что отчёт самого прогона называет не смоделированным или не проверенным:
- MODELLED: проект группировки, размещение маяков и каждая величина бюджета ошибок — иллюстративные входные данные, а не реальная съёмка или измеренная линия; внешне привязаны лишь арифметика DOP, замкнутая форма горизонта и соотношение sigma = DOP x sigma_URE. (каталог видов (
kshana kinds --json)) - ЧТО ПРИВЯЗАНО И ЧТО НЕТ Привязано: сборка DOP — это ядро, перекрёстно проверенное по gnss_lib_py в tests/dop_reference.rs; видимость маяков — замкнутая форма геометрического горизонта безатмосферной Луны по двум высотам (атмосферы нет, поэтому рефракционного расширения нет и граница точна); а sigma = DOP x sigma_URE — стандартное соотношение (Kaplan & Hegarty, Understanding GPS/GNSS, section 7). НЕ привязано — MODELL (комментарий в файле сценария, строки 40–49)
- Воспроизводимость и гарантии качества ПО — MODELLED, а не validated: одно из частных утверждений проверено извне, но вся возможность составлена из смоделированных частей, поэтому возможность остаётся Modelled. (матрица верификации (docs/MODELLED-RATIONALE.md))
- Дополнение лунными поверхностными маяками по DOP относится к уровню MODELLED, а не проверено по внешнему эталону: оно проверено по отдельной реализации в этой же кодовой базе — независимой от проверяемого модуля, но не являющейся внешним авторитетным источником. (матрица верификации (docs/MODELLED-RATIONALE.md))
См. также#
- Страница семейства: Луна и цислунное пространство
- Все виды: KINDS.md