一种基于动作优化的成像卫星自主指令生成方法与流程

文档序号:16290528发布日期:2018-12-18 20:35阅读:271来源:国知局
一种基于动作优化的成像卫星自主指令生成方法与流程

本发明属于遥感卫星自主运行技术领域,具体涉及一种基于动作优化的成像卫星自主指令生成方法。



背景技术:

新型敏捷遥感卫星姿态机动能力增强,一轨成像能力相比传统遥感卫星数倍增强(如图1所),如果仍按照传统卫星“地面完成元任务到指令生成上注卫星执行”的方式对卫星进行操控的话,一方面需要地面操作人员了解不同卫星的操作细节及载荷使用方法,在实际应用过程中,还经常需要与卫星研制方对指令及参数进行校对确认,过程繁琐。同时,操控的复杂性对卫星的可靠性和安全性构成隐患。随着我国在轨卫星数量的增加,这一弊端尤为突出。另一方面,这种指令控制模式产生的指令数据量较大,由于我国测控网能力限制,多数卫星测控弧段资源有限(10分钟左右),这种模式将无法满足敏捷卫星的任务需求。

图2为一次元任务展开成指令的示意图,从图中可以看出指令生成过程非常复杂,涉及载荷、控制、数传、天线等多个分系统,生成的指令要求符合时序要求,并且星上为了增强可靠性,很多设备都存在交叉备份,指令生成过程中需要考虑设备主备份使用情况。另外在敏捷成像模式下,任务与任务之间较近时,还需要考虑同类开关机动作优化合并问题,否则无法满足相邻任务执行的时间要求。



技术实现要素:

有鉴于此,本发明的目的是提供一种基于动作优化的成像卫星自主指令生成方法,本方法将上注卫星的指令精简为元任务级信息,星上能够根据元任务配备的动作信息及元任务间的时序关系,优化相邻的同类开关机动作,从而规划出整套的卫星动作序列,再根据动作序列产生相应的操控级指令,从而较大提升卫星的易操控性和上注效率。

一种基于动作优化的成像卫星自主指令生成方法,包括:

步骤1、根据成像卫星的任务定义,确定该成像卫星能实现的元任务,以及元任务所涉及的所有动作,并完成动作定义列表和设备状态表的初始设置,具体为:

S11、初始设置动作定义表

针对描述动作的4个参数,获得每个参数的初始值,其中的三个参数:动作编号AtId,动作类型AtType,动作对应的指令序列的起始地址AtTcs为初始默认值,另一个参数动作优化策略AtRmv根据如下优化策略得到:当动作为非开机或关机的其它动作时,该动作不被优化,AtRmv=0;

当动作为开机动作或关机动作,且该动作不属于成像元任务与回放元任务的动作集合的交集,则该动作属于同类元任务之间的同类优化,AtRmv=1;

当动作为开机动作或关机动作,且该动作属于成像元任务与回放元任务的动作集合的交集,则该动作属于同类或不同类元任务之间的完全优化,AtRmv=2;

S12、初始化指令序列:

找到各个动作对应的指令序列,并对描述指令的参数进行初始参数配置;

S13、根据当前卫星各个设备的使用状态和不同状态下对应的指令信息,对设备状态表进行初始化;该表中包含以下字段:设备编号,设备状态,该设备所能影响的指令,并确定被影响指令的:指令编号,影响的码字起始位置,影响的码字长度,影响的码字掩码,影响的码值;

步骤2、卫星接收地面注入的元任务,并生成下一圈初始的自主指令,具体为:

S21、根据轨道圈号在元任务存储区挑选下一圈的所有元任务,并形成按照任务开始时间排序的元任务序列;

S22、单圈元任务约束检查,具体为:

①成像元任务累计成像时长小于设定的阈值;

②回放元任务累计成像时长小于设定的阈值;

③对于同类的元任务,下一个元任务的起始时间与当前元任务的结束时间的时间间隔大于设定阈值;;

如果当前元任务同时满足本步骤的上述三个检查条件,执行下一步;如果不能同时满足,则删除一个优先级最低的元任务,继续进行以上三条检查条件的判断,直到同时满足,执行下一步;

S23、遍历元任务序列,对各个元任务的所有动作先进行开机动作优化,再进行关机动作优化,优化完成后,得到最终的动作序列,具体为:

针对当前元任务i中的开机动作,若满足:①在当前元任务i之前存在同类的元任务k,并且,当前元任务i的起始时间与元任务k的结束时间的时间间隔小于设定阈值,则优化该开机动作;如果不满足条件①,再继续判断是否满足条件:②在当前元任务之前存在不同类的元任务k,并且,当前元任务i的起始时间与元任务k的结束时间的时间间隔小于设定阈值,同时,该开机动作的优化策略AtRmv显示为完全优化,则优化该开机动作;

针对当前元任务i中的关机动作,若满足:①在当前元任务i之后存在同类的元任务k,并且,当前元任务i的起始时间与元任务k的结束时间的时间间隔小于设定阈值,则优化该关机动作;如果不满足条件①,再继续判断是否满足条件:②在当前元任务i之后存在不同类的元任务k,并且,当前元任务i的起始时间与元任务k的结束时间的时间间隔小于设定阈值,同时,该关机动作的优化策略AtRmv显示为完全优化,则优化该关机动作;

S24、将S23获得的最终的动作序列中每一个动作展开为指令,展开方法如下:获取当前动作的动作编号,根据动作编号获取指令序列,遍历该指令序列中的所有指令信息,获得当前指令的指令码、指令发出时间以及指令发送地址,并将获得的指令插入到待执行的指令列表中;

其中,根据设备状态表对该指令的影响,获得实际的指令码值,具体为:获得影响当前指令的设备,找到该设备对应的设备状态表,根据设备状态表中影响的码字起始位置,影响的码字长度Len,影响的码字掩码Mask得到实际影响的原始指令码的具体区域,然后使用“影响的码值TcVal”替换原始指令码相应区域的码值,从而得到实际的指令码值。

进一步的,如果卫星在执行任务过程中接收到地面注入的元任务,则根据元任务所属轨道圈号,执行不同的策略,如果元任务属于当前轨道之后需要执行的任务,则根据元任务类型将元任务存储到相应的存储区;如果元任务属于当前轨道任务,则返回步骤2,执行重新生成指令过程;如果元任务属于当前轨道之前需要执行的任务,则拒绝接收元任务。

本发明具有如下有益效果:

本发明要解决的技术问题是提供一种在星载实时环境下将地面注入的多个元任务转换为星上操控级指令的方法,该方法首先根据元任务配备的动作信息及元任务间的时序关系,采用贪心算法最大化优化相邻元任务间的同类开关机动作,有效降低软件执行复杂度,有效规划出卫星的动作序列,并根据作序列及当前卫星各个设备的工作状态(例如固存使用备份存储、数传伺服采用主份等)实例化出相应的操控级指令,从而有效提升卫星的易操控性和上注效率,为敏捷卫星单个轨道圈完成多个任务提供了技术保障。另外该方法将元任务对应的动作信息以及元任务间的时序关系进行了抽象定义,支持用户自定义,具有很强通用性和灵活性,适合于各类遥感卫星。

附图说明

图1为现有技术中单轨成像任务数增加的示意图;

图2为现有技术中指令生成示意图;

图3为本发明中指令生成的实施流程图;

图4为本发明中元任务数组结构示意图;

图5为本发明中动作定义流程图;

图6为本发明中指令定义流程图;

图7为本发明中接收元任务的流程图;

图8为本发明中合并元任务流程图;

图9为本发明中生成动作序列的流程图;

图10为本发明中开机优化策略流程图;

图11为本发明中关机优化策略流程图;

图12为本发明中生成指令的流程图;

图13为本发明中指令重新生成的流程图。

具体实施方式

下面结合附图并举实施例,对本发明进行详细描述。

一、名词定义:

成像元任务:指卫星一次可以推扫完成的地面目标条带,是卫星可以执行的最小成像任务。

回放元任务:指卫星一次可以完成的载荷数据的回放任务,是卫星可以执行的最小回放任务。

动作:各个分系统的一次完整操作过程,例如相机开机动作,相机成像动作,数传加电动作。每个动作由一条或多条指令完成。一次成像元任务或回放元任务由多个动作组合完成。

二、符号定义:

P:表示卫星绕地球一圈,即一轨成像元任务序列(按照任务开始时间先后排序);

R:表示一轨回放元任务序列(按照任务开始时间先后排序);

A:表示一轨元任务序列(按照任务开始时间先后排序),A=P∪R;

p:表示单个成像元任务,其中p∈P;

r:表示单个回放元任务,其中r∈R;

a:表示单个元任务,其中a∈A;

ai:表示A中第i个元任务;

采用六元组对单个元任务进行描述:{AmId,ObId,Pos,BT,ET,Type,AsInf},其中AmId表示元任务编号,ObId表示元任务所属的轨道圈号,Pos表示位置信息,BT表示元任务的开始时间,ET表示元任务的结束时间。Type表示元任务类型,0表示成像,1表示回放。AsInf表示元任务的一些辅助信息。例如元任务优先级,成像元任务的成像参数设置,回放元任务的回放方式设置等。

CoId:表示当前轨道圈号;

PAT:表示成像元任务包含的动作集合;

RAT:表示回放元任务包含的动作集合;

AT:表示成像元任务和回放元任务包含的所有动作集合,AT=PAT∪RAT;

pat:表示成像元任务的单个动作,其中pat∈PAT;

rat:表示回放元任务的单个动作,其中rat∈RAT;

at:表示元任务的单个动作,其中at∈AT;

atj:表示元任务的第j个动作;

采用四元组对单个动作at进行描述:{AtId,AtType,AtRmv,AtTcs},AtId表示动作编号,AtType表示动作类型,AtRmv表示动作优化策略,其中,动作优化是指是否删除该动作,在所有动作中,只有开机和关机动作可以优化,其它标准动作不能被优化;AtTcs表示动作对应的指令序列的起始地址。

其中,仅同类优化是指同类元任务之间的动作优化;完全优化是指同类或不同类元任务之间的动作优化。

表示第i个元任务的第j个动作,当表示对该动作优化,时,表示不对该动作进行优化。

指令定义:一条指令定义包括指令编号TcId,时间基准TimeBase,时间偏移TimeOfst,指令的应用过程标识APID(用于指示指令发给哪个对应的设备),指令码Code,指令处理过程Process。其中,当时间基准TimeBase=0时,表示以元任务开始时间为基准,当TimeBase=1时,表示以元任务结束时间为基准。

{TcId,TimeBase,TimeOfst,APID,Code,Process}

指令实例化值:根据指令定义实例化得到的指令值,包括指令执行时间ExeTime,指令执行码字ExeCode,指令执行地址ExeAddr。{ExeTime,ExeCode,ExeAddr}

Route(APID)表示根据APID查找路由表,将APID表示的地址转换成物理地址,即指令包路由到相应的设备上。

DevTb表示设备状态表,存储当前卫星各个设备的工作状态(例如固存使用备份存储、数传伺服采用主份等)。设备状态表中的每个表项为{TcId,StPos,Len,Mask,TcVal},包含指令编号TcId,码字起始位置StPos,长度Len,掩码Mask,值TcVal。

指令处理过程Process(Code,DevTb),根据设备状态表和原指令码字,得出实际执行指令码字。

三、具体实现步骤:

本发明提供一种根据地面注入的元任务信息自主生成成像卫星操控指令的方法,流程如图3所示。

步骤1、根据成像卫星的任务定义,找到该成像卫星能实现的元任务,以及元任务所涉及的所有动作,并完成动作定义列表、设备状态表的初始设置,具体为:

11)初始设置动作定义表

针对描述动作的4个参数,获得每个参数的初始值,其中的三个参数:动作编号AtId,动作类型AtType,动作对应的指令序列的起始地址AtTcs为初始默认值,动作优化策略根据如下优化策略得到:当动作为非开机或关机的其它动作时,该动作不被优化,即:

当动作为开机动作或关机动作,且该动作不属于成像元任务与回放元任务的动作集合的交集,则该动作属于同类元任务之间的动作优化,即:

当动作为开机动作或关机动作,且该动作属于成像元任务与回放元任务的动作集合的交集,则该动作属于不同类元任务之间的动作优化,即:

12)初始化指令序列:

找到各个动作对应的指令序列,并对描述指令的六个参数:指令编号TcId,时间基准TimeBase,时间偏移TimeOfst,指令的应用过程标识APID,指令码Code,指令处理过程Process进行初始参数配置;

13)根据当前卫星各个设备的使用状态和不同状态下对应的指令信息,对设备状态表进行初始化。

该表中主要包含以下字段:设备编号,设备状态,该设备所能影响的指令,并确定被影响指令的:指令编号,影响的码字起始位置,影响的码字长度,影响的码字掩码,影响的码值。例如当前卫星固存使用主份,则将设备状态表中的固存的设备状态置为1,影响的指令编号为TCS031,影响的码字起始位置为3,影响的码字长度为1,影响的码字掩码为0xFF。影响的码值为0xAA。

步骤2、卫星接收地面注入的元任务,并生成下一圈初始的自主指令,具体为:

S21、根据轨道圈号在元任务存储区挑选下一圈的所有元任务,并采用插入排序法形成按照任务开始时间排序的元任务序列A;

S22、单圈元任务约束检查,具体为:

①判断成像元任务累计成像时长小于设定的阈值PTL,即:

②判断回放元任务累计成像时长小于设定的阈值RTL,即:

③同类元时间间隔检查

对于同类的元任务,下一个元任务的起始时间与当前元任务的阶数时间的时间间隔大于设定阈值,即或

如果当前元任务同时满足以上三个条件,执行下一步;如果不能同时满足,则删除一个优先级最低的元任务,继续进行以上三条的判断,直到满足以上三个条件,执行下一步;

S23、循环遍历元任务序列A,对当前元任务的所有动作执行先执行开机优化,再执行关机优化,优化完成后,得到最终的动作序列,具体为:

i)开机优化如下:

采用贪心算法最大化的优化当前元任务的动作序列,开机动作优化过程中优先选用公式(14)执行优化,如果满足公式(14,则跳出当前动作的优化过程,如果没有发现满足公式(14)优化条件,则选用公式(15)执行优化。

即:针对当前元任务i中的开机动作,若满足:①在当前元任务i之前存在同类的元任务k,并且,当前元任务i的起始时间与元任务k的结束时间的时间间隔小于设定阈值,则优化该开机动作;如果不满足条件①,再继续判断是否满足条件:②在当前元任务之前存在不同类的元任务k,并且,当前元任务i的起始时间与元任务k的结束时间的时间间隔小于设定阈值,同时,该开机动作的优化策略AtRmv显示为完全优化,则优化该开机动作,这样可以有效降低算法的执行复杂度。

ii)关机动作优化如下:

与开机动作类似,关机动作优化过程中优先选用公式(19)执行优化,如果没有发现满足公式(19)的优化条件,则选用公式(20)执行优化。

即:针对当前元任务i中的关机动作,若满足:①在当前元任务i之后存在同类的元任务k,并且,当前元任务i的起始时间与元任务k的结束时间的时间间隔小于设定阈值,则优化该关机动作;如果不满足条件①,再继续判断是否满足条件:②在当前元任务i之后存在不同类的元任务k,并且,当前元任务i的起始时间与元任务k的结束时间的时间间隔小于设定阈值,同时,该关机动作的优化策略AtRmv显示为完全优化,则优化该开机动作;

S24、将S23获得的最终的动作序列中每一个动作展开为指令,展开方法如下:获取当前动作的动作号,根据动作号在动作定义列表中搜索到相应的动作定义项,根据动作定义项的指令序列地址,获取指令序列定义,遍历该指令序列定义中的所有指令定义信息,根据动作所属元任务的开始时间、结束时间以及当前指令定义信息获得当前指令的指令值、指令发出时间以及指令发送地址,公式如(21)、(22)、(23)所示,并将获得的指令插入到待执行的指令列表中。

ExeT=(1-TimeBase)*BT+TimeBase*ET+TimeOfst (21)

ExeCode=Process(Code,DevTb) (22)

ExeAddr=Route(APID) (23)

其中,当前指令的指令值并非是设备最终执行的指令值,还需要根据设备状态表对该指令的影响,获得实际的指令码值,具体为:根据指令的参数获得当前指令对应的指令编号搜索设备状态表,找到设备状态表中相应的表项,得到指令码的处理信息,然后根据设备状态表中“影响的码字起始位置StPos,影响的码字长度Len,影响的码字掩码Mask”得到实际影响的原始指令码的具体区域,然后使用“影响的码值TcVal”替换原始指令码相应区域的码值,从而得到实际的指令码值。

S25、返回步骤2)接收新的元任务。

需要说明的是,如果卫星在执行任务过程中接收到地面注入的元任务,则根据元任务所属轨道圈号,执行不同的策略,如果满足公式(4),即元任务属于当前轨道之后需要执行的任务,则根据元任务类型将元任务存储到相应的存储区;如果满足公式(5),即元任务属于当前轨道任务,则返回步骤2,执行重新生成指令过程;如果满足公式(6),即元任务属于当前轨道之前需要执行的任务,则拒绝接收元任务。

实施例:

元任务:

为了提高注入效率和降低地面管控复杂性,地面一次性注入当天的成像或回放任务指令,以元任务的方式呈现,单个元任务包含的主要信息有:

元任务类型指明该元任务为成像元任务或回放元任务。

成像元任务存储区,该存储区用来存放地面注入的一天的成像元任务数据包。

回放元任务存储区,该存储区用来存放地面注入的一天的回放元任务数据包。

当圈成像元任务列表及回放元任务列表:

进入轨道圈开始前1分钟,开始下一轨道圈的指令自主生成过程。根据元任务的轨道圈号从成像元任务存储区和回放元任务存储区挑选下一圈的所有元任务,并按照任务开始时间排序存放在当圈成像元任务列表和回放元任务列表中。

全局元任务数组:

按照元任务开始时间将满足约束的成像元任务列表和回放列表合并到一个全局元任务数组中,作为后续指令生成的输入。该数组中每个节点包括元任务信息、开机优化策略、关机优化策略三个属性。开机优化策略包括不优化,同类开机优化和异类开机优化,关机优化策略包括不优化,同类关机优化和异类关机优化。全局元任务数组结构如图4所示:

成像元任务动作定义列表与回放元任务动作定义列表:根据元任务类型,规定了两个动作定义列表,分别是成像元任务动作定义列表和回放元任务动作定义列表。每个动作定义项包含动作编号、动作类型、动作优化策略、指令序列地址4个属性。如图5所示。

成像动作指令定义序列和回放动作指令定义序列:

动作定义序列中的每一个动作定义对应一组指令定义,如图6所示。每个指令定义包含6个属性,分别是指令编号,时间基准,时间偏移,应用过程标识APID,指令码,指令处理过程。

发送的指令列表,用来存放当圈待执行的指令,每条指令占用一个节点。

步骤1:算法的初始设置

本步骤主要完成设备状态表、动作定义列表、指令序列定义的初始设置。

其中主要内容包括:

动作定义列表的初始设置:

根据元任务类型,本方法规定了两个动作定义列表,分别是成像元任务动作定义列表DT1和回放元任务动作定义列表DT2。每个动作定义列表中包含多个动作定义,表明该类元任务包含的动作序列。每个动作定义项包含动作编号、动作类型、动作优化策略、指令序列地址4个属性(如图5所示)。动作编号作为动作定义表的主键,唯一标识一个动作,例如相机开机动作的编号为1,相机关机动作编号为2。动作类型包括开机动作、关机动作和其他动作三类。动作优化策略表明该动作什么情况下会被优化,包括不优化、仅同类任务优化、完全优化三类。(所有动作的动作优化策略初始值都为不优化),指令序列地址用于表示该动作对应的指令序列定义在内存中的存储位置。

本步骤主要完成动作定义列表中的所有动作定义的动作优化策略的计算,为步骤4)中完成动作优化提供输入。具体如下:

i)遍历DT1,如果当前动作定义项的动作类型为开机动作或关机动作,则当前动作定义项的动作优化策略设置为仅同类任务优化。

ii)遍历DT2,如果当前动作定义项的动作类型为开机动作或关机动作,则当前动作定义项的动作优化策略设置为仅同类任务优化。

iii)寻找DT1和DT2中动作编号相同项,如果得到的动作定义项的动作类型为开机动作或关机动作,则将该项动作优化策略设置为完全优化。

初始化设备状态表:

将当前卫星各个设备的使用状态项目存放在结构体中,初始化时对其中的各个成员进行赋值,如下表所示:

3)初始化所有指令序列定义

每个动作对应于一个指令序列定义,每个指令序列定义对应一组指令定义,每个指令定义包含6个属性(如图6所示),分别是指令编号,时间基准,时间偏移,指令的应用过程标识,指令码,指令处理过程;

本步骤主要完成所有指令序列定义的参数配置,指明某个指令序列定义包含几个指令定义和每个指令定义包含的6个属性的具体值(如指令编号为021,时间基准为元任务开始时间,时间偏移量为3秒等)。

步骤2:接收元任务

判断是否有新的元任务注入,如果没有则进入步骤3,否则接收地面注入的元任务,根据元任务中的轨道圈号信息,判断注入元任务是否为当圈元任务,如果是,则进入指令重新生成过程,否则根据元任务的任务类型(成像或是回放),在相应任务存储区搜索一个使用状态为可用的节点,使用该节点存储接收的元任务,并将该节点的使用状态置为已用,继续监视是否有元任务注入。接收元任务流程图如图7所示。

步骤3:执行下一圈初始的自主指令生成过程:

如图8所示,到达下一圈任务规划时刻后,清空上一圈已规划的元任务信息和指令信息,然后执行下一圈初始的任务到指令的生成过程。挑选当圈的元任务合并为全局任务数组,按照公式(7)到(10)进行单圈元任务序列的约束检查。

如图9-图11所示,优化并生成动作序列:

全局元任务数组中元任务的开机优化策略及关机优化策略通过属性on_remove_type及off_remove_type进行设置,例如:0:不优化;1:同类优化;2:异类优化;

如果当前动作的动作类型为开机动作并且当前动作所属元任务的开机优化策略为同类开机优化,则优化该动作。如果当前动作的动作类型为开机动作并且当前动作所属元任务的开机优化策略为异类开机优化并且当前动作的优化策略为完全优化,则优化该动作。

如果当前动作的动作类型为关机动作并且当前动作所属元任务的关机优化策略为同类关机优化,则优化该动作。如果当前动作的动作类型为关机动作并且当前动作所属元任务的关机优化策略为异类关机优化并且当前动作的优化策略为完全优化,则优化该动作。其余情况,均不优化该动作。

生成指令列表:

如图12所示,将动作序列中的动作依次展开为指令,需要获取动作对应的指令序列定义image_action_tcs或replay_action_tcs,遍历指令序列获取每个指令定义信息存放在ptr_tc_unit_item中,根据指令执行时间依据类型,时间偏移量,发送地址,指令码,指令处理方法以及动作所属元任务的开始时间、结束时间实例化当前指令。

步骤5:执行当圈元任务到指令的重新生成过程:

如图13所示,若地面注入的元任务为当圈元任务,则进入指令重新生成过程,流程图如下:

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1