图1:在这篇文章中,我们将模拟一个风洞,在其中放置一个矩形遮挡,然后使用渐变下降将其变成机翼。
乐高是一个很棒的元玩具,因为它们代表了几乎无限数量的玩具的潜力,这取决于你如何组装它们。每一块砖都有结构。但每一块砖的趣味性只在于它能与其他砖结合起来,形成新的、更复杂的结构。因此,为了享受乐高积木的乐趣,你必须弄清楚它们是如何搭配在一起的,并想出一个聪明的方法来制作你心目中的特定玩具。一旦你掌握了一些简单的规则,乐高积木的开放式设计就可以让你建造任何你能想象到的东西。
我们的宇宙有着同样多才多艺的结构。它似乎只是根据几个简单的力量运行,但当这些力量相互作用时,它们会在许多空间和时间尺度上产生错综复杂的模式。你在自然界中的任何地方都能看到这一点--在贝壳的分形设计中,或者在珊瑚的错综复杂的结构中。在茶杯的对流或大气的循环中。而这种简单的结构甚至决定了人类最复杂的飞行器的形状和行为。
为了更清楚地理解这一点,我们将从气流的基本物理定律开始,并用它们来推导出机翼的形状。1由于我们使用的假设很少,所以我们得出的机翼形状将与围绕它旋转的空气的物理特性一样基本。这是非常基本的。事实上,如果一个外来物种开始在另一个星球上建造飞行器,它们很可能会汇聚成类似的形状。
我们将从Navier-Stokes方程开始这段旅程,它概括了我们对流体力学的几乎所有了解。它描述了微小的流体地块是如何与它们的邻居交互的。解决流体力学问题的过程可以归结为写出这个方程,然后决定我们可以安全地忽略哪些项。在我们的例子中,我们想要模拟空气通过风洞的流动,然后用它来评估各种机翼形状。
由于风洞两端的压力差很小,我们能做的第一个假设之一就是空气是不可压缩的。这使我们可以使用不可压缩形式的Navier-Stokes方程:
\(\下括号{\frac{\part\mathbf{u}}{\part t}}_{\text{速度更新}}~=~-\下括号{(\mathbf{u}\cdot\nabla)\mathbf{u}}_{\text{自我平流}}~+~\下括号{\nu\nabla^2\mathbf{u}}_{\text{粘性扩散}}~+~\下括号{f}_{\text{速度$\uparrow$由于力}}\)。
另一个我们可以忽略的术语是粘性扩散。粘性扩散描述了由于与邻近流体的粘性相互作用,流体地块如何分配它们的动量。我们会说高粘度的流体是“稠的”:常见的例子包括糖蜜和机油。即使空气要稀薄得多,粘性相互作用仍然会导致沿着飞机机翼表面形成一层缓慢移动的空气。然而,我们可以忽略这个边界层,因为与自平流相比,它对机翼空气动力学的贡献很小。
我们可以忽略的最后一个术语是力项,因为一旦进入风洞,空气上就没有力了。所以我们只剩下一根原来的纳威-斯托克斯发球的毛发了:
\[\underbrace{\frac{\part\mathbf{u}}{\part t}}_{\text{ocity update}}=\underbrace{-(\mathbf{u}\cot\nabla)\mathbf{u}}_{\text{自平流(";速度跟随其本身";)}}\]这个简单的表达式描述了真正主导风洞物理的效果。它直观地说,“速度随时间的变化是由于速度随时间变化的事实。”因此,整个模拟可以归结为两个简单的规则:
通过在这两个规则之间交替,我们可以迭代地1)使系统在时间上向前移动,2)加强体积和质量守恒。在实践中,我们将每个规则实现为单独的函数,然后在每个时间步将这两个函数应用于系统。这使我们能够模拟,比方说,一阵风通过风洞。但在我们可以将风引向机翼之前,我们需要决定如何表示机翼本身。
机翼是流动的内部边界或遮挡。表示遮挡的一个好方法是使用0和1的遮罩。但由于我们风洞的目标是尝试不同的机翼形状,我们需要我们的机翼能够持续变形。因此,我们将允许遮罩采用0到1之间的连续值,使其与遮罩值成比例地半透。这使我们可以向风洞添加半透水障碍物,如图所示:
现在我们可以模拟空气如何在任意的半透水形状上流动。但为了确定哪种形状的机翼更好,我们仍然需要定义一种性能衡量标准。一个好的机翼有很多品质,但我们将从最明显的开始:它应该尽可能有效地将水平风速转化为上升力。我们可以用所谓的升阻比来测量这种能力,其中“升力”测量机翼产生的上升力,“阻力”测量空气和机翼之间的摩擦力。由于隧道内“向下气流的变化”与机翼的上升力成正比,我们可以用它来代替升力。同样,“向右气流的变化”可以很好地反映机翼上的阻力。考虑到这一点,我们可以将目标函数写成。
[\Max_{\theta}L/D\]其中\(\θ\)表示与翼罩形状相关的一些可调参数,并且\(L/D\)可以使用模拟的初始和最终风速根据。
\[\BEGIN{ALIGN}L/D&;=\frac{\text{Lift}}{\text{Drag}}\\&;=\frac{\text{向下气流改变}}{-\text{向右气流改变}}\\&;=\frac{-\BIG(v_y(T)-v_y(0)\BIG)}{-\BIG(v_x(T)-v_x(0)\BIG)}\\&;=\frac{v_y(T)-v_y(0)}{v_x(T)-v_x(0)}\end{ALIGN}\]求解这个优化问题将给我们一个尽可能产生最有效升力的翼型。换句话说,我们有了正确的问题设置;剩下的就是找出如何解决它。
我们要用梯度上升来解决这个问题。梯度上升是简单和容易实现的,但有一个重要的警告:我们需要一种方法来有效地计算目标函数相对于机翼掩模参数的梯度。这涉及到依次区分流体模拟的每个步骤-一直到返回到初始条件。这将很难手动实现,但幸运的是,有一个名为Autograd的工具可以自动执行渐变的反向传播。我们将使用Autograd计算遮罩参数的渐变,沿该方向移动遮罩参数,然后重复此过程,直到升阻比达到局部最大值。
那么我们来复习一下。我们的目标是模拟风洞,并用它来推导出机翼的形状。我们首先写下一般的Navier-Stokes方程,去掉不相关的项:除了自平流以外的所有项。接下来,我们想出了如何使用可连续变形的遮挡来表示隧道中的机翼形状。最后,我们写下了一个方程,一个好的机翼应该做什么,并讨论了如何优化它。现在是时候将所有内容放到大约200行代码中,看看当我们运行…时会发生什么。
果然,我们得到了一只漂亮的小翅膀。在所有可能的形状中,这是在我们的风洞中创造高效升力的最好的形状。这个机翼绝对是一个玩具解决方案,因为我们的模拟很粗糙,而且不是特别精确。然而,在做了一些简单的改进之后,我们就可以用这种方式设计真正的飞机机翼了。我们只需要:
除了这些改进之外,总体原则是大致相同的。在这两种情况下,我们都要写下一些单词和符号,把它们变成代码,然后用代码来塑造我们的翅膀。2事实上,我们可以在不建造物理机翼的情况下完成所有这些事情,这让人感觉有点像魔术。但这个过程真的很有效,因为当我们把这些翅膀放在飞机上,并将我们的生命托付给它们时,它们就会把我们安全地带到目的地。3 4。
就像二十世纪的真实风洞一样,这些模拟风洞需要经过大量的调试,我们才能信任它们。事实上,在构建此演示时,我们发现了很多可能出错的方式。以下是一些最有趣的失败案例:
这些翅膀中有几个简直太可怕了。但其他的似乎是合理的,如果出乎意料的话。双翼解决方案特别有趣。我们并不打算让这种“双飞机”解决方案出现,但它是解决我们所写下的目标的一个完全可行的方法。保持问题设置如此简单的一个好处是,在这样做的过程中,我们为这些令人惊讶的行为的发生留出了空间。
在基翼形状上有一些变化,这在特定的利基位置上表现出色。有时我们会想要一个在高速下最优的机翼,而另一些时候我们会想要一个在低速时最优的机翼。为了容纳一个大机身,我们可能需要一个超厚的机翼。或者,为了减轻它的整体重量,我们可能想要使它变薄。事实证明,我们可以改变模拟参数并增加辅助损失,以便为这些场景中的每一种找到最佳的机翼形状。
我们的风洞模拟首先很有趣,因为它说明了柏拉图式的机翼设计理念是如何植根于物理定律的。正如我们在前面的帖子中看到的,有许多文化和技术力量对翼型设计做出了贡献。这些力有很多重要的原因,但它们不是它们产生的机翼形状的主要因素-物理因素才是。
但是为了平衡这个想法,我们还展示了一百万种柏拉图式的翅膀是如何满足特定需求的。事实上,这些变体可以说占据了互补的生态位,就像不同的鸟类和飞行的昆虫占据了不同的自然界中的生态位一样。毕竟,尽管自然界绝对精确地遵循物理定律,但她在变化中享受着极大的乐趣。例如,看看鸟类翅膀形状的多样性。5种蜂鸟的翅膀具有低纵横比,可以实现快速、敏捷的飞行模式。其他鸟类,如信天翁,具有极高的纵横比以获得极高的效率。还有一些,比如普通的乌鸦,是很好的全能飞行者。值得注意的是,我们开始在现代飞机上看到同样的物种。有以速度和隐形为目的的侦察机,有以机动性为目的的短翼丛林飞机,有以效率为目的的大型商业客机。6个
洛克伍德(1998)的一幅图,按翼尖和翼尖凸度排列鸟类种类。不同的机翼设计源于对不同生态位的适应。
Lindhe(2002)绘制的一张曲线图,显示了一些鸟类、飞机、悬挂式滑翔机、蝴蝶和枫树种子的纵横比与机翼载荷指数之间的关系。就像鸟类的家族一样,不同的人类飞行器沿着这些轴显示出很大的差异。
也许不那么直观的是,即使是一只鸟也能有很大范围的翅膀形状。例如,猎鹰在翱翔、潜水、转身和着陆时使用不同的翅膀形状。它的翅膀不是静态的东西,而是不断适应周围环境的可变形的动态物体。再一次,我们开始看到同样的事情发生在现代飞机上,比如波音747。下图显示了它的三槽机翼设计如何让飞行员在起飞、巡航和降落时重新配置翼型。
试图优化机翼的经验之一是,优化本身永远不是全部。当我们写下优化目标时(就像我们上面做的那样),我们的大脑已经有了一种模糊的愿望,想要获得一只翅膀。在这种渴望的背后,我们的大脑可能想要获得一只翅膀,因为我们被飞行技术所吸引。也许我们被飞行吸引的原因和早期的飞行员一样--因为它承诺自由、荣耀和冒险。在这些欲望的背后-什么?目标函数的悖论在于,它的背后似乎总是有更深层次的目标。
更深层次的目标变化不会那么快。即使早期的飞行员从翼装到滑翔机再到飞机,他们仍然保持着同样的基本飞行愿望。当然,他们的具体愿望是不同的:一些人想要在跳塔时幸存下来,另一些人想要打破音速。他们的特殊愿望导致了技术上的具体改进,例如更好地理解了斯米顿系数或稳定的超临界翼型。一旦他们做出了这些改进,下一代就能够利用它们来追求更雄心勃勃的目标。但即使在这个周期中,对飞行的渴望继续激励着他们,甚至统一了他们的努力。
詹姆森,安东尼和瓦斯伯格,约翰。空气动力设计的计算流体动力学-其当前和未来的影响,美国航空航天研究所,2012年。/↩。
詹姆森,这是安东尼。气动外形优化的飞机设计,中国商用飞机公司,上海,2010年。↩。
Rockwood,Rowan和Swaddle,JohnP.和Rayner,Jeremy M.V.鸟类翼尖形状重新考虑:翼尖形状指数和形态对迁徙的适应,鸟类生物学杂志第29卷,第3期,第273-292页,1998年。↩
作者声明:by J.。工程和生活世界中飞行的结构、形式和功能。“形态学杂志”,2002年。↩。