任务链
仅供参考的软件,不是经认证的导航设备。仅使用公开资料;与任何机构无隶属关系,亦未获任何机构背书,这里的任何内容也不声称符合任何计划的要求。
kind = "mission-thread"把一次任务的各阶段串成一条链,每个阶段是八种已注册类型之一,各有自己的传感器和滤波器,并报告整条链的导航与授时误差预算:对每个阶段,进入时、峰值时和退出时的1σ 位置、速度和时钟偏置;其每一项贡献及其单位;相对你给出的需求的余量;最薄弱环节;带日期的事件;以及一幅时间线图。每个数值都是MODELLED:给定的输入或其模型。仅有的外部参考基准(oracle)行在xval/mission-thread/中,并说明它们检验的是什么。
从一份检出的代码库运行示例(它读取已提交的月球星历截取):
kshana scenarios/mission-thread-artemis-class.toml
文档#
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
当阶段id重复、nav列表为空、名称未知、模型键不是该类型所知的键、长度键与duration_s不一致,或某阶段列出了其模型没有给出数值的来源时,文档会被拒绝,而不是被猜测处理。
交接做什么#
传递的状态是SI单位下[x, y, z, vx, vy, vz]的完整6x6协方差、时钟(偏置、漂移及其协方差,标注时标)、坐标系、任务时间和一个证据标签。交接从不重置协方差。
| 规则 | 作用 |
|---|---|
carry |
原样传递状态 |
inflate |
在直线模型上,PSD为q_acc的白加速度噪声持续gap_s;该行给出二者 |
reacquire |
航位推算acquire_s,然后仅在底限更小之处,把某个轴设为来源底限;绝不低于底限,绝不重置 |
坐标系与时标#
任务链在交接处转换,绝不在阶段内部转换,每次转换都是各自的预算行。坐标系:GCRF、MCI、MCMF(ITRF和LVLH被拒绝并附原因)。Gcrf <-> Mci按月球的地心状态平移原点:在星历覆盖该历元时取自星历的DE440级状态(替代值5 m和1 mm/s;对照固定的JPL Horizons实测最差2.6 m),否则取解析级数,其实测RMS为195.7 km,该行会说明这一点;因此月球示例必须带有覆盖其历元的星历。Mci <-> Mcmf是平均恒星自转,轴在历元处对齐,且无天平动。时标经TT转换:Utc <-> Tt精确,Tdb <-> Tt增加14 us,Tt <-> Ltc使用lunar_time的长期速率,其每天56至59 us的范围作为速率不确定度。
八种阶段类型#
| 类型 | 段 | 作用 | 参数 |
|---|---|---|---|
launch-ascent |
地球 | 动力上升至停泊轨道:带白加速度噪声的匀速协方差、GNSS获取与衰落、时钟守时 | src/mission_thread/earth/launch.rs中的[phase.model]键 |
leo-rendezvous |
地球 | 沿传感器区段的相对导航:LVLH中的Clohessy-Wiltshire转移、6x6卡尔曼协方差、对接窗口 | 见下 |
tli-and-cruise |
地球 | TLI点火与地月空间巡航:Cowell传播、有限差分状态转移矩阵、gnss-ssv和地面跟踪更新 | 见下 |
entry |
地球 | 返回滑行至再入界面;航迹角sigma、走廊概率、峰值减速度、落点区 | 见下 |
lunar-orbit-rendezvous |
月球 | 月球轨道上对接的相对导航 | mission-thread/lunar-phases.md |
lunar-descent |
月球 | 极区站点的着陆散布预算 | 相同 |
lunar-surface |
月球 | 按站点和季节的地表PNT与授时可用性 | 相同 |
lunar-ascent |
月球 | 动力上升至入轨轨道 | 相同 |
各月球类型也是独立的场景类型;设计和证据见MISSION-THREAD-LUNAR.md。
leo-rendezvous#
预算携带的是相对 sigma;追踪器的绝对协方差原样传递,且有一行对此作出说明,因为该阶段测量的是飞行器彼此之间,而不是相对地球。起始的相对协方差是追踪器的绝对协方差加上目标给定的sigma,按相互独立相加(保守)。键:target_alt_m、target_abs_sigma_pos_m、target_abs_sigma_vel_mps、capture_pos_m、capture_vel_mps,可选的process_q_acc和min_window_s,以及一个或多个[[phase.model.legs]],含range_m、end_range_m、duration_s、sensor(optical-camera、lidar或rf-ranging,ILLUSTRATIVE参数见src/mission_thread/sensors.rs)和interval_s;各区段的持续时间相加即该阶段的持续时间。对接窗口是从相对sigma保持在捕获包络之内起,到该阶段结束的时间。重复的阶段是各自独立的阶段,有自己的id。
tli-and-cruise#
平均状态由引擎的Cowell传播器给出,含地球引力和J2,太阳和月球作为第三体。协方差通过每个step_s区段,使用前向差分状态转移矩阵(名义运行和六次扰动运行)和白加速度噪声。点火沿进入速度方向,带有给定的大小比例和指向误差。点明的局限:已提交的月球星历截取包含月球而不含太阳,因此传播器的月球取自星历,太阳取自解析级数(太阳的第三体项对该级数的误差不敏感);该阶段在一个事件中说明它用了哪一种,并且在没有星历覆盖某一区段的情况下,两者都使用解析级数。点火没有瞄准:名义状态是给定点火所到达之处,月球阶段只取协方差。
更新,仅在文档列出该来源时使用:gnss-ssv(位置修正,其可用性和PDOP来自引擎沿一条替代该弧段的密切地球轨道所做的space-service-volume扫描,每个ssv_window_s扫描一次;修正sigma = PDOP中位数乘以ssv_uere_m;期望信息形式使运行保持确定性)和ground-tracking(沿地心方向的距离与距离变化率,因此天空平面不被观测;更新方差除以跟踪占空)。键:tli_dv_mps、tli_dv_sigma_fraction、tli_pointing_sigma_rad、step_s、clock_q_f、clock_q_d,可选的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#
该滑行是没有点火的tli-and-cruise滑行,终止于再入界面;其键就是上面的滑行键。在界面处,该阶段由完整协方差读出航迹角及其sigma、该角度处于规定走廊内的概率、名义角度和走廊两个边缘处的峰值减速度(引擎的平面弹道再入,与Allen-Eggers闭式并列),对照一个可选的限值,以及落点区:纵向距离由规定的敏感度得出,横向距离由界面协方差在轨道面法向上的部分得出。键:interface_alt_m、ballistic_coeff_kg_m2、corridor_min_deg、corridor_max_deg、downrange_sensitivity_km_per_deg、flight_time_s,可选的max_decel_g、scale_height_m和start_state_gcrf(名义返回状态,六个数,用于链路中没有地球转移点火来产生它的情形)。这里没有对任何返回舱的升力、制导或加热建模。
地面网络叠加#
一个可选的[ground_network]表给出各站点和最低跟踪仰角;对其所指明的每个阶段,任务链计算站点能够跟踪该阶段的时间比例,并把它作为占空传给该阶段,用来缩放其地面跟踪更新速率。几何:entry-orbit(进入状态按含J2的二体问题飞行,用于低轨阶段)、moon-direction(飞行器位于月球位置,用于地月空间巡航)和stated(你给出的占空)。站点切换会损失handover_gap_s;该阶段的预算得到没有站点可见的最长间隔,并有一个事件给出占空。这里没有对网络的天线或调度建模。
报告#
kshana-mission-thread/1:phases[](索引、id、类型、时间、标签、导航与时间来源、限制性来源、进入、峰值和退出sigma、需求、余量,带逐行单位的budget_rows[],events[])、weakest_link(相对规定需求的最小余量,否则取最大的峰值位置)、timeline[]、任务链的label(最薄弱阶段的标签)以及units块。图为1σ 位置和时钟偏置随任务时间的变化,每个阶段一个色带。
证据是什么#
任务链的标签是最薄弱阶段的标签,每个阶段都是MODELLED。月球传播器与LRO和CAPSTONE作了比较(xval/mission-thread-lunar/);地月空间弧段与公开的Horizons轨迹作了比较(xval/mission-thread/)。每一行要么达到、要么未达到在运行之前就固定在已提交文件中的判据,未达标就如实记录为未达标。除非台账另有说明,没有任何一项是VALIDATED。