资讯 > 正文

MATLAB分析软件在测试测量的应用

发布时间:2007-05-15

  关键词:设备状态监测 故障诊断 振动信号分析 大型发电机组

  一 前言

  随着我国电力事业的发展以及大型机组的投产,各种容量的机组数量不断增多。如何保证发电机组运行稳定是人们普遍关心的重要问题。而现阶段我国大型发电机组的检修一般实行计划检修制度,不管设备状态如何,到期必修,由此造成大量的资源浪费。这种传统的预期维修体制已不能满足现代维修、运行、管理的要求。发电机组设备庞大、结构复杂、故障的诱因繁多,虽有一些故障不一定以振动形式表现出来,但统计资源表明,发电机组约有80%的故障或事故在振动信号中有所反映,因此,振动监测是目前发电设备状态监测应用最为普通和有效的方法,通过对这些振动信号的分析,充分发掘其中所包含的故障信息,对发电机组的安全运行、检修决策具有重要的实际意义。

  设备的状态监测最为重要的是设备状态数据的实时准确采集以及状态的实时评估,如何寻找一个适合设备状态监测与评估的软件平台,是十分重要的。Matlab语言及其系统是MathWorks公司推出的一套高性能的数值计算和可视化分析软件。它集数值分析、信号处理、仿真控制、图形显示等于一体,构成了一个操作方便、功能强大、界面友好的用户环境和系统开发平台,特别是实现基于Web的远程监测、分析与诊断,十分方便,在设备状态监测与故障诊断等众多工程领域有着广泛的应用。

  本文就Matlab的DAQ、信号分析等工具,并结合研华科技的高速采集卡PCI-1712以及电力专用控制器UNO-3062在发电设备状态监测与故障诊断中的具体应用作一探讨。

  二 状态评估与分析系统

  发电机组在出现故障时的振动信号通常是一快速瞬态变化的参量,必须高速采集。而评价一套高速动态信号采集系统的主要技术指标有:系统通过速率、系统精确度、系统分辨率、系统线性误差、系统共模抑制比、系统通道串扰抑制比以及系统短期稳定度。此外,还有一些重要指标:系统控制方式、系统总数据量、系统可靠性、系统功耗以及系统自动增益调节方式等。其中,系统通过率是高速数据采集系统区别于一般采集系统的最为关键的一项技术指标。对于发电机组振动信号采集系统而言,在诸多技术指标中,最为重要的是系统的分辨率、精确度与通过率。发电机组的状态评估与分析系统的配置见图1所示。

MATLAB分析软件在测试测量的应用如图

  Matlab的编程是一种描述性的语言,对采集卡的实时控制需要一些中间件驱动,Matlab对采集卡PCI-1712的控制见图2所示。

MATLAB分析软件在测试测量的应用如图

  三 数据采集与存储  

  1. 数据采集的定时与控制

  采样频率需要根据系统设计的要求,同时根据目前用于该系统的振动加速度传感器的中心响应频率而定。此外,还要考虑采集卡所用的PCI总线的带宽以及IDE硬盘数据存储的速率要求等。在本系统中,振动加速度上限响应频率为20kHz,为考虑采样精确度,对每个周波拟采样8~10点,由此可得,要满足传感器所感应的信号的要求时,振动加速度信号的采样频率为800kS/s,由于PCI-1712板载只有一路ADC,考虑到通道之间切换、通道建立等时间,将其采样频率定在1MS/s。为了能确保连续采集的数据反映设备的振动特性,PCI-1712连续采集时间可控制在2.4s,约为发电机组的两个旋转周期。

  2. 高速缓存技术

  在满足采集速率要求的前提下,为减轻数据存储对记录设备速度方面的要求,采用FIFO存储器对数据进行缓冲,所有数据以二进制方式传输,在一定程度上降低了对数据传输和存储速度方面对主机资源配置的要求。FIFO存储器具有两个特点:一是数据进出有序;二是输入/输出端口独立。灵活地使用FIFO不仅可构成不同容量、不同宽度、不同工作性质的缓存系统,而且不需要复杂的逻辑控制电路和地址发生器,因此,利用FIFO作为数据缓存器可提高系统的可靠性和实时性。

  3. 智能触发技术

  由于PCI-1712设定的采样频率较高,为防止数据丢失、提高计算机的数据采集效率和加速数据的传输效率,所有采集数据均采用DMA方式传输到内存,再由内存到用户数据池。为保证ADC的精确采样率,ADC触发源选用内部Clock Pacer,并采用Analogy Threshold Trigger的技术触发ADC,可以在数据采集的过程中就可将一些不必要的背景噪声进行处理,使采集得到的信号得以"净化",提高了采集信号的可用度,有效地降低信号的维数。

  4. 高速数据块存储策略

  针对发电机组振动监测与分析系统的超声波信号采集单元,每块采集卡均包括4个相互独立的数据通道和1个共同的数据通道。4个通道由传感器、A/D锁存器、控制单元和缓存器FIFO组成。共同的数据通道由PCI总线控制器、PCI总线、主机内存和硬盘组成,负责将4路采集到的数据进行融合,然后在控制总线的控制下,经PCI总线控制器和PCI总线传输至内存,再由主机对数据进行存储到磁盘,实现多路数据的实时采集与实时存储。数据实时存储策略见图3所示。

MATLAB分析软件在测试测量的应用如图

  在高速信号采集过程中,最为重要的是防止数据丢失。由于每块采集卡上自带FIFO,可将其分成两个FIFO作为数据缓存器,在控制逻辑单元的控制下,交替地对两个FIFO进行读写数据操作:若FIFO(A)处于数据写状态时,FIFO(B)则处于数据读状态,PCI控制器将缓存在FIFO(B)中的数据传输至计算机内存后,发出事件响应信号,主机的事件响应处理程序将内存中的数据进行记录,实现数据的存储,同时FIFO(B)状态转换为数据写状态,在数据存储过程结束后,FIFO(A)进入数据读状态,其中的数据经过与FIFO(B)中的数据相同的路径进行存储。这样FIFO(A)和FIFO(B)在控制逻辑单元的控制下,周而复始地进行读写状态转换,实现数据的采集与存储同步进行。而其他几路的数据采集与存储过程与此相同,为便于后续数据读取和分析,将多路的输出合并后同时进入计算机内存同时进行记录存储,同时由于多路的数据采集与缓存是由硬件电路自动进行的,而主机只负责数据的存储工作,因而数据采集和存储可以同时进行,实现了多路的并行复用,解决了高速采集与实时存储之间的矛盾。

  在数据采集与存储系统中,为加快数据传输速度,采用了DMA工作方式。具体工作过程为:当系统启动后,首先对采集卡进行检测,如采集卡存在则申请系统资源,如内存、中断和DMA资源等,初始化PCI控制器为总线的主设备,并设置相关参数(如定义中断号、复位FIFO标志、FIFO管理方式、DMA传输源地址和目的地址以及传输字节数、总线主设备使能等)。在该程序中,以事件消息传递方式进行工作,即当DMA将PCI总线控制器FIFO中的数据传输至主机内存中,当传输达到预定量时,PCI总线控制器向主机发送事件消息信号(Buffer Chang Event),主机中的事件处理程序将内存中的数据存储到磁盘中,实现数据的实时存储功能。

  四 状态分析与评估

  Matlab含有丰富的分析工具,特别是在信号的处理与分析上,而设备在正常和出现故障时的振动频谱是有所差异的,因此,信号的频谱分析是设备状态监测与故障诊断中的重要工具。在故障诊断中,一般采用功率谱估计的频谱分析方法。功率谱估计可分为经典谱估计和现代谱估计。经典谱估计又分为直接法(周期图法)和间接法。间接法由于计算复杂且计算量大,在实际中极少被采用。针对直接法的功率谱曲线起伏大或者分辨率不高等缺点,有改进法Bartlett法和Welch法。现代谱估计主要是为了改善经典谱估计的方差、偏差以及分辨率相互制约的特性而产生的,大致可分为参数模型和非参数模型谱估计。现代谱估计的参考模型有自回归模型AR、滑动平均模型MA以及自回归滑动平均模型ARMA等。非参数模型谱估计是通过相关矩阵的特征值分解和分析求得频谱估计,根据实际需要,采用基于AR模型的最大熵谱分析方法,其中,其阶次的选择根据最终预测误差准则(FPE准则)确定为64,AR分析的方法采用改进协方差算法。试验测试结果见图4。

MATLAB分析软件在测试测量的应用如图

  部分基于Matlab采集与最大熵谱分析的程序如下:

  (1)数据采集

  数据采集分为六个步骤:创建接口对象、配置测量通道、配置属性、开始测量、采集数据、停止测量并删除对象。

  (a)创建接口对象:函数"analoginput"可为DAQ板卡创建一个接口对象,ai=analoginput('advantech', 0),为采集卡进行配置。% "0"为采集卡在DeviceManager中的ID。

  (b)配置测量通道:ichan=add-channel (ai, 0);

  (c)配置属性:set(ai, 'InputType', 'DifferentEnded');set(ai, 'SampleRate', 1000000);  

  set(ai,'SamplesPerTrigger', 1000000);set (ichan, 'InputRange', [-5 5]);

  (d)开始测量:start (ai);

  (e)数据采集: 将获取的测量数据发送到MATLAB的工作区。它有一个缓冲区,用来临时保存DAQ板卡采集的数据。[data, time]=getdata(ai, 100000);

  (f)停止测量并删除对象;

  stop(ai);delete(ai);ai=analoginput ('advantech', 0); clear ai

  (2)最大熵谱分析

  fid=fopen('D:\Vibrate.adt');% Vibrate.adt为数据名

  da=fscanf(fid,'%lf',[2,100000]); da=da'; fclose(fid);

  [Px1,f]=pmcov(xx(1:102400),64,nfft,Fs);

  plot(f,plot_pxx,'b-',f,10×log10(Px1),'r:');

  grid on;

  五 结束语

  随着计算机处理能力的增强,Matlab在数据采集与分析领域的应用将会越来越强,在设备状态监测与故障诊断中的应用也会越来越广泛。使用Matlab数据采集工具箱的内部结构和使用方法,在Matlab内控制数据采集卡是最直接的方式,同时可以完全和Matlab整合并进行实时的数据存取和实时的分析,将更加有利于工程师们的应用。目前,Matlab的数据采集以及Simulink中Real-Time Window Target工具中已支持研华的DAQ达几十种,将会更加有利于客户方便使用。


 

标签:MATLAB,分析软件,测试测量

相关文章