一种基于gpu的快速星表检索方法

文档序号:6426551阅读:185来源:国知局
专利名称:一种基于gpu的快速星表检索方法
技术领域
本发明属于计算机仿真领域,具体涉及一种具有快速实时特点的星表检索方法, 该检索方法能够在给定大小的视场下,快速检索出星表中落入视场内的恒星。
背景技术
星敏感器是卫星姿态确定与控制系统中重要的星上设备,主要采用快速的星图识别算法以确定卫星的姿态。为了测试星敏感器的识别算法性能,需要使用星模拟器,模拟任意时刻,任意飞行器姿态下的星敏感器视场内的星图。计算机模拟星敏感器等航天设备拍摄到的背景星图,首先根据探测视场光轴的赤经、赤纬,以给定的星敏感视场大小以及视场绕光轴的旋转角度确定视场范围,从星表提取落入视场内的恒星,最后将这些星点以二维图像形式显示出来。落人星敏感器视场内的观测星与模拟天球分布的所有观测星相比只占极少数,这就存在一个在星表快速检索落入星敏感器视场的观测星的问题。设计高效率的星表检索算法是提高星图模拟速度,实现星空环境实时仿真的关键因素。星表包含了一定数量恒星的星编号、星等、对应某一历元时刻的星位置(天赤经、 天赤纬)等数据,构成了对空间天球坐标系下恒星的描述。星表检索以恒星星表为基础, 通过给定视场大小和视轴指向确定搜索范围,从星表中检索出落入视场内的恒星。为了力口快星表检索速度,文献[1](参考 Bone Jeffery W. on—orbit star processing using multi-startrackers [J]. Proc. SPIE, 1994,22 (21) 6-8)提出一种球矩阵结构来存储星表,通过优化星表结构以提高恒星存取效率,但该方法在矩阵维数较大时,存取时间并不能显著减少。文献[2](参考饶才杰,房建成.一种星图模拟中观测星提取的方法[J].光学精密工程,2004,12 (2) 129-134.)提出了经纬度圈法划分星表,用赤经圈和赤纬圈将天球分成不重叠的区域,每个区域独立存储,该方法边界清晰,计算简单,然而在处理大规模星表时容易产生过多的分区,影响恒星查询效率;文献[3](参考张广军,魏新国,江洁.一种改进的三角形星图识别方法[J].航空学报,2006,27 (6) :1150-1154.)通过构造天球的“内接正方体”将天球球面均勻分成6块,再细分块为更多子块,通过子块索引号读取恒星,这种方法查询方便,但对恒星的块边界判断较复杂,当恒星数量较大时,边界计算耗时较高。为了缩小搜索范围,文献W](参考胡宜宁,巩岩.动态星图显示算法的设计与实现[J].宇航学报,2008,四(3) =849-853.)针对某一指向的视场,取视场光轴所在分区临近的八个子区作为搜索区,检索落入视场内的恒星,该方法有效缩小检索空间,然而只能针对特定大小的视场,这是因为天球上赤经弧长随纬度增加而逐渐缩短,当视轴指向不同天区,不同大小的视场覆盖的子区数目并不相同。文献[5](参考蔡志武,韩春好,陈金平.一种高精度星载导航星库的构建方法[J].测绘科学技术学报,2006,23(1) :29-32.)通过计算球表面上视场的经纬度边界范围,进而查找该视场所关联的子区,但该方法采用膨胀因子计算经纬度边界范围,计算精度不高。此外,已有的视场内恒星检索过程均在CPU上的串行实现,在恒星数量巨大时,检索效率并不高。随着星敏感器等航天设备观测能力的提升,可观测星等域越来越大。目前在大视场、宽探测星等域条件下,如何提高星表检索速度已经成为航天仿真在星空领域的亟需解决的问题。

发明内容
针对现有方法的缺点,本发明提出一种基于GPU的星表检索方法。该方法采用经纬度划分法对星表进行星区划分;提出了一种视场所覆盖的星区计算方法,解决视场边界范围计算不准问题;然后采用NIVIDIA提出的CUDA并行架构,设计基于GPU平台的视场恒星查找并行算法;具有快速检索出星表的效果。为了实现本发明的目的,采用的技术方案概述如下一种基于GPU的星表检索方法,其步骤包括1)采用经纬度划分法将星表划分为星区存储;2)计算星敏感器圆形视场区域所覆盖的星区,该过程先计算视轴的球面坐标 ’然后计算圆形视场的经纬度边界,在分区星表中查找圆形视场所覆盖的星区;3)将星区内恒星传入GPU全局内存以恒星集方式存储,GPU恒星计算线程网格划分为若干个线程块,每个线程块负责处理一个恒星集合,每一个线程负责对一个恒星进行检索;4)各线程检索出落入圆形视场内的恒星,在圆形视场内检索出落入CCD成像面的恒星。所述步骤1)经纬度划分法是按照一定的经纬度间隔,用赤经圈和赤纬圈将天球分成不重叠的区域,每个区域内的恒星独立存储,并按照各个区域所在经度和纬度范围进行编号。进一步,对同一纬度区间内的星区按照经度递增的顺序合并存储到一个星表文件,并且建立索引。进一步,所述索引记录了各星区所在经度范围以及星区在星表文件中的恒星首地址、偏移长度。所述步骤2~)通过视场在天球的圆形投影面与赤经线构造球面三角形,通过球面几何关系计算出经纬度边界。进一步,所述构造球面三角形方法为以0为视轴与天球面的交点,过0点的经线与视场区域交与P” P2两点,视场区域与天球两条相切经线切于Q” Q2两点;所述球面几何关系为θ为视场半张角,α ρ α 2分别为0和%的纬度,Δ δ为%和0的经度差。所述步骤4)判断恒星落入圆形视场所在区域的方法是计算出该恒星到观测点的连线与视轴的夹角,比较该夹角与视场张角的大小关系,如果该夹角大于视场张角,该恒星位于视场外,否则,恒星落入圆形视场所在区域。所述步骤4)判断恒星坐标落入C⑶像平面上的方法是该恒星坐标在像平面的坐标范围内。(1)本发明的积极效果与过去的星表检索方法相比,本发明有如下优点1)采用经纬度划分法对星表进
cos(90 - Or1) = cos 汐 cos(90-a2) sin θ = sin(90-O1) sinAiJ行分割,并引入合并存储方式存储各星表分区,使得星表存储管理方便,且提高了查询效率;2)通过引入球面三角形法求出视场在星表天球所覆盖的精确经纬度边界,并以此为基础,得出视场所覆盖的星区,以这些星区作为检索区域而不是整个星表,缩小了搜索范围; 3)设计了基于GPU平台的星表检索并行检索算法。利用当前GPU强大的数值计算能力和并行处理能力,将对海量恒星的查找过程进行多线程并行加速,获得了数十倍的加速比;4) 将各类视场下的检索时间控制在毫秒级别,使得在大视场、宽星等域下满足星图生成等各类仿真应用对恒星检索的实时要求。


图1为天球中视场边界表示图;图2为视场与CCD成像面位置关系图;图3为恒星检索并行模式示意图;图4为GPU星表检索算法示意图;图5为不同GPU平台星表检索的加速效果比较示意图。
具体实施例方式下面结合附图和具体实施例对本发明作详细的说明。由于近年来GPU数值计算能力快速提升,可进行数值计算的并行处理核心已可达 300个。设计基于GPU上的并行计算对数据规模大且可并行化的处理显示出强大优势,已经在几何造型、分子模拟、图像处理等领域取得了很好的加速效果。对星表检索的分析显示, 视场内恒星的检索过程具有较高的并行度,非常适合使用GPU进行加速。这是因为,首先在大视场,宽探测星等域下,视场内恒星查找是一个计算密集、数据量大的处理过程,其计算量占整个星表检索计算量的85 % 90 %,高效且快速地实现该查找过程是提高整体检索速度的关键;其次,查找视场恒星的每一次处理都是对视场覆盖星区内的恒星进行一次独立的计算和判断,且该计算不会影响到其他恒星。这种典型的数据海量性和问题本身具备的良好并行结构,使得在GPU上进行并行设计具有天然优势。因此,本发明给出具体的实施例,说明本发明基于GPU并行架构下的星表快速检索方法。首先,采用经纬度划分法对星表进行星区划分;其次,提出了一种探测视场所覆盖的星区计算方法,解决视场边界范围计算不准问题;然后采用NIVIDIA提出的CUDA并行架构,设计基于GPU平台的视场恒星查找并行算法;最后通过仿真实验验证了本算法的加速效果。(1)星表划分星表划分是星表检索的基础,它以视场大小为输入,确定分区粒度,采用经纬度划分法,生成可快速查询的分区星表。该分区星表可进行多次检索。经纬度划分法类似地球分带,按照一定的经纬度间隔,用赤经圈和赤纬圈将天球分成不重叠的区域,每个区域内的恒星独立存储,并按照各个区域所在经度和纬度范围进行编号。然而,由于每个星区内的恒星独立存储,当星表密度较大时,分区间隔较小导致存储文件数过多,不易管理并且影响查询效率。为了减少存储文件数,采用合并存储方式,对同一纬度区间内的星区按照经度递
5增的顺序合并存储到一个星表文件,并且建立索引。索引记录了各星区所在经度范围以及星区在星表文件中的恒星首地址、偏移长度。这样,在读取任一星区的恒星数据时,可先根据其所在的纬度区间查找到其对应的存储文件,再根据星区所在经度区间在索引中查找到文件中的首地址和偏移长度的记录,便可读取该星区所有的恒星。(2)视场覆盖星区计算视场覆盖星区查找,在分区星表的基础上,计算圆形视场区域所覆盖的星区。该过程先计算视轴的球面坐标;计算光轴球面坐标过程恒星在USN0A1. 0星标中使用的是赤经、赤纬表示的球面坐标系,而相机光轴的方向表示采用的是地心惯性坐标系(笛卡尔坐标),因此要进行将地心惯性坐标系转换为球面坐标系以计算相机视场的覆盖范围。相机的光轴笛卡尔坐标(X,y, ζ)与球面坐标(Ra, De)的关系为
权利要求
1. 一种基于GPU的星表检索方法,其步骤包括1)采用经纬度划分法将星表划分为星区存储;2)计算星敏感器圆形视场区域所覆盖的星区,该过程先计算视轴的球面坐标;然后计算圆形视场的经纬度边界,在分区星表中查找圆形视场所覆盖的星区;3)将星区内恒星传入GPU全局内存以恒星集方式存储,GPU恒星计算线程网格划分为若干个线程块,每个线程块负责处理一个恒星集合,每一个线程负责对一个恒星进行检索;4)各线程检索出落入圆形视场内的恒星,在圆形视场内检索出落入CCD成像面的恒
2.如权利要求1所述的方法,其特征在于,所述步骤1)经纬度划分法是按照一定的经纬度间隔,用赤经圈和赤纬圈将天球分成不重叠的区域,每个区域内的恒星独立存储,并按照各个区域所在经度和纬度范围进行编号。
3.如权利要求2所述的方法,其特征在于,对同一纬度区间内的星区按照经度递增的顺序合并存储到一个星表文件,并且建立索引。
4.如权利要求3所述的方法,其特征在于,所述索引记录了各星区所在经度范围以及星区在星表文件中的恒星首地址、偏移长度。
5.如权利要求1所述的方法,其特征在于,所述步骤幻通过视场在天球的圆形投影面与赤经线构造球面三角形,通过球面几何关系计算出经纬度边界。
6.如权利要求4所述的方法,其特征在于,所述构造球面三角形方法为以0为视轴与天球面的交点,过0点的经线与视场区域交与Pp P2两点,视场区域与天球两条相切经线切于仏、A两点;所述球面几何关系为cos(90 - Or1) = cos 汐 cos(90-a2) sin θ = sin(90-CC1) sinAiJθ为视场半张角,Q^a2分别为0和%的纬度,Δ δ为%和0的经度差。
7.如权利要求1所述的方法,其特征在于,所述步骤4)判断恒星落入圆形视场所在区域的方法是计算出该恒星到观测点的连线与视轴的夹角,比较该夹角与视场张角的大小关系,如果该夹角大于视场张角,该恒星位于视场外,否则,恒星落入圆形视场所在区域。
8.如权利要求1所述的方法,其特征在于,所述步骤4)判断恒星坐标落入CCD像平面上的方法是该恒星坐标在像平面的坐标范围内。
全文摘要
本发明提供了一种基于GPU的星表检索方法,其步骤包括1)采用经纬度划分法将星表划分为星区存储;2)计算星敏感器圆形视场区域所覆盖的星区,该过程先计算视轴的球面坐标;然后计算圆形视场的经纬度边界,在分区星表中查找圆形视场所覆盖的星区;3)将星区内恒星传入GPU全局内存以恒星集方式存储,GPU恒星计算线程网格划分为若干个线程块,每个线程块负责处理一个恒星集合,每一个线程负责对一个恒星进行检索;4)各线程检索出落入圆形视场内的恒星,在圆形视场内检索出落入CCD成像面的恒星。本发明方法将各类视场下的检索时间控制在毫秒级别,使得在大视场、宽星等域下满足星图生成等各类仿真应用对恒星检索的实时要求。
文档编号G06T7/00GK102201008SQ201110164348
公开日2011年9月28日 申请日期2011年6月17日 优先权日2011年6月17日
发明者吴佳泽, 李超, 程小华, 郑昌文 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1