Uppdragsflödet
Rådgivande programvara, inte certifierad navigationsutrustning. Enbart offentliga källor; inte knuten till eller stödd av någon rymdorganisation, och ingenting här gör anspråk på överensstämmelse med något programs krav.
kind = "mission-thread" kopplar ihop faser i ett uppdrag, var och en av åtta registrerade typer med egna sensorer och filter, och redovisar felbudgeten för navigering och tidssynkronisering för hela kedjan: för varje fas 1-sigma för position, hastighet och klockbias vid inträde, vid toppen och vid utträde; varje bidrag till den, med sin enhet; marginalen mot ett krav som du anger; den svagaste länken; de daterade händelserna; och en tidslinjefigur. Varje tal är MODELLED: en angiven indata eller en modell av en sådan. De enda raderna med extern oberoende referens finns i xval/mission-thread/ och säger vad de testar.
Kör exemplet från en utcheckning (det läser ett incheckat utsnitt av en månkärna):
kshana scenarios/mission-thread-artemis-class.toml
Dokumentet#
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
Ett dokument avvisas, det gissas inte på, när ett fas-id upprepas, en lista nav är tom, ett namn är okänt, en modellnyckel inte är en som typen känner till, en längdnyckel avviker från duration_s, eller en fas anger en källa som dess modell inte ger tal för.
Vad en överlämning gör#
Det tillstånd som förs över är den fullständiga 6x6-kovariansen för [x, y, z, vx, vy, vz] i SI-enheter, klockan (bias, drift och deras kovarians, märkta med en tidsskala), referenssystemet, uppdragstiden och en evidensetikett. En överlämning återställer aldrig en kovarians.
| Regel | Vad den gör |
|---|---|
carry |
för över tillståndet oförändrat |
inflate |
vitt accelerationsbrus med PSD q_acc över gap_s på en rätlinjig modell; raden anger båda |
reacquire |
dödräkning under acquire_s, därefter sätts en axel till källans golv bara där golvet är mindre; aldrig under golvet, aldrig en återställning |
Referenssystem och tidsskalor#
Tråden omvandlar vid överlämningen, aldrig inuti en fas, och varje omvandling är en egen budgetrad. Referenssystem: GCRF, MCI, MCMF (ITRF och LVLH avvisas med skälet). Gcrf <-> Mci förskjuter origo med månens geocentriska tillstånd: tillståndet av DE440-klass från kärnan där den täcker epoken (ersättning 5 m och 1 mm/s; uppmätt sämst 2,6 m mot fastlåsta värden från JPL Horizons), annars den analytiska serien med dess uppmätta 195,7 km RMS, som raden anger; ett månexempel måste därför bära en kärna som täcker dess epok. Mci <-> Mcmf är den genomsnittliga sideriska rotationen med axlarna i linje vid epoken och ingen libration. Tidsskalor går via TT: Utc <-> Tt exakt, Tdb <-> Tt lägger till 14 us, Tt <-> Ltc använder den sekulära hastigheten från lunar_time med dess band på 56 till 59 us/dygn som hastighetsosäkerhet.
De åtta fastyperna#
| Typ | Segment | Vad den gör | Parametrar |
|---|---|---|---|
launch-ascent |
Jorden | driven stigning till en parkeringsbana: kovarians med konstant hastighet och vitt accelerationsbrus, GNSS-inhämtning och bortfall, klock-holdover | Nycklar i [phase.model] i src/mission_thread/earth/launch.rs |
leo-rendezvous |
Jorden | relativ navigering över sensorsträckor: Clohessy-Wiltshire-övergång i LVLH, 6x6-Kalmankovarians, dockningsfönster | nedan |
tli-and-cruise |
Jorden | TLI-brännare och färd i cislunart rum: Cowell-propagering, tillståndsövergångsmatris av finita differenser, uppdateringar från gnss-ssv och markspårning | nedan |
entry |
Jorden | returfärd till återinträdesgränssnittet; sigma för banvinkeln, korridorsannolikhet, maximal retardation, landningsområde | nedan |
lunar-orbit-rendezvous |
Månen | relativ navigering till dockning i en månbana | mission-thread/lunar-phases.md |
lunar-descent |
Månen | budget för landningsspridning vid en polarplats | samma |
lunar-surface |
Månen | PNT och tidssynkronisering på ytan: tillgänglighet per plats och årstid | samma |
lunar-ascent |
Månen | driven stigning till en insättningsbana | samma |
Månens typer är också fristående scenariotyper; utformningen och evidensen finns i MISSION-THREAD-LUNAR.md.
leo-rendezvous#
Budgeten bär de relativa sigmorna; jagarens absoluta kovarians förs över oförändrad och en rad säger det, eftersom den här fasen mäter fordonen mot varandra, inte mot jorden. Den relativa startkovariansen är jagarens absoluta plus målets angivna sigman, adderade som om de vore oberoende (försiktigt). Nycklar: target_alt_m, target_abs_sigma_pos_m, target_abs_sigma_vel_mps, capture_pos_m, capture_vel_mps, valfria process_q_acc och min_window_s, samt en eller flera [[phase.model.legs]] med range_m, end_range_m, duration_s, sensor (optical-camera, lidar eller rf-ranging, ILLUSTRATIVE parametrar i src/mission_thread/sensors.rs) och interval_s; sträckornas varaktigheter adderas till fasens. Dockningsfönstret är tiden från den punkt där den relativa sigman håller sig inom infångningsenveloppen till slutet av fasen. Upprepningar är separata faser med egna id.
tli-and-cruise#
Medeltillståndet är motorns Cowell-propagator med jordens gravitation och J2 samt solen och månen som tredje kroppar. Kovariansen går genom varje segment av step_s med en tillståndsövergångsmatris framåtdifferens (den nominella körningen och sex störda körningar) och ett vitt accelerationsbrus. Brännaren går längs inträdeshastigheten med en angiven storleksandel och ett riktningsfel. Begränsning angiven: de incheckade utsnitten av månkärnan innehåller månen men inte solen, så propagatorn tar månen från kärnan och solen från den analytiska serien (solens term som tredje kropp är okänslig för den seriens fel); fasen anger i en händelse vilken den använde, och där ingen kärna täcker ett segment använder den den analytiska serien för båda. Brännaren är inte riktad: det nominella tillståndet är dit den angivna brännaren går, och månens faser tar bara kovariansen.
Uppdateringar, används bara när dokumentet förtecknar källan: gnss-ssv (positionsbestämningar med tillgänglighet och PDOP från motorns svep över rymdtjänstvolymen längs en oskulerande jordbana som står i för bågen, ett svep per ssv_window_s; positionsbestämningens sigma = median-PDOP gånger ssv_uere_m; formen med förväntad information håller körningen deterministisk) och ground-tracking (avstånd och avståndshastighet längs den geocentriska riktningen, så att himlaplanet inte observeras; uppdateringens varians delas med spårningsdriften). Nycklar: tli_dv_mps, tli_dv_sigma_fraction, tli_pointing_sigma_rad, step_s, clock_q_f, clock_q_d, valfria 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#
Frirörelsen är frirörelsen för tli-and-cruise utan brännare, som slutar vid återinträdesgränssnittet; dess nycklar är nycklarna för frirörelsen ovan. Vid gränssnittet läser fasen banvinkeln och dess sigma ur hela kovariansen, sannolikheten att vinkeln ligger inom en angiven korridor, den maximala retardationen vid den nominella vinkeln och vid båda korridorkanterna (motorns plana ballistiska återinträde bredvid Allen-Eggers slutna form) mot en valfri gräns, samt landningsområdet: sträckriktningen från en angiven känslighet, tvärriktningen från gränssnittskovariansen tvärs banplanet. Nycklar: interface_alt_m, ballistic_coeff_kg_m2, corridor_min_deg, corridor_max_deg, downrange_sensitivity_km_per_deg, flight_time_s, valfria max_decel_g, scale_height_m och start_state_gcrf (det nominella returtillståndet, sex tal, när kedjan saknar en bränning från månen mot jorden som ger ett). Ingenting här modellerar en kapsels lyftkraft, styrning eller uppvärmning.
Överlägget för markstationsnätet#
En valfri tabell [ground_network] anger stationer och den lägsta spårningselevationen; för varje fas den namnger beräknar tråden den andel av fasen som en station kan spåra och för över den till fasen som den driftcykel som skalar uppdateringsfrekvensen för dess markspårning. Geometrier: entry-orbit (inträdestillståndet flugen tvåkropps med J2, för faser i låg bana), moon-direction (fordonet vid månens position, för färden i cislunart rum) och stated (en driftcykel du anger). Ett stationsbyte förlorar handover_gap_s; fasens budget får det längsta intervallet utan någon station i sikte och en händelse anger driftcykeln. Ingenting modellerar ett näts antenner eller scheman.
Rapporten#
kshana-mission-thread/1: phases[] (index, id, typ, tider, etikett, källor för navigering och tid, begränsande källa, sigman vid inträde, topp och utträde, krav, marginal, budget_rows[] med en enhet per rad, events[]), weakest_link (minsta marginal mot ett angivet krav, annars den största topposition), timeline[], trådens label (den svagaste fasens etikett) och ett block units. Figuren är 1-sigma för position och klockbias mot uppdragstid, ett band per fas.
Vad evidensen är#
Trådens etikett är den svagaste fasens etikett, och varje fas är MODELLED. Månens propagator jämförs med LRO och CAPSTONE (xval/mission-thread-lunar/); bågen i cislunart rum jämförs med en offentlig bana från Horizons (xval/mission-thread/). En rad klarar eller missar en tröskel som fastställdes i en incheckad fil före körningen, och en miss registreras som en miss. Ingenting är VALIDATED om inte registret säger det.