基于MATLAB与LabVIEW的控制系统的故障诊断方法研究

2013-10-22 19:10| 发布者: chenl| 查看: 2194| 评论: 0

摘要:

随着现代工业自动化水平的日益提高,现代化控制系统正朝着大规模、复杂化的方向发展,导致系统中存在大量的多故障、多过程,突发性故障。传统诊断方法在知识处理与运用存在较大的局限性,而神经网络具有的联想、推测和记忆等功能,使其在故障诊断中得到广泛的应用。

LabVIEW语言是美国NI公司推出的一种非常优秀的面向对象的图形化编程语言,是一个具有良好开放性的虚……

随着现代工业自动化水平的日益提高,现代化控制系统正朝着大规模、复杂化的方向发展,导致系统中存在大量的多故障、多过程,突发性故障。传统诊断方法在知识处理与运用存在较大的局限性,而神经网络具有的联想、推测和记忆等功能,使其在故障诊断中得到广泛的应用。同时人们还希望现代化的诊断系统能够高度集成化、小型化满足现场测试和诊断的要求,提高排除故障的效率。虚拟仪器的“软件即仪器”的思想能够很好的解决这一问题。而采用LabVIEW与MATLAB混合编程的方法,能够有效的将神经网络与虚拟仪器技术相结合实现故障诊断。
LabVIEW语言是美国NI公司推出的一种非常优秀的面向对象的图形化编程语言,是一个具有良好开放性的虚拟仪器开发平台。Labview图形化虚拟仪器编程语言直观,可视化强,设计者利用它可以像搭积木一样,轻松组建一个测量系统以及构造自己的仪器面板,而无需进行任何烦琐的程序代码的编写,大大简化了过程控制和测试软件的开发。在LabVIEW平台下,一个VI由两部分组成:前面版和框图程序。前面版的功能等效于传统测试仪器的面版,框图程序的功能等效于与传统仪器面版相联系的硬件电路。LabVIEW设计的虚拟仪器可脱离LabVIEW 开发环境,用户最终看见的是和实际硬件仪器相似的操作面版。
LabVIEW中提供了大量信息处理功能函数,专门用于从采集到数据中挖掘有用的信息,用于分析测量数据及信号处理。但是Labview在进行大量数据运算与处理,以及复杂的控制算法的时候,很难满足用户各种各样需求。而Matlab具有Labview不可比拟的强大计算能力,完备的工具箱,以及复杂的算法。作为一个开放式开发平台,LabVIEW提供了与多种编程语言和应用程序的接口,通过LabVIEW强大的外部接口,可以实现LabVIEW与MATLAB的混合编程,从而互相取长补短, 充分发挥两者的优势, 也为快速开发功能强大的智能化虚拟仪器提供了新的方法。
本文即利用到Matlab Script节点实现MATLAB的调用。通过这种方式,用户可以在LabVIEW中使用MATLAB强大的数值运算功能。对MATLAB Script节点的使用,既可以开打该节点直接在其框图内书写MATLAB程序代码:也可以将已经写好的MATLAB程序导入节点中。选择该节点的操作Function>>Analyze>>Mathematics>>Formula>>MATLAB Script。LabVIEW与MATLAB之间的数据传递可用图1表示。

人工神经网络简称为神经网络(Neural Network,简称NN)是由大量简单的处理单元(称为神经元)广泛的互相连接形成的复杂网络,它是基于数值计算的知识处理系统。神经网络在不同程度和层次上模拟人脑或生物信息处理的机理,把算法和结构一体化,具有学习能力、记忆能力,计算能力以及智能处理功能,因而非常适合应用于各种系统的故障诊断。基于对人的神经元结构研究,人们提出了多种结构模型,如MP网络、Hopfield网络、BP网络、RBF网络等,其中BP网络已广泛应用于当前的故障诊断领域。

BP网络由输入层、一个或多个隐含层(典型的为一层)、输出层组成,其结构如图2所示。其非输入层的神经元输出可由下式表示:

其中f(x)为激活函数,通常(Sigmoid函数);为神经元i与输出层神经元j之间的连接权值;为该神经元的阈值;为前一层的第i个神经元的输出。
BP网络作为一种有隐含层的多层前馈网络,系统的解决了多层网络中隐含单元连接权值的学习问题。在隐含层节点根据需要自由设计的情况下,三层BP网络可以实现任意精度逼近任意连续函数。因此如何合适选取隐含层神经元个数对整个网络能否正常工作有重要的意义。一般情况下可按下式给出:

其中为隐含层神经元数目;为输入层神经元数目;为输出层神经元数目;l为1-10之间的整数。
BP神经网络是通过在样本的学习训练过程中采用误差反向传播算法(BP算法)调整权值达到满足精度要求的映射。对于N个训练样本,L个输出的网络总误差函数可表示为

系统最小误差的梯度搜索方法是基于上式的最小化方法。典型的BP网络存在学习过程可能发生振荡,收敛缓慢等缺点。为此,有人提出引入动量项改进算法,即
其中表示单个的连接权系数或连接权向量,D(k)为k时刻的负梯度;
。该方法引入动量项实质上相当于阻尼项,它减小了学习过程的振荡趋势,改善了收敛性,这是目前应用比较广泛的一种改进方法。

基于神经网的故障诊断首先通过标准样本对网络进行训练获取符合要求网络模型。当设备发生故障时,通过外部检测设备得到故障信息并提取得到故障特征矢量,将其作为描述故障发生时的证据信息,然后应用训练好BP神经网络对故障特征矢量进行识别,并输出诊断结果。其具体的故障诊断流程如图3所示。

根据如上流程在LabVIEW中创建MATLAB Script节点,并在MATLAB Script直接编写或导入BP网络M程序,同时在MATLAB Script框图上加需要的输入和输出节点。图中t表示待诊断数据,y表示网络的实际输出值。
故障类型的判断及显示由子VI来完成。在子程序中设定判别阈值为0.8。当该组数据诊断结果最大值大于0.8时,认为诊断可靠,查询数据库输出故障信息,此时指示灯为红色;若最大值介于0.8和0.5之间,则认为诊断不可靠,输出为无法诊断,此时指示灯为黄色;若最大值小于0.5,输出为无故障,此时指示灯为绿色。
采用故障模拟试验仪的测量数据验证程序的可行性。取其中五组数据作为待诊断样本仿真结果如图所示:
网络训练的期望输出值分别为有故障为0.9,无故障为0.1。通过仿真结果可以看出设计的程序能够满足设计要求可靠的识别故障。同时将基于LabVIEW与MATLAB混合编程实现的BP神经网络与基于C语言编程比较,可以看出LabVIEW图形化编程方法极大的减少了程序代码设计,能够节省大量时间。此外,这种编程方法更有利于让非专业开发人员迅速掌握,降低程序开发的难度。





鲜花

握手

雷人

路过

鸡蛋

最新评论

360网站安全检测平台