《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 業(yè)界動(dòng)態(tài) > 面向?qū)ο蟮姆椒ㄔ跈C(jī)械故障診斷系統(tǒng)中的應(yīng)用

面向?qū)ο蟮姆椒ㄔ跈C(jī)械故障診斷系統(tǒng)中的應(yīng)用

2008-12-25
作者:(1)張苗苗 謝劍英 (2)方

  摘 要: 針對(duì)機(jī)械設(shè)備的故障診斷" title="故障診斷">故障診斷,應(yīng)用面向?qū)ο?/a>" title="面向?qū)ο?>面向?qū)ο?/a>的方法和技術(shù)、簡(jiǎn)化了復(fù)雜系統(tǒng)的設(shè)計(jì),提高了知識(shí)的表達(dá)能力和診斷效率。
  關(guān)鍵詞: 面向?qū)ο?建模 知識(shí)庫(kù) 消息傳遞 故障診斷


  面向?qū)ο蟮姆椒ㄗ鳛橐环N新的
程序設(shè)計(jì)" title="程序設(shè)計(jì)">程序設(shè)計(jì)思想和認(rèn)知方法學(xué)引起了人們廣泛的重視。其基本特征有:信息隱蔽(或封裝)、數(shù)據(jù)抽象、動(dòng)態(tài)鏈接和繼承。面向?qū)ο蟮某绦蚓哂心K化、表達(dá)廣泛概念、默認(rèn)值表達(dá)和代碼復(fù)用等特點(diǎn)。面向?qū)ο缶幊淌瓜到y(tǒng)軟件結(jié)構(gòu)和空間中對(duì)問(wèn)題的描述相一致,把對(duì)應(yīng)于客觀存在實(shí)體的數(shù)據(jù)和作用于實(shí)體的過(guò)程包含在一個(gè)“對(duì)象”之內(nèi),從而使對(duì)象成為比數(shù)據(jù)和過(guò)程具有更高結(jié)構(gòu)層次的計(jì)算實(shí)體[1]
  診斷是在對(duì)某一研究對(duì)象的目前所處狀態(tài)及其有關(guān)參數(shù)作出判決后,得到有益的信息,進(jìn)而對(duì)所研究對(duì)象的運(yùn)行情況作出正確與否的結(jié)論。對(duì)于復(fù)雜系統(tǒng)的診斷問(wèn)題,診斷過(guò)程復(fù)雜,診斷知識(shí)多樣。而采用面向?qū)ο蟮募夹g(shù)、則可以使故障診斷系統(tǒng)" title="故障診斷系統(tǒng)">故障診斷系統(tǒng)具有良好的可擴(kuò)充性和可重用性,便于從現(xiàn)實(shí)事物對(duì)象提取系統(tǒng)抽象模型,實(shí)現(xiàn)復(fù)雜系統(tǒng)的設(shè)計(jì);并且有利于實(shí)現(xiàn)系統(tǒng)對(duì)故障知識(shí)進(jìn)行層次表示和混合表達(dá),提高系統(tǒng)故障診斷效率。可以說(shuō),面向?qū)ο蟮募夹g(shù)在故障診斷系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)中得到了充分的體現(xiàn)。下面結(jié)合所研制的故障診斷系統(tǒng)對(duì)此作以描述。此系統(tǒng)由軟、硬件實(shí)現(xiàn),主要是有目的地采集相關(guān)信息,用適當(dāng)?shù)姆治龇椒ㄌ崛∮幸饬x的特征;并應(yīng)用診斷知識(shí)與合適的分析策略,分析出系統(tǒng)中故障的部位及原因,并加以定量描述;最后作出診斷決策和狀態(tài)預(yù)測(cè),實(shí)現(xiàn)采用了面向?qū)ο蟮姆治龊途幊谭椒?。主要包括?shù)據(jù)采集、信號(hào)分析、診斷對(duì)象建模、神經(jīng)網(wǎng)絡(luò)建模、診斷等模塊。
1 面向?qū)ο蟮幕咎卣?SUP>[1][3][5][6]
1.1 層次性
  面向?qū)ο蠓椒▽W(xué)認(rèn)為對(duì)象都可由相對(duì)簡(jiǎn)單的對(duì)象經(jīng)層層組合而成,因此復(fù)雜對(duì)象可按其結(jié)構(gòu)抽象分解關(guān)系組成層次結(jié)構(gòu),這樣可把復(fù)雜系統(tǒng)看成是一個(gè)由有限的結(jié)構(gòu)元素按一定規(guī)律聚合而成的系統(tǒng),系統(tǒng)的元素是子系統(tǒng),子系統(tǒng)的元素可以是更深層次的子系統(tǒng),如此類(lèi)推,直至把元素表示為某一具體的物理零件?,F(xiàn)以CE6140型車(chē)床的結(jié)構(gòu)分解來(lái)說(shuō)明這種層次結(jié)構(gòu),示意圖如圖1所示。同樣,復(fù)雜系統(tǒng)的故障也具有層次關(guān)系,這樣可深入到基本結(jié)構(gòu)元素,找到引起故障的最終原因,如圖2所示。因此,基于機(jī)床這一復(fù)雜診斷對(duì)象的層次特性,可對(duì)其進(jìn)行結(jié)構(gòu)分解和故障分解,以逐步細(xì)化縮小故障范圍,降低診斷問(wèn)題求解的復(fù)雜性,提高診斷的準(zhǔn)確性和靈活性。


  由于機(jī)械設(shè)備機(jī)構(gòu)和故障的層次性與面向?qū)ο蠹夹g(shù)中的對(duì)象的繼承性和層次性相對(duì)應(yīng),因此設(shè)備診斷對(duì)象的構(gòu)成適合采用面向?qū)ο蟮姆椒?。在機(jī)械設(shè)備中,如果設(shè)備的元素或系統(tǒng)有故障,則所有包含這個(gè)元素的上級(jí)設(shè)備子系統(tǒng)直至設(shè)備本身也有故障。而當(dāng)上一級(jí)設(shè)備元素有故障,則此故障必源于下一級(jí)相應(yīng)的元素或聯(lián)系的故障[2]。
1.2 類(lèi)和實(shí)例
  在面向?qū)ο蠓椒▽W(xué)中,所有對(duì)象都是類(lèi)的實(shí)例。對(duì)象類(lèi)是建立在對(duì)象概念基礎(chǔ)上,由類(lèi)所描述的對(duì)象即稱(chēng)為類(lèi)的實(shí)例。類(lèi)是實(shí)例的模板,也是數(shù)據(jù)的抽象;實(shí)例是類(lèi)的一個(gè)個(gè)體。設(shè)備的基本元件有齒輪、軸、軸承等??煞謩e設(shè)計(jì)類(lèi),包含其屬性描述和功能描述。如齒輪類(lèi)聲明如下:
TGearTool:public TBoxTool { //從TboxTool繼承
public:
  TGearTool():TBoxTool(″″);
  TGearTool(char* name):TBoxTool(name); //運(yùn)用多態(tài)性技術(shù)
  ~TGearTool(); //析構(gòu)函數(shù)
  virtual void DrawObject(TDC&); //畫(huà)齒輪
  bool operator ==(const TGearTool& other) const;
  GearParam gearparam; //齒輪屬性
protected:
  friend ostream& operator <<(ostream& os、 const TGearTool& tool); //運(yùn)用流類(lèi)的輸入來(lái)保存永久對(duì)象
  friend istream& operator>>(istream&is、TGearTool& tool); //運(yùn)用流類(lèi)的輸出打開(kāi)永久對(duì)象
  ......
  };
  類(lèi)與類(lèi)之間的繼承關(guān)系也即子類(lèi)-父類(lèi)的關(guān)系。上面三個(gè)類(lèi)分別從零部件類(lèi)Component繼承特性,因?yàn)辇X輪、軸、軸承等可進(jìn)一步抽取其共性如型號(hào)、材料、特征故障頻率等,形成零部件類(lèi)。齒輪類(lèi)、軸類(lèi)等也可進(jìn)一步派生其它類(lèi),如圖3所示。


  在軟件系統(tǒng)中,這種面向?qū)ο蟪绦蛟O(shè)計(jì)提供的繼承機(jī)制,可以避免對(duì)象的數(shù)據(jù)和操作的大量重復(fù),實(shí)現(xiàn)代碼重用,大大地減少了對(duì)象、對(duì)象類(lèi)的創(chuàng)建工作量。這種繼承性使所建的軟件系統(tǒng)具有開(kāi)放性,要建立的系統(tǒng)并非從空白開(kāi)始,而是盡可能利用已建立的系統(tǒng)或已建立的類(lèi),以它們?yōu)榛A(chǔ)進(jìn)行擴(kuò)充,考慮向上或向下的接口方法[3]。
1.3 消息傳遞
  對(duì)象間除了通過(guò)消息傳遞完成通信外,不再有任何其它的聯(lián)系。消息中可以包含運(yùn)算參數(shù),也可有對(duì)象名。向某對(duì)象發(fā)送消息就是要求它根據(jù)目前狀態(tài)和處理能力執(zhí)行某個(gè)操作。在消息傳遞過(guò)程中,消息發(fā)送者只是知道消息接受者具有某種功能,而不知道它的內(nèi)部結(jié)構(gòu)以及如何實(shí)現(xiàn)這種功能,從而支撐了數(shù)據(jù)的抽象和封裝。診斷系統(tǒng),主要由齒輪、軸、軸承等零部件對(duì)象通過(guò)一定的傳動(dòng)關(guān)系有序組成,當(dāng)此傳動(dòng)鏈上的某根軸接受到賦予其轉(zhuǎn)速的消息時(shí),則根據(jù)對(duì)象內(nèi)所提供的操作計(jì)算出該軸的特征頻率,同時(shí)發(fā)送消息給此傳動(dòng)鏈上相關(guān)對(duì)象。這些對(duì)象接受到消息后,分別在其內(nèi)部根據(jù)一定的傳動(dòng)信息計(jì)算出對(duì)象的特征頻率。診斷過(guò)程也是用消息來(lái)觸發(fā),例如對(duì)于齒輪故障診斷,當(dāng)齒輪對(duì)象接受到其它對(duì)象所發(fā)出的診斷消息時(shí),它會(huì)根據(jù)其當(dāng)時(shí)的狀態(tài)如故障特征頻率、故障特征頻率處的相對(duì)幅值比、歸一化值等信息,發(fā)送消息給相應(yīng)的模糊神經(jīng)網(wǎng)絡(luò)" title="模糊神經(jīng)網(wǎng)絡(luò)">模糊神經(jīng)網(wǎng)絡(luò)自動(dòng)進(jìn)行推理、診斷,而不需要外部的干涉,并且其它對(duì)象也不知道它的內(nèi)部實(shí)現(xiàn)過(guò)程。對(duì)象間的發(fā)送消息實(shí)現(xiàn)了機(jī)械設(shè)備的診斷,如圖4所示,圖中FNN(Fuzzy Neural Network)表示模糊神經(jīng)網(wǎng)絡(luò)模型。


2 知識(shí)的面向?qū)ο蟊硎?/STRONG>
  復(fù)雜系統(tǒng)診斷問(wèn)題求解中涉及到的診斷知識(shí)很多,不僅包括診斷對(duì)象的結(jié)構(gòu)與功能方面的知識(shí),還包括各種因果知識(shí)、啟發(fā)性知識(shí)經(jīng)驗(yàn)等,因此需把各種知識(shí)有機(jī)地結(jié)合起來(lái)。面向?qū)ο蟮姆椒梢詫⒐收显\斷知識(shí)組成一種混合知識(shí)表達(dá)形式,即以對(duì)象為中心,將對(duì)象的屬性動(dòng)態(tài)行為特征、相關(guān)領(lǐng)域知識(shí)庫(kù)和處理方法等有關(guān)知識(shí)封裝在表達(dá)對(duì)象的結(jié)構(gòu)中,使故障診斷知識(shí)庫(kù)或文檔具有良好的體系結(jié)構(gòu);通過(guò)對(duì)象類(lèi)的知識(shí)表達(dá),實(shí)現(xiàn)數(shù)據(jù)抽象與信息共享。
2.1 機(jī)械設(shè)備的面向?qū)ο蟊硎?/STRONG>
  由前面敘述可知,診斷對(duì)象可分離出各個(gè)零部件對(duì)象,同時(shí)以對(duì)象的形式寫(xiě)出其功能描述和行為描述。每個(gè)對(duì)象以知識(shí)的載體獨(dú)立于其它對(duì)象,每個(gè)子對(duì)象可寫(xiě)出其功能和結(jié)構(gòu)接口描述,以便零部件對(duì)象出現(xiàn)在某一特定子對(duì)象中,建立與其它零部件對(duì)象的功能和接口聯(lián)系。診斷對(duì)象的知識(shí)庫(kù)可由這些零部件知識(shí)對(duì)象有機(jī)地“堆”在一起組成,我們所開(kāi)發(fā)的面向?qū)ο蟮摹皺C(jī)械設(shè)備建模工具”把此特性提高到了新的高度。工程師可方便地根據(jù)機(jī)械設(shè)備的傳動(dòng)關(guān)系,利用系統(tǒng)所提供的軸、軸承、齒輪、離合器等建模工具方便地作出設(shè)備的機(jī)械構(gòu)造示意圖,并可通過(guò)友好的人機(jī)接口賦予零部件對(duì)象一定的信息,如軸承滾動(dòng)體的個(gè)數(shù)、接觸角、節(jié)徑等。此診斷對(duì)象可方便地修改、查詢(xún),當(dāng)此傳動(dòng)鏈上的任意一根軸被賦予一定的轉(zhuǎn)速后,診斷對(duì)象能根據(jù)對(duì)象間的消息傳遞自動(dòng)搜索其傳動(dòng)鏈關(guān)系并計(jì)算工作頻率等參數(shù),搜索后的信息保存在各零部件對(duì)象中。診斷設(shè)備的面向?qū)ο蟮闹R(shí)表示和建模方法增加了知識(shí)的可重用性和通用性,減輕了工作人員的計(jì)算任務(wù)。
2.2 診斷知識(shí)的面向?qū)ο蟊硎?/STRONG>
  不同零部件對(duì)象的故障模式對(duì)應(yīng)不同的故障文檔庫(kù),為此可分別對(duì)軸、軸承、齒輪、離合器等建立故障文檔庫(kù),文檔庫(kù)的知識(shí)應(yīng)可方便地修改、增加、刪除等。每個(gè)文檔庫(kù)包含的知識(shí)可分為兩部分,一部分為故障知識(shí)的模糊規(guī)則表示;另一部分為儲(chǔ)存模糊診斷知識(shí)的神經(jīng)網(wǎng)絡(luò)。之所以用神經(jīng)網(wǎng)絡(luò)來(lái)儲(chǔ)存模糊規(guī)則,是因?yàn)樯窠?jīng)網(wǎng)絡(luò)的學(xué)習(xí)機(jī)制可對(duì)原有規(guī)則進(jìn)行修改、加入新規(guī)則、對(duì)修改的規(guī)則和新加入的規(guī)則進(jìn)行檢查等,且可避免在模糊推理過(guò)程中增加模糊性的缺點(diǎn)。在具體實(shí)現(xiàn)中,可采用五層FNN保存診斷知識(shí),用神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)模糊推理[7];而模糊規(guī)則則用網(wǎng)絡(luò)的節(jié)點(diǎn)對(duì)象、連接權(quán)對(duì)象、連接結(jié)構(gòu)等來(lái)翻譯解釋。網(wǎng)絡(luò)對(duì)象可由開(kāi)發(fā)的“神經(jīng)網(wǎng)絡(luò)建模工具”來(lái)實(shí)現(xiàn),根據(jù)不同的故障規(guī)則知識(shí)表示可建立不同的網(wǎng)絡(luò)對(duì)象。
  對(duì)于具體網(wǎng)絡(luò),可通過(guò)網(wǎng)絡(luò)對(duì)象所提供的初始化方法完成信息的搜尋,如:網(wǎng)絡(luò)的最大層數(shù),網(wǎng)絡(luò)的輸入節(jié)點(diǎn)、輸出節(jié)點(diǎn)及隱層節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的網(wǎng)絡(luò)層號(hào),與每個(gè)節(jié)點(diǎn)相連的前層所有的節(jié)點(diǎn)、連線(xiàn),與每個(gè)節(jié)點(diǎn)相連的下一層所有的節(jié)點(diǎn)、連線(xiàn),以及每個(gè)節(jié)點(diǎn)對(duì)象的所選函數(shù)、閾值等。所以網(wǎng)絡(luò)的節(jié)點(diǎn)對(duì)象和連線(xiàn)對(duì)象通過(guò)初始化根據(jù)不同的診斷知識(shí)保存了不同的信息。這符合面向?qū)ο蟮闹R(shí)表達(dá),即以對(duì)象為中心,包含與其相關(guān)的完成特定任務(wù)的所有知識(shí)。
3 面向?qū)ο蟮脑\斷推理
  面向?qū)ο蟮谋磉_(dá)機(jī)制在診斷推理中起著重要的作用,因?yàn)槊嫦驅(qū)ο蟊磉_(dá)的結(jié)構(gòu)特征有助于有效地組織和控制推理行為,同時(shí)其本身具有自動(dòng)推理機(jī)制[2]。診斷推理過(guò)程以五層模糊神經(jīng)網(wǎng)絡(luò)為例。它能根據(jù)網(wǎng)絡(luò)中各個(gè)輸入節(jié)點(diǎn)對(duì)象的輸入值、閾值、輸入輸出函數(shù),連線(xiàn)對(duì)象的權(quán)值,隱層節(jié)點(diǎn)對(duì)象的輸入值、閾值、輸入輸出函數(shù)等一層層地前向推理,最終得到輸出節(jié)點(diǎn)對(duì)象所存儲(chǔ)的診斷值,如圖5所示。之所以能自動(dòng)地前向推理,是因?yàn)槊繉拥墓?jié)點(diǎn)對(duì)象及連線(xiàn)對(duì)象不僅存儲(chǔ)了一定的故障規(guī)則知識(shí),還存儲(chǔ)了對(duì)象間的接口連接信息。這種診斷推理算法迅速、可靠。它不僅僅適用于某一特定網(wǎng)絡(luò),而且適用于其它具體網(wǎng)絡(luò),網(wǎng)絡(luò)的層數(shù)及節(jié)點(diǎn)函數(shù)等網(wǎng)絡(luò)信息均未定死。前面提到的網(wǎng)絡(luò)對(duì)象的建模使它可對(duì)故障知識(shí)的更新適應(yīng)得非???,而故障知識(shí)的及時(shí)更新又保證了診斷的可靠、準(zhǔn)確。所以這種面向?qū)ο蟮脑\斷推理方法可用于動(dòng)態(tài)變化的系統(tǒng),系統(tǒng)變化時(shí),只要非常簡(jiǎn)單地操作即可更新故障信息。因此,當(dāng)設(shè)備故障發(fā)生時(shí),診斷網(wǎng)絡(luò)會(huì)用最新的信息去進(jìn)行診斷工作。


4 多態(tài)性及動(dòng)態(tài)鏈接
  多態(tài)性指相同的操作(或函數(shù)、過(guò)程)為不同的對(duì)象所接受時(shí),可導(dǎo)致不同的行為,即同一操作有不同的實(shí)現(xiàn)方法。主要表現(xiàn)在:運(yùn)算符重載、虛函數(shù)與動(dòng)態(tài)鏈接。在圖3所示的零部件類(lèi)中,有一個(gè)畫(huà)圖函數(shù) DrawObject()就應(yīng)用了多態(tài)性技術(shù),它能根據(jù)不同的對(duì)象執(zhí)行不同的動(dòng)作。其聲明如下:
  class Parts{
  ......
  virtual void DrawObject(){}
  };
  齒輪類(lèi)的聲名為:
  class Gear:public parts{
  ......
  virtual void DrawObject(){ DrawGear();}
  };
  可以看出零部件類(lèi)的DrawObject()函數(shù)什么也沒(méi)有做,但是當(dāng)用齒輪來(lái)產(chǎn)生一個(gè)具體對(duì)象時(shí),則調(diào)用零部件類(lèi)的DrawObject()函數(shù),它能根據(jù)具體對(duì)象作出齒輪圖形。也就是當(dāng)這個(gè)基類(lèi)Parts接受到圖形消息時(shí),能根據(jù)不同的具體對(duì)象如齒輪、軸承等調(diào)用不同的方法作出合適的動(dòng)作,畫(huà)出齒輪、軸承等不同的圖形。動(dòng)態(tài)鏈接主要指調(diào)用操作的機(jī)制。由于面向?qū)ο蟮某绦蛟O(shè)計(jì)中所有操作都與某個(gè)對(duì)象有關(guān),因此可以在程序執(zhí)行時(shí)根據(jù)對(duì)象特性具體確定操作。采用動(dòng)態(tài)鏈接使程序設(shè)計(jì)具有良好的靈活性,程序段的功能可進(jìn)行單純的功能增減,而不必修改原有的程序。
參考文獻(xiàn)
1 朱海濱.面向?qū)ο蠹夹g(shù)-原理與設(shè)計(jì).國(guó)防科技大學(xué)出版社,1992
2 楊叔子.基于知識(shí)的診斷推理.北京:清華大學(xué)出版社,1992
3 殷人昆.實(shí)用面向?qū)ο筌浖こ探坛?北京:電子工業(yè)出版社,1998.6
4 周志國(guó).Borland C++Object Windows程序設(shè)計(jì).北京:北京航空航天大學(xué)出版社,1995
5 Grapham I. Object-Oriented Methods.Addison-Wesley Publishing Co,U.k.,1992
6 Alex ByKat. Intelligent Monitoring and Diagnosis Systems.Applied Artifical Intelligence ,1991.5
7 方 敏.基于模糊神經(jīng)網(wǎng)絡(luò)的機(jī)械故障診斷方法的研究.控制理論與應(yīng)用、1998(3)

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話(huà)通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話(huà):010-82306118;郵箱:aet@chinaaet.com。