软件背后隐藏的模拟设计缺陷

文章作者:Bill Schweber

使用软件试图修复大规模硬件设计错误是有风险的,正如波音737 MAX的灾难所证明的那样。

当然,即使是精确、高性能的模拟系统和电路也有缺陷,设计团队面临的问题是如何处理它们。没有一个“一刀切”的答案,但有一些指导方针值得考虑。

已故的传奇模拟设计师Jim Williams(游戏邦注:著有多部作品)优秀版的文章)经常写和谈论他实现可靠精度模拟设计的方法。万博投注网址首先,使用关于初始公差和漂移规格的最佳可用性;在一些极端的情况下,“老化”一个核心组件(如电压基准)可能是一个好主意,以减少长期漂移。第二,只要可能,使用电路配置,如桥,只要可能,元件跟踪可以导致许多错误抵消。第三,尽可能使用手动或电子微调电位器修剪任何不完美的地方。当然,对于布局、接地和旁路使用最佳实践(不可否认,“最佳”通常是特定拓扑和应用程序的功能)。最后,但只能作为最后的手段,使用软件来调整性能,甚至实现微校准或线性化。

这是很好的工程建议。不幸的是,现在的趋势是假定软件可以修复大部分(如果不是全部的话)系统级的问题;也许再加一点人工智能——不管它的真正含义是什么——你就万事俱备了。波音737 Max的灾难(两次坠毁,数百人丧生)是滥用软件来解决类似系统设计问题的一个很好的例子。

所以如何?简而言之,随着空客A320neo开始进军波音737市场,波音需要一种省油的单通道客机(基础737是当时使用最广泛的飞机),并且需要它。为了使用更少的燃料,新的MAX设计使用了更大的发动机,与之前的模型相比,必须将发动机向前移动并置于更高的位置,以清除机翼结构。

波音737 MAX
波音737 MAX;请注意,挂塔上较大的发动机是放置在机翼相对较前的位置。 (图片来源:波音公司

然而,新的位置影响了发动机推力线和飞机重心之间的物理关系,这改变了飞机的处理方式;在某些推力条件下,机头可能会过度倾斜,并可能使飞机进入失速状态。这是模拟设计缺陷的一个例子,设计配置与物理定律不一致。

为了弥补这一硬件设计缺陷,波音公司的工程师依靠软件,并增加了一个名为机动特性增强系统(MCAS)的组件,该组件由一个传感器驱动,用于测量飞机的迎角(飞机机头的俯仰角)。飞行员对该系统的操作基本一无所知,该系统的设计目的是通过将机尾的水平稳定器略微增加0.6º来推动机头下降。

听起来很简单,对吧?但事实并非如此:对于每个现实世界的系统,都有细微之处、异常、复杂的交互,以及更多需要适应的地方。由于多种情况的组合,包括飞行员不熟悉MCAS(以及如何使其失效),两架飞机显然已经坠毁,所有波音737 MAX飞机自2019年3月以来已经停飞。这次停飞对航空公司的运力、航班安排、乘客以及波音公司的生产和工程项目都造成了极大的破坏。

很容易说,这仅仅是一个管理失误,因为他们指导工程师通过软件解决了最初的问题,并将问题的外观以及对飞行员及其培训的影响降到最低。但工程师们不能说他们只是在服从命令,因为他们知道添加命令是一件很棘手的事情,而且会带来各种各样的次要问题。是的,我们有可能相信智能软件可以预测和克服任何问题,但我们知道这只是一种合理化,根本不是事实。

关于波音737 MAX的混乱和正在做什么来解决它已经有很多文章了,再次主要依赖于软件,但也有一些硬件。关于设计阶段发生了什么,以及现在正在做什么,有两篇清晰且报道充分的文章《华尔街日报》(抱歉,如果他们在付费墙后面),”《四秒大灾难:波音如何毁灭737 MAX》(The Four-Second Catastrophe: How Boeing Doomed The 737 MAX)”和“波音737 MAX的多重问题和潜在修复”;维基百科也有一些值得一读的条目。它们清醒地提醒我们,依靠软件来修复模拟设计的缺陷是非常危险的。这也应该是对许多致力于自动驾驶汽车的团队的一个警告,因为他们试图预测每一个可能的驾驶场景,并实施算法来应对它们。

您是否曾经使用软件来修正、修复或补偿大规模模拟电路的缺陷?风险是什么?你曾经有过担心或疑虑吗?

留下你的评论