Der Missionsstrang
Beratende Software, keine zertifizierte Navigationsausrüstung. Nur öffentliche Quellen; weder mit einer Agentur verbunden noch von ihr gebilligt, und nichts hier behauptet eine Konformität mit den Anforderungen irgendeines Programms.
kind = "mission-thread" verkettet Phasen einer Mission, jede eine von acht registrierten Arten mit eigenen Sensoren und eigenem Filter, und gibt das Fehlerbudget für Navigation und Zeitgebung der ganzen Kette an: für jede Phase das 1-Sigma von Position, Geschwindigkeit und Uhrenbias beim Eintritt, am Spitzenwert und beim Austritt; jeden Beitrag dazu mit seiner Einheit; die Marge gegenüber einer von Ihnen genannten Anforderung; das schwächste Glied; die datierten Ereignisse; und eine Zeitleistengrafik. Jede Zahl ist MODELLED: eine genannte Eingabe oder ein Modell einer solchen. Die einzigen Zeilen mit externer unabhängiger Referenz stehen in xval/mission-thread/ und sagen, was sie prüfen.
Führen Sie das Beispiel aus einem Checkout aus (es liest einen eingecheckten Ausschnitt des Mondkernels):
kshana scenarios/mission-thread-artemis-class.toml
Das 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
Ein Dokument wird abgelehnt, nicht erraten, wenn eine Phasenkennung sich wiederholt, eine Liste nav leer ist, ein Name unbekannt ist, ein Modellschlüssel nicht einer ist, den die Art kennt, ein Längenschlüssel von duration_s abweicht oder eine Phase eine Quelle aufführt, für die ihr Modell keine Zahlen liefert.
Was eine Übergabe tut#
Der weitergegebene Zustand ist die volle 6x6-Kovarianz von [x, y, z, vx, vy, vz] in SI-Einheiten, die Uhr (Bias, Drift und ihre Kovarianz, mit einer Zeitskala gekennzeichnet), das Bezugssystem, die Missionszeit und eine Nachweiskennzeichnung. Eine Übergabe setzt nie eine Kovarianz zurück.
| Regel | Was es tut |
|---|---|
carry |
gibt den Zustand unverändert weiter |
inflate |
weißes Beschleunigungsrauschen der PSD q_acc über gap_s bei einem geradlinigen Modell; die Zeile nennt beides |
reacquire |
Koppelnavigation für acquire_s, danach wird eine Achse nur dort auf die Quellgrenze gesetzt, wo die Grenze kleiner ist; nie unter der Grenze, nie ein Zurücksetzen |
Bezugssysteme und Zeitskalen#
Der Strang rechnet bei der Übergabe um, nie innerhalb einer Phase, und jede Umrechnung ist eine eigene Budgetzeile. Bezugssysteme: GCRF, MCI, MCMF (ITRF und LVLH werden mit der Begründung abgelehnt). Gcrf <-> Mci verschiebt den Ursprung um den geozentrischen Zustand des Mondes: den Zustand in DE440-Güte aus dem Kernel, wo er die Epoche abdeckt (Platzhalter 5 m und 1 mm/s; gemessen schlechtester Wert 2,6 m gegen festgelegte JPL-Horizons-Werte), andernfalls die analytische Reihe mit ihren gemessenen 195,7 km RMS, was die Zeile angibt; ein Mondbeispiel muss daher einen Kernel tragen, der seine Epoche abdeckt. Mci <-> Mcmf ist die mittlere siderische Rotation mit zur Epoche ausgerichteten Achsen und ohne Libration. Zeitskalen laufen über TT: Utc <-> Tt exakt, Tdb <-> Tt addiert 14 us, Tt <-> Ltc verwendet die säkulare Rate von lunar_time mit ihrem Band von 56 bis 59 us/Tag als Ratenunsicherheit.
Die acht Phasenarten#
| Art | Segment | Was es tut | Parameter |
|---|---|---|---|
launch-ascent |
Erde | angetriebener Aufstieg in eine Parkbahn: Kovarianz bei konstanter Geschwindigkeit mit weißem Beschleunigungsrauschen, GNSS-Erfassung und -Abschwächung, Uhren-holdover | Schlüssel [phase.model] in src/mission_thread/earth/launch.rs |
leo-rendezvous |
Erde | Relativnavigation über Sensorabschnitte: Clohessy-Wiltshire-Übergang in LVLH, 6x6-Kalman-Kovarianz, Andockfenster | unten |
tli-and-cruise |
Erde | TLI-Manöver und cislunarer Flug: Cowell-Fortschreibung, Zustandsübergangsmatrix aus finiten Differenzen, gnss-ssv- und Bodenverfolgungsaktualisierungen | unten |
entry |
Erde | Rückflug bis zur Eintrittsschnittstelle; Sigma des Bahnneigungswinkels, Korridorwahrscheinlichkeit, Spitzenverzögerung, Landeellipse | unten |
lunar-orbit-rendezvous |
Mond | Relativnavigation bis zum Andocken in einer Mondumlaufbahn | mission-thread/lunar-phases.md |
lunar-descent |
Mond | Landestreuungsbudget an einem Standort am Pol | gleich |
lunar-surface |
Mond | PNT- und Zeitgebungsverfügbarkeit an der Oberfläche nach Standort und Jahreszeit | gleich |
lunar-ascent |
Mond | angetriebener Aufstieg in eine Einschwenkbahn | gleich |
Die Mondarten sind auch eigenständige Szenarioarten; der Entwurf und die Nachweise stehen in MISSION-THREAD-LUNAR.md.
leo-rendezvous#
Das Budget trägt die relativen Sigmas; die absolute Kovarianz des Verfolgers wird unverändert weitergegeben, und eine Zeile sagt das, weil diese Phase die Fahrzeuge gegeneinander misst, nicht gegen die Erde. Die Start-Relativkovarianz ist die absolute des Verfolgers plus die genannten Sigmas des Ziels, addiert, als wären sie unabhängig (konservativ). Schlüssel: target_alt_m, target_abs_sigma_pos_m, target_abs_sigma_vel_mps, capture_pos_m, capture_vel_mps, optional process_q_acc und min_window_s, und ein oder mehrere [[phase.model.legs]] mit range_m, end_range_m, duration_s, sensor (optical-camera, lidar oder rf-ranging, ILLUSTRATIVE Parameter in src/mission_thread/sensors.rs) und interval_s; die Dauern der Abschnitte addieren sich zu der der Phase. Das Andockfenster ist die Zeit ab dem Punkt, an dem das relative Sigma innerhalb der Fanghülle bleibt, bis zum Ende der Phase. Wiederholungen sind eigene Phasen mit eigenen Kennungen.
tli-and-cruise#
Der Mittelwertzustand stammt vom Cowell-Propagator der Engine mit Erdgravitation und J2 sowie Sonne und Mond als dritten Körpern. Die Kovarianz durchläuft jedes Segment step_s mit einer Zustandsübergangsmatrix aus Vorwärtsdifferenzen (der nominale Lauf und sechs gestörte Läufe) und einem weißen Beschleunigungsrauschen. Das Manöver verläuft entlang der Eintrittsgeschwindigkeit mit einem genannten Größenanteil und Richtungsfehler. Genannte Grenze: Die eingecheckten Ausschnitte des Mondkernels enthalten den Mond, aber nicht die Sonne, daher nimmt der Propagator den Mond aus dem Kernel und die Sonne aus der analytischen Reihe (der Term der Sonne als dritter Körper ist gegenüber dem Fehler dieser Reihe unempfindlich); die Phase sagt in einem Ereignis, welches sie verwendet hat, und wo kein Kernel ein Segment abdeckt, verwendet sie für beide die analytische Reihe. Das Manöver ist nicht gezielt: Der nominale Zustand ist dort, wohin das genannte Manöver führt, und die Mondphasen übernehmen nur die Kovarianz.
Aktualisierungen, nur verwendet, wenn das Dokument die Quelle aufführt: gnss-ssv (Positionslösungen mit Verfügbarkeit und PDOP aus dem Sweep des Raumdienstvolumens der Engine entlang einer oskulierenden Erdbahn, die den Bogen vertritt, ein Sweep je ssv_window_s; Sigma der Lösung = Median-PDOP mal ssv_uere_m; die Form mit erwarteter Information hält den Lauf deterministisch) und ground-tracking (Entfernung und Entfernungsrate entlang der geozentrischen Richtung, sodass die Himmelsebene nicht beobachtet wird; die Varianz der Aktualisierung wird durch den Verfolgungseinsatz geteilt). Schlüssel: tli_dv_mps, tli_dv_sigma_fraction, tli_pointing_sigma_rad, step_s, clock_q_f, clock_q_d, optional 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#
Der Rückflug ist der Flug von tli-and-cruise ohne Manöver, der an der Eintrittsschnittstelle endet; seine Schlüssel sind die obigen Flugschlüssel. An der Schnittstelle liest die Phase den Bahnneigungswinkel und sein Sigma aus der vollen Kovarianz, die Wahrscheinlichkeit, dass der Winkel innerhalb eines genannten Korridors liegt, die Spitzenverzögerung beim nominalen Winkel und an beiden Korridorrändern (der ebene ballistische Wiedereintritt der Engine neben der geschlossenen Allen-Eggers-Form) gegen eine optionale Grenze sowie die Landeellipse: in Flugrichtung aus einer genannten Empfindlichkeit, quer dazu aus der Schnittstellenkovarianz quer zur Bahnebene. Schlüssel: interface_alt_m, ballistic_coeff_kg_m2, corridor_min_deg, corridor_max_deg, downrange_sensitivity_km_per_deg, flight_time_s, optional max_decel_g, scale_height_m und start_state_gcrf (der nominale Rückkehrzustand, sechs Zahlen, wenn die Kette kein Trans-Earth-Manöver hat, das ihn erzeugt). Nichts hier modelliert Auftrieb, Lenkung oder Erwärmung einer Kapsel.
Die Bodennetz-Überlagerung#
Eine optionale Tabelle [ground_network] gibt Stationen und die niedrigste Verfolgungselevation an; für jede Phase, die sie nennt, berechnet der Strang den Anteil der Phase, den eine Station verfolgen kann, und gibt ihn an die Phase als Einsatzdauer weiter, die ihre Aktualisierungsrate der Bodenverfolgung skaliert. Geometrien: entry-orbit (der Eintrittszustand, zweikörperig mit J2 geflogen, für Phasen in niedriger Umlaufbahn), moon-direction (das Fahrzeug an der Position des Mondes, für den cislunaren Flug) und stated (eine von Ihnen angegebene Einsatzdauer). Ein Stationswechsel verliert handover_gap_s; das Budget der Phase erhält das längste Intervall ohne Station in Sicht, und ein Ereignis gibt die Einsatzdauer an. Nichts modelliert die Antennen oder Zeitpläne eines Netzes.
Der Bericht#
kshana-mission-thread/1: phases[] (Index, Kennung, Art, Zeiten, Kennzeichnung, Navigations- und Zeitquellen, begrenzende Quelle, Sigmas bei Eintritt, Spitze und Austritt, Anforderung, Marge, budget_rows[] mit einer Einheit je Zeile, events[]), das weakest_link (kleinste Marge gegenüber einer genannten Anforderung, sonst die größte Spitzenposition), die timeline[], die label des Strangs (die Kennzeichnung der schwächsten Phase) und ein Block units. Die Grafik zeigt das 1-Sigma von Position und Uhrenbias gegen die Missionszeit, ein Band je Phase.
Was der Nachweis ist#
Die Kennzeichnung des Strangs ist die Kennzeichnung der schwächsten Phase, und jede Phase ist MODELLED. Der Mondpropagator wird mit LRO und CAPSTONE verglichen (xval/mission-thread-lunar/); der cislunare Bogen wird mit einer öffentlichen Horizons-Trajektorie verglichen (xval/mission-thread/). Eine Zeile besteht einen Zielwert, der vor dem Lauf in einer eingecheckten Datei festgelegt wurde, oder verfehlt ihn, und eine Verfehlung wird als Verfehlung festgehalten. Nichts ist VALIDATED, sofern das Register es nicht sagt.