唐 君 李 伟
(海军大连舰艇学院航海系 大连116018)
天文自动导航系统采用大、小两个视场同时同轴的观测方法[1],针对大视场观测天区范围大、分辨率低;小视场观测天区范围小、分辨率高的特点,采用大、小视场结合辨识的方法,即大视场确定视轴的初始指向,为小视场提供先验信息(视轴所指向的天区区号[2]),小视场在已知的天区信息的条件下进行精确的星信息匹配和天体辨识[3]。为了满足天文自动导航系统的应用需求,本文从原始星库[4]的构造入手,提出了一套较为完整的、面向大小双视场的导航星库和三角形星库[5]的构造方法。
源星库是指从基本星表SKYMAP SKY2000 Version 4 Master Catalog中所提取的,经过变星处理,双星处理,数据格式转换后生成的以供后续处理使用的导航星库。
基本星表SKYMAP SKY2000 Version 4 Master Catalog中包括大量的变星[6]。由于变星视星等的不确定性,不利于星图的识别,需对变星作剔除处理。Combined General Catalogue of Variable Stars变星表是SKY2000星表变星信息的主要来源之一,在对变星进行处理时,基于变星表信息,剔除星等变化较大的变星,对最大星等与最小星等差值不大于星敏感器[7]的星等误差(可达0.2个星等)的变星予以保留。由于变星星表中的星号与基本星表中的星号并不完全一致,但两星表中的星名信息完全一致,所以本文通过星名匹配的方法进行查找。基于MATLAB程序,变星处理算法步骤如下:
Step 1 初始化,从基本星表中提取出导航星的星表文件star.txt,从变星星表中提取出变星的星表文件gvcs.txt;
Step 2 从star.txt中提取出星名name1和对应的导航星的星号num;
Step 3 从gvcs.txt中提取出变星的星名name2;
Step 4 将每个name2与name1逐个比对,如果strncmp(name2,name1)==1,记录星name1的星号num;
Step 5 从star.txt中剔除星号为num的星得到新的导航星星表文件。
基本星表中包括大量的双星[8]。双星间的角距[9]一般很小,双星与其它星间的角距相差甚小,在建立星库时必须进行剔除。在实际应用中,定义星对角距小于一定角距门限(一般 ≤0.1°)的两颗星为双星,在建立导航星库时,仅保留其中星等较低的星,剔除星等较高的星。
由于在天体识别的过程中,三角形信息表对双星间的角距存在最小值要求,而最小值往往大于0.1°,因此,对于三角形星库的构造来说双星的影响并不明显,但为增强源星库的应用性以及为姿态计算做准备,双星处理仍然必不可少。
SKY2000主星表包含了299,167颗星,视星等范围从-1.4400到13.8100,并给出了恒星的详细信息[10]。SKY2000主星表的数据格式如下:星号、赤经时、赤经分、赤经秒、赤纬度、赤纬分、赤纬秒、赤经自行、赤纬自行、星等、视差、径向速度。根据星库构造要求,通过Matlab程序实现了数据的格式转换:星号、赤经、赤纬、赤经自行、赤纬自行、星等、视差径向速度,其中赤经自行和赤纬自行较之SKY2000星表初始数据都乘以了100,以便和项目的VC程序格式要求匹配。至此,源星库构造完毕。生成的star.txt文件可以通过简单的星等控制的方法,快速生成视场所需要的各种星等的导航星库。
天文自动导航系统的大视场用于天体辨识,确定视轴的初始指向,为小视场的精确天体辨识和姿态计算提供先验信息,因此大视场要求对全天区一定星等的导航星进行星库构造。
图1 源星库生成过程
1)由于大视场观测的天区范围大,视场内星体数量多,因而对星库中导航星的数量需求较少。
2)由于大视场的分辨率相对较低,为保证能够有效识别,要求导航星为星等较低的亮星。
3)要满足在任何天区的视场范围内具有3颗以上的亮星,从而保证导航星库的完备性。
根据以上的选取原则,从源星库star.txt中提取星等小于5.8的导航星构成大视场的导航星库star5.8.txt,其中含有导航星4844颗,随机取出的10000个视场中,星体个数多于3颗的概率在99.90%以上,满足要求。
星等较低的亮星容易被星敏感器[11]观测到,由亮星构造的星三角形也最经常被使用。由于亮星在天空中的分布不均匀,某些区域亮星非常集中,亮星之间的分开角较小,不利于提高姿态计算的精度。基于这种前提,对每颗星赋予各自的优先等级,分为A类星和B类星,以A类星为主构造星三角形,可以减少储存的三角形的数量,降低比对的次数,进而节约比对时间。
图2 有序三角形的构成
对导航星分等,我们以某颗被判星为中心,适当选取的划分半径R做圆,如果在该圆内没有低于该星星等的导航星存在,则该星被确定为A类星,反之,为B类星,构造三角形时以A类星为主进行构造。如果以某一A类星为中心的范围内,有多于1颗以上的局域暗星存在,则该星被称为较优A类星,记为A+类星。如图2所示,星三角形从大到小的三个角距被分别称为第一角距J1、第二角距J2和第三星角距J3。第一角距J1由1号星和2号星组成,第二角距J2由1号星和3号星组成,第三角距J3由2号星和3号星组成。
构造三角形星库时,在一定的星角距阈值范围内,以A类星为主构造三角形,根据天体辨识的需求,三角形星库中每个有序存储单元中存储了7项信息,分别为3颗星的星号和按降序排列的3个星间角距,以及该三角形的天区属性,这种存储方法有效解决了大视场三角形星库繁琐的全天区遍历查找的冗余问题,节省了辨识时间。为了节省三角形信息的访问时间,本文中的三角形星库角距的搜索过程并没有通过索引表和线性表的访问,而是根据角距信息的降序排列在程序中直接进行折半查找。
以往的索引表和线性表的角距访问过程把从星图提取出的观测星按一定规则构成有序三角形,按照角距从大到小的原则,从有序三角形中提取前两个星角距作为索引参量,访问索引表,获得该类三角形在线性表中的入口地址和该类三角形的数量,通过该入口地址访问线性表;从线性表中获得某三角形在三角形信息表中的地址,通过该地址访问三角形信息表;在三角形信息表中得到导航星三角形的信息,并进行模式匹配;如果匹配成功,则通过构成三角形的导航星的星号访问导航星信息表,获得该星的星表信息,并进行观测时刻的恒星视位置计算。星角距访问成功的前提是要有索引表文件和线性表文件的存在。由于需要存储全天区所有导航星的三角形信息,所以索引表文件和线性表文件需要占用较大的内存空间,如图3所示。
图3 省略索引表和线性表的星库访问过程
本文在三角形星库的构造过程中加入了天区属性信息,所以在访问时省略了对索引表和线性表的查找步骤,通过直接锁定某一天区范围内的三角形信息进行区域内的匹配访问,经实验验证,采用本文的三角形信息访问方法,至少节省了5M的内存空间和100ms的访问时间。
本文根据大视场的视场角要求,采用球矩阵法[12]将天区分为288个15°× 15°的天区,在已知天顶坐标后,通过天区赤经、赤纬的上下限来确定大天区,具体方法为:当已知天顶的坐标时,决定大天区的赤纬(南纬为“-”,北纬为“+”)的上限,可通过增加(减少)20°+视场/2+2°(误差影响)到天顶赤纬,再除以15°加上7,取这个数据的整数部分就是赤纬分区号数的上限(下限)。
赤经的上下限的求法与赤纬相似,但由于随纬度不同赤经弧长不同,需根据纬度,加或减20°+视场/2+2°(误差影响)除以天顶赤纬的余弦值,然后除以15°,取整后加1。当上下限对应的天区跨在0°赤经时,求取方法与赤纬相似。由此确定大天区,在识别时,只对具有该大天区相应天区属性的星三角形进行比对,提高了星三角形的匹配效率。
小视场具有较高的分辨率,视场越小分辨率越高,姿态计算的精度也就越高。本文采用的是2.0°×2.0°的小视场。但随着视场的减小,观测到的天区范围也将减小,观测到的恒星等会增加。为满足辨识要求,必须提高导航星的星等,而这又无法避免的造成导航星库的容量急剧增加,影响了辨识时间和辨识效率。为解决这一系列的矛盾,本文对小视场导航星库和三角形星库采用多文件按区存储的方法。
导航星库应该保证任意视场内至少有三颗导航星的概率接近100%,才能保证导航星库的全天区覆盖。
分别以1.0°×1.0°,1.5°*1.5°,2.0°× 2.0°视场在全天球上随机取出10000个视场,在9等星星库的条件下,选取适当的分层半径R,视场中至少有三颗星的概率如下。
表1 视场含有≥3颗亮星概率
从表中可见,2°*2°视场中至少有三颗星的概率为99.80%,满足全天区覆盖要求。根据小视场对导航星的要求,从源星库中提取出9.0星等以下的所有导航星生成star9.0.txt星库文件。采用球矩阵法,按视场角的要求,把天区分成180×90个2.0°×2.0°的小区。根据star9.0.txt星库文件中导航星赤经、赤纬信息,进行天区分属,把属于某一小区的导航星信息存储到一个个以区号命名的文件中。该存储方法可以根据大视场提供的先验信息直接锁定所需要的区号文件,简化了导航星信息的查找过程。
小视场三角形星库的存储信息和大视场相比,缺少了天区属性信息,这是因为大视场三角形星库容量较小,所有三角形信息都存储的在一个文件下,程序需要通过天区属性信息进行三角形匹配。而小视场三角形星库信息容量巨大,所以采用和小视场导航星库相似的方法,把星三角形进行天区分属,然后把每个三角形信息存储到相对应的区号文件中,而且导航星区文件和三角形区文件采用根据大视场先验信息指定读取的方法,大大节省了程序运行的内存开销。
本文通过构造源星库并对存储信息进行处理和格式整合,为导航星库和三角形星库的构造提供了便利。采用大天区的确定和为大视场三角形星库增加天区属性的方法,改进了以往对三角形星库进行遍历查找所带来索引速度慢、存储容量大的不足。本文中面向视场的星库构造方法:大视场的星库构造,生成的是全天区的导航星库和三角形星库,而小视场的星库构造,生成的则是按区存储的导航星库和三角形星库,该方法与前人的星库构造方法相比,具有更优的适用性,节约了存储容量,有效提高了天体辨识效率。