0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

机泵群智能监测预知维修系统平台的数据处理模块研究

电子设计 来源:郭婷 作者:电子设计 2019-10-10 07:57 次阅读

在机泵群智能监测预知维修系统平台的开发中,需要对旋转机械设备的运行状态进行诊断。目前国内外普遍采用的行之有效的方法是共振解调法,又称高频共振法或包络分析法。这就需要将采集的振动信号通过希尔伯特变换进行包络。其基本原理为,对采集的振动信号进行解调处理,获得富含故障信息的解调波,通过对此解调波的振幅和频谱的分析,从而确定故障发生的部位。

整个的系统开发是在Visual C++平台上实现的,然而Visual C++在数据处理上远不如MATLAB方便、快捷,所以在编写VC++应用程序时,为了利用MATLAB的强大的数值计算和处理功能来完成信号处理,采用了MATLAB的C++数学库来进行计算。

VC++中调用MATLAB函数

MATLAB中的大多数函数都是基于MATLAB的数学库函数,若数学库中没有需要的函数,则通过编写.m文件,并调用数学库中相应的函数来实现。Matlab的数学库可以把大部分.m文件写成应用程序编译成可执行的exe程序,脱离MATLAB环境,也可以通过mcc编译为C/C++文件。

在使用MATLAB函数过程中,存在两种情况,一是数学库中有的函数,二是数学库中没有的函数。下面对这两种情况进行分别介绍。

● 调用数学库中的函数

在VC++中调用数学库中的函数可以进行直接的调用。但是由于MATLAB和C++之间的调用方式不尽相同。在MATLAB中的变量都是数组形式,因而VC++中调用都是通过MATLAB中的mwArray类型变量来进行赋值和传递变量的。一般使用的转换函数有hozcat、row2cat、ExtractScalar和ExtractData等。

在调用MATLAB数学库函数的VC++文件中加入头文件“matlab.hpp”,就可以直接使用MATLAB数学库函数,其方式与使用VC++中的函数相同,只是传递的参数类型不同。还需要对VC++环境和工程进行设置。

● 调用数学库没有的函数

MATLAB数学库中没有的函数基本上都是.m文件。调用这些函数时,要使用mcc-t-L Cpp name把.m文件编译为相应的.hpp和.cpp文件。把生成的相应.hpp和.cpp文件加入到VC++工程中,在工程中使用这个函数的文件中加入相应的头文件(.hpp文件)。

在MATLAB中大部分.m文件不是独立的,有许多一个.m文件中嵌套调用别的.m文件。在这种情况下,需要把在这个.m文件中嵌套调用的其他.m文件代码复制到这个.m文件。总之,在这个.m文件没有嵌套调用别的.m文件,仅仅只有数学库中函数和一些基本算法,是个独立的.m文件。有一点需要注意的是,将所需要的函数的在这个.m文件中的部分代码,一定要放到最前面,即在这个.m文件中可能包括多个子程序。

如果不知道这个.m文件中是否调用了别的.m文件,通过mcc编译即可被发现。没有调用其他.m文件的文件,编译后只生成以这个文件命名的.hpp和.cpp文件,而如果调用了其他.m文件,则生成三个文件,分别是以这个文件命名的.hpp、.cpp文件和嵌套调用的那个.m文件命名的.hpp文件。

如何脱离MATLAB环境运行

上面介绍了VC++中调用MATLAB函数的方法,此时应用程序需要和MATLAB环境同时运行,并且通过MATLAB的执行程序路径,调用了MATLAB的动态连接库,实际上并没有完全脱离MATLAB,这是由于mcc功能上的限制。

如何真正脱离MATLAB呢?MATLAB提供了一个发行程序包,位于<MATLAB>\extern\lib\win32 \mglinstaller.exe,执行它后将在指定目录下解压缩出bin和toolbox两个子目录,其中在bin\win32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共有37个。重新启动之后,应用程序就可以在没有安装MATLAB的环境下运行了。

应用例程

在机泵群智能监测预知维修系统平台的开发中,利用共振解调技术对设备振动的低频冲击所激起的高频共振波进行包络检波和低通滤波,即解调,获得一个对应于低频冲击的,而又放大并展宽了的共振解调波;通过此共振解调波的幅值和频谱分析,就可以在故障特征频率及其倍频处看到清晰的谱峰,而不含故障冲击的信号缺不会在共振解调波的频谱图中出现谱峰,因此很容易确定故障发生的部位。

由上所述,在系统开发的数据处理模块中,需要对采集的振动信号进行包络分析,这一数据分析过程是通过调用MATLAB中的希尔伯特变换函数来实现。

建立的工程文件名为Test。

(1)在MATLAB的安装目录下找到hilbert.m文件和shiftdim.m文件(hilbert.m文件中嵌套调用了shiftdim),然后在shiftm.m文件中的代码复制到hilbert.m文件中,并另存为hilbert1.m文件。

(2)在MATLAB的Command Window下使用命令mcc -t -L Cpp hilbert1,生成hilbert1.hpp和hilbert1.cpp两个文件,编译完后生成的函数名就是hilbert1(即文件名)。

(3)在VC++中建立工程test,并按照2.1中进行相关设置,使用hibert1函数

#include “stdafx.h”

#include “matlab.hpp”

#include “hilbert1.hpp”

void mccDemo()

{mwArray m3,m1,m2,t1;

double *dd=new double[1024];

double *d2=new double[1024];

for(int i=1;i<=1024;i++)

t[ i]=i/1000.0;

t1=row2mat(1,1024,t);//把生成的时间序列赋给mwArray数组变量

m1=100*sin(50*t1);

m1.ExtractData(dd);

m3=hilbert1(m1,1024);//进行希尔伯特变换

m2=abs(m3); //MATLAB数学库函数,进行求模运算

m2.ExtractData(d2); //把mwArray的数据转换为double数组中

delete dd;

delete d2;

}

机泵群智能监测预知维修系统平台的数据处理模块研究

运行结果如图1所示,轴承振动信号的包络幅值谱图。测点的转速频率为15Hz,当轴承内圈有故障时,该轴承的采样信号的时域波形经包络分析后,对其进行相应的频谱分析,得出轴承的内圈故障特征频率。其中,对时域波形的包络分析,就是通过上述的调用过程实现的。

从图1可以看出最大幅值处的频率为88.87Hz,而理论上,用特征频率计算公式求得的故障特征频率为88.6Hz。因此,可以说明此方法是可行的。

结论

利用VC++来完成智能巡检系统的界面设计、数据管理、底层I/O等功能,而利用MATLAB来完成数据处理分析核心算法的设计,两者的有机结合降低了程序的开发难度和周期,提高了开发效率。该方法对其他领域如系统仿真、图像处理等专业领域也有很强的指导意义和推广价值。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • matlab
    +关注

    关注

    182

    文章

    2963

    浏览量

    230155
  • 函数
    +关注

    关注

    3

    文章

    4306

    浏览量

    62430
  • C++
    C++
    +关注

    关注

    22

    文章

    2104

    浏览量

    73494
收藏 人收藏

    评论

    相关推荐

    触摸屏数据处理算法研究及实现

    触摸屏数据处理算法研究及实现
    发表于 08-15 16:32

    【OK210申请】linux平台智能家居的监控系统

    的基本特点和所要实现的基本功能,并在此基础上设计基于Linux平台的嵌入式智能家居系统的整体设计方案。项目描述:智能家居系统的硬件
    发表于 07-25 21:09

    【MiCOKit申请】智能数据处理装置

    申请理由:对于不同的开发版电路设计不同,实物参考电路设计以方便本人能更好地找到灵感设计电路项目描述:做无线数据处理装置,蓝牙连接电脑声音控制数据处理类似人工智能的范畴
    发表于 08-22 13:55

    【TL6748 DSP申请】基于DSP和CPLD的智能监测系统设计与开发

    申请理由:初学DSP,希望能有块开发板尽快入门,谢谢项目描述:实现对电力系统大型设备智能在线监测,将CPLD/FPGA和DSP技术结合起来实现智能
    发表于 10-29 11:00

    状态在线监测系统-监测是怎么样运行的

    系统概述及时准确掌握组的运行状态,及时发 现的异常情况,消除安全隐患,准确掌握效、能耗和主要运行参数,为
    发表于 08-19 16:50

    状态无线监测系统方案

    炸,机械破坏导致人身伤亡事故等。2、人工无法准确及时的监测,更无法化和做趋势分析预警。为安全生产埋下隐患。3、状态无线监测系统,实现24
    发表于 09-03 11:01

    RS-LB-300吸式油烟监测系统

    ]  1.3 产品选型[img][/img]  2、应用方案介绍  RS-LB-300吸式油烟监测系统(http://www.rkrun.cn)通过采样头采集气体,预处理后进行气体成
    发表于 04-28 13:47

    VHDL 基于FPGA的高速数据处理系统设计思路

    数据处理器相比,PC机体积大、功耗大、处理速度慢。而且在通常的实时信号处理中,专业处理芯片外围 电路比较少,一般来说一块电路板就可以完成所需功能,功耗大大减少,而且相比PC
    发表于 08-31 18:54

    FPGA的高速数据处理系统结构和硬件设计

    数据处理器相比,PC机体积大、功耗大、处理速度慢。而且在通常的实时信号处理中,专业处理芯片外围 电路比较少,一般来说一块电路板就可以完成所需功能,功耗大大减少,而且相比PC
    发表于 09-04 09:56

    电力监控系统图形绘制及数据处理一体化平台

    介绍了一种应用于电力监控系统中的图形绘制与数据处理一体化平台,该平台避免了在图形绘制系统数据处理系统
    发表于 02-11 23:29 25次下载

    大型旋转机械的状态监测预知维修

    大型旋转机械的状态监测预知维修
    发表于 05-20 15:15 21次下载

    基于预知维修的网络化设备状态监测系统的实现

    在“预知维修”体制的构想下,构建了一种基于因特网的网络化设备状态监测系统,该系统在建立远程专家状态监测
    发表于 07-11 08:58 23次下载

    基于DLL的人员定位跟踪系统数据处理模块的设计

    针对人员定位跟踪系统数据相关性大的特点,文章提出了一种基于DLL 的人员定位跟踪系统数据处理模块的设计方案,介绍了人员定位跟踪
    发表于 11-06 10:52 28次下载

    基于云计算的数据处理平台研究设计

    通过分析亚马逊弹性MapReduce( EMR)平台构架,针对信息情报机构内部数据处理的迫切需求,提出通过开源技术Xen 和Hadoop平台构建基于云计算的动态可伸缩的海量数据处理
    发表于 09-30 10:06 6次下载
    基于云计算的<b class='flag-5'>数据处理</b><b class='flag-5'>平台</b><b class='flag-5'>研究</b>设计

    工程监测中振弦采集仪的数据处理方法研究

    工程监测中振弦采集仪的数据处理方法研究 工程监测中振弦采集仪的数据处理方法研究是针对振弦采集仪所
    的头像 发表于 01-09 15:10 342次阅读
    工程<b class='flag-5'>监测</b>中振弦采集仪的<b class='flag-5'>数据处理</b>方法<b class='flag-5'>研究</b>