高芬莉,耿朝陽(yáng),劉白林
(西安工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,西安 710021)
近年來(lái)專家系統(tǒng)技術(shù)逐漸成熟,廣泛應(yīng)用在工程、醫(yī)用、軍事等各種領(lǐng)域,并且已經(jīng)或正在產(chǎn)生巨大的經(jīng)濟(jì)效益以及社會(huì)影響。故障診斷技術(shù)的發(fā)展已經(jīng)歷30多年,它是一種綜合性的多學(xué)科交叉引入的全面技術(shù)[1]?;趯<蚁到y(tǒng)的故障診斷方法是智能診斷技術(shù)中研究與應(yīng)用較廣泛的方法,同時(shí)也是故障診斷領(lǐng)域中最重要的發(fā)展方向之一[2]。常見(jiàn)的武器故障診斷專家系統(tǒng)大多運(yùn)行在PC端,體型龐大、電池容量較小導(dǎo)致其自由性較差,不易攜帶,難以滿足長(zhǎng)期在戶外工作人員的需求。隨著移動(dòng)互聯(lián)網(wǎng)以及移動(dòng)設(shè)備的不斷普及與發(fā)展,智能終端的開(kāi)發(fā)主要以Android與IOS系統(tǒng)為主流,Android憑借開(kāi)放性及低廉的價(jià)格,占據(jù)了市場(chǎng)上更大的份額[3]。Android技術(shù)和移動(dòng)互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展為解決移動(dòng)性等問(wèn)題提供了一個(gè)相對(duì)完美的解決方案[4]。
鑒于此,有關(guān)移動(dòng)終端故障診斷專家系統(tǒng)的研究也隨之增多,例如基于故障樹(shù)分析法的飛機(jī)航電系統(tǒng)故障診斷系統(tǒng)[5]、發(fā)動(dòng)機(jī)移動(dòng)故障診斷系統(tǒng)及基于移動(dòng)終端的汽車診斷系統(tǒng)[6]、移動(dòng)端車輛監(jiān)控和診斷研究等,此類系統(tǒng)大多涉及航空、工業(yè)及汽車等領(lǐng)域,研究方案及技術(shù)路線已經(jīng)較為成熟。但針對(duì)大型武器系統(tǒng)的移動(dòng)端故障診斷的研究仍處于研發(fā)與測(cè)試階段,診斷效果不理想,仍需進(jìn)行深層次的理論及實(shí)踐研究。針對(duì)高技術(shù)條件下局部戰(zhàn)爭(zhēng)的特點(diǎn)及部隊(duì)裝備的實(shí)際情況,武器故障診斷專家系統(tǒng)應(yīng)向更加小巧、輕便、智能、可靠等方向發(fā)展[7]。文中擬以Android移動(dòng)設(shè)備作為開(kāi)發(fā)平臺(tái)設(shè)計(jì)武器故障診斷專家系統(tǒng),為可移動(dòng)的解決武器裝備故障提供可解決的措施,提高故障解決的效率。
圖1為故障診斷專家系統(tǒng)的基本組成結(jié)構(gòu)及內(nèi)部關(guān)系。人機(jī)交互界面為專家系統(tǒng)與用戶進(jìn)行對(duì)話的界面,用于完成系統(tǒng)的輸入和輸出工作;知識(shí)庫(kù)可實(shí)現(xiàn)對(duì)故障診斷知識(shí)和數(shù)據(jù)的增刪改及檢查等操作;推理機(jī)模塊負(fù)責(zé)運(yùn)用診斷信息和相關(guān)知識(shí)完成診斷任務(wù);解釋機(jī)構(gòu)向用戶提供診斷結(jié)果,幫助用戶了解診斷對(duì)象診斷過(guò)程。數(shù)據(jù)庫(kù)用來(lái)存放推理的初始條件、中間數(shù)據(jù)和最終結(jié)果,是推理機(jī)必須的數(shù)據(jù)存儲(chǔ)空間,由數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行管理。將專家系統(tǒng)應(yīng)用到故障診斷當(dāng)中,可以利用領(lǐng)域知識(shí)和專家經(jīng)驗(yàn)提高故障診斷的效率[8]。
文中采用故障樹(shù)分析法[9]實(shí)現(xiàn)某武器的故障診斷專家系統(tǒng),從大系統(tǒng)的故障現(xiàn)象著手由上而下逐漸細(xì)化,隔離縮小故障可疑范圍,最終定位故障源。
基于Android平臺(tái)的故障診斷專家系統(tǒng)需要實(shí)現(xiàn)以下主要功能:
1)操作人員通過(guò)連接網(wǎng)絡(luò)使用故障診斷專家系統(tǒng),從設(shè)備故障現(xiàn)象入手,利用專家系統(tǒng)推理判斷功能,提供專家級(jí)的檢測(cè)維修知識(shí),指導(dǎo)維修人員正確選用各種診斷手段,依據(jù)最佳檢測(cè)過(guò)程,預(yù)測(cè)故障點(diǎn)或進(jìn)一步檢測(cè)點(diǎn);
2)檢測(cè)過(guò)程中,向維修人員提供各類咨詢,迅速定位故障;
3)確定故障源之后,提供相應(yīng)解決方案。
圖1 故障診斷專家系統(tǒng)的基本組成結(jié)構(gòu)Fig.1 Basic structure of the fault diagnosis expert system
基于C/S架構(gòu)良好的交互性、響應(yīng)速度快等特點(diǎn),文中采用C/S架構(gòu)來(lái)構(gòu)建系統(tǒng)框架,如圖2所示。用戶使用Android客戶端通過(guò)互聯(lián)網(wǎng)(Internet)訪問(wèn)故障診斷專家系統(tǒng)的后臺(tái)服務(wù)器,服務(wù)器訪問(wèn)后臺(tái)數(shù)據(jù)庫(kù)后,將結(jié)果返回Android客戶端操作界面。
圖2 系統(tǒng)體系架構(gòu)圖Fig.2 System architecture diagram
開(kāi)發(fā)環(huán)境為Android Studio,以某武器故障診斷為例,對(duì)基于Android平臺(tái)的武器故障診斷專家系統(tǒng)進(jìn)行軟件設(shè)計(jì)。由于武器裝備結(jié)構(gòu)復(fù)雜,在發(fā)生故障時(shí),很難直接準(zhǔn)確尋找故障源,因此需要將復(fù)雜的裝備結(jié)構(gòu)按照其組成結(jié)構(gòu)分解成多個(gè)子系統(tǒng),子系統(tǒng)分解為單體,再將單體往下層層細(xì)分,以上劃分呈現(xiàn)樹(shù)狀結(jié)構(gòu),樹(shù)狀結(jié)構(gòu)的最底層末端是元件或器件。在進(jìn)行故障檢測(cè)時(shí),從設(shè)備的機(jī)理和技術(shù)原理出發(fā)由表及里,由大到小,通過(guò)反復(fù)檢查,最終確定故障源。這種方法雖然略顯繁瑣,但可靠準(zhǔn)確。
結(jié)合某武器裝備的結(jié)構(gòu)組成,為了讓相對(duì)復(fù)雜的知識(shí)庫(kù)更易被理解,并且提高推理以及故障診斷的效率,在建立知識(shí)庫(kù)時(shí),將設(shè)備的故障信息與推理的規(guī)則分開(kāi),分別建立故障信息表和規(guī)則表,兩個(gè)表項(xiàng)之間通過(guò)設(shè)備的ID號(hào)相連接。
故障信息表包含故障診斷專家系統(tǒng)中的設(shè)備、設(shè)備節(jié)點(diǎn)號(hào)、故障信息、故障原因及故障解決措施等診斷對(duì)象的參數(shù)信息,見(jiàn)表1。
表1 故障信息表Tab.1 Fault information table
規(guī)則表描述了整個(gè)故障樹(shù)的層級(jí)關(guān)系,包含當(dāng)前節(jié)點(diǎn)的參數(shù)信息以及相對(duì)應(yīng)的父節(jié)點(diǎn)號(hào)、測(cè)試規(guī)則、測(cè)試方式、系統(tǒng)號(hào)、測(cè)試名稱以及測(cè)試方案,見(jiàn)表2。故障樹(shù)依靠規(guī)則表中的節(jié)點(diǎn)號(hào)及父節(jié)點(diǎn)號(hào)之間的關(guān)系以及層次號(hào)構(gòu)建。
表2 規(guī)則表Tab.2 Rule table
推理機(jī)在知識(shí)庫(kù)的基礎(chǔ)上進(jìn)行推導(dǎo)[10],本文采用的知識(shí)表示方式是“產(chǎn)生式規(guī)則[11]”,主要形式為“IF-THEN”。在進(jìn)行故障診斷時(shí),根據(jù)用戶選擇的故障現(xiàn)象,模擬該領(lǐng)域?qū)<医鉀Q問(wèn)題時(shí)的思維過(guò)程,去知識(shí)庫(kù)中查找對(duì)應(yīng)的測(cè)試規(guī)則,采用正向推理的方式對(duì)該故障進(jìn)行推理,求解故障源。
服務(wù)器端為客戶端提供服務(wù),客戶端僅負(fù)責(zé)數(shù)據(jù)的收發(fā)及顯示,數(shù)據(jù)處理工作均在服務(wù)端。文中采用Mysql數(shù)據(jù)庫(kù)作為后臺(tái)數(shù)據(jù)庫(kù),使用第三方的類庫(kù)Okhttp來(lái)處理相關(guān)的網(wǎng)絡(luò)請(qǐng)求。為了提升代碼的復(fù)用性,將Okhttp有關(guān)請(qǐng)求操作均封裝在OkhttpUtils類中。封裝過(guò)后,對(duì)于一般的get請(qǐng)求行為,客戶端希望直接給一個(gè)URL地址,在其回調(diào)函數(shù)中,直接對(duì)服務(wù)器返回的數(shù)據(jù)做相應(yīng)的處理。
客戶端主要由3部分功能模塊構(gòu)成:故障診斷模塊、知識(shí)庫(kù)維護(hù)模塊和用戶管理模塊,系統(tǒng)功能模塊如圖3所示。
圖3 系統(tǒng)功能模塊圖Fig.3 System function module diagram
故障診斷模塊是故障診斷專家系統(tǒng)的主要功能。在進(jìn)行故障診斷時(shí),按照經(jīng)驗(yàn)對(duì)故障現(xiàn)象進(jìn)行判斷,若不能直接定位故障源,需根據(jù)當(dāng)前故障癥狀進(jìn)行故障范圍分離,用戶根據(jù)提示的故障范圍選擇一個(gè)故障癥狀。若故障癥狀不明顯,直接進(jìn)行下一步故障分離,系統(tǒng)提示進(jìn)行檢測(cè),通過(guò)檢測(cè)采集有關(guān)故障癥狀,根據(jù)專家知識(shí)進(jìn)行決策判斷故障范圍的分離。若分離確定的故障范圍是系統(tǒng)要求的故障源,則進(jìn)入解釋推理過(guò)程和提交維修措施。若不能達(dá)到故障診斷要求的分離深度,則反復(fù)進(jìn)行此分離過(guò)程。診斷推理過(guò)程如圖4所示。
圖4 故障診斷的診斷推理過(guò)程Fig.4 Diagnosis and reasoning process of fault diagnosis
知識(shí)庫(kù)維護(hù)模塊負(fù)責(zé)維護(hù)知識(shí)庫(kù)中的知識(shí)。在對(duì)知識(shí)庫(kù)進(jìn)行維護(hù)時(shí),需要保證數(shù)據(jù)來(lái)源的準(zhǔn)確性,因此此操作需要由相關(guān)的領(lǐng)域?qū)<摇⒅R(shí)工程師以及系統(tǒng)的管理員共同完成。
用戶管理主要是為管理不同類型用戶的操作權(quán)限,在登陸系統(tǒng)時(shí),需要提供正確的用戶名及密碼才可進(jìn)入系統(tǒng)。
現(xiàn)代大型的武器系統(tǒng)結(jié)構(gòu)復(fù)雜,一般均由若干個(gè)分系統(tǒng)組成,各個(gè)系統(tǒng)的結(jié)構(gòu)、功能各不相同,各個(gè)分系統(tǒng)和子系統(tǒng)之間又相互聯(lián)系、互相耦合。因其造價(jià)昂貴及任務(wù)使命的特殊性,系統(tǒng)的任何故障均可能導(dǎo)致不可預(yù)料的后果。以某型號(hào)武器系統(tǒng)為例,該系統(tǒng)包含方向指揮車系統(tǒng)、防空通用指揮車系統(tǒng)及偵查車系統(tǒng)等分系統(tǒng),各個(gè)分系統(tǒng)之間錯(cuò)綜復(fù)雜,協(xié)調(diào)進(jìn)行作戰(zhàn)指揮、互聯(lián)互通、輔助決策,共同完成防空作戰(zhàn)任務(wù)。雖然各個(gè)分系統(tǒng)的功能和作用各不相同,但其結(jié)構(gòu)構(gòu)成相似,在進(jìn)行故障檢測(cè)時(shí)需要解決的問(wèn)題相似,因此又具有共性及典型性。
文中以某型號(hào)武器系統(tǒng)為例,實(shí)現(xiàn)了基于Android平臺(tái)的武器故障診斷專家系統(tǒng)。該故障診斷專家系統(tǒng)利用良好的人機(jī)交互界面協(xié)助操作人員完成對(duì)武器裝備的故障診斷。采用圖表、視頻及文字等多種表達(dá)方式以便于使用者在故障診斷過(guò)程中快速定位至故障源,并給出詳細(xì)的故障解決措施。在進(jìn)行故障診斷與推理時(shí),采用故障分離樹(shù)的顯示形式,對(duì)所描述的事件之間的邏輯關(guān)系進(jìn)行深入的定性及定量分析。故障診斷的推理和結(jié)果界面如圖5所示。
圖5 某武器故障診斷專家系統(tǒng)推理界面Fig.5 Reasoning Interface of a weapon fault diagnosis expert system
傳統(tǒng)的武器故障診斷專家系統(tǒng)基本均以單機(jī)模式實(shí)現(xiàn),隨著診斷對(duì)象的增多及其分布的廣泛性,知識(shí)庫(kù)會(huì)愈發(fā)龐大,造成知識(shí)管理及擴(kuò)展困難,不能及時(shí)獲取最新的領(lǐng)域知識(shí),很難實(shí)現(xiàn)知識(shí)共享。且單機(jī)模式的故障診斷不能實(shí)現(xiàn)多個(gè)專家系統(tǒng)協(xié)同工作,重用率極低。相較而言,文中基于移動(dòng)設(shè)備的故障診斷專家系統(tǒng)可以借助移動(dòng)互聯(lián)網(wǎng)技術(shù)快速實(shí)時(shí)的更新知識(shí)庫(kù),保障了知識(shí)庫(kù)的先進(jìn)性,并且可實(shí)現(xiàn)多個(gè)專家系統(tǒng)以及其他軍事保障系統(tǒng)之間的互聯(lián)互通,提高故障診斷的準(zhǔn)確性。
文中設(shè)計(jì)并實(shí)現(xiàn)了基于Android平臺(tái)的武器故障診斷專家系統(tǒng),通過(guò)Okhttp框架實(shí)現(xiàn)Android系統(tǒng)客戶端與服務(wù)器之間的通信,使用Mysql數(shù)據(jù)庫(kù)搭建專家系統(tǒng)知識(shí)庫(kù),以某武器為例對(duì)該系統(tǒng)進(jìn)行系統(tǒng)測(cè)試及使用。測(cè)試結(jié)果表明,系統(tǒng)設(shè)計(jì)方案可行,人機(jī)界面交互性強(qiáng)、操作簡(jiǎn)單,并采用圖片、圖表、音頻以及視頻等多媒體技術(shù)相結(jié)合的顯示方式,保障故障診斷的準(zhǔn)確性,提高故障診斷系統(tǒng)的安全性能。
文中故障診斷系統(tǒng)可打破傳統(tǒng)PC端診斷模式的局限性與地域性限制,可讓?xiě)敉夤ぷ魅藛T隨時(shí)隨地訪問(wèn)知識(shí)庫(kù),對(duì)武器裝備進(jìn)行故障診斷操作,提高了故障診斷的實(shí)時(shí)性和便利性。該成果對(duì)未來(lái)的武器裝備領(lǐng)域的故障診斷專家系統(tǒng)的發(fā)展及研究有重要意義,并適合推廣其他領(lǐng)域的故障診斷。