(北京控制工程研究所,北京 100094)
目前我国大多数航天器仍采用地面遥控遥测的控制方法,地面飞控人员预先设计航天器的飞行程序,编排飞行事件,据此生成航天器的在轨注入指令。在执行飞控任务时,以指令序列的形式将指令批量发送至航天器,通过地面遥测信息确认指令的执行情况和各部件的状态。对深空探测航天器而言,由于远距离产生的通信延迟,这种传统的控制方式无法满足对观测信息处理和决策的实时要求[1-2]。以月球探测飞行器为例,与地面之间的往返时延是高轨道航天器的10倍以上,且只有当被探测的月面区域处于地面测控站测控区间内时才能与地面站建立通信链路。另外,由于飞行距离远、任务时间长、环境未知性较强等因素,导致对探测器的可靠性和生存能力也提出了更高要求。
以美国NASA“新盛世”计划“深空一号(DS-1)”飞行任务中自主管理技术的成功应用为代表,航天器自主管理技术使解决该问题成为可能[3-5]。DS-1具有很强的自主能力,能够自主执行拍照序列规划、图像处理和分析、轨道和姿态确定、轨道修正等任务,如轨道修正和图像处理等过去需要大量人员参与的任务都由器上自主完成,甚至不需要地面确认结果,相比Cassini、Galileo项目,地面导航小组人员数量由7~10人降低至4~5人。NASA在DS-1的基础上,又先后在对地观测项目(EO-1)和火星探测项目中进行应用[6-7],指挥人员只需向航天器发送高级的、抽象的任务目标,航天器就能根据接收的任务和自身的状况产生出合理的行动序列。当遇到突发情况时,航天器还能自主调整任务目标,以适应突发情况。
航天器自主管理系统的主要功能包括:自主任务规划、自主故障诊断及系统重构、自主生成指令序列等。目前,国外典型的航天器自主控制系统都采用了基于远程智能体(Remote Agent,RA)的自主管理体系架构[8]。该体系架构主要具有自主规划和诊断的能力:① 自主规划旨在降低深空探测任务对地面站操控的依赖,以提高实时控制能力和故障应对能力,保证在轨长期稳定运行;② 自主故障诊断是通过自主管理软件对比模型预期和系统实际间的差异,从而发现故障。例如,NASA开发的Livingstone软件系统是一个基于定性模型的故障诊断和恢复引擎,实现了在线故障诊断功能[8-11]。
随着以月球探测工程和天问一号火星探测为代表的深空探测任务顺利实施,小行星及其他行星等探测任务逐步进入关键技术攻关阶段,其对航天器自主管理能力提出了更为迫切的需求[12]。本文结合我国深空探测航天器控制系统信息体系结构现状,对未来深空探测航天器自主管理体系结构和软件架构进行了探讨。
借鉴国外航天器远程智能体的设计思想,我国深空探测器控制系统由自主管理功能模块和传统控制软件两部分构成,其关系如图1所示。自主管理体系结构可由以下3个功能模块组成,即规划和调度模块、故障诊断和重构模块及智能执行模块。
规划和调度模块负责平衡规划目标和约束条件的矛盾冲突,将高级命令分解成低级指令,从而确保规划结果满足航天器资源约束。
深空探测器是一个包括时间和资源信息等多种约束的复杂系统,例如,它包括调度问题中的时间约束、具有不同时间区间和资源的活动、优化问题等,还包括规划问题中的活动选择,因此它既具有规划特性又具有调度特性。随着规划技术和人工智能技术的结合,航天器自主任务规划技术逐渐形成两大分支,即以动作为核心的传统规划和以状态为核心的时间线规划。
图1 深空探测航天器自主管理系统框图
传统规划规划方法主要以处理动作逻辑顺序为主体,包括图规划、邻域无关的启发式搜索、类经典规划等。传统规划技术发展较为完善、算法效率高,在机器人规划、生产车间调度等多个领域得到应用,其缺点是无法简洁直观地表述航天领域任务规划的显著时间特性和复杂约束关系,易造成建模的不精确和知识搜索空间增大[13]。
时间线规划是以处理时序状态约束为主体,通过时间线显示探测器控制系统状态变化和约束关系,在一定程度上弥补了传统规划技术的不足,更适合未来深空探测技术的发展趋势。
规划和调度模块的设计思想是通过使用状态时间线知识表示方法实现基于航天器模型、活动约束和飞行规则的航天器自主任务规划。规划系统通过使用等级分解和重复修补的方法,将高级的状态变量描述为一条时间变化线,并用标志(Token)来描述一个时间线上的具有一定时间区间的状态常量。规划算法通过放置这些标志,使其满足所有的资源和时间约束。规划系统使用时间窗口表示标志的开始和结束时间点,在创建和执行调度时都给系统带来了很大的灵活性。图2给出以轨道控制为例进行自主规划的示例。轨道控制是将航天器由原来轨道转变为期望轨道所进行的控制;轨控发动机开机前通常需要进行预热等准备工作,实现轨道控制首先要进行姿态调节(由姿态a调至姿态b),使轨控发动机推力矢量方向与期望指向相同,根据指令进行发动机点火(开机200 s),到达预期速度增量后发动机关机,待姿态稳定后,恢复轨控初始姿态(由姿态b调至姿态a)。
故障诊断和重构模块采用基于探测器模型的诊断方法,跟踪航天器上控制系统的执行情况,并基于智能执行模块的指令以及监测模块的输出诊断硬件状态并反馈给智能执行模块,还可以基于探测器系统总体情况辅助生成容错策略。
图2 时间线规划示例
故障诊断和重构模块由离散系统模型和系统状态跟踪算法构成。通过使用一组多层次的定性逻辑模型来描述系统的行为,能够在最小人工干预的情况下高效、鲁棒地完成航天器或者其他复杂系统的故障检测和诊断任务,并且具有诊断并发多项故障等诸多功能[14-15]。其推理引擎不仅可以基于定性模型搜索故障,而且可以跟踪和预报航天器的运行状态。它主要由两部分组成:① 通用诊断引擎(General Diagnostic Engine,GDE),采用命题逻辑和冲突直接搜索的通用设计,包括MI(Mode Identification,模式辨识) 和MR (Mode Reconfiguration,模式重构)两部分;② 被诊断航天器的定性模型。利用定性表述和命题编辑对不同飞行器诊断对象进行建模。图3为故障诊断和重构工作过程示意图。
图3 故障诊断和重构工作示意图
智能执行模块负责管理遥控指令接收,发起规划申请,根据规划结果生成控制软件的指令序列,并根据指令执行结果决定是否发起重新规划。
参照图1所示的系统框图,表1给出了飞行任务剖面中自主管理各模块的功能。
将自主管理模块视为黑盒嵌入到传统探测器飞行软件中,如图4所示。自主管理模块包括5个软件接口函数:地面遥控指令接收接口、探测器状态监测采集接口、规划调度模块扩展接口和故障诊断专家库扩展接口、规划指令输出接口。
表1 自主管理模块功能说明
图4 软件结构图
由地面发送“探测器轨道入射”高级遥控指令,探测器接收到地面遥控指令后发送给智能执行模块,智能执行模块负责向规划和调度模块发起规划申请,规划和调度模块根据约束条件进行规划,规划完成后将结果发送给智能执行模块。智能执行模块监测到生成规划结果后,将规划结果生成指令序列发送给飞行软件。智能执行模块根据飞行软件反馈数据或者故障诊断和重构模块(Mode Identification and Reconfiguration,MIR)推断结果来确定指令是否正确执行。若监测指令执行失败,智能执行模块会采用替代方案或者由故障诊断和重构模块重构方案再次申请规划。如果智能执行模块无法执行或修复当前规划,则取消规划,清除执行指令,将控制系统进入安全模式。软件执行时序如图5所示。
图5 软件执行时序
以深空探测器行星轨道入射为场景,在Visual Studio开发环境中搭建闭环仿真系统,对探测器自主管理技术的实现进行某些任务功能性初步仿真实验。深空探测器由巡航段转入环绕段的轨道入射任务通常需要执行以下几个步骤。
① 变轨前自主进行敏感器标定、校准。
② 自主执行自主导航任务以精确确定探测器轨道。
③ 根据导航结果自主执行制导律,计算轨控姿态、轨控速度增量。
④ 自主进行姿态机动、控制天线指向,向地面下传导航信标星和目标星图像信息。
⑤ 变轨前保持对日姿态,控制帆板对日。
⑥ 轨控发动机预热。
⑦ 变轨姿态调整至预定指向、帆板自主控制。
⑧ 轨控发动机开机,自主进行姿态控制,监测轨控速度增量、发动机状态。
⑨ 速度增量到达自主关闭轨控发动机。
⑩ 姿态稳定后恢复对日指向。
深空探测器行星轨道入射任务可描述为一组时间线,每条时间线上根据时间关系排列着探测器对应子系统的状态,多组时间线共同定义了探测器在工作过程中的活动流程。通过自主规划模块将这些标志在各自的时间线上进行排列,使其满足时间、资源和飞行安全规则的约束限制。任务规划的结果如图6所示。
图6 任务规划结果
图7~图9为轨控发动机开机期间分别注入发动机故障时,轨控过程中姿态控制及轨控速度增量仿真曲线。可以看出轨控速度增量保持一段时间不变后,航天器自主诊断出发动机故障,切换发动机组后,继续进行正常轨控直到轨控速度增量递减到0 m/s结束。
笔者结合国外深空探测航天器自主管理技术的发展,提出未来我国航天器控制系统自主管理体系结构,通过仿真实验表明采用以“规划和调度”和“故障诊断和重构”为内核的自主管理软件架构,可有效解决航天器在轨应对能力、提升飞控实效性需求,且对现有控制系统信息体系结构具有较好的兼容性。在此基础上,后续将进一步通过构建应用任务域模型,研究基于状态的自主规划方法和基于深度神经网络构建控制系统知识库的可行性,从而提升故障诊断系统性能以及普适性。
图7 轨控姿态角控制
图8 轨控角速度控制
图9 轨控速度增量