王家海,徐旭輝,沈佳豪,江小林,柴李夢
(同濟(jì)大學(xué)中德學(xué)院,上海 201804)
制造業(yè)是國民經(jīng)濟(jì)的命脈,而數(shù)控機(jī)床是制造業(yè)之母。隨著科技的發(fā)展,數(shù)控機(jī)床的精度越來越高,數(shù)控機(jī)床的復(fù)雜度越來越高,數(shù)控機(jī)床的故障診斷也是越來越復(fù)雜,因?yàn)樵诙虝r(shí)間內(nèi)實(shí)現(xiàn)快速診斷、精確定位故障原因和部位顯得越來越重要[1]。
對于故障診斷方法,國內(nèi)外的研究有:故障樹診斷法,這種方法直觀性好,通用性好,靈活性大,但也存在著建樹困難,繁雜,工作量大,并且容易搞錯(cuò)[2]。適合故障空間較小的故障診斷。基于不確定推理的故障診斷,存在的問題是對于故障現(xiàn)象的可信度需要人為的設(shè)定,這就導(dǎo)致主觀性較強(qiáng),并且過程相對而言比較復(fù)雜[3]?;诎咐评淼墓收显\斷,存在缺乏相應(yīng)的知識(shí)表示和獲取的研究的問題[4]。針對上述難題,通過分析實(shí)際診斷過程設(shè)計(jì)了一套故障診斷系統(tǒng),包含用來定義故障模型的七層故障診斷知識(shí)結(jié)構(gòu),以及具備機(jī)器學(xué)習(xí)能力的診斷系統(tǒng)。
經(jīng)過對數(shù)千例西門子數(shù)控系統(tǒng)故障案例的分析總結(jié),發(fā)現(xiàn)故障案例的有效信息,即存儲(chǔ)于專家系統(tǒng)知識(shí)庫中的數(shù)據(jù)可歸結(jié)為7層網(wǎng)絡(luò)結(jié)構(gòu):系統(tǒng)、子系統(tǒng)、部位、故障描述、故障原因、故障現(xiàn)象、故障解決方案。
其中系統(tǒng)對子系統(tǒng),子系統(tǒng)對部位,部位對故障描述是一對多的關(guān)系。故障描述和故障原因是一對一的關(guān)系。故障原因和故障現(xiàn)象,故障原因和解決方案存在著多對多的關(guān)系。7層知識(shí)庫的設(shè)計(jì)充分符合三范式原則。
如此設(shè)計(jì)知識(shí)庫,首先從層次上展現(xiàn)了知識(shí)體系。其次,故障原因,故障現(xiàn)象,故障部位和故障解決方案這四個(gè)重要知識(shí)結(jié)構(gòu)之間的關(guān)系可以清晰表達(dá)出來。再次這樣的設(shè)計(jì)可以將后面需要用的算法與知識(shí)體系進(jìn)行完美的結(jié)合,可以快速從現(xiàn)象找到原因,從原因找到故障的解決方法和故障部位。
表1 七層故障診斷知識(shí)結(jié)構(gòu)
故障現(xiàn)象為故障的特征屬性,可以直接用粗糙集理論來處理,所以對一個(gè)決策表系統(tǒng),屬性的重要度為:
(1)
其中,card(*)表示集合的基,ai表示第i個(gè)屬性。rc(ai)越大,表明屬性ai對決策越重要,當(dāng)從條件屬性中去掉屬性a_i后,案例庫的分類U/D的正域會(huì)受到較大的影響。
對求得的屬性重要度rc(ai)進(jìn)行歸一化處理,得到屬性ai的權(quán)重值ωai:
(2)
SimRank算法可以挖掘出故障診斷知識(shí)結(jié)構(gòu)圖中故障現(xiàn)象與故障原因之間的聯(lián)系SimRank算法公式如下[5]:
(3)
s(a,b)為對象a和對象b之間的相似度,即圖1中兩個(gè)節(jié)點(diǎn)a、b之間的相似度。C是衰減因子,它的取值范圍為[0,1],I(a)是節(jié)點(diǎn)a在圖中的入邊集合,I(b)是節(jié)點(diǎn)b在圖中的入邊集合。
S(a,b)=1,if (a=b)
(4)
圖1 故障原因與故障現(xiàn)象局部圖
具體計(jì)算過程中,首先由故障現(xiàn)象作為對象,通過式(4)計(jì)算故障案例之間的相似度。再以故障案例為對象,通過式(4)更新故障現(xiàn)象之間的相似度。反復(fù)迭代直至趨于穩(wěn)定,即可得到數(shù)據(jù)庫中不同案例與輸入的故障案例之間經(jīng)過修正的相似度。
盡管SimRank算法能夠得到兩個(gè)節(jié)點(diǎn)間的相似關(guān)系,但在計(jì)算時(shí)并沒有考慮所引用的對象的權(quán)重大小,會(huì)被不重要但數(shù)量多的對象干擾。因而考慮使用粗糙集計(jì)算得到的權(quán)重改進(jìn)算法,將現(xiàn)象的重要都和案例的相似度結(jié)合,從而使得算法更加接近事實(shí)本身。改進(jìn)后的算法(RSR算法)具體公式如下:
(5)
其中,e-|I(a) ∩I(b)|為衰減因子,目的是使計(jì)算結(jié)果收斂。|I(a)∩I(b)|表示某兩個(gè)案例相關(guān)的共同的故障現(xiàn)象,或者某兩個(gè)故障現(xiàn)象相關(guān)的共同的案例。eRi·eRj其中e*為自然對數(shù),Ri和Rj為粗糙集算出來的重要度[6]。
(1)得到目標(biāo)案例和相似案例包含的所有報(bào)警號和現(xiàn)象;
(2)根據(jù)粗糙計(jì)算法確定已有的報(bào)警號和現(xiàn)象的重要度;
(3)以案例為元素、報(bào)警號和現(xiàn)象為節(jié)點(diǎn),計(jì)算案例的相似度;
(4)以報(bào)警號和現(xiàn)象為元素、案例為幾點(diǎn),計(jì)算報(bào)警號和現(xiàn)象的相似度;
(5)反復(fù)迭代上述計(jì)算過程,使相似度趨近于一恒定值;
(6)得到報(bào)警號和現(xiàn)象的相似度。
如圖2所示,當(dāng)機(jī)器獲取故障現(xiàn)象信息后,粗糙集算法開始運(yùn)行,計(jì)算出相關(guān)的故障現(xiàn)象的權(quán)重。然后SimRank算法再開始運(yùn)行,根據(jù)算出的現(xiàn)象權(quán)重以及故障現(xiàn)象和故障原因之間的拓?fù)潢P(guān)系,算出相似度,進(jìn)而得出知識(shí)庫中最相近的案例,然后診斷出這個(gè)故障的原因,故障部位。
圖2 算法系統(tǒng)工作流程圖
為了檢查和驗(yàn)證RSR算法在實(shí)際使用情況的合理和有效性,實(shí)驗(yàn)以真實(shí)維修記錄為基礎(chǔ)設(shè)計(jì)一組測試數(shù)據(jù),分別比對單一現(xiàn)象輸入、兩個(gè)現(xiàn)象輸入和多個(gè)現(xiàn)象輸入情況時(shí)的相似度計(jì)算結(jié)果,相似度排序和實(shí)際維修參考價(jià)值排序最為符合則為優(yōu)。
本實(shí)驗(yàn)測試數(shù)據(jù)來源于真實(shí)案例測試數(shù)據(jù)共包含10個(gè)現(xiàn)象,測試案例和現(xiàn)象之間的對應(yīng)關(guān)系如表2所示。通過粗糙集可知,現(xiàn)象A、現(xiàn)象B是最為重要的現(xiàn)象,現(xiàn)象D、G、I次重要。
表2 測試案例
3.3.1 單一現(xiàn)象作為輸入源
依次以現(xiàn)象A和現(xiàn)象B作為輸入的故障現(xiàn)象,計(jì)算結(jié)果如表3和表4所示。
表3 現(xiàn)象A作為輸入源時(shí)測試結(jié)果
表4 現(xiàn)象B作為輸入源時(shí)測試結(jié)果
當(dāng)輸入源僅包含一個(gè)現(xiàn)象時(shí),較難通過直觀感受判斷測試案例和故障案例之間的關(guān)系,因此此處僅比較兩個(gè)算法之間的差異。由圖可得,兩個(gè)算法之間差異并不明顯,排序結(jié)果基本一致,僅在表3中案例2和案例4出現(xiàn)不同。案例2只包含重要現(xiàn)象A,案例4同時(shí)包含重要現(xiàn)象A和B,因此案例4的實(shí)驗(yàn)結(jié)果位置應(yīng)高于案例2,RSR算法更為合理。
3.3.2 兩個(gè)現(xiàn)象作為輸入源
現(xiàn)象A和現(xiàn)象B同時(shí)作為故障現(xiàn)象,計(jì)算結(jié)果如表5所示。
表5 現(xiàn)象A、B作為輸入源時(shí)測試結(jié)果
觀察測試數(shù)據(jù)可得,RSR與SimRank++的排序結(jié)果一致,符合現(xiàn)實(shí)情況,同時(shí)包含現(xiàn)象A和現(xiàn)象B的測試案例排列最靠前。
3.3.3 多個(gè)現(xiàn)象作為輸入源
首先,將較重要的現(xiàn)象全部做為輸入源,得到表6所示的測試結(jié)果。
表6 重要現(xiàn)象作為輸入源時(shí)測試結(jié)果
當(dāng)以較重要現(xiàn)象作為故障現(xiàn)象輸入算法時(shí),RSR算法將現(xiàn)象的重要程度納入計(jì)算范疇,排名靠前的測試案例均含有更多的輸入現(xiàn)象,且包含重要的現(xiàn)象越多,排名越靠前。SimRank++算法則僅考慮測試案例和故障案例的相似程度,測試案例9相比測試案例8含有更多的重要現(xiàn)象,但排名卻落后于測試案例8。
第二步選擇所有不重要的現(xiàn)象作為輸入源,得到表7所示的測試結(jié)果。
表7 不重要現(xiàn)象作為輸入源時(shí)測試結(jié)果
這里,兩個(gè)算法的差異主要體現(xiàn)在排序的末端,即相似度較低的測試案例的選擇上。在SimRank++計(jì)算過程中,測試案例7的相似度值比測試案例9的相似度值高,然而測試案例9含有更多的重要現(xiàn)象,能夠更好地體現(xiàn)案例之間的差異。因此,RSR算法的結(jié)果更加合理。
最后,選擇現(xiàn)象A~E作為輸入源測試算法,以此查看包含重要、次重要和不重要現(xiàn)象的排序情況。測試結(jié)果如表8所示。
表8 綜合測試結(jié)果
在綜合輸入源測試中,RSR對SimRank++的排序結(jié)果同樣做出了調(diào)整,將包含更少重要現(xiàn)象的測試案例7調(diào)整到排序中部。
七層故障診斷知識(shí)結(jié)構(gòu)、RSR算法和貝葉斯平均算法相結(jié)合的故障診斷系統(tǒng)有效地解決了數(shù)控機(jī)床故障診斷領(lǐng)域的不足,提供了一套能夠運(yùn)用于實(shí)際生產(chǎn)的解決方案。七層故障診斷知識(shí)結(jié)構(gòu)幫助接觸故障指示的表達(dá)難題,提供了標(biāo)準(zhǔn)化參考方案。粗糙集和SimRank算法相結(jié)合的RSR算法提高了故障診斷時(shí)的搜索準(zhǔn)確性和案例可用性,使診斷方案更加符合客觀事實(shí)。RSR算法使故障診斷系統(tǒng)具備了一定程度的學(xué)習(xí)能力,通過數(shù)據(jù)積累和使用經(jīng)驗(yàn),能夠動(dòng)態(tài)調(diào)整系統(tǒng)效能。最后,這套系統(tǒng)已經(jīng)在基于web開發(fā)的故障診斷系統(tǒng)中得到驗(yàn)證,能夠在實(shí)際生產(chǎn)中發(fā)揮作用。
[1] 王家海,黃江濤,沈斌,等.數(shù)控機(jī)床智能故障診斷技術(shù)的研究現(xiàn)狀與展望[J].機(jī)械制造 2014,52(5)30-32.
[2] 盛博, 鄧超, 熊堯, 等. 基于圖論的數(shù)控機(jī)床故障診斷方法[J]. 計(jì)算機(jī)集成制造系統(tǒng), 2015, 21(6): 1559-1570.
[3] 王家海, 劉晨陽. 基于不確定推理的數(shù)控機(jī)床故障診斷的研究[J]. 制造技術(shù)與機(jī)床, 2014 (1):48-52.
[4] 王家海, 張燕青, 周天航. 數(shù)控機(jī)床故障診斷的三維顯示與優(yōu)化的研究[J]. 機(jī)械科學(xué)與技術(shù), 2015, 34(12): 1885-1890.
[5] 魏現(xiàn)輝, 張紹武, 楊亮, 等. 基于加權(quán) SimRank 的跨領(lǐng)域文本情感傾向性分析[J]. 模式識(shí)別與人工智能, 2013, 26(11): 1004-1009.