李曉琳,謝 帥,岳 健
(中國飛行試驗研究院飛行試驗測試航空科技重點實驗室,陜西 西安710089)
自動測試系統(tǒng)最早應用于20世紀60年代,隨著信息技術的迅猛發(fā)展,在國防工業(yè)領域內(nèi)的地位日益突出。自動設計模式經(jīng)過組合式組建概念、標準化測試接口、基于VXI、PXI等高速內(nèi)總線集成技術的革新和突破,呈現(xiàn)出由“模塊化、標準化”向“高精度、小型化、測試數(shù)據(jù)管理智能化”發(fā)展的態(tài)勢[1]。在理論研究方面,文獻[2]提取測試系統(tǒng)的共性內(nèi)容形成插件庫和執(zhí)行工具,設計并實現(xiàn)開放靈活低成本的自動測試系統(tǒng)通用軟件平臺;文獻[3]基于網(wǎng)絡自動測試系統(tǒng)模型框架,提出基于XML的測試腳本設計規(guī)范,在解決汽車零配件老化性能測試和漏泄電纜質(zhì)量檢測方面效果顯著;文獻[4]依據(jù)飛行器綜合控制系統(tǒng)的特點,采用PXI總線技術組建了自動測試系統(tǒng),實現(xiàn)了對飛行器綜合控制系統(tǒng)的自動化測試;文獻[5]通過研究活動圖建立規(guī)則,基于模型提出了UML活動圖和遺傳算法相結合的測試用例自動生成方法,構建自動化測試平臺并提升了軟件測試質(zhì)量;文獻[6] 結合自動測試系統(tǒng)的低成本、軟件可重構等設計原則,通過對比各項技術實現(xiàn)基于 FPGA和 Lab VIEW 的軟硬件設計方案并實現(xiàn),使自動測試系統(tǒng)能夠快速響應編程需求。以上自動測試系統(tǒng)均是以形成專用設備或系統(tǒng)性能自檢模式、構建自動測試平臺為目的,對其自動測試系統(tǒng)本身的自動設計方法未有涉獵;而機載測試系統(tǒng)本身就是以飛行器關鍵參數(shù)為被測對象、以飛行試驗為應用場景、以完成試飛測試任務為目的一種自動測試系統(tǒng),相對需求更為復雜、任務變化更為靈活,因而提升其設計過程的效率以確保試飛任務節(jié)點尤為重要,機載測試系統(tǒng)的自動設計方法亟待研究。
在飛行試驗領域,為滿足新型飛機鑒定需求,機載測試系統(tǒng)通常基于新機性能評價提出的測試任務,設計一套集前端信號感知、數(shù)據(jù)采集、記錄和遙測傳輸為一體的系統(tǒng)。測試工程師首先要對參數(shù)需求進行分析,將其整理、歸類后,再依據(jù)各種測試設備的性能指標,結合經(jīng)驗選擇適用于試驗鑒定的采集、記錄設備,工作重復性嚴重且容易造成人為差錯,缺乏智能輔助手段,對系統(tǒng)設計效率十分不利。
為提高測試方案設計的效率和質(zhì)量,本文從常規(guī)設計流程出發(fā),開展針對任務參數(shù)解讀的機器學習算法研究,提出基于BP神經(jīng)網(wǎng)絡改進的KNN算法,利用預測模型使測試參數(shù)準確分類,分類結果匹配至對應的信號采集方式,實現(xiàn)測試系統(tǒng)整體設計流程的自動化。
基于流程模塊化分解的設計理念,測試系統(tǒng)自動設計方案如圖1所示,主要包含測試參數(shù)自動識別、測試參數(shù)集中管理和測試系統(tǒng)自動構型三部分。
圖1 測試系統(tǒng)自動設計方案
測試參數(shù)自動識別是根據(jù)參數(shù)信息特征向量,采用機器學習算法實現(xiàn)參數(shù)快速自動歸類,并按類別形成參數(shù)表,便于參數(shù)集中管理和采集方式自動匹配。本方案所采用的機器學習算法為基于KNN改進的神經(jīng)網(wǎng)絡算法,后文將詳細闡述。
測試參數(shù)集中管理是在參數(shù)自動分類的基礎上,設計條件映射機制使各類參數(shù)實現(xiàn)自動匹配,并將測試設備屬性、功能等關鍵信息嵌入至參數(shù)管理界面,完成系統(tǒng)設計過程中設備性能指標信息可調(diào)用、采集方式自動配置、參數(shù)完整信息輸出和采集模塊自動統(tǒng)計等關鍵功能,為測試系統(tǒng)自動構型方法提供依據(jù)。
測試系統(tǒng)自動構型方法是個根據(jù)參數(shù)自動分類和采集模式自動匹配后的結果,在滿足科研試飛任務需求的情況下,統(tǒng)計測試所需采集和記錄模塊數(shù)目,并按模塊功能和容量限制等設計原則建立“最小測試系統(tǒng)”,即以最少數(shù)目、最小負載的測試設備完成測試系統(tǒng)的構建,最終將測試參數(shù)和資源設備最終配置信息整合輸出,具體步驟將在后文闡述。
KNN算法的思想是對于任意n維輸入向量,分別對應于特征空間中的一個點,輸出的結果是預測區(qū)間范圍或所在類別,也就是說訓練樣本集中每一數(shù)據(jù)與所屬類別有對應關系。
若輸入數(shù)據(jù)沒有標簽,那么將這個數(shù)據(jù)的每個特征與訓練樣本集中數(shù)據(jù)的特征進行比較,最終的分類標簽(所在類別)是訓練樣本集中與之特征最相近數(shù)據(jù)的類別[7]。
KNN算法主要計算待測樣本數(shù)據(jù)與總體樣本數(shù)據(jù)的距離,然后將最相鄰的樣本數(shù)據(jù)作為決策對象來使用該算法。KNN 算法中最為重要的部分就是三要素,分別是K值的選取、分類決策的方式以及如何度量距離。
K個樣本是最近鄰的關系,當這K個樣本符合一個具體的類別時,也就確定了未知樣本是也屬于該類別[8]。
針對測試參數(shù)的KNN算法在計算時,首先輸入歷史測試參數(shù)名稱、類別的訓練數(shù)據(jù)集:T={(x1,y1),(x2,y2),…,(xn,yn)},去其中xi∈X?Rn為n維的實例特征向量。
yi∈Y={c1,c2,…,cK},其中i=1,2,…,N為參數(shù)類別的類別,其中,i=1,2,…,N,預測任務輸入?yún)?shù)x。輸出:預測任務參數(shù)x所屬參數(shù)類別y。
具體計算步驟:
1)根據(jù)給定的距離量度歐氏距離在訓練集T中找出與x最相近的k個樣本點,給出相似度的就計算結果,并將這k個樣本點所表示的集合記為N_k(x);
歐式距離算法表達式為
(1)
其中,T={(x1,y1),(x2,y2),…,(xn,yn)}作為訓練樣本集,Sim(xk,yk)值越小則歐氏距離越短,越接近目標條件,即預測參數(shù)xi越趨近于目標參數(shù)yi[9]。
2)選取合適的K值
KNN算法中只有一個超參數(shù)k,對預測結果影響很大。如果k值比較小,就是說在進行預測的訓練樣本實例范圍較小。這時,在輸入與實例相近的訓練樣本對預測結果才會起作用,算法的近似誤差則比較小。但是,它也有明顯的缺點:算法的估計誤差比較大,預測結果取決于近鄰點,若近鄰點為噪聲點那么預測結果容易出現(xiàn)錯誤。因此,k值過小容易導致KNN算法的過擬合。同理,如果k值選擇較大的話,距離較遠的訓練樣本也能夠?qū)嵗A測結果產(chǎn)生影響。這時候,模型相對比較魯棒,不會因為個別噪聲點對最終預測結果產(chǎn)生影響。但是缺點也十分明顯:算法的近鄰誤差會偏大,距離較遠的點(與預測實例不相似)也會同樣對預測結果產(chǎn)生影響,使得預測結果產(chǎn)生較大偏差,此時模型容易發(fā)生欠擬合[10]。
因此,在實際工程實踐中,可采用均方差方式選取k值,描述樣本的分布程度。通過以上分析可知,一般會在較小范圍內(nèi)選取k值,同時把測試集上準確率最高的那個確定為最終的算法超參數(shù)k。
(2)
如式(2)所示,其中,x為期望值,xi代表每個樣本數(shù)據(jù),n代表數(shù)據(jù)樣本總數(shù)[11]。
3)根據(jù)如下所示的多數(shù)投票的原則確定實例x所屬類別y
(3)
其中,i=1,2,…,N;j=1,2,…,K。
上式中I為指示函數(shù)
(4)
BP神經(jīng)網(wǎng)絡是基于多層傳遞函數(shù)的學習網(wǎng)絡,主要由輸入層、中間層以及輸出層組成。首先輸入層獲取外界信息,然后傳遞給中間層,由中間層各個神經(jīng)元進行計算,最后分發(fā)至輸出層,而中間層的處理過程可以存在單隱藏層或多個隱藏層,這也充分體現(xiàn)了BP神經(jīng)網(wǎng)絡具有多層節(jié)點輸出模型和隱含層節(jié)點輸出模型的特點,且具有反向誤差反饋的特征。
由于連接隱藏層節(jié)點的權重系數(shù)不同導致作用于輸出層節(jié)點的權重不同,連接權重系數(shù)由以下兩部分組成:
1)wfm:輸入層節(jié)點Df連接到中間層節(jié)點Dm產(chǎn)生的權重系數(shù);
2)wfj:中間層節(jié)點Dm到輸出層節(jié)點Dj產(chǎn)生的權重系數(shù)[12]。
圖2 算法流程圖
圖2為BP神經(jīng)網(wǎng)絡算法的流程圖,當輸出層將信息輸出給外界時,會將信息形成一個反饋作用,對比輸出參數(shù)類別和實際類別,若誤差無法滿足任務參數(shù)分類判定需求,則通過反向傳播的方式調(diào)整修正各層節(jié)點的權重值。BP神經(jīng)網(wǎng)絡通過對輸入歷史任務參數(shù)信息樣本不斷訓練學習修正各層權重值,即信息順序傳播與反向傳播反復交替出現(xiàn),最終使訓練模型達到最優(yōu)。隱藏層誤差計算和訓練模型表達式分別如式(5)和(6)所示
(5)
式(5)中Ep為隱藏層期望輸出,tpi為節(jié)點i的期望輸出,Opi為節(jié)點i的實際輸出。
Δwfj(n+1)=mgφfgOj+αgΔwfj(n)
(6)
式(6)中的m為學習因子,α代表動量因子,φf和Of都代表是計算誤差值[13]。
在測試參數(shù)自動識別的訓練過程中,采用BP神經(jīng)網(wǎng)絡算法任務校正具有不確定性的參數(shù)訓練模型,而對于缺少的參數(shù)信息則通過KNN算法來預測補充,避免單一算法對歷史數(shù)據(jù)預測結果造成的不完備性,提高訓練模型精確度,降低預測結果誤差。
如下圖所示,KNN算法改進的BP神經(jīng)網(wǎng)絡是算法預測流程是首先將任務參數(shù)輸入到判讀模塊,若預測結果出現(xiàn)異常則利用KNN算法對訓練模型進行修正,將修正信息傳遞到BP神經(jīng)網(wǎng)絡算法中進行學習訓練,建立基于輸入任務參數(shù)的準確訓練模型,BP神經(jīng)網(wǎng)絡算法和KNN算法的學習過程一直依賴于知識庫中的歷史任務參數(shù)信息,并通過不斷迭代修正訓練模型最后給出高可信度的預測測試參數(shù)信息[14]。
圖3 KNN改進后的算法流程圖
結合3.1節(jié)和3.2節(jié)對兩種算法的描述,KNN修正的BP神經(jīng)網(wǎng)絡算法訓練樣本任務參數(shù)具體方式如下:
1)輸入歷史任務參數(shù)的原始樣本為T,數(shù)量為N個,最后得到訓練后的樣本為TKNN,可以將初始訓練樣本T分成兩個結合T1和T2。
3)對于異常任務參數(shù)集合的T2,利用KNN是算法在正常任務參數(shù)集合T1中選取K個最近鄰樣本數(shù)據(jù),通過計算出K個最近鄰的權重系數(shù)得到T2KNN,校正完成后與正常任務參數(shù)T1集合合并成TKNN;
4)KNN訓練結束后利用新的集合輸入到BP神經(jīng)網(wǎng)絡中對輸入的新樣本X預測結果;
5)當樣本X滿足校正條件后從TKNN中選取K個最近鄰參數(shù),計算取代異常值權重后組成新集合XKNN,利用BP神經(jīng)網(wǎng)絡對XKNN樣本進行預測,得到XKNN屬于某類別的概率為P,最終得到X中每個參數(shù)的預測結果集合Y。
其中,α、β分別表示KNN與BP神經(jīng)網(wǎng)絡進行預測的置信度權重系數(shù),應滿足α+β=1[15,16]。
為了驗證算法預測結果的準確度,選取49個數(shù)據(jù)作為訓練樣本,訓練最大次數(shù)100,全局最小誤差0.005,動量因子0.9,學習率0.025,采用KNN改進BP神經(jīng)網(wǎng)絡算法前后,仿真效果的對比如圖4所示??梢娤噍^于單獨采用BP神經(jīng)網(wǎng)絡算法而言,經(jīng)KNN改進后的算法預測能力表現(xiàn)平穩(wěn),因此用來作為測試參數(shù)自動識別和分類的算法。
圖4 KNN改進BP神經(jīng)網(wǎng)絡算法前后對比結果
以圖5所示環(huán)境溫度參數(shù)示例,任務參數(shù)輸入格式(即表頭屬性)一致,在學習訓練時,首先進行關鍵特征提取,如“參數(shù)名稱”包含“溫度”、“參數(shù)符號”為“℃” 、“加裝”選擇“√”等元素;然后進行權重計算,如“參數(shù)符號”為“℃”的特征項與參數(shù)類別“環(huán)境溫度”分類貢獻度最高,“參數(shù)名稱”包含“溫度”的分類貢獻度次之,“加裝”選擇“√”最低;最后根據(jù)KNN改進的BP神經(jīng)網(wǎng)絡算法計算其分類結果,對應參數(shù)所在類別。分類流程如圖6所示。
圖5 測試任務書中環(huán)境溫度參數(shù)摘錄示例圖
圖6 參數(shù)分類流程圖
在測試系統(tǒng)自動設計過程中,選取歷史任務參數(shù)量為100個的輸入樣本集合,其中任務參數(shù)種類包括過載、應變、環(huán)境溫度、壓力、環(huán)境振動等13類參數(shù)。
預測算法的置信度權重設置為α=0.3,β=0.7,設定K值為4,規(guī)定異常輸入信息參數(shù)個數(shù)大于2時樣本無效,所以針對異常個數(shù)分別為 0、1、2時分析預測結果。實驗的結果如表1所示。
表1 兩種方法預測結果準確度對比
經(jīng)KNN改進后的BP神經(jīng)網(wǎng)絡算法能夠保證測試參數(shù)自動識別和分類的精度要求,為后續(xù)測試參數(shù)集中管理、采集方式自動匹配和測試系統(tǒng)自動構型提供依據(jù)。
機載測試系統(tǒng)自動設計軟件包括5個功能模塊,如圖7所示。
圖7 機載測試系統(tǒng)自動設計軟件功能模塊
文件輸入輸出模塊:使任務參數(shù)可通過文件批量輸入,經(jīng)過參數(shù)自動識別、采集方式匹配、系統(tǒng)構型等運算后,形成完整的測試方案輸出為標準文件。
參數(shù)自動分類模塊:包含歷史參數(shù)分類信息庫和KNN分類算法,實現(xiàn)輸入任務參數(shù)按信號采集方式等測試原則準確分類。
設備關聯(lián)信息管理模塊:在測試參數(shù)集中管理過程中,用于設備主要功能信息的導入,其結果作為采集方式自動匹配的依據(jù)。
初步選型模塊:在參數(shù)類型自動識別和分類后,基于類別和采集方式設計原則產(chǎn)生映射關系,結合設備關聯(lián)信息實現(xiàn)采集方式自動匹配,并可根據(jù)實際需求編輯,作最終確認。
編輯模塊:整個測試系統(tǒng)設計的過程中若存在不完全符合參數(shù)實際測試方式的內(nèi)容,可根據(jù)相應設計原則進行編輯或修改。
在形成以上功能模塊的基礎上,設計軟件流程如圖8所示。
圖8 測試系統(tǒng)自動設計軟件流程圖
以某飛機試飛任務測試需求為例,測試系統(tǒng)自動設計的效果如下:
1)首先,任務參數(shù)表作為txt形式導入至軟件中,導入的任務參數(shù)作為待預測分類參數(shù);
2)在歷史任務參數(shù)訓練樣本庫的基礎上,采用基于KNN改進的BP神經(jīng)網(wǎng)絡算法算法,對任務參數(shù)進行類別預測,自動分為若干類,形成如圖9所示的參數(shù)自動分類界面;
圖9 參數(shù)自動分類界面
3)參數(shù)集中管理界面如圖10所示,對于編輯表格中每一行的測試參數(shù),可根據(jù)預測類別自動匹配該類別下的測試傳感器、調(diào)節(jié)器與采集模塊,編輯傳感器、調(diào)節(jié)器、采集模塊編號與匹配通道;
圖10 參數(shù)集中管理界面
4)根據(jù)參數(shù)集中管理、配置后的結果,采用測試系統(tǒng)自動構型方法形成“最小測試系統(tǒng)”。首先統(tǒng)計所需基礎采集模塊及其編號如圖11所示;然后,依據(jù)測試設備功能、容量限制等設計原則,如一臺采集機箱至多放置10塊采集模塊、每臺機箱KAD/ADC/109采集模塊不超過5塊等限制要求;再結合如圖12所示GPS數(shù)據(jù)定位、數(shù)據(jù)遙測傳輸、專用采集器等子系統(tǒng)關聯(lián)方式,關聯(lián)配置信息,最終導出為excel形式并統(tǒng)計測試系統(tǒng)建立所需的測試資源、參數(shù)測試方式等信息,導出測試參數(shù)資源自動配置信息如圖13所示。
圖11 采集基礎模塊統(tǒng)計結果
圖12 子系統(tǒng)關聯(lián)關系配置界面
圖13 導出后的測試參數(shù)資源自動配置信息
基于機器學習的機載測試系統(tǒng)自動設計軟件已在多型飛機試飛任務中使用,具有良好的開放性和靈活性,運行效果表現(xiàn)優(yōu)異,據(jù)統(tǒng)計:平均縮短測試任務周期約41%,測試方案設計準確度提升約24%。
本文首先從測試系統(tǒng)常規(guī)設計思路出發(fā),將設計流程模塊化分解并加以優(yōu)化,提取設計過程中測試參數(shù)自動識別、測試參數(shù)集中管理和測試系統(tǒng)自動構型三個關鍵步驟,形成機載測試系統(tǒng)自動設計方案;針對測試任務參數(shù)判讀和信息自動讀取,提出基于KNN改進的BP神經(jīng)網(wǎng)絡算法實現(xiàn)輸入測試參數(shù)的高精度自動分類,保障測試系統(tǒng)自動設計軟件的順利運行,保證任務需求完整度和數(shù)據(jù)容量。
基于機器學習算法的機載測試系統(tǒng)自動設計技術的研究結果不僅能夠以智能化手段減少人為差錯、大幅提高測試系統(tǒng)設計的效率和質(zhì)量,而且對未來測試一體化設計平臺的打造具有重要意義。