中原工学院毕业设计(论文)
用户能够通过该实验室进行BP神经网络整定PID控制实验。按照这种要求设计的智能控制虚拟实验室主要由三部分组成:虚拟实验室与实验设备的3D视觉效果、智能控制系统设计、各实验图形用户界面设计(GUI)。
用户各实验的图形用户界面虚拟实验设备智能控制系统
图1-4 系统整体框架图
图1-4中的虚拟设备由VRML进行创建;控制系统和控制算法使用Matlab进行设计;设计各实验的图形用户界面将虚拟实验设备和智能控制系统联系在一起;最后用MATLAB制封装整个系统,形成一个完整的模块。
6
中原工学院毕业设计(论文)
第二章 VRML虚拟实验设备设计
在虚拟设计中,虚拟环境系统的设计很重要。VRML虚拟实验设备,是这次课题的所要模拟的实验装备,即学生做试验的实验装备。本课题选用了“THJ-2型高级过程控制系统实验装置”作为模拟的实验设备,下面介绍VRML实验室的建立过程,及现阶段完成部分。
2.1VRML技术基础知识
2.1.1 VRML技术概述
VRML是虚拟现实建模语言(即Virtual Reality Modeling Language)的简称,是SGI公司开发的一种3D造型和渲染的图形描述性语言,1997年12月被国际标准化组织ISOJYCI/SC24委员会认定为国际标准(150/IEC1472—1:1997)[6]。它采用描述性的文本语言描述基本的三维物体的造型,通过一定的控制,将这些基本的三维造型组合成虚拟场景,当支持VRML的浏览器浏览这些文本描述信息时,在本地进行解释执行,生成虚拟的三维场景。VRML的结构类似于openGL的显示列表,用树状的场景图来描述三维世界。应用面向对象技术,不仅使场景图对三维世界的描述变得清晰,还通过封装属性和建立场景图内部消息通道很方便地实现虚拟实体的交互和动画等功能。
VRML操作界面VRML文件解释程序虚拟场景输出用户交互操作浏览器
图2-1 VRML文件实现过程
VRML是虚拟现实编程语言,是一种描述交互式三维对象和世界的文件格式,广泛应用于互联网,是以虚拟现实为特征的3D Web技术的核心。VRML为称为继HTML之后的第二代Web语言,它本身也是一种建模语言,也就是说,它是用来描述三维物体及其行为的,可以构建虚拟境界,也可以集成文本、图像、音响、影像等多种媒体类型。
7
中原工学院毕业设计(论文)
2.1.2 VRML文件组成
VRML文件是一个后缀名为.wrl的文件,它主要由文件头、造型、原型、事件和路由五部分组成,其中文件头是必须的[7]。另外,文件中也可含有注释,以便编写者对文件的各部分进行注释说明。
(1)文件头文件头是VRML文件的标志,所有2.0版本的VRML文件都以这行文字打头。其内容为:“#VRML v2.0 utf8”。其中#表示之后是注解,它在浏览时不被执行;VRML告诉打开该文件的浏览器该文件是一个VRML文件;V2.0表示该VRML文件的版本号是2.0;utf8表示该文件采用的是国际UTF—8编码方案。UTF—8是一个广泛支持多种语言的字符集,由国际标准化组织150/IEC1472—1:1997标准所定义。
(2)造型物体的造型即场景图,场景图由描述对象及其属性的节点组成。在场景中,我们可以使用VRML提供的结点描述语言来设计三维对象的各种属性。
(3)原型节点的原型是节点对其中的域(field)、入事件(eventIn)和出事件(eventOut)的声明。通过自定义原型(PROTO)可以对标准节点进行组合,提供新的节点类型。
(4)事件指按照定义的路由,由一个节点发往另一个节点的消息。事件标志着外部刺激、域值变化或节点之间的交互,可分为入事件和出事件,入事件将导致节点状态的改变,出事件是节点向外界报告自身状态的出口。事件由一个时间戳和一个域值组成。
(5)路由指产生该事件和接收该事件的节点之间的连接。路由的作用在于将各个不同的节点绑定在一起以使虚拟空间具有动感和交互性。
(6)注释在VRML文件中允许编写者在文件的任何部分进行注释说明,以增强该文件的可读性和维护便利。VRML文件的注释部分是以“#”符开头,结束于该行的末尾(换行或Carriagereturn字符)。浏览器在浏览VRHL文件的时候将跳过#号之后本行的所有内容不予解释执行。另外浏览器在浏览VRML文件的时候将自动地忽略VRML文件中的所有的空格和空行。
2.1.3VRML节点简介
节点(Node)是场景图的基本组件,是构成VRML文件的基本单元[8]。每个节点都可以有五个方面的特征:类型、域、事件、实现、名字。节点可以命名(DEF语句),节点命名后可以通过USE语句加以引用,从而避免代码重复,减小文件体积,达到共享的目的。节点的类型很丰富,除了自定义的节点类型(PROTO)以外,一共有74种节点类型按功能可分为组节点(GroupingNodes)、特殊组节点(Specia1GroupsNodes)、通用节点(CommonNodes)、传感器节点(SensorsNodes)、几何体节点(GeometryNodes)、几何体属
8
中原工学院毕业设计(论文)
性节点(GeometricPropertiesNodes)、外观节点(AppearanceNodes)、约束节点(BindableNodes)、插值节点(InterpolatorsNodes)等九大类。通过节点的层层嵌套以及节点的定义和使用,形成整个场景图。
下面对将要用到的主要节点进行简单介绍: 1)外形节点Shape
在创建一个造型时,都必须使用Shape节点。Shape节点的语法为[9]: Shape {
exposedField SFNode appearance NULL exPosedField SFNode geometry NULL }
2)变换节点Transform
一个Transform节点是一个组节点。Transform节点包含一个子节点的列表。这些子节点可以是shape节点、其它Group节点或Transform节点。在Transform节点中的所有子节点将在Transform节点的坐标系原点处创建。如果该坐标系的位置发生变化,则Transform节点内的所有子节点将一同变化。Transform节点可以层层嵌套,它可以是父节点,也可以是一个父节点Group或Transform节点的子节点。父节点的坐标系是Transform节点坐标系的父坐标系。如果一个Transform节点是VRML文件的最高级组,则它的父坐标系就是VRML文件的世界坐标系。
Transform节点的语法为: Transform {
eventln MFNode addChildren eventln MFNode removeChildren exPosedField SFVec3f center 0 0 0 exposedField HFNode children [] exPosedField SFRotation rotation 0 0 1 0 exPosedField SFVec3f scale l l l
exposedFie1d SFRotation sca1e0rientation 0 0 l 0 exPosedField SFyec3f trans1ation 0 0 0 field SFVec3f bboxCenter 0 0 0 field SFVec3f bboxsize -1 -1 -1 }
9