被疑酿成波音737MAX空难
上天前,飞控软件要经历这些大考
实习记者 于紫月
短时间内波音737MAX复飞无望了。
近日,美国联邦航空管理局新局长斯蒂芬·迪克森在宣誓就职时表示,暂时没有737MAX复飞的计划,并重申安全是第一要务。美国航空公司也于最近宣布延长波音737MAX机型的停飞时间,停飞时间将延长至12月3日。
众所周知,去年10月和今年3月,印尼狮航和埃塞航空先后发生波音737MAX客机失事事件,该机型随即在全球范围内遭到停飞或禁飞。后调查发现,两起空难皆与客机的自动防失速软件(MCAS系统,即机动特性增强系统,以下简称MCAS)被错误激活有关。
随着自动化程度不断加强,越来越多类似MCAS这样的飞控软件“登”上飞机,那么它们是如何被研制出来的?又如何确保其绝对安全?
标准充当安全研发指挥棒
作为一种自动安全软件,MCAS的设计原理其实并不复杂。简言之,它是通过对飞机迎角传感器信号的判断来驱动飞机控制系统。其可自动将飞机机头向下推,以防止升力损失,从而实现飞机自动安全保护。
“该自动软件只在飞机襟翼收上、处在手动飞行状态时才生效,由飞行控制计算机根据迎角传感器和其他飞机系统输入的信号来控制,无需飞行员下达指令。”北京理工大学软件安全工程技术北京市重点实验室专家闫怀志在接受科技日报记者采访时表示,“这埋下了两大安全隐患:迎角传感器系统若发生故障,那么输入MCAS的信号就可能存在错误;飞机的最高操控权不在飞行员手中,软件安全执行缺少最后一道防线。”
闫怀志指出,在设计MCAS过程中,工作人员利用海量的飞行数据并对其进行智能分析处理,以形成自动安全算法。在自动化程度越来越高的民航领域中,类似MCAS这样的机载软件安全性对航空器的重要程度也越来越高。然而,由于机载软件的特殊性,无法像飞机其他部件的结构、强度等那样进行检查和测试,更无法像一般软件那样进行穷举测试,因此机载软件的安全性通常需要依靠严格、规范、标准的软件研发流程来保证。只有这样,软件才能通过旨在保证飞行绝对安全的民用航空器的适航审定。
目前,国际上机载软件适航审定主要依据美国航空无线电技术委员会(RTCA)DO-178《机载系统合格审定过程中的软件考虑》系列标准。该标准被美国联邦航空局、欧洲航空安全局和中国民用航空局等民航管理部门广泛采用。
该标准在软件工具验证、基于模型的开发和验证、面向对象编程、形式化方法等诸多方面提出了严格的规范操作指南,从而使机载软件在过程、数据、目标3方面满足严苛的适航要求。机载软件的开发、运行、验证以及迭代升级均需以该系列指南为基本遵循,以最大程度保证机载软件的安全性和可靠性。
取得飞行资质才能“上岗”
标准发挥了指挥棒的作用,那么在实践中,飞控软件又是怎样被炼成的?
北京航空航天大学无人系统研究院副教授李大伟告诉科技日报记者,首先应明确要研制的飞控软件的具体需求,制定研制总要求并进行方案设计,例如研制哪些模块、实现哪些功能等。随后再经过详细设计,将飞控软件“精雕细琢”出来。
“飞控软件在投入使用前,要经过大量的仿真试验,验证其安全性和可靠性。”李大伟表示,仿真试验通常分为设计仿真、全数字仿真、半物理仿真这3个阶段。
设计仿真通常是在“矩阵实验室”(MATLAB)平台或设计人员内部搭建的平台上进行的,如验证对飞行控制系统形成控制指令的算法设计得是否合理等。全数字仿真旨在验证飞控软件的实际功能,让飞控代码在飞控计算机上“跑”几圈,看软件能否顺利完成计算机所下达的指令。不同于全数字仿真中全虚拟的物理空间,在半物理仿真阶段,工作人员则将一些飞机部件的实物纳入进来,如舵机、传感器等,从而更好地反映出这些真实部件在飞行过程中可能出现的指令延迟等现象,根据反馈去调整飞控软件。
“仿真试验会模拟实际飞行中可能遇到的多种状况,如暴风、雷雨等恶劣天气以及传感器等电子器件故障等,以确保飞控软件的可靠性达到设计要求。”李大伟说。
仿真试验通过后,飞控软件将走出实验室,走向应用测试阶段。联合调控是飞控软件首先接受的检验,飞机上装有很多软件,测控、导航、动力系统等,飞控软件必须与这些“小伙伴”友好相处。此外,飞控系统还兼有飞机“大脑”的功能,负责各个系统之间的数据传输、指令配合和系统检测等工作。
紧接着,包括飞控软件在内的所有机载软件将迎来一次“大考”——地面联调。飞机虽不会起飞,但会全程通电,以测试机载软件功能和性能。工作人员则会在此期间不断发现并改善缺陷,直至满足设计要求。“地面联调往往耗时很长,短则几个月,多则半年甚至更长。”李大伟说。
联调通过后,还要经过全机首飞、科研试飞、鉴定试飞、交付试飞等一系列既定试飞流程,最后获得相关部门颁发的飞行资质,飞控软件才算有了“上岗资格”。
严格、繁琐的研发、测试、应用流程为飞控软件上了一层又一层“保险”,但鉴于飞控软件一旦出现错漏,就有可能导致乘客生命安全受到威胁,研究设计人员还会通过余度设计等方式保证其绝对安全。
“与其他普通的工业软件不同,飞机飞控核心模块往往会有备份系统,也会设计多个传感器同时测量同一数据,因此即便在实际飞行中出现错漏,也会有替补来‘拨乱反正’。”李大伟说。
信息功能安全融合带来挑战
然而,即使再缜密的测控流程,也只能将风险控制在无限接近于零,而非真正的零,否则也就不会有波音的两次空难了。“事实上,由软件引发的灾难性事故屡见不鲜。”闫怀志说。
1996年,阿丽亚娜5型运载火箭因软件缺陷导致火箭偏轨,不得不“自我摧毁”;2000年,巴拿马引进美国治疗规划软件,由于其辐射剂量预设值有误,导致多名癌症患者接受超标剂量辐射致死;2011年,温州动车事故,因信号设备雷击故障导致动车相撞,软件设计缺陷难辞其咎。
这些安全问题,都属于传统的功能安全问题。“随着工业化和信息化的深度融合,物理空间和信息空间不断相互渗透和融合,信息物理系统大量出现,使得因软件缺陷而导致的系统安全问题层出不穷,呈愈演愈烈之势。”闫怀志指出,软件因素导致的安全性问题进一步体现为信息安全和功能安全二者的融合,给信息系统的安全防范工作增加了很大难度。
如何规避软件故障带来的安全风险?
在闫怀志看来,应从技术和管理相结合的系统整体安全角度来考虑问题。首先是形成整体安全观,充分考虑物理安全、功能安全、信息安全及其融合问题。其次,应将软件安全作为系统需求分析、设计、实现、运维范畴的重要考虑因素,同时尽可能避免软硬件之间的故障传播引发级联事故。再者,应从系统体系结构、算法等方面,采取容错、容侵、容灾等预防及补救措施,同时还应充分重视并发挥人在“人—机—环境”闭合反馈循环链条中的主观能动性。
“同时,相关工作人员还应练好‘内功’,即提升相关软件的自身信息安全性和功能安全性;同时,做好外部连接通道的安全监控工作,防备互联网‘黑手’伸向飞机、汽车、铁路等大型工业应用系统。”闫怀志说。