首页> 中国专利> 一种基于空动作的深空探测约束可满足任务规划方法

一种基于空动作的深空探测约束可满足任务规划方法

摘要

本发明公开的一种基于空动作的深空探测约束可满足任务规划方法,属于航天深空探测领域。本发明在建立深空探测器规划模型与深空探测器约束模型基础上,对深空探测器系统模型进行分层处理,对活动单元逐层处理,降低约束处理过程中的复杂度;考虑到深空探测任务规划问题的稀疏特性,根据最小承诺原则在每层活动单元中仅选择一个活动单元赋值并将其它活动单元赋予空动作;当冲突发生时对赋空值的活动单元进行修正解除冲突或进行回溯;当所有层的变量都完成赋值后,获得规划解,实现深空探测器自主任务规划。本发明要解决问题为:将深空探测任务中的复杂约束转化为约束处理中的剪枝能力,提高深空探测器自主任务规划的效率,满足探测器实时性要求。

著录项

  • 公开/公告号CN107480375A

    专利类型发明专利

  • 公开/公告日2017-12-15

    原文格式PDF

  • 申请/专利权人 北京理工大学;

    申请/专利号CN201710694234.4

  • 发明设计人 姜啸;徐瑞;崔平远;朱圣英;高艾;

    申请日2017-08-15

  • 分类号

  • 代理机构北京理工正阳知识产权代理事务所(普通合伙);

  • 代理人唐华

  • 地址 100081 北京市海淀区中关村南大街5号

  • 入库时间 2023-06-19 04:03:53

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-04-17

    授权

    授权

  • 2018-01-09

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20170815

    实质审查的生效

  • 2017-12-15

    公开

    公开

说明书

技术领域

本发明涉及一种基于空动作的深空探测约束可满足任务规划方法,属于航天深空探测领域。

背景技术

近年来,深空探测已经成为我国航天活动的重要领域之一,深空探测任务中的探测目标与地球的距离十分遥远,任务周期长,而我们对深空环境并不十分了解,仅依靠以前的地面直接控制或遥控的方式很难完成探测活动。运用自主规划技术,可以根据地面任务要求选择需要执行的活动,并给它们分配资源和时间,执行这些活动便可以达到预期的目标。但同时,深空探测领域中的一些复杂情况以及深空探测任务的发展趋势也给任务自主规划提出了新的挑战,这些情况包括:活动的时态约束、复杂的姿态控制约束,星上的资源限制约束,日益增加的载荷约束等。

综上所述,星上自主规划技术在执行动作序列的搜索时将受到多种约束的限制,极大地提高了搜索空间的复杂程度和算法设计的难度。针对以上问题, Frank J和JonsonA开发了EUROPA规划器,该规划器基于偏序规划方法,在当前包含缺陷的规划解中插入区间(intervals)以满足约束的一致性。EUROPA的主要缺点在于求解算法中缺少强力的启发式引导信息,求解效率较低。P.Surynek 和R.Bartak对基于图规划的约束可满足任务规划问题进行了研究。在该研究工作中,作者对图规划中的子目标进行了CSP编码,在约束弧一致的基础上对约束可满足中的支持对(supports)进行检查。通过对经典图规划理论的研究,文中针对图规划的特称结构:独立性(independence)、互斥动作(action mutex)、条件互斥(proposition mutex)、互斥传播(mutex propagation)等分别提出了对应的CSP 约束。但是该方案缺少全局的约束引导CSP算法的搜索过程,同时并未提出领域相关的启发式思想,所以搜索效率并不高。

发明内容

针对深空探测器自主任务规划问题,为克服现有深空探测任务中约束复杂、约束间耦合关系强等难点,本发明公开的一种基于空动作的深空探测约束可满足任务规划方法要解决的技术问题为:将深空探测任务中的复杂约束转化为约束处理中的剪枝能力,提高深空探测器自主任务规划的效率,满足探测器实时性要求。

本发明的目的是通过下述技术方案实现的。

本发明公开的一种基于空动作的深空探测约束可满足任务规划方法,在建立深空探测器规划模型与深空探测器约束模型基础上,对深空探测器系统模型进行分层处理,并对活动单元逐层处理,降低约束处理过程中的复杂度。考虑到深空探测任务规划问题的稀疏特性,根据最小承诺原则在每层活动单元中仅选择一个活动单元赋值并将其它活动单元赋予空动作。当冲突发生时对赋空值的活动单元进行修正解除冲突或进行回溯。当所有层的变量都完成赋值后,获得规划解,实现深空探测器自主任务规划。

本发明公开的一种基于空动作的深空探测约束可满足任务规划方法,包括如下步骤:

步骤1,建立深空探测器规划模型。

自主规划任务涉及到深空探测器系统SYS中的m个活动单元:

SYS={var1,var2,...vari,...varm},1≤i≤m

其中vari代表深空探测器系统中第i个活动单元;

深空探测器系统活动状态指m个活动单元可能存在的状态集合,设第i个活动单元的状态集合为表示第i个活动单元的 n-1个可能的状态,则整个探测器系统的状态集合为Ssys={D1,D2,...Di,...Dm}。

步骤2,建立深空探测器约束模型。

深空探测器约束模型表示为:

C=(S0,G,A)

其中,初始状态约束S0表示深空探测器在规划前所处的状态;目标状态约束G>sys;动作约束A={A1,A2,...,Ai,...,Am}代表系统中m个活动单元能够执行的动作集合,其中代表第i个活动单元能够执行的动作数,不同的活动单元对应不同的x值,且在深空探测器规划过程中,每个活动单元在同一时刻只执行一个动作,不同的活动单元之间的动作具有并行性。

步骤3,根据步骤2中的约束模型对步骤1中的系统模型进行分层,定义层值k=m,因此深空探测器系统SYS转化为多层系统SYS={sys1,sys2,...,sysk},每层的变量分别为:变量的值域为该活动单元能够执行的动作集合其中,⊥空动作表示变量在该层不执行任何动作,同时定义变量level代表当前的层数。

步骤4,第一次进行活动单元选取时,输入为系统的当前状态约束S0,目标状态约束G,以及当前层数level=1。

步骤5,检查level层中变量集Ω是否为空。若不为空,转至步骤6,若为空,转至步骤11。

步骤6,基于最小承诺原则,随机选取变量为current_variable,并将同层的其它变量赋值⊥。

步骤7,当前变量current_variable值域不为空时,对当前变量current_variable进行赋值,符号定义该赋值对为Γ=<var,val>;若当前变量current_variable值域为空,通过Ω=Ω-current_variable在变量集Ω中对当前变量current_variable进行剪枝,然后转至步骤5。

步骤8,检查赋值对Γ是否与其它赋值对Γi冲突,若存在赋值对Γi与赋值对Γ发生冲突,转至步骤9;若不存在冲突,转至步骤10。

步骤9,若赋值对Γi中赋值为⊥,修正空动作⊥值使赋值对Γi与赋值对Γ取消冲突;若赋值对Γi中赋值不为空动作⊥则当前变量current_variable在值域中剪枝删除当前取值并转至步骤7。

步骤10,使level=level+1并转至步骤5。

步骤11,回溯至level的上一层。将level上一层的赋值操作取消,level=level-1并转至步骤5。

步骤12,当深空探测器多层系统SYS中所有变量完成赋值,且目标状态约束G得到满足后,即实现基于空动作的深空探测约束可满足任务规划。

有益效果:

1、由于深空探测规划问题约束复杂,各个活动单元常以串行方式执行活动,即当一个活动单元执行活动时其它活动单元处于等待状态;通过分析发现当深空探测规划完成后,深空探测规划解往往呈现稀疏状态;活动单元的等待状态通常定义为空动作。本发明公开的一种基于空动作的深空探测约束可满足任务规划方法,针对深空探测规划问题存在大量的空动作,根据空动作设计算法流程,采用最小承诺原则每层只针对一个变量进行赋值并将其它变量赋值为空动作,在算法回溯时考察冲突出现的赋值是否为空动作并对空动作进行修正,能够避免对稀疏问题中大量变量的逐个考察,同时避免无效的算法回溯操作,从而提高深空探测任务规划的效率。

2、本发明公开的一种基于空动作的深空探测约束可满足任务规划方法,将深空探测规划问题转化成多层约束可满足问题,并通过约束可满足处理流程,根据挑选变量、变量赋值、约束检查、算法回溯流程搜索深空探测规划问题的规划解,将深空探测任务中的复杂约束转化为约束处理中的剪枝能力,提高深空探测器自主任务规划的效率,满足探测器实时性要求。

3、本发明公开的一种基于空动作的深空探测约束可满足任务规划方法,针对星上约束数量多,约束关系复杂的问题,通过步骤6对同层变量的集体赋值,避免对稀疏问题中大量变量的逐个考察,能够快速得到规划解,及时的应对深空探测环境中的复杂情况。

4、与基于启发式的任务规划法相比较,解决同样的任务,本发明公开的一种基于空动作的深空探测约束可满足任务规划方法更适应深空探测任务规划的稀疏特点,并非单纯的进行动作逻辑关系的推理,因此规划时间短、效率高,更加适合实时性要求高的深空探测器。

附图说明

图1是本发明公开的一种基于空动作的深空探测约束可满足任务规划方法的流程图;

图2是基于空动作的深空探测约束可满足任务规划方法(NACplan)与基于启发式的自主任务规划方法(EUROPA),解决相同任务时花费的时间比较图。

图中:红线部分表示基于启发式的自主任务规划方法(EUROPA);蓝线部分表示本发明提出的自动编码规划方法(DSPlan)。由图中可看出,在大部分的测试算例中NACplan的规划效率均优于EUROPA规划方法,当随着问题规模扩大时 NACplan的优势更加明显。

图3是深空探测器约束模型图。

具体实施方式

为了更好的说明本发明的目的和优点,下面结合附图和实例对发明内容做进一步说明。

探测器系统模型及其约束模型的建立。

为完成火星探测过程中主要的四项任务:第四次轨道修正任务、制动捕获任务、器器分离任务和载荷开关机任务,需要建立深空探测器模型,如下表所示。

表1深空探测器系统模型

深空探测器模型中姿态系统、地球通信系统、火星车通信系统、太阳帆板系统、推进系统、任务管理系统、电缆系统各个活动间的约束关系如下图所示。由图可看出,每个分系统表示为时间线,时间线中分布着表1所示的活动,在实际规划结果中,虚线表示各个分系统活动间的约束关系。以活动Pointing和PhoningHome为例,两者之间的约束关系为Pointing包含PhoningHome。

火星探测过程中主要的四项任务:第四次轨道修正任务、制动捕获任务器器分离任务和载荷开关机任务

实施例1轨道修正任务:在任务1所述的条件下,分别采用本发明的自主任务规划方法和EUROPA自主任务规划方法进行任务规划,说明本发明的有益效果。所述的任务1条件为:

轨道修正子模块参数说明及测试用例

本实施例的自主任务规划方法和EUROPA自主任务规划方法均包括建立深空探测器系统模型的步骤1。

本实施例公开的一种基于空动作的深空探测约束可满足任务规划方法,包括如下步骤:

步骤1,建立深空探测器系统模型。

轨道修正任务具体系统模型如表1所示

步骤2,建立深空探测器约束模型。

轨道修正任务具体约束模型如图3所示

步骤3,根据步骤2中的约束模型对步骤1中的深空探测器系统模型进行分层。

定义层值k=8,因此深空探测器系统模型SYS转化为多层系统 SYS={sys1,sys2,...,sys8},每层的变量分别为:同时定义变量level代表当前的层数;

步骤4,规划任务初始化。

第一次进行活动单元选取时,输入为深空探测器系统模型的当前状态约束 S0,目标状态约束G,以及当前层数level=1;

步骤5,检查level层中变量集Ω是否为空。变量集Ω中存在变量,转至步骤6.

步骤6,在level层中选取活动单元例如在第1层中选取活动单元AttitudeSys,并并将同层的其它变量赋值空动作⊥。

步骤7,当前变量current_variable值域不为空时,对当前变量current_variable进行赋值,符号定义该赋值对为Γ=<var,val>;若当前变量current_variable值域为空,Ω=Ω-current_variable转至步骤5;例如AttitudeSys中存在值域 <Pointing,Turning>,选择Pointing进行赋值。

步骤8,检查赋值对Γ是否与其它赋值对冲突,若存在赋值对Γi与赋值对Γ发生冲突,转至步骤9;若不存在冲突,转至步骤10;例如,根据步骤5中的活动单元AttitudeSys赋值Pointing这一赋值,通过图2的约束关系进行一致性检查可知不存在冲突关系,因此转至步骤10。

步骤9,若赋值对Γi中赋值为空动作⊥,修正空动作⊥值使赋值对Γi与赋值对Γ取消冲突;若赋值对Γi中赋值不为空动作⊥则当前变量current_variable在值域中删除当前取值并转至步骤7;

步骤10,level=level+1并转至步骤5,此时level的当前值为2;

步骤11,回溯至level的上一层。将level上一层的赋值操作取消,level=level+1并转至步骤5。

重复上述步骤直至深空探测器系统模型SYS中所有活动单元完成赋值,其赋值结果即为深空探测器自主任务规划结果,规划出为完成轨道修正需要完成的前后活动,如以下列表。

第四次轨道修正规划完成活动表

序号事件1探测器进入轨道修正自主规划状态2关闭载荷3测控模式调整4太阳翼驱动机构锁定5姿态机动,建立点火姿态6轨道修正7测控模式调整

实施例2器器分离任务:在任务2所述的条件下,分别采用本实施例的自主任务规划方法和EUROPA自主任务规划方法进行任务规划,说明本发明的有益效果。所述的任务2条件为:

器器分离时刻求解子模块参数说明及测试用例

本实施例的自主任务规划方法和EUROPA自主任务规划方法均包括建立深空探测器系统模型的步骤1。

本实施例公开的一种基于空动作的深空探测约束可满足任务规划方法,包括如下步骤:

步骤1,建立深空探测器系统模型。

器器分离任务具体系统模型如表1所示

步骤2,建立深空探测器约束模型。

器器分离任务具体约束模型如图3所示

步骤3,根据步骤2中的约束模型对步骤1中的深空探测器系统模型进行分层。

定义层值k=20,因此深空探测器系统模型SYS转化为多层系统 SYS={sys1,sys2,...,sys20},每层的变量分别为:同时定义变量level代表当前的层数;

步骤4,规划任务初始化。

第一次进行活动单元选取时,输入为深空探测器系统模型的当前状态约束 S0,目标状态约束G,以及当前层数level=1;

步骤5,检查level层中变量集Ω是否为空。变量集Ω中存在变量,转至步骤6.

步骤6,在level层中选取活动单元例如在第1层中选取活动单元AttitudeSys,并并将同层的其它变量赋值空动作⊥。

步骤7,当前变量current_variable值域不为空时,对当前变量current_variable进行赋值,符号定义该赋值对为Γ=<var,val>;若当前变量current_variable值域为空,Ω=Ω-current_variable转至步骤5;例如AttitudeSys中存在值域 <Pointing,Turning>,选择Pointing进行赋值。

步骤8,检查赋值对Γ是否与其它赋值对冲突,若存在赋值对Γi与赋值对Γ发生冲突,转至步骤9;若不存在冲突,转至步骤10;例如,根据步骤5中的活动单元AttitudeSys赋值Pointing这一赋值,通过图2的约束关系进行一致性检查可知不存在冲突关系,因此转至步骤10。

步骤9,若赋值对Γi中赋值为空动作⊥,修正空动作⊥值使赋值对Γi与赋值对Γ取消冲突;若赋值对Γi中赋值不为空动作⊥则当前变量current_variable在值域中删除当前取值并转至步骤7;

步骤10,level=level+1并转至步骤5,此时level的当前值为2;

步骤11,回溯至level的上一层。将level上一层的赋值操作取消,level=level-1并转至步骤5。

重复上述步骤直至深空探测器系统模型SYS中所有活动单元完成赋值,其赋值结果即为深空探测器自主任务规划结果,规划出为完成轨道修正需要完成的前后活动,如以下列表。

器器分离规划完成活动表

实施例3载荷开关机任务:在任务3所述的条件下,分别采用本实施例的自主任务规划方法和EUROPA自主任务规划方法进行任务规划,说明本发明的有益效果。所述的任务3条件为:

载荷开关机时刻求解子模块参数说明及测试用例

本实施例的自主任务规划方法和EUROPA自主任务规划方法均包括建立深空探测器系统模型的步骤1。

本实施例公开的一种基于空动作的深空探测约束可满足任务规划方法,包括如下步骤:

步骤1,建立深空探测器系统模型。

器器分离任务具体系统模型如表1所示

步骤2,建立深空探测器约束模型。

器器分离任务具体约束模型如图3所示

步骤3,根据步骤2中的约束模型对步骤1中的深空探测器系统模型进行分层。

定义层值k=12,因此深空探测器系统模型SYS转化为多层系统 SYS={sys1,sys2,...,sys12},每层的变量分别为:同时定义变量level代表当前的层数;

步骤4,规划任务初始化。

第一次进行活动单元选取时,输入为深空探测器系统模型的当前状态约束 S0,目标状态约束G,以及当前层数level=1;

步骤5,检查level层中变量集Ω是否为空。变量集Ω中存在变量,转至步骤6.

步骤6,在level层中选取活动单元例如在第1层中选取活动单元AttitudeSys,并并将同层的其它变量赋值空动作⊥。

步骤7,当前变量current_variable值域不为空时,对当前变量current_variable进行赋值,符号定义该赋值对为Γ=<var,val>;若当前变量current_variable值域为空,Ω=Ω-current_variable转至步骤5;例如AttitudeSys中存在值域 <Pointing,Turning>,选择Pointing进行赋值。

步骤8,检查赋值对Γ是否与其它赋值对冲突,若存在赋值对Γi与赋值对Γ发生冲突,转至步骤9;若不存在冲突,转至步骤10;例如,根据步骤5中的活动单元AttitudeSys赋值Pointing这一赋值,通过图2的约束关系进行一致性检查可知不存在冲突关系,因此转至步骤10。

步骤9,若赋值对Γi中赋值为⊥,修正空动作⊥值使赋值对Γi与赋值对Γ取消冲突;若赋值对Γi中赋值不为空动作⊥则当前变量current_variable在值域中删除当前取值并转至步骤7;

步骤10,level=level+1并转至步骤5,此时level的当前值为2;

步骤11,回溯至level的上一层。将level上一层的赋值操作取消,level=level-1并转至步骤5。

重复上述步骤直至深空探测器系统模型SYS中所有活动单元完成赋值,其赋值结果即为深空探测器自主任务规划结果,规划出为完成轨道修正需要完成的前后活动,如以下列表。

载荷开关机规划完成活动表

实施例4制动捕获任务:在任务4所述的条件下,分别采用本实施例的自主任务规划方法和EUROPA自主任务规划方法进行任务规划,说明本发明的有益效果。所述的任务4的初始任务条件只需给出制动捕获时刻即可,实施例4 中制动捕获时刻为2455510。

本实施例的自主任务规划方法和EUROPA自主任务规划方法均包括建立深空探测器系统模型的步骤1。

本实施例公开的一种基于空动作的深空探测约束可满足任务规划方法,包括

如下步骤:

步骤1,建立深空探测器系统模型。

器器分离任务具体系统模型如表1所示

步骤2,建立深空探测器约束模型。

器器分离任务具体约束模型如图3所示

步骤3,根据步骤2中的约束模型对步骤1中的深空探测器系统模型进行分层。

定义层值k=12,因此深空探测器系统模型SYS转化为多层系统 SYS={sys1,sys2,...,sys12},每层的变量分别为:同时定义变量level代表当前的层数;

步骤4,规划任务初始化。

第一次进行活动单元选取时,输入为深空探测器系统模型的当前状态约束 S0,目标状态约束G,以及当前层数level=1;

步骤5,检查level层中变量集Ω是否为空。变量集Ω中存在变量,转至步骤6.

步骤6,在level层中选取活动单元例如在第1层中选取活动单元AttitudeSys,并并将同层的其它变量赋值空动作⊥。

步骤7,当前变量current_variable值域不为空时,对当前变量current_variable进行赋值,符号定义该赋值对为Γ=<var,val>;若当前变量current_variable值域为空,Ω=Ω-current_variable转至步骤5;例如AttitudeSys中存在值域 <Pointing,Turning>,选择Pointing进行赋值。

步骤8,检查赋值对Γ是否与其它赋值对冲突,若存在赋值对Γi与赋值对Γ发生冲突,转至步骤9;若不存在冲突,转至步骤10;例如,根据步骤5中的活动单元AttitudeSys赋值Pointing这一赋值,通过图2的约束关系进行一致性检查可知不存在冲突关系,因此转至步骤10。

步骤9,若赋值对Γi中赋值为空动作⊥,修正空动作⊥值使赋值对Γi与赋值对Γ取消冲突;若赋值对Γi中赋值不为空动作⊥则当前变量current_variable在值域中删除当前取值并转至步骤7;

步骤10,level=level+1并转至步骤5,此时level的当前值为2;

步骤11,回溯至level的上一层。将level上一层的赋值操作取消,level=level-1并转至步骤5。

重复上述步骤直至深空探测器系统模型SYS中所有活动单元完成赋值,其赋值结果即为深空探测器自主任务规划结果,规划出为完成轨道修正需要完成的前后活动,如以下列表。

制动捕获规划完成活动表

序号事件1探测器进入制动捕获自主规划状态2测控模式调整3GNC模式调整4阀门控制5姿态机动,建立点火姿态6惯性定向,保持点火姿态7太阳翼调整8制动9完成制动10GNC模式调整11太阳翼调整12测控模式调整

以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号