一种基于时间拓扑排序的航天器资源约束处理方法
【技术领域】
[0001] 本发明涉及一种基于时间拓扑排序的航天器资源约束处理方法,属于航天器自主 控制技术领域。
【背景技术】
[0002] 航天器任务自主规划是实现航天器自主技术的一项关键技术。航天器在执行空间 任务时,星载自主管理系统根据感知到的空间环境状态、航天器的自身状态和需要执行的 任务目标,自主产生当前时间后的任务动作序列,可以实现无人干预情况下的长期自主运 行。航天器任务自主规划可以克服深空探测中通信时间延迟大、资源约束复杂、运行环境动 态变化等带来的问题,提高航天器长期运行的自主性和可靠性。航天器的星上资源(推进 剂、电能、存储器等)十分有限,规划航天器动作时不仅要考虑到资源的使用量,同时还要 考虑不同资源间的约束关系。航天器的多个子系统可以产生同时进行的多个动作,并行动 作导致资源变化情况更加复杂。规划中设计有效资源约束处理方法是航天器任务自主规划 的一项关键技术。
[0003] 在已发展的航天器任务规划的资源约束处理方法中,在先技术[1](基于蚁群优 化-模拟退火的天地测控资源联合调度[J].宇航学报,2012,33(1):85-90.),研宄了航天 测控中的资源调度问题,针对约束优化问题建立模型,并采用蚁群优化算法和模拟退火算 法相结合的方法寻求最优解。然而,该方法是针对确定的测控事件展开研宄的,无法满足在 深空探测中处理动态不确定事件的需求。
[0004] 在先技术[2](参见 Muscettola N. Computing the envelope for stepwise-constant resource allocations [J]?Berlin,Germany:Principles and Practice ofConstraintPrograming, 2002.),分析了动作集随时间变化对资源数量的影 响,采用网络流模型描述规划中的资源约束,通过计算网络的最大流值,获取随时间变化的 资源数量。但在求解资源时采用通用的网络流算法,没有结合资源约束网络的结构特点。
【发明内容】
[0005] 本发明针对目前的资源约束处理方法没有利用资源约束网络的结构特点,无法满 足航天器的动态响应要求等问题,提出了一种基于时间拓扑排序的航天器资源约束处理方 法,用于在航天器的自主任务规划中计算星上资源使用情况。
[0006] 本方法首先根据动作的执行时间,对规划结果中的动作进行拓扑排序;然后根据 动作改变资源数量的情况,将资源约束网络中的动作进行分层,分别处理每次资源突变,提 高计算资源数量过程的效率;特别适用于深空探测中航天器任务自主规划中的资源管理。
[0007] 基于时间拓扑排序的航天器资源约束处理方法具体包括如下步骤:
[0008] 步骤一,航天器自主任务规划生成动作序列、任务执行过程中的多个动作及其执 行时间、各个动作之间的时间约束、每次动作执行所需的资源约束。其中,动作序列表示为 A= {ai,a2,…,ai,…,an}。为规划结果中包含的动作。动作之间的时间约束为每两个动 作发生的时间间隔。动作的资源约束为航天器每一个动作执行开始与结束时对资源数量的 改变。
[0009] 当动作%需要使用一种资源r时,设资源r的数量q ,只在动作a i的开始时刻< 或结束时刻< 改变,将每次资源数量的改变描述为一次资源突变S。根据动作序列,针对 每一种所需使用的星上资源,分别生成一个资源突变集。
[0010] 步骤二,根据步骤一所述的资源突变集,以资源突变S的执行时间t为判据,对各 个资源突变集中的资源突变进行拓扑排序并按时间先后顺序标号,生成具有分层结构的资 源约束网络G K。&表示动作序列中所有资源约束。具体方法为:
[0011] 步骤2. 1,根据资源突变的执行时间,将最早执行的资源突变对应的点的序号记为 1,然后根据时间顺序依次增大后续资源突变点的序号。标记序号的同时,将所有资源突变 点按照资源数量的改变标记为生产突变点v Pi与消耗突变点v Cj。
[0012] 所述生产突变点表示该点对应的资源突变生产资源,增加了系统资源数量。
[0013] 所述消耗突变点表示该点对应的资源突变消耗资源,减少了系统资源数量。
[0014] 步骤2. 2,对所有资源突变点进行分层处理,得到GK。心分为四层:源点〇、生产突 变层VP、消耗突变层V。、汇点t。生产突变层VP的各点与源点〇之间的边均为生产边EP, 生产突变层V P和消耗突变层V。的各点之间的边均为内部边E z,消耗突变层V。的点与汇点 t之间的边均为消耗边Ec。
[0015] 步骤2. 3,在分层处理后为每条边增加一个流量值。流量初始值设置为0,并且在 使用时不得超过该条边的容量。
[0016] 所述容量为每条边上流量的最大值。生产边的容量EP设置为与生产边相连的生 产突变点v Pi所对应的生产突变增加资源的数值,消耗边的容量E。设置为与消耗边相连的 消耗突变点所对应的消耗突变减少资源的数值,
[0017] 步骤三,从源点〇向生产突变层VP进行流量推进。根据从小到大的标号顺序,依 次选择每个生产突变点V pi,并在生产边EPi= ( 0,v Pi)上从源点0向生产突变点vPi进行 饱和推进。进行饱和推进时,将^,的流量值设置为E Pi的容量。对于vPi,当序号大于i的 资源突变均为生产突变时,结束步骤三,执行步骤四。
[0018] 步骤四,从生产突变层VP向消耗突变层V。进行流量推进,再从消耗突变层V。向汇 点T进行流量推进。具体方法为:
[0019] 步骤4. 1,根据从小到大的标号顺序,依次选择生产突变点vPi;
[0020] 步骤4. 2,对于一个生产突变点vPi,根据从小到大的标号顺序,选择所有标号大于 消耗突变点v (j > i),在内部边EiZ (v Pi, vCj)上从生产突变点vPi向消耗突变点v Cj 进行饱和推进;
[0021] 从生产突变点vPi向消耗突变点进行饱和推进具体为:用选定的生产突变点v Pi 的生产边EPi= (〇,vPi)的流量减去与当前选定的内部边的流量,得到EPi的可用流量; 然后将内部边E I= (vPi,vCj)的流量值设置为EPi的可用流量,并将生产边E Pi的流量值减去 EPi的可用流量。
[0022] 步骤4. 3,对步骤4. 2中完成饱和推进的消耗突变点vCj,在消耗边Ec= (v Cj,t) 上进行饱和推进;
[0023]所述的在消耗边Ec= (vCj,t)上进行饱和推进具体为:用消耗边ECj= (vCj,t) 的容量减去Ec的当前流量,可以得到Ec的可用流量;如果E c的可用流量大于步骤4. 2中选 定的内部边EI= (v Pi,vCj)的流量,则将Ec的流量加上E x的流量,并将E x的流量设置为0 ; 如果Ec的可用流量小于等于步骤4. 2中选定的内部边Eu= (VppVq)的流量,则将Ec的流 量设