Matlab 在线实验系统关键技术的研究与实现
孔庆霞,朱全银
(淮阴工学院电子信息工程系,江苏淮安 223001)
摘 要:虚拟仪器技术的发展及应用使远程教育成为可能。文章研究了Matlab 在线实验系统组建的关键技术,实例系统采用了Active X 组件、COM 组件等混合编程技术,服务器采用了N ET 框架、SQL 数据库技术,使先进的教学方法和优越的实验条件为远程用户服务,满足学生课内外在线实验的需求,对同类系统的研究开发具有较好的借鉴作用。
关键词:在线实验系统;Matlab ;ActiveX ;COM 组件
中图分类号:TP39 文献标志码:A 文章编号:100224956(2009)0420087203
Research and implementation of key technology
for online Matlab experiment system
K ong Qingxia ,Zhu Quanyin
(Department of Electronic Information Engineering ,Huaiyin Institute of Technology ,Huai ’an 223001,China )Abstract :Distance education can be held up with the developing and the application technology of virtual in 2strument.Some kinds of key technology of Matlab online experiment systems are researched ,and an applica 2tion system which is based on the mixed programming of the ActiveX and COM 2based kits has been developed.N ET f ramework and SQL database technology are used to build up the service.The advanced teaching meth 2ods and the excellent working environment can be used for distance users and provide the students with work 2ing online.It is very usef ul for the same requirements.
K ey w ords :online experiment system ;Matlab ;ActiveX ;COM 2based kits
收稿日期:2008204221
作者简介:孔庆霞(1976—
),女,江苏省涟水市人,实验师,研究方向为计算机应用技术.
当前普及的网络教育模式———远程教育已经发展
成为高等教育和基础教育的一种重要教学模式,并且取得了非常显著的教学效果。远程教育的发展需
要建立和开发丰富的远程教学资源,其中包括教学内容信息、教学课件的制作和开发、虚拟实验室的建立等。近年来,信息高速公路的建立,通信、网络、多媒体等新技术的出现,使得远程教学成为现实。各种各样的远程教学系统层出不穷,国际、国内各个高校都在创建自己的计算机网络教学系统。如何利用Intenet ,使师生共享校内、国内乃至国际的信息资源,以更好地为教学、科研、生活服务等也成为了教育界的一大研究课题。
1 国内外发展现状
1999年6月13日发布的《中共中央、国务院关于
深化教育改革全面推进素质教育的决定》中明确指出,
国家支持建设以中国教育科研网和卫星视频系统为基
础的现代远程教育网络,加强经济实用型终端平台系
统和校园网络或局域网络的建设。
世界许多著名大学,如牛津大学和Carnegie Mel 2lon 大学,已经开发了在线实验室。牛津大学新建的
化学信息产业中心允许学生通过国际互连网在线实验室进行交互式化学实验;Carnegie Mellon 大学提供了关于电路特性分析和电机控制方面的网上在线实验。我国在在线实验方面,尚未建成可使用的在线实验室平台,已建成的在线实验室主要提供相应课程的实验,方便学生学习、理解或者用于科学研究,如Qo S 路由算法的评价、网上专家系统等。
2 在线实验的关键技术
Matlab 的Web 应用主要由两个部分组成,一部
分是Matlab Web Server ,它实际上是一个可执行的应用程序 ,是Matlab 应用程序运行的
环境;另一部分是Web 服务代理,一个可执行程序 ,它将所有对Matlab 的请求重定向到 进行处理。
ISSN 1002-4956CN11-2034/T 实 验 技 术 与 管 理Experimental Technology and Management 第26卷 第4期 2009年4月
Vol.26 No.4 Apr.2009
2.1 COM组件技术
COM描述一个对象的可执行代码(.dll或.exe 文件的代码)可以被其他对象执行。即使两个对象使用不同语言来编写的,他们可以用COM标准来进行通信。
在C++或C中使用COM技术调用Matlab数据实现方法有:(1)根据实际需要在Matlab中开发算法,写成M函数文件的形式(注意:不能是脚本文件,必须是函数文件);(2)利用Matlab的COM Builder 将M函数编译为COM组件;(3)在C++或C中中调用COM组件。
2.2 Active X组件的Matlab引擎组件技术
ActiveX控件能够在不同的环境中使用,包括VC、Delp hi、C++Builder等。可以利用自动化服务器和自动化控制器技术,实现Matlab和其他语言的接口。但是Matlab只有供C或FOR TRAN语言使用的编程接口,在Visual Basic中无法对其直接进行调用。ActiveX技术的应用有些像DDE链接,但比DD E链接更强大。在ASP.N ET环境下可以实现Matlab引擎组件技术,当Matlab软件在服务器上安装后,Matlab计算引擎ActiveX组件自动注册。最常用的接口有Execute、Get FullMat rix和Set FullMat rix 等,分别是实现运行脚本、向Matlab Server中添加矩阵和从Matlab服务器中读取矩阵的值等功能,具有较高的实用价值。
2.3 MatrixVB技术
Mat rixVB是Mat hWorks针对VB提供的一个Matlab库。它可以不依赖于Matlab的环境而在Visual Basic6.0中完成Matlab中的矩阵运算和图形显示,从而实现脱离Matlab环境对Matlab函数和过程的有效调用。Mat rixVB安装完成后,只需在VB工程中引用Mmat rix即可。在VB中调用Matlab库提供的函数就如同调用VB中的函数一样,调用大量有矩阵运算和图形显示的程序,节省大量的编程时间。
2.4 DDE技术
动态数据交换是在Windows环境下支持客户/服务器(Client/Server)计算模式的重要技术之一。由于VB、Matlab均支持DDE技术,因而利用VB作为客户端,Matlab作为服务器端,二者之间通过DDE交换数据,从而实现调用Matlab。
3 基于ActiveX技术和COM组件的B/S体系结构系统实现
ActiveX和COM组件本身固有的优势正好可以弥补B/S结构的不足,在原有B/S体系结构的基础上,结合COM组件和ActiveX技术,设计出一种B/S 体系结构,如图1所示
。
图1 基本COM组件和ActiveX技术的B/S体系结构
在这种体系结构中,组件位于应用服务器中,客户端发出H T TP请求到Web服务器,Web服务器将请求传送给应用服务器,应用服务器将数据请求传送给数据库服务器,数据库服务器将数据返回应用服务器,然后再由Web服务器将数据传送给客户端。对于一些实现起来困难的功能或一些需要丰富的H TML页面,通过在页面中嵌入ActiveX控件来实现。
采用这种结构的优点在于:①充分发挥了B/S体系结构的优势。保持了瘦客户端的优点。装入客户机的软件可以采用统一的WWW浏览器,而且由于WWW浏览器和网络综合服务器都是基于工业标准,保证可以在所有的平台上工作。同时,它也充分考虑了用户利益,既使得浏览查询者方便操作,又使得系统的更新维护简单灵活;②将服务器端划分为Web服务器和应用服务器两部分。应用服务器采用组件技术实现三层体系结构中的商业逻辑部分,达到封装源代码、保护知识产权的目的;③通过在浏览器中嵌入Ac2 tiveX控件来实现在浏览器中不能实现或实现起来比较困难的功能,比如通过浏览器进行报表的应答。
系统设计为可以接受学生课堂在线实验和课外实验两种方式。实验系统可以实现实验过程与结果的自动存储,教师可以在线批改学生的实验报告。总框架图如图2所示
。
图2 系统总框架图
88
实 验 技 术 与 管 理
在ASP.N ET 环境下可以实现Matlab 引擎组件技术,当Matlab 软件在服务器上安装后,Matlab 计算引擎ActiveX 组件自动注册。利用ActiveX 在VB.N ET 中调用Matlab 的工作原理为:VB.N ET 支持ActiveX 自动化控制端协议,因此在VB.N ET 的一个
应用程序和Matlab 之间建立ActiveX 自动化连接后就可以在该应用程序中调用Matlab 命令了。
(1)在.N ET 中创建ActiveX 对象
Dim Matlab as Object Matlab =Create0bject (″Matlab.Application ″
)(2)在VB.N ET 中,利用ActiveX 对Matlab.ap 2plication 对象进行操作的方法有6个,即:Execute ([command ]),Get FullMat rix (Name ,Workspace ,
SA FEA RRA Y
(double )
3pr ,Put FullMat rix
(Name ,Workspace ,SA FEARRA Y (double )3pr ,MinimizeCommandWindow ()方法,MaximizeCom 2mandWindow ()方法和MatLab.Quit ()方法。
(3)在VB.N ET 中运用Matlab.application 对象的6个方法编写代码就可以实现对Matlab 调用。关键代码如下:
Dim MatLab As Object MatLab =Create Object (″matlab.application ″)MatLab.MinimizeCommandWindow ()strMatLab =order.Text MatLab.Execute (strMatLab )
xianshi.Text =MatLab.Execute (strMatLab )
MatLab.Execute (″print (gcf ,′2djpeg ′,′F :\onlineshiyan \image\pic.jpg ′)″)MatLab.Quit ()MatLab =Nothing
Image1.ImageUrl =″..\image\pic.jpg ″
在线实验系统效果:在命令窗口order.Text 中输入“a =[123;456]plot (a )”,如图3所示,单击执行后,结果返回窗口会显示从Matlab 中返回的数据结果,如图4所示,窗口会显示命令执行后画出的图形,如图5所示
。
图3
命令输入窗口
图4
结果返回窗口
图5 图形显示窗口
4 结束语
研究了Matlab 在线实验系统的关键技术,实验
在线代码运行器系统利用Matlab 混合编程技术,方案采用Active X 组件技术、COM 组件技术与.N ET 框架,实现了在线实验系统的开发,为学生提供了远程实验所必需的条件。
参考文献(References ):
[1]杨高波.精通Matlab 7.0混合编程[M ].北京:电子工业出版
社,2006.
[2]董长虹,余啸海.Matlab 接口技术与应用[M ].北京:国防工业出版
社,2004.
[3]何秧儿.开放教育在线实验初探[J ].开放学习,2006(11):40243.[4]张宏立.基于Matlab 的Web 实验平台开发[J ].计算机应用与软
件,2005(2):1422144.
[5]何强,何英.Matlab 扩展编程[M ].北京:清华大学出版社,2002.[6]Bolin I ,Borg M.On 2line Simulations ∃Advanced Web 2enabled
services.Depart ment of Computer Engineering ,M lardalen Uni 2versity ,2002.
[7]沈小燕,王乘.COM/DOOM 接口技术及其在Matlab 中的应用[J ].
计算机工程与设计,2002(8):58261.
[8]高剑.Matlab 与VB 混合编程的两种方法[J ].微机发展,2003(3):
90292.
9
8孔庆霞,等:Matlab 在线实验系统关键技术的研究与实现
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论