虚拟设备驱动程序

2024-07-12

虚拟设备驱动程序(共7篇)

虚拟设备驱动程序 篇1

1 概述

早期的实时控制软件一般是在DOS操作平台下开发的。在DOS环境下可以很容易地编写应用程序进行中断响应或I/O端口读写, 但是DOS下的应用软件的用户界面不友好, 给用户带来了一定的麻烦。

Win9x以其强大的功能、友好的图形用户界面和便捷的操作得到了广泛的应用, 利用Win9x提供的丰富的应用程序接口函数和可视化的开发环境, 程序员可以轻松地设计出交互式的人机界面。但与DOS系统相比, Win9x是一个弱实时性操作系统, 它基于消息驱动机制, 应用程序要实现的功能由消息来触发, 并靠对消息的响应和处理来完成, 它采用带优先权的抢先式多任务方式的进程调度方法, 这种方式称为“抢先式多任务”。但仅凭消息机制, 无法满足实时控制系统对外部事件实时响应的要求, 因此用户对硬件中断、I/O、DMA或者物理地址的操作, 都必须加载Vx D。所以, 在Win9x操作平台下进行实时控制, 最根本的解决方法是进行Vx D编程。

2 Vx D的原理

Vx D的工作原理是基于Win9x系统和现代CPU的分级管理机制, 在80386及以上的CPU芯片中采用4级特权级, 取值为0~3级, 特权环模型如图1所示。为了使应用程序对操作系统的影响最小, Win9x使应用程序不能直接访问0级特权的功能。

VxD不但可以管理硬件设备, 还可以通过核心级向其他Vx D提供各种服务或与应用程序进行通信, 从而扩展了应用程序的功能。其本质是运行在系统核心级Ring0层的可执行32位二进制程序代码。由于Vx D工作在Ring0层, 因此, Vx D可以不受限制地访问硬件设备和任意地址内存, 甚至截取硬件中断。所以, 在Win9x下对硬件设备的访问, 需首先加载硬件设备的驱动程序, 然后调用其中的某些函数来完成对它的操作。

开发Vx D的工具软件有很多, 如Vx DWriter、Vx DBuild、DDK和VTools D。比较流行的工具是Vireo Software公司推出的VTools D开发工具包, 它提供了对Vx D编程的C++类库支持, 所需的Vx D服务大多可以通过引用相应类的成员函数来实现。我们可以利用VTools D中的代码生成器Quick Vx D生成一个Vx D程序的框架, 然后再根据需要增加相应的代码即可完成所需的操作。

3 Win9x下的定时中断源

实时控制系统的各个任务, 包括输入、输出、控制计算和数据传输都必须在确定时刻开始, 在有效的截止时间内完成。因此, 要完成实时控制任务, 首先就要能获得精确的时间。

Win9x平台下获取实时时钟的方法有以下几种:

3.1 采用Windows中的SYSTEM.

drv提供的管理异步时钟的函数, 如Create System Timer、Kill System Timer等, 这些系统时钟函数允许安装异步时钟回调函数, 它较接近DOS环境下安装的INT8中断回调函数。这种异步时钟的定时精度只能达到55ms, 这种方法只能满足定时精度不高的场合。

3.2 采用Windows系统的多媒体扩展库MMSYTEM.

lib提供的多媒体定时函数。这种方法实际上也是通过挂接定时时钟中断回调函数来实现的。在Windows系统本身所带的函数说明中, 通过Time Set Event () 设置的定时器定时时间精度可达1 ms, 但在Microsoft公司出版的书中指出, 该函数对于Intel芯片的精度为16 ms, 对于MIPS芯片的精度为10 ms。总的来说, 这种方法比第一种方法的精度要高许多, 但是对于工业上的一些实际应用, 如数控加工中的位置控制、插补等实时任务难以保证。

3.3 借用系统定时源:

PC机主板上的8253内部有3个计数器, 计数器0的输出通常作为系统时钟, 其对应的中断号为IRQ8。可以通过对计数器0进行编程, 即对CMOS控制寄存器中写入如表1所示的中断频率值n就可获得所需频率的中断触发信号。

3.4 采用外部时钟定时源:

在实际应用中, 也可采用自制定时电路或选购配备时钟电路的控制卡来获取可靠的中断触发信号。

4 Vx D中断编程

Win9x是通过虚拟可编程中断控制器 (VPICD) 来处理外部设备的中断请求。对于硬件中断编程, Vx D开发工具我们选用Vtools D, 它是一款虚拟设备驱动程序开发工具, 由可视的Vx D代码生成器Quick Vx D、C运行库、VMM/Vx D服务库、C++类库以及Vx D的装入程序等组成, 在Vtools D开发的基本框架上, 应用VC++集成开发环境, 将具体的控制算法写进程序中, 并编译、链接成实时控制驱动程序。Vtools D提供了类Vhardwarelnt来实现对某个IRQ端口的虚拟化, 并处理该IRQ端口上的硬件中断, 这个类是通过VPICD获得中断发生消息, 以便进行实时处理。处理完毕后, 可以告知VPICD发送中断结束事件。本系统的中断源由外部时钟定时源提供, 通过编写相应的89C51单片机程序将中断的周期设为需要的时间间隔, 如1.0ms (占空比9:10) 。使用类Vhardwarelnt实现硬件Vx D的编程步骤如下:从Vhardwarelnt类中派生出一个类, 在派生类中定义构造函数, 重载中断函数On Hardwarelnt () ;创建一个派生类实例, 在Vx D初始化代码如On SysDyrnamic Devicelnit () 中用操作字new动态创建;调用hook () 函数挂钩处理函数后, 调用physical Unmask () 函数保证开放中断IRQ。

限于篇幅, 下面仅给出中断服务Vx D的VALUE.h文件的部分代码。

5 结论

基于上述采用Vx D与外部硬件中断技术的设计方法, 笔者参与了Win9x平台下的某经纬仪实时控制系统的开发, 程序经过长时间实际运行, 系统工作稳定可靠。以上给出的设计思路对于Win9x下实时控制系统具有广泛的参考价值。因此, 利用Vx D进行硬件中断编程作为Win9x平台下实时控制的有效途径, 将得到越来越多的应用。

摘要:通过对Win9x平台工作特点进行分析, 讨论了利用虚拟设备驱动程序技术 (以下简称VxD) 在Win9x平台下进行实时控制编程的关键技术—外部定时时钟编程和VxD中断编程。系统实现了利用VxD技术和VC++联合编程进行Win9x环境下的实时控制系统, 并在某经纬仪实时控制系统上能可靠运行, 取得了良好效果。

关键词:Win9x,VxD,实时控制

参考文献

[1]Hazzah K.孙喜明译.Windows VxD与设备驱动程序权威指南[M].北京:北京中国电力出版社, 2001.

[2]杨强, 李堂秋.Win9x虚拟设备驱动程序编程指南.北京[M]北京:清华大学出版社, l999.

[3]钱能.C++程序设计教程[M].北京:清华大学出版社, 1999.

基于虚拟设备的虚拟交换机设计 篇2

虚拟化技术已经改变了我们的计算方式,例如,许多数据中心完全虚拟化用以提供快速配置,基于虚拟化的云计算可以更好的利用资源。通过虚拟化可以对包括基础计算机设施、计算机系统和软件等资源进行统一管理和抽象,以此来提供弹性可扩展的云服务[1]。

随着虚拟化技术的发展,一个新的网络接入层被引入用以建立虚拟机内部的网络连接,提供许多与物理层相同的功能。服务器虚拟化技术目前发展已经相对成熟,而虚拟化在网络方面的进展才刚刚开始。特别是服务器虚拟化对网络的可移动性,弹性扩展以及网络隔离的要求远远超出了目前物理网络的处理能力[2]。

数据中心可以负载成百上千的虚拟机,因此多租户之间的网络隔离要求变的愈加重要。

网络虚拟化还提供一些附加功能,使网络管理更容易。例如,在虚拟化环境中,虚拟化层可以提供有关虚拟主机动态迁移的相关信息。

本文的其余部分安排如下:第一节描述了虚拟机内部的网络结构;第二节描述了实际物理网络与虚拟网络环境的不同之处;第三节介绍软件实现的虚拟交换层设计;第四节是虚拟交换机的主要应用场景。

1 基于流的虚拟交换技术

基于流的网络交换技术提供了一个有效的网络交换方案[3],采取用软件定义网络的方式,使得用户可以忽略底层硬件的具体情况,直接对流量进行管理并设置数据报文以何种方式通过网络。

用软件来统一管理物理设备,借鉴网络TCP/IP协议的数据链路层桥接原理和网络层协议的设计思想,利用软件实现和硬件实现结合的方式对现有的网络结构予以重新定义,在系统上实现一个虚拟的交换层,除了具有高效的传输能力还可以为云基础网络提供智能的监控服务。

用软件实现的方式具有强壮的伸缩性,灵活性和移动性,方便系统扩展。

2 流分组交换的层次结构

流分组交换分为两层,物理设备虚拟化和网络协议层虚拟化。

2.1 物理设备虚拟化

物理设备虚拟化是指利用软件来对网卡设备进行抽象,使用用户层软件对物理网卡实现逻辑划分,划分后的设备既可以实施流量控制和负载均衡策略又能高效的利用设备资源,虚拟化后的网卡设备具有和物理网卡一样的功能,硬件实现的资源划分不易动态扩展,软件虚拟以后可以按照需求动态进行资源划分。

通过虚拟技术将一台或多台独占物理设备虚拟成至少一台逻辑设备,供多个用户进程同时使用,通常把这种经过虚拟的设备称为虚拟设备.虚拟设备一定和实际的物理设备绑定才可以使用。

2.1.1 虚拟设备模型

虚拟设备是建立在一个或者多个真实设备之上的抽象。合理使用虚拟设备可以在一个物理设备上构建多个逻辑上的虚拟设备,通过软件的配置,这些虚拟设备可以实现硬件所具有的功能。虚拟设备和真实设备可能的模型有如下几种,实际上应用可根据需求选择其中几种模式。

虚拟设备的建立和管理需要统一的虚拟软件的支持。在虚拟软件的控制下,物理设备可以根据上层需求灵活高效的配置组织出虚拟设备。这可以极大的提高硬件设备的利用率,在规模上可以化大为小又可以积少成多。

2.1.2 虚拟设备的管理

虚拟设备管理分为两个部分:

用户态虚拟平台管理,可以用来配置和查看设备的状态,用户可以在用户空间查看和修改虚拟设备的属性文件。

通过内核模块编程管理,由内核直接管理,主要负责物理设备运行和数据通信。

2.2 网络协议层虚拟化

利用软件抽象的灵活性重新定义数据链路层和网络层结构,引入一个虚拟管理层来实现数据链路层和网络层,把传统定义的OSI七层协议的网络层和物理链路层压缩为虚拟网络层。

这样就可以把数据链路层和网络层的数据整合成一个数据流,扁平化了网络结构。每个经过虚拟网络层的数据报文均被重新标记。这个数据报文既包含了链路层信息又包含了网络层信息,基本可以对每个数据报文按照逻辑链路准确分类。

网络中的数据报文就可以组织成一个一个的数据流,组织成数据流的好处在于用户可以根据需要对每个数据流进行属性定义,比如Qo S策略定制,数据报文的检测和隔离,网络负载均衡等等。

报文基于流分类,就不再需要在物理链路层运行生成树协议,减少了数据报文的转发延迟,降低了网络的流量负载。

3 流分组交换

应用基于流分组交换技术对已有的网络协议不用改动,所有的交换工作都在内核协议栈部分完成,大大增加数据交换效率,但是需要在内核协议栈数据结构上添加一些关于数据流控制相关信息用以标识当前处理的数据报文属于哪个数据流。

经过标记后的逻辑数据报文头部结构如下,逻辑报文的生存时间TTL是为了防止逻辑报文在网络中过久滞留而导致网络队列太长而溢出,同时也能保证数据帧不会在成环的链路中被无限次转发,这是实现两点之间多路径转发的基础。

虚拟机的虚拟网卡对每个发出的数据报文的控制信息进行标记,与之相连的交换节点接收到数据包后,会根据全局控制器的数据建立一张虚拟连接表,交换节点根据数据报文的控制信息查找虚拟表然后将数据报文转发到目的端口完成一次数据报文交换。

每条虚拟连接可以包含多个虚拟端口,这些虚拟端口被划分为一个逻辑组。有了这个逻辑组可以进行更复杂的交换功能,例如多路径转发,快速路由,链路集成,负载均衡,流量整形,例如图x所示,每个数据流会根据流量使用多个端口,以加快数据报文的转发,多个虚拟连接的数据流可以转发到具有同样操作需求的端口。

基于流的分组交换可以在虚拟机内部网络通信时设定较大的MTU数据包来提高数据报文的转发效率,因为在内核协议栈可以避免IP分组和重装的过程,降低了数据报文的转发延时。

对于每个虚拟端口和虚拟连接,可以自由配置匹配规则用以对数据报文进行匹配和过滤。比如某个端口限制IP地址为10.0.0.*的数据包发送,如果接收到类似的数据包,就抛弃掉。

流分组交换需要维护一张虚拟连接表,每个表项唯一标识了一条数据流、应用在经过该数据流的报文需要执行的操作和该数据流的统计信息。

虚拟连接表表项组成

匹配规则

这个域可以唯一的确定一条数据流,里面包含数据报文的物理地址,IP地址,虚拟局域网ID等等。

虚拟连接计数器

该域定义了一组计数器,用来统计该虚拟连接接收和发送数据包总数,连接的端口总数等等。

虚拟连接规定执行的操作

这个域定义了数据报文经过该虚拟连接时需要执行的操作,例如,匹配规则的修改,数据报文转发,数据报文丢弃等等,用户可以自定义。

3.1 流分组交换控制

流分组交换可以实现的重要前提就是流分组交换控制器。流分组交换控制器负责建立和移除虚拟连接表,虚拟连接表的规则设置,物理虚拟设备的参数配置,数据统计信息获取,Qo S设置,虚拟防火墙配置,VLAN划分等等。

流分组交换控制器负责监控所有的虚拟连接表,这样虚拟机内部网络的流量状况就可以全方位的被监测,凭借以前的物理设备这是做不到的。

基于流交换的数据报文若不与外界通信,则数据报文就可以不用经过物理网卡而直接在内存中进行交换,这个机制也非常大的提高了交换的性能,提高了报文的转发速度。

传统的数据链路层需要运行生成树协议来去除回环通路,MAC地址学习也占用了数目可观的网络流量,现在可以用控制器来为所有的虚拟设备维护一个全局的转发路径,这就省去了生成树协议造成的数据帧转发的延迟以及增加的额外网络流量。

流交换分组控制器要根据配置文件生成虚拟连接表,创建或者移除虚拟连接,维护虚拟端口和虚拟连接的存储队列,为虚拟连接和虚拟端口配置数据报文处理规则。

3.2 流分组控制协议

流分组交换控制器通过Netlink套接字和内核进程通信通信,也是网络应用程序与内核通信的最常用的接口。Netlink是一种异步通信机制,在内核与用户态应用之间传递的消息保存在socket缓存队列中,发送消息只是把消息保存在接收者的socket的接收队列,而不需要等待接收者收到消息。

流分组交换控制器和流分组交换模块之间通过Netlink建立一个普通的TCP连接,是一种基于进程间通信机制。流交换控制器和交换模块之间信息交换采用自定义的一套协议。

协议头结构:

控制信息事务ID用以标识同一对流分组交换控制器和流交换模块之间的配置过程,例如本次A发送给B的控制信息,B必须要用同一个事务ID来回复A的请求,以区分A发送给B的另外的控制信息。

控制信息类型:

控制信息大致分为下列几种:

配置信息主要是通知流分组交换模块端口配置数据,端口队列配置数据等等。流分组交换控制器通过控制协议获取各个交换模块和内置的虚拟端口信息,可以对虚拟连接表进行全局性操作,又可以高效的检测网络的状态,未来的工作还会实现根据网络监控结果自动化的调节各个交换节点的配置信息。

4 结论

利用虚拟网络设备的特性以及软件抽象的灵活,构建虚拟交换机来实现可扩展的数据链路层。虚拟化技术在一般的网络基础设施本身方面还有很多工作要做。旨在获得虚拟化的优势,如隔离性,灵活性和流动性。可实现弹性、安全、自适应以及易管理的云计算基础网络。

摘要:网络虚拟化为共享在同一主机上的多个虚拟机创造了一个新的网络接入层。传统模式网络部署方式已经不能满足虚拟化部署环境对网络的要求。这个新的虚拟网络接入层合理的隔离了系统软件和实际的物理设备,虚拟网络接入层还提供了物理网络层不具有的优势,例如灵活的软件配置,弹性的功能扩展。设计虚拟网络交换机,通过采用虚拟设备引入一个软件抽象层,该抽象层将流量从物理网络元素中分离出来。通过这些虚拟设备可以合理动态的管理虚拟化网络资源,有效的整合这些虚拟网络元素。介绍虚拟交换机是如何设计的,可以用来解决虚拟环境中虚拟机跨子网的流动性和虚拟主机之间流量的逻辑隔离等问题。

关键词:计算机应用技术,网络虚拟化,虚拟交换机

参考文献

[1]《虚拟化与云计算》小组.虚拟化与云计算[J].北京:电子工业出版社,2009

[2]吴朱华.云计算核心技术剖析[J].北京:人民邮电出版社,2011-5

虚拟设备驱动程序 篇3

推进剂加注设备是火箭发射系统的重要组成部分,操作、维修人员的业务水平对火箭发射活动具有重要影响。操作失误和维修不当轻则造成设备故障,延误发射,重则引起推进剂泄漏事故,造成人员和装备损失。利用虚拟现实技术进行加注设备装配操作训练,有助于操作和维修人员熟练地掌握加注设备的操作和维修技能,避免利用实际加注设备进行训练的种种限制。本文研究加注设备虚拟装配仿真训练系统的开发过程。

1 系统功能和技术框架

加注设备虚拟装配仿真训练系统具备以下三项主要功能:

1) 加注设备基础知识学习功能。

以帮助文档和虚拟场景相结合的形式讲解加注设备的功用、结构、原理、操作使用和维护修理等知识。设备知识包括系统级和部件级两个层级。系统级知识的学习在完整的加注设备虚拟场景中进行,用户进入场景“实地”观察系统构成、设备功用与布置、管路走向等,并可通过弹出菜单项选择进入相关帮助文档,学习系统工作流程、操作使用方法和维护修理知识。在系统级虚拟场景中可点选重要设备进入部件级学习,部件级学习在单个设备虚拟场景中进行,可观察各设备的三维实体结构和装配关系,也可选择进入相应帮助文档,学习设备的工作原理和使用维护方法。操作、维修人员通过这些知识的学习,获得加注设备工作原理和操作维护的基本知识。

2) 加注设备装配模拟训练功能。

以动画演示和虚拟交互操作相结合的形式练习加注设备的拆卸和装配工艺过程。在系统级虚拟场景中,可以选择观摩零部件更换和维护保养演示,这种演示为顺序动画形式,用户不能干预或参与装配;也可选择交互拆装操作,用户可通过鼠标、键盘对设备进行选择、旋转、拖动和释放,进行零部件更换和维护保养的操作训练,此时用户完全自主拆装。用户还可点选重要设备进入单个设备的拆装训练环境,同样可选择观摩单个设备的拆装演示或自主进行设备的交互拆装训练,此时可将设备完全拆卸成零部件。通过交互拆卸和装配训练,用户可熟悉设备拆装的工艺流程。

3) 加注设备装配工艺规划。

以装配工艺规划算法[1]为基础,提供拆装序列规划、路径规划和特定故障拆装训练平台。针对加注设备的特定故障,用户可通过此平台拟定维修方案并进行维修训练。当某设备发生故障后,维修人员初步确定拆卸的方案(通常只需拆卸少量零部件),再利用此平台规划拆卸序列和路径,得出最优的拆卸工艺方案。再以此拆卸工艺方案为基础,生成操作、维修综合实验环境,人员通过此环境,针对具体的故障和维修方案,采用最优的装配工艺进行拆装训练,有针对性地获得特定故障的维修技能,提高维修的工作效率。

图1所示是推进剂加注设备虚拟装配仿真训练系统的技术框架,分为界面层、应用层和支撑层三部分。界面层是对仿真应用的集成和调度,实现用户功能,并为用户提供友好的操作界面。应用层是面向特定需求的仿真实现,通过设备知识的搜索和综合、装配过程仿真和装配工艺规划三部分实现加注设备知识学习、拆装过程演示和交互操作、拆装工艺方案规划和训练环境生成等核心功能。支撑层包括仿真应用所需的三维模型和数据库、系统开发和运行所需的支撑软件等。

2 建立三维实体模型

为实现装配仿真训练系统,首先要建立加注设备的几何模型,模型必须真实地表达设备的结构,即模型尺寸要准确,配合间隙要精确,装配关系要与实际相符,而且外观必须逼真。本文选用Autodesk Inventor建立加注设备的几何模型,它基于特征进行参数化的实体造型,建立的模型既有直观的外形,又有精确的尺寸配合。

加注设备包括各种管道、阀门、泵、推进剂贮罐和操纵台等,使用Inventor建模[2],首先根据零件的尺寸参数,画出零件的特征草图,然后使用特征操作,如拉伸、旋转、扫掠、阵列等构建出零件的几何特征。当建好设备的所有零件几何模型以后,通过各种约束,如配合约束、角度约束、相切约束等约束零件间的相互位置关系,组成设备的整体模型。如图2所示是的安全阀的几何建模过程。

建立好各种分离设备的几何模型后,根据加注设备真实连接关系组合成系统模型,利用Multigen Creator[3]进行渲染,构建加注系统各工作区域场景,如图3所示为泵房和罐室场景。

3 加注设备的装配仿真

装配仿真是加注设备虚拟装配训练的核心功能,本文采用VP[4]进行仿真开发,在VP中通过对场景(scene)、观察者(observer)、观察通道(channel)、环境变量(environment)、运动方式(motion)等参数进行设置,构建推进剂加注设备装配仿真的虚拟环境。利用VP所提供的功能模块和程序开发接口,实现加注设备的装配过程演示和交互装配操作。

给模型设定一系列的路径控制点,通过路径控制点控制模型在通过此路径控制点时的位置、姿态,然后利用导航器Navigatror连接路线中的各个散布控制点,形成一条完整的运动路径,模型可以自动地按照指定的运动路径在场景中运动。通过对PathNavigator中的setStartDelayTime,setKinematicstate等参数的设定,确定零件拆卸的先后顺序和拆卸动作的快慢。对点的位置或拆卸时间等参数进行修改,可以改变拆卸过程演示方案。图4(a)所示是电磁阀的拆卸演示过程。

通过鼠标的拖动改变零件在场景中的位置,来实现装配的交互操作。首先获取鼠标在计算机屏幕上的位置坐标(x,y)和零件的三维空间位置坐标(x',y',z'),并通过设置观察者坐标和姿态,获得装配场景的正视图,用鼠标的(x,y)坐标来改变零件的(x',y')坐标值,然后切换到装配场景的侧视图,固定零件的x',y'的值,利用鼠标的x坐标信息来改变零件的z'坐标值,实现零件的拖动。如图4(b)所示是球阀的虚拟交互装配的过程。

4 装配工艺规划

装配工艺规划针对特定的加注设备出现的特定故障,分析修理过程中的拆卸和装配方案,并通过对不同装配方案的比较,得出最优的装配方案,为维修工作提供指导。装配工艺规划分为装配序列规划和装配路径规划。

4.1 装配序列规划

装配序列规划[6]即产生一个装配顺序,在经济最优化的前提下,把分离的零件装配在一起,形成目标产品。

本文采用的装配序列规划原理为:采用联结图法建立加注设备的装配模型,表达零件的装配信息。采用子装配体的概念对装配模型进行简化。然后利用零件间的优先约束关系分析拆卸模型,建立设备的优先关系矩阵。通过对设备装配模型和优先约束关系矩阵的分析,生成设备可行的拆卸序列。采用遗传算法对设备的拆卸序列进行优化,优选出最佳的装配序列。

对图5所示的闸阀进行装配序列规划,得到一组最佳拆卸序列为:1,6,2,3,7,9,10,8,4,5,11。

4.2 装配路径规划

装配路径规划[5]就是寻求一条装配零件从装配起点到装配目标点的空间运动无碰路径。本文采用粒子群优化算法进行装配路径规划。图6是在有三个障碍物的空间中,采用粒子群优化算法从起点S到终点T寻找的一条最短无碰路径,路径长度为205.945。

5 系统开发

本文利用VC++2003.net编程实现仿真训练系统界面程序[6],通过进程调用的方式对各功能模块进行调度和集成,形成加注设备虚拟装配仿真训练系统。图7(a)所示是设备知识学习界面,图7(b)所示是设备拆装演示界面。

6 结论

本文设计了推进剂加注设备虚拟装配仿真训练系统的功能和技术框架,建立了设备的几何建模,开发了加注设备的装配演示、交互操作仿真以及工艺规划模块,并对系统进行了集成。开发的虚拟装配仿真训练系统对加注设备操作和维修人员的业务学习和技能训练有重要帮助。

摘要:设计了火箭推进剂加注设备虚拟装配仿真训练系统的功能和技术框架,建立了加注设备的三维实体模型,开发了加注设备的拆装演示、交互装配操作和装配工艺规划模块,并编制了功能模块调度与管理界面程序。设计的系统对加注设备操作和维修人员的业务学习和技能训练有重要帮助。

关键词:加注设备,虚拟装配,训练系统,设计

参考文献

[1]谢慧清.虚拟装配系统技术的研究与实现[D].兰州:兰州大学,2007.

[2]董永进.Inventor机械设计精彩实例与进阶教程[M].北京:化学工业出版社,2007.23-29.

[3]王乘,周均清,李利军.CREATOR可视化仿真建模技术[M].武汉:华中科技大学出版社,2005.35-41.

[4]周玉清.城市仿真应用工具/VEGA软件教程[M].上海:同济大学出版社,67-72.

[5]张中位.基于混合遗传算法的路径规划研究[D].西安:第二炮兵工程学院,2008.

网络设备虚拟技术的探讨 篇4

一、常用的四种虚拟化方法

实现虚拟化的方法不止一种, 有几种方法都可以通过不同层次的抽象来实现相同的结果, 以下介绍Linux系统下常用的四种虚拟化方法及其特点, 其中宿主机表示真实计算机, 客户机表示虚拟计算机。

1. 硬件虚拟化

最复杂的虚拟化实现技术无疑是硬件虚拟化, 在这种方法中, 可以在宿主机系统上创建一个硬件虚拟机来仿真所想要的硬件。硬件虚拟化分为硬件指令虚拟化和硬件资源虚拟化, 硬件指令虚拟化目的是将客户机发出的指令翻译成所在主机平台的指令, 从而实现对客户机指令的模拟执行。硬件资源虚拟化将虚拟资源映射到物理资源, 并在虚拟机计算中使用本地硬件。硬件虚拟化技术的优点是可以仿真一个与宿主机指令不同的系统。例如可以在X86的宿主机上可以虚拟仿真出MIPS或者Power PC架构的系统来, 而且X86宿主机不需要任何修改;其缺点是由于对指令的虚拟仿真, 使得虚拟机的运行速度大大降低, Dynamips就是这个技术的代表产品。

2. 完全虚拟化

这种方法使用一个Hypervisor或者VMM在客户机操作系统和宿主机的裸硬件之间提供一种协调。宿主机的特定受保护指令必须被分离出来并在Hypervisor中进行处理, 底层硬件也通过Hypervisor共享被其客户机使用。虽然完全虚拟化的运行速度比硬件虚拟化的速度要快, 但是由于中间经过了Hypervisor的协调过程, 故其性能要低于硬件虚拟化。完全虚拟化的优点是对宿主机的操作系统无需修改就可以直接运行客户机, 唯一的限制是客户机必须要受到宿主机硬件的支持。

3. 超虚拟化

超虚拟化不仅使用了一个Hypervisor来实现对宿主机硬件的共享, 而且将与虚拟化有关的代码都集成到了客户机的操作系统中, 这样不再需要分离或重新编译特权指令, 因为宿主机和客户机的操作系统在虚拟化进程中会相互协作。超虚拟化技术缺点是要为Hypervisor来改客户机操作系统, 但优点是提供了与未经虚拟化的系统相接近的性能。与完全虚拟化相类似地, 超虚拟化技术也可以同时支持多个不同的操作系统, Xen是一个超虚拟化的免费开源解决方案。

4. 操作系统级别的虚拟化

这种技术在操作系统本身之上实现服务器的虚拟化。这种方法支持单个操作系统, 并可以将独立的服务器相互简单地隔离开来。操作系统级的虚拟化要求对操作系统的内核进行一些修改, 但是其优点是可以获得原始性能, Linux-VServer是一个操作系统级虚拟化解决方案。

二、模拟和仿真

对于虚拟化技术, 不能不提到模拟仿真的概念, 这两个词分别是由Simulation或者Emulation翻译过来的, 关于Simulation和Emulation的定义在计算机科学里有很多的争议, 一般认为Simulation是指在计算机上用软件的方式去模拟系统的一个功能, 并不要求系统功能的实现细节等问题, 只要保证在同样的输入下, 软件的输出和所模拟部分的真实输出保持一致相似, 而对具体实现过程并不注重。Emulation一般是指在计算机上用软件或者少量硬件去模拟仿真出系统的各个部件, 真实的体现出所仿真系统的运行机制, 这就要求开发者先建立真实系统的模型, 即真正了解真实系统的内部结构, 这样才能用编程等方法实现各个部件的模型。相比Simulation、Emulation方法更注重了实现过程, 而且其输入输出结果更能真实反映真实系统的输人输出, 因此Emulation、Emulation更接近真实系统。而我们中文的模拟的含义大多数指的是用在一个平台上用软件其实现另一个平台程序运行, 这个含义同时包含了Simulation和Emulation的概念, 仿真的含义大多数指结合硬件来实现另一个平台上程序的运行。

三、三种虚拟计算机网络设备比较

按照对于虚拟技术—Simulation和Emulation的分析, 我们对虚拟计算机网络设备三种软件进行分类:Boson Net Sim和Packet Tracer是从软件结果上模拟了CISCO设备的功能, 即给出部分相关的输人能得到相应的输出, 但中间如何实现和原真实设备无关, 属于Simulation的范畴;而Dynamips是从真实设备各个部件的模型出发实现了虚拟设备, 输入输出和真实设备运行过程相关, 属于Emulation的范畴。因此从网络设备的虚拟效果来看, Dynamips更能真实的反映实验效果。另外路由器、交换机等网络设备主要采用MIPS或者Power-PC架构, 而我们的宿主机一般是X86架构, 因此对这些网络设备的虚拟化技术一般才用硬件虚拟化技术实现, 而Dynamips正是硬件虚拟化技术的一个代表产品, 因此仿真度高的网络设备虚拟化技术主要采用Dynamips仿真器来实现。

摘要:随着虚拟化技术的发展, 各种硬件都已用软件仿真来实现。本文对仿真和模拟技术进行了分析, 阐述了虚拟化技术常用的四种虚拟化方法, 并对常用的虚拟计算机网络设备进行了分类和比较研究, 对高校建设虚拟计算机网络实验室有一定的指导意义。

关键词:虚拟化,网络设备,仿真

参考文献

[1]刘艳, 程景清, 朱恒民, 丁可柯, 孙科学.一种虚拟AAA服务器实现方法的研究与实现[J].计算机技术与发展, 2014 (05) .

[2]郑勇.计算机虚拟机的应用领域分析[J].计算机光盘软件与应用, 2013 (23) .

基于虚拟化技术的客户端程序研究 篇5

云南电网当前计算机应用系统运行模式主要采取c/s或者b/s模式, 无论哪种模式用户端都需运行一些程序或控件, 由于用户端计算机硬件参差不齐、操作系统版本不一, 在应用系统开发时需要考虑系统兼容性问题, 经常需要在多个操作系统环境下进行测试和开发, 浪费了大量的人力资源和时间, 特别当用户计算机需要运行多个业务系统时问题更为突出。

其次, 当前的运行模式, 每次对客户端计算机进行系统升级或者更新时, 每台用户计算都需要进行下载、安装等操作, 同样需要很多人力资源和时间。另外在系统维护中存在部分用户端计算机硬件配置较低、网络带宽不足, 应用系统响应速度慢等问题, 同时由于多数应用系统整体可用性和用户端计算机状态相关, 当用户端计算机出现问题时会导致系统性能下降, 特别是系统中部分用户端主机受病毒感染时问题更为突出。这就需要 建设一套基于服务器计算应用程序发布系统, 将营销系统、OA系统、生产MIS系统等重要业务系统的客户端应用程序部署到数据中心应用交付服务器上进行管理和运维, 客户端不再进行应用程序的安装和加载, 联网终端通过应用交付系统借助客户端虚拟化技术实现业务办理和数据传递, 从而提高信息系统整体可靠性, 降低应用系统开发、运维成本、提高IT系统管理效率。

2 客户端虚拟化技术研究

信息技术客户端虚拟化技术是虚拟化和云计算IT系统分层结构中与用户最直观联系的部分。 简单的描述, 客户端虚拟化就是依赖网络以服务器计算为基础, 为用户提供客户端系统或应用的产品或技术。客户端虚拟化与其它虚拟化技术关注于计算中心硬件平台资源的整合逻辑调度不同, 客户端虚拟化关注于集中IT管理、更高的安全性和更低的总体成本。

2.1 系统架构

研究中主要是通过在数据中心应用客户端虚拟化技术在原有系统中增加一套“应用简化发布平台”, 系统由左到右由三个部分组成, 客户端、网络、后台支撑环境

1) 客户端:

要求平台能广泛的支撑各类移动设备, 因此选择的产品是各种形式的客户终端设备 (各种型号的PC机、基于、Linux、Macintosh的设备、WBT、掌上电脑、无线设备、瘦客户机等) , 这些可以访问发布服务器上提供的桌面和最新程序, 并享受服务器的速度和资源。

2) 网络:

客户端虚拟化技术在网络上传递是虚拟界面而不是应用数据, 因此可以用较低的带宽完成服务器与客户端的信息交付, 在应用系统没有高清图像、视频流的情况下, 对于简单界面的应用系统, 平均每个用户仅占用20Kbps-100Kbps, 即使是通过电话线或移动网络, 也能保证多个用户同时工作。另外, 应用服务器与后台数据库通常是局域网连接, 计算和查询所需的大量数据都是基于LAN传输速度, 对不需要消耗远程用户的网络带宽。

3) 后台支撑环境:

后台支持环境主要指应用发布服务器、域控制器、Web Interface、DNS服务器、文件服务器、授权服务器等, 发布服务器根据应用程序发布需要由多台虚拟机组成, 采用并行方式通过负载均衡同时对外提供服务, 其它服务器主要是为应用发布服务器管理和控制服务, 为了提高系统可靠性通常至少配置两台进行热备, 这些服务器可以是独立的物理服务器, 但通常使用数台高性能服务器及存储设备使用服务器虚拟化软件来构建, 借助服务器虚拟化实时迁移技术提高系统的可靠性。

4) 运维管理:

客户端虚拟化实施完成后, 客户端应用程序“迁移”到数据中心, 程序维护人员在数据中心就可以完成整个应用系统的维护, 在实际运维中可以完全排除客户端操作系统对应用程序运行干扰, 快速准确的确定故障原因。当应用程序需要进行维护变更时, 程序开发或运维人员仅需在应用发布服务器上对软件进行更新、升级或是卸载, 用户终端计算不必再进行任何操作。

另外通过策略配置和授权管理可以方便的实现网络应用标准化, 即任何需要网络通信的程序都只有通过应用发布服务器与外部进行通信, 而任何程序必须经过系统授权, 用户才可以使用, 同时通过系统的记录审计模块, 可以对用户与外界的通信可以进行实时监控, 当出现系统出现安全事件时可以调用通信记录, 快速追踪事故的根源。

2.2 客户端虚拟化分类

客户端虚拟化从使用场景来说分为应用虚拟化和桌面虚拟化两类, 从系统架构上虽然他们大致相同, 但是在部署应用中他们有着较大的差异, 而且各有特点。

应用虚拟化和桌面虚拟化应用中主要区别, 在于应用虚拟化进行程序发布时, 每个用户在应用交付服务器中虽然使用独立进程来运行应用程序, 但是他们共用一个服务器操作系统, 而桌面虚拟化技术则为每个用户分配一个独立的桌面操作系统。通常应用软件运行时除了要加载应用程序文件外还要调用操作系统内核环境和用户配置文件, 虽然应用虚拟化产品采取一些技术来隔离不同用户间的应用环境, 但仍无法支持所有程序在这种运行环境中的需求, 特别是对于用户定制开发程序这种情况更为突出, 另外部分程序为了保证数据的安全性和唯一性本身就不支持多个副本在同一个操作系统中运行, 并非所有的程序都能使用应用虚拟化系统进行程序发布, 因此在使用应用虚拟化前必须进行严格的测试。

桌面虚拟化技术其实就是将用原来运行在本地计算机上的操作系统集中到服务器上, 并通过网络交付到终端上供用户使用。由于每个用户使用独立的操作系统, 而每个操作系统在运行都需要使用一定计算资源, 因此与应用虚拟化相比在进行应用程序发布时单台应用发布服务器支持的用户较少, 但桌面虚拟化技术拥有更多的灵活性和适用性, 除了需要考虑外设的兼容性问题外桌面虚拟化技术几乎所有的应用程序都支持这种方式进行部署和发布。

在运维方面无论是使用应用虚拟化技术还是桌面虚拟化技术, 应用程序简化发布平台都能为应用程序提供集中管理, 在程序更新、升级时非常方便, 特别是使用应用虚拟化技术时管理员只需将变更后的程序在发布服务器上进行更新, 所有的用户就可以立即获得最新的应用程序;相对而言由于桌面虚拟化技术能给用户和本地电脑一致的的灵活性, 这种灵活性却给桌面集中管理带来一些问题, 如用户个人数据的备份恢复, 当然如果对用户权限进行严格的限制或是使用只读镜像进行进行标准化桌面交付, 在运维时就不必考虑这些问题了, 仅需对系统母板镜像进行更新, 然后通过同步或者复制, 实现为所有同类用系统升级或程序更新;另外针对部分高级用户的特殊需要而系统能向用户提供个性化桌面, 这时系统的运维和管理主要由用户自助完成。

3 投资费用比较

应用简化发布平台的主要功能是代替原有的桌面计算机, 并将信息系统的客户端程序集中到计算中心进行管理, 在进行项目的建设评估时可以将系统的建设维护费用与新购桌面pc的购买和维护费用进行对比和参照。

方法:将用户购置一台pc的费用及四年运维费用F1与应用程序简化发布平台每用户的建设使用费用F3进行比较, 当F1≥F3时, 可认为建设应用程序简化发布系统的经济效益较好, 当F1< F3时, 可认为建设应用程序简化发布系统的经济效益较差。

应用程序简化发布平台每用户的建设使用费用F3由三个部分组成:瘦客户机使用费F2、软件授权费用R、后台服务器存储等硬件设备投资费用h, 即

F3=F2+R+h

而软件授权费用R和后台硬件设备投资费用h, 不同技术有较大区别, 下面按照应用虚拟化技术、桌面虚拟化技术进行比较分析。

3.1 应用虚拟化

授权费用R, 主要包括windows终端服务授权 (每用户w=500元) 和应用虚拟化软件授权费用r, 厂商免费提供第一年升级及支持服务, 第二至第四年, 每年升级及支持服务费用为软件采购费用的20%, 四年每用户软件授权费R=w+r+60%r=w+1.6r。

当前应用虚拟化产品都支持分时享用应用程序, 也就是说系统是按照同时使用的应用数量进行授权, 也就是说如果上早班的员工和上晚班的员工各是100个, 企业只需购买100个应用虚拟化产品授权就可以给提供给全部员工使用了, 这时系统用户复用系统为c=2, 当系统建设目的是提供给移动终端或者出差员工使用时根据经验复用系数平均而言为10~20。

如不考虑应用简化发布系统后台硬件采购费用 (利旧已有设备) , 即h=0时。在进行用户应用虚拟化方式进行桌面终端更新时每用户4年总成本F3=F2+R/c、, 如果F3

当c=1时, F3=F2+R/c=1500+500+r+0.6r=2000+1.6r, 参见图2。

如图2可知当r<2680元时, 投资效益较好。

如果参考黄金分割模型, 即假设一般应用系统同时使用的人数为总用户数的61.8%, c=1.618。

F3=1500+ (500+1.6r) /1.618

此时r<4540, 投资效益较好, 此时基本可以覆盖现在所有应用虚拟化产品。

如果后台硬件设备采用全部新购时, 每用户投资成本将随之增加, 使用高可用性架构的话, 当前每用户后台所需硬件投入至少1000元, 如果设备折旧四年后残值为0, 并计算第四年的硬件维保费用的话, 4年每用户后台硬件总费用费用为h=1100元, (前三年硬件维保费用为0, 第四年为采购费用的10%) , 按照上述计算方法F3=F2+h+R/c, 当复用率为c=1时, 应用虚拟化产品单价r<2000元时, 投资效益较好, 如果参考黄金分割模型c=1.618, r<3429元时, 投资效益较好。当c=2.1 r<4480投资效益较好, 此时基本可以覆盖所有现有应用虚拟化产品。

3.2 桌面虚拟化

如果使用只读桌面镜像进行应用程序发布应用程序的话, 系统也支持支持分时享用 (适用于标准化桌面) 授权费用, 主要包括windows虚拟桌面授权和应用虚拟化软件授权费用。由于桌面虚拟化对应用简化发布平台后台硬件要求较高, 费用为应用虚拟化的2~5倍, 按照2倍计算, 4年每用户后台硬件总费用费用为h=2200元。按照上述计算方法F3=F2+h+R/c, 当复用率为c=1时, 桌面产品单价r<1310元, 才有投资效益。当参考黄金分割模型c=1.618时, r<2310元时有投资效益, 该价格在大批量购买时可以选购到任何桌面虚拟化产品。如果每桌面对后台硬件要求过高, 投入大于4000元时, 用上述公式来考虑客户端虚拟化的经济效益已经不太合适, 如果这时选择虚拟化技术进行应用程序发布和管理, 可能主要考虑到, 系统建设完成后为系统运维管理带来的其它好处如集中运维, 高安全性, 更低的能耗等, 当系统用户分散, 分支机构较多时将获得更明显的效果。

4 结束语

通过研究分析, 客户端虚拟化技术能同时满足云南电网公司对营销、生产、OA系统客户端程序进行集中管理和程序发布, 在进行应用程序简化发布平台的建设时需要根据应用系统的特点对客户端虚拟化产品进行严格测试, 以保证系统的兼容性, 另外在产品选型时如果投资费用相当, 最好选择能同时提供桌面虚拟化和应用虚拟化成熟产品的厂商, 以提高后台服务器的使用效率, 总体而言利用基于服务器计算技术进行应用程序的管理和发布, 具有维护简单, 管理方便、不受用户端设备影响、抗病毒抗攻击的特点, 项目的应用推广经济效益较好, 能有效的提高软件开发、部署效率、降低IT运维成本、提高用户体验和管理效率。

参考文献

[1]马博峰.VMware、Citrix和Microsoft虚拟化技术详解与应用实践[M].机械工业出版社, 2012, 12.

虚拟设备驱动程序 篇6

随着计算机技术和网络技术的飞速发展, 计算机仿真技术和虚拟现实仿真广泛地应用于军事、公安、水利、消防、农业、林业、城市规划等领域。分布式交互仿真基于计算机网络和虚拟现实技术, 将异地分散的各种仿真系统通过网络连接起来, 提供一个可供多用户交互操作的复杂的三维虚拟世界[4]。它包括仿真模型控制、三维图形、三维声音、二维态势等几个组成部分, 其中逼真的三维图形显示是其中关键部分, 它决定着仿真效果。

基于HLA的三维视景仿真能够很好地应用于分布式的网络环境, H L A为我们提供了一种低耦合的软件体系结构, 将底层的网络通讯和上层的应用独立开来, 向上层提供一些接口, 开发人员只需要集中在具体模型控制的上, 不需要太多考虑底层采取何种通信机制, 同时降低计算机的硬件成本、扩大计算机的仿真规模。

2 HLA技术架构

高层体系结构HLA (High Level Architecture) 是美国国防部为了解决美军在各个领域开发出来的各种仿真模型和各类仿真系统的互联和互操作问题而提出的一种新型的分布式仿真协议, 而按照HLA接口规范实现的软件则称之为运行支撑平台R T I (R u nT i m e Infrastructure) 。HLA定义了一个通用的、灵活的、可伸缩的、可重用的仿真软件体系结构, 实现了基于组件“即插即用”的分布式仿真思想。

1996年8月, 美国国防部建模和仿真办公室DMSO (Defense Modeling&Simulation Office) 颁布了第一个HLA标准HLA 1.0, DMSO的最新标准为1998年2月颁布的HLA 1.3。1998年2月, HLA 1.3被仿真互操作标准化委员会SISC (Simulation Interoperability Standards Committee) 接纳为IEEE标准草案, 并在2000年9月21日被正式接纳为IEEE1516标准。

由于H L A具有许多的优点:模型的可重用性、互操作性、能提供更大规模的将构造仿真/虚拟仿真/实物仿真集成在一起的综合环境、可以建立不同层次和不同粒度的对象模型等。这样, 基于H L A标准的仿真提高了仿真应用的互操作性和仿真资源的可重用性, 利用将多个小的仿真系统联合起来构成一个大型复杂仿真系统, 利于完成已有仿真系统的扩展, 并能满足多方面的应用需求。

H L A定义了一种软件体系结构, 它的主要目标是允许通过联合其它仿真来实现仿真应用, 因此H L A支持基于组件的仿真开发, 这里的组件是指联邦成员而不是被仿真的实体, 联邦成员是一个仿真系统或工具, 是重用的基本单位, 它们能应用于原始联邦以外的其它联邦中。联邦由联邦成员构成。

H L A标准由三部分组成:

规则 (r u l e s) :是保证在联邦 (federation) 中, 仿真应用 (联邦成员) 间能正确实现交互的原则和协定, 描述各联邦成员的责任及它们与R T I (R u n Time Infrastructure) 的关系, 是对象模型模板 (O M T) 和接口规范说明 (Interface Specification) 的设计原则。

对象模型模板 (O M T:Object Model Template) :为定义HLA对象模型提供通用的标准格式模板, 以促进模型的互操作性和资源的可重用性。

接口规范说明 (I n t e r f a c e Specification) :是描述联邦成员和RTI间的接口。

通常, HLA提供了6个领域的服务:

(1) 联邦管理。根据存在和成员资格定义联邦的执行;完成联邦范围内的操作。

(2) 声明管理。声明管理服务是联邦成员用来声明它们产生 (发布) 或消费 (订阅) 数据意图的方式, RTI使用这些声明来安排数据的路由、转换数据和管理兴趣。

(3) 对象管理。对象管理服务是用于实现数据实际交换的那些服务。联邦成员使用这些服务来发送和接收交互, 这些服务也用于登记一个对象类的新实例和更新其属性。其它联邦成员将调用这组中的服务来接收交互、发现新实例和接收实例属性的更新值。

(4) 所有权管理。在HLA的规则5和规则8要求联邦成员在更新实例属性前必须先拥有它, RTI保证在一个时刻最多只能有一个联邦成员能拥有一个给定实例的属性, 该联邦成员负责更新它。

(5) 时间管理。联邦成员在它们自己的线程控制下执行, 因此联邦成员间事件的正确顺序是需要解决的重要问题。在H L A中, 事件的排序用“仿真时间”来表达。仿真时间是一个抽象的概念, 没有必要把它和任何时间表示或时间单位相联系。

(6) 数据分发管理。数据分发管理 (Data Distribution Management, DDM) 服务控制着联邦成员间生产者与消费者的关系。

3 分布式虚拟场景的驱动设计

我们将利用H L A仿真技术, 通过编写联邦成员来完成虚拟场景的驱动。从而将仿真的底层通信和上层的模型控制框架、三维图形绘制分离开来, 形成各自独立的模块, 这样具有良好地扩展性和可重用性。使得我们在不改动绘制代码的情况下增加不同的新的仿真实体, 迅速地开发出逼真的三维效果。

3.1 系统框架设计

为了将仿真的底层通信和上层的模型控制框架、三维图形绘制分离开来, 形成各自独立的模块, 我们引入了H L A技术框架, 其设计框架如图1所示。

图中主要由多个数据驱动联邦成员和一个3 D视景组成, 它们的作用是:

(1) 数据驱动联邦成员。主要进行仿真实体的数学模型计算, 并通过发布订阅关系, 为3D视景联邦成员来提供仿真数据。

(2) 3D视景联邦成员。主要完成虚拟场景的仿真绘制。3 D视景联邦成员通过发布订阅关系, 由R T I的R I T大使 (RTI ambassador) 向3D视景联邦成员大使 (Federate Ambassador) 发送数学模型数据, 这样, 3 D视景联邦成员就可以按照接受到的数学模型数据来对视景中的物体进行绘制。

3.2 建立发表订阅关系

在H L A中, 对象模型模板 (O M T:Object Model Template) 定义了联邦对象模型F O M和仿真对象模型S O M。F O M以一种通用、标准的格式描述联邦成员间的数据交换。S O M是单个仿真应用能提供给联邦的固有的能力描述。

H L A对象模型组成:对象模型标识表、对象类结构表、交互类结构表、属性表、参数表、路径空间表、F O M/S O M术语字典。因此, 在H L A的框架下, 联邦应该有一个联邦对象模型F O M, 该F O M应与H L A的O M T相容, FOM中的所有对象应属于各个成员而不应在R T I中, F O M中描述的对象或交互类的数据, 都是联邦成员之间可能需交换的数据, 实现这些交换数据, 只有借助于R T I提供的服务。

在本模型中, 我们以建立一架飞机的运动驱动为例子建立FOM文件来描述飞机和视景的发布订阅关系。如下表所示。

3.3 驱动建模

驱动建模主要是为各个联邦成员建立仿真的数据模型, 通过上一节我们规定的发布订阅关系以下我们讨论飞机驱动模型的建立。

我们知道, 飞机的运动是通过对飞机的运动模型进行建模来完成。对于飞机的运动和姿态控制主要通过飞机的航向角、俯仰角和滚动角来控制的。设飞机的航向角为H, 飞机的俯仰角为P, 飞机的滚动角为R;它们的范围为:0≤H<360, -90<P≤90, 0≤R≤45。又假设飞机的当前坐标为 (X1, Y1, Z1) ;飞机的当前速度为V, 每一帧的时间为t, 那么飞机运动的下一帧的坐标位置 (X2, Y2, Z2) 可以描述为:

通过建立驱动模型后, 我们可以通过p-RTI提供的语言接口, 进行联邦和联邦成员的创建, 来完成视景的驱动。

3.4 虚拟场景的实现

对于虚拟场景的实现, 我们主要采用OpenGL来完成虚拟场景的漫游, 虚拟场景的实现步骤如下:

首先借助3DSMax建模软件构造出飞机的实体模型。

其次, 在OpenGL环境中, 建立好接受控制数据的控制逻辑及变换。

再次, 通过p-RTI提供的语言接口, 进行联邦的加入和数据订阅。

最后, 在联邦执行中, 接收订阅数据, 实时对联邦成员实体数据进行3D渲染和显示。

4 结束语

采用基于HLA的虚拟场景驱动模型, 不仅使得我们的应用趋于分布式的网络环境, 降低计算机的硬件成本、扩大计算机的仿真规模, 而且, 使得我们在不改动绘制代码的情况下增加不同的新的仿真实体, 迅速地开发出逼真的三维效果。

摘要:随着计算机技术和网络技术的飞速发展, 计算机仿真技术和虚拟现实仿真广泛地应用于军事、公安、水利、消防、农业、林业、城市规划等领域。基于HLA的三维视景仿真能够很好地应用于分布式的网络环境, 为我们提供了一种低耦合的软件体系结构。本文将利用HLA仿真技术, 通过编写联邦成员来完成虚拟场景的驱动。从而将仿真的底层通信和上层的模型控制框架、三维图形绘制分离开来, 形成各自独立的模块, 使得我们在不改动绘制代码的情况下增加不同的新的仿真实体, 迅速地开发出逼真的三维效果。

关键词:HLA,HLA仿真,虚拟场景,3D场景

参考文献

[1]分布式仿真协议HLA概述.http://www.cnblogs.com/yunbo/archive/2006/12/06/584255.html2007-12-05

[2]刘升, 王行愚, 游晓明.基于VC++的OpenGL三维动画仿真及场景漫游的实现.计算机工程与设计[J].2006, 27 (17) :3235~3238

虚拟人是可穿戴设备的眼睛 篇7

任何舞者或医生都透彻的了解, 人类的身体是一台有着多么令人难以置信表现力的机器!300个关节、600块肌肉、以及百分百的自由度!下次你做早餐的时候, 注意自己打开橱柜、倒牛奶时的精巧复杂的动作编排, 注意你的肢体在空间里的移动, 你是如何毫不费力的使用自身重量与平衡的。每天早上你的头脑没有被你那让人敬畏的芭蕾舞似的动作弄得飘飘然的唯一原因就是, 世界上其他人也可以做到这一点。

整个身体大脑命令下灵活自如, 这绝对不像看上去那样简单。——Bret Victor

未来将属于虚拟化和可穿戴

南加州大学 (USC) 创新技术研究院 (ICT) 是虚拟人 (VH) 技术之先驱。ICT的虚拟人工作组创建了虚拟人, 并使虚拟化的看、听、说以及肢体表达都像真正的人类。其中, 人脸的研究是一个特别复杂的过程。人脸包含43块肌肉, 显示我们是否快乐、悲伤、害怕、愤怒、厌恶或惊讶, 这些表情的完成至少需要5块肌肉参与, 但理解和感知真正人类的情感是虚拟角色变得更为真实的关键所在。

虚拟人 (VH) 技术目前被用来帮助改善临床医生与患者的交流互动。

虚拟人:Multi Sense和Sim Sensei

2014年, ICT开发了Multi Sense, 作为面部表情、身体姿势和说话方式的一种量化方法。该算法结合了这些数据, 来创建一个实时情绪状态的完整画面, 以及随着时间而改变的剖面简况。Multi Sense正在开发Sim Sensei——下一代虚拟人平台, 旨在提高医疗决策和患者治疗。

虚拟人, 让患者放下伪装

虚拟人技术可用于角色扮演、培训, 帮助医生改善与患者的互动。但是ICT新的研究获得了一些令人吃惊的结果。新的研究发现患者与虚拟人交谈时, 更有可能诚实的回答个人问题。

最初, ICT通过让临床医生与虚拟人患者交流来开始训练他们。在新的研究中, 交流双方角色互换——患者与虚拟医生进行交流, 由虚拟医生进行常规问诊。从基本情况问起, 逐渐过渡到更加私密的问题, 如“你与自己家人的关系怎样?”

“部分参与者被告知, 他们的谈话完全由是电脑驱动, 而且不会被观察。其他人则被告知, 只有一个在另一房间的操作员监视整个过程。不论哪种情况, 他们的面部表情都会被视频记录, 随后用来分析以及衡量其情感表达水平。”Tom Jacobs介绍, 参与者说“这些, 我永远不会对我的医生承认”。

令人惊讶的是, 虚拟医生能够获得更好的患者数据。在与计算机生成的实体讨论私事时, 患者能够披露更多的信息。为什么?ICT部门内此研究的发起人Gale Lucas称, 参与者并没有觉得他们被观察或判断。他们还报告说这种方式“显着降低了对自我表露的恐惧。”

虚拟人, 病情预测

在该领域里, 英国的研究人员使用虚拟生理人来“模拟人的身体可以与现实中的人类身体非常近似, 任何数据都可能被输入用来创建个性化的健康计划, 并对任何患者病情发展进行预测。”

谢菲尔德大学Insigneo研究所主任Marco Viceconti称:“如果我现在给我的模拟人输入某特定个体的相关数据, 这个模拟人将对该个体的状况作出健康预测。这并不是个体化用药, 这是个性化医疗, 我们能最终对你做出些判断, 并不是因为你与另外几千人具有相同的年龄、性别和疾病, 而是因为你有自己的状况和历史。”

虚拟人是可穿戴设备的眼睛

此前, Brian Eastwood曾写道:可穿戴技术的困境在于数据太多, 而缺乏足够的洞察力。他解释说, 尽管他一直为医疗IT撰文, 但他自己仍然没有使用一个健身追踪器。

我开始思考虚拟人技术如何与可穿戴设备相结合。尽管谷歌眼镜已经使用了语音识别技术, 但并未能达到虚拟人的成熟水平。想象一下, 你自己的虚拟私人教练了解你的情绪和行为, 以及你个人的弱点和激励因素。通过语音识别技术你可以跟虚拟私人教练进行互动, 它能够在方寸小屏幕上显示大量数据。你的可穿戴式虚拟装置能够给出健康改良计划并通过词组表示出了, 最大限度的优化个人健康。

上一篇:小人下一篇:英语课堂的阅读教学