2. 浙江大学 航空航天学院, 浙江 杭州 310027
2. School of Aeronautics and Astronautics, Zhejiang University, Hangzhou 310027, China
翼型对于飞行器的气动性能具有决定性的影响, 翼型设计在整个飞行器设计领域中是一项极为基础而重要的课题.随着计算机技术和计算流体力学逐渐发展和成熟, 利用计算机进行翼型设计和优化在翼型的设计过程中起到了越来越重要的作用.
由于飞行器的气动外形与气动性能高度非线性, 具有计算复杂、极值点众多等特点, 一般的优化算法容易优化到极值点而非最值点.遗传算法具有鲁棒性高、全局搜索能力强等特点, 在飞行器气动外形优化领域中广泛应用[1-2].根据遗传算法的原理可知, 算法需要对每一个个体进行流场数值计算, 于是造成了遗传算法计算量过大的缺点.国内外学者针对遗传算法作了大量的研究.例如, 李静等[3]结合粒子群算法与遗传算法, 改进了自然选择算法, 提高了算法求解的精度.为了减少计算量, 一般采用代理模型的方法来代替流场数值计算.例如, 周盛强等[4]提出基于Hopfield神经网络退火优化算法;朱莉等[5]提出基于神经网络和遗传算法的优化算法;杨华等[6]提出基于径向基函数的代理模型;李静等[7]对Kriging模型的精度进行研究, 采用改进的粒子群优化算法构建了气动优化设计系统.
目前, 构造代理模型的主要方法有Kriging、Hopfield、径向基函数、BP神经网络等.其中, 径向基神经网络由于仅有一个隐含层, 会造成对复杂非线性模型欠拟合或者隐含层神经元过多、计算量大等问题.Hopfield神经网络作为一种反馈神经网络, 对于输入项具有记忆性, 会造成由于训练集的输入顺序不同而导致拟合结果不同的问题.级联前向神经网络是一种具有多层网络结构, 基于反向传播算法, 层与层之间相互级联, 并且信息逐层向前传播的人工神经网络[8].与标准BP神经网络相比, 级联前向神经网络每一层神经元都与输入层相连接, 比标准BP神经网络的非线性拟合能力更强.
本文提出级联前向的人工神经网络作为流场计算的代理模型, 应用遗传算法对翼型进行优化, 在获得优化翼型的同时, 减少计算量, 提高优化效率.
1 级联前向神经网络采用级联前向的神经网络作为翼型优化中流场计算的代理模型.级联前向神经网络的一般数学表达式为
$ {\mathit{\boldsymbol{a}}^n} = {f^n}\left( {\mathit{\boldsymbol{W}}_1^n{\mathit{\boldsymbol{a}}^{n-1}} + \mathit{\boldsymbol{W}}_2^n\mathit{\boldsymbol{p + }}{\mathit{\boldsymbol{b}}^n}} \right). $ | (1) |
式中:n为神经网络层数;W为行数为每一层的神经元数目、列数为输入个体数目的隐含层权值矩阵;b为行数与W相同的隐含层偏值列向量;a为每一层的输出向量;p为输入向量;f为激活函数, 其中隐含层的激活函数为sigmoid函数, 输出层激活函数为线性函数.
求解神经网络每一层的权值和偏值需要用到误差反向传播的算法[9], 误差反向传播算法是最小均方差(least mean square)算法的推广[8].根据求导的链式法则反向传播均方误差, 从而修改每一层的权值和偏值, 不断迭代以达到均方误差的最小化.其中, 通过网络将敏感性反向传播的公式为
$ {\mathit{\boldsymbol{s}}^M} =-2{F^M}\left( {{n^m}} \right)\left( {\mathit{\boldsymbol{t}}-\mathit{\boldsymbol{a}}} \right). $ | (2) |
$ {\mathit{\boldsymbol{s}}^m} = {F^m}\left( {{n^m}} \right){\left( {{\mathit{\boldsymbol{W}}^{m + 1}}} \right)^{\rm{T}}}{\mathit{\boldsymbol{s}}^{m + 1}};m = M-1, \cdots, 2, 1. $ | (3) |
式中:nm为权值和偏置的显式函数,
$ {n^m}\left( {{\mathit{\boldsymbol{W}}^m}, {\mathit{\boldsymbol{b}}^m}} \right) = {\rm{sum}}\left( {\mathit{\boldsymbol{W}}_1^m{\mathit{\boldsymbol{a}}^{m-1}}} \right) + {\rm{sum}}\left( {\mathit{\boldsymbol{W}}_2^n\mathit{\boldsymbol{p}}} \right)\mathit{\boldsymbol{ + }}{\mathit{\boldsymbol{b}}^m}; $ | (4) |
F为近似均方误差,
$ \begin{array}{l} \hat F\left( x \right) = {\left( {\mathit{\boldsymbol{t}}\left( k \right)-\mathit{\boldsymbol{a}}\left( k \right)} \right)^{\rm{T}}}\left( {\mathit{\boldsymbol{t}}\left( k \right)-\mathit{\boldsymbol{a}}\left( k \right)} \right) = \\ \;\;\;\;\;\;\;\;\;\;\;{\mathit{\boldsymbol{e}}^{\rm{T}}}\left( k \right)\mathit{\boldsymbol{e}}\left( k \right); \end{array} $ | (5) |
a为学习率;sM为最后一层的敏感性;sm为剩余层的敏感性;t为实际输出向量.每次迭代用最速下降法修改权值和偏值的修改公式为
$ w_{i,j}^m\left( {k + 1} \right) = w_{i,j}^m\left( k \right) - \alpha s_i^m{\boldsymbol{a}}_j^{m - 1}, $ | (6) |
$ b_i^m\left( {k + 1} \right) = b_i^m\left( k \right)-\alpha s_i^m. $ | (7) |
式中:sim为每一层的敏感性.
由以上原理可知, 级联前向神经网络具有很强的非线性拟合能力, 可以用来作为计算流场的代理模型.
2 代理模型代理模型是指计算量小、但是拟合精度满足计算要求的分析模型.代理模型可以满足翼型优化中所需要的流场计算精度, 大大减少翼型优化所需要的计算量[10].
构造代理模型首先需要一些已经计算过的样本点, 本文采取CST翼型参数化方法[11], 取8个参数来确定一个翼型.确定代理模型的过程如图 1所示.
1) 根据需要优化的翼型的参数, 确定生成样本的参数范围.
2) 第一次随机生成50组样本数据, 随后当神经网络精度不满足要求返回时, 随机生成40组样本数据, 与步骤6) 中生成的10组样本数据组成50组样本数据加入样本库.
3) CST参数化自动生成翼型.
4) CFD自动生成网格.
5) Fluent计算目标函数, 并且与样本参数同时加入样本库.
6) 根据样本库中的样本对神经网络进行训练.
7) 随机生成10组样本参数, 并且依据步骤1)~6) 进行流场计算.
8) 利用训练好的神经网络, 对步骤7) 中随机生成的10组样本进行流场拟合, 并且与流场计算结果进行对比.若不满足精度要求, 则返回步骤2);若满足精度要求, 则将训练好的神经网络作为代理模型, 完成整个生成过程.
为了更加准确地对流场计算进行非线性拟合, 采用1层隐含层时, 准确拟合流场计算需要大量的神经元节点.采用两个隐含层设计神经网络, 整个神经网络的结构由1个输入层、2个隐含层、1个输出层组成, 各层分别与前面的所有层级联, 整个神经网络的结构如图 2所示.对于每个隐含层节点的数量, 根据神经网络的原理, 可以得出当隐含层节点数目过多时, 会造成严重的过拟合.当计算不包括在训练集中的点时, 计算结果会与真实结果差别较大.当节点数目过少时, 会造成严重的欠拟合, 无法完全模拟流场的计算.一个可以被训练的神经网络, 可以调节参数的数目小于训练集中的参数数目.根据训练神经网络的经验, 应尽量使用节点数更少的神经网络[8].在设计算例时, 将样本数目作为神经网络可调节参数数目的上限, 采用预训练的方法, 在上限允许的范围内逐步增加参数数目, 遍历训练每一种可能的神经网络结构, 直至精度达到允许的精度, 此时的神经网络结构将作为整个优化的神经网络[12].
采用遗传算法对翼型进行优化, 优化的流程如下.
1) 根据需要优化的翼型参数, 按照每一个参数的允许范围随机产生p组参数假设.
2) 对于每一组参数应用训练好的神经网络进行评估, 得到适应度.
3) 按照概率选择的方法, 选择(1-r)p个成员加入Ps.从P中选择假设θ的概率Pr(θ)用下式计算:
$ {P_{\rm{r}}}\left( \theta \right) = \frac{{{\rm{Fitness}}\left( \theta \right)}}{{\sum\limits_{i = 1}^p {{\rm{Fitness}}\left( \theta \right)} }}. $ | (8) |
4) 根据式(8) 给出的Pr(θ), 从P中按概率选择rp/2组参数.对于每对假设 < h1, h2>, 应用交叉算子产生2个后代, 把所有的后代都加入Ps.
5) 按照设定好的变异概率从Ps中选择参数成员组, 对每一组参数中的任一参数在允许的取值范围内随机生成一个参数, 代替原来的参数.
6) 将Ps更新为P.
7) 按照步骤2) 的方法, 计算每一组参数的Fitness.
8) 若最佳Fitness的一组参数的Fitness小于设定值, 则得到最佳的翼型参数;否则, 返回步骤2)[13].
图 3给出整体的优化方案.其中, 最佳适应度取自每一代种群中适应度最高的个体的适应度, 判断适应度是否满足要求的判据为代际间最佳适应度个体的适应度的变化程度.优化翼型参数取自最佳适应度个体翼型参数.
为了验证理论的正确性, 在RAE2822及NACA0012翼型的基础上进行优化.
首先, 采用CST参数化方法对NACA0012及RAE2822翼型进行参数化.
$ {y_{\rm{u}}} = C_{{N_2}}^{{N_1}}\left( x \right){S_{\rm{u}}}\left( x \right) + xZ, $ | (9) |
$ {y_{\rm{l}}} = C_{{N_2}}^{{N_1}}\left( x \right){S_{\rm{l}}}\left( x \right) + xZ. $ | (10) |
式中:
$ C_{{N_2}}^{{N_1}}\left( x \right) = {\left( x \right)^{{N_1}}}{\left( {1-x} \right)^{{N_2}}}, $ | (11) |
$ {S_{\rm{u}}}\left( x \right) = \sum\limits_0^{{N_{\rm{u}}}} {{A_{\rm{u}}}\left( i \right)\frac{{{N_{\rm{u}}}!}}{{i!\left( {{N_{\rm{u}}}-i} \right)!}}{{\left( x \right)}^i}{{\left( {1-x} \right)}^{{N_{\rm{u}}}-i}}}, $ | (12) |
$ {S_{\rm{l}}}\left( x \right) = \sum\limits_0^{{N_{\rm{l}}}} {{A_{\rm{l}}}\left( i \right)\frac{{{N_{\rm{l}}}!}}{{j!\left( {{N_{\rm{l}}}-j} \right)!}}{{\left( x \right)}^j}{{\left( {1-x} \right)}^{{N_{\rm{l}}}-j}}} . $ | (13) |
其中,x为翼型横坐标, Au(i)、Al(j)为CST方法的参数.
运用CST方法对RAE2822和NACA0012进行参数化的精度如表 2所示.表中, ERMS为CST方法的平均误差, EMAX为CST参数化方法的最大误差[14].
流场计算的设计状态RAE2822取Ma为0.729, α=2.31°, 压力为108.988 kPa, T为255.556 K;NACA0012为Ma=0.8, α=2.31°, T为300.0 K.设置流动问题为可压缩流动, 加入能量项, RAE2822湍流模式采用Spalart-Allmaras模型, NACA0012采用无黏流体, 设定气体为理想气体.
图 4表明, 流场计算结果与试验结果基本吻合, 计算结果可信.图中, Cp为表面压力系数,x为翼型横向位置,实线为计算结果, 点为实验结果[15-16].
采用标准的遗传算法(SGA)以提高翼型的升阻比为优化目标, 对翼型进行优化.其中目标函数为基于流场数值计算的升阻比和训练好的神经网络给出的升阻比.结合求解N-S方程与表 3中参数相同的标准遗传算法进行优化设计, 获得优化后的翼型和升阻比作为对照组, 将级联前向网络与标准遗传算法结合起来作优化设计, 将优化后的翼型和升阻比作为实验组.通过实验组与对照组的对比来评价实验组的方法.
经过代理模型的设计步骤可知, 当样本从50组增加到200组时, 精度达到要求, 程序自动终止.最终选取样本200组, 最优的级联前向网络结构为一个输入层、两个隐含层、一个输出层, 其中第一个隐含层有4个神经元, 第二个隐含层有2个神经元, 输出层有1个神经元.网络的结构为8-4-2-1层次结构, 其中隐含层神经元激活函数选取log-sigmoid, 输出层神经元激活函数选取线性函数.
当程序判断训练精度已经达到要求时, 为了验证级联前向网络计算结果的准确性, 选取3组翼型, 分别用神经网络和流场数值计算程序来计算3组翼型的升阻比, 如表 4所示.表中,Cl、Cd分别为升力系数和阻力系数,ε为误差.
由计算结果可知, 级联前向网络的计算结果误差均在1%以下.根据标准遗传算法的原理可知, 翼型进化过程中不存在误差的积累问题, 并且该误差满足了工程上的要求, 可以用级联前向网络作为计算程序来代替流场数值计算程序.
经过实验组和对照组的计算后, 开展实验组与对照组生成的优化翼型和初始翼型的对比, 如图 5所示.图中,y为翼型纵向位置.
将级联前向网络与遗传算法优化的翼型进行流场数值计算, 可得升阻比.与原翼型、流场数值计算与遗传算法优化的翼型进行升阻比的对比, 如表 5所示.
图 6中, NI为迭代次数.NACA0012与RAE2822基于流场数值计算的优化算法分别在第39代和第46代收敛, 分别进行流场数值计算1 715次和2 036次.NACA0012与RAE2822基于级联前向网络的优化算法分别在第44代和第42代收敛, 分别进行流场数值计算210次, 计算时间分别节省为基于流场数值计算的优化算法所需时间的12.2%和10.3%.
实验结果表明, 实验组和对照组的方法均大幅度地提高了翼型的升阻比, 得到了比较一致的结果, 验证了级联前向网络的可行性.
实验组和对照组在计算时间上存在巨大的差异.其中训练级联前向网络的部分共需要210组参数样本, 即需要进行210次流场数值计算;运行级联前向网络与遗传算法对翼型进行优化仅需要30 s左右, 相比于数小时的流场数值计算时间, 计算时间可以忽略不计.经过统计可知, 基于级联前向网络的优化算法共需进行流场数值计算210次, 基于流场计算的优化算法共需进行流场数值计算1 876次左右.其中基于级联前向网络和遗传算法的优化方法中, 流场数值计算次数包括样本的流场计算次数和用于验证的流场计算次数.基于流场计算的遗传算法的计算次数主要是计算每一代样本的流场计算次数.可见, 基于流场计算的遗传算法优化算法的流场计算次数平均约为基于级联前向网络和遗传算法的优化算法的流场计算次数的8.9倍.利用基于级联前向网络和遗传算法的优化算法来优化翼型在达到相同优化效果的同时, 所花费时间约为基于流场计算和遗传算法优化算法的10%, 大大节约了优化时间.
选取基于BP神经网络的优化算法和基于Kriging插值模型的优化算法作为对比实验.基于BP神经网络的优化算法采用文献[5]的方法.BP神经网络模型采用两层网络结构, 两层各采用6个神经元.基于Kriging插值模型的优化算法采用参考文献[17]的方法, Kriging模型采用EI方法对插值点进行动态更新以提高预测精度.其中, 每种算法所得到的平均精度Ac如表 6所示.
由表 6可知, 级联前向网络的拟合精度优于BP神经网络模型和Kriging模型.由于多层神经网络本质上属于非线性拟合模型, 与插值模型相比, 在高度非线性的流场数值计算的拟合上存在一定的优势.另外, 级联前向网络属于BP神经网络模型在网络结构上作了改进的神经网络模型, 由于网络结构层层级联, 增加了网络非线性拟合的能力, 而且减少了神经元的数目, 缓解了BP神经网络模型由于神经元过多而造成的严重过拟合现象.
在流场数值计算的次数上, 由于文献[17]的方法须动态增加插值点对Kriging模型进行动态更新, 在运用Kriging模型进行翼型优化的过程中, 需要不断地进行流场数值计算, 相比于不用代理模型的优化算法仅减少了一半的流场计算次数.根据文献[5]的方法可知, 基于BP神经网络的优化算法共需要进行290次左右的流场数值计算.在拟合精度低于级联前向网络的情况下, 流场数值计算次数高于基于级联前向网络的优化算法.
5 结语本文提出采用级联前向网络作为流场数值计算的代理模型, 应用在遗传算法的翼型优化算法中, 可以用来提高优化算法的计算效率.在达到与流场数值计算相同的优化结果的条件下, 与基于流场数值计算的遗传算法相比, 减少了90%的计算时间.
本文方法不仅可以用于优化升阻比为目标的单目标优化, 而且适用于多目标的优化问题;不仅适用于二维的翼型优化, 而且可以推广到三维的优化问题.总之, 该方法与现有的基于流场计算的遗传优化算法相比, 可以极大地减少计算量, 提高计算精度.
[1] | BELEGUNDU A, CONSTANS E, SALAGAME R, et al. Multi-objective optimization of laminated ceramic composites using genetic algorithms [C]//5th Symposium on Multidisciplinary Analysis and Optimization. Portugal: [s.n.], 1994: 312-315. |
[2] | LEE J, HAJELA P. Parallel genetic algorithm implementation in multidisciplinary rotor blade design[J]. Journal of Aircraft, 1995, 33(5): 962–969. |
[3] |
李静, 高正红, 黄江涛, 等. 基于分布式粒子群算法的翼型优化设计[J].
空气动力学学报, 2011, 29(04): 464–469.
LI Jing, GAO Zheng-hong, HUANG Jiang-tao, et al. Airfoil optimization based on distributed particle swarm algorithm[J]. Acta Aerodynamica Sinica, 2011, 29(04): 464–469. DOI:10.3969/j.issn.0258-1825.2011.04.011 |
[4] |
周盛强, 向锦武. 基于Hopfield网络的飞机设计[J].
北京航空航天大学学报, 2006, 32(6): 675–679.
ZHOU Sheng-qiang, XIANG Jin-wu. Hopfield network based approach to aircraft design[J]. Journal of Beijing University of Aeronautics and Astronautics, 2006, 32(6): 675–679. |
[5] |
朱莉, 高正红. 基于神经网络的翼型优化设计方法研究[J].
航空计算技术, 2007, 37(3): 33–36.
ZHU Li, GAO Zheng-hong. Aero dynamic optimization design of airfoil based on neural networks[J]. Aeronautical Computing Technique, 2007, 37(3): 33–36. |
[6] |
杨华, 姚卫星. 基于径向基函数的机翼二维气动代理模型设计[J].
计算力学学报, 2008, 25(6): 797–802.
YANG Hua, YAO Wei-xing. 2D surrogate model of wing lift distribution based on radial basis function[J]. Chinese Journal of Computational Mechanics, 2008, 25(6): 797–802. |
[7] |
李静, 高正红, 黄江涛, 等. 基于CST参数化方法气动优化设计研究[J].
空气动力学学报, 2012, 30(04): 443–449.
LI Jing, GAO Zheng-hong, HUANG Jiang-tao, et al. Aerodynamic optimization system based on CST technique[J]. Acta Aerodynamica Sinica, 2012, 30(04): 443–449. DOI:10.3969/j.issn.0258-1825.2012.04.004 |
[8] | HAGAN M T, DEMUTH H B, BEALE M. Neural network design[M]. Beijing: China Machine Press, 2002: 357. |
[9] | LEVEN S. The roots of backpropagation: from ordered derivatives to neural networks and political forecasting[M]. New York: Wiley, 1996: 543-544. |
[10] | SIMPSON T W, BOOKER A J, GHOSH D, et al. Approximation methods in multidisciplinary analysis and optimization: a panel discussion[J]. Structural and Multidisciplinary Optimization, 2004, 27(5): 302–313. |
[11] | KULFAN B M, BUSSOLETTI J E. Fundamental parametric geometry representations for aircraft component shapes [C]//11th AIAA/ISSMO Multidisciplinary Analysis and Optimization Conference. [S. l.]: AIAA, 2006: 3-12. |
[12] | 王小川. MATLAB神经网络43个案例分析[M]. 北京: 北京航空航天大学出版社, 2013: 34-39. |
[13] | MITCHELL T M, CARBONELL J G, MICHALSKI R S. Machine learning[M]. [S. l.]: McGraw, 1986: 417-433. |
[14] |
尹强, 高正红. 外形参数化方法对气动优化过程的影响[J].
科学技术与工程, 2012, 12(14): 3394–3398.
YI Qiang, GAO Zheng-hong. Effect of shape parameterization on aerodynamic shape optimization[J]. Science Technology and Engineering, 2012, 12(14): 3394–3398. DOI:10.3969/j.issn.1671-1815.2012.14.023 |
[15] | RAE 2822 transonic airfoil: study #4. 2002-05-03. http://www.grc.nasa.gov/WWW/wind/valid/raetaf/raetaf04/raetaf04.html. |
[16] | NACA 0012 transonic airfoil. 1. Inviscid transonic flow. 2003-08-12. http://xoptimum.narod.ru/eng/results/compressible/naca0012/naca0012.htm. |
[17] |
孙俊峰, 刘刚, 江雄, 等. 基于Kriging模型的旋翼翼型优化设计研究[J].
空气动力学学报, 2013, 31(04): 437–441.
SUN Jun-feng, LIU Gang, JIANG Xiong, et al. Research of rotor airfoil design optimization based on the Kriging model[J]. Acta Aerodynamica Sinica, 2013, 31(04): 437–441. |