基于机器学习方法的流体机械气动优化设计研究现状及展望*
2021-01-15汪逸然赵文军梁连国金晗辉王灿星
汪逸然 赵文军 梁连国 吴 琦 金晗辉 王灿星
(1.浙江大学航空航天学院流体工程研究所;2.杭州顿力电器有限公司;3.浙江浙风科技有限公司)
0 引言
随着人工智能理论和计算机软件硬件的快速发展,机器学习作为实现人工智能的方法,对各个领域的信息化、自动化发展产生了重要影响。机器学习在二十世纪五十年代就开展了相关研究,主要是基于逻辑推理方面[1],但发现无法真正实现人工智能,因此在六、七十年代发展了带有专家系统的学习系统,如P.Winston的结构学习系统[2]、R.S.Michalski基于逻辑的归纳学习系统[3]和E.B.Hunt的“概念学习系统”[4],且以决策理论为基础的学习技术及强化学习技术也开始发展[5]。在二十世纪八十年代,机器学习得到了广泛重视并形成了一个独立的学科,E.A.Feigenbaum把机器学习分为“机器学习”“示教学习”“类比学习”“归纳学习”[6],其中归纳学习研究最多并延续至今,形成了决策树[7]、神经网络[8]、BP算法[9]等方法,这些方法对机器学习产生了深远的影响。二十年代九十年代,以支持向量机(Support Vector Machine,简称SVM)[10]为代表的“统计学习”技术占据了主流地位,这种以统计学习理论为直接支撑的统计学习技术在文本分类等应用体现了优越性[11,12]。进入二十一世纪,由于数据的不断丰富和计算能力的大大增强,机器学习在计算机视觉、自然语言处理等领域取得了巨大的成就[13],使得机器学习在工程、商业、生活等各个领域得到广泛应用,例如在天气预报[14]、能源勘探[15]、环境监测[16]等方面,有效的利用机器学习对数据进行分析,是提高预报和检测准确性的重要途经;在商业领域,利用它对销售数据和客户信息进行分析,可以帮助商家优化库存以及为客户设计针对性的营销策略[17];无人驾驶技术、智能机器人等出现在普通人的生活中。
几十年以来,不同学者提出了很多种不同的机器学习算法,这些算法可以根据训练数据是否拥有标记信息,大致分为三大类:“有监督学习”、“无监督学习”、“半监督学习”。像支持向量机、随机森林、决策树、多层感知机、朴素贝叶斯以及进化类算法等都是属于有监督学习,这类算法主要是对数据进行分类或回归分析,Kotsiantis等人[18]详细综述了机器学习中有监督学习算法的发展;无监督学习主要是为了对数据聚类和降维,常用的算法有主成分分析法,自动编码机、k均值聚类等等,Wetzel等人[19]介绍了无监督学习算法的进展以及应用;半监督学习的训练数据是由有标签数据和无标签数据混合而成,所以它既可以用作分类与回归,也可用于对数据降维,强化学习、深度卷积神经网络以及生成对抗式网络等,这些深度学习算法因为数据的复杂性所以都属于半监督学习,Oliver等人[20]综述了半监督学习算法的发展,Shao等人[21]介绍了强化学习的理论以及近期的进展,指出了强化学习在机器控制领域的研究前景。LeCun[22]和Schmidhuber[23]对这几年深度学习的发展以及应用做了综述性介绍。虽然神经网络是一种难以解释的“黑箱模型”,但已有一些工作尝试改善神经网络的可解释性,主要方式是从神经网络中抽取易于理解的符号规则[24]。本文将在第3部分中对机器学习方法中的重要算法分别做简要介绍。
近年来,多种深度神经网络在大量机器学习问题上取得了令人瞩目的成果,形成了机器学习领域最亮眼的一个新分支——深度学习。深度学习的性能很大程度上取决于神经网络的结构,对于不同类型的数据和问题,人们发展了多种不同的网络结构模型。比如为了更好的表示数据内在的特征规律,提出了自动编码机(Auto Encoder,简称AE)[26]与限制性玻尔兹曼机(RBM)[27]这两种无监督学习的神经网络模型。除此之外,卷积神经网络(Convolution Neural Network,简称CNN)[28]和递归神经网络(Recursive Neural Network,简称RNN)[29]也有了新的发展;在ImageNet竞赛的促进下,使得卷积神经网络在图像识别领域的训练速度与推广能力得到了不断的完善;在语音识别、语言翻译等领域,递归神经网络特有的网络结构使其能够更好的处理像语言、音乐等序列型数据。而这几年,以生成对抗式网络(Generative Adversarial Networks,简称GAN)[30]和强化学习(Reinforcement Learning,简称RL)[31]为主的神经网络模型已经成为了机器学习领域的一个重要研究方向。
由于NS方程高维度无法得到解析解,因此在很多实际计算中都会使用像RANS、LES这类的简化模型,这就给计算带来了一些误差,而机器学习的蓬勃发展为解决流体力学中的问题提供了一种新的思路,已经有学者在流动降阶建模、湍流闭合、流动控制以及形状优化上引入了机器学习的方法。Brunton等人[25]综述了机器学习在流体力学领域的应用,而Xiao等人[32]详细综述了机器学习方法在封闭湍流模型上的应用。在设计过程中,除了精准的CFD计算以外,很多设计参数往往依赖设计人员的经验以试凑法进行选择,但在复杂问题面前,经验往往表现出顾此失彼、重复浪费、搜索受认识局限等缺陷[33],而且NS方程的高维度以及非线性这种特性使得在优化设计时往往采用简化方式,这样就会导致优化结果产生很多偏差。随着机器学习和数据驱动技术在设计和流动控制领域的发展,特别是以深度学习为代表的机器学习方法的蓬勃发展可以为解决优化设计中参数之间的非线性问题提供了一种全新的思路[34]
基于机器学习的工程优化方法具有快速、鲁棒、全局且准确的特点,突破了常规方法的做法,可以通过对实验数据的直接应用大大提高数据精确度和数据的利用率,在实际工程应用中有着重大意义[25]。本文将从以下几个方面来讨论机器学习在流体机械优化设计计算中的应用前景:气动优化设计的现状、机器学习方法的研究现状、机器学习方法在流动计算及控制方面的应用现状、机器学习方法在流体机械优化设计中的应用现状、机器学习方法在流体机械优化设计前景与展望。
1 气动优化设计研究现状
气动优化设计是流体机械设计的重要环节,由于流动与结构参数之间具有非常复杂的关系,往往很难得到真正的优化结果。例如在关键部件离心叶轮的优化过程中,除了需要考虑进出口直径、进出口角度、宽度等总体参数外,同时还要考虑一些不可忽略的约束,如当量扩张角、载荷分布等;实际上气动优化的本质是改善叶轮内部流动,减少流动损失,由于存在旋转与曲率导致的二次流、分层流动、边界层流动等,使得流动和流道形状关系呈现非常复杂的非线性关系,因此难以形成统一的气动优化设计方法。通过长期研究,形成了结构参数优化方法、角动量优化设计方法、控制速度分布优化方法、进化类算法和伴随算法等大量优化方法。
对流体机械来说总体结构参数既是保证叶轮获得所需压力的参数,也是影响叶轮流道内流动状况的全局性参数,因此对总体参数进行优化极其重要。为了探究这些结构参数对流体机械性能的影响,以及他们之间的相互关系,国内外学者做了大量的研究,形成了结构参数优化方法。Eisenlohr等人[35]利用实验和数值模拟相结合的方法研究了叶轮出口宽度对叶轮性能的影响,得出减小叶轮的出口宽度能有效地改善叶轮出口的速度流场分布。Wan等人[36]运用改进的经验参数优化方法对离心叶轮总体参数进行优化,优化后的离心叶轮在小流量下的效率有所提升,工作范围扩大。
但是影响离心机械性能的因素除了总体结构参数外,还有叶片的型线。针对于叶片型线的优化设计,早期主要采用角动量分布化化设计方法,即环量分布优化设计方法。祝启鹏等[37]采用控制角动量分布设计方法,在通流设计中引入评价粘性损失的损失模型,对离心叶轮进行优化设计,并对比分析不同角动量分布对叶片载荷以及流道速度分布的影响,表明角动量沿流线的导数直接影响叶片表面的载荷分布。王鹏亮等[38]提出了两种角动量分布的给定方法,即双调和函数法和幂指数函数法来给定角动量沿子午流线的分布,并分析了角动量分布对离心压缩机性能的影响。角动量分布优化设计方法的关键在于给定合理的角动量分布,且角动量分布与流道内的流动效应并非直接相关,因此需要运用大量的实验数据或者工程设计经验才能完成[39],除此之外,角动量只针对中间流线的速度平均,所以直接对速度分布进行控制相比于控制角动量的设计方法更加直接、有效,因此基于控制速度分布的优化设计方法应运而生。
控制速度分布优化设计方法的优化思路是通过抑制射流-尾流结构、二次流、分层效应等确定速度分布的控制参数,从而得到叶片型线,最后以边界层作为判据或通过CFD数值计算来对叶轮优化结果进行评估和调整[40],这种方法在国内外已经进行了不少的研究,主要集中在速度分布的形式和速度分布的控制参数。如易喆鑫[41]在采用控制速度分布优化设计方法的基础上,将叶轮总体参数优化和叶片型线优化结合在一起,实现了叶轮结构的整体优化。杜衡[42]则将总体参数、前盘子午面型线和叶片型线三者优化有机结合,并在蜗壳设计中考虑了粘性效应,形成对整个离心风机叶轮设计的系统优化。
在二十世纪八九十年代,以遗传算法为代表的进化类算法,与蚁群算法、模拟退火算法等启发式的智能优化算法在气动优化中开始得到应用。此类方法由于没有引入梯度等信息,搜索方向具有不确定性,因而也被称为随机优化方法。在流体机械中这类方法的优化思路是以离心叶轮气动性能作为目标函数,确定既能描述叶片化几何形状又与叶轮气动性能直接相关的流动参数或将叶片几何形状参数化,结合CFD计算预测目标函数结果,最终通过选择合适的寻优算法,寻找性能最优的设计参数。Oyama等人[43]采用遗传算法并结合三维NS方程进行流场分析,以熵值最小化为目标对叶片进行再优化,优化后绝热效率提高了近2个百分点,席光等人[44]采用将离心叶轮内部的三维粘性流动求解、试验设计和响应面方法相结合的方法,对压缩机级间叶轮进行优化设计。进化类算法具有很强的鲁棒性,特别是这种方法可以很自然的从单点、单目标、单学科过渡到多变量、多目标、多学科优化[45-46]。
进化类算法尽管具有种种优点,但其需要完成大量的适应度函数分析,优化效率较低,在复杂三维气动优化问题中的应用中有很多困难,因此在二十世纪九十年代提出了伴随方法,伴随方法[47]解决了气动优化中目标对设计变量梯度的求取问题,另外因为伴随方法用于梯度信息获取时,计算量与设计变量个数无关,使得多变量的气动优化设计过程变得简便、高效,Zingg等人[48]的研究表明伴随算法的优化效率可达进化类算法的五倍,但尽管如此,梯度类算法还是受限于易陷入局部最优且难以应对多个目标和约束的问题。
2 机器学习算法
机器学习方法可以分为有监督学习、无监督学习和半监督学习三类,每一类方法都发展了一些有代表性的算法。
2.1 有监督学习
2.1.1 回归与分类算法
在有监督学习问题中,输入的数据会预先分配标签,通过数据训练出模型,然后利用模型进行预测。当输入变量为连续时,被称为回归问题,当输出变量为离散时,则称为分类问题。从最古老的感知机模型(它可以对线性可分离数据做二分类处理)开始,基本算法可大致分为三类,即支持向量机(SVM)、随机森林(RF)和朴素贝叶斯,这些算法已经在工业中得到了广泛的应用。
Cortes等人[10]在1995年发表的论文中正式提出支持向量机的方法,并在文本分类任务中显示出卓越性能。支持向量机刚开始主要是针对二分类任务设计的,但Hsu等人[49]对多分类任务进行了推广。Smola[50]对支持向量机在回归问题上的应用做了一个较全面的介绍,随后,如何提高效率使SVM能适用于大数据一直是研究重点,例如Rahimi等人[51]提出了基于随机傅里叶特征的方法来求解核函数,并证明在大规模分类任务和回归任务中,该方法的性能以及训练速度明显优与传统的SVM模型;Yang等人[52]研究发现当核矩阵特征值有很大差别时,Nystrom方法往往优于随机傅里叶特征方法;Domingos[53]在1997年提出朴素贝叶斯分类器用以解决分类任务,但是朴素贝叶斯分类器不考虑属性间依赖性,随后Kononenko等[54]提出半朴素贝叶斯分类器,这种方法可以基于各种假设和约束来对属性间的部分依赖性进行建模,更加符合实际情况,分类结果也更加准确。随机森林(Random Forest,简称RF)是由Breiman于2001提出的一种分类方法[55],它是Bagging方法[56]的一个扩展变体,在以决策树为个体学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入随机属性选择;Fernandez-Delgado等人[57]通过大量实验在121个UCI数据集上比较了179种分类算法的分类性能,试验结果表明,随机森林算法的分类性能是最优秀的;Paul等人[58]提出了一种改进的随机森林分类器,以最小决策树的数量进行分类,同时根据特征的重要性限制随机森林中决策树的数量,在数据集上的训练结果表明在增加效率的同时平均分类误差得到显著降低。回归和分类的算法已经被成功运用流动计算和优化设计领域,特别是运用这些算法构建代理模型来替代传统的CFD计算。
2.1.2 进化类算法
进化类算法和遗传算法的概念最早分别由Rechenberg和Holland[59]提出,遗传算法是基于自然的选择和遗传机制的搜索算法,其强有力的搜索和优化技术使得它被广泛应用到许多领域,但在不同应用场景,人们发现使用遗传算法会有很多问题,为此人们提出了各种解决办法。Srinivas等人[60]提出用自适应杂交概率和变异概率来维持群体的多样性和保证算法的收敛性;Kuo等人[61]采用分裂选择方法使新的遗传算法比传统算法具有更好的特性;Feng等人[62]对多维连续空间遗传算法的杂交多样性进行分析,通过建立相应的数学模型,研究了在多维连续空间和大规模群体中使用均匀杂交算子探索新的解空间,新的模型解释了进化类算法的潜在物理机制。Zitzler等人[63]首先将评价指标引入到进化算法的选择策略中,提出一种基于评价指标的进化算法,这种算法不需要多样性保持策略,也不需要对整个近似Pareto最优解集进行计算,只需对比其中的部分解即可。虽然这些进化类方法已被证明对一些问题有效,但由于计算成本,以及需要完成大量的适应度函数分析导致它的优化效率较低,特别是在复杂流体动力学问题中,损失函数很难保证收敛,因此在实际运用中,也有一部分学者将这种方法与人工神经网络相结合使用。
2.2 无监督学习
在无监督学习问题中,训练样本的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础,它可以分为降维和聚类。
2.2.1 降维
许多学习方法都涉及距离计算,而高维空间会给距离计算带来很大的麻烦。事实上,在高维情形下出现的数据样本稀疏、距离计算困难等问题,是所有机器学习方法共同面临的严重障碍,被称为“维数灾难”(Curse of Dimensionality)[13]。缓解维数灾难的一个重要方法就是对数据进行降维,经典算法包括主成分分析法(Principal Component Analysis,简称PCA)、线性判别分析(Linear Discriminant Analysis,简称LDA)、流形学习(Manifold Learning)[64],这类算法虽然简单易用,但这些算法的线性特质使得它们在处理复杂的真实数据的时候力不从心,于是Scholkopf等人[65]提出了核化主成分分析法(Kernelized PCA,简称KPCA),基于核技巧对线性降维方法进行“核化”,使高维空间到低维空间的函数映射为非线性,从而减少降维后的失真。在模式识别领域人们发现,直接对矩阵对象进行降维操作会比将其拉伸为向量再进行降维操作有更好的性能,于是产生了2DPCA[66]、2DLDA[67]等方法,以及基于张量的方法[68]。Kohonen在1988年提出了SOM(Self-Organizing Map,自组织映射)网络[69],这是一种竞争学习型的无监督神经网络,它能将高维输入数据映射到低维空间,同时保持输入数据在高维空间的拓扑结构,即将高维空间中相似的样本点映射到网络输出层中的邻近神经元,该方法也可应用于聚类、高维数据可视化、图像分割等方面[70]。但是面对复杂的现实数据,深度神经网络的表示能力更为突出,在2006年,Hinton[71]在《Science》上发表了以自编码器算法为基础构筑的深度神经网络(参见图1),创新性的提出使用无监督训练方式训练大型网络,使用多层神经网络对数据进行降维,提取数据低维度的特征,随后,针对不同的应用场景,陆续出现了不同的算法模型,如变分自动编码机[72],卷积自动编码机[73]等等。
2.2.2 聚类
图1 自动编码器网络Fig.1 Autoencoder networks
聚类的目的是将数据集中的样本划分为若干个通常是不相关的子集,每个子集称为一个“簇”(Cluster),通过这样的划分,每个簇可能对应于一些潜在的概念,聚类既能作为一个单独过程,用于寻找数据内在的分布结构,也可作为分类等其他学习任务的前驱过程。基于不同的学习策略,学者们设计出多种类型的聚类算法,比如K均值算法[74]、高斯混合聚类[75]、基于密度的聚类[76]等,其中K均值算法可以看作高斯混合聚类在混合成分方差相等且每个样本仅指派给一个混合成分时的特例。初始聚类中心的选取对K均值算法聚类结果的影响起着决定性作用,Xiong等人[77]首先计算所有数据对象的密度,求出数据集的密度平均值,从密度点集中选取密度值最大的数据对象作为第一个初始聚类中心,剩余聚类中心选取依据与前面选定的聚类中心的距离最大的原则进行,这种基于密度的改进方法不仅降低了算法运行的复杂度,也可以提高聚类结果的精度。
2.3 半监督学习
2.3.1 半监督回归、降维与聚类
半监督学习通过监督学习和无监督学习的结合,利用少量的标记数据和大量的未标记数据进行训练。半监督学习算法在部分监督下运行,或者使用有限的标签训练数据或使用来自环境的其他纠正信息,因此半监督学习已普遍用于各类机器学习任务。1994年Shahshahani和Landgrebe[78]最先提出半监督学习的方法,但是这种方法需要有充分的领域知识才能确保模型训练成功,因此不具有泛化能力。Blum等[79]提出了图半监督学习方法,这种方法直接基于聚类假设,将学习目标看作找出图的最小割,提出了一种针对有标签的训练数据较少而无标签数据较多的数据集的解决方案。随后Zhou[80]和Zhang[81]等人在此基础上分别将半监督学习用于解决回归和降维问题,相较于有监督学习,这种算法可以有效地利用未标记的数据来改进回归估计以及提高降维的精度。近年来,以“深度学习”为代表的复杂模型受到了广泛的关注,越来越多的深度半监督模型被提出,但是这种多隐藏层神经网络难以直接用经典算法(例如标准BP算法)进行训练,因为误差在多隐藏层内逆传播时,往往会发散而不能收敛到稳定状态。在解决回归和降维问题时,有两种思路被提出,一个是对网络参数进行预训练,例如Hinton等人[82]在深度信念网络(Deep Belief Network,简称DBN)中,首先训练第一层,然后将第一层预训练好的隐节点视为第二层的输入节点,对第二层进行预训练;……各层预训练完成后,再利用BP算法等对整个网络进行训练;另一种思路是“权共享”,即让一组神经元使用相同的连接权,这种思路在卷积神经网络(Convolutional Neural Network,简称CNN,参见图2)中发挥了重要作用,所以CNN在图像和模式识别方面有很成功的运用,如LeCun[83]以CNN进行手写数字识别。另一种用作回归的半监督模型是RNN(Recurrent Neural Network,递归神经网络)网络[84],网络中特有环形结构可以让一些神经元的输出反馈回来作为输入信号,近年来对RNN的重新关注很大程度是因为长短期记忆网络(Long-Short Term Memory,LSTM)算法的发展,该算法设置了单元状态和门控机制来储存和忘记过去输入的信息,从而缓解了梯度问题以及传统RNN的长期信息传递问题。Graves等人[85]提出了一种扩展的架构,称为多维LSTM网络,可以有效的处理高维数据信息,Pathak等人[86]发展了一种替代RNN的有效方法叫做回声状态网络,已成功用于预测多个动力学系统的输出。Ian J.Goodfellow等人[87]于2014年最先提出了一种通过对抗过程估计生成模型的半监督降维算法,这种模型可以生成数据集中没有的新数据,所以GAN的两个应用是用来做数据增强和图像生成。随后,Mao等人[88]为了克服传统GAN在学习过程的梯度消失的问题,提出了最小二乘生成对抗网络(LSGAN),与常规GAN相比,LSGAN在学习过程中表现更稳定,并能够生成更高质量的图像。
2.3.2 强化学习
图2 卷积神经网络的架构Fig.2 Convolutional neural networks
强化学习(参见图3)是通过机器和环境之间的交互过程来获得最优化策略的过程[31],Sutton等[89]于1988年最先提出了一种基于强化学习的贪心算法,随后不同学者从不同的角度对强化学习进行了解释,Gosavi[90]从优化的角度对强化学习进行了详细的介绍。Watkins等[91]提出了Q学习算法,Q学习不需要对环境进行建模,它可以找到一个可以最大化所有步骤的奖励期望的策略,这种算法改进了传统的强化学习理论基础,并可以用于控制领域。而随着Alpha Go击败了围棋世界冠军,强化学习算法得到的不断发展,LIllicrap等[92]在Q学习的基础上开发一种新的训练算法深度确定性策略(Deep Deterministic Policy Gradient,简称DDPG),这使强化学习的控制参数可以是连续性变量,极大的扩展了强化学习的应用范围。Kober等人[93]综述了强化学习在机器人领域的应用。Nagabandi等人[94]提出基于神经网络动力学和无模型微调的模型化深度强化学习,该算法只需收集机器人与环境几分钟的交互数据就可找到最优策略。强化学习是通过与环境的交互过程来不断训练更新网络参数的,这种实时且完全自动化的策略在流动控制以及流体机械的结构参数优化有很好的应用前景。
图3 强化学习基本模型Fig.3 The basic model of reinforcement learning
3 机器学习在流动计算和控制方面的应用
由于流体力学中Navier-Stokes方程无解析解,而大尺度流动的精确算法(直接数值模拟)又超出了当前的计算能力,所以通常都采用数值模拟方法,如RANS、LES等来仿真,但是仿真模拟对流动的实时控制而言太慢了[95],因此也有学者[96]发展了一些方法来获得准确而且高效的降阶模型,这种模型能以很少的成本捕获到基本的流动特征,而机器学习方法由于其特有的网络结构,可以为解决流体力学中的高维非线性问题以及降阶建模提供一种新的途径,例如将实验流场数据和CFD数据用于机器学习训练,以解决流体力学中的降阶建模,流动控制等问题,并能大大减少仿真时间[25],提升实时效果。
3.1 机器学习在流动计算上的应用
机器学习在流动计算中的应用主要体现在代理模型的构建以及降阶模型的构建上,前者主要是为了解决湍流模型的封闭问题或直接构建映射关系替代湍流模型的计算,因为湍流的多自由度使得求取所有时空尺度下的解析解的可能性小,所以在实际运用中会使用像RANS、LES这样的封闭模型,但是这些模型通用性不高,需要仔细调整其中的参数来模拟不同的情况,自然就有学者引入机器学习方法来修正湍流模型,Xiao等人[32]对机器学习在湍流模型上的应用进行了较为系统的综述。Xiao等人[97]还开发了一种数据驱动的具有物理知识的贝叶斯框架(参见图4),用于量化RANS模型中雷诺应力的不确定性,并在后台阶流问题验证了可行性,结果表明即使样本数据稀疏也能与DNS的结果保持很好的一致性。Wang等人[98]基于随机森林方法,使用DNS数据来训练RANS模型中雷诺应力的差异函数,然后将其用于预测不同流动中的雷诺应力,并在简单的分离流问题上进行了验证,得到了出色的验证结果。Singh等人[99]提出了一种基于神经网络重构的预测模型,并将其嵌入SA模型求解器中,在预测翼型扰流问题的表面压力和升力时能获得很好的结果。Zhang等人[100]采用了径向基函数神经网络和一些辅助优化算法来重构平均流量和涡流粘度之间的映射函数(参见图5),为修正SA模型提供了一种新思路,与传统SA模型相比,该方法具有合理的精度和较高的效率。Maulik等人[101]使用高保真数据来训练多层感知机模型,用来闭合湍流模型LES,并能通过局部网格解析解来预测湍流源项,结果表明所提出的方法能够精准的捕获到相关的流动结构并具有一定的保真度。Raissi等人[102]提出了一种名为HFM(Hidden Fluid Mechanics)的方法,这是一种基于物理知识的深度学习方法,即利用深度学习中的自动微分技术,将偏微分方程融入神经网络中,采用正则化偏微分方程使输出结果更加符合物理规律,并在二维圆柱扰流问题上进行了验证,所得的结果不仅具有一定的鲁棒性,而且与数值模拟数据能很好的吻合。
图4 基于机器学习重构湍流模型的框架[97]Fig.4 A framework for reconstructing turbulence models based on machine learning[97]
图5 构建学习器和代理模型的流程图[100](q和μt分别表示输入特征和涡粘系数)Fig.5 Flow chart for building the learning machine and surrogate machine[100](qandμtmean the input features and eddy viscosity,respectively)
机器学习在流动计算上的另一个应用是基于机器学习方法构建降阶模型来对流动特征进行提取,从而达到降阶效果。Kaiser等人[103]提出了一种基于k均值算法的非稳态流动降阶模型,成功应用于圆柱绕流尾迹的识别,而对流动特征的精确识别可以指导流动控制策略,并且这种聚类算法的训练过程是与真实流场信息相关联的,因此物理含义明确。Colvert等人[104]研究了使用多层感知机模型进行翼型尾涡拓扑结构的分类,并将局部尾涡的时间序列映射到整个尾流区域,所得到的结果显示出使用该神经网络模型在流动降维问题上的准确性和鲁棒性。Fukami等人[105]开发了一种基于卷积神经网络的高分辨率算法,并证明了它在湍流流场重构的有效性。Kim等人[106]提出了一种基于生成对抗式神经网络构建的生成模型,可以从一组简化的参数中生成流场,减少了CFD计算时间。Farimani等人[107]利用变分自动编码器,基于生成的对抗网络构建了一个能按照任意边界条件生成满足控制方程的二维不可压方腔定常流动流场模型,从而实现了对流场控制方程的降维,并根据输入条件(边界条件、几何外形等)生成满足控制方程的流场。Wang等人[108]应用长短期记忆循环(LSTM)神经网络结合PCA对非定常流动控制方程进行降阶,可以成功地对下一时刻的流场进行预测。Kani和Elsheikh[109]使用了文献[108]相同的策略构建降阶模型,循环神经网络则使用了残差神经网络,而不是文献[108]的传统PCA对流场进行降阶。
3.2 机器学习在流动控制上的应用
流动控制是流体力学领域一个非常重要的研究方向,目前控制流场的方法主要分为被动控制和主动控制。其中被动控制方法是改变机械模型,例如在边界层开槽等,主动控制方法需要输入能量,通过控制能量输入来实现流动控制。但是流动过程中时空尺度上的高维状态、非线性以及时间延迟给流动的实时控制带来很多的问题,因此有学者引入机器学习的手段来进行流动控制。Lee等人[110]最先将神经网络应用到湍流的流动控制中,他构造了一种基于多层感知机模型的自适应控制器,并通过控制机翼进行吹、吸气来延迟边界层内的流动分离,增大机翼表面层流区。而后随着强化学习算法的不断发展,有学者将这种交互学习类的算法引入流体中来实现流动的主动控制,Rabault等人[111]采用深度强化学习来主动控制圆柱两侧两个射流的质量流量,通过与不稳定的尾流进行交互,成功地稳定了卡门涡街并减少了约8%的阻力,Florimond等人[112]利用强化学习提出一种面向流体力学实验的控制策略,通过传感器测量的数据与强化学习模型交互训练神经网络,能成功实现自适应控制的策略,Gazzola[113]和Verma[114]等人研究了鱼类的集群行为,并通过强化学习来指导利用尾涡进行高效的集体游泳行为。基于深度学习的流动控制策略,特别是其中的强化学习算法,使得流动控制过程是一种完全自动化、自动寻优的实时策略。
4 机器学习在流体机械优化设计上的应用
流体机械优化设计需要考虑很多相互影响的因素,性能参数和几何参数之间的关联十分敏感和复杂,呈现出强烈的非线性,因此有学者提出了利用机器学习技术模拟人在优化过程中的合理行为和作用机制,以深层次利用信息和知识,改善优化的实用性和效率。在流体机械优化设计中,机器学习的应用主要体现在构建代理模型或构建降阶模型来探索设计变量间的关联性或者设计变量和性能之间的联系。
传统机器学习方法在流体机械上最直接的应用就是用实验数据或者仿真模拟数据来训练,基于高斯过程回归(如Kriging响应面法)、RBF、多层感知机等构建输入与输出之间的模型(也就是构建代理模型),从设计参数快速预测目标函数,以部分或完全取代CFD分析。Lamarsh[115]使用多层感知机模型替代转子叶片的动力学评估过程,结合渐进分析方法优化了叶片在不同工作状态下的做功能力,优化后的叶片性能明显优与原始叶片。Mengistu和Ghaly[116]训练多层感知机模型代替了气动优化中的CFD评估过程,并结合遗传算法用于优化跨声速冲力式涡轮机叶栅及亚声速压气机转子,这种优化方法在改善叶片性能的同时能够显著提高优化效率。Tong等人[117]构建了二次响应面、径向基高斯响应面和Kriging三种替代模型,并结合遗传算法优化了离心泵的设计参数(参见图6),结果表明基于CFD模拟构建的替代模型方法的效率和准确性要优于基于水力损失模型的计算方法。Guo等人[118]在优化跨声速轴流转子叶片时使用自组织映射图的方法对几个待选的优化目标进行筛选精简,使用基于Kriging响应面的优化方法进行优化,并用方差分析法分析了目标对各个设计变量的敏感度。Rai等人[119]提出了一种结合神经网络模型和多项式响应面模型的复合响应面的优化框架,并用于压气机翼型设计,该框架根据目标对设计变量敏感度的区别将设计变量分成简单和复杂两种,前者用多项式响应面拟合,后者用神经网络拟合。Timnak等人[120]提出了两种数据预处理方法来增强神经网络的能力,以便将其应用到与遗传算法结合的空气动力学形状优化的适应度函数的估计中,在对跨音速翼型的优化设计中,新方法相对于常规的人工神经网络模型能有效减少计算时间,同时提高计算精度。Tang等人[121]为了减少基于元模型的设计优化的计算量,提出了一种基于虚拟样本生成和径向基函数进行优化的方法(参见图6),并将其用于机翼的气动优化,结果表明该方法在全局收敛性、效率和鲁棒性优于传统方法。
图6 遗传算法和替代模型相结合用于优化设计的流程图[117-121]Fig.6 The flow chart of the combination of genetic algorithm and surrogate model for optimization design[117-121]
构建代理模型完全基于输入和输出之间的映射关系,而忽略了背后的流动机理。另一种应用是使用机器学习方法对气动优化背后主导的NS方程进行降阶,以减少其复杂度,构建一个相对精简的降阶模型,可以对流动特征进行提取,进而指导优化设计。Thomas[122]等人将基于主成分分析法的降阶模型引入三维机翼的气动弹性设计中,并发现在一组结构参数上构建的基矢量可以很好的应用于另一种结构参数,并维持很高的精度。Legresley等人[123]利用已有的计算结果,使用特征正交分解方法对欧拉方程中各节点物理量进行线性降阶,在不改变方程和物理量数目情况下极大地减少了计算复杂度,将欧拉方程数值求解转化为求特征正交分解法中各基矢量系数使得新方程组残差最小化,并在翼型设计问题上得到了验证。Akolekar等人[124]用高保真的DNS数据来训练神经网络获得了非线性显示代数应力模型,可以改善低压涡轮机尾流混合区域的预测。He等人[125]研究了SA湍流模型的参数不确定性,并通过神经网络来改进SA模型来提高预测复杂流动特征的准确性,并将其用于压缩机的流动计算中,改进后的模型能较准确的捕捉压缩机叶尖流动特征。
传统机器学习方法由于分析归纳能力有限,依赖使用者利用先验知识对特征进行筛选以缩减问题规模,而且需要大量样本构建代理模型,训练方法也很容易陷入局部最优。因此很多学者将代理模型与进化类算法混合,以鲁棒性和全局寻优能力较强的进化类算法作为优化主框架,使用CFD作为评估手段,而代理模型仅归纳样本来提供低精度的预评估,为进化类算法建议演化方向。近年来,以深度学习为代表的机器学习方法取得了令人瞩目的发展和成就,深度学习相对于传统机器学习拥有更加复杂的网络结构,训练过程也得到了改进,因此归纳能力得到了大大提升,能够对特征进行自主选择,可以从大量的候选特征中剔除无用特征,再进行回归和分类。特别是强化学习,其交互式的学习方式可以很好的用于优化设计。
Shu等人[126]提出了一种基于生成对抗网络训练的生成模型,将其用于飞机几何形状的快速生成,并使用GAN的评估神经网络来更新数据集,从而提高生成模型的气动性能以及几何可行性,结果表明该方法能生成性能优越的飞机几何形状。Gino等人[127]基于MLP模型探索涡轮机转子叶片的设计空间,并构建模型评估叶片性能和几何参数以及运动学参数之间的关系(参见图7),该方法可以找到主要几何参数的最佳值。Michael等人[128]提出了一种基于多层感知机网络构建代理模型的方法来加快高负载跨音速压缩机转子的设计优化(参见图8和图9),该方法可以在多个代理模型之间进行动态选择并能减少设计空间探索时的不确定性。Tong等人[129]分别基于支持向量机模型和K均值聚类算法开发了用于涡轮发动机核心尺寸预测的预测工具,这种方法充分利用了发动机的历史设计数据,能够为进一步探索机器学习方法在发动机设计上的应用提供思路。Sarkar等人[130]提出了一种基于机器学习的多保真度建模和信息理论贝叶斯进行采样的优化方法,该方法基于高斯过程对各种保真度信息建模,通过有效的主动学习策略进行增强,并将这种方法用于压缩机转子的设计优化。Lynch等人[131]提出了一种基于贝叶斯算法的框架,用于拓扑优化中的参数调整,该方法可以避免需要反复试验的手动参数调整。除了优化设计以外,有很多学者将机器学习方法用于流体机械故障监测,如Samuel等人[132]构建了一个递归神经网络模型来预测压缩机失速,并能指导压缩机在失速前采取措施。
图7 多层感知机模型的结构[127]Fig.7 The multilayer perceptron model[127]
图8 基于构建代理模型优化设计的流程[128]Fig.8 Flow chart of surrogate aided optimization[128]
图9 基于机器学习的压缩机转子的优化[128]Fig.9 Adaptive optimization of a transonic compressor rotor based on machine learning[128]
Yan等人[133]利用强化学习和数值模拟软件耦合来对导弹控制面的空气动力学特性形状进行优化(参见图10),并通过迁移学习来共享神经网络参数,以此作为网络训练的先验参数,新的优化方法所需的CFD调用量减少了62.5%。Matias等人[134]将神经网络与基于梯度的优化器结合,用于优化风力机的弯曲叶片(参见图11),新叶片的推力得到了明显提高。Viquerat等人[135]介绍了深度强化学习在直接形状优化中的应用,这种应用表明只要有相关的奖励函数,通过强化学习训练的人工神经网络就可以自行生成最佳形状,而无需任何先验知识,并且可以在有限的时间内完成。Yonekura等人[136]提出了一个使用深度强化学习进行机翼设计优化的框架,将其用来优化机翼的攻角并证明了它的泛化能力。Aitor等人[137]基于深度强化学习开发了一种偏航控制算法,以便根据风力机的动力学特性和当地的风速状况来调整转子的方向。
图10 强化学习用于优化设计的框架[133]Fig.10 Optimized design framework based on reinforcement learning[133]
图11 强化学习用于风力机叶片的优化[134]Fig.11 Reinforcement learning for wind turbine blade optimization[134]
5 深度学习在流体机械优化设计上的应用前景与展望
本文对主要的机器学习方法以及机器学习方法在流动计算及控制、流体机械优化设计方面的应用进行了综述,其中的深度学习方法非常适合对流体机械气动优化中的数据和流场数据进行归纳分析,从而对优化设计起到很好的指导作用。机器学习方法使得从流体数据中发现新的物理机制,对称性,约束和不变性有了很多可能性。现有的基于机器学习的方法都是以性能指标为目标的优化框架,而深度学习的方法可以以流场结构为优化对象,不是只着眼于气动性能参数,更为直接的是针对流场结构(如旋涡、边界层、二次流等)进行观察分析,并通过修型实现对这些结构的调控,获得更全面均衡的性能。
强化学习对流体机械的结构参数优化有很好的应用前景,首先,强化学习能够很好的处理非线性,高维度的优化问题,它在很多控制领域的应用已经证明了这一点,流体机械优化设计计算同样也是高维度非线性问题,因此在流体机械方面必将得到越来越多的应用,如性能方面(气动、水力性能)、可靠性方面(强度、刚度、振动)等。其次,强化学习不需要提前拥有大量的数据来训练,它是通过与优化交互的过程来不断的更新自身的网络参数,在交互过程中强化学习不仅可以以性能为优化指标,也可以使用流场中的流动参数为优化目标,因此可以形成正-反-正的优化模式。另外,强化学习还具有一定的泛化能力,可以通过迁移学习的方法使强化学习用先前训练的模型来解决类似的新问题,这种优势可以为解决流体机械某一类优化问题提供一种新的思路,如针对不同系列的风机,神经网络模型可以在原有基础上继续训练即可,并不需要重新建立网络结构,这大大减少了设计优化的时间。但是由于强化学习是完全自动化的过程,用于流体机械的优化设计时,结构的复杂性使得流体机械计算网格难以自动成型,因此需要自适应的网格成型技术以及CFD计算过程来配合强化学习的训练过程。
机器学习的应用同样面临着一些挑战,机器学习方法所提取的特征通常不可解释,缺乏物理含义。由于完全由数据驱动的、以概率统计为基础的深度学习方法属于“黑箱”学习方法,这就容易导致在缺乏专业领域知识的情况下,进行盲目的“黑箱式”学习,且获得的特征通常采用高维向量表示,与人为定义的物理特征难以对应,如何构建基于物理约束的机器学习模型成为了热点。同时所获取的函数关系也并不都是因果关系,而是关联关系。目前的人工智能和机器学习在多尺度非线性映射、大数据关联关系挖掘与决策等方面表现出了强大的优势,但在深层逻辑推理与物理联系等方面还存在着明显不足。要将其直接应用到深层次流动规律揭示、复杂公式推演、气动创新设计等问题还存在一定困难。在流体流动中,准确量化潜在的物理机制以便对其进行分析通常很重要。此外,流动表现出复杂的,多尺度的现象,对其的理解和控制在很大程度上仍未解决。