張亞倫
摘 要:本文將針對(duì)在礦山機(jī)械中十分重要的礦用提升機(jī)建立一個(gè)進(jìn)行故障診斷的專家系統(tǒng),收集專業(yè)資料建立起腳本文件并對(duì)腳本文件進(jìn)行結(jié)構(gòu)化分析,建立起故障診斷的故障征兆集和故障原因集。并以主軸承裝置為例詳細(xì)說明系統(tǒng)的工作過程。
關(guān)鍵詞:礦用提升機(jī);故障;專家系統(tǒng);主軸承裝置
礦用提升機(jī)被稱為“礦井的咽喉”。無論是在自動(dòng)化生產(chǎn)領(lǐng)域還是在采礦業(yè)中軍占有重要位置。其工作環(huán)境十分特殊,一旦發(fā)生故障將造成不可估量的人員損失和經(jīng)濟(jì)損失,因此在故障出現(xiàn)前后能快速準(zhǔn)確地找出故障原因就顯得尤為重要[1]。在長期的生產(chǎn)實(shí)踐過程中積累了豐富的經(jīng)驗(yàn),將故障分為以下幾類:主軸承故障,制動(dòng)系統(tǒng)故障,減速系統(tǒng)故障,鋼絲繩、天輪、提升容器故障,主軸、卷筒故障和調(diào)繩離合裝置故障。具體內(nèi)容如圖1—圖6所示:
本文中故障診斷專家系統(tǒng)的功能是根據(jù)現(xiàn)場的情況確定是否有故障并推斷故障的類型和位置,因此需要對(duì)現(xiàn)場狀態(tài)進(jìn)行進(jìn)行評(píng)估,根據(jù)上一部分所收集到的資料,確定了以下的故障征兆集與故障原因集:
主軸承部分故障征兆集:強(qiáng)金屬音;規(guī)則音;不規(guī)則音;異常磨損,振動(dòng)大;異常溫升;
主軸承部分故障原因集:異常載荷;潤滑劑不足或不合適;裝配不良;滾道剝離或生銹;游隙過大;異物入侵;滾動(dòng)體損傷;密封不良;
制動(dòng)系統(tǒng)故障征兆集:局部軸瓦過熱;松閘不靈活;制動(dòng)力矩不足;軸瓦偏磨;油壓不穩(wěn);
制動(dòng)系統(tǒng)故障原因集:軸瓦調(diào)整不當(dāng),制動(dòng)力矩分布不均;轉(zhuǎn)動(dòng)活結(jié)不靈活;制動(dòng)油缸卡缸;油壓壓力??;制動(dòng)重量不夠,盤形彈簧彈力不夠;密封皮碗或漲圈過緊;活塞表面不光滑;油孔或油管堵塞;密封圈漏氣;油質(zhì)不良;油泵工作性能不良;軸瓦與制動(dòng)中心線不重合,偏差過大;軸瓦間隙不均勻;
調(diào)繩離合裝置故障征兆集:運(yùn)動(dòng)卷筒卡在軸上;離合器發(fā)熱;離合器不能很好的合上;離合器氣缸內(nèi)有敲擊聲;
調(diào)繩離合裝置故障原因集:活動(dòng)卷筒的軸套潤滑不良;尼龍繩套與軸連接在一起;離合器溝槽內(nèi)有臟物或金屬碎屑;內(nèi)齒圈和外齒輪的輪齒上有毛刺;活塞安裝不正確;活塞與缸蓋間間隙太小[1]
在系統(tǒng)發(fā)生某一個(gè)故障后, 經(jīng)過復(fù)雜系統(tǒng)的作用之后會(huì)產(chǎn)生多個(gè)外在表現(xiàn),比如聲音異常,發(fā)熱異常,機(jī)械破壞等,而同一種故障現(xiàn)象也可能有多種故障原因?qū)е?,所以根?jù)故障現(xiàn)象確定故障原因的推理過程肯定是不確定的,異?,F(xiàn)象產(chǎn)生時(shí)會(huì)有多個(gè)可能的結(jié)果,需要由現(xiàn)場操作的技術(shù)人員逐個(gè)排查,因此本文中所建立的專家系統(tǒng)是為現(xiàn)場操作的技術(shù)人員提供參考信息之用。使用過程為:首先,由現(xiàn)場人員發(fā)現(xiàn)異常之后開啟專家系統(tǒng),啟動(dòng)后專家系統(tǒng)通過交互界面向現(xiàn)場人員發(fā)出一系列的詢問,詢問內(nèi)容是是否有某故障現(xiàn)象,用戶向回答yes或者no,所有問題詢問結(jié)束后向用戶輸出診斷結(jié)果。在系統(tǒng)內(nèi)部動(dòng)作過程開始于用戶輸入信息,每回答一個(gè)問題,系統(tǒng)內(nèi)部推理機(jī)就會(huì)運(yùn)行并得出一系列推理,之后將這些知識(shí)庫中相關(guān)信息及這些推論掉入數(shù)據(jù)庫[2],當(dāng)作事實(shí),用事實(shí)和數(shù)據(jù)庫中數(shù)據(jù)和知識(shí)庫中事實(shí)規(guī)則進(jìn)行匹配,匹配成功得到最終的診斷結(jié)果之后輸出所有匹配成功的診斷結(jié)果。所以本系統(tǒng)的關(guān)鍵模塊是推理機(jī),其工作原理為:通過詢問程序向用戶發(fā)出提問,若得到肯定的回答,則作出肯定的斷言,得到肯定的事實(shí),最后將這個(gè)事實(shí)調(diào)入數(shù)據(jù)庫和數(shù)據(jù)庫中規(guī)則相匹配,若匹配成功,則輸出對(duì)應(yīng)的診斷結(jié)果并將該肯定結(jié)論保留到數(shù)據(jù)庫中,如果根據(jù)當(dāng)前的已知事實(shí)無法得到確定的診斷結(jié)果,則回溯到詢問模塊,繼續(xù)向用戶發(fā)出提問。如果詢問得到的是否定的回答,即沒有某個(gè)故障現(xiàn)象,則系統(tǒng)作出否定斷言,得到相應(yīng)的否定事實(shí),之后將該事實(shí)同樣添加到數(shù)據(jù)庫中,將其與知識(shí)庫中的規(guī)則相匹配,判斷能否得到相應(yīng)的結(jié)論,若能則輸出診斷結(jié)果,否則繼續(xù)返回到詢問模塊,發(fā)出提問。若系統(tǒng)發(fā)出所有提問后仍然沒有匹配成功,則輸出無法確定故障原因。
以主軸承故障為例,詳細(xì)說明程序的運(yùn)行過程:
源程序如下
主軸承模塊診斷程序:
/*以下是基本事實(shí)的定義*/
xpositive(symbol,symbol)
xnegative(symbol,symbol).
/*以下是謂詞定義*/
reason_is(symbol).
positive(symbol,symbol)
negative(symbol,symbol)
ask(symbol,symbol,symbol)
remember(symbol,symbol,symbol)
clear_facts()
run().
/*下面是為推理機(jī)提供知識(shí)*/
reason_is(zhuZCr1):- %當(dāng)存在強(qiáng)金屬音現(xiàn)象時(shí),故障原因?yàn)楫惓]d荷
positive(has,zhuZCs1).
reason_is(zhuZCr2):- % 當(dāng)存在強(qiáng)金屬音,異常磨損和異常溫升現(xiàn)象時(shí)
positive(has,zhuZCs1), % 故障原因?yàn)闈櫥瑒┎蛔慊虿缓线m
positive(has,zhuZCs4),
positive(has,zhuZCs6).
reason_is(zhuZCr3):-
positive(has,zhuZCs1),
positive(has,zhuZCs4),
positive(has,zhuZCs5).
reason_is(zhuZCr4):-
positive(has,zhuZCs2),
positive(has,zhuZCs5),
positive(has,zhuZCs6).
reason_is(zhuZCr5):-
positive(has,zhuZCs3).
reason_is(zhuZCr6):-
positive(has,zhuZCs3),
positive(has,zhuZCs5),
positive(has,zhuZCs6).
reason_is(zhuZCr7):-
positive(has,zhuZCs3).
reason_is(zhuZCr8):-
positive(has,zhuZCs4).
/*以下是推理過程*/
run():-
reason_is(X),!,
write(“\nthe reason maybe “,X).
nl,nl,
run():-
write(“diagnosis complete”),
write(“thank you for your usage” ),
clear_facts.
positive(X,Y):-
xpositive(X,Y),!.
positive(X,Y):-
not(xnegative(X,Y)),
ask(X,Y,yes).
negative(X,Y):-
xnegative(X,Y),!.
negative(X,Y):-
not(xpositive(X,Y)),
ask(X,Y,no).
ask(X,Y,yes):-
!,
write(“Does it”,X),
write(“the symbol of”,Y),
readln(Reply),nl,
frontchar(Reply,”yes”),
remember(X,Y,yes).
ask(X,Y,no):-
!,
write(“Does it”,X),
write(“the symbol of”,Y),
readln(Reply),nl,
frontchar(Reply,”no”),
remember(X,Y,no).
remember(X,Y,yes):-
assertz(xpositive(X,Y)).
remember(X,Y,no):-
assertz(xnegative(X,Y)).
clear_facts:-
write(“please press the space bar to exit”),
retractall(_,dbasedom),
readchar(_).
goal
run.
S1:操作系統(tǒng)通過關(guān)鍵詞goal找到目標(biāo)程序run;
S2:取出run程序的第一個(gè)前提條件reason_is(X)判斷是否成立
S3:在知識(shí)庫中尋找與謂詞reason_is(X)相匹配的規(guī)則與知識(shí),第一條規(guī)則是reason_is(zhuZCr1),謂詞相同,匹配成功,開始查驗(yàn)第一條規(guī)則的前提條件
S4:前提條件是positive(has,zhuZCs1),推理機(jī)中對(duì)positive(has,zhuZCs1)進(jìn)行說明的規(guī)則有兩個(gè)positive(X,Y):-xpositive(X,Y),!.和positive(X,Y):- not(xnegative(X,Y)),ask(X,Y,yes).其中第一個(gè)規(guī)則中前提條件為xpositive(X,Y),沒有與xpositive()相關(guān)的謂詞聲明,故按照第二條規(guī)則進(jìn)行推理
S5:第二條規(guī)則中第一個(gè)前提條件為非xnegative(X,Y), xnegative(X,Y)與xpositive(X,Y)一樣是無法判斷的,因此xnegative(X,Y)不成立的條件成立,取出第二條規(guī)則的第二個(gè)前提條件
S6: 取出第二條規(guī)則的第二個(gè)前提條件是ask(X,Y,yes).故轉(zhuǎn)到程序段ask(X,Y,yes),判斷其是否成立
S7: ask(X,Y,yes)程序段的前兩個(gè)要求為輸出問題的指令,執(zhí)行后將在屏幕上顯示如下信息:
Does it has the symbol of zhuZCs1?
S8:用戶根據(jù)實(shí)際情況回答yes或者no
S9:第三和第四兩條指令的功能是讀取并保存用戶輸入的信息
S10:如果輸入的是yes,則ask(X,Y,yes)成立,轉(zhuǎn)去執(zhí)行remember(X,Y,yes)指令,其功能為斷言xpositive(X,Y).成立,生成事實(shí)xpositive(X,Y),回溯查驗(yàn)規(guī)則positive(X,Y):-xpositive(X,Y),!.前提條件成立,則positive(X,Y).成立;
X綁定zhuZCr1成功,轉(zhuǎn)去執(zhí)行run的第三個(gè)條件,輸出信息“the reason maybe zhuZCr1”
并換行
最后執(zhí)行強(qiáng)制失敗指令fail,轉(zhuǎn)去驗(yàn)證知識(shí)庫中推理驗(yàn)證第二條知識(shí),直到知識(shí)庫中所有知識(shí)均被查驗(yàn)完畢,輸出diagnosis complete thank you for your usage
S10:如果輸入的是no,則ask(X,Y,no)成立轉(zhuǎn)去執(zhí)行remember(X,Y,no)指令,其功能為斷言xnegative(X,Y).成立,生成事實(shí)xnegative(X,Y),回溯查驗(yàn)規(guī)則positive(X,Y):-xnegative(X,Y),!.前提條件不成立,則終止回溯,開始驗(yàn)證第二條規(guī)則;
直到知識(shí)庫中所有知識(shí)均被查驗(yàn)完畢,輸出diagnosis complete thank you for your usage
參考文獻(xiàn)
[1]郭文斌. HSVE2.8型礦用提升機(jī)故障診斷專家系統(tǒng)設(shè)計(jì). 江西煤炭科技. 2016.11.15
[2]武波,馬玉祥. 專家系統(tǒng). 北京理工大學(xué)出版社 2003.09