《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > 基于MATLAB的遠(yuǎn)程信號分析與診斷系統(tǒng)的開發(fā)

基于MATLAB的遠(yuǎn)程信號分析與診斷系統(tǒng)的開發(fā)

2008-12-16
作者:張金玉1, 張優(yōu)云1, 王漢功2

??? 摘? 要: 討論了MATLAB通過WWW實現(xiàn)異地信號分析" title="信號分析">信號分析的原理和關(guān)鍵技術(shù),,設(shè)計了基于MATLAB的機(jī)械設(shè)備遠(yuǎn)程信號分析及遠(yuǎn)程故障診斷系統(tǒng),。

??? 關(guān)鍵詞: 遠(yuǎn)程診斷" title="遠(yuǎn)程診斷">遠(yuǎn)程診斷 信號處理 MATLAB軟件 WEB INTERNET

?

  MATLAB語言及其系統(tǒng)是MathWorks公司推出的一套高性能的數(shù)值計算和可視化數(shù)學(xué)軟件[1],。它集數(shù)值分析、矩陣運算,、信號處理、仿真控制和圖形顯示等于一體,,構(gòu)成了一個方便的,、功能強(qiáng)大的、界面友好的用戶環(huán)境和系統(tǒng)開發(fā)平臺,,在故障診斷等眾多工程領(lǐng)域有著廣泛的應(yīng)用[2,,3]

  近年來,,隨著計算機(jī)技術(shù)與通信技術(shù)的發(fā)展,,Internet/Intranet技術(shù)已成為遠(yuǎn)程信號分析與處理系統(tǒng)開發(fā)的理想平臺,,然而,要實現(xiàn)真正意義上的基于WEB的遠(yuǎn)程監(jiān)測,、分析與診斷,,非常困難[4]。本文在基于MATLAB的科學(xué)計算與圖形展示功能的Web應(yīng)用原理討論的基礎(chǔ)上,,給出了基于MATLAB實現(xiàn)機(jī)械設(shè)備遠(yuǎn)程信號分析及遠(yuǎn)程故障診斷系統(tǒng)的主要功能,、實現(xiàn)方式和方法,展示了一種在Internet/Intranet環(huán)境下實現(xiàn)遠(yuǎn)程監(jiān)測,、分析與診斷的快速實現(xiàn)方法,。

1 MATLAB的WEB應(yīng)用原理

  在MATLAB5.3以上版本的工具箱里,增加了WEB應(yīng)用工具,,通過基于MATLAB的Web應(yīng)用,,能使世界各地的用戶通過Internet將數(shù)據(jù)發(fā)送給MATLAB Web服務(wù)器,借助MATLAB強(qiáng)大的計算與圖形展示功能,,獲得計算結(jié)果或相應(yīng)的圖形結(jié)果,。

MATLAB的Web應(yīng)用主要由兩部分組成。一部分是MATLAB Web服務(wù)器,,負(fù)責(zé)管理Web應(yīng)用與MATLAB之間的通訊,。它實際上是一個多線程可執(zhí)行的TCP/IP" title="TCP/IP">TCP/IP應(yīng)用程序" title="應(yīng)用程序">應(yīng)用程序MATLABserver.exe,是MATLAB應(yīng)用程序運行的服務(wù)器環(huán)境;另一部分是Web服務(wù)代理,,TCP/IP的MATLAB Web服務(wù)器的客戶端,,一個可執(zhí)行程序matweb.exe,同時也是Web的CGI擴(kuò)展,,它將對MATLAB的請求重新定向到MATLABserver.exe進(jìn)行處理,。其原理結(jié)構(gòu)如圖1所示。

?

?

  由圖1可知,,MATLAB Web應(yīng)用必須基于某一標(biāo)準(zhǔn)的Web服務(wù)環(huán)境,。瀏覽器客戶通過TCP/IP協(xié)議請求Web服務(wù)器中的文檔,而MATLAB Web服務(wù)代理篩選所有的請求,,如果是MATLAB Web請求,,則將其交由MATLAB Web服務(wù)程序處理,否則由標(biāo)準(zhǔn)的Web服務(wù)器進(jìn)行處理,。在設(shè)置MATLAB Web應(yīng)用環(huán)境時,,MATLAB Web服務(wù)代理必須與系統(tǒng)的Web服務(wù)器安裝在同一臺機(jī)器上,而與MATLAB Web服務(wù)程序則可以在同一臺機(jī)器中,,也可在不同的機(jī)器中,。

2 建立基于MATLAB的Web應(yīng)用

  建立基于MATLAB的Web應(yīng)用需要幾個步驟。下面通過實例來說明建立MATLAB Web應(yīng)用的基本步驟,。

2.1 請求MATLAB Web服務(wù)的HTML文檔

  請求MATLAB Web服務(wù)的HTML文檔主要完成兩方面的" title="面的">面的功能,。一方面是接收瀏覽器用戶的輸入,,這與一般的Web應(yīng)用的處理方法相同,可以通過HTML的表單來實現(xiàn);另一方面是設(shè)置一個特殊的標(biāo)志,,將該請求重新定向到MATLAB Web服務(wù)代理進(jìn)行處理,,它的實現(xiàn)方法與一般的CGI程序調(diào)用方法相同。下面是其實例代碼片斷:

???

  該片斷中最關(guān)鍵的部分是Form標(biāo)記的Action屬性的設(shè)置及隱輸入框mlmfile(參數(shù)名固定),,其值為將在MATLAB Web服務(wù)程序中運行的m文件的文件名,。另外,為了方便使用,,一般可以將瀏覽器窗口分為幾個部分,,一部分用于輸入?yún)?shù)和控制,一部分用于顯示運行結(jié)果或圖形,。

2.2 MATLAB Web應(yīng)用的設(shè)置

  MATLAB Web應(yīng)用的設(shè)置工作主要分為三個方面,。第一是安裝Web服務(wù)器和瀏覽器,可以選用Microsoft IIS,、Netscape NES或Apache Web服務(wù)器和IE 或NETSCAPE瀏覽器,。第二是對MATLAB Web服務(wù)器的設(shè)置,即配置matlabserver.conf文件,,設(shè)定當(dāng)前MATLAB運行的個數(shù),。第三是對MATLAB Web服務(wù)代理的設(shè)置,即每增加一個MATLAB Web應(yīng)用,,都需要在代理服務(wù)的配置文件matweb.conf中增加一項配置。如在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)用程序的開發(fā)

  MATLAB應(yīng)用程序主要具有以下3個方面的功能:

  ·接收輸入HTML表單中的輸入值;

  ·調(diào)用MATLAB中內(nèi)置的各種函數(shù)進(jìn)行科學(xué)計算或作圖;

  ·將計算結(jié)果放到一個MATLAB結(jié)構(gòu)中;

  ·調(diào)用Htmlrep文件將計算結(jié)果或生成的圖形輸出到HTML模板頁面中,,并將這些結(jié)果返回給最終用戶。

  一個典型的MATLAB應(yīng)用程序代碼如下:

  Function PageString = functest(InputSet,, OutFile)

  cd(InputSet.mldir),;

  % 清除1個小時以前的舊圖形

  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,;

  % 計算或作圖

  plot(x,eval(S)),;

  ylabel(‘測試’),;

  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.mlid),;

  drawnow;

  wsprintjpeg(Fig,, PlotFile),;

  close(Fig);

  % 對輸出模板進(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/’,,InputSet.mldir1)PlotFile];

  PageString = htmlrep(s,, templatefile),;

  end

2.4 顯示運行結(jié)果的HTML模板的開發(fā)

  在上面的MATLAB應(yīng)用程序中,最后的結(jié)果輸出部分調(diào)用了用于輸出的HTML模板functemplate.htm,。下面是該文件的部分代碼,,其中最重要的部分是標(biāo)記″$......$″中包含的變量部分,在MATLAB應(yīng)用程序中通過函數(shù)htmlrep,,使用輸出結(jié)構(gòu)中相應(yīng)的變量值對這些標(biāo)記進(jìn)行替換,。

   

3 基于MATLAB的遠(yuǎn)程信號分析與診斷系統(tǒng)

  MATLAB是信號分析能力很強(qiáng)的開發(fā)平臺,將其與Web服務(wù)器結(jié)合,,經(jīng)過合理的設(shè)計,,可以比較快地實現(xiàn)遠(yuǎn)程信號分析與診斷,。圖2是基于MATLAB的遠(yuǎn)程信號分析與診斷系統(tǒng)的主頁面,圖3是時頻分析的實例,。在開發(fā)該系統(tǒng)時,,除上述問題外,主要需要解決以下幾方面的技術(shù)問題,。

?

?

?

3.1 原始數(shù)據(jù)的提交

  用戶原始數(shù)據(jù)的提交主要有兩種方式,。一種是專用數(shù)據(jù)的提交,主要是為安裝有本中心開發(fā)的RB21和RB20的用戶服務(wù)的,。在RB21和RB20中,,其監(jiān)測網(wǎng)絡(luò)中有專門的監(jiān)測數(shù)據(jù)庫,其數(shù)據(jù)庫結(jié)構(gòu)與遠(yuǎn)程分析與處理中心的ORACLE8I數(shù)據(jù)庫基本是一致的,,可以使用專門的數(shù)據(jù)提交程序,。另一種是通用數(shù)據(jù)的提交,是為普通用戶準(zhǔn)備的,。這又分為兩種情況,,一是已知原始數(shù)據(jù)的提交,它按照遠(yuǎn)程分析中心給定的數(shù)據(jù)格式提交;二是未知數(shù)據(jù)格式數(shù)據(jù)的提交,,采用時域或頻域機(jī)械圖像的方式提交,,這主要是為現(xiàn)場數(shù)據(jù)存儲格式不明的測試系統(tǒng)準(zhǔn)備的。具體的提交方法采用以下三種方式:

  (1)FTP方式:FTP是建立在TCP/IP協(xié)議基礎(chǔ)上的文件傳輸協(xié)議,,系統(tǒng)為注冊用戶提供基于FTP的數(shù)據(jù)提交方式,,用戶通過登錄遠(yuǎn)程診斷中心的FTP服務(wù)器,可以用類似資源管理器的方式直接提交監(jiān)測數(shù)據(jù),。

  (2)Email方式:Email是目前應(yīng)用比較廣泛的郵件協(xié)議,,用戶可以通過中心的Email提交原始數(shù)據(jù),不過通過這種方式提交數(shù)據(jù)需要一定的時間延滯,。

  (3)Socket方式:Socket是建立在傳輸層協(xié)議(主要是TCP和UDP)上的一種套接字規(guī)范,,可以通過Delphi的Internet控件,,即服務(wù)器端組件TserverSocket和客戶端組件TclientSocket進(jìn)行編程,,實現(xiàn)基于TCP/IP的Socket網(wǎng)絡(luò)接口的數(shù)據(jù)傳輸。

3.2 安全問題的解決

  由于Internet網(wǎng)絡(luò)的開放性與共享性導(dǎo)致了遠(yuǎn)程監(jiān)測與診斷系統(tǒng)的安全性受到嚴(yán)重影響,。如何保證網(wǎng)上傳輸?shù)臄?shù)據(jù)的安全,,服務(wù)雙方職責(zé)的明確和身份確認(rèn)是遠(yuǎn)程診斷研究必須解決的課題。遠(yuǎn)程監(jiān)測與診斷服務(wù)中的安全性需求可以分為以下幾個方面:

  (1)數(shù)據(jù)的保密性 用于防止非法用戶進(jìn)入系統(tǒng)及合法用戶對系統(tǒng)資源的非法使用;通過對一些敏感的數(shù)據(jù)文件進(jìn)行加密來保護(hù)系統(tǒng)之間的數(shù)據(jù)交換,,防止除接收方之外的第三方截獲數(shù)據(jù)及即使獲取文件也無法得到其內(nèi)容;

  (2)數(shù)據(jù)的完整性 防止非法用戶對進(jìn)行交換的數(shù)據(jù)進(jìn)行無意或惡意的修改,、插入,防止交換的數(shù)據(jù)丟失等;

  (3)數(shù)據(jù)的不可否認(rèn)性 對數(shù)據(jù)和信息的來源進(jìn)行驗證,,以確保數(shù)據(jù)由合法的用戶發(fā)出;防止數(shù)據(jù)發(fā)送方在發(fā)出數(shù)據(jù)后又加以否認(rèn);同時防止接收方在收到數(shù)據(jù)后又否認(rèn)曾收到過此數(shù)據(jù)及篡改數(shù)據(jù);

  (4)數(shù)據(jù)的公正性 用具有獨立法律地位的認(rèn)證機(jī)構(gòu)或合同確認(rèn)服務(wù)雙方職責(zé)和義務(wù),。

????目前遠(yuǎn)程診斷中心解決安全性問題主要采用兩方面的措施,。一方面采用用戶注冊的方法,將用戶分為五個安全等級,,為他們分配特定的權(quán)限和口令;另一方面采用數(shù)字簽名技術(shù),,用戶提交的數(shù)據(jù)和申請,中心生成的診斷報告,,均經(jīng)過數(shù)字簽名,。

3.3 遠(yuǎn)程分析與診斷功能的設(shè)計

  作為遠(yuǎn)程信號分析與故障診斷中心,系統(tǒng)的功能應(yīng)盡可能豐富和強(qiáng)大,,應(yīng)該比現(xiàn)場監(jiān)測與分析系統(tǒng)提供更為先進(jìn)和新穎的功能,。因此本中心提供頻譜分析、相關(guān)分析,、時序分析,、小波分析、小波包分析,、時頻分析,、機(jī)械圖像分析以及遠(yuǎn)程智能診斷系統(tǒng),系統(tǒng)的主頁面如圖2所示,。此外,,對于委托的遠(yuǎn)程信號分析與診斷,遠(yuǎn)程信號分析與診斷中心必須生成正式的分析報告,,經(jīng)過數(shù)字簽名后,,送達(dá)委托人。

  從上面的論述中不難知道,,基于Matlab的遠(yuǎn)程信號分析與診斷是一種比較簡單快速的遠(yuǎn)程分析與診斷系統(tǒng)的開發(fā)方法,,它能充分利用Matlab強(qiáng)大的信號分析和工程計算能力,開發(fā)出功能強(qiáng)大的遠(yuǎn)程信號分析與診斷系統(tǒng),。同時,,它還能充分發(fā)揮Matlab平臺良好的擴(kuò)展性,以及對硬件和數(shù)據(jù)庫的操作性,,實現(xiàn)更高級的功能,。

?

參考文獻(xiàn)

1 李傳日,齊華,,袁宏杰.在Matlab環(huán)境下實現(xiàn)對硬件資源的訪問.電子技術(shù)應(yīng)用,,2000;26(12):18~20

2 張金玉.基于網(wǎng)絡(luò)的遠(yuǎn)程診斷與處理支持中心的研究.博士學(xué)位論文,,西安:西安交通大學(xué),,2000.3

3 王金濤.機(jī)電設(shè)備信息管理以及遠(yuǎn)程診斷方法的研究.碩士學(xué)位論文,西安:西安交通大學(xué),2001.3

4 MathWorks,, Inc.,,Matlab Web Server, The Language of?Technical Computing. 2000.9

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。