• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于CLIPS的智能無人飛艇故障診斷專家系統(tǒng)開發(fā)

      2020-04-09 04:48郭忠毅龍飛樊慧津劉磊王永驥
      計算技術與自動化 2020年1期

      郭忠毅 龍飛 樊慧津 劉磊 王永驥

      摘? ?要:針對智能無人飛艇的故障診斷問題,設計開發(fā)了一套基于CLIPS框架的故障診斷專家系統(tǒng)。首先,根據(jù)診斷專家的知識進行故障分類并建立故障樹;其次,基于CLIPS工具設計了智能無人飛艇的故障事實庫和規(guī)則庫。然后采用靜態(tài)鏈接的方式將CLIPS框架嵌入到C++中,并設計了"路由跳轉(zhuǎn)"功能,實現(xiàn)了用戶輸入與CLIPS的數(shù)據(jù)交換接口,并利用MFC框架開發(fā)了相應人機交互界面。該智能無人飛艇故障診斷專家系統(tǒng)的開發(fā),改善了現(xiàn)階段人工故障診斷的不規(guī)范及效率低下等問題,為智能無人飛艇的故障診斷、分析和排除提供了平臺和支持技術。

      關鍵詞:智能無人飛艇;CLIPS;故障診斷專家系統(tǒng)

      中圖分類號:TP319? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼:A

      Fault Diagnosis Expert System Development

      for Intelligent Unmanned Airship Based on CLIPS

      GUO Zhong-yi1,LONG Fei2,F(xiàn)AN Hui-jin1?覮,LIU Lei1,WANG Yong-ji1

      (1. School of Automation,Huazhong University of Science and Technology,Wuhan,Hubei 430070,China;

      2. China Special Vehicle Reach Institute,Jingmen,Hubei 448035,China)

      Abstract:For the intelligent unmanned airships,a fault diagnosis expert system based on CLIPS is designed and developed. Firstly,based on the knowledge of the diagnostic expert,the faults are classified,and the fault tree has been established according to the causal relationship. Secondly,the fact base and rule base are respectively designed with the CLIPS framework,and a forward reasoning control strategy is employed. CLIPS is embedded in the C++ environment by static linking mode. In addition,the "route jump" function is designed to realize the data exchange interface between user input and CLIPS. Finally,the human-computer interaction interface is developed with the MFC framework. The development of the fault diagnosis expert system has improved the irregularity and inefficiency of manual fault diagnosis,and provides a platform and support technology for thefault diagnosis,analysis and elimination of intelligent unmanned airships.

      Key words:intelligent unmanned airship;CLIPS;fault diagnosis expert system

      智能無人飛艇屬于浮空飛行器的一種,相較于飛機等其他航空器,其最大優(yōu)勢是能耗低、制造成本低廉,同時具有留空時間長,污染小,起降場地要求靈活方便等諸多優(yōu)勢,因此廣泛應用于監(jiān)測、運輸、通訊、勘探等方面[1]。在智能無人飛艇實際飛行中,由于外界環(huán)境或電子、機械等內(nèi)部原因的影響,某些部件元件或系統(tǒng)的運行特性或參數(shù)與其正常飛行的額定值出現(xiàn)了較大的偏差,或其軟件控制系統(tǒng)可能出現(xiàn)一些不可預見性的故障,導致無人飛艇系統(tǒng)的性能嚴重低于正常水平,難以完成操作無人飛艇正常的控制任務[2]。例如一個較為突出的問題就是在飛艇低速飛行時,會產(chǎn)生氣動力不足的現(xiàn)象,進而降低舵面的控制效果,導致舵面故障[3]。當類似舵面這種操縱機構(gòu)故障時,會導致控制指令錯誤,從而影響飛艇的動態(tài)過程,造成嚴重后果,威脅人身安全。因此,必須在無人飛艇發(fā)生故障時,及時根據(jù)飛艇的運行參數(shù)和故障現(xiàn)象進行分析,快速準確的診斷出飛艇的故障原因和部位,為后續(xù)智能飛艇的容錯控制提供準確信息,避免造成更加嚴重的后果。

      近年來故障診斷的研究已經(jīng)取得了一定的研究成果[4-6]。針對無人機及運載火箭等航空器故障,文獻[4]以運七飛機起落架為實例,利用了面向?qū)ο蟮募夹g建立系統(tǒng)模型,分別針對飛機的發(fā)動機,液壓系統(tǒng)等關鍵系統(tǒng)開發(fā)了故障診斷專家系統(tǒng)。然而,該系統(tǒng)所采用的面向?qū)ο蠓椒ú簧瞄L邏輯推理,其規(guī)則比產(chǎn)生式規(guī)則更復雜。此外,無人飛艇在工作原理和外形結(jié)構(gòu)特點上與上述航空器也存在較大差別,且針對無人飛艇的問題,目前研究較少。文獻[5]針對無人飛艇的壓力氣囊故障進行了研究,利用故障樹分析法對其故障原因進行了定性分析。該文所給出的故障樹分析法可應用于本智能無人飛艇的知識整理和分析上,但由于缺少智能化的知識保存和積累功能,因此無法推廣,具有一定的局限性。

      現(xiàn)階段無人飛艇的故障診斷主要依靠人工檢驗、簡單儀器儀表測量等方式進行。而這些嘗試性的故障診斷方式往往存在操作流程不規(guī)范,診斷效率低下等問題。同時,培養(yǎng)專業(yè)的無人飛艇故障診斷人員周期較長,需要長期的經(jīng)驗積累。因此,設計一個基于專家系統(tǒng)的無人飛艇故障診斷系統(tǒng)來幫助普通操作人員快速實現(xiàn)飛艇故障診斷是十分有必要的。

      因此,在已有的研究基礎上,依托體積約100立方米的小型飛艇作為研究對象,針對無人飛艇的軟硬件組成結(jié)構(gòu),設計和開發(fā)了一種基于CLIPS的智能無人飛艇故障診斷專家系統(tǒng)。首先,借助故障樹分析法以無人飛艇系統(tǒng)較常見的故障狀態(tài)作為分析的出發(fā)點,找出能導致這一故障發(fā)生的全部因素即中間事件,按此層級查找的方式一直追溯到引起系統(tǒng)發(fā)生故障的底層原因。接著,基于故障分析樹,利用CLIPS專家系統(tǒng)框架,設計了表征飛艇工作狀況的事件庫及專家知識表達的規(guī)則庫,并采用正向推理控制。此外,為最大限度的方便用戶使用故障診斷專家系統(tǒng),本文通過靜態(tài)鏈接的方式將CLIPS框架嵌入C++中,在此基礎上利用Visual Studio中的MFC框架開發(fā)了人機界面。為了實現(xiàn)用戶輸入與CLIPS的數(shù)據(jù)交換,除借助CLIPS內(nèi)置的EnvLoad函數(shù)加載規(guī)則庫和事實庫外,本文另外設計了“路由跳轉(zhuǎn)”功能作為交換接口。最后,為本文專家知識庫設計了維護和編輯界面,實現(xiàn)對新的故障知識的增加和刪改,從而完成了故障診斷專家系統(tǒng)的開發(fā),為智能無人飛艇的故障診斷、分析和排除提供了平臺和支持技術。

      1? ?需求分析

      所研究的智能無人飛艇對象采用中舟100飛艇的單囊體布局形式,以囊體為主體,外露布置頭錐、動力裝置、尾翼及設備吊艙等,并采用“X”形布置的梯形尾翼,舵面偏轉(zhuǎn)角度-30-30°;主要結(jié)構(gòu)部件包括氣囊、副氣囊、吊艙、起落裝置、尾翼、頭錐等,智能無人飛艇的整體結(jié)構(gòu)如圖1所示。

      圖1? ?飛艇總體結(jié)構(gòu)布局示意圖

      本系統(tǒng)設計的總體目標是實現(xiàn)對智能無人飛艇各個系統(tǒng)結(jié)構(gòu)的設備故障進行診斷和定位。由于當前人工故障診斷存在操作流程不規(guī)范,診斷效率低下等問題,因此,需要設計一個基于專家系統(tǒng)的無人飛艇故障診斷系統(tǒng),從而有效地幫助普通操作人員提高無人飛艇故障診斷的效率及準確度。為了實現(xiàn)該目標,并充分利用智能無人飛艇領域內(nèi)專家現(xiàn)有的故障診斷知識和經(jīng)驗,需重點考慮如下兩點:

      (1)結(jié)合無人飛艇的飛行狀態(tài)和故障現(xiàn)象并借助各個艇載設備檢測方法,采用科學可行的故障診斷方式-故障專家系統(tǒng),來實現(xiàn)智能無人飛艇的故障診斷和定位。

      (2)在無人飛艇后續(xù)的實際飛行過程中,對于新的故障知識,可將新的專家經(jīng)驗添加到故障診斷專家系統(tǒng)中,從而有效的解決專業(yè)診斷人員缺乏,診斷效率低下等實際問題。

      綜上所述,為了實現(xiàn)智能無人飛艇的故障診斷,本系統(tǒng)應實現(xiàn)的主要功能主要包含兩方面:一是具有故障診斷功能,能夠結(jié)合專家知識經(jīng)驗通過規(guī)則推理快速定位故障點,并生成故障診斷結(jié)果報告;二是具有知識庫管理和編輯功能,可實現(xiàn)對專家知識庫進行增加、刪除和修改等維護操作。

      2? ?CLIPS專家系統(tǒng)框架簡介

      CLIPS即“C語言集成產(chǎn)生式系統(tǒng)(CLanguage Integrated Production System)”,它是美國航空航天局/約瀚遜太空中心(NASA/Johnson Space Center)用C語言設計的,是一種多范例編程語言[7]。該語言支持基于規(guī)則的、面向?qū)ο蟮暮兔嫦蜻^程的編程,是一種高效的開發(fā)專家系統(tǒng)工具,為構(gòu)建基于規(guī)則或?qū)ο蟮膶<蚁到y(tǒng)提供了完整的底層開發(fā)環(huán)境[8]。在語法方面,CLIPS規(guī)則與ART、ART-IM、Eclipse和Cognate語言的規(guī)則極為相似,而且更加簡便、低成本和易于與外部系統(tǒng)集成[9]。

      目前,國內(nèi)外各研究機構(gòu)和高校利用CLIPS框架進行專家系統(tǒng)設計已經(jīng)取得了一定的研究成果,如文獻[10]研究了專家系統(tǒng)在飛機燃油系統(tǒng)故障診斷中的應用,使用CB(C ++ Builder)和CLIPS開發(fā)了一套診斷專家系統(tǒng),并實驗驗證了系統(tǒng)的準確性。故本文選擇CLIPS專家系統(tǒng)框架作為智能無人飛艇故障診斷專家系統(tǒng)的開發(fā)工具是可行的。

      3? ?故障診斷專家系統(tǒng)總體設計

      通過對系統(tǒng)需求的分析,結(jié)合專家系統(tǒng)的基本原理,結(jié)合開發(fā)的方便性,本文所構(gòu)建的基于CLIPS的無人飛艇故障診斷系統(tǒng)主要包含了:綜合數(shù)據(jù)庫模塊、診斷信息獲取模塊、知識庫管理模塊、診斷咨詢模塊、管理模塊、解釋機模塊和人機接口模塊。系統(tǒng)的整體結(jié)構(gòu)如圖2所示。

      綜合數(shù)據(jù)庫模塊:主要用來存放無人飛艇正常飛行狀態(tài)的狀態(tài)數(shù)值信息的模板事實、當前飛行狀態(tài)的初始事實數(shù)據(jù)、專家知識構(gòu)成的邏輯規(guī)則以及推理過程中得到的中間結(jié)果等,該部分主要基于CLIPS編寫規(guī)則和自定義模板來完成。

      診斷信息獲取模塊:是專家診斷人員與故障診斷系統(tǒng)信息交互的橋梁,將與無人飛艇故障診斷的相關的專家知識通過整理和歸納,編輯為CLIPS專家知識可接受的知識表示方式。

      圖2? ?故障診斷專家系統(tǒng)模塊組成

      知識庫管理模塊:本質(zhì)上也是對無人飛艇的故障診斷知識的獲取,通過對已有知識庫的繼續(xù)指導,實現(xiàn)對故障診斷知識的擴展,修改以及刪除等管理與維護操作。

      咨詢診斷模塊:主要供操作用戶輸入關于無人飛艇的初始故障事實信息,或在推理過程中增添新的輔助事實,該模塊由Visual Studio開發(fā)。

      管理模塊:包含了專家系統(tǒng)的推理機的全部內(nèi)容,決定了知識的選擇和規(guī)則的觸發(fā)順序等。除了包含常用的通用控制規(guī)則外,還包含了沖突消解功能。整個管理模塊里的規(guī)則控制策略均基于CLIPS完成。

      解釋機模塊:主要負責將CLIPS推理的中間過程進行解釋并顯示到用戶界面或?qū)⒆詈蟮脑\斷結(jié)果回傳到Visual Studio中,該部分由Visual Studio完成。

      人機接口模塊:是與CLIPS進行交互的界面接口,利用Visual Studio中的MFC框架來完成專家對知識庫的擴充和用戶的手動輸入故障現(xiàn)象的交互界面設計。

      4? ?故障診斷專家系統(tǒng)構(gòu)建與開發(fā)

      4.1? ?故障樹設計

      故障樹分析法在航空航天故障分析領域具有重要應用,故障樹模型是描述診斷對象結(jié)構(gòu)、功能和關系的一種定性因果模型,它體現(xiàn)了故障傳播的層次性及因果關系[11]。故障樹分析法以系統(tǒng)常見的故障狀態(tài)作為分析的目標即頂層事件,反推出能導致這一故障發(fā)生的全部可能因素,即中間事件,按此方式一直追溯到引起系統(tǒng)發(fā)生故障的底層原因,也稱底層事件,將系統(tǒng)的頂層事件與中間事件和底層事件之間的邏輯關系用邏輯門聯(lián)結(jié)起來,形成故障樹,以表示系統(tǒng)與產(chǎn)生原因之間的關系[12]。

      故本系統(tǒng)首先根據(jù)無人飛艇的系統(tǒng)結(jié)構(gòu)將不同類型的故障歸類,然后針對每一大類系統(tǒng)及其附件進行故障追溯,即從最表層的故障現(xiàn)象追溯至中間故障征兆,根據(jù)因果關系,由上至下,層層細分,直至底層故障。從而把本無人飛艇的常見的專家系統(tǒng)零散的故障知識集合起來,構(gòu)成一個具有邏輯關系的整體。故障樹中羅列的底層事件就是無人飛艇具體零部件的損壞原因,而頂層事件與中間事件上下層故障之間的關系就是無人飛艇故障診斷專家系統(tǒng)知識庫中的知識。下面以智能無人飛艇的姿態(tài)控制發(fā)動機系統(tǒng)故障層級為例,按照因果關系整理得到的故障樹示例如圖3所示。

      其中,G(x)為頂層事件,代表最表層的飛艇的姿態(tài)控制發(fā)動機系統(tǒng)故障;B1,B2以及C1~C3均為中間事件,代表影響飛艇的姿態(tài)控制發(fā)動機的中間故障征兆;X1~X9為底層事件,表示追溯到最底層的不可細分的零部件故障。上下層事件間的邏輯關系僅含或門,所以該姿態(tài)控制發(fā)動機系統(tǒng)故障樹中的任何一個底層事件均是一個最小分割集,底層事件中包含的故障均會對頂層事件產(chǎn)生影響。通過建立該種以因果關系為線索的無人飛艇故障樹模型,既能方便使用專家系統(tǒng)工具CLIPS進行知識的表達,也能根據(jù)其層次結(jié)構(gòu)設計推理控制策略。

      (a)故障樹圖

      (b)故障樹節(jié)點實例

      圖3? ?飛艇故障樹示例

      4.2? ?事實庫設計

      為了描述飛艇的工作情況,本系統(tǒng)通過飛艇正常狀態(tài)信息范圍的知識模板和實際飛行狀態(tài)模板加以描述,主要借助CLIPS中的自定義模板功能實現(xiàn)。

      CLIPS自定義模板包括模板名和槽名,每個槽代表一種屬性,可以設置允許的類型和值,其中槽值可以是單值也可以是多值的[12]。自定義模板被實例化后,即可表示無人飛艇不同結(jié)構(gòu)部件的狀態(tài)信息。其中本文用來描述飛艇正常狀態(tài)信息范圍的知識模板如下所示:

      (deftemplate device-normal

      (slot name (type STRING));飛艇結(jié)構(gòu)部件

      (slot index(type INTEGER));序號索引

      (slot low-line (type INTEGER));最低閾值

      (slot high-line(type INTEGER)));最高閾值

      根據(jù)上述模板,用戶可以對應插入飛艇的正常狀態(tài)信息,如飛艇正常飛行時的主氣囊結(jié)構(gòu)的壓力差最低閾值為350Pa,最高閾值為500Pa時,可向?qū)<蚁到y(tǒng)中插入如下初始事實:

      (initial-fact)

      (device-normal (name“主氣囊壓力差”)

      (index 1)

      (low-line 350)

      (high-line 500))

      針對無人飛艇的實際飛行狀態(tài)模板,本系統(tǒng)考慮使用序號索引與前文中的正常狀態(tài)信息范圍的知識模板進行聯(lián)系匹配,后續(xù)插入相同零部件的初始事實時,可依據(jù)序號索引進行標志匹配,故相應的設計了無人飛艇實際飛行狀態(tài)的自定義模板如下:

      (deftemplate device-status

      (slot index)? ?;序號索引

      (slot status))? ;飛行狀態(tài)值

      基于上述兩個自定義模板,就可以根據(jù)飛艇的正常運行狀態(tài)及實際飛行過程進行描述,按照槽所對應的數(shù)據(jù)類型和項目類別不斷向故障診斷專家系統(tǒng)插入初始事實。

      4.3? ?規(guī)則庫設計

      在5.1節(jié)中,已建立了無人飛艇各組成結(jié)構(gòu)的故障樹,為了將故障樹中的故障知識提取出來構(gòu)建專家系統(tǒng)知識庫,需采用合理的知識表達方式構(gòu)建規(guī)則庫。且CLIPS專家系統(tǒng)框架支持基于規(guī)則或面向?qū)ο蟮谋磉_方式,文獻[4]中采用了面向?qū)ο蠓椒ǎ敲嫦驅(qū)ο蟮确椒ú簧瞄L邏輯推理,其規(guī)則比產(chǎn)生式規(guī)則更復雜,產(chǎn)生式規(guī)則表示法不僅結(jié)構(gòu)簡單,且廣泛適用于經(jīng)驗和知識的關聯(lián)過程,用以闡述事物間的因果關系,故本文采用CLIPS框架中的產(chǎn)生式規(guī)則知識表示方法來實現(xiàn)無人飛艇故障診斷專家系統(tǒng)規(guī)則庫的設計。

      CLIPS系統(tǒng)中的規(guī)則是專家知識的重要組成部分,分為RHS和LHS,即規(guī)則左件和規(guī)則右件。一條規(guī)則可看作為if和then的結(jié)合,規(guī)則可以有多個模式和行為,即可以有多個規(guī)則左件和規(guī)則右件[13]。CLIPS的規(guī)則一般格式如下所示:

      (defrule<規(guī)則名>[<規(guī)則描述>]

      (<故障模式>)

      =>

      [assert 下一級故障模式]/printout t (故障原因)(故障處理措施))

      CLIPS專家系統(tǒng)內(nèi)部通過規(guī)則的模式與綜合數(shù)據(jù)庫中的事實相匹配,如果規(guī)則匹配成功,則該條規(guī)則被激活放入議程中等待被執(zhí)行,該過程中也可能會有規(guī)則后件的行為,向綜合數(shù)據(jù)庫中增添新的事實數(shù)據(jù),從而不斷的為故障診斷專家系統(tǒng)提供推理事實依據(jù)。

      根據(jù)上述故障樹知識,以上文中的B1中間故障征兆為例,對其下一級故障現(xiàn)象C2向用戶詢問的推理過程,利用CLIPS的產(chǎn)生式規(guī)則表示法,編寫出上述故障樹中的中間故障信息進行交互推理過程的規(guī)則如下:

      上述規(guī)則表示當操作用戶根據(jù)前一個問題對輔助征兆事實B1做出回答為No的反饋,并通過assert指令插入到綜合數(shù)據(jù)庫中,CLIPS將B1toC2規(guī)則前件與綜合數(shù)據(jù)庫中的事實進行匹配,逐步縮小故障范圍并向用戶提出新的中間輔助事件C2,即向用戶詢問氣路導管是否通暢,并將該問題標記為C2,通過人機界面將問題輸出并等待用戶新的反饋回答。

      與上述步驟類似,以無人飛艇的每一類系統(tǒng)結(jié)構(gòu)作為頂層事件,然后利用CLIPS產(chǎn)生式規(guī)則方式將造成系統(tǒng)故障原因由上至下,逐級分解為中間事件,轉(zhuǎn)化為CLIPS內(nèi)部可識別的語法規(guī)則逐級推理,最終確定底層故障原因。

      4.4? ?推理控制策略

      對于推理方式的選擇,故障診斷專家系統(tǒng)通常有兩種方式:正向推理和反向推理[14]。正向推理是一種以事實數(shù)據(jù)為驅(qū)動的控制策略,它是按照由條件推出結(jié)論的方向進行的推理方式,它一般從已獲取到的故障模式事實出發(fā),將故障事實與動態(tài)數(shù)據(jù)庫中的所有規(guī)則的前件進行匹配,通過匹配來提取更多的信息[14]。反向推理是一種目標作為驅(qū)動的控制策略,它的推理方式正好和正向推理相反,是通過某種方式先假設一個故障原因,然后由故障原因出發(fā),將所有的專家知識的規(guī)則后件與故障原因匹配,然后驗證導出的知識前件中的故障現(xiàn)象或故障模式是否與已有的故障事實一致[15]。針對飛艇故障診斷實例,用戶最容易獲取的是飛艇出現(xiàn)故障時的現(xiàn)象和狀態(tài)數(shù)據(jù)信息,故障樹模型中的各個子節(jié)點與其父節(jié)點構(gòu)成了正向因果關系鏈,這種因果關系鏈與“if…then…”型故障診斷規(guī)則本質(zhì)上具有一致性。此外,CLIPS是基于產(chǎn)生式的前向推理引擎,僅支持正向鏈規(guī)則,故系統(tǒng)選擇正向推理思想進行控制,可以很好的展示推理的邏輯和過程,同時也方便理解。圖4所示即為CLIPS專家系統(tǒng)中正向推理的流程圖。

      對于專家系統(tǒng)運行過程中,推理引擎將規(guī)則與當前聲明為工作內(nèi)存的所有事實進行匹配。CLIPS專家系統(tǒng)框架中主要采用Rete算法進行模式匹配,它用于根據(jù)數(shù)據(jù)存儲及其事實確定系統(tǒng)的哪些規(guī)則應該觸發(fā)[13],無需額外編寫模式匹配算法。若在匹配過程中,有多個規(guī)則同時被激活,則可能造成規(guī)則的矛盾和沖突,影響下一步的正確推理,故需要設計沖突消解機制,在本無人飛艇中,通過CLIPS中的(declare salience)命令對不同規(guī)則設定優(yōu)先級順序?qū)崿F(xiàn)規(guī)則的沖突消解。

      4.5? ?接口及數(shù)據(jù)交換設計

      CLIPS專家系統(tǒng)框架雖然對于專家系統(tǒng)底層知識庫和推理機的構(gòu)造上十分方便,但在故障診斷過程以及知識庫的擴展時均需在CLIPS的IDE中進行文本代碼編輯,缺乏良好的人機交互界面。為了設計人機交互界面,首先需考慮的問題就是將CLIPS專家系統(tǒng)底層框架嵌入到C++環(huán)境中,方便后續(xù)借助MFC框架設計交互界面。此外,還需考慮的問題就是嵌入完成后如何與C++進行數(shù)據(jù)交換。

      圖4? ?正向推理流程圖

      (1)CLIPS與C++的嵌入

      為了運行集成例子,必須安裝源代碼,可通過運行CLIPS 6.30 Windows源代碼安裝器。通過在CLIPS官網(wǎng)上獲取源碼并借助Visual Studio編譯生成相應的動態(tài)鏈接庫文件和靜態(tài)數(shù)據(jù)連接庫文件,對于CLIPS的嵌入有兩種解決辦法:顯式鏈接和隱式鏈接方案。本文所采用的方式為隱式鏈接的方案,其好處是在調(diào)用完成后,無需另外釋放資源,具體實現(xiàn)步驟如下:

      Step1:將上述生成的CLIPS.dll文件放置到工程目錄;

      Step2:設置項目屬性——庫目錄為CLIPSStatic32.lib文件所在的路徑;

      Step3:將lib文件添加到項目屬性——鏈接器——輸入——附加依賴項

      Step4:在項目的源文件中添加clipscpp.h頭文件由于clipscpp.h為C語言編碼,所以包含時添加extern“C”。通過上述步驟,便可調(diào)用普通函數(shù)、類、變量嵌入CLIPS專家系統(tǒng)框架。

      (2)CLIPS與C++的數(shù)據(jù)交換

      對于Clips從C++讀取數(shù)據(jù),可以直接通過使用CLIPS中內(nèi)置的EnvLoad函數(shù),通過C++加載外部clp文件,其中可以包含前面根據(jù)已有的專家故障診斷知識編寫的clp知識庫文件和根據(jù)事實模板定義的有關無人飛艇的各設備部件的正常數(shù)據(jù)信息的事實庫clp文件。

      對于Clips數(shù)據(jù)輸出到C++,本文采用“打印跳轉(zhuǎn)”功能實現(xiàn),即更改CLIPS的內(nèi)的printout函數(shù)的路由地址,改成軟件需要的自定義函數(shù),這樣后面就可以在函數(shù)內(nèi)部實現(xiàn)想要輸出和數(shù)據(jù)交換的功能,具體步驟如下所示:

      1)需要在項目的頭文件內(nèi)包含“clipscpp.h”文件,并在項目里包含CLIPSStatic32.lib庫文件,

      2)創(chuàng)建自定義的Router類,用來實現(xiàn)打印跳轉(zhuǎn)功能,基于該類設計兩個虛函數(shù)Query和Print。

      3)對Query和Print函數(shù)具體實現(xiàn),其中query是跳轉(zhuǎn)時需要的判斷函數(shù),判斷此次打印是否需要跳轉(zhuǎn)。print是要跳轉(zhuǎn)到的函數(shù),在該自定義函數(shù)中,可以實現(xiàn)業(yè)務邏輯,數(shù)據(jù)輸出等功能。

      通過上述步驟,便可把CLIPS內(nèi)的print函數(shù)路由到用戶自定義的函數(shù),從而可以直接在知識內(nèi)將結(jié)論或中間推理信息直接print到MFC的文本框。

      4.6? ?人機界面設計

      為了最大限度的方便用戶,使用戶易于操作本系統(tǒng)在前文將CLIPS工具嵌入C++的基礎上,借助visual studio中的MFC框架來開發(fā)人機界面,基于對話框應用程序,使用Tree Control等控件實現(xiàn)的主要功能界面包括故障診斷主界面和知識庫編輯維護界面。

      其中,故障診斷主界面如圖5所示,可分為三個區(qū)域,左側(cè)的故障征兆選擇區(qū)域交互診斷區(qū):用戶可以點擊左側(cè)樹控件選擇故障部位和故障征兆添加到故障診斷專家系統(tǒng)的綜合處理數(shù)據(jù)庫中;右上方的數(shù)據(jù)錄入診斷區(qū):用戶可通過數(shù)據(jù)錄入按鈕輸入初始事實;右下方的推理過程解釋區(qū):該解釋顯示區(qū)可顯示無人飛艇的故障診斷推理中間過程及診斷結(jié)果輸出。

      知識庫編輯維護界面如圖6所示,同樣可分為三大區(qū)域,左側(cè)的故障樹選擇查看和編輯區(qū):操作用戶可通過在左側(cè)選擇頂層故障事件,點擊查看按鈕之后,系統(tǒng)會加載對應知識庫的規(guī)則,用戶可以根據(jù)需要對其查看和編輯。同時,點擊下方編輯按鈕可對無人飛艇的整體故障樹結(jié)構(gòu)進行擴充,方便后續(xù)添加具體的專家知識。右上方的新增故障知識維護區(qū):點擊交互模式知識添加或數(shù)據(jù)模式知識添加按鈕可對后續(xù)新的故障知識進行添加。右下方的故障知識解釋顯示區(qū):該顯示區(qū)用來顯示具體的CLIPS規(guī)則知識。

      圖5? ?故障診斷專家系統(tǒng)推理界面

      圖6? ?故障診斷專家系統(tǒng)知識編輯主界面

      6? ?結(jié)? ?論

      通過對無人飛艇的組成結(jié)構(gòu)和故障特點進行了分析,將專家知識和經(jīng)驗匯總整理為了故障樹的形式。設計了智能無人飛艇故障診斷專家系統(tǒng)的總體模塊和架構(gòu)。借助CLIPS專家系統(tǒng)開發(fā)工具,構(gòu)建了描述飛艇運行飛行狀況的自定義模板。利用產(chǎn)生式規(guī)則表示方式將故障樹中的故障知識提取出來構(gòu)建專家系統(tǒng)知識庫,使用正向推理編寫控制規(guī)則與策略?;诘讓覥LIPS專家系統(tǒng)框架,在windows平臺上利用visual studio設計了與CLIPS框架的嵌入和數(shù)據(jù)交換接口,開發(fā)了關于無人飛艇的故障診斷專家系統(tǒng)軟件。該系統(tǒng)實現(xiàn)了根據(jù)故障現(xiàn)象快速診斷飛艇故障原因的功能,同時可對該系統(tǒng)中的專家知識進行編輯和維護,在一定程度上模擬專家思維過程進行故障診斷工作。

      在后續(xù)實際飛行里,所建立系統(tǒng)期望通過經(jīng)驗的不斷積累,不斷的對專家知識庫進行擴充和完善,從而更加準確和全面的對無人飛艇飛行過程中的故障進行診斷。此外,隨著研究的不斷深入,未來可考慮利用專家系統(tǒng)對智能無人飛艇的故障進行故障預測,提前預判飛艇可能發(fā)生的故障,并將專家系統(tǒng)和容錯控制相結(jié)合,實現(xiàn)主動容錯控制,提高無人飛艇飛行的安全性與可靠性。

      參考文獻

      [1]? ? 孫珺. 小型無人飛艇的建模與飛行控制系統(tǒng)的設計[D]. 南京:南京理工大學,2009.

      [2]? ? 賈瑞,吳梅. 舵面故障情況下推力矢量在飛艇中的應用研究[J]. 科學技術與工程,2013,13(8):2302—2306.

      [3]? ? 田鈞. 典型故障情況下飛艇矢量飛行研究[J]. 科學與財富,2015(4):66—66.

      [4]? ? 石榮德,趙廷弟,屠慶慈,等. 故障診斷專家系統(tǒng)[J]. 北京航空航天大學學報,1995(4):7—12.

      [5]? ? 張博,王大華,余刃. 飛艇主氣囊壓力告警的故障診斷與維修決策[C]// 中國浮空器大會,2007.

      [6]? ? 王梓航,李磊,李建明. 三相開環(huán)Z源逆變器短路故障診斷研究[J]. 計算技術與自動化,2018(2):33—37.

      [7]? ? 溫國誼,査光東,張翔. 基于CLIPS的某型飛機故障診斷專家系統(tǒng)的設計與實現(xiàn)[J]. 中南大學學報:自然科學版,2013(s1):157—161.

      [8]? ? TAN D ,LI P ,PAN X . Embedded fault diagnosis expert system based on CLIPS and ANN[J]. Journal of Vibration Engineering,2007,20(5):957—960.

      [9]? ? GELGELE H L,WANG K. An expert system for engine fault diagnosis:development and application[J]. Journal of Intelligent Manufacturing,1998,9(6):539—545.

      [10]? LONG H,WANG X. Aircraft fuel system diagnostic fault detection through expert system[C]// World Congress on Intelligent Control & Automation,2008.

      [11]? 劉治國,蔡增杰,穆志韜,等. 基于CLIPS的飛機液壓系統(tǒng)故障診斷專家系統(tǒng)構(gòu)建研究[J]. 海軍航空工程學院學報,2011,26(1):45—48.

      [12]? 沈大偉,莊誠,王學雷. 基于CLIPS的故障診斷專家系統(tǒng)開發(fā)[J]. 化工自動化及儀表,2012,39(4):450—453.

      [13]? PENG Z . A new method of developing fault diagnosis expert system[J]. Microcomputth Applications,2000(3):76—79.

      [14]? DOU D,ZHAO Y. Fault diagnosis of rotating machinery using data mning and CLIPS-based expert system[C]// Isecs International Colloquium on Computing,Communication,Control,& Management,2008.

      [15]? SONG Z A. Fault diagnosis expert system of the electrical traction shearer type 3LS[C]// Wase International Conference on Information Engineering,2010.

      和龙市| 寻甸| 绥滨县| 平安县| 龙江县| 浦城县| 高碑店市| 安新县| 东山县| 老河口市| 宝鸡市| 迁安市| 泰兴市| 巨野县| 九寨沟县| 皋兰县| 乐亭县| 和平区| 灵石县| 南昌县| 壤塘县| 德昌县| 高淳县| 资兴市| 东莞市| 潢川县| 沭阳县| 滦平县| 碌曲县| 广南县| 东港市| 嘉义市| 百色市| 南澳县| 毕节市| 阿克苏市| 青海省| 昌黎县| 胶南市| 南郑县| 禹城市|