chaseyoungcn / Star-Identify-Algorithm

2019年“华为杯”全国研究生数学建模 B题目

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

天文导航中的星图识别

2019年“华为杯”全国研究生数学建模 B题目

  • 时间有限,实现的可能太粗鲁。
  • 可以参考论文,优化一下

梳理一下过程:

  1. 根据题目,画出示意图理解题意
  2. 找到关系,利用Matlab建立模型
  3. 结束第一问
  4. 找到星图识别相关论文,复现之
  5. 结束第二问
  6. 攥写报告

星图识别

  1. 构建数学模型 通过恒星坐标 推算出卫星姿态 , 数学建模
  2. 写一个恒星匹配系统

概念描述

​ 根据不同的任务和飞行区域,天文导航系统中常用的星体敏感器主要有星敏感器、太阳敏感器、地球敏感器和其他行星敏感器。

​ 其中星敏感器是一种高精度的姿态敏感测量仪器,它以恒星为参照系、以星空为工作对象,利用其携带的星相机拍摄星图,敏感多颗恒星给出多个参考矢量,通过星图预处理、星图识别、姿态解算等步骤解算出载体的运动姿态。星敏感器具有精度高、没有漂移误差、抗干扰性强、可不依赖其他系统进行独立导航的特点,目前广泛应用于航天遥感领域,为卫星、火箭、战略导弹、宇宙飞船等航空航天器的高精度姿态确定。

星敏感器姿态捕获和姿态跟踪有两种工作模式。

在航天器工作的初始阶段或者姿态数据有误时,即处于"Lost-in-Space"状态时,星敏感器工作于姿态捕获模式,由于没有任何姿态信息可供参考,需要把当前视场中的观测星在全天球导航星库中搜索匹配以完成导航星识别。在已知大概方位的姿态跟踪模式下,只需搜索部分导航星星库。这两种模式的姿态更新速率决定了星敏感器能否实时测量和自主导航。

星图识别:将星敏感器拍摄到的恒星与导航星库中的导航星进行匹配,以确定当前的视轴指向。一般按照是否搜索全天球的导航星库,分为全天球星图识别和局部天球星图识别两种。

全天球星图识别用于解决在没有先验姿态情况下的星图识别问题,一般用 于星敏感器初始化阶段以及解决一些特殊的姿态丢失情况,是确保星敏感器自主跟踪识别的关键技术之一。

局部天球星图识别的一种典型应用就是跟踪模式星图识别,它利用上一时刻的姿态信息作为先验条件,进行局部天区的星图识别。在一个星敏感器的生命周期中,很少需要解决没有可获得的姿态信息的情况,大多数情况下,星敏感器都能获得到包含某种不确定性误差的三轴姿态信息。

在完成星图识别后,通过姿态计算算法就可以计算出当前星敏感器的视轴指向.

星图 --------->匹

          配  ------> 星图上点的空间位置 ------>姿态解算---->姿态

导航星库------>识别

​ 星图识别时将星敏感器观测视场里的观测星与导航星表中恒星按照一定的匹配特征(如星对角距、星等等)进行匹配,从而完成视场中观测星与星表中的导航星的一对一映射,如果在星表中找不到观测星对应的恒星,则认为该观测星是“伪星”。

(1). 全天球星图识别:将观测星与整个导航星表进行对应匹配,进行星图识别。

​ 全天球星图识别算法是空间飞行器自主确定姿态的关键,也是星敏感器的核心算法之一。随着空间技术的快速发展,要求星敏感器必须具备完全自主地进行全天球星图识别和姿态捕获的能力。目前的星敏感器普遍配置了全天球导航星表,使星敏感器能够解决太空迷失(Lost-in-space)问题,能够自主确定空间飞行器 的三轴姿态而不依赖地面测控系统。

传统型三角形匹配算法的缺点:

从待选的k个导航星里面选三个,通过边长匹配。组合的个数太大,导致星库变大,并且三角形冗余匹配,匹配搜索时间长。

改进:

🍀存储星对角距(两个恒星的位置相对于与相机的夹角) 代替存储导航三角形. Cn 3 -> Cn 2 == n(n-1)(n-2)/6 -> n(n-1)/2

🍀对导航星严格挑选 只用概率最大的星对

🍀引入检验星,优选观测三角形,以消除荣誉匹配

🍀通过k向量存储的方式,缩小导航星对搜索时间,以减少匹配搜索时间。

制作星库前的一些选取规则

星敏感器所需识别信息主要包括恒星的位置(赤经、赤纬)和亮度(星等),这些信息一般会存储在星敏感器的存储器中

🌟导航星表要求

🌟恒星参数要精确,期待精度为角秒级; 🌟对导航星表结构进行优化,加快检索速度;

🌟在保证性能的情况下,导航星总数越少越好

导航星选取原则

🌝导航星数量尽可能多,使导航星库完备

🌝导航星分布要均匀,均匀性的原则是对分布较为稀疏天区内的恒星加以保留,而对分布较为密集天区内的恒星则进行适当的删除

🌝导航星数量少,降低存储空间

🌝导航星要亮

识别流程

  1. 制作导航星库

    • 基于星等阈值分割,亮度低的去除;对双星进行融合

    把亮度不够的过滤掉,星角距太小的融合成一颗。

    作出标准一点的星表,但是分布不均匀。

    • 基于导航星对筛选,保证各个视场中导航星对数量均匀化

    为了保证低密度区域和高密度均匀,不能统一阈值筛选。

    全天球范围内生成1e6个随机视场,选取最亮的N颗导航星。把星表筛选均匀。

    两两计算星对的星角距,存储到导航星库。

    • 利用K向量存储的方法,把导航星对存储到导航星库中,提高信息检索效率

      将星对角距值从小到大排序,按平均间隔分成n-1组,每组间距为D。y1 角距最小, yn角距最大

      公式略...很简单的等分区间

      对于某星对,如果其角距落在其中的一个区间中,则这个区间包含的 候选星对就是匹配结果。每一个间隔里面有匹配结果

      这么做的话,有点问题,间隔大,候选星对太多。间隔小,匹配容易失败。 为啥这么做,因为浮点数不容易匹配。有了这个可以很容易的寻找配对值

      二分logn 但我这么做是O1的嘻嘻嘻

  2. 恒星坐标转换

    角度换弧度制??好像是这个

  3. 对星敏感器全天球星图识别,对现有的三角形星图识别算法进行改进。算法以存储导航星对角距代替存储导航星三角形的特征信息,以角距识别代替三角形识别,并通过增加一颗检验星消除观测三角形的冗余匹配。算法在一定程度上解决位置误差、星等误差和伪星干扰等问题,具有较快的识别 速度和较高的识别准确率。

    🌟每张星图开始匹配 (匹配了,代入数学模型就能得出姿态)

    观测三角形选取规则:

    🍃优先选择星图中亮度比较高的恒星,进行星图识别

    🍃多选几组观测星,防止干扰星(如行星,星云尘埃)干扰

    🍃几次三角形组合失败之后,就认定该星图识别失败,防止匹配时间太长。

经验:

  1. 作为队长,应该合理安排任务,对队员进行必要的流程和学习指导,首先自己要熟。
  2. 好好选队员,广撒网,重点捕捞, 有经验的,想拿奖的。
  3. 不要按部就班都实现,学会省略,否则写不完。
  4. 做完及时写笔记📒,别像我过了一年再来回忆....

本来觉得没做啥,回忆完,写的真nm不容易.....就当自己拿了个参与奖吧 2020-08-21 23:35

主要参考文献: [1]赵启坤. 星敏感器快速星图识别算法研究[D].**航天科技集团公司第一研究院,2016.

About

2019年“华为杯”全国研究生数学建模 B题目


Languages

Language:MATLAB 100.0%