APP下载

载人火箭故障检测与逃逸控制软件可靠性设计

2022-03-10路长刚王晓鹏亓俊卿

导弹与航天运载技术 2022年1期

钱 航,黄 晨,路长刚,王晓鹏,亓俊卿

(北京宇航系统工程研究所,北京,100076)

0 引 言

载人火箭具有故障检测能力,并在重大故障时可实施逃逸。故障检测处理系统(以下简称为“故检系统”)是承担载人火箭故障检测和逃逸控制的关键系统,通过检测火箭的重要飞行参数,按事先确定的判据自动进行火箭故障判别,当发现故障时向有关系统发出逃逸指令和中止飞行指令,迅速将载人飞船的返回舱和轨道舱带离危险区,利用飞船的返回着陆系统完成逃逸救生任务。正常飞行至120.4 s时完成备保抛逃逸塔动作,即若逃逸塔已分离则不动作,若未分离则发出逃逸塔分离指令。完成系统核心功能的是两项关键等级为A级的箭上软件:故障检测处理飞行软件和逃逸程序控制软件。

故障检测处理飞行软件(以下简称为“故检软件”)是一个嵌入式的实时测控软件,运行于火箭仪器舱中(如图1所示)的故障检测处理器上。

图1 载人火箭结构Fig.1 Basic Components of Manned Launch Vehicle

其工作时间为:从火箭起飞前30 min开始运行到船箭分离为止,大约40 min。正常时,从外部获取火箭状态信息(如:过载、姿态角、分离信号、关机信号、程序角等),按照火箭故障模式判别准则进行状态判断,按飞行时序发出相应的指令信号;若火箭出现异常,则按判据要求发出“逃逸”等控制指令。

逃逸程序控制软件(以下简称为“逃逸软件”)是一个嵌入式的实时测控软件,运行于火箭整流罩内(如图1所示)的逃逸程序控制器上,其工作时间为:从火箭起飞前30 min开始运行到整流罩分离为止,大约运行33 min。正常时,完成120.4 s备保抛逃逸塔的功能,即在120.4 s检测逃逸塔是否分离,若分离则不动作,若未分离则执行抛逃逸塔功能。在故障时,逃逸程序控制软件接到逃逸信号后,根据运载火箭当时的飞行状态输出相应的逃逸时序信号给火工品装置,实现逃逸功能。

为保证载人运载火箭的可靠性和安全性,确保航天员的生命安全和顺利执行飞行任务,故障检测和逃逸控制软件可靠性设计是全箭工作的重点之一。该两项软件作为故检系统的核心箭上软件,在满足功能性能要求外,也需要在硬件正常情况下,软件不会误报也不会漏报,这要求软件具有良好的可靠性。故检逃逸软件开发周期较长,需要经过需求分析、概要设计、详细设计、程序编码,编码完成后需要进行代码规则检查、静态分析、代码审查、单元测试、配置项测试、第三方测试、系统联试等测试验证项目,错误和缺陷会渗透到每一个环节。另一方面,该箭上软件随型号使用周期较长,跨度达到十多年甚至更久,中间进行若干次重要更改,型号软件人员也不断更迭,需要对软件可靠性及软件质量进行提高和监管。因此,该箭上软件可靠性设计就显得尤为重要。

1 功能与可靠性逻辑

故障检测处理飞行软件是一个嵌入式的实时测控软件,程序结构设计采用树状结构图,包括主处理模块、手动逃逸中断、起飞中断、遥测中断、控制系统中断、同步中断等模块,其中主处理模块循环执行,周期为20 ms,在软件启动时执行;5个中断为外部中断,中断产生时执行。另外,为防止误中断影响软件的运行,设计时钟中断、箭地中断和错误中断占用剩余3个中断,这些中断进入后即退出,不做实际处理。故障检测处理飞行软件功能框图给出了整个软件的调用关系,如图2所示。

图2 故障检测处理飞行软件功能框图Fig.2 Functional Block Diagram of Flight Software for Fault Detection and Processing

故障检测处理飞行软件可靠性框图描述功能模块的处理逻辑关系,如图3所示。

图3 故障检测处理飞行软件可靠性框图Fig.3 Reliability Block Diagram of Flight Software for Fault Detection and Processing

逃逸程序控制软件是一个嵌入式的实时测控软件,程序结构设计采用树状结构图,包括主程序模块、紧急关机处理模块、抛逃逸塔处理模块、三取二判定处理模块、逃逸处理模块、起飞中断模块、逃逸中断模块,其中主程序模块循环执行,无周期,在软件启动时执行;4个中断为1个内部中断,为高优先级(时钟中断),其他为外部中断,为低优先级(中断的查询顺序:起飞中断、逃逸中断、接收逃逸参数中断),中断产生时执行。逃逸程序控制软件功能框图给出了整个软件的调用关系,如图4所示。

图4 逃逸程序控制软件功能框图Fig.4 Functional Block Diagram of Escape Program Control Software

逃逸程序控制软件可靠性框图描述功能模块的处理逻辑关系,如图5所示。

图5 逃逸程序控制软件可靠性框图Fig.5 Reliability Block Diagram of Escape Program Control Software

2 可靠性关键项目

FMEA是型号产品研制基础,是做好单点故障、特性分类、3类关键特性等工作的前提。对故检逃逸软件进行全面识别3类关键特性并采取有效控制措施。

严酷度是指故障模式所产生后果的严重程度,为软件FMEA分析的重要成果,一般分为4类,即Ⅰ类(灾难的)、Ⅱ类(严重的)、Ⅲ类(一般的)、Ⅳ类(轻微的)。严酷度等级引用于中国航天行业标准QJ3050A-2011《航天产品故障模式、影响及危害性分析指南》,软件故障模式影响的严酷度等级,见表1。

表1 软件故障模式影响的严酷度等级Tab.1 Severity Level of Software Failure Mode Effects

故检软件根据严酷度等级为Ⅰ类和Ⅱ类,得出关键项目清单见表2。

表2 故检软件关键项目清单Tab.2 Key Projects List of Flight Software for Fault Detection and Processing

逃逸软件根据严酷度等级为Ⅰ类和Ⅱ类,得出关键项目清单见表3。

表3 逃逸软件关键项目清单Tab.3 Key Projects List of Escape Program Control Software

3 可靠性设计准则

根据型号可靠性设计规定,以及故检系统“不漏逃、不误逃”的要求,明确了作为箭上A级软件的故检逃逸软件适用范围,主要准则要求包括:

a)系统应进行初步危险分析,明确系统级的危险事件,软件研制人员应参与系统的初步危险分析工作,可靠性与安全性要求应在软件研制任务书中明确提出;

b)软件研制各阶段均应开展可靠性与安全性工作,将结果文档化并保持一致性和可追溯性;应在需求分析阶段开展软件需求的安全性分析和验证工作;应在设计阶段开展软件设计的安全性分析和验证工作;应在测试、系统联试阶段,针对需求分析、设计、实现阶段及其它阶段未分析或验证的安全性内容开展软件安全性测试;

c)对于A级软件,必须明确其冗余和容错要求,并进行多版本程序设计,限于条件不能进行多版本程序设计时,应采取其他技术措施以确保安全性及可靠性;

d)对于A级软件,失效容限为2。可根据实际情况,采用软硬件结合的方法达到容限目的;

e)软件可靠性、安全性需求中必须包括对各种不期望事件加以适当响应的要求;

f)对于实时嵌入性关键软件成份,应通过采用适当的采样周期和适当的软件工作时序来保证其可靠性和安全性;

g)应根据型号可靠性大纲和安全性大纲的要求,进行软件FMEA和软件安全性分析。

4 可靠性设计方法

故检逃逸软件可靠性设计的本质是在满足总体任务书功能性能和遵循可靠性设计准则要求的前提下,在软件研制周期内使用各种方法来满足软件的可靠性要求。这些方法分为避错设计、查错设计、纠错设计、容错设计和余量设计。这5种设计方法贯穿在整个软件研制周期。

4.1 避错设计

故检逃逸软件采取了以下避错设计实施方法:

a)严格按照软件工程化的方法进行设计工作。在设计阶段精心完成《需求规格说明》,并同具有丰富经验的需求专家和软件可靠性专家一起分析、讨论,细心划分每一项功能;在编码阶段遵循《921工程软件工程化技术标准》中C语言安全子集以及相关编程规范,严格依据《概要设计》和《详细设计》完成软件编码。

b)加强软件顶层设计。软件设计充分估计接口间的各种故障,并采取相应措施;软件设计采用结构化或面向对象的设计方法,尽量采用重用模块,提高软件的模块化水平,模块要高内聚、低耦合,注意模块的扇入扇出数。

c)加强软件编码变量与逻辑避错能力。

1)避免使用位判断,而是将位信息转化为字节信息,避免了因某一位跳变而引起误判,比如,故检软件发送给逃逸软件的逃逸参数中推力挡板是否打开只有两个状态:打开与不打开,为避免位信息出错,将该状态位转化为字节信息,仅该字节前4位或后4位推力挡板对应数据位为“1010”时,表示Ⅲ象限或 Ⅳ象限控制发动机推力挡板打开;

2)不用全0或全1表示逻辑零或逻辑一,而是用有意义的46H和31H(数字之后加H或之前加0x为十六进制)来表示,比如,逃逸软件中起飞标志、紧急关机标志、抛塔标志、逃逸标志、检测密封板解锁信号、检测返回舱分离信号等所有箭上使用的标志和信号均采用46H/31H表示动作无效/有效;

3)不用0或1表示逻辑假或逻辑真,而是用有意义的0xAA和0x55来表示,比如,故检软件在代码最开始就进行宏定义#define false 0xAA及#define true 0x55,相关函数中含有大量关键状态逻辑判断,通过用有意义的0xAA和0x55替换后,避免了0/1意外跳变后重大状态误判;

4)常数和变量的标识分开,代码中的数字量用常量取代,比如,故检软件在代码最开始采用将常量进行集中宏定义,再对全局变量进行集中定义及初始化,代码中的数字量诸如时序T1-、T1+、T2-、T2+等用常量代替;

5)软件低空逃逸处理逻辑采用通用化代码,故检逃逸软件原固定III象限控制发动机点火变更为II象限或III象限控制发动机点火,为避免采用两套代码实现该逻辑,也为避免后续增加象限的更改需求,故检逃逸软件均采用通用化代码设计,一套代码能够适应4个象限,该项更改在CZ-2F Y12载人飞行任务中得到验证;

6)故检软件要求实时检测故障,避免漏检,采用周期循环工作制,每个周期设置为20 ms;

7)为防止故检软件飞行时间超过船箭分离一定时间后时钟计数器溢出,在时钟计数器到达该时间后将其清零。

d)加强软件测试。对程序进行了多次代码走查,并进行了静态测试、单元测试和确认测试,尽可能提高语句和分支覆盖率,对某些确实难以测到的语句和分支均做了详细的说明;完成编码和开发方测试后提交具备资质的第三方进行测试。

e)制定了软件问题报告单、修改记录单和试验记录,控制住软件的修改过程。

f)编制了模块关系树形图,对程序结构一目了然。

4.2 查错设计

软件设计注意数据有效范围,进行数值运算时对关键数据应进行合理性判断,记录故障并采取故障隔离的处理措施。比如,故检软件对于故障判据信号超值域、控制通信故障和遥测故障这3种异常,会通过对相关信号多次检测判出,记录该故障后切换判据。

在设计接口时,对数据通讯首先确定数据传输协议,然后根据确定的数据传输协议,在数据传输之前对数据传输通道进行正确性检测,以确保数据传输的正确性;数据传输开始后,通过奇偶校验方法来验证数据传输的正确性。

逃逸参数是故检软件发给逃逸软件的数据,关系到发射台及低空逃逸的安全性。因此,逃逸参数中控制发动机点火时间、控制发动机点火方向、推力挡板是否打开这3项数据均是3遍重传,并增加了2个字节作为校验和。逃逸软件接收该数据后会依次进行以下多重查错方法:是否是完整1帧数据、校验和是否相等、数据三取二、逃逸时间合理性判断、挡板方向的合理性判断,确保接收到正确的逃逸参数。该项更改在CZ-2F Y12载人飞行任务中得到验证。

4.3 纠错设计

为避免干扰信号影响故障判断的准确性,开关量信号和模拟量信号都采用了以一定时间为间隔多次采集,采集到数据后再进行可靠性判断的方法。比如,故检软件中对A/D信号和开关量信号的读入处理,为防止数据有误,各个参数均采集3遍。

所有中断触发的功能在响应中断后还要对触发信号进行确认,以免误动作。比如,故检软件中所有中断处理函数中还要对触发标志或指令连续读入3遍确认后再执行。

为防止误逃或漏逃,故障检测是在连续检测到3次同样的故障时才发出报警或故障。

4.4 容错设计

软件中做了相关的容错设计。如:

a)所有的故障、报警门限值采用三冗余的方法,确保查到数据的准确性;

b)由于故检软件一定时间之前的程序角为预置,采用3套相同数据冗余,确保正确;

c)某些重要的变量有两个备份,做三取二判定后才使用;

d)对串口状态进行限时判定,若硬件出问题,软件能够跳出该功能,避免停滞;

e)所有中断必须进行误中断处理,即进入中断后立即返回。

4.5 余量设计

在遵从可靠性准则过程中,软硬件结合共同形成整体可靠性提升。故检逃逸软件都使用软件级三冗余设计,假设在飞行中1个单机(含软件)发生故障,系统能够通过比较、判断、筛选掉异常或错误的输出,仍满足系统功能要求;故障检测和逃逸控制软件的各重要变量、标志、故障限、报警限均使用3冗余、3中取2判定等方法确保软件可靠性。同时,对软硬件性能也做了余量设计。

a)故检软件三冗余设计。

逃逸软件在确定方案时,既要保证软件可靠性指标的要求,又不要使系统过于复杂,采用了软件三冗余和接口冗余的设计方案。确定设计方案为故检软件相互独立冗余工作在3套CPU主机板,CPU使用了经多次飞行考核的成熟技术,而重要接口,例如对姿态角、过载信号、加速度信号、捷联信号等模拟量的采集采用三冗余,对分离信号、指令输入信号及切换信号的录取也采用了三冗余的技术,对指令输出采用四重逻辑设计,输出级采用串并结构,控制级与输出级隔离,采用错位控制等方法,确保防误报以保证火箭正常时的安全飞行,不致造成由于故检软件误报而造成飞行失败。对于起飞、紧急关机、手动逃逸3个非常重要的中断源采用三套接收,三取二判别等措施以保证中断的可靠性。

b)逃逸软件三冗余设计。

逃逸软件是为了在火箭故障时,根据逃逸指令发出火工品指令,与飞船系统协调完成逃逸时序控制的关键软件。由于其使用上的特点,系统要求正常动作可靠性为0.999,不误动作的可靠性为0.9999。为此,根据可靠性指标及功能要求,在设计上,首先考虑到高可靠性要求,确定设计方案为逃逸软件相互独立冗余工作在3套CPU主机板,火工品时序输出电路采取三中取二冗余表决输出形式;同时为了满足上述的设计思想,在电源设计上使3块逃逸软件CPU板相互独立供电,火工品输出表决电路采用并联冗余供电模式,从而构成一个系统级冗余。

c)性能余量设计。

软件设计考虑了空间余量(软件的内存余量不小于20%)和时间余量(软件运行周期的时间余量不小于20%),合理安排各功能的处理顺序。

5 关键项目控制措施

根据可靠性设计方法对FMEA识别出的关键项目制定控制措施,表4和表5分别给出故检逃逸软件控制措施。

表4 故检软件关键项目控制措施Tab.4 Key Projects Control Measures of Flight Software for Fault Detection and Processing

表5 逃逸软件关键项目控制措施Tab.5 Key Projects Control Measures of Escape Program Control Software

识别出的故检逃逸软件严酷度等级为Ⅰ类和Ⅱ类关键项目,均应用了可靠性设计方法提供预防、纠正措施,证明了可靠性设计方法的正确性和完备性。

6 结 论

通过以参与载人火箭飞行任务的故障检测和逃逸控制软件作为主要研究对象,先对软件功能及可靠性逻辑进行分析,通过FMEA识别出可靠性关键项目,提出软件可靠性设计准则,并以具体软件实现为例说明可靠性设计的5种方法,最后根据可靠性设计方法为软件关键项目提供控制措施,证明了可靠性设计方法的正确性和完备性。