范會敏 陳 棚 張 萌
(西安工業(yè)大學(xué)計算機科學(xué)與工程學(xué)院 陜西 西安 710032)
專家系統(tǒng)產(chǎn)生于20 世紀(jì)60 年代中期,經(jīng)過多年的科學(xué)研究,理論和技術(shù)越來越成熟,其應(yīng)用已經(jīng)滲透到了許多領(lǐng)域,成為人工智能開始走向?qū)嵱没臉?biāo)志[1]。專家系統(tǒng)在故障診斷領(lǐng)域的應(yīng)用非常廣泛,長期以來,廣泛的應(yīng)用在航空、農(nóng)業(yè)、醫(yī)療、電力、化工、石油、船舶、等領(lǐng)域,故障診斷技術(shù)與專家系統(tǒng)相結(jié)合,使工程的安全性與可靠性得到保證[2、3]。
但是傳統(tǒng)的專家系統(tǒng)往往都在PC 機上開發(fā),缺乏便攜性,難以滿足在外工作人員的需求,這都顯示了傳統(tǒng)專家系統(tǒng)的局限性。近年來,Android 技術(shù)和移動互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展為解決移動性、語言差異、平臺差異所帶來的高代價系統(tǒng)集成提出了一個很好的解決方案。Android 是首個為移動終端打造的真正開發(fā)和完整的移動軟件平臺,Android 的特點是其開放性,軟件開發(fā)人員可以自由開發(fā)出優(yōu)秀的軟件。移動互聯(lián)網(wǎng)技術(shù)的快速發(fā)展使得Android 設(shè)備能更快、更方便地訪問互聯(lián)網(wǎng)[4]。基于Android 的專家系統(tǒng)是專家系統(tǒng)新的發(fā)展方向,是專家系統(tǒng)廣受歡迎的模式。
專家系統(tǒng)指的是在某一個特殊的領(lǐng)域內(nèi),以人類專家的水平去解決該領(lǐng)域中的困難問題的計算機程序。這個程序系統(tǒng)內(nèi)部具有大量專家的領(lǐng)域知識與經(jīng)驗,它能利用人類專家可用的知識和推理方法來解決這些問題,并且得到與專家相同的結(jié)論[1]。
專家系統(tǒng)與傳統(tǒng)應(yīng)用程序最根本的區(qū)別是:專家系統(tǒng)處理知識,傳統(tǒng)程序處理數(shù)據(jù)。一個最基本的專家系統(tǒng)應(yīng)由知識庫、數(shù)據(jù)庫、推理機、解釋機構(gòu)、知識獲取機構(gòu)和人機接口6 個部分組成,如圖1 所示。
圖1 專家系統(tǒng)結(jié)構(gòu)
專家系統(tǒng)是人工智能從理論研究向?qū)嶋H應(yīng)用的一個轉(zhuǎn)折點,它作為人工智能的一個分支,在人工智能商品化中取得了很大成功,一方面因為專家系統(tǒng)是能滿足某種實際需要的應(yīng)用程序,另一方面因為它是可以實現(xiàn)的[5]。在很多領(lǐng)域,如化學(xué)、地質(zhì)、醫(yī)療診斷等領(lǐng)域,專家系統(tǒng)的質(zhì)量已經(jīng)達到了很高的水平,發(fā)揮了很大的作用,在為人類專家與用戶之間的良好信息處理和溝通媒介,促進了特定領(lǐng)域中理論形成和應(yīng)用的發(fā)展。
故障診斷是一個系統(tǒng)內(nèi)的某一部件結(jié)構(gòu)失效的準(zhǔn)確診斷過程。診斷的最終目標(biāo)是充分確認造成故障的最終原因,以便能很好地排除其它故障[6]。
故障診斷技術(shù)運用電子技術(shù)、信息技術(shù)、信號分析技術(shù)以及計算機技術(shù)等先進手段,獲取設(shè)備運行過程中各參數(shù)的變化信息,分析其特征,如果發(fā)現(xiàn)設(shè)備當(dāng)前未處于正常狀態(tài),則認為其發(fā)生故障,并進一步檢查出故障的部位、類型、及嚴(yán)重程度,最后給出診斷結(jié)論[7、8]。故障診斷技術(shù)是典型的多學(xué)科相互交叉滲透的綜合性技術(shù)。
故障診斷技術(shù)與專家系統(tǒng)相結(jié)合,就構(gòu)成故障診斷型專家系統(tǒng)。
移動互聯(lián)網(wǎng)是當(dāng)前信息技術(shù)領(lǐng)域最熱門的話題之一,它體現(xiàn)了“無處不在的網(wǎng)絡(luò)、無所不能的業(yè)務(wù)”的思想,正在改變著人們的生活方式和工作方式。移動互聯(lián)網(wǎng)能讓用戶在移動中通過移動設(shè)備隨時、隨地訪問Internet、獲取信息,進行商務(wù)、娛樂等各種網(wǎng)絡(luò)服務(wù)[9]。自從中國3G 網(wǎng)絡(luò)的投入運營,iPhone、Android 等智能手機終端以及應(yīng)用平臺的出現(xiàn),使得移動互聯(lián)網(wǎng)得以如此迅猛地發(fā)展。
移動互聯(lián)網(wǎng)終端平臺的競爭正從封閉、一家掌控式的平臺向開放式創(chuàng)新、產(chǎn)業(yè)協(xié)同的平臺發(fā)展,平臺的領(lǐng)導(dǎo)者將真正成為產(chǎn)業(yè)鏈的領(lǐng)導(dǎo)者,不同平臺的競爭將演化為不同產(chǎn)業(yè)生態(tài)體系的競爭。
Android,是一個以Linux 為基礎(chǔ)的開放源代碼移動設(shè)備操作系統(tǒng),主要用于移動設(shè)備,由Google 成立的OHA(開放手持設(shè)備聯(lián)盟)持續(xù)領(lǐng)導(dǎo)與開發(fā)中。在優(yōu)勢方面,Android 平臺首先就是其開發(fā)性,開發(fā)的平臺允許任何移動終端廠商加入到Android 聯(lián)盟中來[10]。顯著的開放性可以使其擁有更多的開發(fā)者,隨著用戶和應(yīng)用的日益豐富,一個嶄新的平臺也將很快走向成熟。
在移動互聯(lián)網(wǎng)背景下,主流的移動方案主要有3 種,分別是基于B/S 構(gòu)架模式的Web 應(yīng)用、原生客戶端應(yīng)用和移動Web 應(yīng)用。
Web 應(yīng)用是通過使用Website 和Web 瀏覽器技術(shù),跨越網(wǎng)絡(luò)完成一個或者多個任務(wù)的應(yīng)用程序,通過基于B/S 架構(gòu)模式實現(xiàn)。但它的缺點明顯,無法使用移動設(shè)備提供的高級硬件功能,如攝像頭。
移動Web 應(yīng)用是在原生客戶端中嵌入基于前端技術(shù)構(gòu)建的HTML 頁面視圖,能夠通過移動設(shè)備中的瀏覽器進行查看和操作,最主要的目的是為了解決跨平臺訪問信息問題。移動Web 應(yīng)用一般通過HTML5、CSS3、JavaScript 或前端框架技術(shù)來構(gòu)造頁面視圖,可以被客戶端內(nèi)置的WebKit 瀏覽器解析[11]。缺點是受限于瀏覽器引擎的處理能力,部分類型的操作可能需要與Web 端通信,動畫、圖形內(nèi)容因需要緩沖而時常存在響應(yīng)延遲。
原生客戶端應(yīng)用和Web 應(yīng)用正好相反,原生應(yīng)用程序被安裝在Android 手機上,它可以使用手機硬件功能,而且采用Java 語言編寫,能夠本地精細化定制,對用戶的操控響應(yīng)靈敏。
本文采用原生客戶端開發(fā)模式設(shè)計和實現(xiàn)了一款應(yīng)用,該應(yīng)用基于Android 平臺,以故障診斷專家系統(tǒng)為主題,通過Http 請求實現(xiàn)客戶端和服務(wù)器之間的信息交互,從而讓用戶快速獲取相關(guān)數(shù)據(jù)。
對故障設(shè)備能夠進行正確的診斷,用戶通過智能手機輸入故障設(shè)備的特征,系統(tǒng)通過推理后給出輸入故障的故障原因,并給出故障處理意見。
通過Android 智能手機,知識工程師可以向知識庫添加新的知識。
設(shè)計系統(tǒng)要充分考慮故障知識的特點,運用適當(dāng)?shù)谋硎痉椒ū硎竟收现R。根據(jù)故障型專家系統(tǒng)特點,采用產(chǎn)生式表示法和框架表示法進行表示故障知識。
選擇框架表示結(jié)構(gòu)性知識,選擇產(chǎn)生式表示法表示診斷性過程知識。
故障診斷專家系統(tǒng)的設(shè)計內(nèi)容主要包括故障知識庫、推理機、知識獲取機構(gòu)以及人機交互界面。
本系統(tǒng)采用C/S 結(jié)構(gòu),因為C/S 結(jié)構(gòu)最大的優(yōu)勢是,交互性好,數(shù)據(jù)安全性高。Android 客戶端通過移動互聯(lián)網(wǎng)訪問專家系統(tǒng)服務(wù)器,如果需要數(shù)據(jù)訪問,則訪問后臺數(shù)據(jù)庫,如圖2 所示。
圖2 系統(tǒng)體系架構(gòu)圖
系統(tǒng)由四個部分構(gòu)成:故障診斷、知識庫管理、操作指南和用戶管理。故障診斷是使用專家系統(tǒng)進行故障診斷的入口,在故障診斷中可以輸入故障現(xiàn)象進行故障診斷,知識庫管理是向?qū)<蚁到y(tǒng)中添加知識的入口,維護知識庫時通過該入口進入,操作指南是對專家系統(tǒng)的功能說明以及各種操作幫助信息,操作指南并不是可有可無的部分,它的詳細程度有時直接影響到操作者操作專家系統(tǒng)的準(zhǔn)確度甚至是操作信心,用戶管理是為管理用戶權(quán)限而設(shè),因為不同的權(quán)限使用專家系統(tǒng)的功能可能不同,有的用戶可能沒有添加知識的權(quán)限,當(dāng)他用沒有添加知識的權(quán)限登錄專家系統(tǒng)時,發(fā)現(xiàn)需要使用知識添加功能,則可以使用重新登錄界面更換用戶名登錄,重新登錄為更換用戶登錄提供了方便。系統(tǒng)功能模塊圖如圖3 所示。
圖3 系統(tǒng)功能模塊圖
3.3.1 知識庫設(shè)計
故障診斷專家系統(tǒng)知識庫的核心是專家知識。知識庫中的知識的完整性很大程度上決定了專家系統(tǒng)的能力,所以專家系統(tǒng)建立的關(guān)鍵是知識庫的建立。由于故障診斷知識庫比較復(fù)雜,所以將知識庫建立成知識庫表,各表之間通過關(guān)鍵字建立聯(lián)系。
特別說明的是專家系統(tǒng)有使用權(quán)限,不同權(quán)限的人員只能在自己的權(quán)限范圍內(nèi)操作,有利于區(qū)分專家系統(tǒng)操作人員的職能。所以在各事實庫表之外,還有一個獨立的用戶權(quán)限表。
3.3.2 推理機設(shè)計
推理機是專家系統(tǒng)的靈魂。推理機就是根據(jù)一定的規(guī)則從已有條件推出結(jié)論的過程。它根據(jù)用戶權(quán)限,從數(shù)據(jù)庫中提取用戶條件,在知識庫中選擇合適的規(guī)則,找到合適的故障推理應(yīng)根據(jù)用戶當(dāng)前輸入的故障特征,利用知識庫中的知識,模擬該領(lǐng)域?qū)<业乃季S過程,按照一定的推理規(guī)則和策略進行推理,選擇知識庫中對當(dāng)前問題可用的知識進行推理,求解出故障原因。推理機是在知識庫的基礎(chǔ)上推導(dǎo)的,推理方法才有產(chǎn)生式規(guī)則,推理方法包括正向推理,逆向推理和混合推理。本系統(tǒng)采用雙向推理技術(shù),采用正向推理和逆向推理相結(jié)合的方法。先進行正向推理,如果沒有得出結(jié)果或者需要進一步推導(dǎo),則進行逆向推理。
3.3.3 服務(wù)器端設(shè)計
服務(wù)器端采用Servlet 響應(yīng)客戶請求,后臺數(shù)據(jù)庫采用JDBC 訪問數(shù)據(jù)庫。
Android 集成了Apache 的Http client 模塊,這樣使得HTTP 訪問網(wǎng)絡(luò)成為可能,本文采用HTTP 訪問網(wǎng)絡(luò)。HTTP 是請求/響應(yīng)的一種機制,定義一個工具類HttpUtil來獲得HttpRequest 對象和HttpResponse 對象,以及發(fā)送GET 和POST 請求獲得返回Response 信息的方法。
后臺服務(wù)器實現(xiàn)采用JDBC 訪問后臺數(shù)據(jù)庫,Servlet響應(yīng)HttpRequest 請求,并返回響應(yīng)結(jié)果。
3.3.4 系統(tǒng)功能實現(xiàn)
火力電站機組設(shè)備繁多、結(jié)構(gòu)復(fù)雜,大多數(shù)設(shè)備處于高溫高壓的工作環(huán)境,故障發(fā)生率高,一旦發(fā)生故障,后果都很嚴(yán)重。機組設(shè)備的基本結(jié)構(gòu)、規(guī)格型號及參數(shù)各不相同,這些因素常常綜合作用,影響機組發(fā)生故障時的表象,相同性質(zhì)的故障在不同電站、不同機組上,其外在故障表象可能完全不同,加大了問題的迷惑性,這時候?qū)<业慕?jīng)驗和知識就顯得特別珍貴,特別需要專家的知識經(jīng)驗去排查故障的共性和個性,以期“對癥下藥”。
機組鍋爐屬于多層次的系統(tǒng),由燃燒、煙風(fēng)、汽水等子系統(tǒng)組成,每個子系統(tǒng)還可以進一步劃分為若干層次的次級子系統(tǒng)和部件,各層次級子系統(tǒng)不是孤立的,而是相互關(guān)聯(lián),只要某一個子系統(tǒng)功能失效或者出現(xiàn)異常,就可能致使其它子系統(tǒng)的功能失效或者異常,嚴(yán)重的甚至致使整個機組處于故障狀態(tài),從而導(dǎo)致停產(chǎn)。
在Android 開發(fā)環(huán)境中,以電站機組鍋爐為例,實現(xiàn)了基于Android 的電站鍋爐故障診斷專家系統(tǒng),圖4 是故障診斷的人機界面。
圖4 故障現(xiàn)象與診斷結(jié)果
在移動互聯(lián)網(wǎng)飛速發(fā)展的今天,基于Android 的故障診斷專家系統(tǒng)有了新的機遇,它可以實現(xiàn)故障診斷和知識庫管理功能,能夠完成原本PC 機上才能實現(xiàn)的功能,方便工作人員攜帶,為在外場工作人員提供了極大的便利。通過測試,系統(tǒng)設(shè)計方案可行,研究成果可推廣到石油鉆井設(shè)備的故障診斷系統(tǒng)以及其它系統(tǒng)。
[1]劉白林.人工智能與專家系統(tǒng)[M].西安:西安交通大學(xué),2012.
[2]安麗娜,張士杰.專家系統(tǒng)研究現(xiàn)狀及展望[J].計算機應(yīng)用研究:2007,24(12):1 -5,19.
[3]王安煒.基于Android 的手機農(nóng)業(yè)專家系統(tǒng)的設(shè)計與實現(xiàn)[D].山東:山東大學(xué),2011.
[4]王紅梅.移動互聯(lián)網(wǎng)現(xiàn)狀與趨勢淺析[R]. 移動互聯(lián)網(wǎng)技術(shù)與應(yīng)用,2010.
[5]范會敏,汪尚兵,霍 珍,等. 鍋爐故障診斷專家系統(tǒng)領(lǐng)域知識表示方法研究[J]. 電腦知識與技術(shù),2010,2010,6(22):6292 -6294.
[6]吳明強,史 惠,朱曉華,等.故障診斷專家系統(tǒng)研究的現(xiàn)狀與展望[J]. 計算機測量與控制. 2005,13(12):1301-1304.
[7]劉白林,劉 震,范躍華.一種故障診斷專家系統(tǒng)的的設(shè)計與實現(xiàn)[J].強箭與制導(dǎo)學(xué)報,2002,24(3):71 -73.
[8]楊盼盼.基于Web Services 的專家系統(tǒng)的研究及應(yīng)用[D].西安:西安工業(yè)大學(xué),2012.
[9]魯 維,胡 山. 我國移動互聯(lián)網(wǎng)業(yè)務(wù)發(fā)展現(xiàn)狀及趨勢分析[J]. 電信技術(shù),2009,(5):29 -31.
[10]郭宏志.Android 應(yīng)用開發(fā)詳解[M].北京:電子工業(yè)出版社,2010.
[11]苑志敏,徐 紅. 增值式企業(yè)移動解決方案開發(fā)方法研究與實現(xiàn)[J].計算機工程與設(shè)計,2009,30(20):4628 -4631,4776.