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

ОрбітиРедагувати на GitHubДжерело: docs/SOLAR-SYSTEM.md

Сонячна система та позиціонування навколо інших тіл

Два типи сценаріїв працюють за межами системи Земля–Місяць:

  • solar-system подає кожне тіло каталогу на одну епоху: положення й швидкість, фізичні сталі, світловий час і відстань від тіла-спостерігача та траєкторію орбіти.
  • body-pnt розміщує навігаційного користувача (орбітальний апарат або наземний посадковий модуль) навколо будь-якого тіла каталогу, крім Сонця й Землі, з локальним навігаційним угрупованням і необов'язковою далекокосмічною дальністю від Землі.

Тип constellation-design використовує той самий каталог для побудови угруповань навколо будь-якого з цих тіл (CONSTELLATION-DESIGN.md).

Код: src/body.rs (каталог і його сталі), src/ephem.rs (аналітичні ефемериди), src/ephem_provider.rs (AnalyticSolarSystem, провайдер, який читають обидва типи), src/solar_system.rs і src/body_pnt.rs (самі типи) та src/radiometric.rs (світловий час, двостороння дальність і затримка Шапіро). Тести: tests/solar_system_horizons_reference.rs та модульні тести кожного модуля.

Каталог#

Вісімнадцять тіл: Сонце, вісім планет, Плутон, Місяць, Фобос, Деймос, чотири галілеєві супутники (Іо, Європа, Ганімед, Каллісто) і Титан. Назви зіставляються без урахування регістру. Для кожного src/body.rs містить гравітаційний параметр GM, екваторіальний і об'ємний середній радіуси, другу зональну гармоніку J2 та її опорний радіус, де він опублікований, а також модель полюса й нульового меридіана Міжнародного астрономічного союзу (IAU) (період сидеричного обертання, від'ємний для тіла зі зворотним обертанням). Кожне значення в коді має посилання на джерело.

Звідки беруться положення#

Тіла Модель Позначка
Меркурій–Сатурн і Земля, за таблицею 1 (від 1800 до 2050 н. е.) кеплерові елементи Лабораторії реактивного руху (JPL) від Standish і Williams, https://ssd.jpl.nasa.gov/planets/approx_pos.html VALIDATED
Усі вісім планет за таблицями 2a/2b (від 3000 до н. е. до 3000 н. е.) елементи для тривалих проміжків із тієї самої сторінки VALIDATED
Уран і Нептун за таблицею 1 як вище MODELLED
Плутон рядок таблиці 1 за 1992 рік (лише від 1800 до 2050 н. е.; поточна сторінка його вилучила й не вказує похибки) MODELLED
Місяць місячні ряди Montenbruck і Gill із розділенням барицентра Земля–Місяць MODELLED
Фобос, Деймос, галілеєві супутники, Титан середні елементи JPL із моделлю обертання IAU MODELLED

table = "auto" (типово) бере таблицю 1 у межах від 1800 до 2050 н. е. і таблиці 2a/2b поза ними; table1 і table2 примусово вибирають одну. Плутон поза своєю таблицею — це помилка, а не екстраполяція. Епоха — це дата й час за ISO 8601 у всесвітньому координованому часі (UTC), які перетворюються через земний час (TT) із поправками на секунди координації до барицентричного динамічного часу (TDB), або юліанська дата TDB, задана безпосередньо через epoch_jd_tdb.

Оракул — це JPL Horizons (https://ssd.jpl.nasa.gov/horizons/, Development Ephemeris DE441), із закомміченими запитаними векторами в tests/fixtures/solar_system/. Рядок планети VALIDATED, якщо він лишається в межах удвічі більшої за власну номінальну похибку сторінки Standish. Виміряно за допомогою cargo test --test solar_system_horizons_reference -- --nocapture:

  • Таблиця 1, Меркурій–Сатурн і барицентр Земля–Місяць, 12 епох від 1800 до 2049: найгірше — 1,87 раза номінальної похибки (відстань Сатурна).
  • Таблиці 2a/2b, усі вісім планет, 15 епох приблизно від 1000 до н. е. до 2500 н. е.: найгірше — 1,71 раза (відстань Марса).
  • Таблиця 1 для Урана й Нептуна перевищує наведені на сторінці значення відносно DE441: 2,04 і 5,16 раза номінальної похибки довготи. Їх зафіксовано нижче шести разів, і вони лишаються MODELLED.
  • Плутон: у межах 39,2 кутової секунди за довготою та 1.14e9 m за відстанню.
  • Супутники, найгірший кут, видимий із планети в 2000–2040 роках: Фобос 5,65 град., Деймос 0,38, Іо 0,40, Європа 1,63, Ганімед 0,22, Каллісто 0,27, Титан 3,31. Геоцентричний Місяць: 0,046 град.
  • Швидкості планет: найгірша відносна похибка 3.72e-3 від швидкості (MODELLED).

Місяць і сім супутників виміряно із зафіксованими порогами, але опублікованої межі, за якою їх можна було б перевірити, не існує, тож вони MODELLED.

Аналітичні ефемериди не потребують файла ядра. Ядро Development Ephemeris від JPL (положення рівня DE) читають лише окремі крейти перехресної перевірки в xval/ через той самий трейт EphemerisProvider; головний крейт від них не залежить.

solar-system#

kind = "solar-system"
epoch = "2030-01-01T00:00:00"
bodies = ["Earth", "Moon", "Mars", "Jupiter", "Europa"]
observer = "Mars"

[[links]]
from = "Europa"
to = "Earth"
Solar system at 2030-01-01T00:00:00 (JD 2462502.50080 TDB), 5 bodies, observer Mars
  Standish Table 1 (1800 AD to 2050 AD)
  Earth       0.9833 au  lon  100.18 deg  light time    1038.1 s  [VALIDATED]
  Moon        0.9815 au  lon  100.28 deg  light time    1037.8 s  [MODELLED]
  Mars        1.3814 au  lon  337.83 deg  observer  [VALIDATED]
  Jupiter     5.4235 au  lon  222.19 deg  light time    3068.4 s  [VALIDATED]
  Europa      5.4194 au  lon  222.17 deg  light time    3066.6 s  [MODELLED]
  link Europa -> Earth: one-way 2993.281 s, two-way 5986.612 s, Shapiro 33.7 us, Sun 50.0 deg

Вхідні дані: epoch (типово 2026-01-01T00:00:00) або epoch_jd_tdb; bodies (типово всі вісімнадцять); observer (типово Земля); track_points на орбіту (від 8 до 2000, типово 120); table; і довільна кількість [[links]], кожне з яких приймається на цю епоху.

Для кожного тіла результат містить його клас і батьківське тіло, ідентифікатор NASA Navigation and Ancillary Information Facility (NAIF), геліоцентричні положення й швидкість в International Celestial Reference Frame (ICRF, екваторіальна J2000) у метрах і метрах за секунду, екліптичні довготу, широту та відстань, положення відносно батьківського тіла, орбітальний період, наведені вище сталі, полюс і нульовий меридіан на епоху, номінальну похибку Standish, де вона є, мітку та рядок методу, а також траєкторію орбіти за один оберт (геліоцентричну для планети, з центром на батьківському тілі для супутника; одна точка для Сонця). Зв'язок від спостерігача й кожен додатковий зв'язок дають:

  • ньютонівський односторонній світловий час, знайдений радіометричним розв'язувачем світлового часу методом нерухомої точки з передавачем у його запізнілому положенні, і відповідну односторонню дальність;
  • двосторонній світловий час і дальність;
  • затримку Шапіро від Сонця, яку наведено окремо й не додано;
  • кут віддалення від Сонця.

Світловий час VALIDATED за одностороннім світловим часом, який повідомляє Horizons: Марс і Юпітер до центра Землі на чотири епохи від 2000 до 2040, найгірша похибка 0,070 с для Марса проти порога 0,207 с і 1,31 с для Юпітера проти 4,04 с. Поріг — це подвоєна сума похибок відстаней за Standish для цілі та барицентра Земля–Місяць, поділена на швидкість світла: світловий час не може бути кращим за положення. Це ньютонівський геометричний світловий час, а не релятивістська чи скоригована на плазму величина.

Вбудований scenarios/solar-system-tour.toml повідомляє про всі вісімнадцять тіл на 2026-09-28T00:00:00 зі 180-точковими траєкторіями й додає зв'язки Марс–Юпітер (односторонній 2193,539 с), Сатурн–Земля (4212,176 с) та Європа–Юпітер (2,218 с).

body-pnt#

Користувач навігує навколо тіла, вибраного за назвою (будь-яке тіло каталогу, крім Сонця й Землі, які тип відхиляє), за двома видами вимірювань:

  • односторонні псевдодальності від навігаційного угруповання Walker delta навколо тіла (planes по sats_per_plane, міжплощинне фазування phasing_f), що рухається двотільними орбітами з віковим дрейфом J2 власного тіла; годинник користувача невідомий, тому ці рядки містять стовпець зміщення годинника;
  • за потреби двостороння дальність від центра Землі ([earth_link]), яка не потребує годинника користувача й подається як одностороння дальність із власним шумом. Напрямок і відстань до Землі беруться з аналітичної ефемериди на кожну епоху.

Лінія візування заблокована, коли проходить усередині середнього радіуса тіла (хордовий тест типу mars-pnt), а наземному користувачеві також потрібна маска висоти. На кожну епоху прогін формує геометричний і позиційний чинники погіршення точності (GDOP, PDOP) для самого угруповання, формальну однокрокову (одна сигма) невизначеність положення з рядком Землі й без нього та розв'язок методом найменших квадратів Гаусса–Ньютона із зерном (seed) в обох варіантах, тож звіт показує, що додає далекокосмічний зв'язок.

Таблиця Поле Типове значення
верхній рівень body Mars
epoch / epoch_jd_tdb 2027-02-19T00:00:00, протистояння Марса
duration_s, step_s 86 400 s, 600 s
seed 1
table auto
[user] kind orbiter (або surface)
орбітальний апарат: altitude_km, inclination_deg, raan_deg, u0_deg, eccentricity 400 km, 75 град., 0, 0, 0
поверхня: lat_deg, lon_deg, height_m 0, 0, 0
[constellation] planes, sats_per_plane, phasing_f 3, 4, 1
altitude_km три середні радіуси
inclination_deg 60 град.
sigma_range_m 1 m
mask_deg (наземний користувач) 10 град.
[earth_link] enabled, sigma_range_m true, 1 m

raan_deg — це пряме піднесення висхідного вузла в екваторіальній системі координат тіла, а u0_deg — аргумент широти на епоху.

Два вбудовані сценарії, як вони виконуються в kshana 0,36 (портативна математика, однакова на кожній платформі):

scenarios/mars-orbit-pnt.toml scenarios/europa-surface-pnt.toml
Користувач орбітальний апарат, 300 km, 93 град. поверхня, 20 град. пн. ш., 60 град. сх. д.
Ретранслятори 12 на 10 000 km, 60 град. 12 на 4500 km, 55 град., маска 10 град.
Тривалість одна марсіанська доба (sol), 296 епох 306 822 s, 171 епоха
Світловий час до Землі, в один бік / туди й назад 338,3 s / 676,6 s 2182,9 s / 4365,8 s
Земля у зоні видимості 0,811 епох 0.439
Доступність, лише ретранслятори / з дальністю до Землі 1.000 / 1.000 0.480 / 0.713
Медіанний PDOP 1.375 5.360
Середньоквадратична похибка розв'язку, лише ретранслятори / з дальністю до Землі 1,883 m / 1,629 m 112,742 m / 86,499 m
Медіанна формальна сигма, лише ретранслятори / з дальністю до Землі 1,375 m / 1,304 m 5,360 m / 4,239 m

(RMS: середньоквадратичне значення.) Одна епоха Європи (t = 16 200 s) лежить на межі доступності, де останній біт обчисленого радіуса вирішує, чи буде зроблено розв'язок із дальністю до Землі. До 0,36 це вирішувала математична бібліотека хоста, тому той самий сценарій виводив для двох показників «з дальністю до Землі» 0,719 і 86,147 m на Linux x86-64 та 0,725 і 85,800 m на macOS arm64. Починаючи з 0,36 кожну трансцендентну функцію обчислює портативна математична бібліотека, епоха розв'язується однаково на кожній платформі (рідна збірка та WebAssembly дають однакові байти), і показники становлять 0,713 та 86,499 m (docs/revisions/STUDIO15-portable-math-rebaseline.md). Навколо Європи дальність до Землі підіймає доступність із 0,480 до 0,713 епох. Де Земля ніколи не виходить із-за лімба, зв'язок нічого не додає: посадковий модуль на 89,5 град. пд. ш. на Місяці під оболонкою з 12 ретрансляторів на 5000 km має Землю в зоні видимості на 0 із 145 епох, і його похибки однакові з цим зв'язком і без нього.

MODELLED. Орбіти ретрансляторів ігнорують треті тіла (тяжіння Юпітера на ретранслятори навколо Європи не моделюється), шум гауссів на вказаних рівнях, а модель вимірювання миттєва, без поправки на запізнення світла. Що перевіряється: період ретранслятора за третім законом Кеплера для тіла, орбітальний апарат, що зберігає свій радіус, і посадковий модуль на поверхні, те, що дальність до Землі ніколи не погіршує формальну невизначеність, збіг похибок розв'язків із зерном із формальною сигмою (середньоквадратичне значення відношення похибки до сигми в межах [0,6, 1,5]) і детермінований прогін. Жодне з цього не є навігаційними даними місії.

Тип ephemeris#

Попри назву, ephemeris — це тип для супутника Землі: один супутник, за двострокового набору елементів (TLE) через пропагатор Simplified General Perturbations 4 (SGP4) або за аналітичною орбітою, на часовій сітці. На кожному кроці він видає інерціальний стан (положення й швидкість) у системі true equator, mean equinox (TEME) та в Geocentric Celestial Reference System (GCRS), положення в земній системі координат, підсупутникову точку World Geodetic System 1984 (WGS 84) і, для необов'язкової наземної станції, азимут, висоту, дальність і швидкість зміни дальності. eop_finals2000a приймає текст файла finals2000A від International Earth Rotation and Reference Systems Service (IERS) для UT1−UTC і полярного руху на кожну епоху. Код: src/ephemeris.rs.

$ kshana scenarios/ephemeris.toml
scenario 0d4dd01b3160 | sgp4 (TLE) | 559 samples | alt 419–434 km | |lat| ≤ 51.8° | speed 7653–7661 m/s | max el 25.7° peak Doppler 34.3 kHz

Не моделюється#

  • Релятивістські доданки світлового часу, окрім окремо поданої затримки Шапіро, і затримка в сонячній плазмі.
  • Положення, кращі за точність Standish і середніх елементів, зазначену вище; у головному крейті немає читача ядер.
  • Збурення від третіх тіл на ретранслятори body-pnt і на орбіти constellation-design.
  • Рельєф на будь-якому тілі: тіло є своєю середньою сферою.
  • Експорти для взаємодії: CZML, KML і GeoJSON описують положення навколо Землі, тому сценарії solar-system і body-pnt нічого не експортують (INTEROP.md).

Посилання#

  • E. M. Standish і J. G. Williams, «Keplerian Elements for Approximate Positions of the Major Planets», JPL Solar System Dynamics, https://ssd.jpl.nasa.gov/planets/approx_pos.html.
  • O. Montenbruck і E. Gill, Satellite Orbits: Models, Methods and Applications, Springer, 2000, §3.3.2.
  • B. A. Archinal та ін., «Report of the IAU Working Group on Cartographic Coordinates and Rotational Elements: 2015», Celestial Mechanics and Dynamical Astronomy 130, 2018.
  • JPL Horizons, https://ssd.jpl.nasa.gov/horizons/.