5カ月の間に2件の墜落事故を起こし、2019年4月現在も運行が停止されている「ボーイング737 MAX 8」について、ソフトウェアエンジニアでもありパイロットでもあるグレゴリー・トラヴィスさんがIEEEの雑誌に寄稿しています。

How the Boeing 737 Max Disaster Looks to a Software Developer - IEEE Spectrum

https://spectrum.ieee.org/aerospace/aviation/how-the-boeing-737-max-disaster-looks-to-a-software-developer

◆燃費のための改良が空力特性を不安定にした

ボーイング737は1967年に登場した航空機です。小型のエンジンを搭載し、システムも比較的単純でシンプルかつ信頼性の高い機材であったため、さまざまな航空会社に導入されていきました。その後何年にもわたって737は複雑性を増しながらバージョンアップを重ねていきました。その際に最も重要視されていたのは安全性ではなく経済性です。航空会社は運行費用を減らすために燃費の改善を求めていました。

エンジンの効率を高め、使用する燃料量を削減するためにボーイング737のエンジンは大型化していきます。当初737のエンジンはファンの直径が100cmほどだったのが、737 MAXでは直径176cmほどまで大型化してしまい、これを解決するために737 MAXではエンジンをやや上方に設置することになりました。しかし、エンジンの位置が上に移動するということは推力の中心となる位置も変化したことを意味しており、パイロットがエンジンの出力を上げると機首が以前より上方へと向くようになってしまったとのこと。



機首が一定の角度を超えて上を向いてしまうと航空機は失速と呼ばれる状態になり、揚力を失ってしまいます。失速状態から回復するには機首を下げる必要がありますが、トラヴィスさんによると737 MAXはエンジンが非常に大きく、また翼の前方にあったため、迎角が大きい時にエンジン自体が揚力を発生させてしまう構造だったそうです。失速するほど機首が上がっている状況において、さらに機首を高める方向へと導くこの機体の特性は古い航空機規制に違反するほど危険なものだったとのこと。しかし、ボーイングはソフトウェアを利用してこの問題を解決しました。

◆再訓練なしでパイロットを乗り換えさせられるようにソフトウェアで対処することに

ボーイング737 MAXにはMCASと呼ばれるシステムが搭載されており、機体が失速しそうな場合には自動で機首を引き下げる仕組みになっていました。ボーイングが設計図を描き直すのではなく、ソフトウェアを利用して機体の問題を解決したのには「737との互換性」を優先したからだとトラヴィスさんは述べています。

トラヴィスさんによると、737 MAXを売り込む際に重要だったのは、すでに737型を操縦しているパイロットが特別な訓練を経ることなく操縦できるという点でした。そのため、737 MAXには他のどの737型機と比べても飛行特性やシステムの違いが存在しないことを主張する必要性がボーイングにはあったとのこと。

◆ソフトウェアは2つある計器のうち1つしか利用しないなど設計に問題あり

舵(かじ)が全てコンピューター制御で行われ、パイロットはコンピューターを操作して操縦を行うというフライ・バイ・ワイヤと呼ばれるシステムがボーイング737 MAXをはじめとした近代の航空機において利用されています。このシステムでは、一定の範囲を逸脱した操作は受け付けないようにすることで安定して航空機を操縦できるようになっていました。

そうしたフライ・バイ・ワイヤシステムの1つとしてボーイング737 MAXに搭載されていたのがMCASです。MCASは機体の左右に1つずつ、操縦席の窓のすぐ下部分に設置されている迎角センサーから機体がどれほど上向いているかの情報を受け取り、一定以上角度が上を向いた場合に失速を防ぐために自動で機首を下げるシステムです。センサーを2つ設置することで、片方のセンサーが壊れても問題ないようになっていますが、ボーイング737 MAXに搭載されているMCASはどちらか一方の迎角センサーのみを使用する設計になっていたそうです。



MCASは「パイロットの間違った操作を訂正する」ものであるため、パイロットがMCASを無視して強引に操作するのは難しいように設計されています。つまり、迎角センサーの情報が間違っており、MCASが間違った判断をしていた場合であっても、パイロットはMCASの影響を受けてしまいがちです。トラヴィスさんによると、これまでのボーイング機は人間と機械の判断が対立した際には人間を優先するように設計されていたそうですが、737 MAXにおいては機械を優先するように設計の方針転換があったように見えるとのことです。

◆1つのバグが何億もの損害につながるハードウェアと違ってパッチを当てるだけでよいソフトウェアの文化に原因があるか

ハードウェアの世界では、欠陥が発見されてもすぐに修正できる訳ではなく、再度製造する必要があるなど費用も高くなってしまいますが、ソフトウェアの世界ではパッチを当てるだけで解決できます。



ソフトウェアの簡単にアップデートできるという性質が、ソフトウェア開発者たちに「後で修正すれば良い」という怠惰な考えをもたらしているとトラヴィスさんは指摘しています。さらに、フライ・バイ・ワイヤの発展などによってハードウェアに対してソフトウェアの影響が大きくなったことで、そうした怠惰な考えがハードウェアの世界にも影響を与え始めているとトラヴィスさんは続けています。

また、トラヴィスさんはシステムの複雑性についても言及し、「システムの構成要素が密接に結び付いているような複雑なシステムは維持できない」という社会学者チャールズ・ペローの言葉を引用した上で、MCASを修正してシステムの複雑性をさらに増すよりも削除するべきだと述べています。