《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > 基于MATLAB的远程信号分析与诊断系统的开发

基于MATLAB的远程信号分析与诊断系统的开发

2008-12-16
作者:张金玉1, 张优云1, 王汉功2

    摘  要: 讨论了MATLAB通过WWW实现异地信号分析" title="信号分析">信号分析的原理和关键技术,设计了基于MATLAB的机械设备远程信号分析及远程故障诊断系统。

    关键词: 远程诊断" title="远程诊断">远程诊断 信号处理 MATLAB软件 WEB INTERNET

 

  MATLAB语言及其系统是MathWorks公司推出的一套高性能的数值计算和可视化数学软件[1]。它集数值分析、矩阵运算、信号处理、仿真控制和图形显示等于一体,构成了一个方便的、功能强大的、界面友好的用户环境和系统开发平台,在故障诊断等众多工程领域有着广泛的应用[2,3]

  近年来,随着计算机技术与通信技术的发展,Internet/Intranet技术已成为远程信号分析与处理系统开发的理想平台,然而,要实现真正意义上的基于WEB的远程监测、分析与诊断,非常困难[4]。本文在基于MATLAB的科学计算与图形展示功能的Web应用原理讨论的基础上,给出了基于MATLAB实现机械设备远程信号分析及远程故障诊断系统的主要功能、实现方式和方法,展示了一种在Internet/Intranet环境下实现远程监测、分析与诊断的快速实现方法。

1 MATLAB的WEB应用原理

  在MATLAB5.3以上版本的工具箱里,增加了WEB应用工具,通过基于MATLAB的Web应用,能使世界各地的用户通过Internet将数据发送给MATLAB Web服务器,借助MATLAB强大的计算与图形展示功能,获得计算结果或相应的图形结果。

MATLAB的Web应用主要由两部分组成。一部分是MATLAB Web服务器,负责管理Web应用与MATLAB之间的通讯。它实际上是一个多线程可执行的TCP/IP" title="TCP/IP">TCP/IP应用程序" title="应用程序">应用程序MATLABserver.exe,是MATLAB应用程序运行的服务器环境;另一部分是Web服务代理,TCP/IP的MATLAB Web服务器的客户端,一个可执行程序matweb.exe,同时也是Web的CGI扩展,它将对MATLAB的请求重新定向到MATLABserver.exe进行处理。其原理结构如图1所示。

 

 

  由图1可知,MATLAB Web应用必须基于某一标准的Web服务环境。浏览器客户通过TCP/IP协议请求Web服务器中的文档,而MATLAB Web服务代理筛选所有的请求,如果是MATLAB Web请求,则将其交由MATLAB Web服务程序处理,否则由标准的Web服务器进行处理。在设置MATLAB Web应用环境时,MATLAB Web服务代理必须与系统的Web服务器安装在同一台机器上,而与MATLAB Web服务程序则可以在同一台机器中,也可在不同的机器中。

2 建立基于MATLAB的Web应用

  建立基于MATLAB的Web应用需要几个步骤。下面通过实例来说明建立MATLAB Web应用的基本步骤。

2.1 请求MATLAB Web服务的HTML文档

  请求MATLAB Web服务的HTML文档主要完成两方面的" title="面的">面的功能。一方面是接收浏览器用户的输入,这与一般的Web应用的处理方法相同,可以通过HTML的表单来实现;另一方面是设置一个特殊的标志,将该请求重新定向到MATLAB Web服务代理进行处理,它的实现方法与一般的CGI程序调用方法相同。下面是其实例代码片断:

   

  该片断中最关键的部分是Form标记的Action属性的设置及隐输入框mlmfile(参数名固定),其值为将在MATLAB Web服务程序中运行的m文件的文件名。另外,为了方便使用,一般可以将浏览器窗口分为几个部分,一部分用于输入参数和控制,一部分用于显示运行结果或图形。

2.2 MATLAB Web应用的设置

  MATLAB Web应用的设置工作主要分为三个方面。第一是安装Web服务器和浏览器,可以选用Microsoft IIS、Netscape NES或Apache Web服务器和IE 或NETSCAPE浏览器。第二是对MATLAB Web服务器的设置,即配置matlabserver.conf文件,设定当前MATLAB运行的个数。第三是对MATLAB Web服务代理的设置,即每增加一个MATLAB Web应用,都需要在代理服务的配置文件matweb.conf中增加一项配置。如在html表单中调用的m文件的文件名为functest,相应地,需要在matweb.conf中增加下面的内容:

  [functest]

  mlserver=210.27.64.1

  mldir=e:/inetpub/wwwroot/icons

  其中mlserver=210.27.64.1指明MATLAB Web服务程序所在机器的IP地址,而下面一行主要是MATLAB工作目录的设置。

2.3 MATLAB应用程序的开发

  MATLAB应用程序主要具有以下3个方面的功能:

  ·接收输入HTML表单中的输入值;

  ·调用MATLAB中内置的各种函数进行科学计算或作图;

  ·将计算结果放到一个MATLAB结构中;

  ·调用Htmlrep文件将计算结果或生成的图形输出到HTML模板页面中,并将这些结果返回给最终用户。

  一个典型的MATLAB应用程序代码如下:

  Function PageString = functest(InputSet, OutFile)

  cd(InputSet.mldir);

  % 清除1个小时以前的旧图形

  wscleanup(‘f*.jpeg’, 1);

  Fig = figure(‘visible’,‘off’);

  % 接收输入值,并进行转换

  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([‘**函数:’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);

  % 对输出模板进行处理,生成输出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 显示运行结果的HTML模板的开发

  在上面的MATLAB应用程序中,最后的结果输出部分调用了用于输出的HTML模板functemplate.htm。下面是该文件的部分代码,其中最重要的部分是标记″$......$″中包含的变量部分,在MATLAB应用程序中通过函数htmlrep,使用输出结构中相应的变量值对这些标记进行替换。

   

3 基于MATLAB的远程信号分析与诊断系统

  MATLAB是信号分析能力很强的开发平台,将其与Web服务器结合,经过合理的设计,可以比较快地实现远程信号分析与诊断。图2是基于MATLAB的远程信号分析与诊断系统的主页面,图3是时频分析的实例。在开发该系统时,除上述问题外,主要需要解决以下几方面的技术问题。

 

 

 

3.1 原始数据的提交

  用户原始数据的提交主要有两种方式。一种是专用数据的提交,主要是为安装有本中心开发的RB21和RB20的用户服务的。在RB21和RB20中,其监测网络中有专门的监测数据库,其数据库结构与远程分析与处理中心的ORACLE8I数据库基本是一致的,可以使用专门的数据提交程序。另一种是通用数据的提交,是为普通用户准备的。这又分为两种情况,一是已知原始数据的提交,它按照远程分析中心给定的数据格式提交;二是未知数据格式数据的提交,采用时域或频域机械图像的方式提交,这主要是为现场数据存储格式不明的测试系统准备的。具体的提交方法采用以下三种方式:

  (1)FTP方式:FTP是建立在TCP/IP协议基础上的文件传输协议,系统为注册用户提供基于FTP的数据提交方式,用户通过登录远程诊断中心的FTP服务器,可以用类似资源管理器的方式直接提交监测数据。

  (2)Email方式:Email是目前应用比较广泛的邮件协议,用户可以通过中心的Email提交原始数据,不过通过这种方式提交数据需要一定的时间延滞。

  (3)Socket方式:Socket是建立在传输层协议(主要是TCP和UDP)上的一种套接字规范,可以通过Delphi的Internet控件,即服务器端组件TserverSocket和客户端组件TclientSocket进行编程,实现基于TCP/IP的Socket网络接口的数据传输。

3.2 安全问题的解决

  由于Internet网络的开放性与共享性导致了远程监测与诊断系统的安全性受到严重影响。如何保证网上传输的数据的安全,服务双方职责的明确和身份确认是远程诊断研究必须解决的课题。远程监测与诊断服务中的安全性需求可以分为以下几个方面:

  (1)数据的保密性 用于防止非法用户进入系统及合法用户对系统资源的非法使用;通过对一些敏感的数据文件进行加密来保护系统之间的数据交换,防止除接收方之外的第三方截获数据及即使获取文件也无法得到其内容;

  (2)数据的完整性 防止非法用户对进行交换的数据进行无意或恶意的修改、插入,防止交换的数据丢失等;

  (3)数据的不可否认性 对数据和信息的来源进行验证,以确保数据由合法的用户发出;防止数据发送方在发出数据后又加以否认;同时防止接收方在收到数据后又否认曾收到过此数据及篡改数据;

  (4)数据的公正性 用具有独立法律地位的认证机构或合同确认服务双方职责和义务。

    目前远程诊断中心解决安全性问题主要采用两方面的措施。一方面采用用户注册的方法,将用户分为五个安全等级,为他们分配特定的权限和口令;另一方面采用数字签名技术,用户提交的数据和申请,中心生成的诊断报告,均经过数字签名。

3.3 远程分析与诊断功能的设计

  作为远程信号分析与故障诊断中心,系统的功能应尽可能丰富和强大,应该比现场监测与分析系统提供更为先进和新颖的功能。因此本中心提供频谱分析、相关分析、时序分析、小波分析、小波包分析、时频分析、机械图像分析以及远程智能诊断系统,系统的主页面如图2所示。此外,对于委托的远程信号分析与诊断,远程信号分析与诊断中心必须生成正式的分析报告,经过数字签名后,送达委托人。

  从上面的论述中不难知道,基于Matlab的远程信号分析与诊断是一种比较简单快速的远程分析与诊断系统的开发方法,它能充分利用Matlab强大的信号分析和工程计算能力,开发出功能强大的远程信号分析与诊断系统。同时,它还能充分发挥Matlab平台良好的扩展性,以及对硬件和数据库的操作性,实现更高级的功能。

 

参考文献

1 李传日,齐华,袁宏杰.在Matlab环境下实现对硬件资源的访问.电子技术应用,2000;26(12):18~20

2 张金玉.基于网络的远程诊断与处理支持中心的研究.博士学位论文,西安:西安交通大学,2000.3

3 王金涛.机电设备信息管理以及远程诊断方法的研究.硕士学位论文,西安:西安交通大学,2001.3

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

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。