针对超临界翼型气动修型策略的强化学习
2021-07-05李润泽张宇飞陈海昕
李润泽,张宇飞,陈海昕
清华大学 航天航空学院,北京 100084
随着优化算法和机器学习技术的发展,计算机辅助设计(CAE)在飞行器气动设计中可以发挥更大的作用,但设计师的经验和判断仍不可或缺。工程设计中往往仍需要设计师结合自身的经验和理解进行手动修型,或者在优化过程中进行实时调控。
强化学习是一种用于策略学习的机器学习方法,通过与其所面对的环境(Environment)不断交互以积累经验,学习如何采取不同动作以提高累积回报。本文探索使用强化学习模拟设计师在手动修型设计时积累经验的过程,总结根据翼型的状态选择修型动作的策略,以形成可迁移的策略模型。
本文分为以下几个部分。首先介绍强化学习在流体力学领域的应用,针对气动优化设计解释强化学习的相关概念。之后介绍翼型参数化修型的方法和修型动作,以及强化学习的相关算法。在此基础上,介绍强化学习针对超临界翼型气动减阻问题的实现,并讨论相关训练方法的影响,以及所形成策略的迁移应用效果。
本文是对强化学习在气动优化设计中应用的一个探索,希望打通道路,搭好框架。因此进行了诸如CFD分析采用欧拉方程、限制修型步数为三步等简化,以上措施不会影响本文的相关结论,但也应该看到强化学习的推广应用还需要开展大量的工作,积累更多的成果。
1 气动优化设计与强化学习
1.1 气动优化设计中的“机器学习”
近年来优化在飞行器气动优化设计中得到了越来越广泛的应用,有些研究通过多种手段提高优化方法在工程设计中的实用性,有些研究利用机器学习来提高数据的利用率或提高优化效率,具体内容可参考文献[1-2]。但是,优化是一种数学工具,设计仍离不开人的“知识”,离不开人的经验和判断[2]。将人的经验引入优化之中较为成功的实践包括“人在回路”[1]。
设计师的经验一部分来自积累的统计规律,一部分是基于流体力学对物理现象的分析判断。这些设计经验都是常规优化算法所无法具备的“知识”。而强化学习的训练过程则与设计师积累经验的过程十分相似,有潜力为优化设计补足此类“知识”。类比于传统的试错法(Trial-and-error),强化学习通过在几何修型过程中持续地采取不同的修型动作并观察设计结果的改变和收益,从而总结采取动作的策略。当强化学习观察的状态参数具有一般性时(如流动结构特征),可以认为强化学习在基于物理规律学习修型策略,从而在一定程度上获得了与设计师相同的设计经验。这样就为优化设计由“人在回路”向“机器人在回路”的转变奠定了基础。
目前在优化设计中比较常用的机器学习技术是基于响应面的性能快速预测方法,该方法利用已有数据构建设计变量到性能的映射来加速优化过程,属于监督学习类别。与监督学习不同,强化学习构建的是环境的状态参数到动作参数的映射,其目的是学习与环境交互的策略以获得最大累积回报。在监督学习中作为映射输出的性能不再是强化学习的输出,而是作为用来训练的回报。强化学习的具体理论可参考文献[3]。
强化学习研究目前主要集中在机械控制领域和游戏中,在流体力学方面的应用研究较为有限,相关进展可参考文献[4]。目前,大部分研究仍然针对强化学习的传统领域,即流动控制问题[5-7]。基于强化学习的几何优化研究则寥寥无几,已发表的工作仅有少量针对可变形翼型的非定常变形策略,但其本质上仍是控制问题[8]。相比之下,几何优化过程没有时间导数。因此,优化试图在尽可能少的步数达到期望状态,即优化效率占据了更重要的地位。与此同时,优化设计方法是设计师在工程设计中的重要工具,优化设计需要可以体现设计师的意图和经验,从而保证设计结果能够具有实用价值。因此,强化学习在气动几何设计中期望获得的不是一种应对环境变化的控制率,而是一种类似于设计师经验的设计策略。目前,以学习设计策略为目的,针对优化设计过程的强化学习研究在国内外仍处于空白状态。因而,本文主要目的在于指出在气动几何设计中强化学习的内涵和特点,并给出在此领域中可提高强化学习效果的若干手段与注意事项。
1.2 气动几何设计中的强化学习
强化学习一般分为无模型方法和基于模型的方法。基于模型的方法需要对环境进行建模,如构建翼型几何参数到性能的响应面,而这类强化学习算法也就类似于基于响应面的优化。本文研究的无模型方法则使智能体直接与环境进行交互,此类方法也是强化学习的主流研究方向。无模型方法进一步分为基于策略的(Policy-based)和基于价值的(Value-based)方法,基于策略的方法直接对策略进行建模并对策略模型进行优化,而基于价值的方法则相对间接一些。价值函数表示某一状态下(采取某一动作时)获得累积回报的期望,用于描述到达这一状态(采取这一动作)能获得好处的多少。基于价值的方法对价值函数进行建模,在选取动作时采用固定形式的策略,一般在当前状态下选取使价值最大化的动作。还有另一类结合策略和价值的演员-评论家(Actor-Critic,AC)方法,这类方法同时包含策略模型(即演员)和价值模型(即评论家),利用价值模型来“评价”演员的策略,提高训练效率。
另一方面,强化学习的策略可分为随机策略和确定性策略。确定性策略表示针对某一状态采取的动作是确定的;而在随机策略中,策略是一个关于状态和动作的函数,其返回值为在某一状态下采取某一动作的概率。一般而言,随机策略要比确定性策略更加鲁棒,训练起来也更加容易。因此在实际应用中,智能体在某一状态下采取的动作需根据策略π(s,a)的概率分布进行采样给出。相应地,价值函数作为累积回报的期望,也需要通过蒙特卡洛方法采样进行估计。
智能体的策略模型或价值模型在状态和动作是维度较低的离散值时可以使用表格法进行储存,但是对于连续空间或维度较大的情形,则需要使用人工神经网络(Artificial Neural Networks, ANN)对价值函数或策略进行建模(记模型的参数矢量为θ,φ),此时称作深度强化学习。参数化策略记为πθ(s,a),价值函数参数化模型记作Vφ(s)或Qφ(s,a)。本文使用的近端策略优化(Proximal Policy Optimization, PPO)算法就是一种基于演员-评论家模式的深度强化学习算法。
2 翼型的修型设计
2.1 增量修型的几何参数化
无论是手动修型、优化设计还是强化学习过程都需要对设计对象进行几何参数化。对于翼型而言,Class Shape function Transformation(CST)方法能够使用尽可能少的控制参数,高精度且光滑地表达翼型几何[9]。但是由于CST的基函数在整个弦长范围内都有贡献,因此通过CST参数调整来进行局部几何的修改是困难的,反而需要多个参数的协同调整才能实现。Straathof等[10]提出将CST结合B-splines来实现局部修型,虽然能够有效保持局部修型后的几何光滑性,但实现相对复杂且控制参数较多,因此实际应用较为有限。
鼓包函数是一种常用的局部修型手段,通过在基础几何之上添加外凸或内凹的几何增量,实现对局部几何的修改。最常用的鼓包函数Hicks-Henne函数具有高阶连续光滑的特点,能够在保证光滑的前提下对几何进行修型[11]。Hicks-Henne鼓包对单位弦长的翼型进行修型可以表示为
y=ybasis+∑yb,i
式中:ybasis为基础翼型纵坐标;yb,i为鼓包函数纵坐标。Hicks-Henne鼓包修型通过在原始几何ybasis的基础上叠加若干个鼓包函数实现对几何的改变,每个鼓包函数均可表示为
其中:t1∈(0,1)为鼓包的最高点位置;hb为鼓包的高度;x∈[0,1]为翼型的横坐标。定义鼓包的宽度sb为yb函数最高点两侧高度为0.01hb位置的间距,根据sb和hb可求得t2的值。使用Hicks-Henne鼓包修型时,一般在翼型弦长方向上等间距布置鼓包的最高点位置t1,并保持决定鼓包控制范围的参数t2一致。本文为了精准表达设计师的修型过程,修型中叠加的各个鼓包的位置、高度和宽度均由强化学习模型给出,不预先指定。图1展示了不同中心位置t1、宽度sb和高度hb对应的鼓包几何,可以看出通过控制鼓包宽度可以实现更加精确的局部控制。
图1 Hicks-Henne鼓包形式Fig.1 Hicks-Henne bump distribution
为保证鼓包函数修型结果的光滑性,可以进一步使用CST方法对鼓包修型后几何进行最小二乘法拟合。拟合目标为最小化CST翼型和鼓包修型几何的差量,从而在尽可能体现鼓包修型的基础上保证翼型几何的合理性。图2展示了在基础翼型(黑色虚线)上直接叠加鼓包(t1=0.3,sb=0.4,hb=0.02)后的翼型(绿色实线),以及对鼓包修型几何使用6阶CST方法进行拟合的结果(蓝色实线)。从图中可以看出从翼型整体来看CST拟合准确表述了鼓包修型后的几何差别,但直接叠加鼓包函数后翼型会出现局部的曲率波动,而经CST拟合得到的几何曲率变化则十分光滑。
图2 翼型上表面添加鼓包前后的几何和曲率分布Fig.2 Geometry and curvature distributions of airfoil upper surface before and after bump modification
2.2 修型动作及其策略
优化算法,无论是确定性算法(如梯度算法)还是随机性算法(如差分进化算法),数学上都可以描述为
minf(x)
s.t.g(x)≤0,x∈D⊆Rnx
式中:f为优化目标;g为约束函数矢量;D为nx维设计变量x的定义域。优化过程相当于在定义域中搜索最优的x*使得目标最小,每一个x对应一个个体。以CST参数作为设计变量为例,每一个个体都由相应的x决定实际的几何。
相比之下,设计师在手动设计时,几何的改变都是通过增量的形式进行叠加,因此称为增量修型(Incremental modification)。增量修型对设计对象和设计过程的描述与优化不同。在传统的试错法中,设计师通过对当前设计对象的性能进行分析,结合压力分布或其他流动结构特征进行判断,对不合理的区域进行修型,并根据修型后的表现决定下一步的修型操作[1]。以翼型设计为例,设计师的修型操作并不是对优化所使用的CST参数进行调整,而是直接对几何进行了局部调整,比如说增加了鼓包。此时设计师操作的参数是鼓包的参数(如鼓包位置、高度、宽度),不妨称这些参数为动作参数a。这一过程可以记作:
增量修型过程相当于在一个树形结构的设计空间内进行搜索(见图3)。树中的每个节点都是一个可能出现的几何xi,都可以从若干动作中选取一个而进入到相应的下一级节点,而设计师的一系列动作就形成了一条修型轨迹(见图3中红色轨迹)。设计师根据第t步修型结果决定下一步的动作at时,只利用了修型轨迹中采用的动作{a0,a1,…,at-1}和相应的收益与代价。虽然如前所述,在每个动作后获得的几何仍可以使用CST拟合进行光滑,但设计师并不需要关心这个过程和它涉及的参数。
需要额外指出的是,当动作是正交可叠加的,或者说动作调换先后顺序而不影响最终几何时,树形结构的不同节点对应的几何可能是相同的,因此到达某一几何的动作路径可能不唯一。另外,在实际设计过程中,设计师如果发现某一动作得到的结果不合理,是可以退回上级节点重新选取动作或节点的(见图3中绿色轨迹)。
图3 增量修型的树形结构Fig.3 Tree structure of incremental modification
相比优化而言,增量修型更接近设计师手动修型的过程,有以下几点优势:① 增量修型的设计变量(即动作空间,如鼓包参数等)相比优化(如CST参数)大幅减少,因此每一步修型的动作选择的搜索空间要小得多;② 增量修型一般是局部修型,从流动结构的角度而言,修型的针对性强、目的更明确,因而对流动结构的改善效率更高;③ 基 于流动结构对几何进行修型的策略更有物理基础,相关物理机制的引入使得策略更容易具有普适性,相比于基于数据库构建响应面会拥有更强的推广和迁移能力;④ 训练增量修型使用的策略和通过强化学习形成的策略都与设计师的设计经验直观对应,因此既可以便捷地利用设计师的经验来提高增量修型的效率,也可以通过强化学习等工具来帮助设计师学习和总结新的设计策略。
当然,增量修型可遵循不同数学方法的指导,以获得更高的效率并获得最优的性能。类比梯度算法,当算法从初始位置(x0)向最优值位置(x*)出发时,基于贪心算法的最速下降法(图4[12]绿线)试图在当前步的梯度方向获得最大改进后再确定下一步的前进方向,往往优化效率较低。相比而言,牛顿法、共轭梯度法等梯度算法都利用其他信息对每一步的前进方向进行调整,从而提高优化效率(见图4红线)。同样,增量修型的挑战也主要来自于搜索空间的树形结构带来的轨迹依赖特性,即当前步采取的动作和相应的回报都与之前的轨迹相关。因此,为避免陷入局部最优或损失效率,增量修型中选取每一步的动作时同样不应使用最大化当前回报的贪心算法。强化学习可以看作一种可行的非贪心算法,因为其目标是最大化整条轨迹的累积回报,而不是最大化每一步的当前回报。
图4 最速下降法与牛顿法优化路径对比[12]Fig.4 Comparison of optimal paths between gradient descent method and Newton method[12]
3 强化学习使用的算法与环境
3.1 近端策略优化算法
近端策略优化(PPO)算法是OpenAI推出并首选的强化学习算法[13],近期已经在很多复杂的问题中取得了很多成果,如在多人在线游戏DOTA2中取得战胜世界冠军团队,与人类选手对抗达到94%胜率的成绩[14]。PPO算法是一种基于演员-评论家模式的深度强化学习算法,该算法源自于对置信域策略优化方法(TRPO)[15]、能高效采样的带有经验回放的表演者-评论者算法(ACER)[16]和广义优势估计(GAE)[17]的结合和改进,做到了算法实现复杂程度、参数调试和训练代价之间的良好平衡。使得在每一步策略优化过程中,既能实现策略的改进,又不至于使策略变化过大而导致崩溃。PPO算法中的一个常用形式PPO-clip算法见附录A算法A1。
本文中策略模型和价值函数模型均使用含有2层隐藏层的人工神经网络模型,隐藏层节点数为128。GAE算法中的“偏差-方差平衡参数”(Bias-variance tradeoff)取为0.8,PPO-clip算法的参数ε取0.05。
3.2 强化学习的环境构建
强化学习中智能体通过与环境持续交互来学习策略,而环境则需要在输入当前状态和动作后,输出当前回报和下一状态。在翼型减阻设计中,环境包括了翼型参数化造型与几何变形,CFD计算和结果输出2个部分。
本文使用CST方法对翼型上下表面进行参数化造型,在增量修型中使用Hicks-Henne鼓包函数在翼型上表面几何进行叠加。使用以9阶CST方法对鼓包修型几何进行最小二乘法拟合,从而充分体现鼓包修型对翼型性能的影响,并保证翼型几何的合理性。本文采用的动作是对翼型的上表面添加鼓包,动作参数为鼓包最高点的弦向位置xb、最高点的高度hb(使用弦长进行单位化)和鼓包宽度sb。为便于算法调试和验证,对鼓包动作空间进行离散,其中xb=0.01, 0.1, 0.2, …, 0.9;hb=-0.010, -0.005, 0.005, 0.010;sb=0.2, 0.4。对动作离散后,每步可采用的动作有80种可能。
本文中的强化学习在训练过程中使用基于RAE2822生成的4层完全翼型树,即前3层中每个节点均含有全部80个子节点(Child)。因此该完全翼型树共有518 481个节点,涵盖了从RAE2822翼型出发的三步修型中所有可能出现的状态。翼型树中各节点的最大厚度tmax、来流马赫数Ma∞、升力系数CL与基础翼型相同,均采用定升力系数进行计算。计算工况和基础翼型的状态参数见表1。
表1 计算工况和基础翼型的状态参数
翼型使用椭圆迭代生成的C型网格,翼型上下表面共分布201个网格点,高度方向分布73个网格,总网格量约20 000。计算采用基于有限体积方法的可压缩RANS方程求解器NSAWET进行求解,该求解器求解精度和鲁棒性在大量应用情形中得到了检验[18]。本文的主要目的是打通强化学习在气动设计中使用的道路,为了缩短计算时间, 翼型气动计算使用了Euler方程分析,这不会影响强化学习能够习得减阻修型策略的一般性结论。计算使用MUSCL重构格式和Roe通量格式,采用LU-SGS隐式时间推进进行求解。从计算结果中提取阻力系数CD,激波位置Xsw,激波波前壁面马赫数Maw1,翼型前缘吸力峰壁面马赫数MawLE,以上流动结构参数的定义参见文献[18]。
强化学习环境的实现如算法A2所示。由于计算量随修型步数迅速增加,因此同样从发展方法的角度出发,本文在训练中限制修型步数为3。这一限制不会影响本文的相关结论。
为方便强化学习的调试和分析,首先完成翼型树中所有节点的计算,以查表法代替算法A2中的2~3步,从而搭建强化学习的快速训练环境。翼型树中单激波翼型所占比例为83%,其中相对基础翼型减阻的最大值为17.6 counts(1 count=0.000 1),减阻量在16 counts以上的比例为0.1%, 在15 counts 以上占0.28%,在12 counts以上占2.3%, 减阻量大于0的占40.7%。由于训练环境使用预先获得的三步修型翼型完全树,且每个修型步的几何改变量有限,因此翼型树中阻力最小的节点不是无激波翼型,但这并不影响本文关于强化学习方法的研究和结论的正确性。
4 针对翼型减阻修型策略的强化学习
4.1 基于预训练的策略模型初始化
强化学习是一种通过与环境持续交互获得状态和奖励,从而学习合理策略的一种通用算法。强化学习算法具有很强的泛化能力,能够在多种环境中进行学习。但是这种泛化能力也导致强化学习算法从零开始学习(即随机生成初始策略),没有针对特定问题的特点和先验知识来帮助模型进行学习,导致学习效率较低。预训练(Pretraining)是一种有效提升强化学习效率的方法,如对图像特征提取部分进行预训练[19],利用已有的策略模型进行预训练[20],基于示例轨迹的模仿学习(Imitation learning)[21]等。
其中,基于模仿学习的预训练是指在强化学习之前,使用监督学习方法对策略模型进行初始化的过程。这一过程实际上是一个构建策略模型的“状态-动作”映射的拟合过程,而示例轨迹中每一步的{状态,动作}都作为用来拟合的样本。本文针对PPO算法提出一种基于模仿学习的预训练算法(见算法A3),通过人工提供若干优秀的动作轨迹示例(拥有高累积回报的动作序列),训练策略模型尽可能复现这些示例,从而为强化学习算法提供较为合理的初始策略模型和价值函数模型。
在RAE2822的完全树中选取若干个总回报较高的轨迹作为示例,详见表A1。表A1中每个修型步的参数以{t1,hb,sb}的形式给出。图5显示了示例5的各个修型步的鼓包函数分布和相应翼型的壁面马赫数Maw分布,其中上方的封闭曲线为壁面马赫数分布,下方的鼓包曲线为修型中的鼓包函数几何。示例5为总回报较高且壁面马赫数分布较为光滑的一个示例,可以看出其修型策略为:首先在前缘附近向外凸起以提高吸力平台对升力的贡献,从而可以减弱激波;其次在激波前方下凹,试图减弱波前的流动加速;最后在波后上凸,以增大波后背压,从而减弱激波。
图5 修型过程中的壁面马赫数分布和 相应的鼓包几何Fig.5 Wall Mach number distributions and bump geometries during bump modification
图6给出了预训练中的模型拟合残差收敛过程,其中各曲线分别使用表A1中前10组、4组和1组 示例来拟合策略模型,图中3条残差收敛曲线均为10次预训练过程的平均值。预训练的学习率(Learning rate)为0.005,迭代步数(Iteration)为200,模型初始参数为随机生成得到,训练算法为适应性矩估计算法(Adam)。由于预训练使用的模拟学习是一个对“状态-动作”映射的拟合过程,因此应该保证一个状态有且只有一个动作与之相对应,这样才有可能使训练误差有效下降。否则,若相同的状态对应2个不同的动作,那么拟合模型不可能同时准确表达2个样本,则训练误差较大。因此,在选取示例时,在相同状态下尽可能地选取相近的动作,以保证策略初始化中神经网络训练的有效性。从图6中可以看出使用较少的示例可以降低样本中同一状态对应不同动作的可能性,因此可以有效地降低训练误差,而使用更多的示例时,训练误差很难进一步下降。
表A1 模仿学习中的鼓包修型示例Table A1 Bump modification examples for imitation learning
图6 预训练中模型残差收敛曲线Fig.6 Loss convergence of pretraining process
另一方面,更多的示例能涵盖更多的状态,而过少的样本更容易导致过拟合。将上述预训练得到的初始策略模型在训练环境中进行测试,统计结果见表A2。表A2记录了10次预训练的结果,其中最后1行是10次的平均值。表A2中每行记录该次预训练得到的模型在训练环境中500次测试的累积回报的平均值和最优值。表A2中的6列数据分为3组,分别是使用不同数量示例时的预训练结果,与图6中的残差收敛过程相对应。
可以看出使用不同数量示例时,表A2最后1行数据中的最优累积回报都能达到较高的值,即各个模型都有一定概率能够复现示例演示的轨迹。但由于使用了随机策略,因此有很大可能会进入示例未涵盖的状态。这些状态下的动作是由拟合得到的初始策略模型预测给出,因而需要避免模型过拟合以保证动作预测的合理性。使用10组示例时样本数量更多,更不容易过拟合,因而平均累积回报更高。但是总体而言,表A2中各个初始策略模型的鲁棒性都不是很好,平均累积回报都较低。因此,需要使用强化学习算法对策略模型进行进一步改进。
4.2 初始策略对强化学习的影响
将4.1节中预训练得到的初始策略模型在训练环境中进行强化学习,迭代步数为200。强化学习的每一步迭代(Iteration)中,基于当前策略完成nτ=50条轨迹,并统计每一步迭代中nτ条轨迹的累积回报的平均值。每一步迭代在获得nτ条轨迹后,基于PPO算法利用这些轨迹对策略模型进行改进,其中Adam算法步数为10,学习率为 0.000 01。
图7中展示了强化学习过程中减阻量的提升过程,图中曲线为重复10次强化学习的平均值。图7纵坐标的平均累积回报即为每一步迭代中nτ条修型轨迹的减阻量的平均值;横坐标表示迭代步数(Iteration,在强化学习中也称一条轨迹为一个Episode,因此强化学习研究中Episode值为nτ×Iteration)。图7中的不同颜色曲线表示基于不同初始策略的强化学习过程。虽然从图6中可以看出使用不同数量的示例对预训练模型的平均累积回报影响较小,但图7表明示例选取对于强化学习训练过程有较大影响。示例数量更多,多样性适度增加有利于提高强化学习的效率,减小训练过程的方差。
图7 强化学习训练过程的平均累计回报收敛曲线Fig.7 Convergence curves of average cumulative reward during reinforcement learning process
表A3展示了在表A2的10个初始策略模型的基础上进行强化学习的结果,其中最后1行是10次强化学习的平均值。表A3中每行都是该次强化学习得到的模型在训练环境中500次测试的累积回报的平均值和最优值。表A3中的6列数据分为3组,与表A2相对应。可以看出,强化学习后的最优累积回报都可能达到较高的值,但使用较少示例时累积回报平均值较低,方差较大,也就是说策略模型的鲁棒性较差,随机性过强。因此,使用更多的示例进行预训练对强化学习形成更为鲁棒的策略更有利。
表A2 预训练模型的累积回报Table A2 Cumulative rewards of pretrained models
表A3 强化学习模型的累积回报Table A3 Cumulative rewards of reinforcement learning models
4.3 强化学习策略的迁移应用
强化学习获得的策略是根据当前翼型的激波位置、强度和前缘吸力峰来选择鼓包参数,从4.1节预训练中的示例轨迹可以看出,这种策略有一定的物理基础,因而在类似的问题中具有迁移能力。本节对增量修型中基础翼型的来流马赫数Ma∞、升力系数CL、厚度和弯度进行改变,形成相应的测试环境,讨论强化学习得到的策略的迁移能力。此时,测试环境的算法2中的2~3步无法通过查表法实现,只能使用CFD计算。
在迁移应用中,为提高策略的鲁棒性,将随机策略的高斯分布标准差由训练中使用的0.03提高至0.05,增量修型步数取为5。使用策略模型在每个测试环境下进行20次测试,记录每次测试获得轨迹的最大减阻量,并统计20条轨迹的最优值和平均值。
表A4展示了RAE2822作为基础翼型在其他工况下的阻力系数CD0,策略迁移应用的最大减阻量的最优值、平均值和步数。表A4中最大减阻量的步数反映了该策略模型在测试环境中实际起作用的步数,即有效修型步数。也就是说,在有效修型步数之后,策略模型给出的动作无法进一步减阻,策略失效。表A4中编号0是强化学习模型在其训练环境中的表现,其余各行的测试环境与训练环境有不同的来流马赫数或升力系数,相应的基础翼型的壁面马赫数分布见图8。从图中可以看出在不同的工况下,基础翼型的流动形态比较相似,但是激波位置和强度、前缘吸力峰有所区别。表A4结果显示相比于训练环境有更强激波的工况下,减阻量更大,有效的修型步数更多。对于激波更弱的情形,强化学习模型也能够实现减阻,但在5步修型中一般只有前1~2步有效,后续的修型步对阻力没有改善。
表A4 强化学习模型在其他工况下的修型累积回报和修型步数Table A4 Cumulative rewards and steps of reinforcement learning models in other flight conditions
图8 RAE2822翼型在不同工况下的壁面马赫数分布Fig.8 Wall Mach number distributions of RAE2822 airfoil in different flight conditions
表A5展示了在Ma∞=0.73,CL=0.70工况下不同基础翼型的结果。其中通过对翼型上下表面进行等比例放缩改变基础翼型的最大相对厚度tmax。对翼型弯度的改变是对翼型上表面CST参数放缩rcamber倍,保持下表面CST参数不变。由于得到的翼型的相对厚度发生了变化,对该翼型上下表面再等比例放缩,将最大相对厚度调整到原始值。图9展示了相应编号的基础翼型几何。与改变工况的测试环境类似,强化学习模型在RAE2822翼型几何变形后的测试环境中大多能够获得有效的减阻修型效果。在激波较弱的情形下减阻量相对较小,尤其是第5组测试中策略失效,说明在使用由单个基础翼型的三步修型构成的翼型树作为训练环境时,强化学习得到的修型策略适用范围有一定的局限性。但对于大部分情形,尤其是激波较强的情形,修型有效步数更多,减阻量更大。
图9 不同翼型的几何和壁面马赫数分布Fig.9 Geometries and wall Mach number distributions of different airfoils
从上面的测试环境中强化学习模型的迁移应用可以看出,不同基础翼型和工况下的轨迹经历的流动形态是不同的,因此策略模型会根据具体的状态参数(即激波位置、强度和前缘吸力峰)选取鼓包的位置、宽度和高度进行修型,因此采取的动作与预训练中的示例也会有所不同。图10展示了表A5中编号1和8两组测试中的最优修型轨迹,可以看出策略模型根据所处状态对动作的调整。其中上方的封闭曲线为壁面马赫数分布,下方的鼓包曲线为修型中的鼓包函数几何。图10(a) 中第1步试图抬高前缘附近的吸力,但前缘吸力峰反而下降,因而第2步采用相反动作,进而在第3步增大吸力平台逆压梯度,从而减弱激波和减小阻力。图10(b)则在波前连续使用下凹的鼓包,从而有效减弱激波。以上2种策略与预训练中的示例均有所不同,体现出强化学习的策略对不同状态的适应能力和模型的迁移能力。
表A5 强化学习模型在其他翼型几何上的修型累积回报和修型步数Table A5 Cumulative rewards and steps of reinforcement learning models for other baseline airfoils
图10 策略测试中轨迹的壁面马赫数分布 和鼓包几何Fig.10 Wall Mach number distributions and bump geometries during policy tests
5 结 论
本文针对设计师在气动修型中的经验积累过程,提出并实现了基于强化学习获得气动修型策略模型的训练方法。整理了强化学习在气动优化设计中应用的相关概念,并针对翼型减阻问题给出了强化学习环境的搭建方法,最终获得了几何增量修型的策略模型,并对策略模型进行了分析与迁移应用测试,得到了以下几点结论:
1) 预训练中,使用基于示例的模仿学习获得的初始策略模型在训练环境中的修型表现方差很大,且平均减阻量只有3~4 counts。不同数量的示例对策略的鲁棒性改进有限,且提供合理、优秀的示例较为困难。
2) 预训练能够有效提高强化学习的训练效率。使用较少的示例容易导致预训练时模型过拟合,强化学习效率无法提高;虽然更多的示例会导致预训练的训练误差难以降低,但能够有效提高强化学习效率。强化学习得到的策略模型的表现更加鲁棒,能够实现三步修型平均减阻12 counts的减阻效果。
3) 强化学习得到的策略模型具有一定的推广能力。将得到的策略模型迁移使用到其他来流工况或基础翼型的环境中进行测试,在大部分情形能够实现有效减阻。
上述研究结果表明,强化学习具有学习气动修型策略的能力,且能够根据不同的翼型和工况采取相应的动作实现减阻。因此,在经过更加充分的训练后,强化学习有潜力获得能够适用任意超临界翼型的修型策略,从而极大提高优化设计效率。