一种远程信号分析与诊断系统设计和实现

时间:2011-09-03

 

  MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行就可以用。

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

  1 MATLAB的WEB应用原理

  Web是图形化的和易于导航的(navigate) Web 非常流行的一个很重要的原因就在于它可以在一页上同时显示色彩丰富的图形和文本的性能。在Web之前Internet上的信息只有文本形式。Web可以提供将图形、音频、视频信息集合于一体的特性。同时,Web是非常易于导航的,只需要从一个连接跳到另一个连接,就可以在各页各站点之间进行浏览了。

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

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

  2 建立基于MATLAB的Web应用

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

  2.1 请求MACTLAB Web服务的HTML文档

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

  <form action="/cgi-bin/matweb.exe"mathod="POST"target="outputwindow">

  <input type="hidden"name="mlmfile"value="functest">

  该片断中关键的部分是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.mild);

  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 ('https://%s/icons/',Input Set.mldir 1)PlotFile];

  PageString=htmlrep(s,templatefile);

  2.4 显示运行结果的HTML模板的开发

  HTML(Hyper Text Mark-up Language)即超文本标记语言或超文本链接标示语言,是目前网络上应用为广泛的语言,也是构成网页文档的主要语言。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。HTML的结构包括头部(Head)、主体(Body)两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。

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

  <html><body bgcolor="#FFFFFF">

  <P>&nbsp</p><p align="center">

  <img border=0 src="$GraphFileName$"></p></body></html>

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

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

  3.1 原始数据的提交

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

  (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平台良好的扩展性,以及对硬件和数据库的操作性,实现更的功能。

 


  
上一篇:应用于自助加油机终端行业的EP9315
下一篇:一种氢气浓度的检测系统设计和实现

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料