馬思聰 哈菁
關(guān)鍵詞:智能判讀;飛參數(shù)據(jù);ADO.NET
0引言
航空發(fā)動機(jī)在工作期間,發(fā)動機(jī)的控制系統(tǒng)為控制、監(jiān)控和管理其運(yùn)行狀態(tài)并會記錄大量的相關(guān)運(yùn)行參數(shù),這些參數(shù)的集合以飛參數(shù)據(jù)文件的形式進(jìn)行保存。發(fā)動機(jī)在試車臺進(jìn)行試驗時,臺架上的數(shù)據(jù)采集系統(tǒng)會記錄這些飛參數(shù)據(jù);發(fā)動機(jī)在裝機(jī)飛行時,飛機(jī)上的飛行記錄系統(tǒng)會對飛參數(shù)據(jù)進(jìn)行記錄。利用針對這些飛參數(shù)據(jù)的分析和研究,相關(guān)人員可以對發(fā)動機(jī)的運(yùn)行狀況得以監(jiān)控發(fā)現(xiàn)潛在問題,并及時對出現(xiàn)的故障原因進(jìn)行排查[1]。飛參數(shù)據(jù)的處理工作不能完全交由人工進(jìn)行處理,不僅是因為人工處理需要更長的耗費(fèi)時間,也是由于數(shù)據(jù)分析處理人員的技術(shù)水平的差異性,飛參數(shù)據(jù)的處理和分析工作時間和正確性會出現(xiàn)不穩(wěn)定性。尤其是伴隨著試驗數(shù)次和試飛時間和架次的持續(xù)增多,航空發(fā)動機(jī)的運(yùn)行時長到達(dá)千萬小時量級的時候,人工處理的方式進(jìn)行發(fā)動機(jī)工作運(yùn)行狀況監(jiān)控分析的工作很難滿足其全面、細(xì)致的需求[2]。在發(fā)動機(jī)裝機(jī)試飛的情形下,人工處理的方式處理的局限性和制約性顯現(xiàn)更加突出,在每架次飛行任務(wù)結(jié)束后需要進(jìn)行快速處理、判讀發(fā)動機(jī)的工作運(yùn)行情況,根據(jù)判讀結(jié)果判斷該發(fā)動機(jī)是否能夠繼續(xù)正常進(jìn)行下一次飛行?;谝陨闲枨蠛颓闆r,亟需一種可以進(jìn)行臺架和試飛超限判讀的飛參數(shù)據(jù)判讀系統(tǒng),由此航空發(fā)動機(jī)智能判讀系統(tǒng)應(yīng)運(yùn)而生。
1相關(guān)技術(shù)
1.1EntityFramework
航空發(fā)動機(jī)智能判讀系統(tǒng)的數(shù)據(jù)庫連接單元就是使用了ADO.NETAPI中的斷開時連接和EntityFramework技術(shù)來實現(xiàn)。
微軟公司在.NetFramework3.5SP1中的訪問數(shù)據(jù)對象API引入了的一個全新的技術(shù)組件EntityFramework(EF),其主要的作用是使用把應(yīng)用程序中業(yè)務(wù)對象的對象模型與關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)對象進(jìn)行直接映射。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫將數(shù)據(jù)看作行與列的集合,而EF則是將數(shù)據(jù)視為強(qiáng)類型對象實體(Entity)的集合。這些實體也可以用于LINQ,EF運(yùn)行時引擎會將開發(fā)人員使用的LINQ查詢語句轉(zhuǎn)換為正確的SQL查詢。這樣就使得它會減少數(shù)據(jù)庫結(jié)構(gòu)與面向?qū)ο缶幊探Y(jié)構(gòu)之間的差異,開發(fā)人員可以不用編寫SQL代碼就能與關(guān)系型數(shù)據(jù)庫交互。相比更新數(shù)據(jù)庫是使用一些SQL查詢來查找、更新,在將其發(fā)送回數(shù)據(jù)庫進(jìn)行處理,使用EF可以簡單地修改對象的屬性,并保存其狀態(tài)。EF運(yùn)行時將自動更新數(shù)據(jù)庫。開發(fā)人員在使用EF的過程中,使用LINQtoEntities(LINQtoObject的一種)是非常實用,利用構(gòu)建一個LINQ查詢并將其直接發(fā)送到數(shù)據(jù)庫引擎進(jìn)行處理,然后再返回強(qiáng)類型的數(shù)據(jù),這就引出了下面的技術(shù)LINQtoObject[3]。
1.2LINQtoObject
LINQ是語言集成查詢的簡稱,它提供了一種簡明的、對稱的、強(qiáng)類型的方式訪問各種各樣的數(shù)據(jù)存儲。從宏觀上看,LINQ可以理解為直接嵌入C#語法的強(qiáng)類型查詢語言。使用LINQ,可以構(gòu)建與數(shù)據(jù)庫SQL查詢類似的表達(dá)式,但LINQ查詢可以用于多種數(shù)據(jù)存儲,甚至與關(guān)系型數(shù)據(jù)庫完全無關(guān)的存儲。
2發(fā)動機(jī)智能判讀系統(tǒng)設(shè)計
2.1系統(tǒng)組成
航空發(fā)動機(jī)智能判讀系統(tǒng)主要由地勤人員專用判據(jù)、技術(shù)保障人員判據(jù)和相關(guān)輔助模塊組成。
2.2系統(tǒng)主要操作流程
3功能模塊設(shè)計
3.1數(shù)據(jù)讀取
數(shù)據(jù)讀取模塊是整個發(fā)動機(jī)智能判讀系統(tǒng)的前提和基礎(chǔ),系統(tǒng)中使用的航空發(fā)動機(jī)飛行參數(shù)數(shù)據(jù)都是通過此模塊把相關(guān)信息讀取解析并保存到內(nèi)存中以便判讀時對相關(guān)參數(shù)的隨時調(diào)用。航空發(fā)動機(jī)飛參數(shù)據(jù)文件由于很多外部客觀因素?zé)o法通過文本編輯器直接讀取的,以至于后期很難對飛參數(shù)據(jù)規(guī)范和有效地對某些參數(shù)進(jìn)行分析、監(jiān)控甚至判讀。
在數(shù)據(jù)讀取模塊執(zhí)行之前,可以自定義選擇性地對數(shù)據(jù)的模擬量參數(shù)和開關(guān)量參數(shù)讀取分別進(jìn)行參數(shù)配置,這樣做的原因正是為了解決飛參數(shù)據(jù)的差異性,使得數(shù)據(jù)能夠正確地讀入并且相關(guān)參數(shù)可以被規(guī)范、方便快捷地得以使用。
在數(shù)據(jù)讀取完成之后,系統(tǒng)可以調(diào)用參數(shù)具體信息模塊完成查看正讀取的飛參數(shù)據(jù)文件內(nèi)保存的所有模擬量和開關(guān)量的參數(shù)信息。模擬量參數(shù)信息包括:組參數(shù)符號、組參數(shù)名稱、參數(shù)單位、最大值、最小值、頻率和類型;開關(guān)量參數(shù)信息包括:開關(guān)參數(shù)符號、開關(guān)參數(shù)名稱、歸屬的組參數(shù)和位置等。
3.2數(shù)據(jù)檢索
數(shù)據(jù)檢索模塊對存儲在判讀系統(tǒng)相關(guān)數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)進(jìn)行瀏覽和管理等操作,模塊由界面上端的數(shù)據(jù)檢索條件和下端的數(shù)據(jù)檢索結(jié)果表格組件組成。每行數(shù)據(jù)信息對應(yīng)的是完成判讀之后的一個架次的飛行參數(shù)數(shù)據(jù)文件,這行信息由如下信息組成:
1)基本信息:飛行日期、飛機(jī)號、飛機(jī)類型、發(fā)動機(jī)號、發(fā)動機(jī)類型、架次等。
2)自定義設(shè)置關(guān)注的統(tǒng)計處理后的參數(shù)數(shù)據(jù)。
3)判讀完成之后的事件判讀結(jié)果記錄。
數(shù)據(jù)檢索模塊可以對保存到數(shù)據(jù)庫的飛行參數(shù)數(shù)據(jù)進(jìn)行如下操作:
1)信息顯示:檢索出的相關(guān)信息顯示。
2)數(shù)據(jù)導(dǎo)出:能夠?qū)z索出的結(jié)果導(dǎo)出CSV或EXCEL格式的文件并保存到本地。
3)數(shù)據(jù)刪除:對判讀完成后的相關(guān)信息和結(jié)果進(jìn)行刪除。
3.3判讀模塊
該模塊式整個智能判讀系統(tǒng)的核心,其主要的功能是判讀發(fā)動機(jī)各項參數(shù)是否滿足給出的判讀條件。如果判讀條件成立,則生成相應(yīng)的故障事件并進(jìn)行記錄。判讀模塊具體分成地勤人員專用判據(jù)和技術(shù)保障人員判據(jù)。
1)地勤人員專用模塊:該模塊實現(xiàn)飛參數(shù)據(jù)自動判讀功能,用于地勤人員判讀架次工作參數(shù)是否正常,是否具備再次飛行的條件。該部分包括對發(fā)動機(jī)起動過程、慢車狀態(tài)、節(jié)流狀態(tài)、中間狀態(tài)、最大狀態(tài)、防喘、消喘、喘振、加速過程、減速過程及空中起動等過程中發(fā)動機(jī)起動參數(shù)、可變幾何面積等參數(shù)的變化是否超過相關(guān)的閾值,若出現(xiàn)超限的情況則生成相關(guān)的故障事件并記錄,同時實現(xiàn)部分的壽命管理功能。
2)技術(shù)保障人員模塊:該模塊基于各種前沿技術(shù)實現(xiàn)數(shù)據(jù)深度判讀和診斷工作,發(fā)現(xiàn)潛在的異常。此模塊主要用于幫助航空發(fā)動機(jī)研制單位技術(shù)保障人員實現(xiàn)對發(fā)動機(jī)的全面監(jiān)控(設(shè)置了使用權(quán)限保障特定人員使用此模塊)。此模塊不但實現(xiàn)了地勤人員模塊中的判讀要求,但其閾值條件要比地勤人員專用模塊的閾值條件更加嚴(yán)格。同時會增加一些新的特殊判據(jù)來更全面地監(jiān)控發(fā)動機(jī)的運(yùn)行狀況。例如,實現(xiàn)發(fā)動機(jī)各項監(jiān)控參數(shù)的趨勢判斷、參數(shù)組合關(guān)系判斷、傳感器工作情況判斷(實現(xiàn)傳感器的視情維修)、發(fā)動機(jī)性能評估和發(fā)動機(jī)壽命及載荷的統(tǒng)計評估等功能。
3.4信息顯示模塊
信息顯示模塊是發(fā)動機(jī)智能判讀系統(tǒng)參數(shù)判讀信息結(jié)果顯示的主界面,界面表格可以顯示如下信息:
1)事件名稱:表示在判讀模塊中進(jìn)行判讀的各判讀事件具體的判讀事件的名稱,判讀事件名稱可以通過系統(tǒng)配置文件進(jìn)行可視化的配置修改。
2)告警識別:告警識別有4種顏色進(jìn)行顯示。綠色表示正常,表示事件未生成或未發(fā)生;紅色表示異常,事情生成或發(fā)生;黃色表示非異常信息生成,用于提醒;白色表示為事件記錄條目,未涉及判讀事件。
3)記錄信息:可以針對不同的判讀事件記錄事件相關(guān)的不同參數(shù)信息??梢栽趯?yīng)的事件條目上單擊記錄信息按鍵打開一個新的窗口,窗口以文本、表格或可視化圖形的形式方便地對判讀記錄信息進(jìn)行展示。
4)專家建議檢查或解決方法:這里會針對不同的判讀事件給出相應(yīng)的專家建議和故障檢查或解決的方法,針對不同科目和判據(jù)建立不同的專家知識庫并可對這些專家建議和解決方法進(jìn)行更新和修改。
5)判讀結(jié)果:在界面的最下方可以顯示這次判讀的最終結(jié)果和信息統(tǒng)計。
3.5導(dǎo)出和統(tǒng)計模塊
導(dǎo)出和統(tǒng)計模塊式經(jīng)過判讀模塊執(zhí)行之后對判讀結(jié)果的重新利用。導(dǎo)出模塊可以對判讀出的結(jié)果導(dǎo)出成預(yù)定格式的Excel文件;統(tǒng)計模塊則可以導(dǎo)出針對此判讀的飛參數(shù)據(jù)和與之對應(yīng)的判讀結(jié)果進(jìn)行履歷本信息的統(tǒng)計,履歷本信息統(tǒng)計的格式以Excel的格式給出。
4系統(tǒng)實現(xiàn)
發(fā)動機(jī)智能判讀系統(tǒng)基于C/S架構(gòu)設(shè)計。整個數(shù)據(jù)庫系統(tǒng)采用C#開發(fā),后臺數(shù)據(jù)庫采用的是MSSQLServer數(shù)據(jù)庫。
4.1界面實現(xiàn)
發(fā)動機(jī)智能判讀系統(tǒng)的主要功能都在主界面里進(jìn)行操作進(jìn)行,其設(shè)計實現(xiàn)如圖2所示。
4.2數(shù)據(jù)庫訪問單元實現(xiàn)
發(fā)動機(jī)智能判讀系統(tǒng)是需要連接其相關(guān)的數(shù)據(jù)庫來進(jìn)行數(shù)據(jù)的存儲的,這些數(shù)據(jù)為今后判讀事件的優(yōu)化和飛行架次信息的追溯提供了的數(shù)據(jù)基礎(chǔ)。系統(tǒng)的數(shù)據(jù)庫訪問單元是基于EntityFramework設(shè)計實現(xiàn)的。和其他的ADO.NET數(shù)據(jù)庫交互方式一樣,En?tityFramework(EF)使用一個ADO.NET數(shù)據(jù)提供程序來與數(shù)據(jù)存儲進(jìn)行交互。數(shù)據(jù)庫中設(shè)計的表都被EFAPI映射成客戶端的實體,而作為EF的一部分的對象服務(wù)負(fù)責(zé)對這些客戶端實體(也就是數(shù)據(jù)庫中的表)進(jìn)行控制;EF的另一部分實體客戶端層則負(fù)責(zé)利用ADO.NET數(shù)據(jù)提供程序來建立系統(tǒng)與所連接數(shù)據(jù)庫的連接,隨后把數(shù)據(jù)庫的數(shù)據(jù)表映射到實體并根據(jù)實體的具體狀態(tài)形式和編寫的LINQ查詢來生成數(shù)據(jù)庫能直接運(yùn)行的SQL語句[4]。
傳統(tǒng)類型的數(shù)據(jù)庫系統(tǒng)當(dāng)訪問和操作數(shù)據(jù)庫時通過編寫程序使用相關(guān)的數(shù)據(jù)庫驅(qū)動訪問接口API建立與數(shù)據(jù)庫的連接,通過提交編寫的SQL語句提交給數(shù)據(jù)庫來完成于數(shù)據(jù)庫的交互和運(yùn)行操作。發(fā)動機(jī)智能判讀系統(tǒng)則與此截然不同,其采用了LINQ和EF相結(jié)合的技術(shù)。整個系統(tǒng)訪問數(shù)據(jù)庫并與其交互的實現(xiàn)設(shè)計流程大致如下:程序設(shè)計實現(xiàn)的時候,不會直接通過編寫SQL語句的方式與數(shù)據(jù)庫進(jìn)行交互,而是根據(jù)業(yè)務(wù)的要求把編寫的LINQ命令被傳遞給對象服務(wù),對象服務(wù)將這些LINQ命令轉(zhuǎn)換為實體客戶端可以理解的命令樹,之后實體客戶端把命令樹轉(zhuǎn)換成數(shù)據(jù)庫能識別的SQL語句,物理數(shù)據(jù)庫再執(zhí)行ADO.NET傳過來的SQL語句,之后程序中根據(jù)數(shù)據(jù)庫的類型提供不同的數(shù)據(jù)提供程序(程序中編寫的數(shù)據(jù)庫數(shù)據(jù)讀取器)生成相應(yīng)的結(jié)果集并向上傳遞,并逐層通過不同實體數(shù)據(jù)讀取器的形式傳遞到對象服務(wù),最后對象服務(wù)把實體數(shù)據(jù)的枚舉傳遞到程序調(diào)用端的代碼。其過程如圖3所示。
5結(jié)束語
發(fā)動機(jī)智能判讀系統(tǒng)主要通過收集影響發(fā)動機(jī)性能的監(jiān)控飛參數(shù)據(jù)以實現(xiàn)對發(fā)動機(jī)運(yùn)行狀態(tài)快速的監(jiān)控、分析和判讀,進(jìn)而判斷其是否可以進(jìn)行下次的架次飛行,實現(xiàn)對飛參數(shù)據(jù)有效的診斷分析。為提高發(fā)動機(jī)故障判讀處理效率、預(yù)防重大故障發(fā)生、確保發(fā)動機(jī)使用安全起到了其應(yīng)有的作用。