基于拜占庭故障模式的空天飞行器GNC系统架构研究
2017-05-24石庆峰郎鹏飞李艳美
石庆峰,梁 君,郎鹏飞,李 然,李艳美
(中国运载火箭技术研究院研究发展中心,北京 100076)
基于拜占庭故障模式的空天飞行器GNC系统架构研究
石庆峰,梁 君,郎鹏飞,李 然,李艳美
(中国运载火箭技术研究院研究发展中心,北京 100076)
针对空天飞行器对GNC系统的高可靠性需求,开展了基于拜占庭故障模式的GNC系统架构研究,采用四机三总线架构设计方案,通过系统内总线实现输入数据及输出数据多机冗余比对,防止拜占庭故障的发生,提升了系统可靠性,实现了系统自检测和故障的准确定位及隔离,并具有在线故障诊断、故障自修复功能,同时解决了高动态、强干扰环境下系统自主性较差的问题,提升了GNC系统可靠性和容错性;经分析,该系统架构能够满足空天飞行器在轨、再入复杂任务需求。
空天飞行器 ;拜占庭故障;GNC系统;容错设计
0 引言
空天飞行器是实现“快速、机动、廉价、可靠”进出空间的重要途径,具备可重复使用、长期在轨运行和快速应急响应等特点。是一个涉及多学科、多领域技术的大型复杂系统。飞行器在轨飞行和再入返回面临恶劣复杂的空间环境,加之我国在空天飞行器的研制方面还缺少充分的工程经验,且元器件、原材料和加工水平与国外还有一定差距,在轨段与再入段发生故障的可能性较大,美国航空航天局(NASA)哥达德空间飞行中心对1990年至2001年间全世界主要国家和地区发射的764颗航天器进行了故障统计,有35颗发生了GNC系统故障,而这35颗中有13颗全失效,占发生GNC系统故障航天器数的37 %[1]。GNC系统作为飞行器的核心控制系统,其可靠性直接影响着整个飞行任务的成败。美国在X-37B、“全球鹰”无人机等飞行器的控制系统上均采用了系统容错和重构技术;因此,为了确保飞行器可靠运行,必须提高GNC系统的可靠性,确保在故障发生后,能够及时检测故障和准确定位故障源,从而采取重构措施使故障影响降至最低,因此故障情况下的重构控制设计将大大提高任务成功的概率。
1 提高系统可靠性的手段
在航天器多余度系统设计方面,国际上有多种不同的方法和理论,应对的问题和情况也各不相同。空天飞行属于高性能、高可靠、高安全的任务,飞行器有较强的资源限制条件,因此在多余度体系结构和系统详细设计方面应综合考虑各方因素。提高系统可靠性目前主要有两种措施,一是“避错”设计,即在方案设计阶段就要保证系统无缺陷、无故障发生,该方法实际上是要求系统完美无暇,不能出现绝对的差错,从系统研制的角度来看该设计理念是一种理想行为,按照该方法不仅系统研制代价巨大,而且系统出故障概率为零也不现实。再一种设计方法就是“容错”设计,顾名思义就是即使系统出现故障,但因自身具备强大的容错能力,也能保证系统功能不受影响。可见系统容错设计是航天器应对故障问题最有效的措施。
在系统级故障容错方面,由于空天飞行器需要进行高超声速大气层返回再入和机场着陆任务,因此要求GNC系统在多重故障情况下仍然可以正常连续工作,以保证飞行器关键任务安全。在系统级自动重构方面,目前国际上有几种典型的系统重构策略,如美国喷气推进实验室研制成功的STAR容错计算机,通过采用冗余技术,其可靠性比单一计算机高几十倍,可以对系统出现的各种瞬时、永久、随机和灾难性的故障实现容错。如国际空间站主要应对长期在轨和有人值守的飞行任务情况,优先保证系统长期工作可靠性,并可以通过人工维修和更换使系统二次重构,恢复系统因偶然故障失去的可靠性冗余;X-37主要考虑高速再入时系统的快速重构能力,保证系统在发生故障时可以无缝切换为新的构型,并保证飞行任务安全。
在国内,提高飞行器可靠性的主要手段大多基于“三取二表决机制”。即GNC系统采用三冗余设计方案,该方案虽然在一定程度上达到了容错目的,但该容错机制在系统出现两度故障后将失效,系统容错能力不足。对于空天飞行器来说,高动态连续工作和长期在轨都要求系统具有很高的可靠性,且具备应对多重故障的能力,为了保证系统在两度故障模式下还仍具备容错能力,容错方案设计中必须考虑拜占庭故障模式。根据文献[2]的证明,若要解决一重拜占庭故障,则需要至少4个计算机同时工作。
2 拜占庭故障模式简介
拜占庭问题的最初描述是:n个将军被分隔在不同地方,忠诚的将军希望通过某种协议达成某个命令的一致,但其中一些背叛的将军会通过发送错误的消息阻挠忠诚的将军达成命令上的一致,拜占庭问题就此形成。美国计算机学家莱斯利·兰伯特(Leslie Lamport)[3]证明了在将军总数大于3n,背叛者为n个或更少时,忠诚的将军可以达成命令上的一致。
从工程的角度来说,一个可靠的系统必须能够应对多重故障模式,发生故障的部件可能会向系统中不同的对象发送相互矛盾的信息,该类故障便可以抽象为拜占庭将军问题。在三模冗余系统中,拜占庭将军问题可简化为图1。
图1 三模冗余模式下的拜占庭问题
3 空天飞行器GNC系统架构设计
3.1 总体设计思路
(1)采用四机冗余及容错设计,以最少部件实现最大冗余,以最少接口实现全周期GNC功能,增强接口匹配能力,减少接口之间的测试、协调;
(2)通过系统内总线实现输入数据及输出数据多机冗余比对,防止拜占庭故障的发生,提升系统可靠性,当某一模块故障后,能够实现自主检测、准确定位。
3.2 系统方案设计
3.2.1 架构设计
空天飞行器GNC系统采用四机三总线架构,四个控制模块和三条总线的结构实现了飞行器安全和高可靠运行。三条1553B总线,完成导航信息及控制指令的传输,实现飞控计算机与敏感器及执行机构的信息交互;采用四机冗余的飞控计算机进行全系统导航信息处理及制导控制指令的发出;采用双冗余或三冗余敏感器完成航天器全任务段信息采集;采用三冗余执行机构来执行飞控计算机发出的控制指令,架构设计示意图如图2所示。
图2 空天飞行器GNC系统架构示意图
飞控计算机包括A、B、C、D四个相同的控制模块(即四备份冗余设计)和仲裁模块;飞控计算机的A、B和C三个控制模块分别作为BC(总线控制器)管理GNC系统的三条1553B总线,D计算机处于温备份状态。A、B和C三个控制模块中的任意一个模块出现故障,D控制模块能够替代故障控制模块作为BC管理故障模块管理的1553B总线。
3.2.2 容错设计
飞控计算机的A、B和C三个控制模块分别接收通过对应1553B总线传输的敏感器信息,D控制模块接收三条1553B总线传输的所有数据,A、B、C和D控制模块将各自接收到的1553B总线传输的数据进行两两之间的信息交互,并将各自接收到的数据发送至仲裁模块(该模块对A、B、C和D控制模块进行仲裁,不接收输入信息,也不输出指令,避免外接口对模块的干扰,可靠性更高);A、B、C、D四个控制模块和仲裁模块分别将交互后各自包含的系统信息进行处理,得到飞行器的实时位置、姿态、轨道信息,并各自结合执行机构状态计算出控制指令,然后将各自形成的控制指令进行两两之间的指令交互,各控制模块将交互完后包含的指令进行表决并通过1553B总线输出最终的控制指令给执行机构;同时通过指令表决的方式判断是否存在故障模块,并将故障模块进行隔离。数据交互比对具体说明如下:
(1)输入比对:各模块分别接收GNC系统1553B总线上的数据,把1553B总线数据转换成飞控计算机内总线数据,通过内总线传递给仲裁模块进行输入数据交换;
(2)输出比对:飞控计算机各模块通过内总线接收仲裁模块经过表决的输出数据,并转化成GNC系统1553B总线数据,经1553B总线输出。
当四冗余飞控计算机中某一模块同其它模块不能同步,或虽能同步但连续多次表决数据不正确以及软件看门狗溢出,则认为该控制模块发生了严重故障,就要进行系统重试,对故障模块进行重构。重试时,三个正常控制模块先将故障模块从系统中切除,使系统降模为三模工作方式,然后将故障控制模块复位或是再加电。
下面以一个具体例子说明飞控计算机内A、B、C、D四个控制模块进行指令交互、表决和判断故障模块的具体实现方式:
假设将飞控计算机A、B、C控制模块分别作为1553B总线1、总线2、总线3的BC,将备份的D控制模块挂在三条总线上(能够管理1553B总线1、总线2、总线3)。
(1)数据交换。
各控制模块和仲裁模块将各自形成的控制指令进行两两之间的指令交互,使得每个控制模块都会生成一个信息矩阵。举例说明:
假定飞控计算机A控制模块发送数据1,B控制模块发送数据2,C控制模块发送数据3,D控制模块发送数据4,而B控制模块出现故障。各控制模块发送自己的数据给对方,也同时发给仲裁模块。其中A、C、D控制模块发送的是其真实值,而B控制模块可能对其他机发送不同的信息。则在第1轮数据交换后每个控制模块和仲裁模块都会有1个所有控制模块的信息,即:
A控制模块[1,a,3,4],B控制模块[1,2,3,4],C控制模块[1,b,3,4],D控制模块[1,c,3,4],仲裁模块[1,d,3,4]。
各控制模块将自己接收到的数据再向其他控制模块转发,这样每个控制模块都会生成一个信息矩阵,即:
仲裁模块
其中:a、b、c、d、e、f、g、h、r、s、t、u、v、w、x、y是B模块向其他模块发送的错误数据;以A模块为例,第一行[1,a,3,4]是1轮数据交换后A模块的数据,第一行的a是B模块发送的,其余分别对应着A模块自己的数和C、D模块的发送的数据;第二轮数据交换是各模块将各自拥有的数据发送给对方,[e、f、g、h]是B模块发送的(因为B模块发送的是错误数据,所以四个数全部是错误的);[1、b、3、4]、[1、c、3、4]、[1、d、3、4]分别是C、D和仲裁模块发送的;
(2)指令表决。
各控制模块和仲裁模块按照少数服从多数的原则进行表决,对信息矩阵的每一列进行选择,如果在某一列中的某个指令的数量大于等于三个(在表决第i列时,应将对应第i行数除外,该行数为自身的数据),则该指令为表决输出的正确指令;如果某一列中不存在数量大于三个的指令,则认为该控制模块故障,同时如果某一列中的指令的数量小于三个,则与其对应的控制模块故障;
在上述例程中,通过表决得到结果如下:
A模块:(1,UNKOWN,3,4);C模块:(1,UNKOWN,3,4);
D模块:(1,UNKOWN,3,4);仲裁模块:(1,UNKOWN,3,4)。
A、C、D三机和仲裁模块一致认为B机发生故障,在表决B机的数据时,虽然没有某个数占多数,但各机中参与表决的4个数是一样的,都是(a,b,c,d),那么各机表决结果也必定是一致的。至此,检测出B机出现故障,并将其隔离。
(3)将步骤(2)判定故障的B控制模块进行隔离。
3.2.3 同步策略
飞控计算机每个控制模块都产生一个用于本地的软时钟信号,时钟周期可根据具体控制方案确定。软时钟可通过模块中的FPGA实现,并根据实际需求确定同步脉冲的占空比。
每个控制模块在被复位后,都会向其他三个模块发送一个“复位准备好标识”,表示本模块已处于复位后待命状态。当每个模块通过FPGA读取到其它三个模块的“复位准备好标识”后,便开始启动运行。这样便实现了四模块的起始同步。
由于每个模块的软时钟都是基于本地钟振产生,而每个钟振之间又存在偏差,所以随着时间的推移,通过FPGA计数器产生的软时钟之间的偏差就会越来越大,为了阻止这种偏差扩大,将其控制在一个可容忍的范围之内,就要定期对四个模块的软时钟进行同步。软时钟同步的主要内容有三项:首先获得其他机器软时钟信息,然后根据这些信息计算得出本地时钟与其他模块软时钟之间的偏差,最后用所获得的偏差对本地软时钟进行修正。
3.2.4 突破的关键技术
采用基于拜占庭故障模式的系统架构降低了飞行器进出空间过程中大过载、高速、高动态环境下GNC系统面临的风险。突破了多余度快速自动重构关键技术。基于关键技术建立的多余度、变结构GNC系统体系结构可以满足系统全任务期间系统容错使用需求,且系统在任意一重故障下能够正常工作,在二重故障下保飞行任务安全;系统自动重构所需时间不大于一个系统控制周期;此外,系统具备自动故障恢复功能,长时间在轨运行可靠性不受偶发故障累积影响。通过对基于拜占庭故障模式的GNC系统架构进行仿真验证,结果满足可靠性要求。具体结果见表1。
表1 控制器单机故障仿真及重构验证结果
4 结束语
基于拜占庭故障模式的架构设计技术是改善空天飞行器GNC系统可靠性的有效手段,基于该技术设计的系统具备高可靠性、多冗余自动重构能力,是发展“高精度、高可靠性、长寿命”GNC系统的关键技术之一。能够满足空天飞行器在轨、再入复杂环境下的任务要求,该设计理念可为后续同类航天器的设计提供参考 。
[1] 林来兴,最近十年航天器制导、导航与控制(GNC ) 系统故障分析研究[J]. 控制工程,2004,(1):1-2.
[2] K PKihlstrom,L E Moser,P M Melliar-Smith.Solving Consen-sus in a Byzantine Environment Using an Unreliable Fault Detector[A].Proceedings of the International Conference on Principles of Distributed Systems(OPODIS)[C].1997.
[3] Leslie Lamport,Robert Shostak,Marshall Pease.The byzantine generals problem[J].ACM Transactions on Programming Language and Systems,1982,4(3):382-401.
GNC System Architecture Research for Aerospace Vehicle Based on Byzantine Failure mode
Shi Qingfeng,Liang Jun,Lang Pengfei,Li Ran,Li Yanmei
(R&D Center,China Academy of Launch Vehicle Technology,Beijing 100076,China)
To meet the high reliability requirement of GNC system for aerospace vehicle (ASV),developing the GNC system architecture research based on the Byzantine failure mode.This architecture is based on four computer processing modules and three MIL-1553B data buses,The comparison of the IO data through the system bus based on multi-computers redundancy.Byzantine fault is avoided,and the system reliability is improved.The GNC system has the function of fault detection ,fault location ,fault isolation and fault self-healing.The architecture solves the high dynamic and strong interference environment problems of the poor autonomy system.In addition,the system architechture can meet On-orbit and Reentry requirements.
aerospace vehicle;Byzantine fault;GNC system;fault tolerance design
2016-10-26;
2016-12-15。
石庆峰(1975-),男,山东临沂人,硕士研究生,高级工程师,主要从事导航、制导与控制方向的研究。
1671-4598(2017)05-0029-03DOI:10.16526/j.cnki.11-4762/tp
TM
A