面向对象的方法在机械故障诊断系统中的应用研究

时间:2011-06-19

  针对日趋复杂的软件需求的挑战,软件业界发展出了面向对象的软件开发模式。面向对象作为一种思想及编程语言,为软件开发的整个过程---从分析设计到编码---提供了一个完整解决方案。

  面向对象的建模不仅仅是新的编程语言的汇总。它是一种新的思维方式,一种关于计算和信息结构化的新思维。面向对象的建模,把系统看作是相互协作的对象,这些对象是结构和行为的封装,都属于某个类,那些类具有某种层次化的结构。系统的所有功能通过对象之间相互发送消息来获得。面向对象的建模可以视为一个包含以下元素的概念框架:抽象、封装、模块化、层次、分类、并行、稳定、可重用和可扩展性。

  面向对象的开发已经在以下应用领域被证明是成功的:空中交通管理、银行、商业数据处理、命令和控制系统、CAD、CIM、数据库、系统、图像识别、数学分析、音乐合成、操作系统、过程控制、空间站软件、机器人、远程通讯、界面设计和VLSI设计。毫无疑问,面向对象技术的应用已经成为软件工业发展的主流。

  诊断是在对某一研究对象的目前所处状态及其有关参数作出判决后,得到有益的信息,进而对所研究对象的运行情况作出正确与否的结论。采用面向对象的技术可以使故障诊断系统具有良好的可扩充性和可重用性,,实现复杂系统的设计;且有利于实现系统对故障知识进行层次表示和混合表达,提高系统故障诊断效率。可以说,面向对象的技术在故障诊断系统的设计及实现中得到了充分的体现。下面结合所研制的故障诊断系统对此作以描述。此系统由软、硬件实现,主要是有目的地采集相关信息,用适当的分析方法提取有意义的特征;并应用诊断知识与合适的分析策略,分析出系统中故障的部位及原因,并加以定量描述;作出诊断决策和状态预测,实现采用了面向对象的分析和编程方法。

  1 面向对象的基本特征

  1.1 层次性

  面向对象方法学认为对象都可由相对简单的对象经层层组合而成,因此复杂对象可按其结构抽象分解关系组成层次结构,这样可把复杂系统看成是一个由有限的结构元素按一定规律聚合而成的系统,系统的元素是子系统,子系统的元素可以是更深层次的子系统,如此类推,直至把元素表示为某一具体的物理零件。现以CE6140型车床的结构分解来说明这种层次结构,示意图如图1所示。同样,复杂系统的故障也具有层次关系,这样可深入到基本结构元素,找到引起故障的终原因,如图2所示。因此,基于机床这一复杂诊断对象的层次特性,可对其进行结构分解和故障分解,以逐步细化缩小故障范围,降低诊断问题求解的复杂性,提高诊断的准确性和灵活性。

           

  由于机械设备机构和故障的层次性与面向对象技术中的对象的继承性和层次性相对应,因此设备诊断对象的构成适合采用面向对象的方法。在机械设备中,如果设备的元素或系统有故障,则所有包含这个元素的上级设备子系统直至设备本身也有故障。而当上设备元素有故障,则此故障必源于下相应的元素或联系的故障[2].

  1.2 类和实例

  在面向对象方法学中,所有对象都是类的实例。对象类是建立在对象概念基础上,由类所描述的对象即称为类的实例。类是实例的模板,也是数据的抽象;实例是类的一个个体。设备的基本元件有齿轮、轴、轴承等。可分别设计类,包含其属性描述和功能描述。如齿轮类声明如下:

  类与类之间的继承关系也即子类-父类的关系。上面三个类分别从零部件类Component继承特性,因为齿轮、轴、轴承等可进一步抽取其共性如型号、材料、特征故障频率等,形成零部件类。齿轮类、轴类等也可进一步派生其它类,如图3所示。

  在软件系统中,这种面向对象程序设计提供的继承机制,可以避免对象的数据和操作的大量重复,实现代码重用,大大地减少了对象、对象类的创建工作量。这种继承性使所建的软件系统具有开放性,要建立的系统并非从空白开始,而是尽可能利用已建立的系统或已建立的类,以它们为基础进行扩充,考虑向上或向下的接口方法[3].

  1.3 消息传递

  对象间除了通过消息传递完成通信外,不再有任何其它的联系。消息中可以包含运算参数,也可有对象名。向某对象发送消息就是要求它根据目前状态和处理能力执行某个操作。在消息传递过程中,消息发送者只是知道消息接受者具有某种功能,而不知道它的内部结构以及如何实现这种功能,从而支撑了数据的抽象和封装。诊断系统,主要由齿轮、轴、轴承等零部件对象通过一定的传动关系有序组成,当此传动链上的某根轴接受到赋予其转速的消息时,则根据对象内所提供的操作计算出该轴的特征频率,同时发送消息给此传动链上相关对象。这些对象接受到消息后,分别在其内部根据一定的传动信息计算出对象的特征频率。诊断过程也是用消息来触发,例如对于齿轮故障诊断,当齿轮对象接受到其它对象所发出的诊断消息时,它会根据其当时的状态如故障特征频率、故障特征频率处的相对幅值比、归一化值等信息,发送消息给相应的模糊神经网络自动进行推理、诊断,而不需要外部的干涉,并且其它对象也不知道它的内部实现过程。对象间的发送消息实现了机械设备的诊断,如图4所示,图中FNN(Fuzzy Neural Network)表示模糊神经网络模型。

  2 知识的面向对象表示

  复杂系统诊断问题求解中涉及到的诊断知识很多,不仅包括诊断对象的结构与功能方面的知识,还包括各种因果知识、启发性知识经验等,因此需把各种知识有机地结合起来。面向对象的方法可以将故障诊断知识组成一种混合知识表达形式,即以对象为中心,将对象的属性动态行为特征、相关领域知识库和处理方法等有关知识封装在表达对象的结构中,使故障诊断知识库或文档具有良好的体系结构;通过对象类的知识表达,实现数据抽象与信息共享。

  2.1 机械设备的面向对象表示

  由前面叙述可知,诊断对象可分离出各个零部件对象,同时以对象的形式写出其功能描述和行为描述。每个对象以知识的载体独立于其它对象,每个子对象可写出其功能和结构接口描述,以便零部件对象出现在某一特定子对象中,建立与其它零部件对象的功能和接口联系。诊断对象的知识库可由这些零部件知识对象有机地"堆"在一起组成,我们所开发的面向对象的"机械设备建模工具"把此特性提高到了新的高度。诊断设备的面向对象的知识表示和建模方法增加了知识的可重用性和通用性,减轻了工作人员的计算任务。

  2.2 诊断知识的面向对象表示

  不同零部件对象的故障模式对应不同的故障文档库,为此可分别对轴、轴承、齿轮、离合器等建立故障文档库,文档库的知识应可方便地修改、增加、删除等。每个文档库包含的知识可分为两部分,一部分为故障知识的模糊规则表示;另一部分为储存模糊诊断知识的神经网络。之所以用神经网络来储存模糊规则,是因为神经网络的学习机制可对原有规则进行修改、加入新规则、对修改的规则和新加入的规则进行检查等,且可避免在模糊推理过程中增加模糊性的缺点。在具体实现中,可采用五层FNN保存诊断知识,用神经网络实现模糊推理[7];而模糊规则则用网络的节点对象、连接权对象、连接结构等来翻译解释。网络对象可由开发的"神经网络建模工具"来实现,根据不同的故障规则知识表示可建立不同的网络对象。

  对于具体网络,可通过网络对象所提供的初始化方法完成信息的搜寻,如:网络的层数,网络的输入节点、输出节点及隐层节点,每个节点对应的网络层号,与每个节点相连的前层所有的节点、连线,与每个节点相连的下一层所有的节点、连线,以及每个节点对象的所选函数、阈值等。所以网络的节点对象和连线对象通过初始化根据不同的诊断知识保存了不同的信息。这符合面向对象的知识表达,即以对象为中心,包含与其相关的完成特定任务的所有知识。

  3 面向对象的诊断推理

  面向对象的表达机制在诊断推理中起着重要的作用,因为面向对象表达的结构特征有助于有效地组织和控制推理行为,同时其本身具有自动推理机制[2].诊断推理过程以五层模糊神经网络为例。它能根据网络中各个输入节点对象的输入值、阈值、输入输出函数,连线对象的权值,隐层节点对象的输入值、阈值、输入输出函数等一层层地前向推理,终得到输出节点对象所存储的诊断值,如图5所示。之所以能自动地前向推理,是因为每层的节点对象及连线对象不仅存储了一定的故障规则知识,还存储了对象间的接口连接信息。这种诊断推理算法迅速、可靠。它不仅仅适用于某一特定网络,而且适用于其它具体网络,网络的层数及节点函数等网络信息均未定死。前面提到的网络对象的建模使它可对故障知识的更新适应得非常快,而故障知识的及时更新又保证了诊断的可靠、准确。所以这种面向对象的诊断推理方法可用于动态变化的系统,系统变化时,只要非常简单地操作即可更新故障信息。因此,当设备故障发生时,诊断网络会用的信息去进行诊断工作。

  4 多态性及动态链接

  多态性指相同的操作(或函数、过程)为不同的对象所接受时,可导致不同的行为,即同一操作有不同的实现方法。主要表现在:运算符重载、虚函数与动态链接。在图3所示的零部件类中,有一个画图函数DrawObject()就应用了多态性技术,它能根据不同的对象执行不同的动作。其声明如下:

  可以看出零部件类的DrawObject()函数什么也没有做,但是当用齿轮来产生一个具体对象时,则调用零部件类的DrawObject()函数,它能根据具体对象作出齿轮图形。也就是当这个基类Parts接受到图形消息时,能根据不同的具体对象如齿轮、轴承等调用不同的方法作出合适的动作,画出齿轮、轴承等不同的图形。动态链接主要指调用操作的机制。由于面向对象的程序设计中所有操作都与某个对象有关,因此可以在程序执行时根据对象特性具体确定操作。采用动态链接使程序设计具有良好的灵活性,程序段的功能可进行单纯的功能增减,而不必修改原有的程序。

  参考文献

  1 朱海滨。面向对象技术-原理与设计。国防科技大学出版社,1992

  2 杨叔子。基于知识的诊断推理。北京:清华大学出版社,1992

  3 殷人昆。实用面向对象软件工程教程。北京:电子工业出版社,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 方 敏。基于模糊神经网络的机械故障诊断方法的研究。控制理论与应用、1998(3)


  
上一篇:数字语音混沌保密通信系统设计
下一篇:TMC2310 DSP芯片在水下目标检测与参数估计中的应用分析

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料