1.金属疲劳
2018年4月17日上午11点3分,美国西南航空1380号航班从纽约飞往达拉斯途中的万米高空,飞机左侧发动机上的涡轮叶片因金属疲劳而发生断裂。脱落的叶片引发发动机爆炸,爆炸后产生的金属碎片损坏了机身,并击碎了第14排的一扇舷窗。这导致客舱内气压迅速下降,使得一名乘客半个身子被吸出受损窗户外,遭受了致命伤害。最终,飞行员成功将飞机安全降落在费城,避免了更大的灾难。
多年来,金属疲劳引起的飞机事故数量一直在持续增加,在刚刚过去的21世纪10年代的这十年里,事故数量已增至30起,其中几起事故严重到需要紧急迫降。2024年1月,波音737 Max 9飞机在约5000米的高空中发生事故,门塞突然炸开。初步调查结果显示这可能是螺栓丢失所致,但波音737 Max家族因金属疲劳引起的安全问题并非首次,它曾在2019年强制更换了机翼前缘缝翼(前缘缝翼是装在机翼前缘的一个小翼面),因为这里更容易出现裂纹。
一架飞机由数百万个零件紧密地组合而成,其中可能出现各种各样的问题。连续飞行会使这些零件经受不断交替的强烈的应力加载与卸载,在此期间,制造过程中不可避免的小缺陷会导致设备出现微小裂纹。一旦裂纹扩展得足够长,就像西南航空1380号飞机涡轮叶片底部的裂纹一样,毗邻裂纹的部件就会断裂。因此,飞机设计师需要预测部件将会承受的最大应力。
裂纹可能出现在大坝、桥梁和建筑物等巨大的结构中,也可能出现在身体的骨骼和牙齿等生物结构中。例如,美国国家标准与技术研究院的工程师正在针对2021年佛罗里达州一处海滨公寓楼倒塌事件建模,以此分析支撑体裂纹在这场灾难中可能发挥的作用。另外,最近有研究分析了在北大西洋发生内爆的“泰坦”号潜水器,确定了可能发生断裂的区域。
而在金属、混凝土和牙釉质中,裂纹往往形成于应力集中的区域——随着裂纹扩展,当尺寸超过临界长度(不同材料具有不同的临界裂纹长度)时,就可能带来非常危险的后果。
工程师可以使用试验机来研究各种裂纹的危害,从而防止故障发生。现在,机器或建筑结构通常要开展实体检测,这是一种重要的故障防御措施,但这样的测试有时成本高昂,且并非总是可行。一旦零件投入使用,就应定期检查,这样的成本也很高。
除了这些实际操作策略外,防止故障发生的第三种重要策略是计算机模拟。在开发过程中,模拟可以帮助工程师创造新的设计,并测试设计能否应对多种不同的服役条件,从而优化结构强度与重量等特征。例如,飞机需要尽可能轻巧耐用。如果实施得当,计算机模拟或有助于防止事故发生。
这些模拟结果的可靠性对结构安全至关重要,但它们并不像制造缺陷、维修差错或检查频率那样受到严格审查或监管。工程师在分析1991年挪威石油平台倒塌事故时发现,由于模拟错误,预测其中一堵内部支撑墙需要承受的压力时,预测值低于实际值,仅约为实际承受压力的一半。因此,原本的加固设计不能满足实际需求,最终导致结构坍塌。
随着美国开始实施大规模的基础设施改造计划,确保安全性和耐用性将非常重要。强大的计算机模拟可以帮助解决这两个问题,同时减少成本高昂的实验测试的需求。然而,令人担忧的是,工程师使用的模拟通常并不可靠。而数学则在不同的方面展现出自身的优势,从而在设计汽车、飞机、建筑、桥梁以及其他物体的结构时,得到更加安全也更经济的方案。
2.模拟形变
21世纪的机器非常复杂,然而有趣的是,背后的原理却是基于英国科学家罗伯特·胡克于17世纪70年代发表的一个拉丁语字谜。后来,胡克公布了谜底,意思是弹性物体(如金属弹簧)的形变与施加在其上的力成正比,这就是众所周知的胡克定律。这一定律只有在物体保持弹性的情况下才有效,也就是说,当施加的力被移除后,物体能恢复到初始形状。当力过大时,胡克定律就不再适用。
在更高的维度上,情况会变得更加复杂。想象一下,轻轻按下粘在桌子上的橡胶方块。在这种情况下,方块高度相对于原始高度的减少量(应变),与方块顶面单位面积上受到的力(应力)成正比。正如工程师所说,我们也可以从不同的角度对不同的面施加不同的力,使方块承受不同的“载荷”。这样,应力和应变都将拥有多个分量,并且通常从一点到另一点发生变化。只要载荷不是太大,广义的胡克定律仍然有效。它表明应力与应变仍然成正比,但是方式更为复杂。例如,将所有应力加倍也将使所有应变加倍。
人们利用胡克定律来分析各种各样的材料,包括金属、混凝土、橡胶,甚至是骨骼。(该定律适用的力的范围因材料的弹性而异。)但是,想要弄清楚物体如何响应实际载荷,该定律只提供了众多所需信息之一。工程师还必须考虑作用于物体的所有力(包括内力和外力)的平衡,并且确定应变与不同方向上形变之间的关系。这样,最终得到的方程被称作“偏微分方程组”,它们涉及应力和应变在不同方向上的变化率。偏微分方程组太复杂了,无法手动解决,甚至无法精确求解,特别是像涡轮叶片和桥梁支撑中用到的复杂几何结构。
尽管如此,尤其是从1967年的弗拉基米尔·孔德拉特夫起,数学家开始分析常见几何形状(如多边形和多面体)的偏微分方程组,以获得宝贵的见解。例如,应力通常在拐角和边缘附近最大。这就是为什么如果先切一个缺口,然后从切口处开始将箔纸拉开,会更容易撕下一张箔纸。
问题在于,许多对安全至关重要的机器零件在设计时都包含这些结构特征。通常情况下,边角会做得尽可能圆滑,但这些地方仍然更容易形成裂纹。尤其是当物体的载荷可以直接将裂纹两侧向垂直于裂纹面方向拉开时,裂纹最有可能出现扩展。因此,工程师必须特别关注这些位置及其周围受到的力,确保物体的载荷不超过所能承受的最大应力,以免开始断裂。
为此,他们需要找到物体在各种实际载荷下偏微分方程组的近似解。为了解决这一问题,工程师开发了一种便于使用的技术:有限元。在1956年一篇里程碑式论文中,工程师们指出,想要理解一个物体如何形变,可以把它视作由许多相连的部分组成,也就是现在所说的有限元。
3.有限元法
假设你想了解一个二维弹性物体在受到垂直方向的强风撞击时,会如何形变,比如一个沿边固定的紧绷屏幕。我们可以把屏幕想象成由一个个三角面相连而成,每个面都可以移动和拉伸,但必须一直是平面三角形。(我们也能把屏幕视作由多个四边形相连而成。)这个由三角形构成的模型屏幕与原本的光滑屏幕不同,但它提供了一个更容易处理的问题。对于实际屏幕,你需要找到每个点的形变,这是一个无限问题。但对于由平面三角形构成的模型屏幕,你只需要找到每个角的最终位置。这是一个有限问题,相对容易求解,而且根据这些解,可以推导出屏幕表面的所有其他位置。
物理学中的一条基本原理指出,屏幕将呈现出势能(势能表示物体在特定位置上所储存的能量)最小的形状。根据这一原理的说法,吉他弦被拨动后,预计最终将恢复到原来的直线形状。这一原理也适用于简化的有限元屏幕,可为节点的未知形变提供一组相对简单的“线性”方程。计算机非常擅长求解这样的方程,可以告诉我们模型屏幕会如何形变。
三维物体也可以采用类似方法建模,通常情况下,它们可以看成是由块状或四面体组成,方程数量也非常多。例如,对于整架飞机的建模,人们可能会面临一个有数百万未知数的求解问题。
虽然有限元法的开发最初是为了确定结构在受到作用力时如何变化,但现在这种技术已被视为求解偏微分方程组的常用方法,并被广泛应用于许多其他领域,包括肿瘤学(追踪肿瘤生长)、制鞋业(应用人体力学设计)、电影动画(使动作更加逼真,如2008年皮克斯动画工作室出品的电影《机器人总动员》)、乐器设计(考虑乐器内外振动的影响)等。尽管有限元法对大多数人来说可能是一个陌生的概念,但在我们的生活中,应该很难找到一个有限元法不起作用的领域。
有几个应用案例涉及裂纹建模。例如,在2018年的一项研究中,有限元法被用来探究牙齿中裂纹如何扩展,以及什么修复措施可能最有效。在另一项研究中,科学家调查了骨质疏松症在不同年龄可能导致哪些类型的股骨骨折。此外,有限元模拟还有助于揭示故障发生的根本原因,如佛罗里达州公寓楼倒塌和“泰坦”号爆炸事件,而且这也是飞机事故后的例行工作。
20世纪70年代,一群工程师根据他们积累的经验,发布了几个商业有限元代码。这些“遗留”代码中最有名的是最初在20世纪60年代末为美国航空航天局编写的,现在被称作“NASTRAN”的开源代码。如今,NASTRAN仍然是航空设计中至关重要的程序,在这一步,工程师会对设计的整个飞机的计算机模型进行粗略的有限元分析,以确定最有可能出现结构问题的区域和部件。然后,再对这些区域和部件做更详细的单独分析,以确定它们将承受的最大应力以及其中裂纹的生长方式。
这样就可以解答诸如螺栓或涡轮叶片是否会断裂的问题。几乎所有这类局部分析都涉及几十年前推出的遗留程序,因此它们在商业环境中占有很大的市场份额。我们乘坐的飞机或驾驶的汽车中,成品零件的设计在很大程度上依赖于这些代码。这些代码给工程师提供的答案能有多准确值得商榷。
4.有多可靠
早些时候,我们了解到如何利用有限元法确定模型屏幕的形变,但这一结果与真实形变有多接近?法国数学家让·塞亚提出的一个非凡定理有助于回答这个问题。1964年,基于俄罗斯数学家鲍里斯·G.加勒金的研究,塞亚在他的博士论文中首次提出了这一定理。该定理指出,只要将势能最小化,那么在模型屏幕可承受的所有形变中,我们的方法计算出的形变将最接近偏微分方程组预测的精确解。
到20世纪70年代初,世界上已有多位数学家利用塞亚定理证明,随着网格变得越来越精细,单元也变得越来越小、越来越多,有限元模型的预测值与实际形状之间的差异将减小到零。当时,数学家伊沃·巴布斯卡和阿卜杜勒·卡迪尔·阿齐兹分别就读于美国马里兰大学帕克分校和巴尔的摩郡分校。他们首次在1972年一本里程碑式的书中提出了统一的有限元理论,这一理论融合了上述结果与其他相关的数学结果。
但大约在同一时期,数学家开始发现工程师在商业有限元程序中加入了各种改动和“伎俩”,这样的代码往往会失去能量最小化的关键属性,但在实践应用中似乎更有效。麻省理工学院的数学家吉尔伯特·斯特朗将这类改动命名为“变分不当”(其中“变分”一词来源于变分法,与有限元法有关)。数学家可以证明,其中一些变分行为是良性的,但另一些则有可能产生极其错误的答案。尤其是用于处理有限元精度不足——也就是“锁定”现象——的解决方法。当有限元法背后的弹性方程中包含一个接近无穷大的值时,例如分数的分母是极薄金属板的厚度,就会出现锁定现象。这一现象也常出现在橡胶模型中,在这些模型中,根据胡克定律预测弹性的值比实际大得多。直到20世纪90年代,我和巴布斯卡才给出了锁定现象的精确定义与特征。当时,另外几位数学家,其中最著名的是意大利帕维亚大学的佛朗哥·布雷齐,已经针对许多问题确定了哪些用于处理锁定现象的改动是合理的,哪些是应该避免的,否则很可能给出不准确的答案。
但是,所有这些分析对遗留代码的影响甚微,这些代码中仍然存在有风险的改动。原因之一是,在数学家提出改动建议前,这些代码已经根深蒂固,因此采用他们的建议是不切实际的。此外,数学预测与实际实践之间似乎存在差距,这就是美国得克萨斯大学奥斯汀分校航空航天工程教授托马斯·J.R.休斯所说的“灰色地带”。“对于常见的问题,一些数学上可疑的改动可能比确定可行的改动表现得更好。”
也许将更安全的方案用于解决锁定现象所面临的最大障碍,是数学界与工程界在看待有限元建模方面存在差异。数学家将有限元解视为一系列近似值之一,这些近似值在适当的数学条件下,肯定可以收敛到精确解。然而,在工程实践中,有限元建模是一个独立的设计工具,可以呈现实际搭建时物体会如何变化。一般情况下,普通工程师最多在几门课程中了解关于有限元的知识,通常不会提及有问题的改动等内容。休斯讲述了这样一则轶事:一家建模公司拒绝购买一款较新的软件产品,因为它产生的结果与NASTRAN程序提供的答案不一致。这家公司坚持认为NASTRAN的解决方案是准确无误的。(只有通过对这一新软件进行逆向工程,它的设计者才能让其产生与NASTRAN相一致的答案。)
实际上,有限元解与它们本应预测到的结果相比,很可能相去甚远。原因包括代码改动、数学模型的局限性,以及在求解偏微分方程时用有限问题来替代无限问题。例如,对大型飞机部件(如机身和机翼)的初步分析就遇到了这种情况。工程师必须使用过去的实验结果来“调整”有限元分析的输出结果,然后才能得到真正的预测结果。对于尚未经过实体检测的新设计,这些累积的知识对解读它们的有限元分析结果至关重要。
小型零件的强度分析可能会带来更严重的问题,因为它们通常没有真实数据可供参考。2022年,一家大型航空公司向4家使用遗留代码的承包商提出了一个涉及裂纹分析的难题。这家航空公司发现,有三家承包商的计算结果都与通过实验确定的正确答案大相径庭。计算结果显示,裂纹生长速度比实际慢得多,导致预测的安全系数被夸大,令人十分不安。
其他类似问题表明,不准确的代码不一定是核心问题,事实上,参与者经常做出无效的简化假设,或是选择错误的单元类型(可用的类型很多,包括三角形和四边形)。这些错误可能代价高昂。例如,前文提到的1991年挪威石油平台倒塌造成的损失相当于如今的16亿美元以上。模拟存在缺陷还与F-35战斗机的许多疲劳和开裂问题有关,进而导致巨大的成本超支与严重的延误。一般来说,计算结果的确定性越低,昂贵的检查就开展得越频繁。
5.估计误差
估计模拟的可靠程度,似乎是个无解的问题。如果不知道计算模型(比如针对飞机部件的模型)的精确解,我们怎么可能评估近似解的误差?不过,我们还是对近似解有些许了解:它们满足物体的偏微分方程组。虽然我们无法求解这些方程,但我们可以用它们来检验一个可能解的合理性,这是个相对简单的问题。如果将未知的精确解插入偏微分方程中,结果只会是0,而近似解则会给出一个剩余项或者说残差(通常称作R),残差大小可以衡量一个解的可靠性。
此外,这种模拟方法是把物体划分成了只能以特定方式形变的有限单元,因此计算出的应力不会像现实中那样平滑变化,而是在组成单元的边界处跃变。这些跃变也可以通过近似解计算出来。一旦计算出残差和跃变,我们就可以利用巴布斯卡和美国匹兹堡大学的沃纳·C.莱茵博尔特以及其他数学家在20世纪70年代末开始开发的技术,来估算与任何单元有关的误差。从那时起,科学家还开发出了其他可估计有限元分析结果误差的策略。
估计误差有几个好处。首先,添加更小和更多的单元通常会提高准确度,因此可以通过编写代码,从而在误差可能较大的区域自动生成更小的单元。我们已经从偏微分方程组的数学分析中看到,应力会在边角附近以非常快的速度增加。这一现象还会使这些区域的误差最大。但与其在这些关键位置手动创建更精细的网格,不如利用模型自动完成这一步。
其次,对于那些工程师感兴趣的量,估计总体误差可以衡量计算值的准确度,例如关键区域的应力强度或是某一点的形变。工程师通常希望误差在一定范围内(根据不同区域,范围从小于2%到10%不等)。遗憾的是,大多数算法都很难提供准确的界限。现在,这仍然是一个活跃的研究领域。即便结果还不够准确,但如果当时考虑了误差估计值,工程师几乎肯定会发现挪威石油平台的有限元模型存在问题。
要估计总体误差,即评估模拟解的可靠性,一种更好的方法是采用原理不同的有限元法:p-细化法,提高精度的常用方法叫做h-细化法。对于p-细化法,我们自始至终只使用一个网格,并且其中的三角形单元不再需要始终保持平面,而是能够以更多的方式形变,从而提高精度。第一步,该方法允许任意三角形中的直线弯成抛物线,然后逐步让直线转变成更加复杂的曲线。这种改动给每个单元提供了更大的形变空间,使它每次形变都能与解的形状相一致。从数学的角度看,这一过程相当于增加多项式的度数,而这些代数表达式描述了不同类型的曲线。
正如巴布斯卡和他的同事(包括我)所证明的那样,对于许多问题,相较于传统的h-细化法,p-细化法能够更快地收敛到偏微分方程组的精确解。我还通过数学方法帮助证明p方法没有锁定问题,因此它不需要h方法所采用的任何改动。此外,连续变化的形状可以为评估可靠性提供一种简单且可靠的方法。
然而,令人沮丧的是,从20世纪70年代沿用至今的遗留代码中,无论是评估可靠性的p方法还是h方法都没有发挥重要作用。究其原因,可能是因为这些程序是在这些新技术出现之前就设计出来,并根深蒂固的。在较新的工业仿真代码中,StressCheck程序使用了p方法,并且的确可以提供可靠性估计。
当有实验结果可供比较时,这样的可靠性估计还有一个好处:能够评估物理现实与模拟现实所用的偏微分方程组之间的差异。如果你知道有限元分析是准确的,但总体误差仍然较大,你就可以开始使用更复杂的模型来弥合差距,例如有些模型背后的物理学中相称性不再成立。理想情况下,建模所用的任何数学模型都应通过与现实的比对来验证。
6.人工智能
人工智能的出现最有可能改变计算机模拟的应用。首先,模拟将变得更加广泛。商业程序的一个共同目标是使有限元建模技术开放给更多缺乏该领域固有专业知识的用户。例如,自动化聊天机器人或虚拟助手可以帮助指导模拟。根据这些助手的训练水平,它们可能是宝贵的资源,尤其是对于新手工程师。在最理想的情况下,这些助手将用日常用语回答问题,而不是技术性或格式化的措辞,并且将帮助用户从通常令人眼花缭乱的可用单元类型中做出选择,同时对数学上可疑的改动适当给出警示。
有效应用人工智能的另一种方式是生成网格,因为这如果是人工完成的,成本可能会很高,尤其是在拐角、裂纹尖端等结构特征附近所需的精细网格。数学家已经确定了在这些区域设计二维和三维网格的精确规则。人工输入这些规则可能非常困难,但使用人工智能应该会相当容易。未来的代码应该能够自动识别高应力区域并设计相应的网格。
一种更新颖的方法是利用机器学习来求解偏微分方程组,从而完全取代有限元分析。这种方法的思路大致是通过训练一个神经网络来使残差最小化,从而对一组载荷对应的形变做出一系列越来越精确的预测。由于裂纹尖端附近的局部应力较大,因此这种方法在处理裂纹问题时效果不佳。但研究人员发现,如果他们利用一些数学工具,如孔德拉特夫的数学成果,将有关解的确切性质的信息融入神经网络中,这种方法就是可行的。
在这些和其他可改变游戏规则的计划中,评估计算可靠性这一不起眼的任务,却对所有这些技术的实现至关重要,但显然问题还没有被充分解决。人们应该依照美国航空航天局对可靠性的相关要求,包括通过误差估计和其他手段证明,人工智能技术背后的物理学对于所模拟的真实情况仍是有效的,以及模拟得到的近似解(如有限元解)与偏微分方程组真实解之间的误差在可接受的范围内。
作为对“哥伦比亚”号航天飞机灾难的回应,美国航空航天局首次将这些要求编入技术手册。未来,人类的专业知识和监督将变得越来越少,这一前景同样给人们敲响了警钟。人工智能只有建立可靠的防护措施,才能让我们信任它提供的模拟结果。多亏了数学的进步,这样的防护措施已经能发挥作用。我们需要将它们纳入模拟的方方面面,以确保在这个日益充满挑战的世界中,航空和其他工程的安全性。
(本版图文由《环球科学》杂志社供稿)
(作者:马尼尔·苏里)