鄒春玲, 熊 靜, 劉 超, 嚴 宇
(上海工程技術(shù)大學 航空運輸學院, 上海 201620)
據(jù)航空公司的統(tǒng)計資料表明,航空器的燃油生產(chǎn)成本已超過了航空公司運營成本的百分之四十以上[1]。 過度的飛機燃料消耗,不但為中國航空的經(jīng)營成本增加了很大壓力,同時也給國內(nèi)的節(jié)能減排工作帶來了巨大挑戰(zhàn)。 因此,如何對飛機燃油油耗進行精準的預(yù)測減少飛機油耗量成為學術(shù)界與工業(yè)界關(guān)注的熱點問題。
國內(nèi)外學者在飛機油耗預(yù)測方面進行了大量的研究。 Baklacioglu[2]使用遺傳算法優(yōu)化的BP 神經(jīng)網(wǎng)絡(luò)模型來模擬飛行階段的飛行高度與真實空速及飛機油耗之間的關(guān)系。 Ma 等學者[3]開發(fā)了一種基于遺傳算法的雙機身飛機MOD 框架,并將其用于飛機配置優(yōu)化中。 Baumann 等學者[4]使用神經(jīng)網(wǎng)絡(luò)和決策樹2 種機器學習算法應(yīng)用到飛機不同飛行階段和整個飛行任務(wù)的燃油消耗數(shù)據(jù)建模中,通過實驗結(jié)果對比出2 種方法的優(yōu)劣。 顏艷[5]構(gòu)建了2 種BP 神經(jīng)網(wǎng)絡(luò)油耗預(yù)測模型,并將其應(yīng)用到整個航段的飛機油耗預(yù)測中,同時采用MIV 算法和敏感度分析法對模型的影響因素進行了分析。 魏志強等學者[6]以空客A320 機型的數(shù)據(jù)為基礎(chǔ),使用BP 神經(jīng)網(wǎng)絡(luò)來對不可預(yù)期燃油進行預(yù)測。 劉家學等學者[7]構(gòu)建了一種改進深度信念網(wǎng)絡(luò)的方法,并將其應(yīng)用在飛機下降階段的飛機油耗預(yù)測中,以此提高飛機油耗預(yù)測的精度。
上述研究大多數(shù)是采用BP 神經(jīng)網(wǎng)絡(luò)對飛機油耗某個階段進行預(yù)測,但如果BP 神經(jīng)網(wǎng)絡(luò)初始權(quán)值和閾值的位置選擇不合適會導(dǎo)致網(wǎng)絡(luò)的收斂速度慢、陷入局部最優(yōu)值,針對這些問題,研究學者采用遺傳算法對BP 神經(jīng)網(wǎng)絡(luò)進行優(yōu)化[8]。 但目前該優(yōu)化算法在飛機油耗預(yù)測領(lǐng)域應(yīng)用較少,其個別應(yīng)用多數(shù)使用單個參數(shù)進行研究,而飛機油耗量和眾多因素相關(guān)。 另外,有些建模未基于實際數(shù)據(jù)進行仿真實驗,在實際應(yīng)用中有一定局限性。 因此,本文采用主成分分析法選擇QAR 數(shù)據(jù)中對飛機下降階段影響較大的幾個參數(shù),建立基于遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)的飛機油耗預(yù)測模型,通過Matlab 軟件實現(xiàn)預(yù)測模型,并以某航空公司飛機QAR 數(shù)據(jù)進行驗證實驗,將其預(yù)測精度與傳統(tǒng)的BP 神經(jīng)網(wǎng)絡(luò)進行對比分析,以驗證其在飛機油耗量預(yù)測精準度上的提升。
BP 神經(jīng)網(wǎng)絡(luò)是Rumelhart 等學者[9]在1986 年提出來的概念。 BP 神經(jīng)網(wǎng)絡(luò)在訓(xùn)練的過程中,數(shù)據(jù)可以通過權(quán)重從輸入層傳遞到隱藏層,經(jīng)過隱藏層非線性計算后再作用于輸出層,輸出層通過計算與實際值之間的誤差來調(diào)節(jié)數(shù)據(jù)傳遞過程中的權(quán)值和閾值[10]。 3 層BP 神經(jīng)網(wǎng)絡(luò)包含了一個輸入層、一個隱藏層和一個輸出層,其結(jié)構(gòu)如圖1 所示。
圖1 3 層BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖Fig. 1 Three-layer BP neural network structure diagram
BP 神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程的步驟如下:
(1)網(wǎng)絡(luò)初始化。 按照網(wǎng)絡(luò)輸入輸出順序(X,T),來設(shè)定網(wǎng)絡(luò)的輸入層節(jié)點數(shù)n、隱藏層節(jié)點數(shù)l、輸出層節(jié)點數(shù)m,輸入層到隱藏層的連接權(quán)值wij,隱藏層到輸出層的連接權(quán)值wjh,初始化隱藏層閾值aj,輸出層閾值bh,并且給定了學習速率η和神經(jīng)元的激勵函數(shù)g(x)。 其中,i=1,…,n,j=1,…,l,h=1,…,m,g(x)取Sigmoid函數(shù),數(shù)學公式具體如下:
(2)隱藏層的輸出。 隱藏層輸出Hj的數(shù)學公式具體如下:
(3)輸出層的輸出。 輸出層輸出Oh的數(shù)學公式具體如下:
(4)誤差計算。 誤差E的數(shù)學公式具體如下:
其中,Yh為期望輸出。 記Yh-Oh =eh,則E可以表示為:
(5)權(quán)值更新。 權(quán)值的更新公式具體如下:
(6)閾值更新。 閾值的更新公式具體如下:
(7)判斷算法是否迭代結(jié)束,若沒有結(jié)束,返回步驟(2)。
BP 神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程流程如圖2 所示。
圖2 BP 神經(jīng)網(wǎng)絡(luò)訓(xùn)練流程圖Fig. 2 BP neural network training flowchart
遺傳算法最早是由Holland 于20 世紀70 年代提出,是一種通過選擇、交叉和變異三個基本遺傳算子操作來對種群個體進行逐代尋優(yōu),然后通過對BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值不斷更新,最終獲得全局最優(yōu)解的隨機搜索算法[11-12]。 遺傳算法的步驟如下。
(1)初始值編碼:遺傳算法在對問題求解前要將定義問題的變量編碼為二維的參數(shù)向量。 本文采取實數(shù)編碼方法。
(2)初始化種群:隨機生成W= (W1;W2;…;Wp)的初始種群,種群個體數(shù)設(shè)為P,通過線性插值函數(shù)生成個體Wi,W1,W2,…,Ws為算法的一個染色體。
(3)計算種群個體適應(yīng)度值:利用訓(xùn)練誤差平方和作為計算種群個體適應(yīng)值。
(4)選擇:采用輪盤賭法,選擇概率可由式(8)計算求出:
其中,fi為適應(yīng)度值倒數(shù),p為種群規(guī)模。
(5)交叉:基因Wq在j位的交叉操作和基因Ws在j位的交叉操作分別按如下公式進行:
其中,b是[0,1] 間的隨機數(shù)。
(6)變異:第i個個體的第j個基因進行種群變異,其操作可由如下公式進行描述:
其中,Wmax,Wmin分別為基因Wij的最大值和最小值;Gmax為最大進化次數(shù);g為當前迭代次數(shù);r為[0,1] 間的隨機數(shù);r2是隨機數(shù)。
(7)獲得新種群:重復(fù)(4)~(6)步驟,直到輸出最優(yōu)解。
GA 優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)的流程如圖3 所示。
圖3 GA 優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)流程圖Fig. 3 GA-optimized BP neural network flowchart
實驗在Matlab R2016a 環(huán)境下構(gòu)建基于遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)的飛機油耗預(yù)測模型。 本文實驗的QAR 數(shù)據(jù)來源于某航空公司,選擇200 組QAR數(shù)據(jù)樣本進行實驗,同時選取地速、縱向加速度、垂直加速度、風速、風向、傾斜角、空速、氣壓高度、俯仰角、大氣溫度、飛機質(zhì)量、發(fā)動機工作狀態(tài)12 個飛行參數(shù)[13]。 其中,96%的數(shù)據(jù)用于訓(xùn)練,其余4%的數(shù)據(jù)用于測試。 為了更精準地預(yù)測模型,采用主成分分析法從12 個飛行參數(shù)中選取對飛機燃油油耗影響比較大的主成分進行實驗。 對12 個參數(shù)進行主成分分析得到的碎石圖如圖4 所示。
圖4 飛機油耗主成分分析碎石圖Fig. 4 Analysis of the principal components of aircraft fuel consumption in a lithotripsy chart
從圖4 中可以看出,第8 個參數(shù)后的特征值幾乎趨于0,對飛機油耗的影響程度較小,故只選取前8 個參數(shù)作為神經(jīng)網(wǎng)絡(luò)的輸入。
實驗的輸入?yún)?shù)有地速、縱向加速度、垂直加速度、風速、風向、傾斜角、空速、氣壓高度共8 種參數(shù),輸出參數(shù)為預(yù)測航線燃油油量這一種參數(shù)。 經(jīng)GA-BP神經(jīng)網(wǎng)絡(luò)模型計算后得出預(yù)測的航線油量。 由于每個參數(shù)的量綱不同,輸入?yún)?shù)在輸入神經(jīng)網(wǎng)絡(luò)前要先進行歸一化處理,使輸入?yún)?shù)轉(zhuǎn)化為[0,1]之間的無量綱數(shù)據(jù),研究推得的數(shù)學公式為:
表1 部分歸一化前的數(shù)據(jù)Tab. 1 Data before partial normalization
表2 部分歸一化后的數(shù)據(jù)(保留兩位小數(shù))Tab. 2 Partially normalized data (keeps two decimal places)
BP 神經(jīng)網(wǎng)絡(luò)模型使用三層網(wǎng)絡(luò)結(jié)構(gòu),其中輸入層節(jié)點數(shù)為8,隱含層節(jié)點數(shù)為6,輸出層節(jié)點數(shù)為1。 BP 神經(jīng)網(wǎng)絡(luò)具體的參數(shù)設(shè)置見表3,GA 的參數(shù)設(shè)置見表4。 實驗的誤差使用平均相對誤差(MRE)、均方誤差(MSE)、平均絕對誤差(MAE) 來進行評估。 3 種誤差計算公式分別見下式:
表3 BP 神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置Tab. 3 BP neural network parameters settings
表4 GA 參數(shù)設(shè)置Tab. 4 GA parameter settings
其中,xi是真實值;是預(yù)測值;NP是實驗總樣本。
用經(jīng)過預(yù)處理后的數(shù)據(jù)對模型進行訓(xùn)練,并將訓(xùn)練后的預(yù)測模型通過測試集進行檢驗,再將BP神經(jīng)網(wǎng)絡(luò)與遺傳算法優(yōu)化的BP 神經(jīng)網(wǎng)絡(luò)的檢驗結(jié)果進行對比。 研究得到的BP 神經(jīng)網(wǎng)絡(luò)預(yù)測結(jié)果見圖5,遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)預(yù)測結(jié)果見圖6。從圖5、圖6 可看出,遺傳算法優(yōu)化的BP 神經(jīng)網(wǎng)絡(luò)對飛機油耗量預(yù)測結(jié)果比BP 神經(jīng)網(wǎng)絡(luò)精確性更高。
圖5 BP 神經(jīng)網(wǎng)絡(luò)預(yù)測結(jié)果Fig. 5 Prediction results of BP neural network
圖6 遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)預(yù)測結(jié)果Fig. 6 Prediction results of GA-optimized BP neural network
通過測試集數(shù)據(jù)對預(yù)測模型進行預(yù)測后,使用MAE、MAPE以及RMSE三種計算方法分別計算各個模型的相對誤差,誤差對比情況見表5。 從表5可以看出,GA-BP 神經(jīng)網(wǎng)絡(luò)預(yù)測模型的MAE、MAPE以及RMSE與BP 神經(jīng)網(wǎng)絡(luò)預(yù)測模型相比分別提高了4.605 6、0.013 8、4.202 6。
表5 模型預(yù)測誤差對比Tab. 5 Comparison of model prediction errors
通過對預(yù)測結(jié)果及3 種預(yù)測模型的MAE、MAPE及RMSE進行分析,可看出遺傳算法優(yōu)化的BP 神經(jīng)網(wǎng)絡(luò)模型具有更好地穩(wěn)定性和精確性,對飛機油耗的預(yù)測更準確,在實際應(yīng)用中的可行性也更好。
提出了一種基于遺傳算法優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)的飛機油耗預(yù)測模型。 仿真結(jié)果表明,與傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)相比,此模型具有更好的預(yù)測性能,能提高飛機油耗預(yù)測精度,為飛機油耗提供了新的預(yù)測模型和方法。 但卻只將該模型用到了飛機下降階段的油耗預(yù)測中,未來可考慮該模型在其它航段的實際應(yīng)用。