面向对象的方法在机械故障诊断系统中的应用
发布时间:2008/6/3 0:00:00 访问次数:630
面向对象的方法在机械故障诊断系统中的应用
摘 要: 针对机械设备的故障诊断,应用面向对象的方法和技术简化了复杂系统的设计,提高了知识的表达能力和诊断效率。
关键词: 面向对象 建模 知识库 消息传递 故障诊断
面向对象的方法作为一种新的程序设计思想和认知方法学引起了人们广泛的重视。其基本特征有:信息隐蔽(或封装)、数据抽象、动态链接和继承。面向对象的程序具有模块化、表达广泛概念、默认值表达和代码复用等特点。面向对象编程使系统软件结构和空间中对问题的描述相一致,把对应于客观存在实体的数据和作用于实体的过程包含在一个“对象”之内,从而使对象成为比数据和过程具有更高结构层次的计算实体[1]。
诊断是在对某一研究对象的目前所处状态及其有关参数作出判决后,得到有益的信息,进而对所研究对象的运行情况作出正确与否的结论。对于复杂系统的诊断问题,诊断过程复杂,诊断知识多样。而采用面向对象的技术则可以使故障诊断系统具有良好的可扩充性和可重用性,便于从现实事物对象提取系统抽象模型,实现复杂系统的设计;并且有利于实现系统对故障知识进行层次表示和混合表达,提高系统故障诊断效率。可以说,面向对象的技术在故障诊断系统的设计及实现中得到了充分的体现。下面结合所研制的故障诊断系统对此作以描述。此系统由软、硬件实现,主要是有目的地采集相关信息,用适当的分析方法提取有意义的特征;并应用诊断知识与合适的分析策略,分析出系统中故障的部位及原因,并加以定量描述;最后作出诊断决策和状态预测,实现采用了面向对象的分析和编程方法。主要包括数据采集、信号分析、诊断对象建模、神经网络建模、诊断等模块。
1 面向对象的基本特征[1][3][5][6]
1.1 层次性
面向对象方法学认为对象都可由相对简单的对象经层层组合而成,因此复杂对象可按其结构抽象分解关系组成层次结构,这样可把复杂系统看成是一个由有限的结构元素按一定规律聚合而成的系统,系统的元素是子系统,子系统的元素可以是更深层次的子系统,如此类推,直至把元素表示为某一具体的物理零件。现以ce6140型车床的结构分解来说明这种层次结构,示意图如图1所示。同样,复杂系统的故障也具有层次关系,这样可深入到基本结构元素,找到引起故障的最终原因,如图2所示。因此,基于机床这一复杂诊断对象的层次特性,可对其进行结构分解和故障分解,以逐步细化缩小故障范围,降低诊断问题求解的复杂性,提高诊断的准确性和灵活性。
由于机械设备机构和故障的层次性与面向对象技术中的对象的继承性和层次性相对应,因此设备诊断对象的构成适合采用面向对象的方法。在机械设备中,如果设备的元素或系统有故障,则所有包含这个元素的上级设备子系统直至设备本身也有故障。而当上一级设备元素有故障,则此故障必源于下一级相应的元素或联系的故障[2]。
1.2 类和实例
在面向对象方法学中,所有对象都是类的实例。对象类是建立在对象概念基础上,由类所描述的对象即称为类的实例。类是实例的模板,也是数据的抽象;实例是类的一个个体。设备的基本元件有齿轮、轴、轴承等。可分别设计类,包含其属性描述和功能描述。如齿轮类声明如下:
tgeartool:public tboxtool{ //从tboxtool继承
public:
tgeartool():tboxtool(″″);
tgeartool(char*name):tboxtool(name);//运用多态性技术
~tgeartool(); //析构函数
virtual void drawobject(tdc&); //画齿轮
bool oprrator ==(const tgeartool& other) const;
gearparam gearparam; //齿轮属性
protected:
friend ostream& operator <<(ostream& os,const tgeartool& tool); //运用流类的输入来保存永久对象
friend istream& operator>>(istream&is,tgeartool& tool); //运用流类的输出打开永久对象
......
};
面向对象的方法在机械故障诊断系统中的应用
摘 要: 针对机械设备的故障诊断,应用面向对象的方法和技术简化了复杂系统的设计,提高了知识的表达能力和诊断效率。
关键词: 面向对象 建模 知识库 消息传递 故障诊断
面向对象的方法作为一种新的程序设计思想和认知方法学引起了人们广泛的重视。其基本特征有:信息隐蔽(或封装)、数据抽象、动态链接和继承。面向对象的程序具有模块化、表达广泛概念、默认值表达和代码复用等特点。面向对象编程使系统软件结构和空间中对问题的描述相一致,把对应于客观存在实体的数据和作用于实体的过程包含在一个“对象”之内,从而使对象成为比数据和过程具有更高结构层次的计算实体[1]。
诊断是在对某一研究对象的目前所处状态及其有关参数作出判决后,得到有益的信息,进而对所研究对象的运行情况作出正确与否的结论。对于复杂系统的诊断问题,诊断过程复杂,诊断知识多样。而采用面向对象的技术则可以使故障诊断系统具有良好的可扩充性和可重用性,便于从现实事物对象提取系统抽象模型,实现复杂系统的设计;并且有利于实现系统对故障知识进行层次表示和混合表达,提高系统故障诊断效率。可以说,面向对象的技术在故障诊断系统的设计及实现中得到了充分的体现。下面结合所研制的故障诊断系统对此作以描述。此系统由软、硬件实现,主要是有目的地采集相关信息,用适当的分析方法提取有意义的特征;并应用诊断知识与合适的分析策略,分析出系统中故障的部位及原因,并加以定量描述;最后作出诊断决策和状态预测,实现采用了面向对象的分析和编程方法。主要包括数据采集、信号分析、诊断对象建模、神经网络建模、诊断等模块。
1 面向对象的基本特征[1][3][5][6]
1.1 层次性
面向对象方法学认为对象都可由相对简单的对象经层层组合而成,因此复杂对象可按其结构抽象分解关系组成层次结构,这样可把复杂系统看成是一个由有限的结构元素按一定规律聚合而成的系统,系统的元素是子系统,子系统的元素可以是更深层次的子系统,如此类推,直至把元素表示为某一具体的物理零件。现以ce6140型车床的结构分解来说明这种层次结构,示意图如图1所示。同样,复杂系统的故障也具有层次关系,这样可深入到基本结构元素,找到引起故障的最终原因,如图2所示。因此,基于机床这一复杂诊断对象的层次特性,可对其进行结构分解和故障分解,以逐步细化缩小故障范围,降低诊断问题求解的复杂性,提高诊断的准确性和灵活性。
由于机械设备机构和故障的层次性与面向对象技术中的对象的继承性和层次性相对应,因此设备诊断对象的构成适合采用面向对象的方法。在机械设备中,如果设备的元素或系统有故障,则所有包含这个元素的上级设备子系统直至设备本身也有故障。而当上一级设备元素有故障,则此故障必源于下一级相应的元素或联系的故障[2]。
1.2 类和实例
在面向对象方法学中,所有对象都是类的实例。对象类是建立在对象概念基础上,由类所描述的对象即称为类的实例。类是实例的模板,也是数据的抽象;实例是类的一个个体。设备的基本元件有齿轮、轴、轴承等。可分别设计类,包含其属性描述和功能描述。如齿轮类声明如下:
tgeartool:public tboxtool{ //从tboxtool继承
public:
tgeartool():tboxtool(″″);
tgeartool(char*name):tboxtool(name);//运用多态性技术
~tgeartool(); //析构函数
virtual void drawobject(tdc&); //画齿轮
bool oprrator ==(const tgeartool& other) const;
gearparam gearparam; //齿轮属性
protected:
friend ostream& operator <<(ostream& os,const tgeartool& tool); //运用流类的输入来保存永久对象
friend istream& operator>>(istream&is,tgeartool& tool); //运用流类的输出打开永久对象
......
};
上一篇:USB软件狗的设计及反破解技术
热门点击
- ADPCM压缩算法源码
- X9511
- 吊扇定子线圈的手工绕制法
- MAX791在看门狗电路中的应用
- 美国FSC军用电子元器件标准分类
- 使用VCO实现变容二极管直接调频(图)
- IVC102精密低噪声积分器的原理和应用
- 用Aldec公司的HES系统快速实现各类IC
- ABB i-bus EIB系统在智能建筑中的
- 半导体封装环氧:长濑特色
推荐技术资料
- DFRobot—玩的就是
- 如果说新车间的特点是“灵动”,FQPF12N60C那么... [详细]