APP下载

基于恒星矢量差分的星敏感器星跟踪算法研究

2017-04-28毛晓楠孙少勇胡雄超

上海航天 2017年2期
关键词:星点卡尔曼滤波矢量

金 荷,毛晓楠,孙少勇,刘 露,胡雄超

(1.中国航天科技集团公司 红外探测技术研发中心,上海 201109; 2.上海航天技术控制研究所,上海 201109)



基于恒星矢量差分的星敏感器星跟踪算法研究

金 荷1, 2,毛晓楠1, 2,孙少勇1, 2,刘 露1, 2,胡雄超1, 2

(1.中国航天科技集团公司 红外探测技术研发中心,上海 201109; 2.上海航天技术控制研究所,上海 201109)

针对现有星跟踪算法依赖外部信息、模型复杂等缺点,结合卫星平台实际,提出了一种新的星敏感器内部星跟踪算法,利用星矢量与角速率间关系进行星点预测。先根据当前帧和前一帧的星矢量,用最小二乘原理估算出角速率,再对角速率进行卡尔曼滤波以减小估计误差,之后用滤波后的角速率预测下一帧的星矢量,将星矢量转为星点坐标,最后在以该坐标为中心的波门中提取星点。讨论了角速率估计误差、截断误差、星点成像随机误差和定姿星数等因素对算法精度的影响。该方法不依赖外部信息进行预测,模型简单,易于实现。实验验证在星敏感器角速率为0.6 (°)/s时,平均跟踪精度0.55像素,证明了其有效性。

星跟踪; 星矢量差分; 角速率估计; 星点预测; 最小二乘法; 卡尔曼滤波; 截断误差; 星点成像误差

0 引言

星敏感器是当前精度最高的姿态敏感器,在卫星姿态确定中被广泛应用。在全天捕获成功后,星敏感器主要工作于星跟踪模式。星跟踪算法中首先进行星点预测,以预测的星点位置为中心形成一定大小的波门,图像处理软件在该波门中提取星点位置信息,显著减少了图像处理的时间,提高了算法效率。当星点预测误差大时,波门必须相应增大,一方面增加了计算量,另一方面由于波门内包含虚假目标的概率增大,星点提取算法误识别的可能性也增大,因此提高星点预测精度十分重要。星点预测算法分为两类。一类是利用外部信息的星点预测方法,包括姿态与星图信息,此类方法的研究已较充分[1-9]。文献[1]研究了飞行器大角速率机动时的星跟踪算法,利用当前帧和前一帧的瞬时姿态预测下一帧的姿态,根据预测的姿态和星表信息计算出下一帧的星点信息。文献[2]利用当前帧姿态和陀螺输出的角加速度积分推算下一时刻的星敏姿态,再用该姿态信息和星表信息计算出下一帧的星点信息。此算法除姿态信息外还依赖陀螺的角加速度信息。第二类算法不依赖外部信息进行星点预测,关于该类算法的研究较少。文献[10]对星点运动轨迹建模,在该模型的基础上预测星点位置并通过卡尔曼滤波滤除星点成像瞬时噪声。文献[11]提出了基于singer模型的卡尔曼滤波星点提取方法,该方法与文献[10]的类似。这类算法专注于对星点轨迹的建模,在自主星跟踪的同时滤除星点成像瞬时噪声,但有两个不足。第一,在星点轨迹的建模中需有星点机动频率和随机加速度方差等难以获得的先验信息。事实上在探测器不同位置处,星轨迹的形态并不相同,星点加速度并不一样,这在大视场星敏感器和多头星敏感器中尤为明显,因此难以对所有的星轨迹精确建模。第二,对每颗恒星在探测器上的轨迹需在x、y向分别建立三维运动模型,在该模型的基础上进行星点预测和滤波。实际应用中平均每帧星图要利用星点15颗进行定姿,故需对15条星轨迹模型分别进行递推和滤波,计算量大。

为能利用尽可能少的外部信息进行星跟踪,并改善第二类方法中星点轨迹跟踪模型复杂的缺陷,根据卫星平台实际,本文提出了一种利用星敏感器三维星矢量的星敏感器星跟踪方法。该方法先用当前帧和上一帧的星矢量估算角速率,再对角速率进行卡尔曼滤波以减小角速率估算噪声,用滤波后的角速率及当前帧的星矢量信息预测下一帧的星矢量信息,计算出下一帧的星点预测值,最后在以预测星点为中心的波门中提取星点。该法不依赖导航星表与姿态四元数先验信息,在星敏感器出现短暂的数据无效时,仍可高精度地预测星点位置,稳定地完成星跟踪,模型简单、易实现。

1 原理分析

本文算法步骤具体如下。

a)第一步,角速率估算。根据星敏感器星矢量与角速率间的关系,先由当前帧星点及星敏感器参数计算出当前帧星矢量,用当前帧和上一帧的星矢量估算角速率。该角速率实际是上一帧时间点至当前帧时间点间的角速率,当前帧与下一帧间的角速率可用该值近似。

b)第二步,为减小角速率估算的噪声,对角速率进行卡尔曼滤波。

c)第三步,利用滤波后的角速率及当前帧的星矢量信息预测下一帧的星矢量信息,由星矢量信息和星敏感器内方位元素计算出下一帧的星点位置,即为星点预测值。

d)第四步,在以预测星点为中心的波门中提取星点。

1.1 单星矢量差分计算角速率

星敏感器测量模型可表示为

(1)

式中:si(k)为时刻k第i个星矢量在星敏系中的表示;A(k)为时刻k星敏感器姿态矩阵;ri为时刻k第i个星矢量在惯性系中的表示;vi为测量误差。

根据SHUSTER的研究,测量误差是方差为σiI的白噪声,ri在忽略章动时保持不变[12]。此处:I为33维的单位矩阵。对式(1)作差分可得

si(k+1)-si(k)=

[A(k+1)-A(k)]ri+vi(k+1)-vi(k)

(2)

假设时刻k与时刻k+1间的角速率为恒定,并忽略高阶项,则式(2)可简化为

si(k+1)-si(k)=

-Δt[ω(k)]×A(k)ri+vi(k+1)-vi(k)

(3)

式中:Δt为两个采样时刻的间隔;ω(k)为时刻k的角速率,且

(4)

这在采样频率足够高的条件下是成立的,而且实际工程中空间飞行器的姿态不会突变,多数情况下很稳定,故此种假设符合实际。

为实现不利用姿态信息,将式(1)代入式(3)消去A(k),可得

(1/Δt) [si(k+1)-si(k)]=

[si(k)]×ω(k)+wi(k)

(5)

式中:wi(k)为vi的函数,且

(6)

式(5)揭示了角速率与星矢量的关系,这不需要依赖姿态信息等外部信息作为中间变量。

假设vi为固定的噪声过程,则wi(k)的方差可表示为

(7)

式中:σi为星敏感器对第i个星矢量的测量误差。

如所有时刻中,姿态变化远小于Nyquist频率,有‖ω(k)‖Δt≪π/10,即采样周期相对角速率来说足够小,成立

(8)

因ω(k)的2范数与(ω(k))×的2范数相等,故式(7)右端第二项为主导项。

1.2 多星矢量最小二乘角速率估计

由最小二乘原理和式(5),可求出角速率的估值

(9)

(10)

式中:(xi(k),yi(k))为时刻k第i颗星在星敏探测器上的成像点坐标;(x0,y0)为星敏感器主点坐标;f为星敏感器焦距。

该角速率的估值为时刻k至时刻k+1(上一个时间点至当前时间点)的角速率的估值,星点预测中需预测下一帧的星矢量(时刻k+2的星矢量),因此理论上需求出时刻k+1至时刻k+2的估值。假设角速率相对采样周期缓变,可用前一个采样周期的角速率估值近似本帧的角速率估值。

式(5)两边同时乘以Δt,将si(k+1)的结果代入式(9),可得

(11)

估计误差方差

(12)

1.3 卡尔曼滤波角速率平滑及星点预测

对模型和噪声特性已知的随机过程,卡尔曼滤波可对模型状态进行最小方差线性估计[13]。根据角速率的线性模型和上文对角速率估计噪声的分析,可用卡尔曼滤波对角速率进行最优线性估计,减小角速率的噪声,尤其是大角速率下的角速率估计误差。当采样频率足够大时,假设前后帧角速率不变,卡尔曼滤波的状态方程为

(13)

测量方程、状态估计方差的一步预测公式、卡尔曼滤波增益公式、状态最优线性估计和状态估计方差更新公式分别为

(14)

(15)

(16)

(17)

(18)

式中:Z(k+1)为测量值,由式(9)给出;P(k)为状态估计方差;Q(k)为状态转移噪声;Kg(k)为卡尔曼滤波增益;R(k)为测量噪声;I为单位阵。理论上,u(k)是均值和方差为零的白噪声,但u(k)的方差Q取0时滤波易发散,故本文取其为0.001I3×3,另取v(k)的方差0.5I3×3。

最后,根据式(5),用估计的角速率及当前帧的星矢量可估得下一帧的星矢量,由星矢量和星敏感器参数可预测下一帧的星点位置,在以该点为中心的波门中提取星点。即

(19)

式中:第i个星矢量在下一帧的估值si=[si(1)si(2)si(3)]T。

2 影响算法精度的因素

定义本文算法的精度为星跟踪算法中的星点预测精度,星点预测精度越高,星点提取波门越小,星点提取效率就越高,星跟踪算法性能越好。本算法的误差流如图1所示。

表征星矢量与角速率关系的式(5)忽略了姿态变化‖ω(k)‖Δt的高阶项,由此产生截断误差,该误差通过影响角速率估值间接影响算法精度,同时因星点预测使用式(5),该误差也会影响算法精度。

由式(12)可知:星点成像瞬时误差影响角速率估计误差,会间接影响算法精度,同时由于星点预测时使用了上一帧的星矢量,也会引入星点成像瞬时误差,该误差也会直接影响算法精度;定姿星数会影响角速率估计误差,间接影响算法精度。

2.1 角速率估计误差对算法精度的影响

根据某星敏感器外场观星的实测数据,在角速率分别为0.2,0.4,0.6 (°)/s条件下角速率的估计误差见表1。由表1可知:角速率估计误差随角速率增大而增大,由式(12),这是因为星点成像误差变大,定姿星数变少。

表1 不同角速率下角速率估计误差Tab.1 Error of angle rate estimation under different angle rate

分析角速率估计误差引起的星点预测误差,三轴角速率误差对预测星点坐标的影响如图2所示。根据星敏感器的原理,x、y向是等价的。由图2(a)可知:x轴角速率误差引起的星点预测误差

(20)

式中:E为星点预测误差;Δω为角速率误差;dt为采样时间;A为星敏感器视场;N为焦平面在x向或y向的像素。

z轴角速率误差,即滚动角误差引起的星点预测误差与星点至主点(焦平面与光轴交点)的距离有关。文献[14]给出的焦平面内星点至主点的平均距离

(21)

由图2(b)可知:z轴角速率误差引起的星点预测误差

(22)

设星敏感器的图像分辨率1 024 pix×1 024 pix,数据更新频率5 Hz。根据表1,该型星敏感器运动速率为0.6 (°)/s时,x轴角速率估计误差为0.099 4 (°)/s,由式(20)可得该误差引起的星点预测误差为1.183 4 pix;y轴角速率估计误差为0.206 3 (°)/s,由式(20)可得该误差引起的星点预测误差为2.456 0 pix;z轴角速率估计误差为0.343 8 (°)/s,由式(22)可得该误差引起的星点预测误差为0.47 pix。由此可知:为更准确地预测星点位置,实现高效的星跟踪,有必要对角速率估计误差进行滤波。

2.2 截断误差对精度的影响

此处,影响指截断误差对精度的综合影响,是直接影响和间接影响的总和。仿真分析不同‖ω(k)‖Δt时星跟踪算法的星点预测误差,结果见表2。由表2可知:随着‖ω(k)‖Δt增大,平均星点预测误差亦增大,表明本文算法在星敏感器数据更新频率足够大(即卫星姿态相对采样周期为缓变量)时可保证精度。

表2 截断误差对精度的影响Tab.2 Influence to accuracy by truncation error

2.3 星点成像随机误差对精度的影响

此处的影响是指星点成像随机误差误差对精度的综合影响,是直接影响与间接影响的总和,当‖ω(k)‖Δt=0.12,平均定姿星数为15时,仿真所得不同星点成像随机误差对精度的影响见表3。由表3可知:星点成像误差越大,星跟踪精度就越差。滤波对该误差的抑制有一定的效果。

表3 星点成像随机误差对精度的影响Tab.3 Influence to accuracy by temporal error of star point imaging

2.4 定姿星数对精度的影响

当‖ω‖Δt=0.12,星点成像随机误差为0.5pix时,仿真分析用不同的定姿星数估计角速率和预测星点时对精度的影响,结果见表4。由表4可知:平均星点预测误差随定姿星数的减少而增加,角速率滤波对因定姿星减小而增大的误差有较好的抑制作用。当定姿星仅为2颗时,星敏不能定姿,但仍用该算法进行星跟踪和姿态递推。

表4 定姿星数对精度的影响Tab.4 Influence to accuracy by number of stars used for attitude determination

3 实验结果及分析

3.1 角速率估计

用某星敏感器的外场观星试验对本文星跟踪算法进行验证,采集星敏感器在0.6 (°)/s条件下运动时的实测数据,用本文方法预测星点,实现星跟踪,同时验证该方法的可行性和精度。实验所得星点运动轨迹如图3所示。由传统的用四元数差分所得角速率估计和本文算法使用前后帧星矢量估计角速率如图4所示。

由图4可知:实验证明虽然未使用姿态信息,星矢量估计角速率的精度与用四元数差分估计的精度相当,估计角速率均值为0.603 3 (°)/s。

3.2 角速率滤波及星点预测

对角速率估值进行卡尔曼滤波抑制噪声,用滤波后的角速率预测星点位置。所得滤波前后的角速率误差见表5,角速率如图5所示。由表5和图5可知:滤波对角速率估计噪声有较好的抑制作用。

表5 滤波前后角速率误差Tab.5 Angle rate error before and after filtering

星敏感器某帧的星点预测结果见表6。由表6可知:该预测方法基本可准确预测出星点位置。角速率滤波前后的星点误差见表7,星点误差预测值如图6所示。实验中采样点212个,其中滤波效果优于不滤波的采样点160个,占75%;滤波前星点预测误差大于1的采样点39个,其中滤波后预测误差减小的38个,占97%,平均预测误差减小0.56 pix;

表6 星敏感器某帧的预测星点坐标Tab.6 Predicted coordinates of star points

表7 滤波前后星点误差Tab.7 Star points prediction error before and after filtering

滤波前星点预测误差大于0.5的采样点122个,其中滤波后预测误差减小的106个,占87%,平均预测误差减小0.33 pix;角速率滤波后星点预测误差峰值减小1 pix。这表明:卡尔曼滤波在角速率计算误差较大时有较好的修正作用,特别是对误差尖峰有很好的平滑作用。

4 结束语

本文提出了一种仅基于星敏感器坐标系中星矢量坐标计算角速率并实现星跟踪的算法。该算法基于姿态和角速率相对采样周期缓变的假设,不依赖于姿态信息、星表或陀螺的角速率信息等外部信息,仅利用星点信息及星敏感器内部参数就能实现星跟踪。与其它不依赖于姿态信息的星跟踪算法相比,其优点是模型简单、实现易、计算量小。实验验证在星敏感器角速率为0.6 (°)/s时,平均跟踪精度0.55 pix,证明了其有效性。该算法可作为现有星跟踪算法的有效补充,当星敏感器姿态无效时仍可进行星点预测,实现星跟踪,并能利用最后一帧有效姿态与角速率估值进行姿态递推,为下一次姿态捕获成功提供有利条件。由于不同角速率时的角速率估计误差各异,在角速率卡尔曼滤波中可根据不同的角速率水平调整噪声估计方差,进行自适应卡尔曼滤波,进一步提高角速率估计精度,从而提高星跟踪精度。

[1] 李葆华, 陈希军, 郑循江, 等. 星敏感器高动态下自主星跟踪算法[J]. 红外与激光工程, 2012, 41(1): 191-195.

[2] 王常虹, 吴志华, 李葆华. 一种大角加速度下的星跟踪算法[J]. 中国惯性技术学报, 2010, 18(6): 707-709.[3] 蒋明, 来逢昌, 叶以正, 等. 适用于星敏感器的星跟踪算法研究[J]. 电子器件, 2009, 32(2): 426-428.

[4] 江洁, 张广军, 李霄, 等. 一种快速的星敏感器星跟踪方法研究[J]. 航空学报, 2006, 27(5): 914-916.

[5] 管宇, 张迎春, 王常虹. 一种适用于星敏感器的大角速度下的星跟踪算法[J]. 中国惯性技术学报, 2012, 20(4): 441-448.

[6] 胡雄超, 吴永康, 闫晓军, 等. 一种星敏感器标片误差修正方法研究[J]. 上海航天, 2016, 33(6): 88-92.

[7] 余路伟, 毛晓楠, 金尚, 等. 星敏感器抗杂光图像处理方法[J]. 上海航天, 2016, 33(4): 26-31.

[8] LIEBE C C. Accuracy performance of star trackers——a tutorial[J]. IEEE Transactions on Aerospace and Electronic System, 2002, 38(2): 587-599.

[9] 何家雄. 高精度全天时星敏感器关键技术研究[D]. 北京: 中国科学院研究生院, 2013.

[10] 金雁, 江洁, 张广军. 高动态星跟踪方法[J]. 红外与激光工程, 2013, 42(1): 213-217.

[11] 刘海波. 基于星敏感器的无陀螺角速率测量新方法研究[D]. 长沙: 国防科学技术大学, 2013.

[12] SHUSTER M D. Maximum likelihood estimation of spacecraft attitude[J]. Journal of the Astronautical Sciences, 189, 37(1): 79-88.

[13] 秦永元, 张洪钺, 汪叔华. 卡尔曼滤波与组合导航原理[M]. 西安: 西北工业大学出版社, 2012.

[14] LIEBE C C. Accuracy performance of star trackers[J]. IEEE Transactions on Aerospace and Electronic Systems, 2002, 38(2): 587-599.

Research on Star Tracking Algorithm Based on Star Vector Difference

JIN He1, 2, MAO Xiao-nan1, 2, SUN Shao-yong1, 2, LIU Lu1, 2, HU Xiong-chao1, 2

(1. Infrared Detection Technology Research & Development Center, China Aerospace Science and Technology Corporation, Shanghai 201109, China;2. Shanghai Institute of Spaceflight Control Technology, Shanghai 201109, China)

According to the disadvantages of conventional algorithm which were dependent of outside information of attitude and complex model, an inner star prediction algorithm based on the relationship between star vector and angular rate was put forward considering the working condition of satellite platform in this paper. Firstly, angular rate was estimated according to the difference between current and last star vector based on the principle of least squares. Secondly, Kalman filtering was used to reduce the error of angular rate estimation in next sample period. Then, the filtered angular rate was applied to predict next star vectors which would be transformed to star positions. At last, center of sub window was applied for star extraction. The influence of the error of angular velocity estimation, truncation error, random error of star point imaging and star numbers for attitude determination on the accuracy of the algorithm was discussed. This method would make prediction in independent of attitude with simple model and was easy to be implemented. The real sky test had validated that this method had average tracking accuracy of 0.55 pixel at angular rate of 0.6 (°)/s.

star tracking; star vector difference; angular rate estimation; star point prediction; least squares; Kalman filter; truncation error; star point imaging error

1006-1630(2017)02-0099-07

2016-11-10;

2017-01-22

国家重大科技专项工程(GFZX0401300206)

金 荷(1992—),女,硕士,主要从事星敏感器误差抑制研究。

V448

A

10.19328/j.cnki.1006-1630.2017.02.010

猜你喜欢

星点卡尔曼滤波矢量
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
一种适用于高轨空间的GNSS矢量跟踪方案设计
矢量三角形法的应用
脉冲星方位误差估计的两步卡尔曼滤波算法
高动态条件下星点像斑建模与补偿*
一种强散射杂光下的快速星点提取算法
基于卷积曲面的动态实时星图模拟
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
推力矢量对舰载机安全起降的意义
卡尔曼滤波算法研究