掌桥专利:专业的专利平台
掌桥专利
首页

卫星姿控软件防护方法、装置、设备及存储介质

文献发布时间:2023-06-19 09:43:16


卫星姿控软件防护方法、装置、设备及存储介质

技术领域

本发明实施例涉及计算机技术领域,尤其涉及卫星姿控软件防护方法、装置、设备及存储介质。

背景技术

姿态控制系统是保障卫星运行的关键分系统,在轨期间可能受宇宙射线影响,产生单粒子翻转或单粒子锁定等情况,导致大瞬态电流和数据异常等问题,可能危及计算机乃至整星安全。目前,单粒子锁定一般通过限流电路进行防护,对于单粒子翻转,传统上除提升元器件抗辐照等级、多机热备比对外,一般还通过软件方法进行防护,如软件看门狗、软件陷阱或超时挂起等。

然而,现有技术中,针对单粒子的防护方案大多仅针对通用的星载软件或简单的星务软件,并不存在针对姿控软件的防护方案。因此,亟需提供一种针对卫星姿控软件的软件防护方法,以减少姿控软件的运行受到单粒子翻转等影响,进而保证卫星姿态得到准确控制。

发明内容

本发明实施例提供了卫星姿控软件防护方法、装置、设备及存储介质,可以优化现有的卫星姿控软件防护方案。

第一方面,本发明实施例提供了一种卫星姿控软件防护方法,包括:

确定卫星姿控软件中的目标函数;

在相同输入条件下执行预设次数的所述目标函数,得到预设个数的输出结果,其中,所述预设个数与所述预设次数相等;

基于预设表决方式针对所述预设个数的输出结果进行表决,得到所述目标函数对应的最终输出结果。

第二方面,本发明实施例提供了一种卫星姿控软件防护装置,包括:

目标函数确定模块,用于确定卫星姿控软件中的目标函数;

函数执行模块,用于在相同输入条件下执行预设次数的所述目标函数,得到预设个数的输出结果,其中,所述预设个数与所述预设次数相等;

输出结果表决模块,用于基于预设表决方式针对所述预设个数的输出结果进行表决,得到所述目标函数对应的最终输出结果。

第三方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例提供的卫星姿控软件防护方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的卫星姿控软件防护方法。

本发明实施例中提供的卫星姿控软件防护方案,确定卫星姿控软件中的目标函数发,在相同输入条件下执行预设次数的目标函数,得到预设个数的输出结果,基于预设表决方式针对所述预设个数的输出结果进行表决,得到目标函数对应的最终输出结果。通过采用上述技术方案,针对卫星姿控软件选择合适的目标函数,针对目标函数在相同输入条件下进行多次执行,并根据多次执行的输出结果进行表决纠错,可以有效减少因函数中间变量和实时更新数据受到单粒子翻转影响进而导致函数最终的输出结果出现错误的情况发生,保证卫星姿态得到准确控制,保证卫星在轨安全。

附图说明

图1为本发明实施例提供的一种卫星姿控软件防护方法的流程示意图;

图2为本发明实施例提供的又一种卫星姿控软件防护方法的流程示意图;

图3为本发明实施例提供的一种卫星姿控软件防护装置的结构框图;

图4为本发明实施例提供的一种计算机设备的结构框图。

具体实施方式

下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

图1为本发明实施例提供的一种卫星姿控软件防护方法的流程示意图,该方法可以由卫星姿控软件防护装置执行,其中该装置可由软件和/或硬件实现,一般可集成在计算机设备中,具体可以是星载计算机设备。如图1所示,该方法包括:

步骤101、确定卫星姿控软件中的目标函数。

示例性的,目标函数可以包括卫星姿控软件中所有函数或部分函数。本发明实施例中,针对目标函数在相同输入条件下进行多次执行,并根据多次执行的输出结果进行表决纠错,得到最终的输出结果,最终的输出结果因为经过表决纠错,所以即使函数中间变量或实时更新数据受到单粒子翻转影响而导致数据发生错误,也能够在一定程度上通过上述表决纠错来消除影响,相比于一般的仅针对关键数据进行三取二等保护来说,充分考虑了函数中间变量和实时更新数据的异常问题,并进行纠错,可剔除函数中间变量和实时更新数据异常可能造成的影响。基于该函数输出结果纠错思想,当将卫星姿控软件中所有函数均确定为目标函数的情况下,可以达到非常高的防护能力,但是鉴于卫星姿控软件中的函数较多,且可能存在函数循环嵌套的情况,计算量比较庞大,因此,可以将部分函数确定为目标函数,或将部分函数组合成一个新的函数成为目标函数。目标函数的具体确定方式可根据实际需求设置,本发明实施例不做具体限定。

步骤102、在相同输入条件下执行预设次数的所述目标函数,得到预设个数的输出结果,其中,所述预设个数与所述预设次数相等。

示例性的,相同输入条件可包括输入数据相同,可串行执行预设次数的目标函数,也可并行执行预设次数的目标函数。具体的执行方式不做限定,例如,可以利用内联(inline)方法来多次执行目标函数。

示例性的,预设次数可以综合考虑防护能力和计算量等因素进行确定,如三次、五次或更多奇数次等。

步骤103、基于预设表决方式针对所述预设个数的输出结果进行表决,得到所述目标函数对应的最终输出结果。

示例性的,预设表决方式可以根据预设次数确定,例如,预设次数为三次时,可以采用三取二的表决方式,预设次数为五次时,可以采用五取三的表决方式等等。也就是说,预设个数为第一数量,则基于预设表决方式从第一数量的输出结果中选取出第二数量的输出结果,第二数量小于第一数量。假设第一数量记为2N+1,第二数量可以是N+1,也即可以采用2N+1取N+1的表决方式。另外,在具体的选取出第二数量的输出结果的过程中,还可参考数据一致性或相似程度等因素确定最终选出的输出结果。

示例性的,在基于预设表决方式针对所述预设个数的输出结果进行表决,得到选取出第二数量的输出结果后,还可对选取出第二数量的输出结果进行预设方式的计算,如计算平均值等,得到目标函数对应的最终输出结果。

本发明实施例中提供的卫星姿控软件防护方法,确定卫星姿控软件中的目标函数发,在相同输入条件下执行预设次数的目标函数,得到预设个数的输出结果,基于预设表决方式针对所述预设个数的输出结果进行表决,得到目标函数对应的最终输出结果。通过采用上述技术方案,针对卫星姿控软件选择合适的目标函数,针对目标函数在相同输入条件下进行多次执行,并根据多次执行的输出结果进行表决纠错,可以有效减少因函数中间变量和实时更新数据受到单粒子翻转影响进而导致函数最终的输出结果出现错误的情况发生,保证卫星姿态得到准确控制,保证卫星在轨安全。

在一些实施例中,可均衡防护能力与计算量,将代码划分为姿态确定、控制解算、输出分配三个环节,每个环节均封装为一个原始函数,将封装得到的原始函数确定为本发明实施例中的目标函数,也可以理解为目标函数中可以包含多个子函数,上述三个环节分别对应的原始函数可以形成卫星姿态控制的闭环控制流程。示例性的,所述目标函数包括姿态确定函数、控制解算函数和输出分配函数。

其中,所述姿态确定函数的输入可包括敏感器的采集数据,输出可包括当前卫星姿态。敏感器的具体类型以及所需采集的数据可以根据实际需求进行设置,本发明实施例不做限定。例如,敏感器可包括星敏感器、太阳敏感器、磁强计、陀螺仪以及全球导航卫星系统(Global Navigation Satellite System,GNSS)等。敏感器可以按照预设采集周期或预设频率进行数据采集,姿态确定函数的输入具体可以是本周期、本次或当拍采集到的采集值。当前卫星姿态可以通过不同定姿方法确定,具体细节将在下文中进行介绍。

所述控制解算函数的输入可包括所述姿态确定函数对应的最终当前卫星姿态和目标卫星姿态,输出可包括控制指令。其中,目标卫星姿态可以理解为预期的卫星姿态,控制指令可以理解为将最终当前卫星姿态调整为目标卫星姿态所需输出的控制指令。示例性的,控制指令可包括三轴控制力矩指令。

所述输出分配函数的输入包括所述控制解算函数对应的最终控制指令,输出包括与所述最终控制指令对应的各执行器的动作指令。其中,各执行器可包括如磁力矩器、动量轮和姿控发动机等,具体可以由卫星的实际结构和配置等确定。

在一些实施例中,所述姿态确定函数可用于:根据所述敏感器的采集数据基于至少两种定姿方法确定对应的定姿结果;根据至少两个定姿结果确定当前卫星姿态。这样设置的好处在于,可以更加准确地确定卫星姿态。由于卫星一般配备多种敏感器,因此,在轨时可以存在多种姿态确定方法,不同的姿态确定方法可以依赖于一种或几种敏感器的采集数据。

在一些实施例中,所述根据至少两个定姿结果确定当前卫星姿态,包括:参考数据异常偏离情况、不同定姿方法的可信度、不同定姿方法的精度以及不同定姿方法的历史数据连续性中的至少一项,对至少两个定姿结果进行比对,根据比对结果确定当前卫星姿态。这样设置的好处在于,可以参考具体维度更加灵活准确地确定当前卫星姿态。其中,不同定姿方法的可信度可以基于经验预先设置可信度排序,不同定姿方法的精度可以根据不同定姿方法所采用的敏感器类型或配置情况预先设置精度排序。

示例性的,当定姿方法≥3时,通过不同定姿结果的比对,找出数据无异常偏离(可理解为与大多数定姿结果相近,若某个定姿结果与大多数定姿结果相差较大,则可认为存在异常偏离)、且可信度和精度最高的结果,作为最终定姿结果;当定姿方法=2,且两种方法给出的定姿结果接近,则以较高精度敏感器给出的值作为最终定姿结果;当定姿方法=2,且两种方法给出的结果冲突时,检查其各自历史结果的连续性,优先采用连续稳定无跳变通道的结果。

在一些实施例中,还可包括针对异常输出进行识别和处置的相关步骤。示例性的,还可包括:对所述控制解算函数对应的最终控制指令和/或所述输出分配函数对应的最终动作指令进行预设维度的判定,其中,所述预设维度包括数值范围、数据连续性以及数据变化率中的至少一个;在根据判定结果确定出现数据异常情况时,进行相应的异常处置。这样设置的好处在于,可以及时对异常数据进行处置,避免卫星姿控软件输出异常指令,进而引起整星姿态失控。可选的,可以针对控制解算函数对应的最终控制指令和输出分配函数对应的最终动作指令均进行上述三种预设维度的判定,更加全面地进行异常识别和处置,保障卫星在轨安全。示例性的,在进行针对数值范围、数据连续性以及数据变化率的判定时,如数值超出正常边界、出现剧烈跳变野值或持续饱和输出(尤其使用姿控发动机时),则可认为解算结果异常,也即出现数据异常情况,需要采取处置措施。

在一些实施例中,所述进行相应的异常处置,包括:控制磁力矩器和姿控发动机停止工作,以及控制动量轮维持当前转速策略。这样设置的好处在于,合理控制卫星工作状态,避免错误指令影响卫星正常运行。其中,控制磁力矩器和姿控发动机停止工作具体可以是采取停控策略,即对于执行器为磁力矩器和姿控发动机的情况,执行器输出置为0;对于动量轮控制的情况,默认维持当前转速策略,不输出新的转速指令。可选的,若数据异常情况持续时间达到预设时长阈值时,可控制计算机重启,提高异常被消除的概率。

图2为本发明实施例提供的又一种卫星姿控软件防护方法的流程示意图,该方法以目标函数包括姿态确定函数、控制解算函数和输出分配函数为例进行说明,具体的,该方法可包括如下步骤:

步骤201、获取各敏感器当拍的采集值。

步骤202、在相同输入条件下执行三次姿态确定函数,得到三个姿态确定输出结果,基于三取二方式确定最终当前卫星姿态。

其中,姿态确定函数的输入包括步骤201中的采集值,输出包括当前卫星姿态。具体的,所述姿态确定函数可用于根据各敏感器当拍的采集值基于三种定姿方法确定对应的定姿结果,基于三取二方式确定当前卫星姿态。

示例性的,本发明实施例中,对于姿态确定函数、控制解算函数和输出分配函数中的任意一个函数,可以使用inline方法,构造专用的纠错函数,使得新函数相当于,在相同输入条件下执行三遍原始函数,对三次计算的结果进行三取二比对,作为最终的计算结果。如下文举例:

原始函数

inline void func1(double in1,double in2,double*out1)

纠错函数

void func1_TMR(double in1,double in2,double*out1)

{

double out_1,out2,out3;

Inline func1(in1,in2,*out_1);

func1(in1,in2,*out_1);

func1(in1,in2,*out_2);

func1(in1,in2,*out_3);

out1=TMR(out_1,out_2,out_3);

}

其中,TMR为一种三取二表决函数。

步骤203、在相同输入条件下执行三次控制解算函数,得到三个控制解算输出结果,基于三取二方式确定最终控制指令。

其中,所述控制解算函数的输入包括步骤202中得到的最终当前卫星姿态,还包括目标卫星姿态。

步骤204、基于数值范围、数据连续性以及数据变化率判断最终控制指令对应的数据是否出现异常,若是,则执行步骤208;否则,执行步骤205。

示例性的,如数值超出正常边界、出现剧烈跳变野值或持续饱和输出(尤其使用姿控发动机时),则认为解算结果异常,采取处置措施。

步骤205、在相同输入条件下执行三次输出分配函数,得到三个输出分配输出结果,基于三取二方式确定最终动作指令。

步骤206、基于数值范围、数据连续性以及数据变化率判断最终动作指令对应的数据是否出现异常,若是,则执行步骤208;否则,执行步骤207。

步骤207、将最终动作指令发送至对应的执行器。

步骤208、进行相应的异常处置。

示例性的,对于执行器为磁力矩器和姿控发动机的情况,默认采取停控策略,即执行器输出置为0;对于动量轮控制的情况,默认维持当前转速策略,不输出新的转速指令;持续异常一段时间后,对计算机进行重启。

本发明实施例,针对姿控软件的单粒子防护问题,尤其针对实时更新数据的防护问题,提出了卫星姿控软件的软件防护方法。首先,根据姿控软件特点,将代码划分为姿态确定、控制解算、输出分配三个环节,分别用函数对代码进行封装;其次,提出函数三取二比对方法,通过直接比对函数输出结果,剔除实时更新数据异常可能造成的影响;再者,利用定姿方法的多样性,通过三取二比对,提升了定姿结果的可靠性。就计算复杂度而言,本方法针对姿控软件计算复杂及函数嵌套多的问题,均衡考虑了函数三取二的防护能力与计算量,将代码合理划分为三个环节进行封装和三取二计算,总计算量控制在原有代码的三倍左右,同时各环节封装的函数,输入输出均为关键变量,属于传统受保护的三取二变量范围,可避免有实时更新数据散落在外,导致防护漏洞。同时,具备针对输出结果的独立诊断处置能力,可最大限度保证卫星在轨安全,为保证卫星安全底线,针对控制解算和输出分配环节的独立判断处置方法,可在各类异常被识别、处置完成前,最大程度避免错误指令输出,提升了控制输出的安全性,最大限度保障卫星在轨安全。本发明实施例克服了现有单粒子软件防护方法中缺乏针对姿控软件的防护架构设计,不考虑实时更新数据异常的影响,或一旦异常则直接进行系统复位,难以保证卫星在轨和安全性业务连续性等缺点,能够对姿控软件进行全流程保护,并提升定姿结果的可信度,能够作为一个卫星姿控软件专用的单粒子软件防护方案使用。

图3为本发明实施例提供的一种卫星姿控软件防护装置的结构框图,该装置可由软件和/或硬件实现,一般可集成在计算机设备中,可通过执行卫星姿控软件防护方法来进行卫星姿控软件防护。如图3所示,该装置包括:

目标函数确定模块301,用于确定卫星姿控软件中的目标函数;

函数执行模块302,用于在相同输入条件下执行预设次数的所述目标函数,得到预设个数的输出结果,其中,所述预设个数与所述预设次数相等;

输出结果表决模块303,用于基于预设表决方式针对所述预设个数的输出结果进行表决,得到所述目标函数对应的最终输出结果。

本发明实施例中提供的卫星姿控软件防护装置,确定卫星姿控软件中的目标函数发,在相同输入条件下执行预设次数的目标函数,得到预设个数的输出结果,基于预设表决方式针对所述预设个数的输出结果进行表决,得到目标函数对应的最终输出结果。通过采用上述技术方案,针对卫星姿控软件选择合适的目标函数,针对目标函数在相同输入条件下进行多次执行,并根据多次执行的输出结果进行表决纠错,可以有效减少因函数中间变量和实时更新数据受到单粒子翻转影响进而导致函数最终的输出结果出现错误的情况发生,保证卫星姿态得到准确控制,保证卫星在轨安全。

可选的,所述目标函数包括姿态确定函数、控制解算函数和输出分配函数;

其中,所述姿态确定函数的输入包括敏感器的采集数据,输出包括当前卫星姿态;

所述控制解算函数的输入包括所述姿态确定函数对应的最终当前卫星姿态和目标卫星姿态,输出包括控制指令;

所述输出分配函数的输入包括所述控制解算函数对应的最终控制指令,输出包括与所述最终控制指令对应的各执行器的动作指令。

可选的,所述姿态确定函数用于:

根据所述敏感器的采集数据基于至少两种定姿方法确定对应的定姿结果;

根据至少两个定姿结果确定当前卫星姿态。

可选的,所述根据至少两个定姿结果确定当前卫星姿态,包括:

参考数据异常偏离情况、不同定姿方法的可信度、不同定姿方法的精度以及不同定姿方法的历史数据连续性中的至少一项,对至少两个定姿结果进行比对,根据比对结果确定当前卫星姿态。

可选的,所述装置还可包括:

异常判定模块,用于对所述控制解算函数对应的最终控制指令和/或所述输出分配函数对应的最终动作指令进行预设维度的判定,其中,所述预设维度包括数值范围、数据连续性以及数据变化率中的至少一个;

异常处置模块,用于在根据判定结果确定出现数据异常情况时,进行相应的异常处置。

可选的,所述进行相应的异常处置,包括:

控制磁力矩器和姿控发动机停止工作,以及控制动量轮维持当前转速策略。

可选的,所述预设次数为三次;

所述基于预设表决方式针对所述预设个数的输出结果进行表决,得到所述目标函数的目标输出结果,包括:

基于预设三取二表决方式针对所述预设个数的输出结果进行表决,得到所述目标函数的目标输出结果。

本发明实施例提供了一种计算机设备,该计算机设备中可集成本发明实施例提供的卫星姿控软件防护装置。图4为本发明实施例提供的一种计算机设备的结构框图。计算机设备400可以包括:存储器401,处理器402及存储在存储器401上并可在处理器运行的计算机程序,所述处理器402执行所述计算机程序时实现如本发明实施例所述的卫星姿控软件防护方法,所述方法可包括:

确定卫星姿控软件中的目标函数;

在相同输入条件下执行预设次数的所述目标函数,得到预设个数的输出结果,其中,所述预设个数与所述预设次数相等;

基于预设表决方式针对所述预设个数的输出结果进行表决,得到所述目标函数对应的最终输出结果。

本发明实施例提供的计算机设备,针对卫星姿控软件选择合适的目标函数,针对目标函数在相同输入条件下进行多次执行,并根据多次执行的输出结果进行表决纠错,可以有效减少因函数中间变量和实时更新数据受到单粒子翻转影响进而导致函数最终的输出结果出现错误的情况发生,保证卫星姿态得到准确控制,保证卫星在轨安全。

本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行卫星姿控软件防护方法,该方法包括:

确定卫星姿控软件中的目标函数;

在相同输入条件下执行预设次数的所述目标函数,得到预设个数的输出结果,其中,所述预设个数与所述预设次数相等;

基于预设表决方式针对所述预设个数的输出结果进行表决,得到所述目标函数对应的最终输出结果。

存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDRRAM、SRAM、EDORAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的卫星姿控软件防护操作,还可以执行本发明任意实施例所提供的卫星姿控软件防护方法中的相关操作。

上述实施例中提供的卫星姿控软件防护装置、设备及存储介质可执行本发明任意实施例所提供的卫星姿控软件防护方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的卫星姿控软件防护方法。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

相关技术
  • 卫星姿控软件防护方法、装置、设备及存储介质
  • 卫星姿控软件防护方法、装置、设备及存储介质
技术分类

06120112275277