Машинний переклад, не перевірений носієм мови. Еталоном є англійська версія.

Сторінки видів сценаріївРедагувати на GitHubДжерело: docs/kinds/by-kind/leo-navmsg.md

leo-navmsg (вид сценарію)

Вид сценарію рушія v0.40.0, родина Навігація на низькій навколоземній орбіті. Лише консультативно: результат аналізу від дослідницького та інженерного інструмента; це не навігаційне обладнання із затвердженням типу і не послуга забезпечення безпеки життя. Кожна позначка тут — від рушія або матриці верифікації; вид має рівень MODELLED, якщо матриця не каже іншого (як здобувається позначка: розділ «Докази» в README).

Що він робить#

Навігаційне повідомлення LEO: ефемериди та годинник, що транслюються супутником позиціонування, навігації та часу на низькій навколоземній орбіті (LEO), для будь-якої орбіти, несівної та моделі, з необов'язковими іменованими пресетами (Xona Pulsar, Iridium, Starlink, CentiSpace, репрезентативна система C-діапазону, модель нульового годинника ATOMIC, Celeste IOD). ВМІСТ: допоміжні дані (SVID, випуск даних, діапазон, стан сигналу), синхронізація (тиждень, час тижня, поліном годинника другого порядку af0-af2 відносно toc), ефемериди в одній із чотирьох моделей -- 16-параметричний кеплерів набір із Galileo OS SIS ICD; цей набір плюс поліноми поправок уздовж треку, поперек треку та радіальні; 22-параметрична модель Liu et al. 2025; ECEF-поліном без членів годинника (нульовий годинник ATOMIC) -- та інші служби (транслюваний набір Klobuchar, NeQuick-G ai0-ai2 з ефективним рівнем іонізації та параметри переходу від системного часу до UTC з логікою високосної секунди з ICD). ПІДГОНКА: істинна орбіта, проінтегрована із зональною гравітацією J2-J6 або EGM2008 до обраного ступеня та з опором, і заданий зерном (seed) вільний або керований годинник; підгонка кеплерового набору за методом Левенберга–Марквардта на неособливих елементах, потім лінійні поліноми поправок за найменшими квадратами; годинник підганяється за вирахуванням релятивістського члена, який додає користувач. АНАЛІЗИ: fit-interval-trade (похибка дальності в сигналі в просторі, SISRE, з глобально усередненими вагами для висоти орбіти, залежно від інтервалу підгонки та періоду оновлення, лише орбіта і з годинником), model-comparison (чотири моделі, кількість параметрів, закодовані біти та підгонка Kshana на висотах Liu et al. поряд з опублікованими значеннями), midpass-update (найвищий прохід над користувачем, стрибок положення, годинника та дальності користувача при кожному перемиканні повідомлення, стрибок за найгіршої геометрії, PASS/FAIL відносно порога безперервності), encode-decode (власний задокументований двійковий кадр Kshana з CRC-24Q, бюджет квантування за півкроку на поле, перевірка пошкодженого кадру, експорт та імпорт запису в стилі RINEX-4 з позначкою розширення Kshana і таблиця CSV). VALIDATED: ваги SISRE за опублікованою таблицею MEO/GEO (Montenbruck et al. 2018); користувацький алгоритм Galileo за RTKLIB на реальних транслюваних ефемеридах Galileo; CRC-24Q за контрольним значенням каталогу та прикладом кадру RTCM 1005. MODELLED: кожне значення підгонки та SISRE є похибкою подання відносно істини, проінтегрованої Kshana (без похибки визначення чи прогнозу орбіти); порівняння з Liu et al. використовує інші орбіти; формати кодування та тексту — власні формати Kshana.

Один прогін scenarios/leo-navmsg-celeste-iod.toml підсумовується так: LEO navigation message — 510 km, 97,4 deg, gravity degree 20, model kepler-rac SISRE weights: w_R 0,459, w_AC^2 1/2.53 (mask 0 deg) encode-decode: kepler-rac model, frame 152 bytes (1156 payload bits, 891 ephemeris+clock bits), CRC-24Q 0x58ADF2 quantisation: largest position change 0,52 mm, clock 0,09 mm; SISRE exact 0,0013 m, quantised 0,0013 m corrupted frame rejected: true; RINEX round trip 4.43e-6 m; CSV round trip 0.00e0 m fit-interval trade over 1800 s (usage period = fit interval): kepler16 60 s SISRE orbit RMS 0,0003 m max 0,0015 m with clock RMS 0,0006 m kepler16 120 s SISRE orbit RMS 0,0003 m max 0,0015 m with clock RMS 0,0007 m kepler16 300 s SISRE orbit RMS 0,0036 m max 0,0141 m with clock RMS 0,0037 m kepler16 600 s SISRE orbit RMS 0,0293 m max 0,1023 m with clock RMS 0,0293 m kepler16 900 s SISRE orbit RMS 0,1073 m max 0,3812 m with clock RMS 0,1075 m kepler-rac 60 s SISRE orbit RMS 0,0000 m max 0,0000 m with clock RMS 0,0005 m kepler-rac 120 s SISRE orbit RMS 0,0001 m max 0,0002 m with clock RMS 0,0007 m kepler-rac 300 s SISRE orbit RMS 0,0005 m max 0,0021 m with clock RMS 0,0012 m kepler-rac 600 s SISRE orbit RMS 0,0097 m max 0,0395 m with clock RMS 0,0096 m kepler-rac 900 s SISRE orbit RMS 0,0388 m max 0,1143 m with clock RMS 0,0390 m 16-параметричний кеплерів набір погіршується від 0,0003 м за 60 с до 0,1073 м за 900 с: один кеплерів набір із гармоніками двічі на оберт не може довше за кілька хвилин стежити за високочастотними гравітаційними членами та опором дуги LEO, а його залишок за найменшими квадратами коливається по вікну. Поліноми вздовж/поперек/радіально вищого ступеня, ніж охоплює кеплерів набір, поглинають те, що лишилося, даючи 0,0388 м за 900 с.

Входи#

Зі схеми (kshana kinds --json):

  • Обов'язкові поля: немає
  • Необов'язкові поля: name, description, seed, analysis, preset, orbit, clock, message, trade, comparison, midpass

Приклад scenarios/leo-navmsg-celeste-iod.toml задає, зокрема:

Поле Значення Одиниця
analysis [encode-decode, fit-interval-trade] не вказано
kind leo-navmsg text
message.csv_schema celeste-iod text
name Повідомлення Celeste IOD (пресет для воркшопу) text
preset celeste-iod text
seed 15 не вказано
trade.fit_intervals_s [60, 120, 300, 600, 900] s
trade.models [kepler16, kepler-rac] не вказано
trade.span_s 1800 s
trade.update_fit_interval_s 300 s
trade.update_periods_s [60, 150, 300] s

Запуск#

kshana scenarios/leo-navmsg-celeste-iod.toml

Цей тип використовують 5 вбудованих сценаріїв; решта — у scenarios/.

Що це дає#

Скалярні результати цього прогону з одиницями, які вказує рушій:

Результат Значення Одиниця
encode_decode.corrupted_frame_rejected true flag
encode_decode.crc24q 0x58ADF2 text
encode_decode.crc24q_check_value_123456789 0xCDE703 text
encode_decode.csv_round_trip_max_pos_m 0 m
encode_decode.csv_schema celeste-iod text
encode_decode.ephemeris_clock_bits 891 bit
encode_decode.frame_bytes 152 byte
encode_decode.model kepler-rac text
encode_decode.payload_bits 1156 bit
encode_decode.quantised_max_clock_m 9.4929e-5 m

Позначка результату (від рушія): MIXED — будівельні блоки рівня VALIDATED, результати рівня MODELLED. Ваги SISRE відтворюють опубліковану таблицю MEO/GEO (Montenbruck et al. 2018), користувацький алгоритм Galileo ICD відтворює RTKLIB на реальних транслюваних ефемеридах Galileo, а CRC-24Q відтворює своє контрольне значення каталогу та приклад кадру RTCM 1005

Діаграма, яку рушій записує для scenarios/leo-navmsg-celeste-iod.toml, вид leo-navmsg

Докази#

MODELLED 5 · VALIDATED 6: рядки матриці верифікації, що згадують цей вид.

  • VALIDATED leo_navmsg::sisre::sisre_weights: радіальна вага w_R та квадрат поперечної ваги w_AC^2 як середні від cos^2 і половини sin^2 надирного кута променя візування за користувачами, рівномірно розподіленими на видимій кулевій шапці Землі вище за висоту
  • VALIDATED leo_navmsg::elements::kepler_point: обчислення кеплерового набору за Galileo OS SIS ICD (рівняння Кеплера, поправки другої гармоніки, жорстко зв'язаний із Землею вузол), записане окремо від RINEX-обчислювача рушія, що повертає положення з аргументом Тести: leo_navmsg_reference.rs.
  • VALIDATED leo_navmsg::codec::crc24q: твірний поліном 0x1864CFB, початкове значення 0, без віддзеркалення, без кінцевого XOR, перевірка, яку кадр LEO від Kshana несе над кожним попереднім байтом
  • VALIDATED Підганяч і компроміс виду leo-navmsg: істинна орбіта, проінтегрована із зональною гравітацією J2-J6 або EGM2008 до обраного ступеня та з опором, і заданий зерном (seed) вільний або керований годинник; підгонка кеплерового набору Galileo методом Левенберга–Марквардта на неособливих
  • і ще 7 у матриці.

Рядки, які задіяв сам прогін, з оракулом, що його дає матриця кожному (публічні джерела названі там):

  • MODELLED Детерміновані, хешовані за сценарієм, SBOM + міжплатформні еталонні шлюзи. Оракул (ExternalDataset): відповідність SBOM офіційній схемі JSON CycloneDX 1,5 (+ дійсні ідентифікатори SPDX) — зовнішній опублікований стандарт, нуль помилок валідації на всьому графі залежностей; частина щодо детермінованості FoM / побайтової відтворюваності залишається закріпленою перевіркою самоузгодженості, тому рядок залишається MODELLED
  • VALIDATED leo_navmsg::sisre::sisre_weights: радіальна вага w_R та квадрат поперечної ваги w_AC^2 як середні від cos^2 і половини sin^2 надирного кута променя візування. Оракул (ExternalDataset): Опублікована таблиця вагових коефіцієнтів SISRE Монтенбрука, Штайгенбергера та Гаушильда (2018), Multi-GNSS signal-in-space range error assessment - Methodology and results, Advances in Space Research 61(12):3020-3038, doi 10.1016/j.asr.2018.03.041: GPS 0,98 та 1/49, GLONASS 0,98 та 1/45, Galileo 0,98 та 1/61, BeiDou MEO 0,98 та 1/54, BeiDou IGSO/GEO 0,99 та 1/126. Те саме усереднення, обчислене на радіусах LEO, дає
  • VALIDATED leo_navmsg::elements::kepler_point: обчислення кеплерового набору за Galileo OS SIS ICD (рівняння Кеплера, поправки другої гармоніки, жорстко зв'язаний із Землею вузол), записане окремо. Оракул (ExternalDataset): положення ECEF за RTKLIB 2.4.2-p13 eph2pos (незалежна реалізація того самого алгоритму з ICD) для реальних трансльованих записів BKG/IGS від 2024-09-10, обидва зафіксовано з походженням у tests/fixtures/rinex_sp3_interop (NOTICE, rinex_ecef_reference.txt, brdc_multignss_slice.rnx). Це перевіряє користувацький кеплерів алгоритм; поправки вздовж/поперек/радіально, додані зверху, охоплюються власними рядками, а члени Liu b
  • VALIDATED leo_navmsg::codec::crc24q: твірний поліном 0x1864CFB, початкове значення 0, без віддзеркалення, без кінцевого XOR, перевірка, яку кадр LEO від Kshana несе над кожним поперед. Оракул (ExternalDataset): Контрольне значення каталогу CRC для цих параметрів (каталог CRC reveng.sourceforge.io, CRC-24/LTE-A: ширина 24, poly 0x864CFB, init 0, check 0xCDE703), що є параметрами CRC-24Q для RTCM 10403 та Galileo OS SIS ICD, і приклад кадру типу повідомлення 1005, наведений у RTCM 10403
  • VALIDATED Підганяч і компроміс виду leo-navmsg: істинна орбіта, проінтегрована із зональною гравітацією J2-J6 або EGM2008 до обраного ступеня та з опором, і заданий зерном (seed) вільний або керов. Оракул (ExternalDataset): Реальні прецизійні наукові орбіти як істина (операційні редуковано-динамічні орбіти TU Graz IfG/ITSG, вільні для будь-якого використання із зазначенням авторства; значення SHA-256 у NOTICE фікстура), підігнані 16-параметричним набором на дугах по 20 і 30 хв, порівняно зі статистикою, яку Liu et al. 2025 (Remote Sensing 17(16):2894, CC BY 4,0) публікують для тих самих супутників і днів: вздовж, поперек та радіально RMS у межах 1.5x (виміряно 0,804 до 1,087), SISR

Обмеження#

Що, за власним звітом прогону, не обчислено за моделлю або не перевірено за зовнішнім еталоном:

  • SISRE — це похибка подання повідомлення відносно істини, до якої його підігнано; похибки визначення та прогнозування орбіти не моделюються. (результат limitations[0])
  • Істинна орбіта — це числове інтегрування Kshana (зональна гравітація або EGM2008, статичний експоненційний опір), а не прецизійна орбіта реального супутника; без третього тіла, тиску сонячного випромінювання чи припливів. (результат limitations[1])
  • Двійковий формат — це власне задокументоване кодування Kshana за зразком опублікованих компонентів повідомлень; це не бітове розташування Celeste чи будь-якої іншої системи (жодне не є відкритим). (результат limitations[2])
  • Блок у стилі RINEX — це задокументоване розширення Kshana; RINEX 4,02 не визначає навігаційних записів LEO. (результат limitations[3])
  • Коефіцієнти NeQuick-G передаються, а ефективний рівень іонізації обчислюється, але інтегрування електронної густини NeQuick, яке перетворює його на затримку, не реалізовано; затримка Klobuchar реалізована і масштабується до несівної як 1/f^2 без поправки на супутник, що летить усередині іоносфери. (результат limitations[4])
  • 22-параметричні члени Liu et al. 2025 відповідають користувацькому алгоритму статті (Eq. 1-7) та стратегії підгонки (розділ 2,3); її значення SISRE залежно від висоти використовували реальні прецизійні орбіти, тому це порівняння на орбіті, проінтегрованій Kshana, має рівень MODELLED, а не VALIDATED (порівняння на реальній орбіті — tests/leo_navmsg_fit_real_orbit_oracle.rs). (результат limitations[5])
  • MIXED — будівельні блоки рівня VALIDATED, результати рівня MODELLED. Ваги SISRE відтворюють опубліковану таблицю MEO/GEO (Montenbruck et al. 2018), користувацький алгоритм Galileo ICD відтворює RTKLIB на реальних транслюваних ефемеридах Galileo, а CRC-24Q відтворює своє контрольне значення каталогу та приклад кадру RTCM 1005. Кожне значення підгонки, SISRE, безперервності та квантування має рівень MODELLED: похибка подання повідомлення відносно (результат label)
  • MODELLED: кожне значення підгонки та SISRE є похибкою подання відносно істини, проінтегрованої Kshana (без похибки визначення чи прогнозу орбіти); Liu et al. (каталог видів (kshana kinds --json))

Див. також#