孟現(xiàn)召
摘 要:在EGView軟件輔助下分析FDR數(shù)據(jù)是SR20飛機(jī)健康狀況監(jiān)控和故障診斷的必要手段,但對(duì)機(jī)隊(duì)而言,每天將會(huì)產(chǎn)生大量的待分析FDR數(shù)據(jù),單靠人工無(wú)法完成。采用計(jì)算機(jī)對(duì)大量FDR數(shù)據(jù)進(jìn)行初步篩選后再進(jìn)行人工重點(diǎn)分析將是提高監(jiān)控效率的有效手段。為此,用VB.NET編寫了客戶端程序調(diào)用客戶機(jī)上安裝的Excel軟件對(duì)FDR數(shù)據(jù)進(jìn)行解讀和初步分析,工程師僅重點(diǎn)關(guān)注篩選出的需要再次進(jìn)行人工分析確認(rèn)的數(shù)據(jù)文件即可,提高監(jiān)控效率。
關(guān)鍵詞關(guān)鍵詞:SR20飛機(jī);FDR數(shù)據(jù);批量分析;vb.net;監(jiān)控效率
DOIDOI:10.11907/rjdk.161945
中圖分類號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2016)008-0147-03
0 引言
通用航空領(lǐng)域受成本等諸多因素的限制,航空器上機(jī)載設(shè)備相對(duì)較為簡(jiǎn)單[1],在維修實(shí)踐中維修人員對(duì)航空器故障的判斷只能依靠飛行員的口頭描述和地面測(cè)試等,容易受到信息傳遞質(zhì)量的影響,特別是對(duì)那些在地面測(cè)試中難以重現(xiàn)的故障,給工程技術(shù)人員排故帶來(lái)許多不便。
某飛行學(xué)院引進(jìn)的Cirrus SR20飛機(jī)上裝備的Cirrus Perspective Avionics系統(tǒng)能夠?qū)w行中的相關(guān)參數(shù)實(shí)時(shí)記錄在FDR(Flight Data Recorder)數(shù)據(jù)文件中[2-3],產(chǎn)生的數(shù)據(jù)文件在專用的EGView軟件窗口界面中能以曲線圖的形式詳細(xì)展現(xiàn)出各參數(shù)的變化過(guò)程[4],為工程技術(shù)人員事后研判故障提供了更加直觀的數(shù)據(jù)重現(xiàn)。及時(shí)分析每天的FDR數(shù)據(jù)是對(duì)SR20飛機(jī)進(jìn)行健康狀況監(jiān)控和故障診斷的必要手段。
但對(duì)該飛行學(xué)院40架SR20飛機(jī)的機(jī)隊(duì)而言,每天都會(huì)產(chǎn)生大量的待分析FDR數(shù)據(jù),這些數(shù)據(jù)如果全部都由人工逐一分析的話工作量大且難以保證分析結(jié)果的時(shí)效性,從而使對(duì)飛機(jī)的健康狀況監(jiān)控失去意義。
本文討論基于vb.net[5-6]的Microsoft Windows平臺(tái)對(duì)SR20飛機(jī)FDR數(shù)據(jù)進(jìn)行批量分析的軟件編譯實(shí)現(xiàn)方法。
1 編譯過(guò)程
1.1 方案設(shè)計(jì)
FDR數(shù)據(jù)文件為逗號(hào)分隔值文件(.csv),可以使用Microsoft Office Excel軟件打開(kāi),這些FDR數(shù)據(jù)文件存儲(chǔ)在飛機(jī)Perspective 系統(tǒng)SD卡上。由于分析數(shù)據(jù)需要占用一定時(shí)長(zhǎng),故將數(shù)據(jù)收集與數(shù)據(jù)分析分開(kāi),批量分析方案分為上傳和分析兩個(gè)部分。上傳環(huán)節(jié)從飛機(jī)上取出SD卡并用手持機(jī)將數(shù)據(jù)文件上傳至遠(yuǎn)程數(shù)據(jù)庫(kù)[7-8],執(zhí)行邏輯如圖1。
批量分析時(shí),軟件數(shù)據(jù)庫(kù)下載FDR數(shù)據(jù)文件[7-8]并調(diào)用客戶機(jī)上的Microsoft Office Excel軟件打開(kāi)該文件,按單元格解讀所需的數(shù)據(jù)并執(zhí)行預(yù)定的判斷算法以確定對(duì)應(yīng)的飛機(jī)是否存在參數(shù)異常,如是則將數(shù)據(jù)文件上傳至指定文件夾中,以備人工介入作進(jìn)一步分析;如否,則將文件名稱寫入存檔清單后上傳文件至遠(yuǎn)程數(shù)據(jù)庫(kù)。批量分析環(huán)節(jié)的執(zhí)行邏輯如圖2所示。
完成初步篩選后工程師只需要重點(diǎn)關(guān)注需進(jìn)行人工分析核實(shí)的FDR數(shù)據(jù)文件即可,提高監(jiān)控效率。
1.2 創(chuàng)建工程項(xiàng)目
啟動(dòng)Microsoft Visual Studio 2008,配置開(kāi)發(fā)環(huán)境為Visual Basic,使用Windows窗體應(yīng)用程序模板創(chuàng)建具有Windows用戶界面的應(yīng)用程序項(xiàng)目,選擇.NET Framework版本為3.5。由于需要調(diào)用Excel,故需要在工程項(xiàng)目建立后對(duì)項(xiàng)目添加Microsoft Excel 12.0 Object Library的COM引用,方法是在“添加引用”的“COM”選項(xiàng)卡中找到Microsoft Excel 12.0 Object Library后“確定”,然后
Microsoft Excel 12.0 Object Library
Microsoft Office 12.0 Object Library
Microsoft Visual Basic for Applications Extensibility 5.3等3個(gè)COM引用會(huì)被自動(dòng)添加。然后在窗體代碼窗口導(dǎo)入命名空間:
Imports System.Data
Imports Microsoft.VisualBasic
Imports System.IO
Imports System.Data.SqlClient
Imports Microsoft.Office.Interop
最后,按照?qǐng)D2的執(zhí)行邏輯在設(shè)計(jì)器窗口窗體容器內(nèi)添加Label、ComboBox、OpenFileDialog、Button等控件。
1.3 算法編譯
1.3.1 上、下載文件算法編譯
為防止數(shù)據(jù)丟失,對(duì)FDR數(shù)據(jù)文檔采用二進(jìn)制數(shù)據(jù)流形式存入數(shù)據(jù)庫(kù)varbinary(max)數(shù)據(jù)類型字段中[9]。為操作方便,將數(shù)據(jù)文檔與二進(jìn)制流之間的互轉(zhuǎn)封裝為兩個(gè)函數(shù)以便調(diào)用,其中數(shù)據(jù)文檔轉(zhuǎn)二進(jìn)制流函數(shù)為:
Private Function returnbinarydata(ByVal fileurl As String) As Byte()
'返回流數(shù)據(jù)
If fileurl <> "" Then
Dim myfilestream As New System.IO.FileStream(fileurl,IO.FileMode.Open)
Dim streamdata(myfilestream.Length - 1) As Byte
myfilestream.Read(streamdata,0,myfilestream.Length)
myfilestream.Close()
returnbinarydate = streamdata
Else
returnbinarydata = Nothing
End If
End Function
二進(jìn)制流轉(zhuǎn)數(shù)據(jù)文檔函數(shù)為:
Private Function returnfile(ByVal userdata As Byte(),ByVal filename As String,ByVal savepath As String) As Integer
'返回文檔
If Directory.Exists(savepath) = False Then
Directory.CreateDirectory(savepath)
End If
If userdata.Length > 0 Then
Dim myfilestream As New System.IO.FileStream(savepath & filename,IO.FileMode.Create)
myfilestream.Write(userdata,0,userdata.Length)
myfilestream.Close()
returnfile = 1
Else
returnfile = 0
End If
End Function
采用流數(shù)據(jù)存取的操作方式,避免將數(shù)據(jù)文檔直接存放在網(wǎng)絡(luò)文件夾中因誤修改文件夾路徑等原因造成后期調(diào)取文檔時(shí)出現(xiàn)“找不到文件”的錯(cuò)誤,在數(shù)據(jù)庫(kù)與WinForm客戶端程序之間交互數(shù)據(jù)非常方便。
1.3.2 FDR數(shù)據(jù)解讀算法編譯
首先需打開(kāi)FDR數(shù)據(jù)文件。在Button的Click事件中定義OpenFileDialog屬性并聲明相關(guān)變量。
OpenFileDialog1.FileName = ""
OpenFileDialog1.Filter = "Excel文件(*.csv;*.xlsx)|*.csv;*.XLSX"
OpenFileDialog1.Title = "請(qǐng)選擇擬上傳的文件"
OpenFileDialog1.ShowDialog()
獲取擬上傳文件的文件名和擴(kuò)展名,對(duì)不符合的文件類型做出提醒并終止運(yùn)行。
Dim fileExtension As String
fileExtension=System.IO.Path.GetExtension(OpenFileDialog1.FileName).ToLower()
Dim openfilename As String
openfilename = OpenFileDialog1.FileName
調(diào)用客戶機(jī)系統(tǒng)內(nèi)安裝的Microsoft Excel 2007,并在后臺(tái)完成數(shù)據(jù)解讀:
Dim xlsapp As New Excel.Application
xlsapp.Visible = False
xlsapp.Workbooks.Open(openfilename)
Dim myTable As Excel.Worksheet
myTable = xlsapp.ActiveWorkbook.Sheets.Item(1)
Dim rowscount As Integer
rowscount = myTable.UsedRange.Rows.Count
Dim columncount As Integer
columncount = myTable.UsedRange.Columns.Count
Dim teststr As String
Dim r As Integer
For r = 1 To rowscount
teststr = myTable.Cells.Item(r,1).text
Next
從FDR數(shù)據(jù)文件中獲取到的關(guān)鍵受控參數(shù)有:發(fā)動(dòng)機(jī)轉(zhuǎn)速RPM、進(jìn)氣壓力MAP、燃油流量FF、排氣溫度EGT、氣缸頭溫度CHT、氣壓高度P.ALT等,這些參數(shù)記錄在.csv文件特定列的單元格中。以上算法列出了逐行在第1列中取得所需數(shù)據(jù)的方法,采用同樣的方法可實(shí)現(xiàn)獲取FDR數(shù)據(jù)文件中任意指定列的數(shù)據(jù),即可完成在上傳FDR數(shù)據(jù)文件時(shí)對(duì)數(shù)據(jù)進(jìn)行解讀。
1.3.3 判斷邏輯算法編譯
預(yù)置的發(fā)動(dòng)機(jī)狀況“異?!蹦P陀写筌囏氂?、中轉(zhuǎn)速貧油、過(guò)度調(diào)貧、爆震、氣門卡阻、以及氣門疑似燒蝕等,獲取到RPM、MAP、FF、EGT、CHT、P.ALT等關(guān)鍵參數(shù)后將這些參數(shù)與模型特征值進(jìn)行對(duì)比即可捕捉FDR數(shù)據(jù)中的關(guān)鍵特征點(diǎn)。本文以“大車貧油”為例闡述判斷邏輯算法編譯的方法。首先聲明變量,
Dim RPM As Double
Dim MAP As Double
Dim FF As Double
Dim PALT As Double
當(dāng)?shù)貦C(jī)場(chǎng)的地面氣壓高度在200~1300英尺之間,故設(shè)置判斷閾值為1500英尺,當(dāng)PALT < 1500時(shí)判斷飛機(jī)在地面;此時(shí)推全油門發(fā)動(dòng)機(jī)轉(zhuǎn)速應(yīng)在2650RPM左右,對(duì)應(yīng)的全油門燃油流量FF應(yīng)大于16GPH,否則判斷為大車貧油,將變量isLean賦值為“True”否則為“False”,即完成對(duì)“大車貧油”特征的判斷。
Dim isLean As Boolean
If PALT < 1500 And RPM > 2600 And FF < 16 Then
isLean = True
Else
isLean = False
End If
其它各“異常”特征點(diǎn)的捕捉方法大致相同,均為將飛機(jī)實(shí)際運(yùn)行參數(shù)與特征閾值進(jìn)行組合對(duì)比判斷即可。
對(duì)捕捉到具有“異?!碧卣鞯腇DR數(shù)據(jù)在文件名中加入機(jī)號(hào)和特征描述后轉(zhuǎn)入對(duì)應(yīng)類別的文件夾中由工程師人工介入處理。
2 算例測(cè)試
編譯完成后,按照?qǐng)D2的邏輯對(duì)所編譯出的批量分析軟件進(jìn)行了實(shí)例測(cè)試,如圖3所示。
測(cè)試表明批量分析軟件能夠?qū)崿F(xiàn)對(duì)遠(yuǎn)程網(wǎng)絡(luò)文件夾中FDR數(shù)據(jù)文件進(jìn)行下載、分析和對(duì)存在“異?!钡臄?shù)據(jù)文件自動(dòng)修改文件名,軟件運(yùn)行正常;對(duì)批量分析后的結(jié)果進(jìn)行人工抽檢,分析表明該軟件分析的準(zhǔn)確性達(dá)到了設(shè)計(jì)要求。
3 結(jié)語(yǔ)
數(shù)據(jù)分析類工具有可程序化的特點(diǎn),通過(guò)合理的算法編譯能夠?qū)崿F(xiàn)計(jì)算機(jī)輔助分析,從而在一定程度上解放人力。編譯出的批量分析軟件能夠完成對(duì)大量數(shù)據(jù)的初步篩選工作,使工程師能夠?qū)⒂邢薜木性陉P(guān)鍵數(shù)據(jù)分析上,保證對(duì)飛機(jī)健康狀況監(jiān)控的時(shí)效性,對(duì)更好地保障飛機(jī)系統(tǒng)的可靠性具有重要意義。
參考文獻(xiàn):
[1]王鐵軍.通用航空維修現(xiàn)狀與思考[J].中國(guó)民用航空,2012(5):18-20.
[2]Cirrus Design Corporation.Airplane maintenance manual for the cirrus design SR20 (Reissue B6)[M].Duluth:Cirrus Design Corporation,2014.
[3]Garmin International Inc.Cirrus perspective line maintenance manual[M].Olathe:Garmin International,2013.
[4]EGTrends.EGView reference guide[EB/OL].http://www.egtrends.com/Home_Page.html.
[5]張梅峰.Visual Basic.NET程序設(shè)計(jì)與算法基礎(chǔ)[M].北京:電子工業(yè)出版社,2003.
[6]周元哲.Visual Basic.NET程序設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,2014.
[7]郭亮.基于VB.NET的ADO.NET對(duì)象與數(shù)據(jù)庫(kù)的交互探究[J].數(shù)字通信世界,2015(7):46-46.
[8]陳曼.基于ADO.NET數(shù)據(jù)庫(kù)訪問(wèn)實(shí)例的設(shè)計(jì)實(shí)現(xiàn)與應(yīng)用[J].軟件導(dǎo)刊,2010,9(7):101-103.
[9]劉正龍,羅玉軍.基于ASP.NET在數(shù)據(jù)庫(kù)中存儲(chǔ)二進(jìn)制圖像文件的研究[J].西華師范大學(xué)學(xué)報(bào):自然科學(xué)版,2012,33(4):412-417.
(責(zé)任編輯:陳福時(shí))