国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

機泵群智能巡檢系統之數據處理模塊的開發研究

發布時間:2010-12-7 12:23    發布者:techshare
在機泵群智能監測預知維修系統平臺的開發中,需要對旋轉機械設備的運行狀態進行診斷。目前國內外普遍采用的行之有效的方法是共振解調法,又稱高頻共振法或包絡分析法。這就需要將采集的振動信號通過希爾伯特變換進行包絡。其基本原理為,對采集的振動信號進行解調處理,獲得富含故障信息的解調波,通過對此解調波的振幅和頻譜的分析,從而確定故障發生的部位。

整個的系統開發是在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來完成數據處理分析核心算法的設計,兩者的有機結合降低了程序的開發難度和周期,提高了開發效率。該方法對其他領域如系統仿真、圖像處理等專業領域也有很強的指導意義和推廣價值。
本文地址:http://m.qingdxww.cn/thread-44630-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一二三四视频在线社区3| 色愁愁久久久| 一本到道免费线观看| 秋霞影院精品久久久久| 日本手机在线视频| 在线天堂中文在线网| 原神美女被漫画免费| 国产亚洲福利精品一区| 洗濯屋H纯肉动漫在线观看| 欧美一线免费http| 日韩一区二区三区免费视频| 四虎影院最新网站| 综合色区| 又黄又粗又爽免费观看| 国产午夜婷婷精品无码A片| 亚洲欧美激情精品一区二区| 日本亚洲精品成人| 视频精品一区二区| 香蕉69精品视频在线观看| 99久久免费看少妇高潮A片| 秋霞影音先锋一区二区| 午夜高清福利| 人妖在线精品一区二区三区| 五月婷婷婷婷| 夜夜骑射| 后入到高潮免费观看| 少妇无套内谢久久久久| 日韩一级欧美一级| 人人揉揉香蕉| 四虎国产精品高清在线观看| 在线视频亚洲| 和姐姐做插得很深| 在线黑人抽搐潮喷| 视频一区中文字幕| 日韩欧美一区二区久久黑人| 天堂va亚洲va欧美va国产| 在线观看精品视频一区二区| 国产欧美国日产在线播放| 四虎永久免费网址| 午夜深夜福利网址| 日韩亚洲欧美视频|