| 摘要:討論了MATLAB通過WWW實現(xiàn)異地信號分析的原理和關(guān)鍵技術(shù),設(shè)計了基于MATLAB的機(jī)械設(shè)備遠(yuǎn)程信號分析及遠(yuǎn)程故障診斷系統(tǒng)。 關(guā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)方式和方法,展示了一種在Iternet/Interanet環(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應(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 請求MACTLAB Web服務(wù)的HTML文檔 請求MATLAB Web服務(wù)的HTML文檔主要完成兩方面的功能。一方面是接收瀏覽器用戶的輸入,這與一般的Web應(yīng)用的處理方法相同,可以通過HTML的表單實現(xiàn);另一方面是設(shè)置一個特殊的標(biāo)志,將該請求重新定向到MATLAB Web服務(wù)代理進(jìn)行處理,它的實現(xiàn)方法與一般的CGI程序調(diào)用方法相。下面是其實例代碼片斷: <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ù)程序中運行的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.mild); 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/'',Input Set.mldir 1)PlotFile]; PageString=htmlrep(s,templatefile); 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)行替換。 <html><body bgcolor="#FFFFFF"> <P> </p><p align="center"> <img border=0 src="$GraphFileName$"></p></body></html> 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ù)問題。 |