陳冰雁,劉傳振,*,白 鵬,喬 宇
(1.中國航天空氣動力技術研究院,北京 100074;2.中國科學院 深圳先進技術研究院,深圳 518000)
自20世紀初萊特兄弟成功試飛第一架飛機以來,飛行器的發展如火如荼。氣動外形設計作為飛行器設計的“先行官”,具有舉足輕重的作用。隨著科技的進步,氣動設計經歷了從機械式到信息化的轉變。20世紀前半葉,氣動設計都是通過手工修形設計得到,其嚴重依賴于設計人員的經驗,設計周期很長。20世紀中葉以來,計算流體力學(Computational Fluid Dynamics,CFD)應運而生,CFD結合CAD(Computational Aid Design)技術,已經可以進行半自動化的飛行器氣動外形設計。但CFD分析仍是一個比較耗時的過程,在飛行器設計中需要反復調用CFD分析模塊,計算量很大。
機器學習技術則提供了另一種解決手段,它通過計算手段,利用經驗或已有數據改善系統自身的性能。在氣動設計中,給定若干外形和性能樣本集,數據代理模型可以自動訓練、建立性能仿真模型,并快速評估仿真模型性能。目前應用比較成熟的機器模型包括二項式響應面、Kriging以及神經網絡[1]等。2006年,多倫多大學的Hinton[2]首次提出“深度學習”概念——使用多隱層神經網絡提高數據識別精度。2012年,Hilton跟他的學生Krizhevsky合作建立深層卷積神經網絡,并在ImageNet視覺競賽中取得第一名[3]。2016年3月,AlphaGo橫空出世,通過卷積神經網絡提高搜索樹的選擇和剪枝,戰勝了圍棋世界冠軍李世石,引爆了“人工智能”時代[4]。
從目前的研究資料來看,氣動外形設計中的機器學習技術還處于比較初級的階段。以神經網絡模型為例,美國NASA AMES研究中心、加拿大科學院空氣動力研究所等,研究過發動機葉片翼型優化[5]和跨聲速飛行器外形優化[6]等課題,但大都以單隱層或有限隱層的神經網絡、徑向基神經網絡等簡單模型為主,使用以卷積神經網絡為代表的深度學習模型很少。這可能有幾個原因:氣動數據少,發展時間短,問題性質復雜。但深度學習效果強大、市場廣闊,應用到氣動外形設計中的潛力是不言而喻的,有些學者已經先行探索,比如陳海等[7]使用卷積神經網絡,以翼型圖像為輸入預測了翼型的氣動系數。
本文以乘波體為設計背景探索深度學習技術在氣動代理模型中的應用。從乘波體外形出發,根據三維流場乘波體設計方法提取設計變量,評估氣動力性能,生成大規模數據集。選擇深度殘差網絡(Residual Neural Network,ResNet),測試氣動性能預測精度,并探索了基于圖片識別的模型構建。
大數據是深度學習發展的基石之一(另兩個為硬件平臺和算法)。只有在海量數據基礎上,深度學習才能真正發揮威力,比如AlphaGo,其模型訓練使用的棋盤數據達3×107之多。
現階段由于風洞實驗、數值模擬和飛行實驗的成本和效率,氣動外形性能數據量有限,且完整性與確定性較差,建立氣動大數據并不容易。本文的研究重點是機器學習模型的預測精度,暫不考慮氣動數據的精確性,因此以一類簡單的外形“乘波體”為例,開發設計方法并快速預估性能,大量生成可供測試的數據。本文使用基于激波裝配法的乘波體設計方法[8],結合基于多重網格的快速搜索技術,實現了三維流場乘波體的快速生成。
乘波體使用橢圓鈍錐激波流場作為設計流場,設計狀態為Ma=5、H=30 km。設計過程如圖1(a),可簡述如下:取一條空間曲線作為FCT (Flow Capture Tube),將其沿水平方向投影到激波曲面,投影線就是乘波體的前緣線;從前緣線出發追蹤流線,即可得到乘波體下表面,上表面一般是自由流面。FCT是乘波體設計中的主要設計變量,曲線有多種方法可以進行參數化表示,本文選擇一種常用且高效的參數化方法B樣條作為幾何表達工具[9]。如圖1(a)所示,在FCT上取31個點,布置流線,向后追蹤流線得到圖1(b)的乘波外形。

(a)FCT投影到激波面示意圖

(b)乘波體外形
圖1 三維流場乘波體設計示意圖
Fig.1 Waverider design with 3D flow field
追蹤流線得到的乘波體外形中保存有流場信息,可以使用流線積分法預估得到乘波體的無黏氣動性能,計算非常迅速。圖1(a)所示的乘波體生成與性能預測的總耗時約0.3 s,生成的外形圖1(b)升阻比預估為7.8(不考慮底阻),容積率0.134,與CFD計算的性能誤差不超過5%。
乘波體設計結合流線積分法可以快速計算飛行器的氣動性能,為三維流場乘波體的氣動數據的大規模生成奠定了基礎。其設計參數為B樣條表達FCT的控制點,固定z坐標均勻分布,設計變量為6個y坐標。性能數據參數為5個:升力系數CL、阻力系數CD、縱向壓心位置CF、平面投影面積S、容積V。所以單條數據為6個設計變量到5個性能評估數據的映射。
機器模型的訓練需要一定量由輸入設計變量到輸出響應值的數據集。而在設計空間中合理選取樣本點,對是否可以獲取有效信息非常重要,這一過程叫做實驗設計。目前常用的實驗設計方法包括均勻實驗設計、正交實驗設計、D-最優實驗設計等。
拉丁超立方采樣(Latin Hypercube Sampling,LHS)是一種比較流行的現代實驗設計方法,已獲得廣泛應用。其選取樣本點的方法如下所示:

(1)

LHS的采樣在任一維上都有個數與樣本數量相同的子區間,每個子區間有且僅有1個樣本;樣本在每個子區間內隨機選取,因此LHS方法可以保證一定的均勻性。圖2展示了三維變量在給定范圍內分別選擇1000和10 000的采樣點示意圖,可以看到,在大樣本情況下LHS采樣可以保持比較均勻。

(a)1000采樣點

(b)10 000采樣點圖2 拉丁超立方采樣效果圖Fig.2 Samples using LHS method
在1.1節的乘波體設計中,6個設計變量的變化范圍均定為[-25,-5],經過驗證,設計空間均可行。深度學習模型的一大特點是適合于海量數據的特征提取,因此生成十萬條數據作為樣本集。表 1給出任選3個樣本數據的形式,包括6個設計參數和對應的5個性能參數。

表1 采樣的數據示意Table 1 Data of three samples
伴隨人工智能時代發展迅速的深度模型中,目前應用最廣泛的是卷積神經網絡(Convolutional Neural Network,CNN),已經在計算機視覺、語音識別等領域取得了突破性成果。CNN通過卷積與池化操作,將低層特征逐層組合成抽象的高層屬性類別,結構復雜,參數數目多,具有良好的識別性。
為了進一步提升模型能力,設計具有深層次的網絡是非常自然的想法,深度對于模型帶來的性能提升最為顯著。最近幾年神經網絡的層數提高很快,以ImageNet競賽中表現出色的卷積神經網絡為例:2012年,AlexNet[10],8層網絡;2014年,VGGNet[11],16層;2014年,GoogleNet[12],22層。
但訓練深層次的神經網絡非常困難,很多情況下由于訓練不到位,單純把Layer堆積起來的深層網絡效果反而不如較淺的網絡好。深度殘差神經網絡(Residual Neural Network,ResNet)解決了這一問題。ResNet由微軟亞洲研究院何凱明研究員于2015年的ImageNet圖像識別競賽中首次使用,將卷積神經網絡層數提高到驚人的100層。ResNet在2015年ImageNet的圖像檢測和定位領域均獲得第一名,顯示了強大的能力。2016年,ResNet獲得圖像識別領域頂級會議CVPR最佳論文獎[13]。
ResNet在普通深度卷積網絡的基礎上增加跨層擬合訓練殘差,在訓練每層時除了使用目標函數梯度外,還增加殘差梯度,有效防止了深度模型訓練時梯度隨深度增加而消失的問題,從而使模型的準確率得到很大提升。深度殘差網絡的核心是殘差單元,通過使用殘差單元,可以構建極深的神經網絡。
如圖3(a)所示,殘差單元的具體闡述如下[13]:假設某段神經網絡的輸入是x,期望輸出是H(x),將輸入x傳到輸出時,需要學習的目標是H(x)。ResNet則改變學習目標,不再學習完整的輸出H(x),而只學習輸出和輸入的差別H(x)-x,即殘差F(x)=H(x)-x。何凱明通過實驗證明,優化F(x)比優化H(x)容易得多。x通過旁路支線將輸入直接連到后面層,使得后面層可以直接學習殘差,這種結構被稱為短鏈接,可以跳過2層、3層或更多層,直接執行協同映射,如圖3(b)所示。殘差單元的數學定義為:
xl+1=f(xl+F(xl,Wl))
(2)
其中,xl和xl+1分別為第l個殘差單元的輸入和輸出;f是激活函數,一般為修正線性單元(rectified linear unit,relu),relu=max{0,x};F為殘差;W為卷積核。殘差訓練的重要突破在于重構學習過程,引入一條捷徑,使訓練過程中底層誤差可以通過捷徑向上一層傳播,減弱了層數過多造成的梯度消失現象,很大程度上解決了層級與準確度之間的矛盾。

(a)深度學習殘差單元 (b)跳過三層示例圖3 ResNet殘差單元結構圖Fig.3 View of the ResNet unit block
本文構建了10層ResNet,由9個卷積層和一個全連接層組成,實現工具Caffe[14]。采用動量梯度下降算法,其權值初始學習率設置為0.01,動量值0.98,批大小128,權值衰減0.0005,保留層保留率為0.8,最大訓練迭代次數40 000次,以上參數定義可參考文獻[15]。使用的計算平臺配置為CPU:Intel Xeon(R)CPU E5-2690 2.60 GHz;GPU:GeForce GTX TITAN X (×1)。
數據為100 000個LHS方法選取的樣本集,其中90 000個為訓練樣本,10 000個為驗證樣本,總訓練時間為45 min。
為了說明ResNet的預測能力,本文對比了兩個經典的淺層學習模型:隨機森林和普通前饋神經網絡(Neural Network,NN)。

表2 不同模型的測試精度Table 2 Test precision of surrogate models
隨機森林(Random Forests,RF)是一種簡單快速的集成學習模型,它是并行式集成學習方法Bagging模型的一種改型,實現如下:首先通過自主采樣法得到T個樣本集,基于每個采樣集訓練基學習器,并行處理,得到Bagging模型[16]。在Bagging模型的基礎上,進一步引入隨機屬性選擇,通過模型屬性擾動,提高辨別能力。隨機森林簡單易實現、計算開銷小,在很多現實任務中表現出了強大的性能,被譽為“代表集成學習技術最高水平的方法”。
本文構建了個體學習器數目為100的隨機森林,計算平臺配置為CPU:Intel Xeon(R)CPU E5-2690 2.60 GHz,采用MATLAB實現。90 000條樣本為訓練數據,10 000條為測試數據,訓練時間300 s。誤差分布如表2第2行所示,可以看到氣動力系數的精度較高,但投影面積和容積的識別精度較低。
另一模型為雙隱層神經網絡,輸入層神經元6個,第一隱層8個,第二隱層2個,輸出層1個。隱層神經元激勵函數為雙曲正切函數,輸出層為線性輸出,計算平臺配置同隨機森林。針對5個參數分別設計和訓練了5個NN,均使用誤差逆傳播(error Back Propagation,BP)算法訓練,其中樣本集中90%為訓練數據,10%為驗證數據,單個神經網絡的訓練時間約為25 min,模型的總訓練時間為2 h左右。
NN模型的測試精度如表2第3行所示。綜合這3個模型的精度,可以看到對于5個氣動性能參數,ResNet的預測精度均是最高的。相應的,ResNet深度學習模型的深層次導致參數數量多、訓練時計算量消耗較大,在使用了一塊GeForce Titan GPU加速計算的情況下,訓練時間45 min,相比隨機森林的5 min長得多。但一旦訓練完畢,使用模型對數據進行預估的速度很快,基本可達1000次/秒,滿足效率要求。
第2節中使用的樣本數據集給出了數據到數據的映射。但一方面,飛行器的參數化是一項比較復雜的工作,難以保證參數化模型的精度;第二,深度學習模型在圖片識別領域最為成熟,應用最廣,單純數據到數據的映射難以充分挖掘現階段人工智能的優勢。
本文提出另外一個氣動性能預測思路:直接將飛行器外形轉化為二維圖片,建立圖片數據集,再訓練深度學習模型預測性能。這是一種比較直觀的做法,可以省略外形參數化步驟,同時更為方便應用成熟的圖片識別深度學習技術。在具體操作中,選定投影平面,將飛行器按照部件分開,例如機身、機翼、尾翼、發動機短艙等,將各部件投影到投影平面,形成二維圖像,其中每個像素點的顏色代表圖像對應位置的高度或厚度,這樣每個飛行器外形就可以分解為對應的幾個二維圖片。
乘波體外形較為簡單,可以分為上下兩個表面部件,投影到俯視圖平面,每個像素點的灰度值代表此點相對于參考平面的z坐標位置。因為乘波體的上表面都是自由流面,包含信息較少,其前緣足以充分表達,所以僅保留下表面圖像即可。圖4給出樣本集中兩個外形下表面的投影圖,固定頭部頂點位置,采樣圖像大小均為200×500像素,總共建立100 000圖片到數據的映射作為圖片樣本集。

圖4 兩個采樣乘波體的下表面映射圖像Fig.4 Figures of two waverider lower surfaces
仍然使用10層ResNet進行訓練,計算平臺機器配置為CPU:Intel(R)Xeon(R)CPU E5-2690 2.60 GHz;GPU:GeForce GTX TITAN X(×4)。訓練時間24.5 h。
表3給出了氣動性能的預測精度。從測試結果看,基于圖片數據集的測試精度比基于數據的測試精度低,這可能是因為圖片數據的維數(200×500個像素點)大幅增加,影響了深度學習模型的訓練精度。但相比飛行器參數化得到的數據,此方法實現更為容易,有望推廣到升力體、翼身融合體或工程外形之中。

表3 基于圖片數據集的測試精度Table 3 Test precision of ResNet based on picture data set
本文以乘波體氣動外形數據為例,研究了深度學習模型在氣動性能預測中的應用,結論如下:
(1)人工智能深度學習需要大量的數據,乘波體外形相對簡單,生成外形效率高,比較適合這類研究探索;拉丁超立方采樣是比較有效的實驗設計方法,具有較好的均勻性。
(2)對比于傳統機器學習模型,深度殘差神經網絡ResNet通過多層的非線性變換,預測精度更高,證實了其作為飛行器氣動數據代理模型的有效性。
(3)鑒于現有深度學習模型都以圖片或語音為應用場景,本文利用飛行器圖片作為輸入,使用ResNet建立圖片與氣動指標的非線性映射,實現了飛行器的非參數化性能預測。