(海軍駐蘭州地區(qū)軍事代表室 蘭州 730070)
飛機(jī)武器發(fā)控通道是指用于控制和管理飛機(jī)所攜帶的各種武器,涉及“機(jī)載武器控制系統(tǒng)(又稱(chēng)懸掛物管理系統(tǒng))—發(fā)射裝置—機(jī)載武器”的航空武器綜合體。目前,部隊(duì)維護(hù)人員通過(guò)相關(guān)測(cè)試設(shè)備可以對(duì)某型飛機(jī)武器發(fā)控通道進(jìn)行維護(hù),但維護(hù)工作中存在故障定位周期長(zhǎng)、故障隔離與定位不準(zhǔn)確和故障排除效率低等狀況。因此,本文將人工智能技術(shù)應(yīng)用到武器發(fā)控通道故障診斷領(lǐng)域[1],通過(guò)建立故障診斷專(zhuān)家系統(tǒng),對(duì)導(dǎo)彈發(fā)射通道故障進(jìn)行快速準(zhǔn)確定位,并提出專(zhuān)家級(jí)維修建議。
傳統(tǒng)的診斷類(lèi)專(zhuān)家系統(tǒng)大都采用基于規(guī)則推理(Rule-Based Reasoning,RBR)的方法,這種方法適合于專(zhuān)家知識(shí)易用規(guī)則表達(dá)的簡(jiǎn)單系統(tǒng)。但是,對(duì)于武器發(fā)控通道這樣復(fù)雜的系統(tǒng),許多故障現(xiàn)象是難以用結(jié)構(gòu)化數(shù)據(jù)來(lái)表達(dá)的,如果全部用規(guī)則的形式來(lái)表示故障診斷知識(shí),不僅提煉規(guī)則相當(dāng)困難,而且規(guī)則庫(kù)也十分龐大和復(fù)雜。因此,單純采用基于規(guī)則的方法并不是很有效。論文采用基于案例推理(Case-Based Reasoning,CBR)與基于規(guī)則推理相結(jié)合的思想,將過(guò)去已有的大量診斷案例和可能發(fā)生的故障和排除方案作為知識(shí)的來(lái)源,同時(shí)與傳統(tǒng)的基于規(guī)則推理方法相結(jié)合,設(shè)計(jì)了基于CBR 和RBR 混合推理的武器發(fā)控通道故障診斷專(zhuān)家系統(tǒng)[2]。
基于CBR 和RBR 的武器發(fā)控通道故障診斷專(zhuān)家系統(tǒng)結(jié)構(gòu)模型如圖1所示。
圖1 故障診斷專(zhuān)家系統(tǒng)結(jié)構(gòu)模型
系統(tǒng)主要由基于CBR 的高層診斷模塊和基于RBR 的低層診斷模塊構(gòu)成,其設(shè)計(jì)思想是基于分層診斷的策略[3]。高層診斷模塊由診斷信息獲取模塊、案例庫(kù)、案例庫(kù)管理單元、CBR 推理機(jī)、動(dòng)態(tài)數(shù)據(jù)庫(kù)和自學(xué)習(xí)模塊組成,完成基于案例的診斷推理。高層診斷原則上主要用于診斷過(guò)程的剪枝,即縮小狀態(tài)空間的搜索范圍,以提高系統(tǒng)工作的效率。低層診斷模塊實(shí)際上是一個(gè)典型的基于規(guī)則的專(zhuān)家系統(tǒng),主要由知識(shí)庫(kù)、RBR 推理機(jī)、動(dòng)態(tài)數(shù)據(jù)庫(kù)、知識(shí)獲取單元、解釋單元等部分組成。當(dāng)用戶(hù)提交一個(gè)診斷任務(wù)時(shí),首先由高層診斷模塊進(jìn)行診斷,將故障范圍確定到功能單元級(jí)部位。高層診斷模塊的求解方案都是以定位到功能單元級(jí)部位的子故障描述作為最小解單元,這些功能單元級(jí)的子故障又作為低層診斷單元的診斷任務(wù)進(jìn)行進(jìn)一步診斷。按照層次診斷策略設(shè)計(jì)的武器發(fā)控通道故障診斷專(zhuān)家系統(tǒng),不僅降低了知識(shí)提取和組織的難度,而且大大提高了系統(tǒng)的工作效率。
武器發(fā)控通道是個(gè)復(fù)雜的大系統(tǒng)。作為一個(gè)對(duì)象系統(tǒng),武器發(fā)控通道具有結(jié)構(gòu)層次性,可以將其劃分為若干系統(tǒng),然后進(jìn)一步劃分為若干分系統(tǒng)、子系統(tǒng)和功能單元。通過(guò)分析武器發(fā)控通道故障的產(chǎn)生及傳播機(jī)理,可以總結(jié)出武器發(fā)控通道的故障具有層次性、相關(guān)性、時(shí)間性和不確定性等特點(diǎn)。針對(duì)診斷對(duì)象的上述特性,采用分層和分類(lèi)的方法對(duì)知識(shí)庫(kù)及其管理系統(tǒng)進(jìn)行合理設(shè)計(jì)[4]。
武器發(fā)控特點(diǎn)結(jié)構(gòu)復(fù)雜,進(jìn)行故障診斷所需要的知識(shí)覆蓋面很廣,為了很好地組織和記憶知識(shí),并便于檢索和維護(hù),將完成診斷任務(wù)時(shí)有關(guān)具體對(duì)象的知識(shí)分為以下五類(lèi):
1)功能結(jié)構(gòu)知識(shí):指對(duì)發(fā)控通道結(jié)構(gòu)和性能的描述知識(shí),主要包括測(cè)控設(shè)備的結(jié)構(gòu)層次,功能層次,相互間的輸入、輸出行為關(guān)系以及設(shè)備本身的工作原理等。
2)專(zhuān)家經(jīng)驗(yàn)知識(shí):指對(duì)發(fā)控通道故障、征兆和原因等直接聯(lián)系的專(zhuān)家啟發(fā)式經(jīng)驗(yàn)知識(shí),它是領(lǐng)域?qū)<业慕?jīng)驗(yàn)總結(jié),常以規(guī)則的形式存在于專(zhuān)家的頭腦而被專(zhuān)家非常靈活的應(yīng)用。
3)信號(hào)特征知識(shí):指在發(fā)控通道進(jìn)行診斷時(shí),許多參數(shù)是無(wú)法檢測(cè)的,因此,大量應(yīng)用的是運(yùn)行過(guò)程中產(chǎn)生的外部直接可觀測(cè)的信號(hào)(如振動(dòng)、噪聲、溫度等),通過(guò)對(duì)這些特征參數(shù)信號(hào)的分析,能比較準(zhǔn)確地診斷設(shè)備故障。
4)環(huán)境知識(shí):表示與診斷對(duì)象有關(guān)的外圍知識(shí),如設(shè)備使用時(shí)間、工作環(huán)境與故障頻率及故障類(lèi)型分布等。
5)控制知識(shí):表示對(duì)領(lǐng)域知識(shí)的運(yùn)用起指導(dǎo)作用的知識(shí),即表示問(wèn)題求解的控制策略。
知識(shí)庫(kù)是專(zhuān)家知識(shí)的存儲(chǔ)器,其結(jié)構(gòu)是否合理關(guān)系著系統(tǒng)診斷的效率。知識(shí)庫(kù)的表示方法很多,復(fù)雜系統(tǒng)的知識(shí)往往需要將多種不同的表示方法相結(jié)合才能有效表達(dá)出領(lǐng)域知識(shí),本文主要采用了產(chǎn)生式表示法和基于案例的表示法。
1)產(chǎn)生式表示法
產(chǎn)生式表示法又稱(chēng)規(guī)則表示法,其基本形式是:
如果〈前提〉,那么〈結(jié)論〉〈可信度〉。
將所有的武器發(fā)控通道故障統(tǒng)一編號(hào),以數(shù)值故障為例。以“故障編號(hào)L(或S)”的形式組合,作為規(guī)則的前提。故障編號(hào)是指將數(shù)值故障進(jìn)行編號(hào),如編號(hào)1是指導(dǎo)彈發(fā)射電壓,編號(hào)2是指某部件電壓測(cè)量。如果實(shí)際測(cè)得的數(shù)值量比標(biāo)準(zhǔn)量偏大,用L(Large)表示,如果偏小,用S(Small)表示。按這種方式建立規(guī)則知識(shí)庫(kù),如表1所示。
表1 規(guī)則知識(shí)庫(kù)結(jié)構(gòu)
2)案例表示法
案例是故障診斷知識(shí)的一種表示模式,它將專(zhuān)家的知識(shí)與經(jīng)驗(yàn)用描述案例的數(shù)據(jù)結(jié)構(gòu)和眾多的案例表示出來(lái)。實(shí)際就是專(zhuān)家求解問(wèn)題的一個(gè)具體例子。用案例進(jìn)行知識(shí)表示并不是一種新的知識(shí)表示方法,而是在以往各種表示方法(如產(chǎn)生式、語(yǔ)義網(wǎng)絡(luò)、框架、面向?qū)ο蟮龋┥系囊患?jí)抽象。其實(shí)現(xiàn)方法也是基于現(xiàn)有的各種知識(shí)表示方法。在武器發(fā)控通道故障診斷專(zhuān)家系統(tǒng)中,基于案例的知識(shí)表示采用了“而向?qū)ο螅蚣堋钡闹R(shí)表示方法來(lái)建立案例知識(shí)庫(kù),其結(jié)構(gòu)如表2所示。
表2 案例知識(shí)庫(kù)結(jié)構(gòu)
知識(shí)庫(kù)的維護(hù)是對(duì)知識(shí)庫(kù)進(jìn)行類(lèi)似于數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的維護(hù)。通常,對(duì)知識(shí)庫(kù)的維護(hù)包括:知識(shí)庫(kù)的建立、刪除、查詢(xún)、更新等。
基于案例的推理機(jī)制的工作流程如圖2所示。
圖2 CBR 推理的工作流程
問(wèn)題的提交是指用戶(hù)按照某種格式向系統(tǒng)描述面臨的問(wèn)題;索引建立是指在分析用戶(hù)提交問(wèn)題描述的基礎(chǔ)上,建立索引關(guān)系;檢索與匹配是基于一定的索引方式和類(lèi)似度定義,完成新問(wèn)題與案例庫(kù)中案例的匹配及相似案例的檢索;修改與適配是基于一定的適配規(guī)則或在用戶(hù)的自覺(jué)參與下,完成對(duì)檢索出的案例的解策略的修改,使它能夠解決當(dāng)前問(wèn)題;驗(yàn)證是對(duì)適配得出的解策略的有效性檢驗(yàn)(一般是通過(guò)實(shí)踐來(lái)檢驗(yàn)),判斷它是否真有效;案例存儲(chǔ)是指將有效的解策略及其問(wèn)題描述構(gòu)造成一個(gè)新案例,存入案例庫(kù)并維護(hù)有關(guān)的索引[5]。
1)索引策略。本文采用了基于最近相鄰法、歸納法和基于知識(shí)法綜合的面向?qū)ο蟮陌咐饕龣C(jī)制。首先用歸納法按照武器發(fā)控通道結(jié)構(gòu)的層次性建立案例的分類(lèi)索引,這個(gè)分類(lèi)索引與武器發(fā)控通道結(jié)構(gòu)層次直接對(duì)應(yīng)。然后用最近鄰法在同屬一類(lèi)的案例集中進(jìn)行最近鄰索引,即為每個(gè)案例建立最重要特征的索引。
2)檢索和匹配策略。與案例的索引相對(duì)應(yīng),CBR 系統(tǒng)中案例的檢索也有三種:相聯(lián)檢索、層次檢索和基于知識(shí)的檢索。這里采用了三者結(jié)合面向?qū)ο蟮臋z索策略,首先利用案例的分類(lèi)信息進(jìn)行分類(lèi)檢索,確定案例所處的類(lèi)別。然后在同屬一類(lèi)的案例集中進(jìn)行最近鄰匹配,找到相似度最高的案例。同時(shí),也可根據(jù)案例中最重要的特征進(jìn)行檢索,這樣可以縮短檢索時(shí)間。
檢索到一個(gè)相似案例集后,需確定出當(dāng)前案例同案例集中哪一個(gè)最相似,這就要用到匹配算法,即計(jì)算兩個(gè)案例的相似度。匹配算法公式如下:
式中,i表示第i個(gè)匹配的關(guān)鍵特征;相似度[i]表示案例間第i個(gè)關(guān)鍵特征的相似度;權(quán)重[i]表示第i個(gè)關(guān)鍵特征的權(quán)重因子。
3)適配策略。通過(guò)最近鄰匹配檢索到的最相似的案例,若與當(dāng)前案例不完全相同,則歷史案例的解決方案只能部分滿(mǎn)足當(dāng)前問(wèn)題的求解,這種情況下就需調(diào)整和修改舊的方案來(lái)適配新問(wèn)題。適配方法通常有置換和轉(zhuǎn)移兩種。本文采用了置換的適配策略,即案例求解方案的組成部分能被置換,其中包括故障的檢查方法、原因分析和維修建議等部分,置換的多少取決于選擇的案例與當(dāng)前解決問(wèn)題的差異大小。
4)測(cè)試與存儲(chǔ)。通過(guò)匹配檢索,找出相似案例并修改得出診斷報(bào)告后,若通過(guò)實(shí)際測(cè)試或?qū)嵺`檢驗(yàn),證明方案正確,則作為一個(gè)新的案例被存儲(chǔ)在案例庫(kù)中,若不正確則需繼續(xù)調(diào)整、修改方案。
基于規(guī)則的推理機(jī)制的工作流程如圖3所示。
在武器發(fā)控通道故障診斷系統(tǒng)基于規(guī)則的推理中,采用了基于數(shù)據(jù)驅(qū)動(dòng)控制策略,即正向推理。其基本思想是:從問(wèn)題已有的信息(事實(shí))開(kāi)始,正向使用規(guī)則,當(dāng)規(guī)則的條件部分與已有的事實(shí)匹配時(shí),就把該規(guī)則作為可用規(guī)則放入候選規(guī)則隊(duì)列中,然后通過(guò)沖突消解,在候選隊(duì)列中選擇一條規(guī)則作為啟用規(guī)則進(jìn)行處理,并將其結(jié)論放入數(shù)據(jù)庫(kù)中,作為下一步推理時(shí)的證據(jù)[6]。如此重復(fù)這個(gè)過(guò)程,直到再無(wú)可用規(guī)則可被選用或者求得了所要求的解為止。
圖3 RBR 推理的工作流程
沖突消解過(guò)程,是指在進(jìn)行模式匹配后,若有兩條以上的規(guī)則成為競(jìng)選規(guī)則,系統(tǒng)必須從中選擇一條來(lái)執(zhí)行的過(guò)程。根據(jù)武器發(fā)控通道的結(jié)構(gòu)層次性和故障的層次性,如果用樹(shù)形結(jié)構(gòu)來(lái)描述問(wèn)題求解過(guò)程,武器發(fā)控通道的故障診斷過(guò)程通常呈現(xiàn)出窄而深的鏈樹(shù)形狀。一顆窄而深的樹(shù)適合采用深度優(yōu)先的方法進(jìn)行搜索。因此,在設(shè)計(jì)沖突消解策略時(shí)采用了深度優(yōu)先的搜索方法。
1)解釋模塊。負(fù)責(zé)回答用戶(hù)提出的各種問(wèn)題,并能對(duì)專(zhuān)家系統(tǒng)的求解過(guò)程和求解結(jié)果給出合理解釋。本專(zhuān)家系統(tǒng)解釋模塊的設(shè)計(jì)采用的是預(yù)置文本法,即將每一個(gè)問(wèn)題求解方式的解釋框架采用易于被用戶(hù)理解的形式事先組織好,插入數(shù)據(jù)庫(kù)中。在執(zhí)行目標(biāo)的過(guò)程中,同時(shí)生成解釋信息。一旦用戶(hù)詢(xún)問(wèn),只需把相應(yīng)的解釋信息填入解釋框架,并組織成合適的文本提交給用戶(hù)。
2)診斷信息獲取模塊。完整的診斷信息是進(jìn)行故障診斷的先決條件。故障診斷信息是指系統(tǒng)發(fā)生故障時(shí)的異常狀態(tài),導(dǎo)彈發(fā)射通道故障診斷信息主要包括:多功能顯示器、平顯顯示的故障信息、系統(tǒng)的自檢故障信息、自研檢測(cè)設(shè)備提取的信息及檢測(cè)結(jié)果和飛行員反映的空中信息等。
3)診斷報(bào)告。用于給出診斷最終結(jié)果和維修建議。
4)人機(jī)界面。用戶(hù)與專(zhuān)家系統(tǒng)交互的接口。包括輸入和輸出兩大部分。一方面,它把信息進(jìn)行識(shí)別、理解輸入給系統(tǒng);另一方面,把專(zhuān)家系統(tǒng)產(chǎn)生的結(jié)果的內(nèi)部形式轉(zhuǎn)換成人類(lèi)能夠接受的形式輸出給用戶(hù)。良好的人機(jī)界面為用戶(hù)的使用提供了方便的途徑,同時(shí)也為系統(tǒng)的維護(hù)和改進(jìn)提供了有效的工具。
武器發(fā)控通道故障診斷專(zhuān)家系統(tǒng)采用Delphi與CLIPS 混合編程的方法進(jìn)行軟件實(shí)現(xiàn)[7]。CLIPS(C Language Integrated Production System)是由美國(guó)航空航局(NASA)的人工智能部開(kāi)發(fā)的通用專(zhuān)家系統(tǒng)工具,功能完善,語(yǔ)法簡(jiǎn)捷。由于CLIPS是為人工智能設(shè)計(jì)的,對(duì)數(shù)據(jù)的處理不是它的技術(shù)優(yōu)勢(shì);另一方而,設(shè)計(jì)者出于可移植性和易于集成的考慮,其操作是基于命令行式的,而且目前也沒(méi)有漢化版,不支持漢字的輸入輸出,所以不適合用來(lái)編制符合現(xiàn)代軟件工程要求的用戶(hù)交互界面。因此,采用了CLIPS和Delphi混合編程的開(kāi)發(fā)方法。用CLIPS編寫(xiě)核心的基于規(guī)則診斷推理部分,用Delphi編寫(xiě)用戶(hù)界面、數(shù)據(jù)庫(kù)管理以及高層的基于案例推理模塊。
如何實(shí)現(xiàn)CLIPS與Delphi的混合編程是系統(tǒng)實(shí)現(xiàn)的關(guān)鍵問(wèn)題。論文采用了動(dòng)態(tài)鏈接庫(kù)(DLL)方式,通過(guò)調(diào)用動(dòng)態(tài)連接庫(kù)clips.dll實(shí)現(xiàn)CLIPS的混合編程,該動(dòng)態(tài)庫(kù)倒出了CLIPS中所有的函數(shù)。但是DDL 方式并不符合面向?qū)ο蟮木幊淘瓌t,為了使該動(dòng)態(tài)庫(kù)更方便地在Delphi環(huán)境中開(kāi)發(fā)面向?qū)ο蟮某绦颍O(shè)計(jì)了一個(gè)類(lèi),該類(lèi)把clips.dll的所有函數(shù)封裝起來(lái),在程序中對(duì)動(dòng)態(tài)庫(kù)采用靜態(tài)調(diào)用,同時(shí)將CLIPS設(shè)計(jì)為一個(gè)面向?qū)ο蟮念?lèi),大大方便了對(duì)CLIPS的嵌入使用,也更加符合面向?qū)ο蟮某绦蛟O(shè)計(jì)風(fēng)格。
本文綜合運(yùn)用基于CBR 和RBR 的推理機(jī)制,設(shè)計(jì)了某型飛機(jī)武器發(fā)控通道故障診斷專(zhuān)家系統(tǒng),并以Delphi和CLIPS混合編程方式予以實(shí)現(xiàn)。實(shí)際應(yīng)用表明,通過(guò)高效的推理,能夠給出合理的維修建議,提高了某型飛機(jī)武器發(fā)控通道的故障診斷效率。
[1]史慧,王偉,高戈,等.智能故障診斷專(zhuān)家系統(tǒng)開(kāi)發(fā)平臺(tái)[J].計(jì)算機(jī)測(cè)量與控制,2005,13(11):1167-1169.
[2]敖志剛.人工智能與專(zhuān)家系統(tǒng)導(dǎo)論[M].合肥:中國(guó)科學(xué)技術(shù)大學(xué)出版社,2002:78-82.
[3]武波,馬玉祥,等.專(zhuān)家系統(tǒng)[M].北京:理工大學(xué)出版社,2001.
[4]蔡自興,約翰.德?tīng)柦穑龋呒?jí)專(zhuān)家系統(tǒng):原理、設(shè)計(jì)及應(yīng)用[M].北京:科學(xué)出版社,2005.
[5]胡良名,徐誠(chéng),李萬(wàn)平.基于案例推理的自行火炮故障診斷專(zhuān)家系統(tǒng)[J].火炮發(fā)射與控制學(xué)報(bào),2006(2):53-56.
[6]韓兆福,葛銀茂,程江濤,等.故障樹(shù)分析法在某型飛機(jī)火控系統(tǒng)故障診斷中的應(yīng)用[J].中國(guó)測(cè)試技術(shù),2006,32(3):39-41.
[7]Joseph Giarratano,Gray Riley.專(zhuān)家系統(tǒng)原理與編程[M].北京:機(jī)械工業(yè)出版社,2000.