刘智勇,衣学慧,何英姿,高亚楠,史少龙
(北京控制工程研究所,北京100190)
空天飞行器多余度GNC系统并行处理和故障容错技术*
刘智勇,衣学慧,何英姿,高亚楠,史少龙
(北京控制工程研究所,北京100190)
提出空天飞行器多余度GNC系统并行处理和故障容错设计方法:通过系统输入信息并行采集设计和GNC控制器核心模块并行处理设计提高系统信息采集和处理能力,保证GNC系统的实时性;通过系统输入和输出容错设计,使整个多余度GNC系统在处理周期内具有完备的故障容错能力.该方法具有广阔的应用前景.
空天飞行器;多余度;并行处理;容错
尽管航天飞机运营很成功,但是其发射成本太高,远没有达到人们对它的期望.随后,NASA及其他组织对空间运输方案进行大量研究,其中较为典型的飞行器代表有X-33、X-34、X-38等.进入21世纪以后,空天飞行器成为世界各航空航天技术强国的研究热点,美、俄以及欧洲等不断开展关键技术攻关,相继进行了飞行试验,如X-37B、IXV等.这表明空天飞行器技术已经从概念和原理探索的基础研究,进入了先期技术开发阶段.
在关键任务段,空天飞行器GNC系统故障将导致灾难性的后果[1].航天飞机GNC系统采用四余度容错体系架构,并采用了一系列的自主容错设计,实现了:任意一个故障发生的情况下,系统能够正常工作;任意两度故障发生的情况下(不同时发生),能够安全返回着陆[1].在航天飞机GNC系统设计的基础上,返回试验飞行器ERV[2]、可重复使用载人返回飞行器X-38[3-5]等进一步提高系统集成度、可靠性、实时性和容错能力.
空天飞行器GNC系统是一个对信息的采集、处理和分配执行的闭环系统,可靠性和实时性要求高.空天飞行器GNC系统可靠性要求高,必定要求系统采用多余度设计.多余度GNC系统复杂度高,需进行大数据量通信和大量计算处理,并且需要在短时间内完成,这给GNC系统处理能力提出了挑战.此外,GNC系统采用多余度设计后,只是冗余部分具备替代故障部分继续工作的条件,系统出现故障后,如何实现冗余部分平稳可靠替代故障部分继续工作,从而确保系统可靠运行,是系统设计的关键.
与航天飞机以及X-38等飞行器的GNC系统类似,本文研究的空天飞行器GNC系统采用多余度设计,以满足系统的可靠性和容错性能要求,具体为:惯性测量单元(inertial measurement unit,IMU)、全球导航卫星系统(global navigation satellite system,GNSS)接收机、大气数据系统、空气舵伺服、反作用控制系统(reaction control system,RCS)、着陆滑跑系统等均采用三余度设计,高度表、星敏感器采用双余度设计[1-2].飞行器再入返回实时性要求高,在此期间GNC系统的控制周期为非常小,如X-38为20 ms[4].
空天飞行器返回再入期间,GNC系统使用的敏感器和执行机构包括:IMU、GNSS接收机、大气数据系统、高度表、空气舵伺服、RCS、着陆滑跑系统等,系统需要采集的数据量达到500个字,采用成熟的波特率为1 Mbps的1553B总线通信所需的时间超过10 ms,无法满足系统需求.一种解决思路为:采用新技术,使用高波特率的通信总线,但是技术风险大.另外一种解决思路为:设计输入数据并行采集的GNC系统,即GNC控制器通过3条1553B总线并行采集系统信息,将采集时间将减少为原有的1/3左右,从而极大的提高系统的数据吞吐能力和数据采集的实时性,本文采用的就是这种解决方案.并行数据采集的多余度GNC系统架构如图1所示.
图1 多余度GNC系统架构Fig.1 The architecture of multiple redundancy GNC system
GNC控制器A/B/C/D各机均具有:1)1553B总线通信管理功能;2)导航、制导与控制运算处理功能;3)GNC控制器多机间同步、数据传递和数据表决等功能.E机仅具有GNC控制器多机间同步、数据通信和数据表决等容错相关功能.GNC控制器各机具体功能和容错设计将在后文详细介绍.
正常情况下,GNC控制器的A/B/C各机分别作为GNC系统各条1553B总线的BC,其他部件作为RT挂在1553B总线上.具体工作过程为:GNC控制器通过A机、B机和C机分别采集GNC系统1553B总线1、总线2和总线3上的部件信息;利用GNC控制器的A/B/C/E机构成的1-拜占庭恢复容错结构实现输入容错处理,确保输入一致性,具体设计将在第2节中介绍;GNC控制器的A/B/C各机均调用相同的导航、制导与控制算法形成控制指令,并将指令数据及关键变量进行输出容错处理,确保各机发送给执行机构指令具有一致性,具体设计将在第3节中介绍.
GNC控制器的D机作为备份使用,当A/B/C/ E各机中任意一机故障情况下,D机接替该故障机工作,从而进一步提高系统的容错能力.
GNC控制器通过A机、B机和C机分别采集GNC系统1553B总线1、总线2和总线3上的部件信息,造成GNC控制器的A/B/C各机采集的信息不同(分别为V1、V2、V3),带来了多余度GNC系统的输入一致性问题.本文采用图2所示的输入一致性问题的解决方法,达到GNC控制器A/B/C各机都能得到相同的系统输入信息(V).通过拜占庭容错设计,使得GNC控制器的A/B/C各机有相同的向量值(V1、V2、V3);GNC控制器的A/B/C各机依据一致的向量值(V1、V2、V3),通过多数值容错设计,最终各机具有相同的值(V).所以,系统实现输入一致,需要解决拜占庭容错问题和多数值容错问题.
理论上,可论证的容忍f个拜占庭故障必须满足的先决条件为[6]:
1)至少存在3f+1个故障容错区;
2)每个故障容错区与其它至少2f+1个故障容错区维持独立的通信链路;
3)故障容错区之间必须至少维持f+1轮通信及数据交互;
4)所有故障容错区必须同步到一定的时域内.
符合以上条件的体系结构,称为f-拜占庭恢复容错结构.对应上述定义,本文设计的GNC系统中GNC控制器A/B/C/E构成4个容错区域,架构为1-拜占庭恢复容错结构.
图2 输入一致性解决途径Fig.2 Solution of input data consistency
可以看出,成为实现拜占庭容错,GNC控制器还需要具备:1)各机必须同步到一定的时间域内; 2)各机之间有高速数据通信链路,且各机之间必须进行两轮数据交换.下面介绍各机间同步和高效通信的设计方法.
(1)各机同步设计方法
这里采用的同步为软同步和硬同步结合的时间同步方法,通过GNC控制器各机之间的信息交互完成.GNC控制器各机之间通过初始化建立初始同步状态,然后进入同步保持状态.当GNC控制器某单机由于临时故障失去同步后,可通过同步搜索算法自恢复与其它单机的同步.具体设计详见文献[7].
(2)高效通信机制设计方法
采用额外硬件来连接多机,实现多机间同步、数据通信和数据表决等容错相关功能,而处理器只负责执行应用程序、调度和重构等复杂任务,具体设计见第4节。
在解决了同步设计和高效通信机制后,分析拜占庭容错算法和多数值容错算法问题.
1)拜占庭容错算法设计
各机完成输入信息采集后,GNC控制器经过2轮通信来保证各机获取相同的输入(V1、V2、V3),具体如图3所示.
图3 GNC控制器输入交换Fig.3 Input data exchange of GNCC
以GNC控制器B机获取A机数据为例,A机获取的输入数据为V1,并将V1转发给B、C以及E机,然后四机相互将此数据转发.转发完成后,各机进行数据比对,对于B机而言,收到的4个数据为第一次从A机接收的数据V1_A1、第二次从A机接收的数据V1_A2、C机转发的A机数据V1_AC、E机转发的A机数据V1_AE.由于V1_A1和V1_A2来源相同,只取其中的一个.所以数据比对成为V1_ A、V1_AC、V1_AE的3个数据进行三模冗余(triple module redundancv,TMR)判断.当一个数据出现偶发错误时,可以将其校正.当一个数据长期出错后(例如,c->b线路故障导致V1_AC长期无数据),可将其屏蔽.
2)多数值容错算法设计
各机获取相同的输入(V1、V2、V3),如何保证各机最终使用一致的数据(V).需要说明的是,不同类型的多余度敏感器的多数值容错处理方式不同,本文仅以3套IMU的一种数值容错处理方法为例说明.GNC控制器经过拜占庭容错处理后,GNC控制器A/B/C各机均有3个IMU的测量信息.各机实时对9个陀螺/加计按不同组合进行等价空间故障检测处理[8],从而优选3个陀螺/加计测量信息用于飞行器姿态角速度和加速度的解算.
多余度GNC系统经过输入容错处理后,控制器各机获取了相同的信息用于导航制导与控制解算.导航、制导与控制处理算法是GNC系统核心算法,其故障将导致灾难性后果.设计容错并行算法的目的是在应用级出现单一节点故障,并行程序能实现自动恢复以提高GNC控制器并行计算的可靠性.
容错并行算法是由容错程序段构成的并行算法.容错程序段是容错并行算法的基础,包括数据保存段、程序段以及故障检测纠错段.数据保存段是为了支持正确的复算,保存的并行算法执行过程中的变量值.程序段以导航制导与控制语句为核心,将含有导航制导与控制语句相关的部分作为一个整体,作为一个程序段.故障检测纠错段是通过查询系统故障状态变量,在线感知故障,并将错误状态纠回到正确状态.
GNC控制器运行相同的导航、制导与控制算法后,通过输出数据交换保证执行结果和重要中间变量的每机均能拿到,然后在故障检测纠错段进行容错比对确保数据一致.具体过程如图4所示.
图4 GNC控制器输出容错处理Fig.4 Output fault tolerant of GNCC
通过GNC系统输入容错设计证提供给导航制导与控制解算的输入一致,并且能够诊断出数据交换链路的故障.所以,正常情况下GNC控制器各机利用输入V经过导航、制导与控制解算的结果应该是一致的,即R_A=R_B=R_C.假如GNC控制器某一机计算错误,最后各机通过将获得的三机解算结果进行比对和纠错处理,从而保证GNC控制器各机最终结果的一致性,并诊断出解算错误的单机.
本文以空气舵伺服系统的容错设计为例,研究执行机构如何保证最终执行结果的可靠性.空气舵伺服驱动控制系统与GNC总线1、2、3相连,连接示意图如图5所示.
空气舵伺服驱动控制系统的容错控制设计如下:
1)GNC控制器A机通过所管理的GNC总线1将6个舵面控制指令发送至伺服控制器1,GNC控制器B机通过所管理的GNC总线2将6个舵面控制指令发送至伺服控制器3,GNC控制器C机通过所管理的GNC总线3将6个舵面控制指令发送至伺服控制器3;
图5 空气舵伺服系统架构Fig.5 The architecture of air rudder servo system
2)伺服控制器1/2/3分别利用CCDL(交叉通道数据链路)将本机数据发送给其他机;
3)伺服控制器1/2/3各机均获取了3份控制指令数据,伺服控制器各机对收到的3份命令进行TMR容错判断;
4)伺服控制器各机通过伺服驱动通道驱动舵面,舵面驱动通道是备份的,并且与伺服控制器各机交叉连接的,因此任意一个伺服控制器和驱动通道故障,6个舵面仍能正常工作.
一方面,GNC控制器各机间数据交换量大,需要进行两轮输入数据交换确保输入一致性,进行一轮输出数据交换确保输出一致性,同时GNC控制器同步也需要数据交换.另一方面,GNC系统控制周期特别短的约束,要求GNC控制器各机间数据交换和容错处理所占的时间尽可能短.
从上述设计分析可以看出:在GNC控制器各机间通信与容错处理是实现多余度GNC系统正常可靠运行的瓶颈,为尽可能减少开销,采用专门硬件实现多机间的通信和容错处理.参考文献[9]设计思路,采用额外硬件网络单元(NE)来连接多机,NE实现多机间同步、数据通信和数据表决等容错相关功能,而处理器(PE)负责执行应用程序调度和重构等复杂任务.通过独立的硬件实现并维持多机间的数据一致性,避免主处理器频繁的数据通信和数据表决等任务,减轻主处理器的开销.
基于上述想法,本文GNC控制器的结构方案为:GNC控制器A/B/C/D这4机每机包含:1个接口处理单元(ICP)、1个运算处理单元(PE)和1个网络单元(NE),其中ICP是实现通信处理的1553B接口,PE是执行应用程序的单板计算机,NE是实现同步、数据传递和数据表决等容错相关功能的硬件; GNC控制器E机仅包含1个网络单元(NE).GNC控制器A/B/C/D这4机中任意3机的NE与GNC控制器E机通过完全连接形成1-拜占庭容错架构,具体如图6所示.
图6 GNC控制器架构Fig.6 The architecture of GNCC
GNC控制器A/B/C/D各机通过PE、ICP和NE并行处理,以提高系统的处理能力和实时性,如图7所示.
系统使用时需注意保证 T1>T0,T3>T2,T5>T4,T7>T6,而这些约束往往是容易满足的.例如,由于各个总线最大输入数据采集量是固定的,所以T0的最大值是固定的,据此来设定输入数据交换时间点T1,从而保证T1>T0.其他类同.
图7 PE、ICP和NE并行处理Fig.7 PE、ICP and NE parallel process
针对空天飞行器多余度GNC系统高可靠和强实时性要求,本文提出了一种多余度GNC系统的并行处理和故障容错设计方法.在并行处理方面,首先,GNC控制器各机并行采集系统信息,提高系统信息吞吐能力;然后,在GNC控制器各机内部PE、ICP和NE并行处理,提高各机的处理能力.在容错设计方面,首先,通过拜占庭容错和多数值容错,确保系统输入一致性;然后,通过输出容错比对,确保输出一致性;最后,介绍了执行机构的容错控制设计.本体提出的多余度GNC系统容错和并行处理设计方法,还可应用于载人航天器、客运飞机、高铁列车等可靠性、实时性要求高的控制系统中,具有广泛的应用前景.
[1] HANAWAY J F,MOOREHEAD R W.Space shuttle avionics system[R].Johnson Space Center,NASA Report 19900015844,1989.
[2] DZWONCZYK M J,MCKINNEY M F,ADAMS S J,et al.Avionics architecture studies for the entry research vehicle[R].Johnson Space Center,NASA Report 19890014711,1989.
[3] YHIERRY B,ANDERSON B L.X-38 V201 avionics architecture[R].Johnson Space Center,NASA Report 20000086667,2000.
[4]RICE L E P,CHENG A M K.Timing analysis of the X-38 space station crew return vehicle avionics[C]//Real-Time Technology and Applications Symposium,Proceedings of the Fifth IEEE.New York:IEEE,1999:255-264.
[5] KOUBA C,BUSCHER D,BUSA J.The X-38 spacecraft fault tolerant avionics system[R].Johnson Space Center,NASA Report 20100033681,2003.
[6] PEASE M,LAMPNR L,SHOSTAK S.The Byzantine generals problem[J].ACM Transactions on Programming Languages and Systems,1982,4(3):382-401.
[7]冯丹,江耿丰,刘波,衣学慧,刘超伟.一种星载计算机自稳定容错时间同步算法[J].空间控制技术与应用,2015,41(6):58-62.
FENG D,JIANG G F,LIU B,YI X H,LIU C W.A self-stabilization fault tolerant time synchronization algorithm for an on-board computer[J].Aerospace Control and Application,2015,41(6):58-62.
[8]何英姿,张兵,吴宏鑫.斜装陀螺系统及其故障检测[J].航天控制,1999,18(1):19-23.
HE Y Z,ZHANG B,WU H X.The skew gyro system and its fault detection[J].Aerospace Control,1999,18 (1):19-23.
[9]肖爱斌,杨孟飞,刘波.星载计算机拜占庭容错设计与验证[J].空间控制技术与应用,2008,34(4):17-22.
XIAO A B,YANG M F,LIU B.Design and validation of Byzantine fault tolerance for on-board computer[J].Aerospace Control and Application,2008,34(4):17-22.
Parallel Process and Fault-Tolerance Method for Multiple Redundancy GNC System of Aerospace Vehicle
LIU Zhiyong,YI Xuehui,HE Yingzi,GAO Yanan,SHI Shaolong
(Beijing Institute of Control Engineering,Beijing 100190,China)
A parallel process and fault-tolerance method is presented for the multiple redundancy GNC system of aerospace vehicle.Via parallel design,the input information acquisition ability is improved.The processing ability can be improved by parallel processing of GNC controller core module.Based on the fault tolerant design of system input and output,the redundant GNC system has complete fault tolerance ability.The presented method can be applied widely.
aerospace vehicle;multiple redundancy;parallel process;fault-tolerance
V448.12
A
1674-1579(2016)04-0036-06
10.3969/j.issn.1674-1579.2016.04.007
刘智勇(1984—),男,工程师,研究方向为航天器导航制导与控制;衣学慧(1979—),男,高工,研究方向为星载计算机体系结构;何英姿(1970—),女,研究员,研究方向为航天器导航制导与控制;高亚楠(1977—),男,研究员,研究方向为GNC系统体系结构研究;史少龙(1985—),男,工程师,研究方向为星载计算机体系结构.
*国家高技术研究发展计划(863)资助项目(2012SQ7060502).
2016-02-10