李朝潞,吳俊杰,萬連成
(中國民用航空飛行學院 空中交通管理院,四川 廣漢 618300)
實踐和研究表明,多變地形對飛機近地面飛行的安全影響極大[1],飛機顛簸是其表現形式之一。與地形有關的飛機顛簸主要是由風吹過多變地形形成的動力湍流引起的,大多發生在飛機起飛和下降過程,且在飛行高度較低區域。
飛機顛簸是指在飛行中飛機突然出現的忽上忽下、左右搖晃及機身振顫的現象。大氣湍流是造成飛機顛簸的主要原因,可分為動力湍流、熱力湍流、晴空湍流、尾渦湍流和山地波等[2]。其中,引起飛機低空顛簸的大氣湍流主要為動力湍流和熱力湍流[3-4]。
由于低空顛簸多發且復雜,為對其進行準確預測,基于實測數據進行準確的定量分析就顯得尤為重要。飛機在低空飛行時,尤其是在起飛和降落階段,地形條件的影響尤為嚴重[5]。風吹過多變地形會產生風切變,風切變在近地飛行區發生時,飛機會突然不受控制上升或下降[6]。此時,飛機距地面較近,調整空間有限,是飛機起降的危險階段。
在地形多變的山區,動力因子和熱力因子會相互影響形成不同類型湍流,其程度與山脈的形狀和大小有關。山地波是氣流流經山地時,隨山地高度分布不均勻產生的,能產生上升和下沉氣流速度很大的湍流[7-8]。飛機在該區域,經常會產生強顛簸。由于山區動力因子和熱力因子的共同作用,常見湍流形式有山谷環流、山地湍流和山地波。此外,地形和分層氣流的相互作用會在山脈背風面形成各種尺度的湍流渦旋,產生重力波和背風轉子環流等,嚴重影響飛行安全[9]。這些都與水平風的垂直變化有關,可見,低空飛行時飛機顛簸主要源自水平風的切變[10]。
雖有少量基于實測資料對多變地形上空飛機顛簸的研究,但結合實際飛行航線,考慮機場附近多變地形并引入地形物理參數的相關研究鮮有報道。本文以開普福爾德地區為研究對象(該地風向穩定且飛機顛簸受山頂影響較為明顯),使用5種與地形有關的物理量參數,通過支持向量機算法,探求近地面飛機顛簸區的預測方法。
飛機顛簸數據來源于美國國家航洋和大氣管理局的AMDAR飛機數據。大氣數據選用歐洲中期天氣預報中心的再分析數據資料。其數據原始格式為經緯度每0.125°×0.125°一個采集點,每24小時采集4次。根據飛機顛簸高度選擇合適氣壓高度的水平風速、垂直風速與溫度數據。將下載后的nc格式數據文件用MATLAB中的netcdf函數庫進行處理,使用ncdisp和ncread指令可以對nc文件的數據信息進行查看和讀取。地形數據取自地理信息云提供的免費DEM數據,使用ArcGIS對其進行解碼,將開普福爾德上空航線附近的地形數據按照0.25°×0.25°的范圍分成18個柵格,并求出每個柵格中的地形局部高差與最高高度。地形起伏度可根據DEM數據使用ArcGIS中的插值函數計算得出,其算法原理為局部高差算法,計算公式為
ra=emax-emin
(1)
式中:ra為地形起伏度;emax和emin分別為每個柵格范圍內的最大和最小高程,結果如圖1所示。
地形最高高度同樣可以在ArcGIS中生成,結果如圖2所示。
圖1和圖2中柵格的顏色越淺,表示其對應的數值越大。排除飛行航線不經過的柵格,留下航線兩旁的18個柵格作為研究對象。
聚類分析是數據分析的主要方式。可以用來計算數據空間上的密集區域、間隔或分成不同類別,可將其視為多目標規劃問題。目前已有超過100種聚類算法,這些算法由于所用數據集的特點不同,應用的范圍也不同。統計學習理論專門研究實際應用中有限樣本情況的機器學習規律,并發展了支持向量機(Support Vector Machine, SVM)算法,該算法基于結構風險最小化(SRM)原理,具有很多優于已有方法的性能[11]。
設樣本為(x1,y1),(x2,y2),…,(xn,yn),最優化函數為f(xi,w),在統計學中,利用風險最小化準則的經驗風險為
(2)
式中,L為拉格朗日函數。將實際風險代入經驗風險中,經驗風險與實際風險之間滿足如下關系
(3)
式中,n是樣本數,函數h表示了函數的復雜性[12]。從式(3)可以看出,函數的復雜性與真實風險和經驗風險之間的差別成正比。當兩者的差別較大時,證明機器學習的過程出現了過學習的現象,因此在機器學習過程中要控制上述兩者間的差值才能得到較好的預測結果[13-14]。
SVM的最初只能用于將數據集合分為兩類,即用可描述的線段將數據分割成兩個類別,如圖3所示。圖中上面和下面的點表示兩類樣本,直線為判別函數(區分多類問題可將直線描繪為一個超平面),該直線將機器訓練集合分割為正負兩類。
按照經驗風險最小化的要求,圖3中的直線(超平面)對數據的分類效果良好,若更換訓練樣本數據集,其效果將顯著降低,難以將其推廣到其他數據集上進行其他模式的數據預測。按照結構風險最小化的要求,圖3中的直線(超平面)應在將兩種數據集分開的同時實現分類間隔最大。SVM可將這種預測推廣到其他的問題中去。
SVM最大分類間隔是在兩類未被分類的數據之間找到臨界函數,將這兩種數據分割開來。但這種臨界函數存在無數個,SVM找到其中最優的,并將其作為這個分類問題的最優解。此時,最優的分類間隔為最大分類間隔。假設一個n維超平面方程為:
w·x+b=0w∈Rn,b∈R
(4)
最優超平面可通過求解‖w‖2/2的極小值得到。對其增加約束條件:
yi(w·xi+b)-1≥0i=1,…,n
(5)
該約束優化問題可用拉格朗日方法求解,其函數表達式如下:
(6)
式中,αi為第i個樣本的拉氏因子(αi≥0)。由式(6)分別對w和b求導,并令所得導數方程等于0,有
(7)
(8)
選擇超平面時,拉氏因子為0的樣本向量對選擇分類超平面沒有意義,可選解向量的拉氏因子均不為0。這樣,從訓練集中就可得到描述最優分類超平面的決策函數(支持向量機),其分類功能由支持向量決定。決策函數表達式為:
(9)
在線性不可分的情況下,如果存在沒有被分類的數據,可在式中增加一個松弛項ξi(ξi≥0),則
yi(w·xi+b)≥1-ξii=1,2,…,n
(10)
則目標函數可改為求下式最小值
(11)
由決策函數式(9)可知,(x·xi)為x和xi的相似度。在一般情況下,對任意兩個樣本向量x和xi,都存在核函數來描述兩者的相似度。對于難以線性分類的問題,待分類樣本可通過非線性變換映射到高維特征空間,使待分類樣本在目標高維空間轉化為線性可分問題。若非線性轉換函數為Φ(x),則超平面決策函數式可表達為:
(12)
實際中經常遇到的是線性不可分問題。核函數先將樣本數據在低維空間進行運算,再將運算后的結果轉換到高維空間,實現問題從低維到高維轉換,且可避免運算效率低的問題。但核函數種類較多,在一種核函數下觀察到的特征不一定能在其他核函數下保持。因此,選擇合適的核函數解決具體問題非常重要。
為分析開普福爾德地區多變地形對飛機顛簸的影響,本文采用常見的四種核函數[15]進行分析,其中一個為線性核函數,三個為非線性核函數。
線性核函數表達式如下:
K1(x·xi)=x·xi
(13)
非線性核函數有如下三種:
(1)多項式核函數的表達式為:
Kp(x·xi)=[(x·xi)+1]q
(14)
式中,q表示多項式階數為q階。
(2)徑向基核函數的表示式為:
(15)
(3)Sigmoid核函數的表示式為:
Ks(x·xi)=tanh[υ(x·xi)+c]
(16)
基于上述4種不同核函數建立SVM模型,根據4種模型的預測結果,選擇其中結果最好的為最優核函數。
將開普福爾德地區航線附近區域劃分為18個柵格,整理每個柵格中2019年一整年的相關數據,包括柵格上空氣象數據、柵格內地形起伏度以及每天發生飛機顛簸的次數,將上述數據作為訓練集代入四種SVM模型中。為評價航線附近柵格中飛機的顛簸等級,統計每個柵格中飛機日顛簸次數,并按照統計結果劃分為不同的等級。日顛簸次數小于1次的為非顛簸區,記為0;日顛簸次數大于等于1次小于3次的為中度顛簸區,記為1;日顛簸次數大于等于3次的為重度顛簸區,記為2。SVM模型訓練集中的部分統計數據如表1所示。

表1 SVM模型訓練集中的部分統計數據
使用Python將整理好的訓練集數據分別代入四種不同核函數的支持向量機對飛機顛簸進行預測結果,如圖4所示。圖中linear為線性核函數預測結果,poly、rbf、sigmoid分別為多項式、徑向基、Sigmoid核函數預測結果,real為實際結果。
由圖4可知,線性核函數、多項式核函數、徑向基核函數和Sigmoid核函數四種核函數預測正確率分別為61.0%、83.3%、61.0%和44.4%。顯然,多項式核函數的預測效果最好。將不同的地形參數組合分別代入訓練集,使用多項式核函數的支持向量機求出預測結果,并確定最優的參數組合。
為了驗證所選擇的與地形相關的參數是否全部與飛機顛簸在柵格上空發生次數相關,再次建立SVM模型,帶入不同的參數組合,并對飛機顛簸次數進行預測。表2為測試集所對應的參數組合。

表2 15種參數組合
圖5中可以看出預測準確率最高的參數組合的序號為3,預測準確率為94.44%。其中,序號為3的模型所選取的參數為局部高差、最高高度、水平風速、垂直風速。序號為2與4的模型預測效果也較高,其余模型測試結果不太理想。因此可以推測柵格上空的飛機顛簸發生次數主要與地形的局部高差、地形最高高度、水平風速、垂直風速相關。
本文分別建立4種不同核函數下的支持向量機模型。對比4種核函數的預測結果得出結論,多項式核函數對上述5種參數的預測效果最佳。找出5種與地形相關參數的不同參數組合的情況并列出表格,將15種不同參數組合分別代入多項式核函數下的支持向量機對飛機顛簸強度進行預測,預測結果表明地形局部高差、最高高度、水平風速與垂直速度的參數組合的預測準確最高,即得出結論,這4種參數與飛機在地形上空發生顛簸的關系最大。