卫星轨道共振计算器

时间:2024-03-29 21:52:56

卫星轨道共振计算器

  写了一个小小的MatLab程序,用来计算共振轨道。这个程序目前只能针对KSP,也即Kerbal Space Program这个游戏原版内置的星体。

  共振轨道在通讯卫星和导航卫星的部署(例如一箭双星的北斗)方面,具有非常重要的意义。两条相切轨道共振,其周期呈现整数倍,这样,一条轨道上的母卫星通过在切点释放子卫星,然后子卫星进行轨道调整的方式,就可以在数个周期内(例如部署三颗子卫星需要三个周期),将子卫星均匀精确部署在轨道上。

  这种方法经济性好(火箭单次发射成本高),操作性强(母星几乎不需要变轨机动),效果出众(轨道均匀整齐),而且观赏性强(说白了就是利于装X),所以非常好,非常棒。

  最近又改进了一下我的轨道共振计算器。现在已经把它做成一个可以画示意图的,可执行文件了。感兴趣的话可以参阅我的GitHub:轨道共振计算器。里面有一个可执行文件,如果你有MatLab的话,下载这个就可以玩了。不需要MatLab程序,仅需要运行库的版本我还在开发,进一步的只需要C语言之类的版本我也正在研究。

  这个程序非常简单,就是依据开普勒定律计算轨道半长轴。程序涉及三条轨道。第一条是卫星最终规划部署所在的正圆轨道A,离心率是0,周期为T。第二条是轨道低点(近地点,Perigee,或者Periapsis)与正圆轨道A相切,轨道高点(远地点,Apogee,或者Apoapsis)高于A的椭圆轨道,焦点是绕转星体的椭圆轨道,其周期为(n+1)T/n。第三条是轨道高点与A相切,轨道低点低于A的椭圆轨道,周期为(n-1)T/n。其中,n是准备部署在轨道上的子卫星数目。根据开普勒定律,对于同一个公转绕转星体,卫星轨道半长轴的三次方与轨道周期的平方成正比(还是要说,这个是一阶情况,实际情况要复杂很多)。由于T值在特定的例子内是个常参量,能够消去,因此可以在不知道具体T值的情况下,计算出共振轨道的确切半长轴。

  一般来说,n总是大于等于3,这样才能实现无死角通信覆盖,例如GPS卫星在同一条轨道上总是布置四颗卫星,三颗实现无死角,第四颗负责备用。n越大,两个椭圆轨道的离心率就越小,越接近于规划的正圆轨道A。另外,这个程序中轨道高点和低点都是星球海平面(参考平面)高度,而不是轨道半径的长度,这与KSP游戏中的,以及人类目前轨道描述的惯用方式一致。使用时需要注意。

卫星轨道共振计算器

  以上一图,就是我的共振轨道高度计算器运行结果图。中间蓝色的十字示意绕转的星体,这里是坎星系的第二颗行星,EVE,类似于太阳系的金星。蓝色的圆轨道是使用者计划的最终轨道,星体是其圆心。部署完成的子卫星将在这条轨道上运行,对于这一特例,将有三颗卫星互呈120°在轨道上运行。红色椭圆轨道与蓝色圆轨道内切,是圆轨道周期的三分之二,其上的标注是其轨道近地点的高度,而其轨道远地点高度即是蓝色圆轨道的高度;绿色的椭圆轨道与蓝色圆轨道外切,是圆轨道周期的三分之四,其上标注的是其轨道远地点的高度,其轨道近地点高度即是蓝色圆轨道的高度。

  在Deploy!点位置,释放子卫星,并操纵子卫星圆化轨道(基本不需要管母卫星,让其维持现有轨道继续运行即可。也可以轻微修正因释放子卫星造成的动量损失),就可以完成一次部署。

  下一步,我打算将其增补为可以计算任意已知海平面高度、海平面星球半径的星球,共振轨道高度的计算器——当然,仍然是在一阶两体简单引力模型下的。这样的话,对于任何星球——当然包括地球——只要你知道其星体半径就可以模拟部署共振轨道啦!

  这个程序完全开放,欢迎大家修改增补。

  如果你对轨道力学感兴趣,为什么不试一试呢?