基于MATLAB Web Server的虚拟实验室实现

时间:2022-06-19 09:15:24

基于MATLAB Web Server的虚拟实验室实现

文章编号:1672-5913(2008)10-0039-02

摘要:本文提出了MATLAB Web Server 远程服务设计方案,并在研究MATLAB Web Server 技术、M函数文件的结构、功能和设计方法的基础上,设计了一个“信号与系统”课程虚拟实验室系统,为计算机实验辅助教学提供了一种可行的解决方案。

关键词:远程虚拟实验;MATLAB Web Server;信号与系统

中图分类号:G642

文献标识码:B

1 引言

“信号与系统”课程的特点是概念抽象,数学知识含量大,繁杂的数学公式推导及数学结果都使学生较难于理解,这就更加需要通过实验来帮助学生理解这些抽象概念。建立虚拟实验室是解决这一难题的很好的途径。开发“信号与系统”课程相关的计算机虚拟实验室,能充分利用宝贵的计算机资源为基础课程服务。

MATLAB Web Server是MATLAB的一个可选组件,允许工程人员将MATLAB应用程序通过Internet进行,使用者不用学会MATLAB,只要通过点击鼠标就可以访问MATLAB应用程序,获得计算的结果或相应的图形结果,特别适合于网络虚拟实验平台的开发。

本文以Browser/Server(B/S)模式的分布式网络结构,将应用程序MATLAB部署在WEB服务器端,从而达到跨平台的作用。服务器端的应用程序使用WEB服务器端作为和客户端浏览器的接口,应用程序在WEB服务器上生成的HTML文档可以给所在平台上的用户浏览,从而实现远程虚拟实验室。

2 基于matlab web server的远程虚拟实验技术

2.1MATLAB Web Server基本配置

首先采用Windows XP中自带的组件IIS5.0对计算机进行WEB服务器配置;建立虚拟目录/cgi2/bin和/icons,并把它们和WEB服务器主目录一起指向/matlab/toolbox/webserver/wsdemos。

安装程序在/matlab/webserver目录下创建一个matlabserver.conf文件。首次打开时,该文件只有一行“-m 1”,该参数表示允许同时运行的MATLAB 进程数,可以根据需要改变其数目。调用MatlabWeb Server,要事先对应用程序的信息表matlabserver.conf文件进行配置,将所有由网页调用的M文件进行列表。每增加一个MATLAB WEB应用,都需要在matlabserver.conf中增加一项配置。即:

[文件名] /*Matlab进行调用的M文件的名字*/

mlserver=/*服务器名称或IP地址,单机测试可配置为127. 0. 0. 1*/

mldir= /*设置MATLAB程序的路径,同时也是读写文件的目录*/

注意,要使应用生效服务器必须重启。

2.2建立一个向MATLAB提交数据的HTML输入文档

根据实验设计需求,建立一个处理输入数据和计算结果的m文件,如抽样定理实验sample.m。把所有要使用的m函数文件都移至/matlab/toolbox/webserver/wsdemos中,通过MATLAB Web Server调用MATLAB操作的都是这个文件夹里面的m函数文件。

随后建立一个向MATLAB提交数据的HTML输入文档。参数提交是通过HTML页面中的表单来完成的,形式如<form action=“/cgi-bin/matweb.exe” method=“post” >。表单中一个重要和必须的输入变量是mlmfile,标明处理该表单的MATLAB程序名,其属性为隐含。例如,< input type=“hidden” name=“mlmfile” value = “sample” >,其中,value值为接收该表单参数的MATLAB程序。简化的HTML代码为

<html><body>

<form action=“/matlab/cgi-bin/matweb.exe” method=

“post”

target="outputwindow">

<input type=“hidden” name=“mlmfile” value=

“sample”><table>

……

<input type=“submit” name=“submit” value=“确定”><table>

</form>

</body></html>

在Web页面中,点击 “确定”按钮,将调用MATLAB WEB服务器的入口程序matweb.exe,从HTML表单中提取数据,运行MATLAB M函数文件sample.m。

2.3建立一个显示MATLAB计算结果的HTML输出文档

MATLAB程序将输入变量进行处理后,计算结果,将其写入结构outstruct中;然后调用MATLAB的子程序Htmlrep(outstruct,temlatefile),生成用于输出的HTML文件,其中,outstruct是包含所有输出参数的struct结构;templatefile是一个预先编制好的HTML模板文件。Htmlrep执行的具体步骤是把outstruct中的值传给HTML模板文件,然后把HTML进行转换。转换后的HTML是一个纯文本文件,其内容通过函数返回值以字符串的形式返回。这样,网关程序matweb.exe就根据函数返回值的内容生成一个HTML文件,直接送至客户端浏览器。

由于函数返回值是一个字符串,字符串本身是不能包含图片的。要解决这一问题,与标准的HTML一样,输出的动态HTML文件,要事先写好<img >标记,格式为<img src="$pic $">,而图片的文件名也作为输出变量保存在outstruct中。图片的生成由MATLAB程序完成。可以在生成图片之前使用set()命令调整图片的大小。如果希望采用其他格式,可以尝试使用MATLAB的imread和imwrite命令改变图片格式。

3 实验实例

基于MATLAB Web Server虚拟实验室的主页如图1所示。主页是进入各模块的门户,依次进入各个实验部分,即基本信号、周期信号的傅里叶级数、周期信号的频谱分析、连续信号的卷积、信号的抽样及重建。

图1 虚拟实验室的主页

下面以信周期信号的傅里叶级数表示说明基于MATLAB Web Server的虚拟实验方法和过程。

一些周期函数表示为傅里叶级数通常需要无限多项才能完全逼近原函数。但在实际应用中,经常采用有限项级数来代替无限项级数。因此,取有限项级数是一种近似的方法,项数愈多,有限项数愈逼近原函数。换言之,其方均误差愈小。选取周期方波信号为例来分析周期信号的傅里叶级数。用户在客户端输入傅里叶级数的项数,可以观察到有限项级数的傅里叶级数逼近原函数的程度。

已知周期方波信号如图2所示,周期方波信号的傅里叶级数展开为

利用本系统中的周期信号的傅里叶级数的在线实验,就可以通过MATLAB Web Server调用服务器上的MATLAB实现其各次谐波的叠加,并返回部分和波形结果。

图2 周期方波信号

进入周期信号的傅里叶级数页面,如图3所示。取消“比较”选项前面的勾选,在参数设置中设置傅里叶级数的项数为3,点击“确定”,则服务器返回MATLAB计算的图形结果,如页面右边。从返回的WEB页面上我们可以看到,当傅里叶级数的项数为3时,其各次谐波的叠加波形与原函数的波形的逼近程度。

图3 周期信号的傅里叶级数页面

从周期方波信号的傅里叶级数展开中可看出,当有限项级数愈多,与原函数的逼近程度越大。为了观察这种现象,勾选“比较”选项,设置另一个傅里叶级数的项数,这里选47,点击“确定”,则服务器返回MATLAB计算的图形结果,如图4所示。

对比傅里叶级数的项数为3及47的时候,其各次谐波的叠加波形与原函数的波形的逼近程度。可以看到,随着傅里叶级数项数的增多,部分和与周期方波信号的误差越来越小。在 项的时候,部分和的波形与周期方波信号的波形已经非常接近。并且能清晰地观察到“吉布斯”现象。

图4 谐波的叠加波形与原函数的波形比较图

4结束语

“基MATLAB Web Server虚拟实验室”对学生学好“信号与系统”课程有非常好的辅助作用。相对于硬件实验来说,虚拟实验室不仅有实时性、直观性的特点,而且大大节约了成本,提高了教学效率,增进了学生学习的兴趣,加深了学生对所学课程的理解。

参考文献

[1] 甘俊英,胡异丁. 基于MATLAB的信号与系统实验指导[M]. 北京:清华大学出版社,2007.

[2] 陈鸽,常敏慧. MATLAB在信号处理系列课程实验中的应用[J]. 实验技术与管理,2006,23(11):77-80.

[3] 何强,何英. MATLAB扩展编程[M]. 北京:清华大学出版社,2002.

[4] 黄斯伟. HTML完全使用详解[M]. 北京:人民邮电出版社,2006.

上一篇:培养应用型软件人才的实践教学体系的研究与实... 下一篇:以素质教育为基础的计算机基础教学改革探索