李 鹏 刘海平 陈永才
(中国人民解放军军械工程学院火炮工程系,河北 石家庄 050003)
【摘 要】基于MATLAB Web Server和网页开发技术,对火炮原理课程用网络虚拟实验系统进行了研究,阐述了虚拟实验系统的工作原理、环境配置及开发的关键技术,并给出了网络虚拟实验系统实例。
教育期刊网 http://www.jyqkw.com
关键词 MATLAB Web Server;虚拟;实验
作者简介:李鹏(1974—),博士,中国人民解放军军械工程学院,讲师,主要研究方向为武器系统动力学分析。
0 引言
在原理课程教学过程中,如果能够将理论教学与实验教学紧密结合,对于加深学生对课程内容的理解无疑是大有裨益的。然而在教学实践中真正实现这一点却并非易事。以笔者讲授的火炮原理课程为例,该课程内容庞杂,涉及内外弹道、强度理论、机械运动等多个学科,加之学时紧张,难以安排专门针对本课程的实验环节,即使开展数值模拟计算,也由于课程理论的复杂性和学生普遍缺乏编程基础而难以取得良好效果。网络虚拟实验系统的出现为解决上述难题提供了一个全新的思路,网络虚拟实验系统不仅可以作为课堂教学的补充,而且可以培养学生的自主学习能力,成为实验教学发展的重要方向。
本文基于MATLAB软件,进行了B/S(Browser/Server)模式的网络虚拟实验系统研究。MATLAB是Math Works公司推出的一种优秀的科学及工程计算软件,具有高效的数值计算和强大的图形处理能力,其Web Server组件将MATLAB的强大计算能力和Web浏览器的远程访问能力相结合,客户端通过Web浏览器向服务器发出请求和传递参数,服务器进行相关计算后可生成动态页面返回客户端。该虚拟实验系统将大量的计算程序设计在服务器端运行,位于客户端的学生不必具有编程基础,仅需一个Web浏览器即可进行虚拟实验,从而检验课程理论知识,加深学习认知。
1 工作原理
1.1 MATLAB Web Server 简介
MATLAB Web Server 主要由matlabserver 和matweb两部分组成。matlabserver是一个MATLAB Web服务器,用来管理Web应用程序和MATLAB之间的通信;matweb.exe是一个可执行程序,是MATLAB Web Server的TCP/IP客户端,它利用公共网关接口(CGI)从输入页面HTML文件中提取用户数据传递给matlabserver.exe进行处理。
MATLAB Web Server 的工作流程如图1所示。
用户在客户端输入网页上填写相应数据后,将任务提交给服务器端,服务器接收任务并把数据传递给matweb.exe,之后matlabserver将数据传递给MATLAB,MATLAB调用内部函数执行相应的计算任务。计算完毕后,matweb根据输出模板,将从matlabserver传回的数据填入到指定范围并构造出网页文件。最后Web服务器将matweb生成的页面文件和图形文件返回客户端,并在浏览器上显示结果。
在应用MATLAB Web Server时,应对其配置文件matweb.conf进行配置,matweb.conf文件的内容如下:
[应用程序名]
mlserver=服务器名
mldir=应用程序所在路径
每增加一个MATLAB Web应用,就需要增加一项上述配置。
1.2 运行环境配置
服务器端要提供WWW服务,还必须有一个传统的Web服务器,常用的有IIS服务器和Apache Web Server。IIS(Internet Information Server)是微软公司开发的信息服务器,是在windows环境下运行的最主要的Web服务器;Apache则具有开源、高效、配置灵活、安全等优点。本文选用的是IIS服务器。
客户端浏览器的选择取决于用户的使用习惯,可选择windows自带的IE浏览器,也可采用Firefox、chrome等第三方浏览器。
2 网络虚拟实验系统的构建
2.1 虚拟实验模型的建立
火炮原理课程,是研究火炮射击过程中一系列复杂现象的学科,其中最具代表性同时又是学生理解难点的是内弹道过程和外弹道过程,内弹道过程决定了火炮的膛压、初速,外弹道过程决定了火炮的射程、落点,掌握了这两个过程,就抓住了火炮射击的主线,抓住了课程的重点,本文选取了火炮内弹道计算模型和外弹道计算模型作为虚拟实验系统的基础。内外弹道方程组都是微分方程组,不具备熟练的编程技巧很难求解,MATLAB中提供了专门用于求解微分方程组的函数ode45,可以使微分方程组的求解过程大大简化,更加凸显了MATLAB在数学计算中的优势。
2.2 创建输入页面
一个虚拟实验系统,首先要建立输入页面,用户通过页面输入参数和请求,之后页面将相应内容传送到服务器。输入页面可以直接使用html语言建立,也可利用Frontpage、Dreamweaver等开发工具建立。
输入页面中必须包含与MATLAB Web服务相关的关键代码:
<input type="hidden" name="mfile" value="my_m_file"> % 设置一隐藏输入框mfile,其值为在MATLAB Web服务器中运行的m文件的名称。
<input type="submit" name="Submit" value="Submit"> % 创建“提交”或“计算”按钮。
2.3 编写虚拟试验系统计算m文件
用于计算的m文件是虚拟实验系统的主体,它必须是一个function函数,用于接收、处理页面输入的数据,并将结果输出为html文件。m文件由MATLAB脚本语言编写,可灵活调用MATLAB内置的各个函数,如上述用于求解微分方程组的ode45函数等,其数据结构、运算过程与MATLAB其他程序基本相同。
输出结果时首先将计算结果写入到一个结构数组outstruct中,如:outstruct.h=h;然后调用htmlrep函数将结果返回给输出文件,格式为:
retstr=htmlrep (outstruct,temlatefile);其中templatefile是一个预先编制好的用于输出的HTML文件。
2.4 创建输出页面
输出页面包含页面布局、文字说明、图形等信息,是最终呈现给用户的界面。输出页面通常预先定义模板,再由m文件调用。模板中用到MATLAB计算程序输出变量的地方用用$var_ name$的形式替换即可。如果输出结果中包含图形,则输出页面模板中要预先写好<img src=”$pic$”>,图形的文件名也作为变量保存在outstruct数组中。
3 虚拟实验系统实例
图2 虚拟实验系统界面
本文根据上述开发过程,编写了火炮原理课程网络虚拟实验系统。学生进入页面后,通过下拉框可选择不同种类的火炮,页面即给出该火炮的基本参数,同时页面提供了五个输入参数,分别是装药量、药室容积、弹丸质量、环境温度和射角,输入五个参数,点击“计算”按钮,页面即返回计算结果和相应的内外弹道曲线图。如图2所示。
通过改变输入参数,学生可以直观感受到某一参数的变化对火炮射击带来的影响,如装药量的增加会带来膛压上升,射程增大等,从而更深刻地理解理论知识,加深对课程的印象。该虚拟实验系统不占用课时,可由学生利用课余时间自行完成,从而成为课程教学的必要补充。
4 结束语
基于MATLAB Web Server的网络虚拟实验系统,充分发挥了MATLAB软件强大的数值计算功能,又利用了网页丰富多彩的表现形式,给用户提供了一个简单易用、功能强大的网络实验环境,成为理论课程教学的重要拓展内容,在远程教学领域拥有广阔的应用前景。
教育期刊网 http://www.jyqkw.com
参考文献
[1]徐望明.基于MATLAB Web Server的数字图像处理仿真实验[J].信息技术,2007,31(10).
[2]何强,何英.MATLAB扩展编程[M].清华大学出版社,2002.
[3]钟麟,王峰.MATLAB仿真技术与应用教程[M].国防工业出版社,2004.
[4]钱林方.火炮弹道学[M].北京理工大学出版社,2009.
[责任编辑:刘展]