Tłumaczenie maszynowe, niezweryfikowane przez osobę, dla której polski jest językiem ojczystym. Wzorcem jest wersja angielska.

OrbityJeszcze nie na GitHubŹródło: docs/MISSION-THREAD.md

Wątek misji

Oprogramowanie wyłącznie doradcze, nie jest to certyfikowany sprzęt nawigacyjny. Tylko źródła publiczne; bez powiązań z żadną agencją i bez jej poparcia, a nic tu nie twierdzi, że spełnia wymagania jakiegokolwiek programu.

kind = "mission-thread" łączy fazy misji, z których każda jest jednym z ośmiu zarejestrowanych rodzajów z własnymi czujnikami i filtrem, i podaje budżet błędu nawigacji i czasu całego łańcucha: dla każdej fazy 1-sigma pozycji, prędkości i biasu zegara na wejściu, w szczycie i na wyjściu; każdy wkład do niego, z jednostką; margines względem wymagania, które podajesz; najsłabsze ogniwo; datowane zdarzenia; i wykres osi czasu. Każda liczba jest MODELLED: podanym wejściem albo modelem takiego wejścia. Jedyne wiersze z zewnętrzną wyrocznią są w xval/mission-thread/ i mówią, co testują.

Uruchom przykład z kopii repozytorium (odczytuje zatwierdzony wycinek jądra Księżyca):

kshana scenarios/mission-thread-artemis-class.toml

Dokument#

kind = "mission-thread"
title = "..."                       # optional
seed = 20261024                     # each phase's seed comes from it and the phase id
epoch_utc = "2028-01-01T00:00:00Z"  # mission elapsed time counts from here
moon_kernel_path = "..."            # optional JPL SPK cut with the Moon and the Earth (a file: refused by the MCP server)

[entry]                             # the first phase's entry state
frame = "gcrf"; x = [...]           # six numbers, metres and metres per second
sigma_pos_m = 10.0; sigma_vel_mps = 0.01
timescale = "utc"; sigma_time_s = 1e-7; sigma_drift_s_per_s = 1e-12

[[phase]]
id = "ascent"                       # unique; names the phase in the report and seeds its noise
kind = "launch-ascent"
duration_s = 540.0
nav = ["gnss", "inertial"]          # gnss | gnss-ssv | ground-tracking | lunanet | trn | inertial | relative-optical
time = "gnss"                       # gnss | ground-clock | lunar-time | onboard-holdover
frame = "mci"                       # optional: the frame this phase needs its entry in
timescale = "ltc"                   # optional: the clock timescale it needs
[phase.handover]                    # how this phase hands over to the next (default carry)
rule = "inflate"; q_acc = 1e-9; gap_s = 172800.0
[phase.requirement]                 # optional limits; the margin is the smallest limit over peak
max_pos_m = 50.0
[phase.model]                       # the kind's own parameters

Dokument jest odrzucany, a nie zgadywany, gdy powtarza się identyfikator fazy, lista nav jest pusta, nazwa jest nieznana, klucz modelu nie jest kluczem znanym rodzajowi, klucz długości nie zgadza się z duration_s albo faza wymienia źródło, dla którego jej model nie podaje liczb.

Co robi przekazanie#

Przekazywany stan to pełna kowariancja 6x6 dla [x, y, z, vx, vy, vz] w jednostkach SI, zegar (bias, dryf i ich kowariancja, oznaczone skalą czasu), układ odniesienia, czas misji i etykieta dowodowa. Przekazanie nigdy nie zeruje kowariancji.

Zasada Co robi
carry przekazuje stan bez zmian
inflate szum białego przyspieszenia o PSD q_acc na gap_s w modelu prostoliniowym; wiersz podaje oba
reacquire nawigacja zliczeniowa przez acquire_s, a potem oś jest ustawiana na dolną granicę źródła tylko tam, gdzie ta granica jest mniejsza; nigdy poniżej granicy, nigdy zerowanie

Układy odniesienia i skale czasu#

Wątek konwertuje przy przekazaniu, nigdy wewnątrz fazy, a każda konwersja jest osobnym wierszem budżetu. Układy: GCRF, MCI, MCMF (ITRF i LVLH są odrzucane z podaniem powodu). Gcrf <-> Mci przesuwa początek o geocentryczny stan Księżyca: stan klasy DE440 z jądra tam, gdzie obejmuje epokę (zastępnik 5 m i 1 mm/s; zmierzone najgorsze 2,6 m względem przypiętych wartości JPL Horizons), w przeciwnym razie serię analityczną ze zmierzonym 195,7 km RMS, co podaje wiersz; przykład księżycowy musi więc zawierać jądro obejmujące jego epokę. Mci <-> Mcmf to średnia rotacja gwiazdowa z osiami wyrównanymi w epoce i bez libracji. Skale czasu przechodzą przez TT: Utc <-> Tt dokładnie, Tdb <-> Tt dodaje 14 us, Tt <-> Ltc używa wiekowego tempa z lunar_time z jego pasmem od 56 do 59 us/dobę jako niepewnością tempa.

Osiem rodzajów faz#

Rodzaj Segment Co robi Parametry
launch-ascent Ziemia wznoszenie z napędem na orbitę parkingową: kowariancja o stałej prędkości z szumem białego przyspieszenia, akwizycja GNSS i zanik, holdover zegara klucze [phase.model] w src/mission_thread/earth/launch.rs
leo-rendezvous Ziemia nawigacja względna na odcinkach czujników: przejście Clohessy'ego-Wiltshire'a w LVLH, kowariancja Kalmana 6x6, okno połączenia poniżej
tli-and-cruise Ziemia impuls TLI i lot cislunarny: propagacja Cowella, macierz przejścia stanu liczona różnicą skończoną, aktualizacje gnss-ssv i śledzenia naziemnego poniżej
entry Ziemia lot powrotny do granicy wejścia; sigma kąta toru lotu, prawdopodobieństwo korytarza, szczytowe opóźnienie, obszar lądowania poniżej
lunar-orbit-rendezvous księżycowy nawigacja względna do połączenia na orbicie księżycowej mission-thread/lunar-phases.md
lunar-descent księżycowy budżet rozrzutu lądowania w miejscu przy biegunie ten sam
lunar-surface księżycowy dostępność PNT i czasu na powierzchni według miejsca i pory roku ten sam
lunar-ascent księżycowy wznoszenie z napędem na orbitę wprowadzenia ten sam

Rodzaje księżycowe są też samodzielnymi rodzajami scenariuszy; projekt i dowody są w MISSION-THREAD-LUNAR.md.

leo-rendezvous#

Budżet niesie sigmy względne; bezwzględna kowariancja statku goniącego jest przekazywana bez zmian i mówi o tym wiersz, ponieważ ta faza mierzy pojazdy względem siebie, a nie względem Ziemi. Początkowa kowariancja względna to bezwzględna kowariancja statku goniącego plus podane sigmy celu, dodane jak niezależne (zachowawczo). Klucze: target_alt_m, target_abs_sigma_pos_m, target_abs_sigma_vel_mps, capture_pos_m, capture_vel_mps, opcjonalnie process_q_acc i min_window_s oraz jeden lub więcej [[phase.model.legs]] z range_m, end_range_m, duration_s, sensor (optical-camera, lidar lub rf-ranging, parametry ILLUSTRATIVE w src/mission_thread/sensors.rs) i interval_s; czasy trwania odcinków sumują się do czasu fazy. Okno połączenia to czas od chwili, od której sigma względna pozostaje wewnątrz obwiedni zdolności chwytu, do końca fazy. Powtórzenia są osobnymi fazami z własnymi identyfikatorami.

tli-and-cruise#

Stan średni pochodzi z propagatora Cowella silnika z grawitacją Ziemi i J2 oraz Słońcem i Księżycem jako ciałami trzecimi. Kowariancja przechodzi przez każdy segment step_s z macierzą przejścia stanu liczoną różnicą w przód (przebieg nominalny i sześć przebiegów zaburzonych) i szumem białego przyspieszenia. Impuls jest wzdłuż prędkości wejścia, z podaną częścią wielkości i błędem kierunku. Nazwane ograniczenie: zatwierdzone wycinki jądra Księżyca zawierają Księżyc, ale nie Słońce, więc propagator bierze Księżyc z jądra, a Słońce z serii analitycznej (człon trzeciego ciała Słońca jest niewrażliwy na błąd tej serii); faza podaje w zdarzeniu, której użyła, a tam, gdzie żadne jądro nie obejmuje segmentu, używa serii analitycznej dla obu. Impuls nie jest celowany: stan nominalny jest tam, dokąd prowadzi podany impuls, a fazy księżycowe biorą tylko kowariancję.

Aktualizacje, używane tylko wtedy, gdy dokument wymienia źródło: gnss-ssv (pozycje z dostępnością i PDOP z przeglądu objętości usługi kosmicznej silnika wzdłuż oskulacyjnej orbity okołoziemskiej zastępującej łuk, jeden przegląd na ssv_window_s; sigma pozycji = mediana PDOP razy ssv_uere_m; postać informacji oczekiwanej utrzymuje przebieg deterministyczny) oraz ground-tracking (odległość i prędkość radialna wzdłuż kierunku geocentrycznego, więc płaszczyzna nieba nie jest obserwowana; wariancja aktualizacji jest dzielona przez cykl śledzenia). Klucze: tli_dv_mps, tli_dv_sigma_fraction, tli_pointing_sigma_rad, step_s, clock_q_f, clock_q_d, opcjonalnie process_q_acc, ssv_uere_m, ssv_window_s, ssv_step_min, ssv_cn0_min_dbhz, ground_range_sigma_m, ground_range_rate_sigma_mps, ground_interval_s, ground_duty.

entry#

Lot bezwładny to lot tli-and-cruise bez impulsu, kończący się na granicy wejścia; jego klucze to klucze lotu bezwładnego powyżej. Na granicy faza odczytuje kąt toru lotu i jego sigmę z pełnej kowariancji, prawdopodobieństwo, że kąt mieści się w podanym korytarzu, szczytowe opóźnienie przy kącie nominalnym i na obu brzegach korytarza (płaskie wejście balistyczne silnika obok zamkniętej postaci Allena-Eggersa) względem opcjonalnego limitu oraz obszar lądowania: wzdłuż toru z podanej czułości, w poprzek toru z kowariancji na granicy w poprzek płaszczyzny orbity. Klucze: interface_alt_m, ballistic_coeff_kg_m2, corridor_min_deg, corridor_max_deg, downrange_sensitivity_km_per_deg, flight_time_s, opcjonalnie max_decel_g, scale_height_m i start_state_gcrf (nominalny stan powrotu, sześć liczb, gdy łańcuch nie ma impulsu transziemskiego, który by go dał). Nic tu nie modeluje siły nośnej, prowadzenia ani nagrzewania kapsuły.

Nakładka sieci naziemnej#

Opcjonalna tabela [ground_network] podaje stacje i najniższą elewację śledzenia; dla każdej nazwanej fazy wątek oblicza część fazy, którą stacja może śledzić, i przekazuje ją fazie jako cykl pracy skalujący częstość jej aktualizacji śledzenia naziemnego. Geometrie: entry-orbit (stan wejścia lecący jako dwuciałowy z J2, dla faz niskiej orbity), moon-direction (pojazd w położeniu Księżyca, dla lotu cislunarnego) i stated (podany przez Ciebie cykl pracy). Zmiana stacji traci handover_gap_s; budżet fazy otrzymuje najdłuższy odstęp bez stacji w zasięgu, a zdarzenie podaje cykl pracy. Nic nie modeluje anten ani harmonogramów sieci.

Raport#

kshana-mission-thread/1: phases[] (indeks, identyfikator, rodzaj, czasy, etykieta, źródła nawigacji i czasu, źródło ograniczające, sigmy na wejściu, w szczycie i na wyjściu, wymaganie, margines, budget_rows[] z jednostką na wiersz, events[]), weakest_link (najmniejszy margines względem podanego wymagania, w przeciwnym razie największa pozycja w szczycie), timeline[], label wątku (etykieta najsłabszej fazy) oraz blok units. Wykres to 1-sigma pozycji i biasu zegara względem czasu misji, jedno pasmo na fazę.

Czym są dowody#

Etykieta wątku to etykieta najsłabszej fazy, a każda faza jest MODELLED. Propagator księżycowy jest porównany z LRO i CAPSTONE (xval/mission-thread-lunar/); łuk cislunarny jest porównany z publiczną trajektorią Horizons (xval/mission-thread/). Wiersz zalicza próg albo go nie osiąga, a próg jest ustalony w zatwierdzonym pliku przed przebiegiem, a niespełnienie jest zapisywane jako niespełnienie. Nic nie jest VALIDATED, o ile rejestr tak nie stanowi.