王丹 徐进 陈丹
(1 中国空间技术研究院载人航天总体部,北京 100094)(2 中国空间技术研究院,北京 100094)
飞行程序是航天器在飞行过程中为实现飞行任务所执行的指令序列,其设计过程是一个为飞行任务选择合适的动作、状态、执行时间、执行条件和资源分配的过程。传统的飞行程序设计方法是:由航天器设计工程师根据飞行任务需求及航天器的各种设计约束条件,通过人工手段设计出合理的飞行程序;地面飞控实施单位根据设计的飞行程序和在轨实时测定轨的结果,生成向航天器注入的飞行程序,并由航天器研制单位检查确认后在测控区内向航天器实施注入。由于航天器设计状态的复杂,一个功能可能需要多个分系统协同完成,紧急情况下对飞行程序的生成时间有很高的要求,且完成飞行任务的方案,尤其是故障的处理方案对测控资源有很强的依赖,在航天器飞控任务中需要投入大量的人力和物力确保飞行程序的实时性和准确性。因此,有必要改进传统的飞行程序设计手段,研究更智能、更高效的飞行程序设计方法。
航天器自主管理是航天器发展的大趋势[1],包括自主规划、自主导航、自主控制、自主故障诊断等方面,NASA 从20世纪80年代开始研究自主管理技术,并于1999年在深空-1(DS-1)探测器上成功实施了自主管理试验[2]。DS-1通过自主规划和智能执行模块[3]实现了将使命级的高层任务请求进行规划、推理输出执行任务飞行程序的目的。在DS-1的基础上,NASA 开发了连续行为调度、规划、执行与重新规划(CASPER)系统[4-7],在对地观测项目和火星探测项目中应用,实现了规划的实时修正。国内航天器的自主管理水平也在不断提高,目前已成功实现了自主交会对接,部分小卫星通过设计自主指令的方式实现了一定程度上的自主管理[8],但在自主规划方面的应用较少,只对航天器自主规划的系统框架进行了研究[9-10],并未涉及系统实现的具体方法。本文以执行交会对接任务的载人航天器为应用为背景,提出将自主规划技术应用于载人航天器的飞行程序设计,并设计了自主规划系统,可减轻地面飞控人员的压力,进一步提高航天器的自主管理水平。
航天器任务规划的主要目的是根据用户级的任务需求,产生完成任务需求且满足各分系统约束条件的飞行计划,并通过一系列的飞行指令或操作实现飞行计划,即生成飞行程序。航天器自主规划,要求航天器通过一定的算法自动完成从使命级用户需求到飞行程序的转换处理。一般,自主规划系统由知识库、数据库和规划推理机3个部分组成[1],如图1所示。
图1 自主规划系统模型Fig.1 Autonomous planning system model
知识库用于描述航天器模型知识,包括航天器的构造、功能以及完成各种功能所需要执行的动作和满足的各种约束条件。数据库用于动态维护航天器的实时状态,在接受初始状态输入后,根据飞行过程以及飞行程序的执行结果实时更新。规划推理机接收到用户级的任务请求后,利用知识库的航天器模型推理可用于完成任务的动作,以及搜索对应动作的约束条件,将约束条件作为操作符,通过约束传递的方式搜索出所有约束条件都满足的指令序列,约束条件的操作处理要使用的航天器状态和资源类信息从数据库中调取。
以交会对接为目的的载人航天器,每次飞行的主要任务安排基本是事先确定的,如入轨后要设置哪些运行状态、经过几次轨道机动完成交会、何时对接、何时分离、何时开展哪些在轨试验等,无法确定的是每个具体动作的执行时机,因为这些与飞行轨道、载人航天器自主控制结果密切相关。因此,任务中的飞行程序控制,主要是根据实时测定轨数据计算航天器进出测控区的时间、交会对接的两航天器的相对距离等信息,再根据计算得到的信息生成与上述信息存在严格约束的事件指令。已知的任务安排加上实时的载人航天器状态(含轨道)数据,即是飞行程序设计的条件。我国的载人航天器飞行程序可分为以下两部分内容。
(1)进出测控区程序:这部分飞行程序反映的是测控覆盖情况,其功能是在载人航天器从测控区外进入测控区内时打开天地链路通信设备,将遥测数据从存储模式切换到下行模式,供地面人员监视状态。从测控区内到测控区外时执行相应的逆过程。进出测控区飞行程序只与飞行轨道和测站位置相关。
(2)执行具体任务的事件程序:这部分飞行程序与飞行任务安排相关,如轨道控制发动机开关、太阳翼控制、敏感器切换和飞行模式切换等,每一项任务又要考虑测控覆盖条件、航天器运行状态,即要使用进出测控区程序中的信息和载人航天器实际运行过程中产生的状态信息。
基于上述特点,对于载人航天器,一个高级任务安排需要由哪些动作序列完成可直接在知识库中固化,通过知识库模型描述动作序列的约束条件,规划推理只要完成约束条件的操作处理,可简化规划推理的复杂度。载人航天器的飞行程序管理和数据管理,均由数据管理分系统的中心计算机完成,航天器的状态信息可从该计算机中的数据提取,因此载人航天器的自主规划系统不用独立设置数据库模块,只要重点设计知识库模块和规划推理机。
飞行程序自主规划系统(见图2)由测控覆盖计算模块、知识配置模块和规划调度模块3个部分组成。
图2 载人航天器飞行程序自主规划系统结构Fig.2 Autonomous planning system structure of manned spacecraft flight procedure
测控覆盖计算模块根据控制分系统提供的载人航天器位置,完成载人航天器与测控区相对位置的计算,作为规划调度模块的测控约束输入条件。知识配置模块为规划系统的基础模块,包括指令知识库和任务安排库,是规划调度模块的知识输入。其中:指令知识库根据载人航天器的设计状态,将固定时序关系的指令封装成指令集,用计算机可理解的语言描述指令发送的约束条件;任务安排库为事先确定的高层任务序列。规划调度模块作为自主规划系统的中央模块,可根据飞行任务安排调用指令知识库、测控覆盖计算结果、载人航天器的实时运行状态,通过规划推理得到满足各方面约束条件的飞行程序,同时还可进行紧急故障情况下的调度管理和应急飞行程序的生成。
此外,自主规划系统还设置了与其他分系统的数据交互接口,可从控制分系统接收载人航天器姿态轨道数据及故障状态等相关信息,从推进、热控、电源等其他分系统接收相应的在轨运行状态信息。同时,为增加系统灵活性及保证飞行安全,还设置了地面直接干预的接口,可根据地面飞控人员的需要进行修改或配置。
测控覆盖计算模块是根据控制分系统提供的载人航天器当前位置计算其是否在地面站或中继测控区内,并给出进出测控区的状态信息。进出地面站和进出中继测控区的计算方法类似,以中继为例,具体步骤如下。
(1)从控制分系统获取载人航天器当前的轨道位置信息,得到载人航天器在大地直角坐标系下的坐标。
(2)根据事先存储好的中继卫星位置信息,实时计算从当前载人航天器指向中继卫星的矢量,以及航天器中继天线轴向矢量,由两矢量可计算出载人航天器可见中继卫星的仰角。
(3)对中继卫星观察载人航天器的仰角进行实时判断,当仅满足进中继测控区的仰角条件时,生成进测控区的状态信息;当仅满足出中继测控区的仰角条件时,生成出测控区的状态信息。进出测控区的仰角阈值,根据载人航天器的飞行轨道高度计算。
进出地面站与进出中继测控区的计算,区别仅为仰角矢量为地面站指向载人航天器的矢量与指向地面站正上方的矢量夹角。
根据上述测控覆盖计算,除了可以给出进出地面站、中继测控区的状态信息外,还可以得到当前载人航天器与每个地面站、中继卫星的相对位置关系,作为规划调度模块的测控约束输入条件。
知识配置模块是载人航天器自主规划要用到的与其任务、功能相关的知识,包括指令知识库和任务安排库两部分。
4.3.1 指令知识库
飞行程序是由一条条飞行指令组成的,但指令知识库不是简单的飞行指令罗列,而是根据飞行指令的功能、逻辑关系以及约束条件对飞行指令进行封装,从而建立规划调度模块能够识别并能正确执行的飞行指令。指令知识库中封装好的指令,是一个个附加有约束条件描述的指令集。
1)指令集定义
载人航天器的动作最终由指令完成,一个动作可能由一条指令独立完成或多条指令按照固定时序共同完成,为了减少重复动作对指令的操作,将完成常用动作且存在固定时序关系的一段指令序列封装成一个指令集,可将指令集中任意一条指令作为指令相对时的零时刻。完成指令集的封装后,后续对指令集的操作等同于单指令。
2)指令发送条件描述
指令的发送时机受载人航天器的各种特性所约束,包括载人航天器所处轨道位置的测控覆盖条件、与其他飞行事件的先后时序关系、某个特征点时刻、其他分系统状态条件等方面,将这些约束条件用计算机可以理解的语言,封装在指令(集)中,每个指令(集)定义一个指令(集)ID,指令(集)约束条件的描述形式如表1所示。
表1 飞行程序指令发送约束条件描述Table 1 Constraint conditions of flight procedure command
(1)测控约束用于描述要求载人航天器所处的测控条件,偏移量可取大于等于0 的任意值。如(CM,A,2,0,10)表示进入第2 圈、A 测站、0°仰角后10s的时刻发送该指令。
(2)协同约束用于描述指令与指令之间的协同关系,偏移量可取任意值。如(CR,LP1,-10)表示LP1指令发送前10s时刻发送该指令。
(3)特征点约束用于描述指令与特征点的协同关系。特征点包括交会对接的两航天器相对距离特征点、航天器飞行高度等,在控制分系统中定义,由控制分系统给出特征点取值时刻;偏移量可取任意值。如定义CP001表示两航天器相对距离100m,(CP,CP001,0)则表示在两航天器相对距离100m 时刻发送该指令。
(4)状态约束用于描述要求载人航天器各分系统所处的状态,由各分系统的状态参数取值表征。状态参数取值可由一个或多个参数进行逻辑运算;偏移量可取大于等于0 的任意值。如(C001==0x01&&B002>4.0,0)表示要求C001参数取值为0x01,且B002参数取值大于4.0时发送该指令。
(5)绝对时间用于地面直接指定指令发送时刻,在紧急情况需要地面直接干预时使用。
4.3.2 任务安排库
任务安排库中设置的是事先确定好的飞行任务集合,每个飞行任务中包含若干飞行指令或飞行指令集。任务安排库中的飞行任务,可在每次载人航天器发射前由地面依据设计状态或在轨飞行安排进行装订。这些飞行任务既包括正常飞行任务,也包括各种故障或应急飞行任务,对于执行交会对接任务的载人航天器而言,主要包括以下两方面。
(1)正常飞行任务:包括发射任务、轨道控制任务、交会对接任务、组合体飞行任务、航天员手控任务、返回任务及在轨试验任务等。
(2)故障飞行任务:包括应急救生任务、姿态捕获任务、交会对接紧急避撞任务及应急返回任务等。
规划调度模块是整个飞行程序自主规划系统的核心模块,可通过启动测控覆盖计算,并调用知识配置模块中相应的任务安排和对应的飞行指令约束条件,完成飞行程序的规划,并向各相关分系统分发。此外,通过检测控制、电源、推进、热控等关键分系统的健康状态和飞行状态,可对出现的各种紧急故障,通过终止当前任务,取消后续飞行指令,调用故障处置任务,实现飞行程序的动态管理和调度。
4.4.1 正常飞行程序规划过程
载人航天器正常飞行程序的自主规划流程如图3所示,其主要过程如下。
(1)调用任务安排库,确定当前飞行任务,读取该项任务的全部指令(集)序列;
(2)从指令知识库中读取这些指令(集)的发送约束条件信息;
(3)将指令(集)的协同约束条件作为操作符,通过不停地传递该项约束,将有协同约束的指令按照先后关系排序,产生一个或多个以T0为相对时刻的指令序列,T0可以是测控约束点、特征点或状态约束点;
(4)分别从测控覆盖计算模块、控制分系统和其他分系统获取测控约束、特征点约束和状态约束的条件信息,计算约束条件满足的时刻作为T0代入第3步生成的序列;
(5)将上述计算完成的序列与测控覆盖计算模块的进出测控区序列,按照指令执行时刻排序,并进行综合修正,即得到完整的飞行程序序列。
图3 正常飞行程序自主规划流程Fig.3 Autonomous planning flow for normal flight procedure
4.4.2 紧急故障处理
对于载人航天器,在发射、交会对接或返回过程中出现的部分故障,若处理不及时可能会危及飞行安全,甚至航天员的生命安全。例如,在返回过程中,当控制分系统出现暂时故障须中止返回时,若后续飞行程序仍执行舱段分离操作,将带来不可逆转的严重后果。针对这些紧急故障,首先要求与该类故障相关的飞行事件均安排在测控区内执行,且在有限的地面测控弧段限制下,要求地面人员迅速做出故障判断和处理决策。
针对该项需求,规划调度模块增加了与控制、电源、推进等关键分系统的多个信息交互接口,这些分系统将不健康状态或故障模式以故障码的形式给出,规划调度模块收到编码后,依据事先制定好的故障预案或处理策略进行故障处理,实现飞行程序的动态规划和调度。当出现紧急突发故障或未预料的故障时,规划调度模块将会删除已经规划完成但尚未执行的飞行程序,中止后续飞行程序的规划,只保留进出测控区程序的输出,保证最低限度的飞行程序安排;当故障解除后,根据退出规划时的任务完成状态,继续完成后续飞行程序规划。
本文设计的自主规划系统可由载人航天器数据管理分系统的中心计算机完成,3个组成模块均由软件实现,软件需求明确,在现有载人航天器软件的基础上增加3个模块是完全能实现的。其中:完整的测控覆盖计算模块已在交会对接任务的载人航天器模拟器上验证,规划调度模块的基本思想已在对地观测卫星上应用[10]。自主规划系统与载人航天器上其他分系统的接口,是飞行状态信息接口和故障码信息接口。目前,载人航天器数据管理分系统的中心计算机已具有管理航天器遥测参数信息的功能,分系统的飞行状态可由中心计算机从遥测参数中提取。故障码信息的传递可通过载人航天器上的总线系统,以服务请求的形式提出,由数据管理分系统的中心计算机响应。
本文提出的基于自主规划的载人航天器飞行程序设计,与传统的飞行程序设计相比,大大减少了对地面飞控的人力、物力需求,以及飞行方案对地面测控资源的依赖,通过飞行程序和自主控制的协同设计进一步提高了航天器的自主管理水平。
以载人航天器交会对接任务的提前转出停泊点需求为例。传统的飞行程序设计无法满足该需求,只能按照标称的控制方案执行追踪飞行器向目标飞行器接近过程,采用本文的设计方法,将追踪飞行器的接近程序定义成指令集,并将该指令集的约束条件设计成特征点约束,特征点定义为控制分系统的进入停泊点时刻,即可实现在控制分系统满足提前转出停泊点的条件时飞行程序的自适应调整,为后续的对接过程节省宝贵的测控弧段。
载人航天器的返回控制过程也可以体现出本文设计的优势。在传统模式下,要求返回控制过程必须在测控区内执行,采用本文的设计方法,最紧急的处理程序由载人航天器自主执行,取消了该事件对测控站的约束,为飞行方案的设计提供了更灵活的条件。
航天器飞行程序对飞行任务的成败起着非常重要的作用,目前飞行程序的设计和实施耗费着较大的资源,尤其是人力资源和测控资源,而且有限的测控资源条件对飞行方案和故障预案设计提出了反约束。本文针对载人航天器的应用背景,提出了通过自主测控覆盖计算和指令约束条件封装实现载人航天器飞行程序自主规划的方法,可减少载人航天器在轨飞行对地面飞控人员、设备和测控资源的依赖。该设计通过特征点、状态、故障码等信息的传递,有效解决了飞行程序管理与控制分系统的协同问题;针对交会对接、返回等控制过程的紧急故障,实现了飞行程序的动态调度和即时自主处置。
(References)
[1]代树武,孙辉先.航天器自主运行技术的进展[J].宇航学报,2003,24(1):17-22 Dai Shuwu,Sun Huixian.Technical overview of autonomous control and on-board data processing for spacecraft[J].Journal of Astronautics,2003,24(1):17-22(in Chinese)
[2]Pell B,Bernard D,Chien S,et al.An autonomous spacecraft agent prototype[J].Autonomous Robots,1998,5(1):29-52
[3]Muscettola N.HSTS:integrating planning and scheduling[R].San Francisco:Intelligent Scheduling,Morgan Kaufmann,1993
[4]Chien S,Sherwood R,Tran D,et al.The EO-1autonomous science agent architecture[R].Washington D.C.:NASA,2006
[5]Estlin T,Rabideau G,Mutz D,et al.Using continuous planning techniques to coordinate multiple rovers[R].Washington D.C.:NASA,2006
[6]Chien S,Rabideau G,Willis J,et al.Automating planning and scheduling of shuttle payload operations[J].Artficial Intelligence,1999,114(1/2):239-255
[7]Chien S,Knight R,Stechert A,et al.Integrated planning and execution for autonomous spacecraft[C]//Proceedings of the IEEE Aerospace Conference.New York:IEEE,1999:263-271
[8]伍保峰,李志刚,李军予,等.面向任务的小卫星自主指令设计[J].航天器工程,2013,22(4):68-71 Wu Baofeng,Li Zhigang,Li Junyu,et al.Design of misson-oriented autonomous commands for small satellites[J].Spacecraft Engineering,2013,22(4):68-71(in Chinese)
[9]李玉庆,徐敏强,王日新.航天器自主规划系统分析与设计[J].吉林大学学报(工学版),2007,37(6):1471-1475 Li Yuqing,Xu Minqiang,Wang Rixin.Analysis and design of autonomous control system for spacecraft[J].Journal of Jilin University(Engineering and Technology Edition),2007,37(6):1471-1475(in Chinese)
[10]代树武,孙辉先.卫星的智能规划与调度[J].控制与决策,2003,18(2):203-206 Dai Shuwu,Sun Huixian.Intelligent planning and scheduling system for spacecraft operations[J].Control and Decision,2003,18(2):203-206(in Chinese)