本发明涉及一种星敏感器星跟踪方法,尤其涉及一种基于恒星矢量差分的星敏感器星跟踪方法。
背景技术:
星敏感器是当前精度最高的姿态敏感器,在卫星姿态确定中被广泛运用。在全天捕获成功后,星敏感器主要工作在星跟踪模式。星跟踪方法中首先进行星点预测,以预测的星点位置为中心形成一定大小的波门,图像处理软件在该波门中提取星点位置信息,显著减小了图像处理的时间,提高了方法效率。当星点预测误差大时,波门必须相应增大,一方面增加了计算量,另一方面由于波门内包含虚假目标的概率增大,星点提取方法误识别的可能性也增大,所以提高星点预测精度十分重要。
星点预测方法分为两类,一类是利用外部信息的星点预测方法,包括姿态信息,星图信息,这类方法的研究已经比较充分。主流方法是利用当前帧和前一帧的瞬时姿态预测下一帧的姿态,根据预测的姿态和星表信息计算出下一帧的星点信息。有些方法还使用了陀螺输出的角加速度积分推算下一时刻的星敏姿态信息,再利用该姿态信息和星表信息计算出下一帧的星点信息。此方法除了姿态信息外还依赖陀螺的角加速度信息。第二类方法不依赖外部信息进行星点预测,此类方法的研究较少,主要是星点运动轨迹建模。这类方法专注于对星点轨迹的建模,在自主星跟踪的同时滤除星点成像瞬时噪声。该方法存在两个不足之处:第一,在对星点轨迹的建模中需要星点机动频率和随机加速度方差等难以得到的先验信息,事实上在探测器不同位置,星轨迹的形态并不相同,星点加速度并不一样,这在在大视场星敏感器和多头星敏感器中尤为明显,所以难以对所有的星轨迹精确建模;第二,对于每一颗恒星在探测器上的轨迹要在x方向和y方向分别建立三维运动模型,在该模型的基础上进行星点预测和滤波,实际运用中平均每帧星图要利用15颗星点进行定姿,所以要对15条星轨迹模型分别进行递推和滤波,计算量大。
技术实现要素:
本发明提供一种星敏感器星跟踪方法,不依赖姿态信息,只需要对每一帧的星点的星矢量进行整体建模,由星矢量及星敏感器参数得到星点预测值,模型简单,计算量小,易于实现。
为了达到上述目的,本发明提供一种星敏感器星跟踪方法,包含以下步骤:
步骤S1、角速率估计;
步骤S2、角速率滤波;
步骤S3、星矢量预测;
步骤S4、星矢量转化为星点;
步骤S5、在以预测星点为中心的波门中提取星点。
所述的步骤S1具体包含以下步骤:
由当前时刻k提取的n颗跟踪恒星的星点信息计算得到n个帧的星矢量:
其中,(xi(k),yi(k))为k时刻第i颗星在星敏探测器上的成像点坐标,(x0,y0)为星敏感器主点坐标,f为星敏感器焦距;
根据当前帧和上一帧的星矢量计算角速率估计值
其中,
所述的步骤S2具体包含以下步骤:
将角速率估计值作为当前角速率测量值Z(k)输入卡尔曼滤波器,得到角速率滤波值ω(k);
步骤S2.1、计算角速率测量值:
步骤S2.2、根据上一帧的角速率估计值进行地面标定,得到角速率与测量误差的关系,从而计算得到测量误差方差σ;;
步骤S2.3、计算测量噪声的方差R(k):
其中,
步骤S2.4、计算系统转移误差:
P(k|k-1)=P(k-1)+Q (8)
步骤S2.5、计算卡尔曼滤波器的增益:
Kg(k)=P(k|k-1)/(P(k|k-1)+R(k)) (9)
步骤S2.6、计算角速率滤波值ω(k):
ω(k)=ω(k-1)+Kg(k)(Z(k)-ω(k-1)) (10)
步骤S2.7、计算协方差阵的更新值P(k):
P(k)=(I-Kg(k))P(k|k-1) (11)。
所述的步骤S2中,卡尔曼滤波器的状态方程为:
ω(k|k-1)=ω(k-1)+u(k) (4)
其中,u(k)是状态转移噪声;
卡尔曼滤波器的状态转移方程为:
Z(k)=ω(k)+v(k) (5)
其中,v(k)是测量噪声;
卡尔曼滤波器的初始状态为:角速率ω(0)=[0;0;0],初始协方差阵P(0)=I3*3,测量噪声方差初始值R(0)=I3*3,状态转移噪声的方差Q=0.001I3×3。
所述的步骤S3包含以下步骤:
根据角速率滤波值ω(k)以及当前帧的星矢量计算下一帧星矢量的预测值:
si(k+1)=Δt*[si(k)×]ω(k)+si(k) (12)。
所述的步骤S4包含以下步骤:
根据星矢量预测值和星敏感器内方位元素(f,x0,y0)计算下一帧的星点位置:
s=si(k+1)
xi(k+1)=-f·s(1)/s(3)+x0 (13)。
yi(k+1)=-f·s(2)/s(3)+y0
本发明可直接基于恒星矢量差分计算角速率,进行恒星矢量递推,进而实现星跟踪,有别于已有的基于四元数差分计算角速率和递推并且利用导航星表的星跟踪方法,可作为现有星跟踪方法的有效补充。
附图说明
图1是本发明提供的一种星敏感器星跟踪方法的流程图。
具体实施方式
以下根据图1具体说明本发明的较佳实施例。
如图1所示,本发明提供一种星敏感器星跟踪方法,包含以下步骤:
步骤S1、角速率估计;
由当前时刻k提取的n颗跟踪恒星的星点信息计算得到n个帧的星矢量:
其中,(xi(k),yi(k))为k时刻第i颗星在星敏探测器上的成像点坐标,(x0,y0)为星敏感器主点坐标,f为星敏感器焦距;
根据当前帧和上一帧的星矢量计算角速率估计值
其中,
步骤S2、角速率滤波;
将角速率估计值作为当前角速率测量值Z(k)输入卡尔曼滤波器,得到角速率滤波值ω(k);
卡尔曼滤波器的状态方程为:
ω(k|k-1)=ω(k-1)+u(k) (4)
其中,u(k)是状态转移噪声;
卡尔曼滤波器的状态转移方程为:
Z(k)=ω(k)+v(k) (5)
其中,v(k)是测量噪声;
卡尔曼滤波器的初始状态为:角速率ω(0)=[0;0;0],初始协方差阵P(0)=I3*3,测量噪声方差初始值R(0)=I3*3,状态转移噪声的方差Q=0.001I3×3;
步骤S2.1、计算角速率测量值:
步骤S2.2、根据上一帧的角速率估计值进行地面标定,得到角速率与测量误差的关系,从而计算得到测量误差方差σ;
步骤S2.3、计算测量噪声的方差R(k):
其中,
步骤S2.4、计算系统转移误差:
P(k|k-1)=P(k-1)+Q (8)
步骤S2.5、计算卡尔曼滤波器的增益:
Kg(k)=P(k|k-1)/(P(k|k-1)+R(k)) (9)
步骤S2.6、计算角速率滤波值ω(k):
ω(k)=ω(k-1)+Kg(k)(Z(k)-ω(k-1)) (10)
步骤S2.7、计算协方差阵的更新值P(k):
P(k)=(I-Kg(k))P(k|k-1) (11)
步骤S3、星矢量预测;
根据角速率滤波值ω(k)以及当前帧的星矢量计算下一帧星矢量的预测值:
si(k+1)=Δt*[si(k)×]ω(k)+si(k) (12)
步骤S4、星矢量转化为星点;
根据星矢量预测值和星敏感器内方位元素(f,x0,y0)计算下一帧的星点位置(即为星点预测值):
s=si(k+1)
xi(k+1)=-f·s(1)/s(3)+x0 (13)
yi(k+1)=-f·s(2)/s(3)+y0
步骤S5、在以预测星点为中心的波门中提取星点。
本发明不依赖姿态信息,只需要对每一帧的星点的星矢量进行整体建模,由星矢量及星敏感器参数得到星点预测值,模型简单,计算量小,易于实现,可直接基于恒星矢量差分计算角速率,进行恒星矢量递推,进而实现星跟踪,有别于已有的基于四元数差分计算角速率和递推并且利用导航星表的星跟踪方法,可作为现有星跟踪方法的有效补充。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。