基于MATLAB的遠(yuǎn)程信號(hào)分析與診斷系統(tǒng)的開(kāi)發(fā)
摘要:討論了MATLAB通過(guò)WWW實(shí)現(xiàn)異地信號(hào)分析的原理和關(guān)鍵技術(shù),設(shè)計(jì)了基于MATLAB的機(jī)械設(shè)備遠(yuǎn)程信號(hào)分析及遠(yuǎn)程故障診斷系統(tǒng)。
本文引用地址:http://m.butianyuan.cn/article/242336.htm關(guān)鍵詞:遠(yuǎn)程診斷 信號(hào)處理 MATLAB軟件 WEB INTERNET
MATLAB語(yǔ)言及其系統(tǒng)是MathWorks公司推出的一套高性能的數(shù)值計(jì)算和可視化數(shù)學(xué)軟件[1]。它集數(shù)值分析、矩陣運(yùn)算、信號(hào)處理、仿真控制和圖形顯示等于一體,構(gòu)成了一個(gè)方便的、功能強(qiáng)大的、界面友好的用戶環(huán)境和系統(tǒng)開(kāi)發(fā)平臺(tái),在故障診斷等眾多工程領(lǐng)域有著廣泛的應(yīng)用[2,3]。
近年來(lái),隨著計(jì)算機(jī)技術(shù)與通信技術(shù)的發(fā)展,Internet/Intranet技術(shù)已成為遠(yuǎn)程信號(hào)分析與處理系統(tǒng)開(kāi)發(fā)的理想平臺(tái),然而,要實(shí)現(xiàn)真正意義上的基于WEB的遠(yuǎn)程監(jiān)測(cè)、分析與診斷,非常困難[4]。本文在基于MATLAB的科學(xué)計(jì)算與圖形展示功能的Web應(yīng)用原理討論的基礎(chǔ)上,給出了基于MATLAB實(shí)現(xiàn)機(jī)械設(shè)備遠(yuǎn)程信號(hào)分析及遠(yuǎn)程故障診斷系統(tǒng)的主要功能、實(shí)現(xiàn)方式和方法,展示了一種在Iternet/Interanet環(huán)境下實(shí)現(xiàn)遠(yuǎn)程監(jiān)測(cè)、分析與診斷的快速實(shí)現(xiàn)方法。
1 MATLAB的WEB應(yīng)用原理
在MATLAB5.3以上版本的工具箱里,增加了WEB應(yīng)用工具,通過(guò)基于MATLAB的Web應(yīng)用,能使世界各地的用戶通過(guò)Internet將數(shù)據(jù)發(fā)送給MATLAB Web服務(wù)器,供助MATLAB強(qiáng)大計(jì)算與圖形展示功能,獲得計(jì)算結(jié)果或相應(yīng)的圖形結(jié)果。
MATLAB的Web應(yīng)用主要由兩部分組成。一部分是MATLAB Web服務(wù)器,負(fù)責(zé)管理Web應(yīng)用與MATLAB之間的通訊。它實(shí)際上是一個(gè)多線程可執(zhí)行的TCP/IP應(yīng)用程序MATLABserver.exe,是MATLAB應(yīng)用程序運(yùn)行的服務(wù)器環(huán)境;另一部分是Web服務(wù)代理,TCP/IP的MATLAB Web服務(wù)器的客戶端,一個(gè)可執(zhí)行程序matweb.exe,同時(shí)也是Web的CGI擴(kuò)展,它鈄對(duì)MATLAB的請(qǐng)求重新定向到MATLABserver.exe進(jìn)行處理。其原理結(jié)構(gòu)如圖1所示。
由圖1可知,MATLAB Web應(yīng)用必須基于某一標(biāo)準(zhǔn)的Web服務(wù)環(huán)境。瀏覽器客戶通過(guò)TCP/IP協(xié)議請(qǐng)求Web服務(wù)器中的文檔,而MATLAB Web服務(wù)代理篩選所有的請(qǐng)求,如果是MATLAB Web請(qǐng)求,則將其交由MATLAB Web服務(wù)程序處理,否則由標(biāo)準(zhǔn)的Web服務(wù)器進(jìn)行處理。在設(shè)備MATLAB Web應(yīng)用環(huán)境時(shí),MATLAB Web服務(wù)代理必須與系統(tǒng)的Web服務(wù)器安裝在同一臺(tái)機(jī)器上,而與MATLAB Web服務(wù)程序則可以在同一臺(tái)機(jī)器中,也可在不同的機(jī)器中。
2 建立基于MATLAB的Web應(yīng)用
建立基于MATLAB的Web應(yīng)用需要幾個(gè)步驟。下面通過(guò)實(shí)例來(lái)說(shuō)明建立MATLAB Web應(yīng)用的基本步驟。
2.1 請(qǐng)求MACTLAB Web服務(wù)的HTML文檔
請(qǐng)求MATLAB Web服務(wù)的HTML文檔主要完成兩方面的功能。一方面是接收瀏覽器用戶的輸入,這與一般的Web應(yīng)用的處理方法相同,可以通過(guò)HTML的表單實(shí)現(xiàn);另一方面是設(shè)置一個(gè)特殊的標(biāo)志,將該請(qǐng)求重新定向到MATLAB Web服務(wù)代理進(jìn)行處理,它的實(shí)現(xiàn)方法與一般的CGI程序調(diào)用方法相。下面是其實(shí)例代碼片斷:
form action=“/cgi-bin/matweb.exe”mathod=“POST”target=“outputwindow”>
input type=“hidden”name=“mlmfile”value=“functest”>
該片斷中最關(guān)鍵的部分是Form標(biāo)記的Action屬性的設(shè)置及隱輸入框mlmfile(參數(shù)名固定),其值為將在MATLAB Web服務(wù)程序中運(yùn)行的m文件的文件名。另外,為了方便使用,一般可以將瀏覽器窗口分為幾個(gè)部分,一部分用于輸入?yún)?shù)和控制,一部分用于顯示運(yùn)行結(jié)果或圖形。
2.2 MATLAB Web應(yīng)用的設(shè)置
MATLAB Web應(yīng)用的設(shè)置工作主要分為三個(gè)方面。第一是安裝Web服務(wù)器和瀏覽器,可以選用Microsoft IIS、Netscape NES或Apache Web服務(wù)器和IE或NETSCAPE瀏覽器。第二是對(duì)MATLAB Web服務(wù)器的設(shè)置,即配置matlabserver.conf文件,設(shè)定當(dāng)前MATLAB運(yùn)行的個(gè)數(shù)。第三是對(duì)MATLAB Web服務(wù)代理的設(shè)置,即每增加一個(gè)MATLAB Web應(yīng)用,都需要在代理服務(wù)的配置文件matweb.conf中增加一項(xiàng)配置。如在html表單中調(diào)用的m文件的文件名為functest,相應(yīng)地,需要在matweb.conf中增加下面的內(nèi)容:
[functest]
mlserver=210.27.64.1
mldir=e:/inetpub/wwwroot/icons
其中mlserver=210.27.64.1指明MATLAB Web服務(wù)程序所在機(jī)器的IP地址,而下面一行主要是MATLAB工作目錄的設(shè)置。
2.3 MATLAB應(yīng)用程序的開(kāi)發(fā)
MATLAB應(yīng)用程序主要具有以下3個(gè)方面的功能:
·接收輸入HTML表單中的輸入值;
·調(diào)用MATLAB中內(nèi)置的各種函數(shù)進(jìn)行科學(xué)計(jì)算或作圖;
·將計(jì)算結(jié)果放到一個(gè)MATLAB結(jié)構(gòu)中;
·調(diào)用Htmlrep文件將計(jì)算結(jié)果或生成的圖形輸出到HTML模板頁(yè)面上,并將這些結(jié)果返回給最終用戶。
一個(gè)典型的MATLAB應(yīng)用程序代碼如下:
Function PageString=functest(InputSet,OutFile)
cd(InputSet.mldir);
%清除1個(gè)小時(shí)以膠的舊圖形
wscleanup('f*.jpeg',1);
Fig=figure('visible','off');
%接收輸入值,并進(jìn)行轉(zhuǎn)換
startx=str2double(InputSet.startx);
stepx=str2double(InputSet.stepx);
endx=str2double(InputSet.endx);
x=(startx:stepx:endx);
S=InputSet.funcname;
%計(jì)算或作圖
plot(x,eval(S));
ylabel('測(cè)試');
title(['**函數(shù):'S'的圖像**']);
pos=get(gcf,'position');
pos(3)=380;
pos(4)=310;
set(gcf,'Position',pos,'PaperPosition',[.25 .25 4 3]);
PlotFile=sprintf('f%s.jpeg',InputSet.mild);
drawnow;
wsprintjpeg(Fig,PlotFile);
close(Fig);
%對(duì)輸出模板進(jìn)行處理,生成輸出HTML文件
templatefile=which('functempate.htm');
if(exist('OutFile','var')= = 1)
s.GraphFileName = [PlotFile];
PageString=htmlrep(s,templatefile,OutFile);
Else
s.GraphFileName=[sprintf ('http://%s/icons/',Input Set.mldir 1)PlotFile];
PageString=htmlrep(s,templatefile);
2.4 顯示運(yùn)行結(jié)果的HTML模板的開(kāi)發(fā)
在上面的MATLAB應(yīng)用程序中,最后的結(jié)果輸出部分調(diào)用了用于輸出的HTML模板functemplate.htm。下面是該文件的部分代碼,其中最重要的部分是標(biāo)記$......$中包含的變量部分,在MATLAB應(yīng)用程序中通過(guò)函數(shù)htmlrep,使用輸出結(jié)構(gòu)中相應(yīng)的變量值對(duì)這些標(biāo)記進(jìn)行替換。
html>body bgcolor=#FFFFFF>
P>nbsp/p>p align=center>
img border=0 src=$GraphFileName$>/p>/body>/html>
3 基于MATLAB的遠(yuǎn)程信號(hào)分析與診斷系統(tǒng)
MATLAB是信號(hào)分析能力很強(qiáng)的開(kāi)發(fā)平臺(tái),將其與Web服務(wù)器結(jié)合,經(jīng)過(guò)合理的設(shè)計(jì),可以比較快地實(shí)現(xiàn)遠(yuǎn)程信號(hào)分析與診斷。圖2是基于MATLAB的遠(yuǎn)程信號(hào)分析與診斷系統(tǒng)的主頁(yè)面,圖3是時(shí)頻分析的實(shí)例。在開(kāi)發(fā)該系統(tǒng)時(shí),除上述問(wèn)題外,主要需要解決以下幾方面的技術(shù)問(wèn)題。
3.1 原始數(shù)據(jù)的提交
用戶原始數(shù)據(jù)的提交主要有兩種方式。一種是專(zhuān)用數(shù)據(jù)的提交,主要是為安裝有本中心開(kāi)發(fā)的RB21和RB20的用戶服務(wù)的。在RB21和RB20中,其監(jiān)測(cè)網(wǎng)絡(luò)中有專(zhuān)門(mén)的監(jiān)測(cè)數(shù)據(jù)庫(kù),其數(shù)據(jù)庫(kù)結(jié)構(gòu)與遠(yuǎn)程分析與處理中心的ORACIE8I數(shù)據(jù)庫(kù)基本是一致的,可以使用專(zhuān)用的數(shù)據(jù)提交程序。另一種是通用數(shù)據(jù)的提交,是為普通用戶準(zhǔn)備的。這又分為兩種情況,一是已知原始數(shù)據(jù)的提交,它按照遠(yuǎn)程分析中心給定的數(shù)據(jù)格式提交;二是未知數(shù)據(jù)格式數(shù)據(jù)的提交,采用時(shí)域或頻域機(jī)械圖像的方式提交,這主要是為現(xiàn)場(chǎng)數(shù)據(jù)存儲(chǔ)格式不明的測(cè)試系統(tǒng)準(zhǔn)備的。具體的提交方法采用以下三種方式:
(1)FTP方式:FTP是建立在TCP/IP協(xié)議基礎(chǔ)上的文件傳輸協(xié)議,系統(tǒng)為注冊(cè)用戶提供基于FTP的數(shù)據(jù)提交方式,用戶通過(guò)登錄遠(yuǎn)程診斷中以后FTP服務(wù)器,可以用類(lèi)似資源管理器的方式直接提交監(jiān)測(cè)數(shù)據(jù)。
(2)Email方式:Email是目前應(yīng)用比較廣泛的郵件協(xié)議,用戶可以通過(guò)中心的Email提交原始數(shù)據(jù),不過(guò)通過(guò)這種方式提交數(shù)據(jù)需要一定的時(shí)間延滯。
(3)Socket方式:Socket是建立在傳輸層協(xié)議(主要是TCP和UDP)上的一種套接字規(guī)范,可以通過(guò)Delphi的Internet控件,即服務(wù)器端組件TserverSocket和客戶端組件TclientSocket進(jìn)行編程,實(shí)現(xiàn)基于TCP/IP的Socket網(wǎng)絡(luò)接口的數(shù)據(jù)傳輸。
3.2 安全問(wèn)題的解決
由于Internet網(wǎng)絡(luò)的開(kāi)放性與共享性導(dǎo)致了遠(yuǎn)程監(jiān)測(cè)與診斷系統(tǒng)的安全性受到嚴(yán)重影響。如何保證網(wǎng)上傳輸?shù)臄?shù)據(jù)的安全,服務(wù)雙方職責(zé)的明確和身份確認(rèn)是遠(yuǎn)程診斷研究必須解決的課題。遠(yuǎn)程監(jiān)測(cè)與診斷服務(wù)中的安全性需求可以分為以下幾個(gè)方面:
(1)數(shù)據(jù)的保密性 用于防止非法用戶進(jìn)入系統(tǒng)及合法用戶對(duì)系統(tǒng)資源的非法使用;通過(guò)對(duì)一些敏感的數(shù)據(jù)文件進(jìn)行加密來(lái)保護(hù)系統(tǒng)之間的數(shù)據(jù)交換,防止除接收方之外的第三方截獲數(shù)據(jù)及即使獲取文件也無(wú)法得到其內(nèi)容;
(2)數(shù)據(jù)的完整性 防止非法用戶對(duì)進(jìn)行交換的數(shù)據(jù)進(jìn)行無(wú)意或惡意的修改、插入,防止交換的數(shù)據(jù)丟失等;
(3)數(shù)據(jù)的不可否認(rèn)性 對(duì)數(shù)據(jù)和信息的來(lái)源進(jìn)行驗(yàn)證,以確保數(shù)據(jù)由合法的用戶發(fā)出;防止數(shù)據(jù)發(fā)送方在發(fā)出數(shù)據(jù)后又加以否認(rèn);同時(shí)防止接收方在收到數(shù)據(jù)后又否認(rèn)曾收到過(guò)此數(shù)據(jù)及篡改數(shù)據(jù);
(4)數(shù)據(jù)的公正性 用具有獨(dú)立法律地位的認(rèn)證機(jī)構(gòu)或合同確認(rèn)服務(wù)雙方職責(zé)和義務(wù)。
目前遠(yuǎn)程診斷中心解決安全性問(wèn)題主要采用兩方面的措施。一方面采用用戶注冊(cè)的方法,將用戶分為五個(gè)安全等級(jí),為他們分配特定的權(quán)限和口令;另一方面采用數(shù)字簽名技術(shù),用戶提交的數(shù)據(jù)和申請(qǐng),中心生成的診斷報(bào)告,均經(jīng)過(guò)數(shù)字簽名。
3.3 遠(yuǎn)程分析與診斷功能的設(shè)計(jì)
作為遠(yuǎn)程信號(hào)分析與故障診斷中心,系統(tǒng)的功能應(yīng)盡可能豐富和強(qiáng)大,應(yīng)該比現(xiàn)場(chǎng)監(jiān)測(cè)與分析系統(tǒng)提供更為先進(jìn)和新穎的功能。因此本中心提供頻譜分析、相關(guān)分析、時(shí)序分析、小波分析、小波包分析、時(shí)頻分析、機(jī)械圖像分析以及遠(yuǎn)程智能診斷系統(tǒng),系統(tǒng)的主頁(yè)面如圖2所示。此外,對(duì)于委托的遠(yuǎn)程信號(hào)分析與診斷,遠(yuǎn)程信號(hào)分析與診斷中心必須生成正式的分析報(bào)告,經(jīng)過(guò)數(shù)字簽名后,送達(dá)委托人。
從上面的論述中不難知道,基于Matlab的遠(yuǎn)程信號(hào)分析與診斷是一種比較簡(jiǎn)快速的遠(yuǎn)程分析與診斷系統(tǒng)的開(kāi)發(fā)方法,它能充分利用Matlab強(qiáng)大的信號(hào)分析和工程計(jì)算能力,開(kāi)發(fā)出功能強(qiáng)大的遠(yuǎn)程信號(hào)分析與診斷系統(tǒng)。同時(shí),它還能充分發(fā)揮Matlab平臺(tái)良好的擴(kuò)展性,以及對(duì)硬件和數(shù)據(jù)庫(kù)的操作性,實(shí)現(xiàn)更高級(jí)的功能。
評(píng)論