法律状态公告日
法律状态信息
法律状态
2017-07-14
专利权的转移 IPC(主分类):G01C25/00 登记生效日:20170627 变更前: 变更后: 申请日:20130628
专利申请权、专利权的转移
2015-11-18
授权
授权
2013-10-30
实质审查的生效 IPC(主分类):G01C25/00 申请日:20130628
实质审查的生效
2013-09-25
公开
公开
技术领域
本发明涉及一种卫星姿态确定方法,具体涉及一种基于星敏的地平仪系统误差在线补偿的方法。
背景技术
地平仪和星敏(卫星敏感器)都是卫星常用的姿态敏感器件,地平仪姿态解算精度低,但原理简单,飞行经历长,使用可靠;星敏姿态解算较为复杂,解算姿态还需要轨道信息,抗杂光干扰能力不强,对卫星角速度也有一定要求,但其测量精度高,还能出三轴姿态信息,所以近年来已经普遍成为卫星稳态时的姿态基准。
地平仪的姿态以地球大气辐射层的形状为参照,因此引入了两大模型误差:地球扁率和大气辐射带。这两项误差不作修正带来的地平仪测量误差最大会超过2度。必须修正。地球扁率模型是固定的,能够在轨实时修正。但大气辐射带模型是变化的,目前没有准确的可信的模型,所以不能在星载软件中直接用数学模型加入大气辐射带误差修正项。没有准确的数学模型,可以用实测的统计模型。基于模型误差是每轨周期变化的特点,自然的想法是根据实测的标准姿态和地平仪姿态的差值来得到一个修正插值表,以此来对地平仪姿态根据轨道幅角来补偿。
传统的利用星敏修正地平仪系统误差的方式是,将轨道平均离散成若干个点,形成一个修正插值表,每个点对应修正插值表的一个元素。在计算当前点修正值时,取当时刻的插值表前后数据,利用插值的方式计算当前修正值。修正插值表是地面数据处理后得到,通过上注方式赋值给修正表的各个元素。
传统地平仪系统误差补偿方式原理简单,算法实现也比较容易,经历过若干次在轨考核验证,但是也存在一些比较致命的弱点:
大气辐射带并不是一成不变的,是随时间缓慢变化的,所以,地面上注的插值表的时效性是有限的,补偿精度较低,而且往往每个月都需要重新上注,如果对精度要求高,则上注频率更高,耗费大量人力物力资源。
发明内容
本发明提供一种基于星敏的地平仪系统误差在线补偿的方法,以星敏姿态为基准,实时自主计算出红外地平仪的系统误差并进行补偿,减轻了地面上注修正表的压力,提高红外地平仪及其相关姿态基准的定姿精度。
为实现上述目的,本发明提供一种基于星敏的地平仪系统误差在线补偿的方法,其特点是,该方法包含以下步骤:
步骤1、判断星敏和地平仪是否均可用,若是,则跳转到步骤2,若否,则跳转到步骤9,本节拍地平仪补偿表更新程序;
步骤2、计算轨道钟OrbitT与轨道上修正点之间的间隔时间L的比值K,求出其整数部分及小数部分:
K= OrbitT / L(K为整数); (1)
K_整= K的整数部分;
K_小= K的小数部分;
步骤3、判断是否0≦K_整≦N,且K_小等于0,若是,则跳转到步骤4,若否,则跳转到步骤9;
步骤4、将地平仪滚动姿态及俯仰姿态与相应的星敏姿态做差,作为修正量;
gd_in = gd_in - xm_gd; (2)
fy_in = fy_in - xm_fy; (3)
其中,xm_gd为星敏当前节拍解算的滚动姿态,是地平仪姿态补偿的基准;xm_fy为星敏当前节拍解算的俯仰姿态,是地平仪姿态补偿的基准;
gd_in为偿后的地平仪滚动姿态与星敏滚动姿态之差,只有当K_小等于0时才会更新;fy_in为偿后的地平仪俯仰姿态与星敏俯仰姿态之差,只有当K_小等于0时才会更新;
步骤5、利用地平仪滚动姿态修正量gd_in及俯仰姿态修正量fy_in,将其与原来补偿表中的数据加权求和,得到新的补偿表数据:
Block_gd[K_整]=Block_gd[K_整]+ k_gd*(gd_in); (4)
Block_fy[K_整]=Block_fy[K_整]+ k_fy*(fy_in); (5)
式(4)中,k_gd为滚动地平仪补偿表补偿系数,0<=k_gd<=1,可由地面上注更改;
式(5)中,k_fy为俯仰地平仪补偿表补偿系数,0<=k_fy<=1,可由地面上注更改;
Block_gd[K_整]为滚动补偿值,滚动地平仪系统误差补偿表第K_整个元素,只有当K_小=0时才会更新;
Block_fy[K_整]为俯仰补偿值,俯仰地平仪系统误差补偿表第K_整个元素,只有当K_小=0时才会更新;
步骤6、将Block_gd与Block_fy限幅;
步骤7、判断是否K_整等于N,且K_小等于0,若是,则跳转到步骤8,若否,则跳转到步骤9;
步骤8、将第N个滚动及俯仰补偿值数据赋值给第N+1和N+2个表格元素;
Block_gd[N+1]=Block_gd[N];
Block_fy[N+1]=Block_fy[[N];
Block_gd[N+2]=Block_gd[N];
Block_fy[N+2]=Block_fy[[N];
其中,Block_gd[[N+1]为第N+1个滚动补偿值,Block_gd[N]为第N个滚动补偿值,Block_gd[[N+2]为第N+2个滚动补偿值;Block_fy[[N+1]为第N+1个俯仰补偿值,Block_fy[N]为第N个俯仰补偿值,Block_fy[[N+2]为第N+2个俯仰补偿值;
步骤9、通过插值算法,根据当前轨道钟,计算本节拍地平仪滚动姿态修正值GD_BC和本节拍地平仪俯仰姿态修正值FY_BC;
GD_BC=(L- K_小)* Block_gd[K_整] + K_小* Block_gd[K_整+1];
FY_BC=(L - K_小)* Block_fy[K_整] + K_小* Block_fy[K_整+1];
其中,GD_BC为经查表并线性插值计算出的滚动补偿值;FY_BC为经查表并线性插值计算出的俯仰补偿值;
步骤10、利用地平仪原始解算滚动姿态DPY_Gd和地平仪原始解算俯仰姿态DPY_FY以及修正值GD_BC和FY_BC,计算当前节拍地平仪解算滚动姿态gd和地平仪解算俯仰姿态fy:
gd=DPY_Gd-GD_BC;
fy=DPY_FY-FY_BC;
其中,gd为补偿后的地平仪滚动姿态,每个节拍均会计算;fy为补偿后的地平仪俯仰姿态,每个节拍均会计算。
本发明一种基于星敏的地平仪系统误差在线补偿的方法和现有技术中利用星敏修正地平仪系统误差的方式相比,其优点在于,本发明实现修正插值表的自主更新,大大减轻了地面上注修正表的压力,此外,由于修正表自主更新,具有非常强的时效性,再结合加权求和部分更新方法,所以其修正精度相比传统方式也大幅提高。
附图说明
图1为本发明一种基于星敏的地平仪系统误差在线补偿的方法实施例一的流程图;
图2为本发明一种基于星敏的地平仪系统误差在线补偿的方法实施例二的流程图。
具体实施方式
以下结合附图,进一步说明本发明的具体实施例。
本发明公开了一种基于星敏的地平仪系统误差在线补偿的方法,该方法中在决定是否该进行补偿表更新时,判断轨道幅角是否处于某个范围,由于轨道幅角是小数,不利于星上算法实现,为此引入轨道钟(OrbitT)概念,即将轨道幅角以星上计数的方式来替代,星上以某个点(经常定为升交点或降交点)为起点,以控制系统一个节拍时间t长度为单位进行累加积分,待积分到刚好一个轨道周期左右,积分清零,重新开始累加,保证轨道钟与轨道幅角的一致性。
以下通过两个实施例具体说明,实施例中先定义以下参数:
卫星轨道周期T,根据地球卫星轨道高度不同,其取值范围一般为5000s到50000s之间,属于已知输入量。
轨道周期变化范围△T随时间漂移,卫星轨道周期会小幅波动,其取值范围一般为不大于50s,属于已知输入量。
系统运行每个节拍的节拍周期t一般为可以被1整除的数,属于已知输入量。
轨道钟(OrbitT)将轨道幅角以星上计数的方式来替代,星上以某个点(经常定为升交点或降交点)为起点,以控制系统一个节拍周期t为单位进行累加积分,待积分到刚好一个轨道周期左右,积分清零,重新开始累加,保证轨道钟OrbitT与轨道幅角的一致性。所以,轨道钟OrbitT总是t的整数倍,其最大值约等于轨道周期T。
轨道上修正点个数N,为了尽量提高地平仪系统误差补偿精度,也不至于过渡占用星上计算资源,一般N取50到100之间的某个整数,属于待设计参数,为定值。
轨道上修正点之间的间隔时间L,它需要满足以下约束条件:第一,为适用于星上使用,L必须为节拍周期t的整数倍;第二,L小于T/N,大于T/(N+1);属于待设计参数,为定值。
轨道上修正点备份点个数△N,地平仪系统误差补偿采用查表并插值计算的方法,而N*L<T,为了覆盖轨道上所有的点,△N至少大于1,考虑到轨道周期变化范围△T的影响,△N可能更大,但不超过2,为了提高裕度,令△N=2。
如图1所示,本发明一种基于星敏的地平仪系统误差在线补偿的方法的实施例一。
该方法包含以下步骤:
步骤1、判断星敏和地平仪是否均可用,若是,则跳转到步骤2,若否,则跳转到步骤9,本节拍地平仪补偿表更新程序。
步骤2、计算轨道钟(OrbitT)与L的比值K,求出其整数部分及小数部分:
K= OrbitT /L(K为整数); (1)
K_整= K的整数部分;
K_小= K的小数部分。
步骤3、判断是否0≦K_整≦N,且K_小等于0,若是,则跳转到步骤4,若否,则跳转到步骤9。
步骤4、将地平仪滚动姿态及俯仰姿态与相应的星敏姿态做差,作为修正量备用,地平仪滚动姿态与星敏滚动姿态的差为gd_in,地平仪俯仰姿态与星敏俯仰姿态的差为fy_in。
gd_in = gd_in - xm_gd; (2)
fy_in = fy_in - xm_fy。 (3)
其中,xm_gd为星敏当前节拍解算的滚动姿态,是地平仪姿态补偿的基准;xm_fy为星敏当前节拍解算的俯仰姿态,是地平仪姿态补偿的基准。
gd_in为偿后的地平仪滚动姿态与星敏滚动姿态之差,只有当K_小=0时才会更新;fy_in为偿后的地平仪俯仰姿态与星敏俯仰姿态之差,只有当K_小=0时才会更新。
步骤5、利用步骤4计算出的地平仪滚动姿态修正量及俯仰姿态修正量,将其与原来补偿表中的数据加权求和,得到新的补偿表数据。
Block_gd[K_整]=Block_gd[K_整]+ k_gd*(gd_in); (4)
Block_fy[K_整]=Block_fy[K_整]+ k_fy*(fy_in); (5)
式(4)中,k_gd为滚动地平仪补偿表补偿系数,0<=k_gd<=1,可由地面上注更改;式(5)中k_fy为俯仰地平仪补偿表补偿系数,0<=k_fy<=1,可由地面上注更改。
Block_gd[K_整]为滚动补偿值,滚动地平仪系统误差补偿表第K_整个元素,只有当K_小=0时才会更新;Block_fy[K_整]为俯仰补偿值,俯仰地平仪系统误差补偿表第K_整个元素,只有当K_小=0时才会更新。
步骤6、从安全性考虑,将Block_gd与Block_fy限幅。
步骤7、判断是否K_整等于N,且K_小等于0,若是,则跳转到步骤8,若否,则跳转到步骤9。
步骤8、将第N个滚动补偿值数据赋值给第N+1个表格元素和第N+2个表格元素,将第N个俯仰补偿值数据赋值给第N+1个表格元素和第N+2个表格元素。
Block_gd[N+1]=Block_gd[N];
Block_fy[N+1]=Block_fy[[N];
Block_gd[N+2]=Block_gd[N];
Block_fy[N+2]=Block_fy[[N];
其中,Block_gd[[N+1]为第N+1个滚动补偿值,Block_gd[N]为第N个滚动补偿值,Block_fy[[N+1]为第N+1个俯仰补偿值,Block_fy[N]为第N个俯仰补偿值;
Block_gd[[N+2]为第N+2个滚动补偿值,Block_gd[N]为第N个滚动补偿值,Block_fy[[N+2]为第N+2个俯仰补偿值,Block_fy[N]为第N个俯仰补偿值。
步骤9、通过插值算法,根据当前轨道钟,计算本节拍地平仪滚动姿态修正值GD_BC和本节拍地平仪俯仰姿态修正值FY_BC。
GD_BC=(L- K_小)* Block_gd[K_整] + K_小* Block_gd[K_整+1];
FY_BC=(L - K_小)* Block_fy[K_整] + K_小* Block_fy[K_整+1];
其中,GD_BC为经查表并线性插值计算出的滚动补偿值,每个节拍均会计算;FY_BC为经查表并线性插值计算出的俯仰补偿值,每个节拍均会计算。
步骤10、利用地平仪原始解算滚动姿态DPY_Gd和地平仪原始解算俯仰姿态DPY_FY以及步骤9计算的修正值GD_BC和FY_BC,计算当前节拍地平仪解算滚动姿态gd和地平仪解算俯仰姿态fy:
gd=DPY_Gd-GD_BC;
fy=DPY_FY-FY_BC。
其中,gd为补偿后的地平仪滚动姿态,每个节拍均会计算;fy为补偿后的地平仪俯仰姿态,每个节拍均会计算。
DPY_Gd为补偿前的地平仪滚动姿态,DPY_FY为补偿前的地平仪俯仰姿态,由于其解算方式不唯一,也不是本发明的重点,本文没有给出具体算法。
完成当前节拍地平仪解算滚动姿态gd和地平仪解算俯仰姿态fy的计算后退出。
如图2所示,为本发明一种基于星敏的地平仪系统误差在线补偿的方法的实施例二。
该实施例二中,某卫星的卫星轨道周期T设定为5813秒(s),选降交点为轨道钟的起点,星上每个节拍周期t为0.2秒,故星上每个节拍轨道钟(OrbitT)累加0.2秒(s),直至轨道钟累加至5813秒(s)时重新回到降交点,轨道钟清零,轨道钟是0.2的整数倍。
轨道钟为5813秒(s),轨道上修正点之间的间隔时间L取每84秒(s)选取一个点,轨道上修正点个数N共需要69个修正点才能将整个轨道周期覆盖,为了增加软件可靠性,令△N=2,所以本修正表格共有71个点,其中,前69个点均能在线更新,但第70和71个点已经大于轨道周期,为了保证修正的完整性,采取将第69个点直接赋值给第70和71个点的方案。
该方法包含以下步骤:
步骤1、判断星敏和地平仪是否均可用,若是,则跳转到步骤2,若否,则跳转到步骤9,本节拍地平仪补偿表更新程序。
步骤2、计算轨道钟(OrbitT)与84的比值K,求出其整数部分及小数部分:
K= OrbitT /84(K为整数); (6)
K_整= K的整数部分;
K_小= K的小数部分。
步骤3、判断是否0≦K_整≦N,且K_小等于0,若是,则跳转到步骤4,若否,则跳转到步骤9,本节拍地平仪补偿表更新程序。
步骤4、将地平仪滚动姿态gd_in及俯仰姿态fy_in与相应的星敏姿态做差,作为修正量备用,地平仪滚动姿态与星敏滚动姿态的差为gd_in,地平仪俯仰姿态与星敏俯仰姿态的差为fy_in。
gd_in = gd_in - xm_gd; (7)
fy_in = fy_in - xm_fy。 (8)
其中, xm_gd为星敏当前节拍解算的滚动姿态,是地平仪姿态补偿的基准;xm_fy为星敏当前节拍解算的俯仰姿态,是地平仪姿态补偿的基准。
gd_in为偿后的地平仪滚动姿态与星敏滚动姿态之差,只有当K_小=0时才会更新;fy_in为偿后的地平仪俯仰姿态与星敏俯仰姿态之差,只有当K_小=0时才会更新。
步骤5、利用步骤4计算出的地平仪滚动姿态修正量及俯仰姿态修正量,将其与原来补偿表中的数据加权求和,得到新的补偿表数据。
Block_gd[K_整]=Block_gd[K_整]+a*(gd_in); (9)
Block_fy[K_整]=Block_fy[K_整]+a*(fy_in); (10)
其中:a为加权系数,加权系数a可由地面注数修改;式(9)中加权系数a为k_gd,k_gd为滚动地平仪补偿表补偿系数,0<=k_gd<=1,可由地面上注更改;式(10)中加权系数a为k_fy,k_fy为俯仰地平仪补偿表补偿系数,0<=k_fy<=1,可由地面上注更改。
Block_gd[K_整]为滚动补偿值,滚动地平仪系统误差补偿表第K_整个元素,只有当K_小=0时才会更新;Block_fy[K_整]为俯仰补偿值,俯仰地平仪系统误差补偿表第K_整个元素,只有当K_小=0时才会更新。
步骤6、从安全性考虑,将Block_gd与Block_fy限幅,本实施例中设定限幅3度。
步骤7、判断当前K_整是否等于69,且K_小是否等于0,若是,则跳转到步骤8,若否,则跳转到步骤9,本节拍直接地平仪补偿表更新程序。
步骤8、将第69个滚动补偿值数据赋值给第70个表格元素和第71个表格元素,将第69个俯仰补偿值数据赋值给第70个表格元素和第71个表格元素。
Block_gd[70]=Block_gd[69];
Block_fy[70]=Block_fy[69];
Block_gd[71]=Block_gd[69];
Block_fy[71]=Block_fy[69];
其中,Block_gd[70]为第70个滚动补偿值,Block_gd[69]为第69个滚动补偿值,Block_fy[70]为第70个俯仰补偿值,Block_fy[69]为第69个俯仰补偿值,Block_gd[71] 为第71个滚动补偿值,Block_fy[71]为第71个俯仰补偿值。
步骤9、通过插值算法,根据当前轨道钟,计算本节拍地平仪滚动姿态修正值GD_BC和本节拍地平仪俯仰姿态修正值FY_BC。
GD_BC=(84- K_小)* Block_gd[K_整] + K_小* Block_gd[K_整+1];
FY_BC=(84- K_小)* Block_fy[K_整] + K_小* Block_fy[K_整+1];
其中,GD_BC为经查表并线性插值计算出的滚动补偿值,每个节拍均会计算;FY_BC为经查表并线性插值计算出的俯仰补偿值,每个节拍均会计算,84为轨道上修正点之间的间隔时间L。
步骤10、利用地平仪原始解算滚动姿态DPY_Gd和地平仪原始解算俯仰姿态DPY_FY以及步骤9计算的修正值GD_BC和FY_BC,计算当前节拍地平仪解算滚动姿态gd和地平仪解算俯仰姿态fy。
gd=DPY_Gd-GD_BC;
fy=DPY_FY-FY_BC。
其中,gd为补偿后的地平仪滚动姿态,每个节拍均会计算;fy为补偿后的地平仪俯仰姿态,每个节拍均会计算。
DPY_Gd为补偿前的地平仪滚动姿态,DPY_FY为补偿前的地平仪俯仰姿态,由于其解算方式不唯一,也不是本发明的重点,本文没有给出具体算法。
完成当前节拍地平仪解算滚动姿态gd和地平仪解算俯仰姿态fy的计算后退出。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
机译: 基于相敏折光仪的光纤分布振动传感器及其灵敏度改善方法
机译: 基于相敏光时域反射仪的在线交通流量监控系统及方法
机译: 基于相敏光时域反射仪的在线交通流量监控系统及方法