基于虚拟现实的软件
基于组态与多媒体软件的PLC虚拟实训平台构建
作者:李时辉 刘炜娜
来源:《现代电子技术》2013年第05期
摘要: PLC课程是电气自动化技术等电气类专业的核心课程,其实践教学效果是衡量该课程教学质量的风向标。深入的分析了传统的PLC实训平台建设中存在的问题,并提出利用组态软件开发PLC虚拟实训平台。经PLC课程教学实践证明,该系统的应用不仅丰富了教师的教学手段,还大大提高了实验的教学效果。
关键词: PLC; 虚拟实训;平台; 教学效果
虚拟设计技术是一种崭新的产品开发模式,是知识经济时代产品制造技术革新的重要标志,它提供了一个基于计算机仿真模型的数字化设计方法。当前,国外虚拟设计技术已经趋于成熟,国内也正处于快速发展和大力推广应用的关键时期。本文基于UG NX三维软件设计平台,并以NOKIA N78手机为例,介绍了虚拟设计技术在机械产品设计中的具体应用。
1虚拟设计技术
虚拟设计技术即虚拟产品建模技术,是以计算机仿真和产品生命周期建模为基础,集计算机图形学、人工智能、并行工程、网络技术、多媒体技术和虚拟建模技术等为一体,在基于计算机软、硬件提供的虚拟环境下,实现对机械产品的方案构思、结构设计、虚拟装配、力学分析、运动仿真和虚拟制造等[1]。
相对于传统的基于半理论、半经验的串行设计模式,基于计算机虚拟环境的交互式和数字化的并行开发过程为机械产品的方案构思、造型设计、结构构建与分析提供了自由而灵活的技术平台与工具手段,不仅便于设计者进行结构创新、优化设计、实时分析与设计质量评价,而且大大提高了工作效率,减少甚至取消了物理样机的研制次数,从而可实现机械产品的一次性制造成功[2]。因此,作为一个全新而充满活力的技术领域,基于计算机辅助工程(CAE, Computer Aid Engineering)的产品虚拟设计技术具有很大的发展空间和极好的发展前景。
2UG NX
虚拟设计技术在工程上的应用是通过功能强大、性能稳定和交互性良好的商品化软件实现的。常用的计算机辅助三维虚拟设计软件有UG NX、Pro/E、SolidWorks、CATIA、CAXA 等[3]。其中,EDS公司的UG NX是一个高度集成的CAD/ CAM/ CAE 软件系统, 它包括产品的概念设计、三维建模、性能分析和虚拟加工等功能模块,可为现代机电产品的研制提供一个真正的虚拟产品开发环境[4]。针对用户的虚拟产品设计和工艺设计需求,UG NX为用户的产品设计及加工过程提供了数字化造型和验证手段,提供了一个经过实践验证的整体解决方案。UG NX 包括了世界上最强大、最广泛的产品设计应用模块,具备高性能的机械设计和制图功能,并具有简便的虚拟装配功能和相关分析模块,可满足客户设计任何复杂产品的需要。UG NX不仅为设计者与设计团队提供了一个基于并行工程的产品开发模式,还便于设计人员有效地捕捉、利用和共享数字化工程完整过程中的显性与隐性知识,从而为机械产品的设计制造提供了高性能和灵活性。
3NOKIA N78虚拟设计实例
本文以NOKIA N78的后盖三维建模和手机的虚拟装配过程为示例,比较详细地介绍UG NX在机电产品虚拟设计中的运用。
3.1 后盖三维建模
虽然机械零件形状各异、结构多变,但在进行三维实体建模时,根据其结构特点综合选用UG NX软件的拉伸、回转、扫掠等建模工具,并结合曲面造型功能和布尔运算,就能够较为便利地创建各种复杂机械零件的实体模型。同时,对于一些系列化机电产品的零部件,还可运用UG NX软件的参数化功能,以便通过修改功能尺寸来进行改进与创新设计。
如图1所示,首先利用草图功能,绘制出N78手机后盖的截面二维图及扫掠引导线。然后,利用沿引导线扫掠的方法做出实体,如图2所示。
利用抽取曲线和拉伸功能,创建后盖中间的三维模型,并绘制摄像头区域的二维轮廓图,进行拉伸后与前面的三维模型进行减法的布尔运算,如图3所示。
利用曲线中的文字功能写出NOKIA和Nseries的字样,并在所在后盖面上进行分割面的操作,最终完成后盖的完整三维设计模型,如图4所示。
同样,利用UG NX8.0中强大的计算机辅助虚拟设计功能,完成了NOKIA N78的主体框架(如图5、图6所示)、SIM卡、电池等设计,在此不一一详述。
3.2 NOKIA N78虚拟装配
传统的工业设计模块主要用于对产品进行几何设计,使用3DS可以生成实体模型,但用3DS生成的模型仅仅是产品整体效果的一种概念体现,在工程实际中还需要进行结构设计,因此必须使用虚拟装配技术来更好地体现整个产品的设计效果。
UG NX8.0提供了强大的虚拟装配功能,装配中其主要装配约束有:面贴合(Mate)、对齐(Align)、角度(Angle)、平行(Parallel)、垂直(Perpendicular)、居中(Center)、距离(Distance)、相切(Tangent)。本文利用UG NX装配功能完成手机装配的总图和爆炸图,如图7、图8所示;并进行相关的装配干涉分析,最后进行相关零部件的修改工作,同时利用装配序列生成了整机装配动画。
4结论
本文通过NOKIA N78手机产品三维建模和虚拟装配的运用实例,全面地展示了UG NX在机电产品虚拟设计中的运用过程,显示了其在计算机辅助虚拟设计领域的强大功能。通过虚拟设计方法所建立的虚拟样机,可作为概念类产品提前进行产品的广告营销推广,有助于提高企业产品的竞争力和提高企业效益。
参考文献
[1]郑相周,唐国元.机械系统虚拟样机技术[M].北京:高等教育出版社,2010.
[2]薛建华,冀婷.论虚拟技术在产品设计中的应用[J].新技术新工艺,2008(10):7-9.
[3]李伟.先进制造技术[M].北京:机械工业出版社,2007.
摘 要:利用组态软件开发PLC的控制对象,模拟其工作过程,同时借助于组台软件的Web发布功能,构建一个基于WEB环境下的虚拟PLC实验室,为学生搭建一个类似于实际实验的虚拟环境。在该环境中学生可以远程对指定实验进行搭建和操作,可以观察实验数据和结果。该系统具有成本低、免维护、灵活多样、形象直观等优点,很好地解决了传统开设PLC实验方法遇到的各种困难。
关键词:PLC; 组态软件; 虚拟实验
【中图分类号】TP277
传统可编程控制器(PLC)实验采用PLC设备和硬件电路搭建的控制对象[1-2],其缺陷是占用大量实验室空间、硬件设备价格昂贵、很难进行修改和升级换代、硬件设备维护困难等。所以,如何进行新型PLC实验室的改造已成为迫在眉睫的问题,而工业组态控制技术能较好的解决这一问题。组态软件使用灵活的组态方式,为用户提供快速构建工业自动控制系统监控功能的、通用层次的软件工具,能够支持各种工控设备和常见的通讯协议,同时组态软件自身还提供基于Web远程访问的功能[3-4]。
因此,将PLC与组态软件的优点结合起来, 建立组态虚拟PLC实验室,解决了自动化专业的实验教学、课程设计、实训以及毕业设计等环节所面临的实际问题,也为教学和科研节省大量经费,缩短开发周期,创造良好的经济效益,是实践教学模式的革新。
一、虚拟实验室建设原则
虚拟仿真实验室建设应充分体现虚实结合、相互补充、能实不虚的原则。在功能上应体现以下几个方面:
综合化:实验系统应紧密结合工业系统实际,形成完善体系,功能上综合化。
拟实性:所有测控对象及参数均为工业现场的设备和参数或对他们进行小型化处理而得
到的。
模块化:各类测控对象和参数均相对独立构成模块,具有相对独立且典型的功能,易于组合和拼装,满足不同专业学科的实验需要。
开放性:核心软件平台具有开放的应用软件接口,满足用户的二次开发需要。
扩展性:用户根据需要设计出适合自身需要的扩展模块,集成到系统中。
网络化:所有测控对象既可以独立实验又可以成为局域网中其他PC的共享设备,组成一个虚拟实验室。
二、基于组态软件的虚拟PLC实验室建设思路
虚拟PLC实验室的系统结构如图1所示。系统以组态软件做为平台,开发控制实验的仿真对象,内嵌PLC编程软件实现控制程序编写,以PLC做为控制设备,借助于组态软件自带的Web Server发布到Internet,远程客户端实现登录功能。组态软件通过以太网与PLC之间进行通信,并监控PLC所有存储器、控制器及I/O接口的状态,以变量值的形式传输到计算机上,供服务器使用、处理。
三、基于组态软件的虚拟PLC实验室建设方案
虚拟实验室的基本组成架构如图2所示。主要包括四部分:界面组态、数据库组态、通讯设置和远程登录。
1. 图形界面的开发
图形界面是虚拟实验的具体体现。组态软件作为用户可定制功能的软件平台工具,可虚拟出多种控制对象。虚拟对象整体规划时应尽可能把实际工控设备的特征和它的工作场景形象地反映出来,同时也要把输入控制面板反映出来,以便实现对虚拟对象的控制。图形界面开发主要包括图形绘制、数据变量的确定、动画连接、命令语言编写及虚拟对象调试。
2.数据库的建立
数据库组态是虚拟实验室的核心部分。为了实现开放的实验效果,做数据库组态的时候,组态的点具有共享性,避免实验对象和外部控制设备具有关联性。
数据库中的数据来源主要有三种,一种来自PLC,即数据库变量,把实际PLC的I/O点和PLC内部寄存器的变化状况联系起来,为虚拟设备的动画连接打下基础,如设备的启停控制、设备运行状态的显示;一种是内存变量,来自仿真仪表,主要用于管理功能的实现,如成绩评定、错误提示等;还有一种是DDE变量,来自EXCEL文件,主要用于控制系统中所需模拟量的仿真,如水箱液位、管道压力、流量、电机电流、温度等仿真。
3.通讯设置
本系统中组态软件与PLC之间的通讯采用TCP/IP协议。组态软件和Excel之间采用DDE方式通讯。
4.远程登录设置
利用组态软件支持的ActiveX技术,将PLC仿真实验通过WEB发布到网上,利用Internet实现远程操作及控制。实现方法是利用嵌在浏览器上的ActiveX组件作为客户端操作界面。当用浏览器访问包含ActiveX组件的Web页面时,该组件自动下载到客户端,客户端用该组件通过HTTP协议向服务器端传递控制信息和数据信息,服务器端利用ASP接收信息,利用数据库系统响应请求,并把结果返回到客户的ActiveX组件中,ActiveX可以在客户端运行显示动画。
四、结论
虚拟实验室是实验室本身的一种革新,不管从实验效果上来看、实验成本节省上来看都有着较明显的优势,这一全新的实验模式必将推动高校教学的发展。本文以组态软件做为平台,以PLC做为控制设备,提出了基于Web 访问的虚拟PLC实验室建设思路。该实验室具体如下优点:能直接从界面中观察出实验结果正确与否,这给学生的编程和调试带来很大方便;结合先进的科技手段, 界面导航的直观性、人机交互界面良好,能够提高学生自主学习的兴趣;虚拟实验室能给任何实验者在任何时间、任何地点广泛的提供实验场所,只要实验者能连接上互联网,他就能使用虚拟实验室完成需要的实验,具有良好的开放性。
参考文献
[1] 赵玉华. 基于组态技术的PLC虚拟仿真系统设计[J]. 应用科技, 2005(12): 48-50
[2] 周永勤, 等. 基于多組态平台工控设备虚拟仿真实验教学的研究[J]. 电气电子教学学报, 2005(1):76-78
[3] 孙张伟, 等. 基于组态的网络虚拟实验平台的研究[J]. 计算机仿真, 2007(4): 275-278
[4] 易飞, 张湜. 组态技术在虚拟实验室中的应用[J]. 微处理机, 2007(6):108-111
基金项目:辽宁省教育科学“十二五”规划立项课题(JG14DB292,JG15DB289)
根据企业经营目标所要求的人力资源规格、规模、质量来招聘人员,并安置在预先规定的岗位上从事所要求的工作,以实现期望的绩效,在这个过程中,考察评价应聘者是否满足岗位需要,是最关键的环节,此时,人事测量扮演着最重要的的角色。在传统的招聘过程中,组织往往只是查看履历表、申请表,面试中有一些简单的非结构化的问题,便做出判断。这样的过程缺乏科学依据,并没有根据岗位要求对应聘者进行客观评价,对不同应聘者之间的评价也不具有可比性,同时也给“任人唯亲”等做法提供了机会,使组织蒙受损失。由此可见,人事测量对招聘选拔至关重要。
2、培训
即使我们的组织经过预先的招聘筛选,但由于人力资源供应市场的限制,一时招聘进来的人不一定完全符合企业目标对人力资源的需要,或者由于企业自身发展,原有的人力资源状况已不再适应现在企业目标的要求,所以,需要对现有的人力资源状况进行考核,针对人力资源现状与企业目标要求之间的差距进行培训,以满足企业要求,
3、安置
通过人力资源素质测评,我们可以得知个体的内、外向特点,根据测量结果可以将外向个体安置于需要大量社会交往的岗位上,而内向的个体,则可以安置在研发、质检等岗位上。
4、考核
其实考核也是一种人事测量,组织中的考核不仅要考核绩效,而且要考核员工的表现,包括对组织的投入、工作的敬业等。但总体来说,都是要对人进行考察、评价,也都需要用到人事测量技术,使考核可信、有效、公正、客观。
5、晋升
摘要:采用虚拟机来进行计算机辅助教学,是近年来在计算机教学领域被广泛应用的一种教学辅助方法,也是各计算机教学工作者比较热衷探讨的一个应用课题。本文介绍了虚拟机技术及软件,重点介绍了利用VMware虚拟机软件进行Linux操作系统教学的具体应用。关键词:虚拟机;Vmware;Linux操作系统
引言
在计算机教学中,加强学生实践技能的培养是最受重视的问题,目前在计算机教学过程中基本上都采用多媒体课件教学以及结合教师演示来进行,教师配合课件及当场的操作演示,让学生可以更好学习和掌握实践技能,然而,在教学中也遇到一些问题,尤其是操作系统课程的教学中,主要原因如下:
1)学校的机房通常都由机房管理员进行统一安装,通常都通过硬盘保护卡来实现对计算机系统的保护,所以机房的计算机一般是不允许学生动手来安装操作系统,更不准对系统和硬盘进行更改设置操作。
2)即使学生自己有计算机,配置也比较高,但也很少有学生在自己的计算机上进行频繁分区,格式化,安装操作系统等操作。如果经常对计算机硬盘进行分区和格式化,也会影响到计算机的硬盘使用是。如果想在系统里面进行一些操作系统有关的“危险”性操作,在学生自己的计算机上操作很可能就会破坏原来的系统,甚至数据。
3)学生在只有一台计算机的情况下,通常做网络实验就无法进行,至多也就是做一些上网实验。
比如:在Linux操作系统的教学中,系统安装由于各种实验条件的限制使用得学生无法去进行,在对系统作各种操作时,可能还会由于学生的误操作引起系统无法启动的问题,在对grub引导管理器进行修复这些实验时,对于初学Linux而言通常都是比较“危险”的操作,在进行网络服务器的设置时,学生没有比较好的网络环境,无法当场与windows系统之间进行很好的网络通信等。以上的这些问题不仅仅影响到教师的教学演示,同时也影响到学生的实验操作效果,对于学生更好的掌握Linux操作系统的技能造成了一定的难度。近几年来,随着虚拟机技术的出现,这个问题得到了很好的解决。从而使用教学质量也有明显的提高。虚拟机技术及软件介绍
所谓虚拟机就是由虚拟机软件模拟出来的计算机,或称为逻辑上的计算机(Guest OS)。每个虚拟机都具有模拟出来的同物理计算机相同的运行环境,包括硬件层,驱动接口,操作系统及应用层,都建立在PC机的应用环境下,属于用户级的软件。同时利用虚拟机软件 [作者简介]2006-07-09 [作者简介]谭春茂(1977-),男,硕士,上海农林职业技术学院应用系助教,从事计算机网络技术方面教学和研究工作。可以在一台物理计算机上模拟出来多个逻辑上的计算机,运行多个操作系统,还可以将这些计算机相互连接起来形成网络,虚拟计算机能同时运行的数量多少由计算机本身配置决定。而且在虚拟机的环境下,用户可以在同时运行的多台虚拟机中来回切换,而无需重新启动系统。
目前,应用广泛的虚拟机软件主要有VMware公司的VMware workstation及connectix公司设计的Virtual PC,这两个虚拟机软件应用功能基本相同,它们有如下特点:
(1)不需要对物理硬盘进行分区或重新开机就能够在一台PC机上安装使用多种操作系统。
(2)完全隔离并且保护不同操作系统的操作环境及所有安装在不同操作系统上面的各种应用软件和资料,并且硬盘还原功能。
(3)不同的操作系统之间能够进行互动操作,包括网络、周边设备,文件共享等。(4)能够设定并且随时修改操作系统的操作环境,如:内存、硬盘、其它外设等。(5)二者所安装的系统都是可以移动的,即可能通过移动设备虚拟机安装的文件拷贝的方式在其它的装有对应的虚拟机软件的计算机上使用。3 VMware在Linux操作系统教学中的应用
在Linux操作系统的教学中要涉及到系统安装,系统各种设置及网络服务等操作,其中有几个比较危险的实验操作在真正的物理计算机上来实现有一定的难度和不现实性,如:系统安装,硬盘配额,文件系统的创建与使用,grub的修改与安装实验,系统启动模式设置和网络服务等,这些操作会改变甚至破坏计算机系统,使计算机无法正常工作,则学生在做相关实验时更具有这种特点,因为Linux操作系统的入门学习难度比windows系统的入门学习难度要大一些,通常情况下,Linux操作系统都是在文本模式下进行教学,因为Linux的服务器在实际应用中,基本上都是远程维护,远程维护就只能使用文本操作方式,同时文本运行方式比图形方式运行效率方面而言要好一些。这样对于初学学生而言,在这种环境下做实验,更容易造成对计算机系统的破坏。这都严重影响到教学效果,采用虚拟机技术后,这些问题已经得到很好解决,同时也提高了教学质量和学生的学习效果。
通过前面的分析和一些资料显示,Linux在VMware下的运行效果要比较Virtual PC略佳,并且VMware支持的Linux版本比Virtual PC多。所以在Linux操作系统的教学中选用VMware较好。
虚拟机教学过程(下面是以Red Hat Linux9.0为例):
(1)在宿主计算机(Host OS)上安装VMware软件(目前的最新版是5.5),一般而言的配置主要要求内存稍大一些即可,最好在256M以上。
(2)启动VMware,创建虚拟机,在创建虚拟时要注意选择Linux的版本,在VMware中对Linux的版本分得比较仔细,这里尤其要注意选择,否则会造成无法安装系统或无法启动系统的情况。
(3)系统安装 在Linux操作系统的学习过程上,通常情况下,第一件要做的事就是安装操作系统,在虚拟机环境下,可以完全通过系统的镜像文件来进行安装,这样的安装方式带来极大的方便,镜像文件安装可以省掉大量的光盘,也可以不要求机房的计算机上安装有真正的物理光驱就可以进行,这同真正的物理计算机相比,在练习操作系统安装上使用VMware带来极大的方便。
(4)快照和回复功能在Linux操作系统教学中的使用
VMware的一个非常有用的新功能就是快照和回复。可以在任意时刻为虚拟机进行快照,然后在任意时刻回复到虚拟机任何一个快照的状态。在虚拟机启动关闭或暂停时都可以进行快照。快照将保存进行快照时刻的虚拟机的所有状态,包括虚拟硬盘上的所有数据状态及是否处于虚拟机启动,关闭和暂停状态。如果虚拟机的操作系统正在运行,对它进行快照并不会影响客户操作系统的运行。如果在进行一系列的操作后,想回复到快照时刻的状态,那么只需要还原快照,这样从进行快照到回复快照之间的所有对虚拟机的操作的任何变化都会撤消。
在Linux操作系统的系统设置及修改实验时,涉及到实验比较多,比如用户管理,磁盘管理,文件系统创建,磁盘配额,引导管理器Grub的修复及设置等诸多实验,其中有几个对系统而言具有相当的“危险”性,这对于宿主计算机而言,即虚拟机上的操作系统完全损坏,也不会造成什么危害,但是这会对实验带来很大的麻烦,在VMware中能利用上面所述的快照和回复功能能很好的解决这一问题。这样,当学生在操作过程中因不当操作而造成对系统破坏时,就可以利用保存的快照来对系统恢复,这一点对于初学用户而言非常有用,同真正的物理计算机上操作如果出现这种情况比较,这种虚拟机的方式显然要好很多。
(5)网络服务器的配置,网络环境的构建
众所周知,Linux的功能主要就是网络功能,也就是做网络服务器,服务器的配置往往需要有一个网络环境,也就是最好Linux做服务器,一个windows系统做客户端来测试服务器的运行效果。如果在教室里当然有比较好的网络环境,但是同时就需要开两台计算机,一台Linux,另一台是windows,这样一来,就造成演示上的不方便,虽然Linux同宿主计算机之间有可以直接通信的,但是在windows下有一个记忆功能,在没有注销或者关闭系统前,上次访问信息会记住,这样会造成测试服务器有些时候没法进行,如samba服务器。利用VMware可以安装多个虚拟机的特点,就可以很好的实现,我们可以再装一个windows的虚拟机来形成一个网络环境。这时候只需要设置Linux和windows在同一个网段就可以形成一个网络满足我们做这样实验的要求,而不需要去启动多台计算机。4 结语
利用虚拟机VMware软件来辅助Linux教学,创建教学中的实验环境,使得教师演示和学生的实验操作都可以非常方便的进行,由于是通过软件来实现的一个逻辑上的计算机,这样对硬件上的操作对计算机并不造成损害,实现了传统的教学手段在Linux教学中某些无 法完成的操作,不但保证了教学质量,又节省经费。同时,在虚拟机上的操作时可以暂停,继续,甚至保存在某一个状态,可以很好的控制教学的进度和实验的每一个环节。同时可以得用VMware的捕获电影功能可以把教师的操作录制成电影,让学生可以据其需要而使用。本校开设的《Linux操作系统》课程利用虚拟进行教学已经一年有余,在这一年多的教学中,其效果是令人满意的。总之虚拟机VMware对于改进Linux操作系统教学和提高教学质量提供了一种新辅助教学的手段。
参考文献
[1]王春海.虚拟机配置与应用完全手册[M].北京:人民邮电出版社,2003 [2]Time创作室.虚拟机典型应用技巧[M].北京:人民邮电出版社,2003 [3]刘恩博.虚拟机应用软件VMware在计算机辅助教学中的应用[J].兵团教育学报,2005(7)[4]http://
Application of the Virtual Machine VMware in the Teaching of Linux OS
关键词:当代艺术理论论文,文艺理论论文发表,文学理论论文投稿
素描作为艺术设计专业的基础课程,在传统的课程教学中,学生要想更好的观察和绘画,需要控制好灯光、明暗等因素。用虚拟现实方法构建的场景能够更轻松的进行交互控制进而成为学生素描教学中重要的观察手段。作者在虚拟现实技术应用的基础上开发的的素描学习系统,能起到丰富教学手段、改进教学方法和提高教学效率的作用。
介绍
虚拟现实是从英文Virtual Reality一词翻译过来的,简称VR技术。Virtual是虚拟的意思,Reality是真实的意思,合并起来就是虚拟现实。这一词是由美国VPL公司创建人拉尼尔(Jaron Lanier)在20世纪80年代提出的,也称灵境技术或人工环境,国内也有人译为“灵境”或“幻真”。虚拟现实技术综合了计算机图形技术、计算机仿真技术、传感器技术、显示技术等多种科学技术,它在多维信息空间上创建一个虚拟信息环境,能使用户具有身历其境的沉侵感,具有与环境完善的交互作用能力,并有助于启发构思。随着虚拟现实技术的发展,做为一种新的管理方法和技术,虚拟系统在项目管理进程中正发挥着越来越重要的作用。首先,由于硬件设备投入非常昂贵,虚拟系统通常被用于那些在现实生活中比较危险的教学活动诸如军事、医疗、工程等等。随着技术的更新和发展,在基础教学中,越来越多人使用虚拟现实技术来讲授科学、物理、艺术等等学科。
虚拟现实技术长期以来被用于教育和培训工作。Hratman进一步的使用虚拟现实环境来检测学生的空间认知能力。Park et al发现虚拟现实技术制作的地图能够进一步提高学生的空间想象能力。美国芝加哥大学的电子可视化实验室和交互计算环境实验室设计出了一个名为“美妙(NICE)”的儿童教育作品,它是“叙述性、身历其境感、合作互动环境”的简称,其宗旨是“让我们在虚拟世界里一起学习和成长”。因此,我们非常有必要开发一个教育系统,它能够帮助教师减少教学压力。同时这个教学系统还能够提高学生的学习积极性,激发学生的学习动力,给学生提供一种直观的交互学习环境,进而能很好的完成我们的最终教育目标。
研究目的在传统的素描教学中,有很多相互影响的因素。教师通常需要去发现并纠正学生的种
种问题,这会增加教师的工作量。同时因为学生经常被动的接收建议,这也会降低他们主动发现问题的能力。为了有效的解决上述问题,我们研究应用3D虚拟现实技术开发了此款交互式素描学习系统。
在本次研究中,我们希望通过开发素描学习系统最终达到下列研究目标:
(1)通过应用素描学习系统的实时交互技术,有效减少教师的教学压力,也能够在一定程度上弥补中学美术教师短缺的问题。
(2)通过展现素描学习系统的趣味性和交互教育功能,能够有效的吸引学生的注意力,提高学生的学习积极性。
(3)素描学习系统的在线学习功能能打破时间和空间的限制,同时虚拟现实技术在空间、阴影、材质表现等方法具有很大的优势,这些都能有效弥补传统媒体在互动交流方面的不足。
系统构建
本系统由以下三部分组成:
1.第一部分:模型
根据课程目标和课程内容的需求,为了训练学生基础的素描造型能力,我们通常将各种各样的物体细分成一个个基本的单元。这些虚拟模型通常由平面和曲面构成。例如圆锥体、球体、圆柱体是由曲面构成的三维物体,而正方体、四棱锥、六棱柱是由平面构成的三维物体。众所周知,这两类物体是最基本的几何体。使用几何体的目的在于将复杂的物体分解成简单基本单元,比如人头就可以看做是由球体、圆柱体、长方体等基本单元构成的复杂对象。
学生依靠所学到的经验,将真实生活的物体分解成简单的几何体并进行重构。这种训练可以增强学生在素描绘画中的观察和分析能力。
2.第二部分:构建虚拟现实交互操作环境
为了顺应在线学习的新趋势,我们可以将素描学习系统开发成网络学习的平台,学生可以通过因特网或局域网进行在线学习,它可以弥补传统学习方法在时间和空间方面的不足。我们希望通过消除学生在自然观察过程中所遇到的各种相互干扰的因素,同时给学生提供互动的学习环境,以此提高学生的学习积极性。
我们所开发的系统属于桌面虚拟现实系统,这套人机交互系统的硬件设备是屏幕、鼠标、键盘。在软件方面,虚拟现实技术能特供特殊的空间概念,实时三维图片的灯光/阴影计算功能、纹理贴图计算功能能够为素描教学提供一种非常真实的交互学习环境。
3.第三部分:纸质练习
伴随着云计算技术的发展, 软件即服务 (Software as a Service, Saa S) 得到快速发展, 据Gartner估计, 到2015年全球软件即服务的收入将会达到213亿美元[1]。然而, 传统的软件即服务采用的是B/S的架构。通过浏览器进行交互虽然能够免除在终端安装客户端, 且减少对于跨平台的客户端软件开发, 具有更好的适应性;但这种瘦客户端的方式还是存在一些限制的, 且要把现有的众多客户端应用软件完全替换掉, 其过程将会是十分缓慢的。为了弥补浏览器的不足, 一些厂商提出了一种直接把现有的应用软件进行虚拟化部署的技术, 主要产品为Citrix的Xen App和Vmware的Thin App。这两款产品的主要功能就是将应用程序打包成不需要安装即可运行的单一可执行程序, 让云桌面的系统直接运行该程序而不需要安装。然而, 这两款产品都属于商业性质的产品, 除了需要购买该产品外, 还必须是使用其自己厂商的虚拟化软件, 所以还是具有一定的局限性。然而, 目前还没有一种通用的解决方案。
1 现有的应用虚拟化技术
应用虚拟化技术随着Saa S的发展而不断发展, 但其本身并没有一个被广泛认可的定义[2], 但其核心都是把操作系统与应用软件运行环境相分离, 可以简单的理解为:将应用程序的应用界面与实际应用运行分离, 通过在服务器上为用户开设独立的会话, 占用独立的内存空间, 应用程序的计算逻辑指令在这个会话空间中运行, 应用程序的界面通过协议传送到用户终端, 这样用户通过网络可以高效、安全地访问服务器上的各种应用软件, 获得在本地运行应用一样的体验[3]。虚拟化技术在服务器中的运用其实是一种去耦合技术[4]。
当然, 对于类似于支持Windows软件运行于Linux上的开源软件Wine[5], 以及支持跨Linux发行版本运行的开源软件CDE[6], 这些软件虽然都是在本地运行, 但其也是实现了应用程序与操作系统相隔离, 所以也都属于应用软件虚拟化技术。这种支持应用软件运行在异构平台上运行的虚拟化技术, 其缺陷比较明显, 即需要消耗本地计算机的资源来实现虚拟化, 且因为是异构平台, 受到运行环境的限制, 并不能很好的实现虚拟化, 技术不够成熟, 虽然有商业化的版本, 但目前并没有广泛的应用。
所以, 针对当前的应用虚拟化技术, 我们大致可以分为四类[2]:
1.同构本地应用虚拟化:在本地同架构的环境下实现应用程序与操作系统的分离, 代表产品位Linux下的CDE;
2.同构远程应用虚拟化:在与客户端同架构的环境下, 把应用程序通过服务的形式给客户端进行使用, 代表产品为VMware的Thin App;
3.异构本地应用虚拟化:在本地异构平台的环境下实现应用程序的虚拟化, 代表产品为Wine;
4.异构远程应用虚拟化:应用软件在与客户端的不同架构环境下, 以流的方式推送到客户端, 此类的代表产品为Citrix的Xen App;
目前得到较多应用的应用软件虚拟化技术主要是由几大厂商推动的商业产品:Citrix的Xen App, VMware的Thin App以及Microsoft的App-V, 这些应用软件虚拟化解决方案都是服务于其各大公司的虚拟化云桌面的。而由于目前市场上虚拟化云平台应用的较多的是VMware和Citrix的解决方案, 所以Xen App和Thin App更为常见。
Citrix的Xen App主要是通过ICA协议, 该协议连接了运行在服务器上的Xen App的应用软件进程和客户端的设备, 正是通过ICA的虚拟通道, 使得应用客户端软件不安装在客户端设备上也能使得用户感觉就如在本地使用一样[7]。对于这种将应用集中到数据中心, 并以按需服务方式交付这些应用, Citrix的Xen App因为较早投入市场, 所以现在被认为是这类软件中的事实上的标准了。
VMware的Thin App, 是VMawre的云桌面产品VMware View的重要组件之一, 以消除应用程序冲突和简化管理为目标而设计, 可简化应用程序虚拟化, 并可降低应用程序交付的成本或复杂性。Thin App是一种无代理的应用程序虚拟化解决方案, 可将应用程序与其底层操作系统剥离开来, 以消除应用程序冲突, 并简化应用程序的交付和管理。Thin App是VMware收购Thinstall后推出的产品, 以应对Citrix的Xen App。
近年来, 由于信息技术产业的高速发展, 许多企事业单位为了更好的管理计算机设备、降低成本和最大限度的提高IT效益[8], 便通过引入桌面云系统, 来进行计算机设备的管理。例如, 南开大学医学院[9]、哈尔滨工业大学图书馆[10]、宁波市气象服务中心[11], 都是采用的VMware的桌面云解决方案, 即使用Thin App来进行软件虚拟化, 而如福州大学网络中心[12]则是使用的Citrix的产品。可以说, 对于新部署的桌面云环境来说, 为了减少云桌面的负载, 一般都会采用应用软件虚拟化技术, 其次, 因为出于对信息安全的考虑, 使用应用虚拟化产品能够更好的保护系统的安全, 例如在保证学校机房的信息安全方面[13], 应用虚拟化能够极大的提高信息系统环境的安全性。所以说, 应用软件虚拟化正随着云计算的发展而得到广泛的应用。
2 基于Docker构建应用虚拟化
现有的应用虚拟化技术虽然在性能上已经满足了企业的一般性需求, 但其普遍存在一个重要的问题, 就是对底层依赖较强, 不能够独立使用。例如Thin App, 是作为VMware View的组件, 所以要想使用Thin App, 则需要投入较多的资金, 且在VMware下的应用虚拟化, 并不能很好的提供给其它云桌面的环境。使用传统的方法不能够很好地解决该问题, 但近年来新出现的Docker技术则给我们提供了一个解决该问题的方向。
Docker技术是基于容器技术的一种实现, 而容器技术是一种轻量级的虚拟化技术, 容器有效地将由单个操作系统管理的资源划分到孤立的组中, 以便更好地在孤立的组之间平衡有冲突的资源使用需求[14]。所谓轻量级, 是因为容器的思想就是把单独的进程进行封装, 在不影响系统内的程序的情况下运行。这样做就使得容器内的进程所运行的环境是与其它任何操作系统相独立。这一点符合应用软件虚拟化技术所要求的把操作系统与应用软件运行环境相分离, 所以可以说容器技术十分接近于应用软件虚拟化技术。但容器技术与应用虚拟化技术还是有所区别的, 容器技术所依赖的是其运行底层的操作系统的内核, 所以其并没有完全实现与操作系统的解耦合。但容器技术通过独立的命名空间, 保证了其运行的独立性。命名空间 (Namespace) 是Linux的内核针对实现容器虚拟化而引入的一个强大特性, 实现了对内存、CPU、网络IO、存储空间、文件系统、网络、PID、UID、IPC等等的相互隔离, 所以通过容器运行应用软件, 能够使得应用程序与操作系统实现极低的耦合, 如果考虑其使用内核是通过封装的接口, 且其依赖内核只是因为其为了做到轻量, 才采取共用内核的措施, 其和本地系统在内核上已实现了相互隔离, 我们可以认为其在一定程度上就已经实现了与操作系统的解耦合。所以, 我们可以通过容器技术来构建应用虚拟化, 由于容器启动都在本地, 所以可以算是同构本地应用虚拟化。但因为目前云桌面系统都是希望能够实现远程访问的方式, 这也是Saa S的发展目标, 所以, 为了达到这一需求, 我们需要进行改进。
从对现有虚拟化应用技术的分析中, 我们可以看出, 要实现异构远程应用虚拟化, 需要服务端的应用程序以流的方式推送到异构的客户端。所以, 我们采用在Docker中增加VNC的方式来实现应用程序与客户端的流数据传输。虚拟网络计算 (Virtual Network Computing, VNC) 是一种优秀的开源轻量型的远程计算机控制软件。它最早是由英国剑桥大学AT&T实验室设计并开发, 使用了GPL授权, 任何个人或机构都可以免费获取该软件[15]。该软件经过多年的发展, 已经有了各个平台下的客户端版本, 所以, 可以说在任意平台下都可以通过VNC客户端软件访问VNC的服务端程序。正是基于这种广泛的应用基础, 所以我们可以使用VNC来访问我们的虚拟化的应用。文献[16]中以VNC为基础, 通过在KVM的解决方案中集成VNC Server, 在多平台下通过VNC客户端软件对云平台下的KVM虚拟机进行管理。基于上述思想, 我们实现了在Docker创建的容器中添加VNC Server, 并通过修改VNC Server, 让其把Docker容器所封装的应用发布出去, 让用户可以直接在任何平台下通过VNC客户端软件直接访问应用程序, 而不需要在客户端上安装对应的应用软件, 这样达到了Xen App和Thin App的效果。且由于Docker本身是可以在多个平台上安装的, 所以不需要像Xen App和Thin App一样, 只能适用于自己厂商所支持的云平台环境。且由于Docker和VNC的客户端软件都是开源产品, 可以使用免费版本, 所以就不需要花费大量金钱去购买这些应用软件虚拟化产品, 这样可以为企业减少部署的成本, 从而提高投资回报率。
我们构建的架构环境如图1所示。
我们在服务器A上部署了VMware的Vsphere5.5, 部署了八个云桌面系统, 提供给八个云终端使用, 在服务器B上, 则是搭建了Docker的环境, 主要用来提供应用软件虚拟化。各云终端中使用的都是Windows的云桌面, 我们使用Real VNC的客户端来连接我们的虚拟化应用。
对于应用软件的虚拟化, 我们是通过Docker把其封装成对应的应用软件镜像, 以便于随时取用。创建Docker镜像有两种方法, 创建Docker的第一种方法使用docker commit命令, 第二种方法就是是使用Dockerfile文件和docker build命令来构建镜像[17]。Docker官方更推荐使用用Dockerfile文件的方式进行构建镜像, 因为这样便于大家自己进行构建, 我们也主要以该方法构件镜像, 并把所写的Dockerfile及所需文件上传到Github上进行共享。
通过在我们的虚拟化实验室中进行部署该软件虚拟化技术, 使我们的用户在云桌面环境下能够直接通过VNC使用类似Firefox之类的图形化的软件, 这样系统管理员就不需要为在云桌面上安装软件而修改系统模板, 有利于减少系统管理员的工作, 从而能够降低出错几率。
3 性能评价
应用软件虚拟化的性能评价目前来说缺乏一个统一的标准, 通过分析目前市场上获得用户认可的应用虚拟化软件, 我们从下面几个方面来评价应用虚拟化的性能:
启动时间:应用程序的启动时间是衡量所有软件的一个重要指标, 是体现软件性能优劣的重要参考, 虚拟化的应用软件亦是如此, 只有启动快速的虚拟化应用才能获得用户的认可, 才能得到推广;
隔离度:应用软件虚拟化应当与运行的系统高度隔离, 互不影响, 这是所有软件应用虚拟化所必需的;
平均无故障时间:应用软件是否可靠, 能否商用, 平均无故障时间是衡量一个软件稳定性的重要指标, 对于应用虚拟化软件来说, 影响其平均无故障的时间较多, 难以给出一个完全的测试评价;
安全性:对于应用软件虚拟化来说, 其本身的一大特点就是通过与本地系统隔离, 来提高安全性, 因此, 应用虚拟化软件的安全性是十分重要的一项参数;
速度比:主要是指采用应用虚拟化的软件与在本地使用在执行统一任务时的比值, 该值能够体现应用虚拟化软件的性能, 该值越低越好;
我们所构建的基于Docker的应用软件虚拟化方案, 在启动时间上是拥有极大的优势的, 这是因为我们把应用封装在Docker容器中, Docker的容器启动时间是很快的, 因此, 在网络环境条件允许的情况下, 基于Docker的应用软件虚拟化所提供的软件在启动时间上是不逊色于本地软件的, 有些情况下甚至优于本地软件, 例如我们在使用Firefox软件时, 本地初始启动是比较缓慢的, 而我们通过VNC连接, 其启动速度是很快的。这是因为本地启动Firefox, 在初始加载时需要消耗本机较多的内存来进行加载, 在本机运行程序较多的时候会使该过程比较缓慢, 而我们通过VNC连接则不存在这些问题, 所以在速度上表现优异;也因为同样的原因, 速度比也是较低的, 且根据我们实际测试, 在启动Docker容器时, 其对内存的占用是相当少的, 例如我们通过比较在启动Firefox镜像前后的系统内存占用发现, 其内存总共消耗不到50M, 可见其对资源的占用是多么低的。对于隔离度上的表现, 由于本身Docker是使用的容器技术, 该技术的隔离性已经经过了大量的检验, 所以在隔离度上是不逊色于其它应用软件虚拟化技术的。而且, 由于有高度的隔离性, 所以该应用虚拟化也能保证较高的安全性, 即使虚拟化的应用软件受到威胁, 只需重新启动一个新的容器即可, 不会受到任何持续性的影响。使用Docker进行软件虚拟化, 其在应用损坏后只需重新在Docker上在启动一个封装该应用的镜像, 即可再次正常使用, 而Docker启动又是十分迅速的。
综上所述, 使用基于Docker的软件虚拟化, 能够在性能上满足一般的应用虚拟化的需求, 因此, 我们的这套架构方案是能够适用于一般的软件虚拟化环境, 能够部分替换现有的诸如Xen App之类的应用虚拟化产品, 从而节约软件使用成本。
4 总结
在我们实际部署的环境中, 基于Docker构建的应用虚拟化软件能够流畅的使用, 取得了良好的效果, 为我们对云平台的管理提供了很大的帮助。当然, 现阶段使用Docker来进行软件虚拟化还存在一定的局限性, 即只能虚拟Linux下的应用软件, 对于Windows下的软件则无法进行软件虚拟化。但是由于Docker技术在高速发展, 微软也在2014年10月份表示会开始考虑在Windows上支持Docker技术, 对于在Docker下构件应用虚拟化也会有所提高。当然, Docker的发展还不仅限于此, Docker先阶段以表现出了其强大的虚拟化优势, 在云计算领域得到了许多大厂商的支持, 例如Red Hat、AWS等云计算相关的企业, 国内目前也在一些社区的推动下开始兴起对Docker的研究, 例Docker与Open Stack结合的研究[18], 所以说Docker未来的发展还是比较广阔的。
摘要:应用软件虚拟化技术是云计算虚拟化中的重要内容, 是对传统的基于B/S模式的Saa S的一种补充, 简化了云平台下软件部署的方式, 优化了云平台的管理。本文探讨现有的应用软件虚拟化技术, 分析比较现有的应用虚拟化的解决方案, 并提出了新的一套基于Docker技术和VNC协议的应用软件虚拟化方案, 并通过实例应用展示, 说明了基于Docker技术的应用软件虚拟化技术具有跨平台性及快速部署的优势, 能够在一定程度上替代现有的一些应用软件虚拟化技术。
关键词:虚拟现实 交互 VRML Java Matlab/Simulink
中图分类号:TP311.52 文献标识码:A 文章编号:1673-8454(2009)11-0038-03
一、引言
实验教学不仅能帮助学生形成正确的概念,加深对规律的理解,而且与课堂理论教学相比,实验课程为培养和提高学生的动手能力、研究能力、创新意识提供了较好的途径。因此,实验课程在学科教学中具有不可替代的作用。随着高等教育的普及,对实验资源的需求与目前存在的实验条件不足之间的矛盾日益突出。虚拟实验系统的出现,很好地解决了这一问题。但是,目前现有的虚拟实验系统主要存在以下问题:
(1)呈现方式上以提供实验的文字和图片资料为主。这些文字和图片资料涉及实验原理、实验方法、实验仪器的介绍,学生更多的只是停留在“看”的层次上,这在一定程度上不能激发学生学习的兴趣,不利于实验动手能力的培养。
(2)用户与虚拟实验的交互性不强。虚拟实验系统多以提供实验操作过程的视频和动画为主,主要呈现演示型实验,学生参与实验操作较少。
(3)实验结果多以静态图像形式呈现,这在一定程度上影响了实验者的沉浸感。
虚拟现实(Virtual Reality)技术的发展,为利用虚拟实验系统开展教学注入了新的活力。虚拟现实技术能为学生提供生动、逼真的三维学习环境, 学生作为一名参与者操纵该环境中的实验对象。该虚拟环境具有丰富的媒体表现形式、增强的现实感,这对调动学生的学习积极性, 突破教学的重点、难点,培养学生的技能将起到积极的作用。虚拟现实建模语言VRML(Virtual Reality Modeling Language)是一种用于描述三维物体及其行为的建模语言,它可以构建虚拟世界,并集成文本、图像、音响、MPEG 影像等多种媒体类型。在VRML中虽然可以嵌入Vrmlscript、Javascript 等语言编写的程序代码,但它本身并没有直接和用户进行交互的能力,需要与其他语言结合才能实现三维场景和用户交互的要求。因此,为了构建功能强大的三维虚拟实验系统,有必要对现阶段VRML语言与其他软件的交互方式进行探讨。
二、虚拟现实建模语言及其特点
VRML是一种三维场景的描述性语言,使用它能在Web上创建可导航的、超链接的三维虚拟现实空间。虚拟现实建模语言的出现,改变了Web页面限于二维空间的表达方式,创造了交互式浏览的三维空间。VRML并不是用三维坐标点的数据来描述三维物体的,而是用类似HTML标记文本语言来描述三维场景。它以灵活多样的方式将二维、三维图形和动画、影片、声响、音乐等多种效果调和在一起,具有对内的树型场景结构和对外的分布式场景结构,提供了可重用的节点和原型,便于建模。用户在场景中可以根据不同的视点巡视,有很大的自由度。[1]VRML文件包括两大部分,场景描述部分和动态交互处理部分。场景描述部分主要通过造型(shape)结点定义了对象的几何尺寸、材质纹理,通过组(Group)结点将各个对象按一定的结构组织为场景,通过光照及声音结点在场景中模仿对象的自然特性。动态交互处理部分主要通过传感器(Sensor)结点感知用户与对象的交互,插值器(Interpolator)结点实现类似关键帧技术的插值动画,Script结点是VRML与Java、JavaScript等语言的接口,通过Script结点与其他语言的结合,能扩展VRML的功能。[2]VRML有以下特点:
1.C/S的工作模式和平台无关性。VRML的访问方式是基于C/S模式的,其中服务器提供VRML文件及图像、视频、声音等支持资源,客户通过网络下载希望访问的文件,并通过本地平台上的VRML浏览器交互式地访问该文件描述的虚拟世界。由于浏览器是本地平台提供的,从而实现了平台无关性。
2.实时3D图形渲染。实时3D着色引擎在VRML中得到了更好的体现。
3.网络传输容易。VRML适合于计算机网络的传输,并不要求很高的网络传输带宽,而且图形生成的工作可以放在性能要求不高的客户机上。
4.VRML具有可伸缩性。首先对于 VRML 浏览器来说,从理论上讲,应能处理由数亿个对象组成的分布在 Internet 上的场景。其次,VRML在高、低档的机器上都应该工作得很好,它允许浏览器为了提高性能而降低图像或仿真质量,而在硬件性能增强时质量可以变得更好。第三,VRML场景可以相对于网络性能而伸缩。
三、三维虚拟实验系统开发软件的三种交互
虽然VRML语言具有以上优点,但由于他本身缺乏直接和用户进行交互的能力, 所以在开发三维虚拟实验系统时,常常需要将他与其他语言相结合。针对目前常用的三维虚拟实验系统开发技术,笔者对三种交互方式进行了分析。
1.VRML与Java交互
VRML作为面向对象的建模语言,长于表达三维物体的静态特征,但其VRML本身不具有与外部交互的能力,它必须和其他语言相结合才能构造出具备交互能力的三维场景。为了实现与外界更复杂的交互,VRML2.0标准提供了两种扩展VRML并和外部程序实现连接的机制,一种是通过Script节点完成复杂的交互过程,另一种是通过外部编程接口EAI实现。
(1)通过Script节点与外部交互
Script节点本身没有任何动作,其动作是由程序脚本来实现的,它是VRML与其他编程语言的接口。内嵌在Script节点中的程序脚本可用JavaScript 和Java 编写,其交互过程是,Script节点通过eventIn接口将事件传至Script节点中的程序脚本;浏览器就立即调用内嵌程序脚本将事件进行处理;被加工的信息由Script节点的eventOut字段将结果送出。
VRML浏览器捆绑了用于VRML编程的Java类包,该VRML类包主要包括vrml,vrml.node,vrml.field,还有一个可以操纵浏览器状态的Browser类。通过调用这些类包,Java程序可以实现与VRML场景的交互。虽然利用Script节点可以实现浏览者与VRML场景的动态交互,但这种交互只能按预先设定的状态进行,如果要在外界与VRML场景之间进行信息交流,Script 节点就显得力不能及了。
(2)通过EAI与外部交互
EAI(External Authoring Interface)是VRML2.0提供的介于VRML世界与外部环境的编程接口,通过此接口VRML场景可以和与其嵌在同一网页上的Java Applet程序进行交互。Java Applet可以监视VRML场景事件,并能够在节点间传递事件,实现VRML节点的动态增加和删除,同时可以在浏览者与VRML场景间传递信息,从而大大提高了外界与VRML场景的交互能力。VRML的EAI接口定义了一套针对VRML浏览器的Java类包,它由三部分组成:vrml.external,vrml.external.field,vrml.external.exception。
EAI在Java Applet与VRML场景进行通讯时,首先需要获取Browser类的实例, 通过调用封装在vrml.external包中的Browser类的静态方法getBrowser( )来实现,在Java Applet中建立Browser对象后即标识了一个VRML场景。Browser类包含获取当前浏览器环境信息的各种方法,其中通过调用getNode( )方法直接获得VRML场景中使用DEF关键字定义的节点对象,调用getEvent In( )、getEvent Out( )方法获得访问节点的入事件、出事件。
众多学者对利用VRML与Java技术混合开发的三维虚拟实验系统进行了研究。如金侠杰等人基于VRML技术与Java技术开发了网络交互式虚拟装配环境;池建斌等人通过VRML外部编程接口EAI及内嵌脚本节点编程,实现了二级圆柱齿轮减速器虚拟拆装系统;吴波等人基于VRML与Java技术在工程设计领域的应用进行了研究,提出一种新型的Web环境下3D交互仿真结构,复杂的运算和仿真在服务器上进行,从而实现服务器端装配模型和客户端显示模型的分离,并在此基础之上提出协同环境开发的系统结构。[3][4][5] 此外,杨雨标等运用VRML与Java技术在微机上进行机器人运动仿真。 [6] 分析以上系统发现,VRML技术与Java技术相结合实现三维虚拟实验系统具有较强的三维立体感和交互性,常用于虚拟装配及其他工程设计领域。
2.VRML与Matlab/Simulink交互
利用Matlab提供的虚拟现实工具箱,可以实现和VRML程序的直接交互。虚拟现实工具箱是Matlab 6.X版新增加的工具箱,能在一个三维虚拟现实环境中进行可视化操作和与动态系统进行交互提供一种有效的解决方案,这些动态系统用Matlab和Simulink来描述。[7] 虚拟现实工具箱拓展了Matlab和Simulink处理虚拟现实图像的能力。使用标准的VRML技术,可以通过Matlab和Simulink环境生成三维场景。
虚拟现实工具箱可以在Matlab接口和Simulink接口两种环境中运行,而Simulink接口更直接、更容易使用,很容易通过图形用户界面进行交互,因而可能是更适合的工作方式。通过Simulink这一接口,可以在一个虚拟的三维模型中观察动态系统的模拟。一旦在Simulink对话框中包含了虚拟现实模块,就可以选择与Simulink信号连接的虚拟世界。所有VRML节点的属性分别列在等级树样式的观察窗口中,可以选择控制的自由度。当关闭接口对话框后,虚拟现实工具箱模块自动更新在虚拟世界中与选择节点有关的输入和输出。当连接这些输入到一定的Simulink信号上时,就可以在一个支持VRML的浏览器中观察可视化的模拟。
使用Matlab的虚拟现实工具箱开发三维虚拟实验系统具有以下特点:(1)利用Matlab虚拟现实工具箱,能够将枯燥的VRML编程变为可视化编程,简化了虚拟场景的设计。(2)Matlab /Simulink是专用的计算软件,在实验数据计算方面表现出极强的优势。(3)通过Simulink接口,很容易实现与三维图形用户界面的交互。但是如果在本地机上使用实验系统,需要在本地机上安装Matlab/Simulink、虚拟现实工具箱以及VRML编辑器、Web浏览器和VRML插件。如果本地机上不能安装Matlab/Simulink,用户也可以通过远程机来观察和控制三维虚拟世界。当然,要求远程机上所有的组成部分都需要支持标准的VRML97软件。通过Matlab Web Server功能也可以实现三维虚拟实验环境的远程访问。用户可以通过客户端浏览器浏览包含有虚拟场景和相应表单的页面,浏览虚拟实验场景的同时可以在表单中修改实验参数,点击发送后,客户端的参数通过HTTP协议传送给Web服务器, 由matweb.exe将参数提取出来,再传送给指定的M文件。该M文件对matweb传送来的数据进行运算后传送到Simulink仿真模型中去,以改变虚拟场景的运行。
3.VRML、Java以及Matlab三者交互
使用VRML、Java以及Matlab软件混合开发的三维虚拟实验系统主要有两种,一是针对Matlab虚拟现实工具箱与VRML程序交互的局限性,采用Java编程扩展Matlab虚拟现实可视化交互功能。这种方案结合了前两种交互方式的优点,有效地运用Matlab虚拟现实工具箱实用的建模环境和Java 扩展的人机交互性,在三维虚拟实验系统开发中具有广阔的应用前景。二是直接采用VRML、Java以及Matlab/Simulink三种软件之间的接口编程。采用Java Applet程序和VRML构建的3D场景实现用户界面,利用Java套接字,通过部署在客户端的Java Applet和服务器端Java应用程序实现客户端与服务器端的传输。运用Matlab/Simulink进行实验建模和运算,并利用Matlab的COM接口实现与服务器端的Java连接,将客户端实验参数传送到Matlab/Simulink中进行仿真运算,运算结束后再将实验结果传送回客户端。该方案采用B/S结构,满足了网络实验教学的需要。客户端只需一个集成Java虚拟机的浏览器即可运行实验,同时由于网络虚拟实验内容存放在服务器端,易于实验功能扩展和管理。此外,该方案特别适用于复杂实验模型的仿真。
使用VRML、Java以及Matlab软件开发的三维虚拟实验系统具有以下优点,在呈现方式上采用3D技术,丰富了媒体的表现形式,增强了学生实验的临境感;由于实验模型的计算采用的是专用的计算软件,在实验数据计算方面也表现出极强的优势;系统能根据实验数据动态地显示三维实验模型的运动,并以相图等形式呈现实验结果。实验过程和实验结果的直观化、形象化,能够促进学生对实验的深入探究,提高其问题解决能力。
四、结束语
三维虚拟实验系统拓展了实验教学的时间和空间,提高了教学效率,不仅可以作为课堂实验教学的补充,而且为远程教育中实验教学的开展注入了新的活力,因而具有良好的应用前景。本文介绍了三维虚拟实验系统开发过程中常用软件的三种交互方式,对各种交互方式进行了分析,希望对广大开发者有所启发。?筅
参考文献:
[1]汪兴谦.VRML与JAVA编程实例讲解[M].北京:中国水利水电出版社,2002:7-12.
[2]黄铁军,柳键编译.VRML国际标准与应用指南[M].北京:电子工业出版社,1999:5-9 .
[3]金侠杰,邢科礼,林财兴.基于VRML-JAVA 的网络交互式虚拟装配环境构建[J].计算机仿真,2004(10):126-129.
[4]池建斌,郭海新,王晨,冯桂珍.基于VRML-JAVA的减速器虚拟拆装系统的实现[J].工程图学学报, 2008,(2):48-53.
[5]吴波,周之平,张飒兵,吴介一.基于VRML-JAVA的虚拟现实及其协同环境的开发[J].计算机工程与应用,2004(7):136-138.
[6]杨雨标,何汉武.基于VRML-JAVA的机器人运动仿真研究[J].机械科学与技术,2004,23(1):120-126.
【基于虚拟现实的软件】推荐阅读:
基于虚拟示波器设计01-05
虚拟仿真软件说明书09-12
基于数据库的自动测试系统(ATS)软件10-09
基于微信平台的软件开发可行性分析报告07-11
虚拟现实技术的论文12-12
虚拟世界的初二作文10-08
虚拟的高考满分作文11-30
虚拟现实技术在建筑设计的应用浅析09-12
虚拟现实技术及其在环境科学中的典型应用12-28