《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 業(yè)界動態(tài) > 面向對象的方法在機械故障診斷系統(tǒng)中的應用

面向對象的方法在機械故障診斷系統(tǒng)中的應用

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

  摘 要: 針對機械設備的故障診斷" title="故障診斷">故障診斷,應用面向對象" title="面向對象">面向對象的方法和技術,、簡化了復雜系統(tǒng)的設計,,提高了知識的表達能力和診斷效率。
  關鍵詞: 面向對象 建模 知識庫 消息傳遞 故障診斷


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


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


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


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


4 多態(tài)性及動態(tài)鏈接
  多態(tài)性指相同的操作(或函數(shù),、過程)為不同的對象所接受時,,可導致不同的行為,即同一操作有不同的實現(xiàn)方法,。主要表現(xiàn)在:運算符重載,、虛函數(shù)與動態(tài)鏈接。在圖3所示的零部件類中,,有一個畫圖函數(shù) DrawObject()就應用了多態(tài)性技術,,它能根據(jù)不同的對象執(zhí)行不同的動作。其聲明如下:
  class Parts{
  ......
  virtual void DrawObject(){}
  };
  齒輪類的聲名為:
  class Gear:public parts{
  ......
  virtual void DrawObject(){ DrawGear();}
  };
  可以看出零部件類的DrawObject()函數(shù)什么也沒有做,,但是當用齒輪來產(chǎn)生一個具體對象時,,則調用零部件類的DrawObject()函數(shù),它能根據(jù)具體對象作出齒輪圖形,。也就是當這個基類Parts接受到圖形消息時,,能根據(jù)不同的具體對象如齒輪、軸承等調用不同的方法作出合適的動作,畫出齒輪,、軸承等不同的圖形,。動態(tài)鏈接主要指調用操作的機制。由于面向對象的程序設計中所有操作都與某個對象有關,,因此可以在程序執(zhí)行時根據(jù)對象特性具體確定操作,。采用動態(tài)鏈接使程序設計具有良好的靈活性,程序段的功能可進行單純的功能增減,,而不必修改原有的程序,。
參考文獻
1 朱海濱.面向對象技術-原理與設計.國防科技大學出版社,1992
2 楊叔子.基于知識的診斷推理.北京:清華大學出版社,,1992
3 殷人昆.實用面向對象軟件工程教程.北京:電子工業(yè)出版社,,1998.6
4 周志國.Borland C++Object Windows程序設計.北京:北京航空航天大學出版社,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)絡的機械故障診斷方法的研究.控制理論與應用,、1998(3)

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