呂召陽(yáng),聶雪媛,*,趙奧博
(1.中國(guó)科學(xué)院 力學(xué)研究所,北京 100190;2.中國(guó)科學(xué)院大學(xué) 工程科學(xué)學(xué)院,北京 100049)
傳統(tǒng)機(jī)翼氣動(dòng)參數(shù)的獲得方法可以歸結(jié)為2 種:采用風(fēng)洞試驗(yàn)測(cè)量和計(jì)算流體力學(xué)建模計(jì)算。但是這些方法存在高成本、計(jì)算量大和測(cè)試周期長(zhǎng)等問(wèn)題[1-2]。所以,如何實(shí)現(xiàn)機(jī)翼狀態(tài)改變后氣動(dòng)參數(shù)的快速預(yù)測(cè)成為了實(shí)現(xiàn)顫振主動(dòng)控制的一大難點(diǎn)。
傳統(tǒng)快速預(yù)測(cè)方法的基本思想是根據(jù)氣動(dòng)參數(shù)的統(tǒng)計(jì)規(guī)律,利用數(shù)學(xué)擬合的方法得到幾何參數(shù)與飛行狀態(tài)和氣動(dòng)參數(shù)的數(shù)學(xué)關(guān)系式,從而實(shí)現(xiàn)氣動(dòng)參數(shù)的快速計(jì)算,但這種方法一般適用范圍較小,并且對(duì)存在很強(qiáng)非線性問(wèn)題的系統(tǒng)不能很好保證預(yù)測(cè)精度[3]。隨著最近幾年神經(jīng)網(wǎng)絡(luò)的快速發(fā)展,其突出的非線性映射能力吸引越來(lái)越多的學(xué)者將此方法運(yùn)用到氣動(dòng)參數(shù)預(yù)測(cè)上。2003 年Suresh等[4]基于遞歸神經(jīng)網(wǎng)絡(luò)建模,預(yù)測(cè)大迎角下旋翼的升力系數(shù)并與試驗(yàn)數(shù)據(jù)進(jìn)行比較,證明了其方法的可行性。2011 年Carpenter 等[5]提出一種單隱含層的神經(jīng)網(wǎng)絡(luò)用于導(dǎo)彈氣動(dòng)參數(shù)的預(yù)測(cè)。劉昕[6]提出一種基于徑向基函數(shù)的神經(jīng)網(wǎng)絡(luò)(radial basis function neural network,RBFNN)模型,并將其成功運(yùn)用到機(jī)翼沉浮振動(dòng)的升阻力預(yù)測(cè)中。原智杰等[3]基于優(yōu)化的反向傳播(back propagation ,BP)神經(jīng)網(wǎng)絡(luò)進(jìn)行了導(dǎo)彈的氣動(dòng)參數(shù)預(yù)測(cè),證明了其方法有較好的泛化和擬合能力。Balla 等[7]提出了一種多輸出的神經(jīng)網(wǎng)絡(luò)來(lái)進(jìn)行二維和三維機(jī)翼的氣動(dòng)系數(shù)預(yù)測(cè),并與本征正交分解(proper orthogonal decomposition,POD)方法進(jìn)行了比較,結(jié)果表明神經(jīng)網(wǎng)絡(luò)具有更好的性能,特別是在預(yù)測(cè)包含激波的流場(chǎng)中。
神經(jīng)網(wǎng)絡(luò)雖然在氣動(dòng)參數(shù)預(yù)測(cè)中表現(xiàn)出可喜的結(jié)果,相比于傳統(tǒng)擬合方法具有較好的非線性擬合能力,但對(duì)于文獻(xiàn)[3-7]所提到的研究,在進(jìn)行模型訓(xùn)練時(shí)都需要先對(duì)機(jī)翼進(jìn)行參數(shù)化處理,這無(wú)疑給模型的建立和訓(xùn)練增加了困難。如果模型能直接將機(jī)翼狀態(tài)圖片作為訓(xùn)練對(duì)象,則將大大降低模型的建立和訓(xùn)練難度。在眾多機(jī)器學(xué)習(xí)方法中,卷積神經(jīng)網(wǎng)絡(luò)可以將圖片直接作為訓(xùn)練對(duì)象,并且具有強(qiáng)大的非線性映射能力和自動(dòng)提取流場(chǎng)特征的功能[8],這無(wú)疑給本文研究提供了方向。陳海等[9]基于卷積神經(jīng)網(wǎng)絡(luò)建立了單輸入單輸出的模型,對(duì)不同翼型的升力系數(shù)進(jìn)行了預(yù)測(cè)并通過(guò)對(duì)預(yù)測(cè)結(jié)果的誤差分析證明了其方法的有效性。然而對(duì)于機(jī)翼顫振控制一類的問(wèn)題而言,其翼型并不改變,結(jié)構(gòu)相對(duì)其平衡位置的空間狀態(tài)發(fā)生改變,如何基于卷積神經(jīng)網(wǎng)絡(luò)對(duì)這類問(wèn)題進(jìn)行多變量輸出的氣動(dòng)參數(shù)預(yù)測(cè)的研究尚未開(kāi)展。
針對(duì)文獻(xiàn)[3-9]研究現(xiàn)狀,本文基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN),以二維翼型為對(duì)象,建立一種基于卷積神經(jīng)網(wǎng)絡(luò)的多變量多輸出預(yù)測(cè)模型,用于實(shí)現(xiàn)對(duì)機(jī)翼氣動(dòng)參數(shù)的快速預(yù)測(cè),最后通過(guò)測(cè)試集上的預(yù)測(cè)結(jié)果和計(jì)算流體力學(xué)(computational fluid dynamics,CFD)的計(jì)算結(jié)果進(jìn)行誤差分析,對(duì)本文所提氣動(dòng)參數(shù)預(yù)測(cè)模型的有效性和準(zhǔn)確性進(jìn)行驗(yàn)證。
隨著深度學(xué)習(xí)的快速發(fā)展,以及其突出的非線性映射能力,越來(lái)越多的學(xué)者將機(jī)器學(xué)習(xí)方法運(yùn)用到流體力學(xué)領(lǐng)域。其中由于卷積神經(jīng)網(wǎng)絡(luò)具有強(qiáng)大的圖像特征提取和非線性映射能力,因此,卷積神經(jīng)網(wǎng)絡(luò)成為當(dāng)下流場(chǎng)預(yù)測(cè)及流場(chǎng)特征研究中不可忽視的工具。卷積神經(jīng)網(wǎng)絡(luò)主要組成部分包括:輸入層、卷積層、池化層、激勵(lì)層、全連接層及輸出層。其中具有代表性的卷積神經(jīng)網(wǎng)絡(luò)如LeNet,如圖1 所示。
圖1 LeNet 卷積神經(jīng)網(wǎng)絡(luò)經(jīng)典結(jié)構(gòu)Fig.1 Classic structure of LeNet convolutional neural network
目前雖然提出了許多經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)框架,但是卷積神經(jīng)網(wǎng)絡(luò)的框架并不是一成不變的,可以根據(jù)具體問(wèn)題加以設(shè)計(jì)。本文針對(duì)建立氣動(dòng)參數(shù)快速預(yù)測(cè)模型,為顫振主動(dòng)控制過(guò)程服務(wù)這一具體問(wèn)題,基于卷積神經(jīng)網(wǎng)絡(luò)原理建立了一種多變量多輸出的預(yù)測(cè)模型,其具體結(jié)構(gòu)為
1)輸入層。目的是實(shí)現(xiàn)機(jī)翼顫振控制過(guò)程中機(jī)翼的不同狀態(tài)下(包括迎角和沉?。┑臍鈩?dòng)參數(shù)快速預(yù)測(cè),為了保留機(jī)翼的狀態(tài)信息和簡(jiǎn)化數(shù)據(jù)處理過(guò)程,模型的輸入數(shù)據(jù)采用機(jī)翼狀態(tài)改變后的原始圖像,同時(shí)將在這一狀態(tài)下經(jīng)過(guò)CFD 計(jì)算出的升力和力矩系數(shù)作為標(biāo)簽。具體形式如圖2 所示,圖下方數(shù)字分別為圖的編號(hào),升力系數(shù),阻力系數(shù)。
圖2 基于RBF 網(wǎng)格變形機(jī)翼狀態(tài)圖及升力和力矩系數(shù)Fig.2 Deformed wing state diagram and lift drag coefficient based on RBF mesh
2)卷積層。卷積層是卷積神經(jīng)網(wǎng)絡(luò)的核心層。雖然卷積層數(shù)越多、網(wǎng)絡(luò)深度越深訓(xùn)練出的網(wǎng)絡(luò)模型預(yù)測(cè)精度越高,但考慮實(shí)際情況和訓(xùn)練成本,所建立的網(wǎng)絡(luò)采用3 層卷積層。
3)池化層。卷積神經(jīng)網(wǎng)絡(luò)池化層的設(shè)置不僅可以減少網(wǎng)絡(luò)的計(jì)算量,從而很大程度上節(jié)約訓(xùn)練的時(shí)間成本,而且還能在一定程度上防止模型過(guò)擬合的發(fā)生[10]。池化操作一般包括均值池化(對(duì)濾波器大小區(qū)域不為零像素點(diǎn)取均值)和最大池化(對(duì)濾波器大小區(qū)域所有像素點(diǎn)取最大值),其中均值池化算法得到的特征數(shù)據(jù)對(duì)背景信息比較敏感,最大池化會(huì)對(duì)數(shù)據(jù)紋理特征信息更加敏感。結(jié)合本文要解決的問(wèn)題,模型的池化層采用最大池化的方法和下采樣的方式,即在卷積層后接一個(gè)池化層,以達(dá)到減小計(jì)算量和防止過(guò)擬合的目的。
4)激勵(lì)層。激勵(lì)層的設(shè)置是神經(jīng)網(wǎng)絡(luò)能更好實(shí)現(xiàn)非線性映射的基礎(chǔ)。飽和的非線性激勵(lì)函數(shù)是傳統(tǒng)神經(jīng)網(wǎng)絡(luò)經(jīng)常使用的函數(shù),包括sigmoid、tanh和softsign 函數(shù)[11-12],但近幾年研究發(fā)現(xiàn),不飽和非線性激勵(lì)函數(shù)(ReLU)相比傳統(tǒng)飽和非線性激勵(lì)函數(shù)具有更為出色的收斂速度,所以不飽和非線性激勵(lì)函數(shù)逐漸得到學(xué)者的親睞[13-14]。為了能得到更好的收斂速度,模型將選用ReLU 作為激勵(lì)函數(shù),ReLU 函數(shù)表達(dá)式為
式中:x 為自由變量。
為了能更好地?cái)M合機(jī)翼狀態(tài)與機(jī)翼升力及力矩系數(shù)的映射關(guān)系,整個(gè)網(wǎng)絡(luò)的輸出層采用tanh 非線性激勵(lì)函數(shù),其函數(shù)表達(dá)式為
5)全連接層。全連接層是卷積神經(jīng)網(wǎng)絡(luò)能進(jìn)行后續(xù)處理和采用梯度下降法進(jìn)行網(wǎng)絡(luò)參數(shù)訓(xùn)練的基礎(chǔ)。由于涉及到的問(wèn)題需要同時(shí)預(yù)測(cè)出2 個(gè)未知量,所以建立的卷積神經(jīng)網(wǎng)絡(luò)采用并列2 個(gè)全連接層分別實(shí)現(xiàn)升力系數(shù)和力矩系數(shù)的預(yù)測(cè)。
6)輸出層。建立卷積神經(jīng)網(wǎng)絡(luò)的目的是實(shí)現(xiàn)機(jī)翼升力和力矩系數(shù)的同時(shí)快速預(yù)測(cè)。因此,模型設(shè)置2 個(gè)輸出層。
本節(jié)分別介紹了卷積神經(jīng)網(wǎng)絡(luò)每層的作用和所建立的卷積神經(jīng)網(wǎng)絡(luò)每層的設(shè)置細(xì)節(jié)。除此之外,為了能使所建立的卷積神經(jīng)網(wǎng)絡(luò)更好的避免過(guò)擬合問(wèn)題,除了在每層卷積層后面接池化層外,還在全連接層后設(shè)置了dropout 層(其中在訓(xùn)練過(guò)程中keep_prob=0.5,測(cè)試過(guò)程中keep_prob=1)。因此,建立的卷積神經(jīng)網(wǎng)絡(luò)具體結(jié)構(gòu)和參數(shù)設(shè)置如表1所示。
表1 差積神經(jīng)網(wǎng)絡(luò)具體結(jié)構(gòu)和參數(shù)設(shè)置Table 1 Specific structure and parameter setting of CNN
本文研究的目的是利用卷積神經(jīng)網(wǎng)絡(luò)理論建立氣動(dòng)參數(shù)快速預(yù)測(cè)模型,為顫振主動(dòng)控制過(guò)程服務(wù),所以計(jì)算訓(xùn)練樣本的研究模型選取顫振研究中常使用的二元翼型,如圖3 所示[15]。
圖3 二元翼型[15]Fig.3 Two dimensional airfoil[15]
對(duì)二元翼型進(jìn)行受力分析,其非線性控制方程可以表示為
式中:h 為沉浮位移;α 為俯仰角;kh為沉浮方向剛度系數(shù);kα為俯仰方向剛度系數(shù);Iα為機(jī)翼慣性矩;m 為機(jī)翼質(zhì)量;xα為彈性軸到機(jī)翼重心的無(wú)量綱距離;b 為機(jī)翼半弦長(zhǎng);L 和M 分別為氣動(dòng)力簡(jiǎn)化到機(jī)翼質(zhì)心上的力和力矩。
從式(3)可知,求解方程只需獲得機(jī)翼所受的氣動(dòng)力便可,又因氣動(dòng)力可以化簡(jiǎn)為氣動(dòng)升力L,和力矩M,因此,通過(guò)獲得機(jī)翼升力系數(shù)CL和力矩系數(shù)CM(單位體積流體在機(jī)翼面上產(chǎn)生的升力和力矩)也可以實(shí)現(xiàn)機(jī)翼氣動(dòng)力的計(jì)算。因此,可將如何獲得氣動(dòng)力來(lái)求解控制方程的問(wèn)題,進(jìn)一步轉(zhuǎn)變成如何獲得機(jī)翼升力和力矩系數(shù)來(lái)求解控制方程的問(wèn)題。
為了給第1 節(jié)所建立的卷積神經(jīng)網(wǎng)絡(luò)模型提供訓(xùn)練數(shù)據(jù),基于RBF 網(wǎng)格變形理論通過(guò)CFD 計(jì)算獲得機(jī)翼不同迎角和浮沉下的升力和力矩系數(shù)和幾何外型,分別作為后續(xù)卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練輸入和標(biāo)簽。其中氣動(dòng)計(jì)算采用的是基于雷諾平均二維Navier-Stokes 方程(Reynolds equation,RANS),其守恒的流動(dòng)方程可以表示為
式中:S 為控制體體積;Q 為守恒通量;l 為控體體邊界;Gc為對(duì)流通量;Gv為粘性通量;n 為表面法向量。
對(duì)于卷積神經(jīng)網(wǎng)絡(luò)來(lái)講,所取的訓(xùn)練數(shù)據(jù)在所運(yùn)用工況范圍分布越均勻其訓(xùn)練出的模型精度越高、穩(wěn)定性越好、適用性越強(qiáng)。因此,本文基于拉丁超立方抽樣方法在所要涉及的工況范圍內(nèi)隨機(jī)抽取了1 100 個(gè)工況條件,以保證訓(xùn)練數(shù)據(jù)在工況范圍內(nèi)的隨機(jī)性和均勻性,其工況分布如圖4 所示。并利用編寫(xiě)的基于RBF 網(wǎng)格變形程序結(jié)合Fluent對(duì)所抽取的工況進(jìn)行計(jì)算,其計(jì)算結(jié)果作為訓(xùn)練和預(yù)測(cè)驗(yàn)證的數(shù)據(jù)。為了能更充分的體現(xiàn)所建立的卷積神經(jīng)網(wǎng)絡(luò)的性能,在這些計(jì)算工況中又隨機(jī)選取70 個(gè)工況數(shù)據(jù)做為測(cè)試集,剩余的1 030 個(gè)工況數(shù)據(jù)作為訓(xùn)練集。模型訓(xùn)練方法采用TensorFlow中提供的Adam 算法優(yōu)化器,其中學(xué)習(xí)率設(shè)置為1×10-5,為了提高訓(xùn)練效率,數(shù)據(jù)分10 批輸入,每批103 個(gè)樣本。卷積核的初始化采用標(biāo)準(zhǔn)差為0.01的正態(tài)分布隨機(jī)數(shù),偏執(zhí)初始化采用標(biāo)準(zhǔn)差為0.1 的正態(tài)分布隨機(jī)數(shù)。模型誤差判斷標(biāo)準(zhǔn)采用均方根誤差RMSE,其具體表達(dá)形式為
圖4 樣本工況分布點(diǎn)Fig.4 Distribution points of sample working conditions
式中:N 為每批訓(xùn)練樣本的數(shù)量;observedt為CFD 計(jì)算出的真值;predictedt為卷積神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)值。
神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練結(jié)束的條件可設(shè)置為達(dá)到最大迭代次數(shù)或達(dá)到精度要求。為了能獲得更好的模型預(yù)測(cè)精度,同時(shí)避免模型訓(xùn)練時(shí)間過(guò)長(zhǎng),采取固定迭代次數(shù)的方法來(lái)控制模型訓(xùn)練的結(jié)束,其中迭代次數(shù)設(shè)置2 000 次。所用到的建模和訓(xùn)練的工作站配置為Intel(R) Core(TM) i9-10 900 K CPU @3.70 GHz(3 696 MHz),128 GB 內(nèi)存,顯 卡 NVIDIA GeForce RTX 3 090 (24 576 MB)。采用GPU 的方法對(duì)模型進(jìn)行訓(xùn)練,因?yàn)槠溆?xùn)練速度比CPU 訓(xùn)練大約快12 倍。模型訓(xùn)練具體流程如圖5 所示。
圖5 CNN 訓(xùn)練流程Fig.5 CNN training process
通過(guò)利用訓(xùn)練集進(jìn)行模型的訓(xùn)練,其模型訓(xùn)練過(guò)程中升力和力矩系數(shù)的RMSE 都是逐漸降低的,圖6(a)和圖6(b)分別為訓(xùn)練過(guò)程升力和力矩系數(shù)最后一批前500 次迭代過(guò)程中的誤差變化曲線,從圖6 中可以看出誤差變化是隨迭代次數(shù)的增加而逐漸降低,雖模型在訓(xùn)練到500 步誤差降低速度逐漸變緩,但也是呈下降趨勢(shì)。
圖6 訓(xùn)練過(guò)程中誤差變化曲線Fig.6 Error variation curve during training
模型完全訓(xùn)練結(jié)束后,為測(cè)試模型訓(xùn)練的預(yù)測(cè)效果和預(yù)測(cè)精度,將未參與訓(xùn)練的工況數(shù)據(jù)輸入到訓(xùn)練好的模型中進(jìn)行機(jī)翼的升力和力矩系數(shù)的預(yù)測(cè),預(yù)測(cè)結(jié)果如圖7(a)和圖7(b)所示,由圖7 可知,預(yù)測(cè)值和CFD 的計(jì)算值幾乎重合。但為了更好地分析其模型的預(yù)測(cè)精度,本文計(jì)算了預(yù)測(cè)值和真值的預(yù)測(cè)誤差,如圖8 所示,從圖8 中可以看出不管是升力系數(shù)還是力矩系數(shù),其預(yù)測(cè)誤差都不超過(guò)2.5×10-3。
圖7 預(yù)測(cè)結(jié)果Fig.7 Prediction results
圖8 預(yù)測(cè)誤差曲線Fig.8 Prediction error curve
本文目的是建立一種對(duì)氣動(dòng)參數(shù)快速預(yù)測(cè)的模型,所以模型的計(jì)算效率是評(píng)價(jià)本模型的重要的指標(biāo)之一。為了測(cè)試訓(xùn)練好的模型的計(jì)算效率,選擇在相同的工作站上,分別統(tǒng)計(jì)基于第2 節(jié)提出的CFD 仿真方法的計(jì)算時(shí)間(假設(shè)迭代600 步收斂)和訓(xùn)練好的CNN 模型預(yù)測(cè)70 個(gè)測(cè)試集的時(shí)間。其中CFD 仿真計(jì)算一種工況需要20 min,所建立的CNN 模型計(jì)算70 個(gè)工況只需要0.11 s 左右??梢钥闯霰疚乃⒌臋C(jī)翼氣動(dòng)參數(shù)快速預(yù)測(cè)模型大大提高了機(jī)翼氣動(dòng)參數(shù)的計(jì)算效率。
模型的穩(wěn)定性也是衡量模型好壞的重要標(biāo)準(zhǔn)之一,為了驗(yàn)證本節(jié)訓(xùn)練結(jié)果是偶然還是必然的。本文設(shè)計(jì)了一種模型穩(wěn)定性實(shí)驗(yàn)。為避免其他因素的影響,采用同一工作站,同一參數(shù),相同訓(xùn)練數(shù)據(jù),相同迭代次數(shù)對(duì)模型進(jìn)行訓(xùn)練,并統(tǒng)計(jì)每次訓(xùn)練好的模型在測(cè)試集上的誤差絕對(duì)值的平均值,將其作為模型穩(wěn)定性的衡量標(biāo)準(zhǔn)。本文總共進(jìn)行了5 次實(shí)驗(yàn),為節(jié)約時(shí)間成本,每次實(shí)驗(yàn)迭代設(shè)置為1 000 步,其結(jié)果如圖9 所示??梢钥闯?,不管檢測(cè)CL端口的輸出值,還是CM端口的輸出值,其平均誤差都存在波動(dòng),但從數(shù)據(jù)上看,5 次計(jì)算的平均誤差的數(shù)量級(jí)相同,所以可以認(rèn)為建立的預(yù)測(cè)模型具有較好的穩(wěn)定性。
圖9 測(cè)試集平均誤差Fig.9 Average error of test set
1)基于卷積神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)了一種快速預(yù)測(cè)機(jī)翼在不同攻角和浮沉狀態(tài)下升阻力系數(shù)的模型,大大縮減了機(jī)翼氣動(dòng)參數(shù)計(jì)算的時(shí)間,為機(jī)翼顫振主動(dòng)抑制研究提供了一種氣動(dòng)降階模型。
2)通過(guò)實(shí)驗(yàn)證明了基于卷積神經(jīng)網(wǎng)絡(luò)建立的氣動(dòng)參數(shù)預(yù)測(cè)模型有很好的穩(wěn)定性,同時(shí),還發(fā)現(xiàn)可以通過(guò)減小模型的學(xué)習(xí)率和增大模型的迭代次數(shù)來(lái)進(jìn)一步提高模型預(yù)測(cè)精度的穩(wěn)定性。