在发生两次涉及同一种类飞机的灾难性航空事故后,美国联邦航空局周三发布了紧急禁令,停飞了波音737 MAX飞机。
在两次坠机事故(印尼狮航610航班和埃塞俄比亚航空302航班)中,航空公司使用的设备是737 MAX 8。尽管调查正在进行中,现在断定事故原因是否相同还为时过早,但正如《纽约时报》等媒体报道的那样,有人认为这两起事故之间存在相似之处。美国联邦航空局本身也表示,它看到了“相似之处”。
即使在埃塞俄比亚发生坠机事故之前,波音公司就已经在为这些飞机进行软件更新。此次更新将影响飞机上一个称为机动特性增强系统(MCAS)的系统。(更多关于该系统功能的信息,请看下文。)
尽管波音公司对软件更新的评论仅限于他们公开声明的内容,但公司代表已确认,每次更新每架飞机大约需要60分钟。
公众习惯了通过无线更新来升级手机和电脑上的软件,但飞机软件的更新协议却有所不同。麻省理工学院航空航天学教授、国际航空运输中心主任John Hansman表示,飞机的代码更新通常由机械师完成。
他补充说:“这是一款非常关键的软件,你真的不希望任何人对其进行黑客攻击,所以这是一个非常受保护的过程。”
软件和硬件的失效方式不同
飞机的硬件——机身、机翼、发动机以及外部的可动部件,这些是乘客通常注意到的——但正是这些事故以及波音即将发布的软件更新,让飞机上运行的代码的重要性受到了关注。
普渡大学航空航天学教授William Crossley表示:“我们总是喜欢认为飞机之所以能飞,是因为它的外形。但现在已经发展到软件的重要性与飞机外形同等重要了。”
Crossley指出,软件使飞机制造商能够完成很多事情,例如,“军用飞机实际上可以是不稳定的,但由于计算机和软件,它们仍然能够飞行。”
总之:不要低估运行车辆的代码的重要性。麻省理工学院的Hansman表示:“现代飞机的软件成本,尤其是军用飞机的软件成本,通常占[总]成本的50%以上。它是飞机开发的一个重要组成部分。”
航空工程师在考虑安全问题时,还必须以不同的方式考虑硬件和软件。“软件的故障方式与硬件不同,”Hansman说。
例如,在硬件方面,确保传感器系统安全性的最佳方法是冗余,即拥有多个传感器来监测相同或相似的变量。简单地说,三个传感器来测量某物是理想的,因为这样,如果一个传感器坏了,飞机就可以利用一种投票系统。如果三个传感器中的一个读数异常,那么互相一致的两个读数就是可信的。(事实上,实际操作比仅仅复制三个传感器要复杂——飞机可以利用机上的其他数据,这个过程称为“分析冗余”。)
当然,在飞机硬件的其他方面也存在冗余:即使是像波音777这样大型商用飞机,也由两个发动机提供动力,如果其中一个发生故障,飞机仍然可以着陆。
但是,Hansman说,对于软件而言,现代商用飞机并没有两个完全复制的软件系统——这相当于两个发动机的编码版本。不过,他指出,有一个著名的航天器拥有这样的系统。“航天飞机有一个完全独立的软件包,由一个完全独立的团队编写,”他说,并指出宇航员可以通过按下一个按钮切换到备用系统。但他表示,这种方法“成本极其高昂”。这种策略的问题在于,即使是两个独立的软件系统也可能在同一个地方出现同一种错误。
但商用飞机并没有像航天飞机那样采用双独立系统的方法。相反,关键软件通过一份名为DO-178C的文件进行严格审查和认证。
Hansman说:“这是一个非常艰苦的过程。”
波音的补丁
对于波音的更新,补丁将影响MCAS的工作方式。MCAS是飞机制造商为了防止失速而设置的一个子系统——失速发生在机翼的迎角过大且机头向上倾斜时。如果系统发生故障,认为飞机正在失速,它可能会导致机头向下倾斜,从而降低机翼的迎角,即使飞行员不愿意——关于MCAS系统在狮航坠机事故中的作用,这里有一个出色的信息图。
Hansman表示,代码已经完成了相当长一段时间,并且旨在解决与MCAS“主要依赖于主动迎角传感器”这一事实相关的已知漏洞。“根据报告,我的理解是,他们正在整合其他数据源。”