韓聰玲,劉克格,劉彥鵬
(國機集團北京飛機強度研究所有限公司,北京 100083)
在飛機使用和研制過程中,通常需要進行載荷譜實測。載荷譜實測在當前工業(yè)應用中具有重要意義,載荷譜實測結(jié)論可以應用在以下方面:(1)壽命估算;(2)全尺寸試驗;(3)可靠性設計;(4)耐久性評定;(5)計算機輔助設計。
根據(jù)飛機的空間力受載分析,通過應變橋路設計、載荷標定,建立關(guān)于實測載荷輸入同應變(碼值)輸出的數(shù)據(jù)關(guān)系方程,并對方程求解,結(jié)合飛機實測飛行數(shù)據(jù),可以獲得飛行狀態(tài)中相關(guān)部件實際運作中的載荷-時間歷程,即實測載荷譜。
工程實踐中,實測載荷與應變(碼值)通常滿足一定的線性函數(shù)關(guān)系,所以,利用標定試驗數(shù)據(jù),建立線性關(guān)系方程,即標定試驗方程,最終解得回歸系數(shù),得到載荷-應變(碼值)的函數(shù)關(guān)系,是本階段試驗的主要目的。這種基于多元線性回歸的預測方法,在進行有效參數(shù)分析時,某種程度在分析過程中依賴技術(shù)人員的經(jīng)驗,通常在一定范圍內(nèi)誤差可以控制在5%以內(nèi),結(jié)果較為滿意。但對于載荷與應變(碼值)之間有復雜的相關(guān)性時,會對最終載荷標定精度造成影響。文獻[1]提出了一種“多元回歸選元方法”,其基本思路是把回歸變異系數(shù)作為選用依據(jù),進行誤差控制,選出最優(yōu)自變量參與回歸計算,從而得到最優(yōu)解。基于該方法,目前已使用多型號的飛機載荷譜實測試驗數(shù)據(jù)進行了成功的驗證,驗證的數(shù)據(jù)誤差可控制在5%以內(nèi),結(jié)果較為滿意。
在參數(shù)較多、載荷分量較小時,誤差會偏大。同時,考慮到實際的結(jié)構(gòu)部件和原材料等問題的影響,輸入載荷與輸出應變(碼值)在某一特定數(shù)據(jù)值范圍內(nèi)會呈現(xiàn)出一定的非線性關(guān)系,因此本文對計算載荷與輸出應變關(guān)系的方法進行新的嘗試和探索,使用基于機器學習的大數(shù)據(jù)非線性回歸分析模型建立載荷與應變(碼值)的關(guān)系。
基于應變電測法的載荷譜實測試驗,在標定試驗過程中,根據(jù)飛機的受力情況,設計應變橋路。在應變、橋路設計的基礎上,通過標定試驗記錄的試驗數(shù)據(jù),建立載荷應變函數(shù)方程,再通過此方程計算出飛機設備部件在實際運行時的載荷隨時間的變化函數(shù),稱作載荷-時間歷程。
對于標定試驗而言,利用電阻應變片測量出飛機結(jié)構(gòu)部件表面的應變(碼值),再根據(jù)應變和應力的函數(shù)關(guān)系計算出結(jié)構(gòu)表面的受力情況。應變片的電阻值會隨結(jié)構(gòu)表面的形變情況發(fā)生變化,電阻變化值可以進行物理量的換算,通過計算可以得到所測的物理量。原理是載荷=系數(shù)×應變,利用可控的已知載荷和應變數(shù)值求出未知系數(shù)。
以某飛機為例,設備結(jié)構(gòu)所承受的外載一般分為空間6個分力,以某個部位為例,y向載荷分量剪力Q,忽略x向的載荷分量(相對較小),即把M、Q、T作為輸入,相應的測試應變碼值ε1、ε2、ε3作為輸出。利用試驗數(shù)據(jù),基于逐步回歸的數(shù)學建模,標定數(shù)據(jù)處理的數(shù)學模型為:
求出系數(shù)矩陣βij后,再用有偏估計或區(qū)間預測M、Q、T。在實際工作中,因為最終需要預測的是M、Q、T,所以模型變形為如下形式:
求解αij系數(shù)矩陣就是標定試驗階段的主要任務,最終通過最小二乘法計算得出。
大多數(shù)情況下,在標定試驗數(shù)據(jù)中,某個信號量與載荷值的線性關(guān)系很明顯。以某試驗的某個截面試驗數(shù)據(jù)為例,進行散點圖繪制(如圖1-圖3所示),縱軸向代表M,theta_m_1、theta_m_2、theta_m_3橫向從上到下依次代表應變ε1、ε2、ε3。
圖1 數(shù)據(jù)關(guān)系的數(shù)據(jù)散點圖
圖2 數(shù)據(jù)關(guān)系的數(shù)據(jù)散點圖
圖3 數(shù)據(jù)關(guān)系的數(shù)據(jù)散點圖
從圖2、圖3所示的ε2、ε3與M關(guān)系圖可以看出,這兩個分量的散點圖較為分散。在試驗過程中,會出現(xiàn)局部散點分布回歸效果不理想的情況。如果單純地使用線性回歸計算標定試驗方程,誤差可能會偏大,有時會出現(xiàn)高于5%的誤差。本文使用非線性回歸模型進行計算,以提高回歸精度。
回歸分析是統(tǒng)計學中在觀察和分析大量試驗數(shù)據(jù)的規(guī)律后,得出自變量與因變量關(guān)系的過程。目前,在進行大數(shù)據(jù)回歸預測時,常用的模型包括隨機森林模型、極端隨機樹模型、GBDT模型、XGBoost模型等。
隨機森林是機器學習的經(jīng)典算法,最早由Breiman提出,是基于決策樹的算法,可以有效處理多個因素相互作用的非線性回歸問題[3-6]。其具有運算速度快的優(yōu)點,因此是處理大數(shù)據(jù)回歸時最常用的算法。在處理多變量共線的問題時,不需要進行變量篩選。在解決回歸問題時,隨機森林模型(簡稱RFR)在計算一組輸入輸出的非線性回歸關(guān)系時的計算過程如下:
(1)基于Bootstrap方法有放回地隨機選擇子樣本,組建訓練集,基于Bootstrap算法重復取樣,形成一定數(shù)量的訓練集,形成獨立的回歸決策樹。
(2)在回歸樹M個特征中隨機取得m個子特征,逐個計算子樣本特征后,從計算結(jié)果中得到滿足均方誤差最小的條件,形成2個節(jié)點。
(3)重復調(diào)用步驟(2),直至滿足模型預設停止條件,決策樹計算結(jié)果完成。
(4)生長回歸決策樹:
(1)
極端隨機樹(ET或Extra-Tree)是基于決策樹的集成算法,和隨機森林方法類似,也是基于多棵決策樹構(gòu)成的,但是又有區(qū)別。極端隨機樹是將每棵樹都使用全部訓練樣本,從而提高了對全部樣本的利用程度,在一定范圍提升了精度[7]。極端隨機樹模型通過提高各個決策樹之間的結(jié)構(gòu)差異,從而構(gòu)建更大的隨機性,將決策樹泛化誤差加權(quán)值為:
(2)
決策數(shù)據(jù)的差異加權(quán)平均:
(3)
集成后的泛化誤差表示為:
(4)
通過增加決策樹的多樣性以及單個決策樹的精度,進一步提高模型最終集成的預測精度。
GBDT(Gradient Boosting Decision Tree)是一種基于多次迭代決策樹算法,其核心思想是基于多棵決策樹的計算,實現(xiàn)累加取得最終結(jié)果,該算法所有樹的結(jié)論累加作為最終結(jié)果。這種方法不但可以靈活處理各種類型的連續(xù)值數(shù)據(jù),還可以很好地處理離散數(shù)據(jù)[8-11],可以在較短的訓練和調(diào)參時間范圍內(nèi),取得精度較高的結(jié)果。
GBDT的優(yōu)點主要有:(1)靈活度高,不僅可以處理連續(xù)性數(shù)據(jù),處理離散型數(shù)據(jù)時效果也很好。(2)可以使用較少的調(diào)參時間,達到較高的樣品預測精度。GBDT的缺點主要表現(xiàn)在弱學習器方面,如果存在依賴關(guān)系,進行并行訓練比較困難。
下述為GBDT計算過程。
輸入數(shù)據(jù)集:
T={(x1,y1),(x2,y2),…,(xn,yn)}
(5)
損失函數(shù)表示為:
L(y,f(x))
(6)
首先,初始化:
(7)
(1)對于樣本,計算損失函數(shù)的負梯度,計算殘差:
(8)
(2)擬合下一輪學習器,滿足損失函數(shù)最?。?/p>
(9)
(10)
(3)更新f(x)。
(4)計算回歸樹:
(11)
式中,m=1,2,3…M,M表示迭代次數(shù)。
XGBoost和GBDT很相似,目的是提高算法速度和效率。因此,XGBoost計算梯度時,使用了二階偏導,使得梯度下降得更快更準,在預防過擬合方面表現(xiàn)很好,損失函數(shù)的計算精度高,適合計算系數(shù)矩陣[9-11]。
XGBoost模型如下:
(12)
XGBoost的目標函數(shù)為:
(13)
目標函數(shù)包括誤差項和正則化項,其中,正則化項可以表示成如下形式:
(14)
式中,T為葉子節(jié)點總數(shù),ω為當前節(jié)點的特征數(shù)值。目標函數(shù)先進行二階泰勒展開,再求偏導,可得目標的最優(yōu)解:
(15)
(16)
基于標定試驗數(shù)據(jù),去掉系統(tǒng)錯誤產(chǎn)生的數(shù)據(jù),按照試驗順序選擇一定比例的數(shù)據(jù)作為訓練集,其余數(shù)據(jù)作為驗證集,根據(jù)機器學習的理論,嘗試構(gòu)建4種非線性回歸預測模型。選取隨機森林、極端隨機樹、XGBoost、GBDT回歸預測模型進行訓練驗證,并計算誤差情況分析回歸效果。如果誤差在合理范圍內(nèi),則流程結(jié)束,否則需要根據(jù)經(jīng)驗調(diào)整模型參數(shù),直至結(jié)果滿意。
現(xiàn)以一個結(jié)構(gòu)部件的數(shù)據(jù)為例,選取試驗中M、Q、T與ε1、ε2、ε3的3組試驗測量數(shù)據(jù)作為模型研究對象,每組試驗數(shù)據(jù)220條,部分樣本數(shù)據(jù)如表1所示。利用Python庫的numpy pandas庫進行數(shù)據(jù)處理和計算,利用sklearn分別建立隨機森林、極端隨機樹、XGBoost、GBDT預測模型,將測試數(shù)據(jù)結(jié)構(gòu)隨機劃分為兩個部分,70%用于訓練,30%用于驗證集合。
表1 部分樣本數(shù)據(jù)
模型調(diào)參是訓練模型中不可缺少的,分別使用隨機森林、極端隨機樹、GBDT、XGBoost等4種預測模型,模型的參數(shù)設置會直接影響模型的計算效率和精度。隨機森林、極端隨機樹、XGBoost、GBDT預測模型都是基于決策樹的算法模型,本文以決策樹的數(shù)量n_estimators、最小樣本數(shù)min_samples_split、最大深度max_depth、隨機選擇的最大特征max_features作為調(diào)參對象,進行反復計算比較。隨機森林、極端隨機樹、GBDT、XGBoost模型參數(shù)如表2-表5所示。
表2 隨機森林模型參數(shù)
表3 極端隨機樹模型參數(shù)
表4 GBDT模型參數(shù)
表5 XGBoost模型參數(shù)
根據(jù)上述模型和數(shù)據(jù),使用Python編寫程序進行計算,計算流程如圖4所示。
圖4 非線性處理流程
(1)預處理,將標定試驗數(shù)據(jù)匯總到一個文件中,對各參數(shù)的取值范圍、趨勢進行人工識別。
(2)選取隨機森林、極端隨機樹、XGBoost、GBDT回歸預測模型進行訓練,驗證誤差情況。
(3)計算誤差,誤差在合理范圍內(nèi)流程結(jié)束,否則修正模型參數(shù)繼續(xù)計算。
(4)輸出結(jié)果。
按照以上流程進行訓練,部分樣本的訓練集計算結(jié)果如表6所示。
表6 部分訓練集結(jié)果
為了對非線性模型回歸效果優(yōu)劣做出判斷,本文使用以下指標進行回歸分析評判:模型訓練時間;平均相對誤差(Mean Absolute Percentage),記作MAPE,通常轉(zhuǎn)為百分數(shù)進行比較;另一指標是確定系數(shù),記作R-square。
(17)
(18)
對樣本70%的數(shù)據(jù)分別進行4種模型的訓練,同時統(tǒng)計模型的平均相對誤差、確定系數(shù)、訓練耗時,結(jié)果如表7所示。從計算結(jié)果可以看出,GBDT模型是最優(yōu)的。
表7 模型指標計算
利用樣本數(shù)據(jù)的30%的66個樣本作為驗證集,針對驗證集的數(shù)據(jù)預測結(jié)果,計算相對誤差百分比,部分數(shù)據(jù)計算結(jié)果如表8所示,表中的后5列分別是人工線性方法和4種非線性回歸模型誤差值比較。從表中結(jié)果可以看出,大部分的驗證結(jié)果中非線性計算模型的精度高于人工線性模型的計算精度。同時,在4種非線性模型計算中,GBDT模型結(jié)果表現(xiàn)最好。
表8 部分驗證集結(jié)果
對4種非線性模型的總體樣本平均誤差(包括測試集和驗證集所有樣本)、確定系數(shù)和計算耗時進行了比較。對相同測量部件的220個樣本,用線性和非線性兩類模型進行回歸分析,對比多種模型下各樣本點的殘差,以此判斷模型的優(yōu)劣。綜合各指標結(jié)果,驗證了GBDT模型的優(yōu)勢。
圖5、圖6給出了人工方法和GBDT非線性預測值與真實值差異。從圖中線條的走勢可以看出,非線性預測結(jié)果好于人工線性方法的預測。從誤差計算結(jié)果可以看出,非線性模型的總殘差小于人工線性模型,且極端隨機樹和GBDT效果較優(yōu)秀,說明非線性回歸模型能較好地模擬樣本數(shù)據(jù)。
圖5 人工方法預測數(shù)據(jù)
圖6 GBDT預測數(shù)據(jù)
本文以某特定飛機結(jié)構(gòu)部件的標定試驗數(shù)據(jù)為研究對象,采用機器學習中基于決策樹的4種算法(隨機森林、極端隨機樹、GBDT、XGBoost)分別建立了回歸預測模型,用可視化圖表和相關(guān)指標進行了模型評價,得出以下結(jié)論:
(1)相比基于線性的模型算法,非線性模型能夠識別相關(guān)特征變量之間的耦合關(guān)系,對于樣本預測具有較高的準確度。對于本文中的數(shù)據(jù)樣本,訓練集誤差可以控制到3%左右。
(2)在隨機森林、極端隨機樹、GBDT、XGBoost這4種算法模型中,GBDT模型的精度是最優(yōu)的,計算效率也較高。