Celestia 中文文档 下载 App

时间异常:天体位置不对、航天器飞到轨道外

症状

跳转到某个日期(比如未来 10000 年),发现:

先搞清楚 Celestia 的时间精度边界

时间范围Celestia 精度
1600 ~ 2200 年JPL DE 星历表精确,天体位置计算准确(米级误差)
2200 ~ 5000 年基于开普勒方程外推,大致位置正确,但细节(如小行星被引力扰动)可能不准
5000 年 ~ 未来几亿年Celestia 不再用 DE 星历表,简化为开普勒轨道近似(忽略行星间引力相互作用)
公元前反向近似,精度逐年下降

未来几亿年的"时间异常"

跳到 5 亿年后,Celestia 里的行星还在椭圆轨道上平稳运行——但实际上 5 亿年内:

Celestia 的默认星历表不模拟太阳演化——它假设太阳会永远保持稳定。所以未来几十亿年的行星位置在 Celestia 里是"假"的开普勒近似,而不是真实情况。

这是正常现象,不是 bug——Celestia 里有"红巨星太阳"添加件可以模拟太阳膨胀过程。

航天器飞到轨道外

跳转到 Cassini 坠毁之后(2017 年 9 月 15 日),搜索 Cassini——Celestia 会把它显示在某个位置(SSC 里定义的最后位置),但它不"继续飞"了。因为 SSC 数据里航天器的轨道参数定义到坠毁那一刻就结束了。

这也是正常的。让航天器消失需要在 SSC 里定义时间段:

Craft "Cassini" {
    Radius 2
    ...
    EndDate "2017 09 15 18 00 00"  -- 从这一刻起消失
}

SSC 里没写 EndDate → 航天器会永远停在最后一个已知位置,或者在某些版本里继续飞开普勒近似轨道(不对的)。

时间倍率太大导致"冻结"或"跳跃"

修复方法

问题修复
未来太远天体位置不准正常。用 Motherlode 的 "Solar System Evolution" 添加件
航天器坠毁后还在正常。需要在 SSC 里加 EndDate
时间倍率太大冻结正常。降倍率或分多次调
2200 年前的位置明显错检查 DE 星历表版本——Celestia 1.7.0 用 DE441 精度最好

验证时间精度

跳到 2024 年 4 月 8 日 17:18 UTC(2024 日全食最大时刻),搜索 Moon 并跟随它,zoom 到能看到月球在太阳圆面上——如果能精确看到月球正好覆盖太阳最大部分,说明 Celestia 的时间计算是正确的。

如果月球偏了、多了几秒的误差——检查 Celestia 的 JPL DE 星历表是否正确加载。

Select { object "Moon" }
Follow { }
SetTime { Date "2024 04 08 17 18 00" }
SetTimeRate { Value 0.001 }  -- 几乎静止看