电脑桌面
添加盘古文库-分享文档发现价值到电脑桌面
安装后可以在桌面快捷访问

分布式虚拟现实系统

来源:开心麻花作者:开心麻花2025-09-181

分布式虚拟现实系统(精选8篇)

分布式虚拟现实系统 第1篇

关键词:虚拟化,分布式,LogOS,软件日志管理

1 基于虚拟化的二进制动态翻译平台

Log OS是一个的动态二进制翻译基础平台。它是一个进程级虚拟机。Log OS是一个基于动态翻译框架扩展,针对全系统翻译的的翻译框架,Log OS借助于中间指令实现重定向功能,且可以独立于底层硬件执行程序。同时,Log OS实现了模块划分和接口定义,通过中间指令过滤功能完成对执行代码进行翻译和优化。它可以对内核和用户级二进制文件进行翻译。Log OS总体架构图如图1所示。

LLog OS由一个虚拟机(VM),一个代码高速缓存单元(codeog OS由一个虚拟机(VM),一个代码高速缓存单元(codecache)和一个Logger调用的检测AP构成。VM由一个即时编译器,一个仿真器和一个调度程序器组成。在Log OS取得对程序的控制之后,VM协调它的组成部分并执行程序:调度器启动JIT编译器和检测程序代码。在目标代码高速缓存单元中存储被编译的代码。emulator是用来进行需要VM特殊处理的系统调用的。因此它只能获取用户状态下的代码。当程序在Lo-g OS中执行结束后,Logger完成了对程序的插桩后与程序分离,并将所得到的不同粒度的软件运行日志存放在本地文件中。

2 基于虚拟化的分布式软件日志管理系统VDSL设计

2.1 软件日志管理系统VDSL总体架构

在动态二进制翻译平台Log OS基础上,提出了一种虚拟计算环境中的分布式软件日志管理系统VDSL,以实现对整个分布式虚拟集群的软件日志管理。VDSL定了日志记录的数据结构,这种数据结构可以保存每个节点的所产生的软件日志。进而在传输前被VDSL同一封装为相同的文件格式,以保证各节点日志交互与服务器的日志汇总。VDSL总体架构如图2所示。

构建三个层次(表示层、功能层和数据层)日志系统模型,表示层指的是服务软件的用户API部分。它的功能只负责实现用户、应用程序间的通信,不负责业务的实施。在功能层,具体实现业务处理功能。表示层像功能层发送数据请求,同时访问数据层获取信息以完成功能层的请求。完成请求后结果返回给发送请求的表示层。数据层就是My SQL数据库管理系统。管理员负责管理对My SQL中数据的读写。数据库中的数据文件存储着来自每个虚拟节点日志信息。数据库必须要实现能对海量数据的快速查找,检索和更新。所以,用户使用SQL语句,从功能层将数据插入到数据层中的My SQL数据库。整个三层服务请求层次如图3所示:

2.2 VDSL系统功能应实现以下功能:

1)在线调试。对于大部分处理海量数据的分布式软件系统。若想在其出现故障时进行调试或数据收集,必须停止系统的运行,在线下进行操作,给业务服务带来很大的损失。VDSL系统可以实现分布式软件系统的不中断在线调试。将动态二进制翻译平台Log OS部署在虚拟化平台上分布式软件系统中的每个虚拟节点上,使用日志服务实现服务软件的在线调试。

2)实现软件日志的可配置特性。支持用户自己配置的软件日志记录粒度级别。将Log OS设计的依据调试检测要求的可定制的的平台。Logger将按照事先定制好的要求自动来记录分布式服务平台中服务软件运行时产生的数据流。具体不同粒度的定制,则完全由容错系统的管理员设定。而不是由日志记录平台记录所有的数据流,这样会占用过多的硬件资源。当配有VDSL的分布式系统投入使用之后,我们可以在运行时根据业务要求来随时改变Logger的日志记录粒度

3)通过VDSL分析整个分布式系统运行状况。不同于单主机节点上的日志分析,在大规模分布式系统中各个节点之间都紧密关联,互相影响。整个VDSL系统不能仅仅局限于一个单节点之上的日志功能,利用时钟同步功能对整个分布式系统中各个节点上的软件日志进行精确排序。

4)良好的扩展性且易于管理。在基于虚拟化的分布式系统中,VDSL系统实现了统一管理各节点的软件日志文件。为用户和管理员提供良好的前台操作界面,实现日志选择功能,包括日志的查询、日志的删除等统计功能。

2.3 日志管理模式

随着海量数据的分布式软件系统运行会产生庞大的日志文件,在VDSL系统中,日志存储方式采用数据库表,在数据库服务器的库表中,存储日志信息,用户和管理员可以对此统计和查询。VDSL系统日志的管理方式采用故障服务器统一管理日志,收集所有虚拟节点上的软件日志。将各虚拟结点的软件日志通过时钟同步功能排序整合存储到数据库中,以供后续用途。在日志文件传输中,大部分的分布式软件系统平台中,对每个服务软件的每个进程,一般是写在各自的日志文件中。如系统中有K个进程,K个进程的日志文件都是单独写,则各个进程之间就不会产生互斥。但是,在进程读写日志文件的时候,就会产生读写互斥。日志文件中的内容被传输代理读取进,就需要来解决进程中读写互斥。在分布式软件系统运行时,每个节点上都运行着多种服务对象。如果用对文件加锁的方法来应对服务对象和传输代理之间的读写互斥问题,则会阻塞各应用进程的日志记录过程,对系统的运行效率造成很大的影响。为了解决这个问题,以提高系统中应用服务软件的日志记录速度和并发度,因此,在设计中考虑了一种“双缓冲区”的策略。设计如图4所示。

对图中K个进程,当系统运行时,分别对应两个相互独立缓冲区,对每个节点上的每个进程产生的数据流将写入缓冲区1,若缓冲区2非空,则缓冲区1继续处理进程的请求。如果出现缓冲区2为空的情况,则将缓冲区1推送到缓冲区2的位置,且停止往缓冲区1中写入日志数据。传输代理只需处理缓冲区2中的日志数据即可。同时,系统再分配一个空缓冲区作为新的缓冲区1继续处理进程提出的日志请求。这样传输代理就不需要与各进程之间进行交互,避免了读写互斥,加快了处理日志文件的速度。

2.4 日志格式的设计

在VDSL日志系统中,进程在执行时产生的各种数据通过软件日志来记录。为了更好地通过日志信息来完成故障审计与性能分析,在VDSL日志系统中,需要进行日志记录的格式设计。为方便用户,对日志记录的格式设计,必须满足用户可配置,分布式软件在运行过程中用户可以自行配置所要记录的日志数据信息。为了保证VDSL日志管理系统的通用性,日志记录格式定义如表1所示。

在VDSL日志系统中,为保证日志文件的格式相同。将日志数据进行封装成统一格式的日志文件。日志记录结构和日志文件结构之间的关系如图5所示。

对日志文件数据在写入之前,要通过CORBAAny类型进行对日志文件数据在写入之前,要通过CORBAAny类型进行封装,封装后是八位位组序列,VDSL采用纯二进制数据传输方封装,封装后是八位位组序列,VDSL采用纯二进制数据传输方式。在整个传输过程中,日志信息是完全透明的,但日志文件式。在整个传输过程中,日志信息是完全透明的,但日志文件无法使用文本编辑器打开,确保了日志文件在传输过程中的安全性。当日志文件传输结束,开始日志信息的解封装。把本日志文件的属性值通过CORBA中提取,最后把日志格式还原为发送前,完成了软件日志的格式处理。保证了日志文件的安全,不被篡改。

2.5 时钟同步设计

在VDSL日志系统的管理平台中,如果无法实现同步各个结点的物理时钟。将会给整个VDSL日志系统的管理增加难度。因此,在设计中,采用了一种内部同步算法。即在VDSL日志系统中,设置一个节点作为主节点,从节点的时钟信号由主节点根据自己本地的当前标准时间来周期性的持续发送,并对每个从节点的本地时间进行记录。各个从节点计算主节点发送的标准时间与从节点本地时间之间的时差,计算时差返给主节点。主节点通过估算各时钟信号的往返时间,进而对每个从节点返回的时差值进行修正。然后告诉各从节点,如何修正各自的时间。最后实现整个VDSL日志系统中各节点的时钟同步。

3 VDSL日志系统性能的测试

通过日志服务将服务有效的分解,充分利用双缓冲区、多线程技术,实现各虚拟结点服务软件的日志在分布式系统中的传输速度。通过测试VDSL系统运行和不运行时的性能对比,来检验VDSL对云容错平台的性能影响大小。

分布式存储系统 Katta 第2篇

Katta可用于大量、重复、索引的碎片,以满足高负荷和巨大的数据集。这些索引可以是不同的类型。当前该实现在Lucene和Hadoop mapfiles

让大型高负荷的索引变简单

能为许多具有大型Lucene或Hadoop Mapfile 的索引碎片的服务器提供服务

在不同服务器上复制碎片以保证性能和容错性

支持插件化的网络拓扑

故障管理

快速、轻量级、易于集成

与Hadoop集群工作良好

Apache License,Version 2.0

分布式虚拟现实系统 第3篇

虚拟仪器是基于计算机的新一代测控仪器,它的灵活多样性使其比传统电子仪器有更广泛的应用领域。虚拟仪器通常是由PC机、测控模块和专业应用软件组成。测控模块包括各种插卡式或外置式的信号调理板、数据采集板卡和控制板卡,也包括带计算机接口的测量仪器。虚拟仪器由用户自己定义,用户可以自由地组合计算机平台、硬件、软件以完成所要求的特定功能。相对于传统仪器,虚拟仪器有性能高、扩展性强、开发时间短和完美集成等多种优势。

本文利用虚拟仪器技术,采用CAN总线通信,构建高效低成本的可组网分布式城市景观照明控制系统。它以C8051F040为核心,辅助以CPLD器件,不但可以同时完成多路景观照明的测控,并且能够将检测到的照明系统运行信息自动记录和保存下来。此外还设计了软件管理系统,通过以太网和局域网管理计算机和多个测控节点。灵活组成分布式景观照明控制系统,实现对多个照明现场的监控,统一管理、分析和数据处理。

1 PWM亮度控制原理

为寻求视觉上良好的效果与动态特性,高亮度LED在景观照明中被越来越多地使用。它具有颜色丰富、驱动电压低、寿命长和功耗低等优点,将逐渐取代霓虹灯。由于人眼存在视觉惰性,所以当周期光信号频率高于临界闪烁频率时,眼睛对周期光信号的视觉感觉就像恒定光源一样,视觉亮度为:

式中,L(t)是周期光信号的实际亮度,T是光信号周期。

式(1)表明,对于大于临界闪烁频率的周期光信号,眼睛感觉的视觉亮度是实际亮度的平均值。取L(t)为常数L时,周期光信号的视觉亮度为:

式中:t是每个周期中光刺激时间,设D=t/T。

式(2)表明,使用PWM技术,即通过周期性地控制光脉冲宽度,改变占空比D,就可以实现对LED亮度的控制。PWM方式控制灵活,易于数字化实现。

2 系统结构与原理

系统结构如图1所示,包括现场监控网络系统与远程网络监控系统两个组成部分。现场监控网络主要利用CAN总线实现对景观照明现场各节点工作状态及各被控照明设施的控制与检测,并进行实时处理与现场显示;远程网络监控系统基于成熟的以太网技术,实现对多个照明现场测控网络系统的远程监控。现场网络上位机均配置有PCI9810CAN接口卡,上位机软件采用LabVIEW8.20编写。

3 硬件设计

3.1 节点硬件设计

景观照明现场测控网络中,测控节点选用C8051F040为核心处理单元构建。该处理器集成有BOSCH CAN控制器,主频可达25 MHz,片内资源丰富,包括A/D、D/A、PCA、UART、I2C、SPI、通用I/O、TIMER等集成单元,能满足大多数测控系统接口需要,且价格便宜,开发调试方便。现场测控节点设计如图2所示。

图中M为MAX6956,该芯片是低电压、低功耗的I2C串行接口LED驱动器,具有9个输出端口O0~O8,每个端口可以提供50 m A的额定电流;通过数据线SDA和时钟线SCL可与主控制器进行速度高达400 kb/s的I2C串行数据传输;BLINK输入一个外部时钟控制可以控制LED闪烁周期;地址输入口AD0分别与GND、V+、SCL和SDA相连,可以产生4个不同的从设备访问地址;同时,MAX6965还有一个片内32 kHz晶振,产生LED亮度控制的PWM定时时钟脉冲信号。每个输出端口都能进行8位LED亮度控制,其中,4位在主控制器寄存器中,主控制器的地址为0x0E,用于初步设置所有输出端口的脉宽,范围为PWM周期的1/15~1,其余4位在各自的输出寄存器中,再把初步设置的占空比等分成16份。此外,全部输出端口可以使用相同的PWM设置,具有240级亮度控制[1]。

但是,MAX6965在作为从器件时仅有4个地址可以选择。如果使用一个I2C总线,则一个处理器仅能连接4个MAX6965从器件。使用一个处理器去控制4个LED驱动器不仅浪费资源,而且增加系统成本。在本系统中,采用CPLD器件EPM7128TQ100构成多路数字开关,用于MCU在不同I2C总线上的数据切换,每一个I2C总线上可以接入4个地址不同的LED驱动单元。EPM7128TQ100最大I/O数量为84。系统中,一组LED驱动器(4个不同地址的MAX6965)仅需要将SDA与SCL信号通过CPLD数字开关分开,复位信号使用同一个I/O端口,由处理器通过CPLD进行控制。同时,将处理器的6路PWM信号接入CPLD,可以对一些需要直接进行脉宽调制的设备进行直接控制。因此系统可控制的LED驱动模块数量最大为37组(148个)。

3.2 CAN网关及局域网设计

在景观照明系统中,为达到良好的视觉效果,控制信息的通信量往往较大,节点间以及节点与上位机之间需要进行大量实时数据交换,因而要求CAN通信网络具有较高的通信效率。若将所有的节点挂在一个CAN网络上,易导致总线负荷过大,ID优先级低的节点不能及时获得总线使用权,影响系统实时控制性能。本系统将节点分成几类,形成具有不同优先级的网络。实时性要求高的节点组成高优先级网络,实时性要求一般的节点组成低优先级网络,利用CAN网关实现同一现场全部节点数据共享。因此,选用集成有5个CAN模块的微控制器MC9S12DP256[2]与驱动器MC33989构建网关。MC9S12DP256的5个CAN接口可以用来连接5个不同的CAN网段构成星型网络。本设计仅使用其中3个:第1个与高优先级网段相连;第2个与低优先级网段相连;第3个与现场CAN网段相连。在现场CAN网段上连接一台工控机,该工控机内配置一块CAN接口卡PCI-9810。工控机一方面实现对CAN现场测控网络的初始化和管理,另一方面完成现场测控网络与远程监控网络的连接,满足上层系统远程测控需要。CAN网关及局域网设计参照图1。

4 系统软件设计

系统软件设计包括照明测控节点软件设计、CAN网关软件设计与工控机软件设计。

4.1 照明测控节点软件设计

测控节点通过CAN总线传输数据,同时根据接收到的远程指令动作,完成测控任务,软件流程图如图3所示。

4.2 CAN网关软件设计

CAN网关一方面隔离各网段内的数据通信,另一方面根据需要将报文从一个网段实时传输给与CAN网关相连的目标网段。

根据CAN总线的特点,只要合理地分配报文ID[3]就能以最小的CAN网关资源开销保证上述功能的实现。被设计的报文ID分配如图4所示。

将需要CAN网关转发的报文的ID设置为优先级较高的值(如ID100~ID150)。设置网关的两个CAN端口参数,使其仅对这些需要通过网关的报文进行响应,将其转发到目标网段,转发时可根据需要按预先设计更改ID号(即优先级转换),保证数据传输的实时性。以高优先级CAN网段为例,它使用该类报文经CAN网关与低优先级CAN网段通信。CAN网关收到该类报文后,查内部预设报文ID表,将11位高优先级网段ID更改为表中所对应的低优先级CAN网段ID(ID151~ID200),组成新的报文发送至低优先级CAN网段,完成高、低优先级CAN网段的数据交换任务(图4b)。低优先级网段访问高优先级网段时,工作原理同上(图4c)[4]。

4.3 上位机软件设计

工控机软件采用LabVIEW8.20进行编写,功能包括CAN接口卡初始化、向现场节点发送控制命令与参数、监视网络中节点的在线状态、接收以太网远程指令、存储历史数据、维护测控数据库及其他增值功能。对于CAN卡的操作是通过调用Virtual CAN Interface(VCI)函数库完成的,该函数库是专为ZLGCAN设备在PC上的使用而提供的应用程序接口,库里的函数由ControlCAN dll中导出,在LabVIEW8.20中可以直接使用,无需额外的操作。

本系统充分利用了CAN总线的技术优势,为城市景观照明提供了高效灵活的测控平台,与LabVIEW的结合进一步扩大了其应用范围。该系统满足城市景观照明的基本要求,具有良好的人机交互功能,可扩展性强。同时,该系统具有对照明系统特殊参数自动报警处理功能、长期记录测量数据、自动打印输出等功能,可应用于现场长期无人职守等特殊测控场合,具有良好的推广价值。

参考文献

[1]Maxim Integrated Products.9-Output LED driver with intensity control and Hot-Insertion protec-tion[DB/OL].http://www.maxim-ic.com.2005.

[2]Motorola Inc.MC9S12DP256B Device User’s Guide V02.13[Z].2002.

[3]NASA.System standard for the AGATE airplane avionics data bus V1.0[Z].2001.

分布式虚拟环境中的DR算法研究 第4篇

近年来, 随着虚拟现实技术和网络技术的发展, 基于虚拟现实和网络应用的分布式虚拟环境 (Distributed Virtual Environment, DVE) 在诸多领域取得了快速发展。目前, 分布式虚拟系统已经在许多领域得到了应用, 包括:军事仿真系统, 计算机协同设计与制造、远程教育、娱乐以及电子商务等。

分布式虚拟环境是指多个用户在一个基于网络的计算机集合中, 利用计算机产生多维的、适用于多用户应用的、相关的虚拟环境。DVE作为虚拟现实技术与网络通讯技术的结合, 必需要满足觉察 (Awareness) 、实时反馈 (Responsiveness) 和数据一致性 (Consistency) 三个基本性质, 而这三个性质的共同要求是能以最快的速度传播大量的信息。这在局域网上仿真少量实体的行为是可行的, 但在广域网上仿真大量实体就很难做到。如同Steve Benford在ACM通讯上提出的:DVE研究目前面临的第一大挑战, 就是分布式虚拟环境的规模扩展性问题。

现在解决这个难题有两类方案, 第一类是通过增加硬件的方法实现系统扩容, 主要包括多服务器并行分区方法。这种方法的基本思想是以牺牲硬件费用为代价实现系统扩容。另一类方法是通过减少通信负载来实现系统扩容, 主要包括DR (Dead Reckoning) 算法、兴趣管理技术和组播技术。

1 DR算法

1.1 DR算法的基本原理

DR算法是分布式虚拟环境中普遍使用的一种技术, 它最先应用于分布式交互仿真 (Distributed Interactive Simulation, DIS) 系统。使用DR算法的目的在于:一方面在保证仿真精度的前提下, 降低仿真实体发送状态更新信息的频率, 降低网络中的通信量;另一方面克服网络中固有的传输延迟, 对网络延迟进行补偿, 保证仿真进程的实时性要求。

在分布式虚拟环境中, DR算法的原理如下, 每个仿真节点都维护着两类模型:一类为节点内部本地实体的动力学的高精度和低精度DR模型;另一类为可能与该节点发生交互作用的其他仿真节点中的远程实体的DR模型, 不同仿真节点中同一仿真实体的DR模型是相同的。这样对于发送节点, 在通过本地实体的高精度动力学模型得到实体逼真运动轨迹的同时, 还利用其低精度的DR模型前向外推该仿真实体的位置和姿态。只有当再者计算结果的偏差超出某一预先设定的值 (阈值, Threshold) 时, 该节点才将此时刻该实体的状态更新发送给其他仿真节点, 同时更新其内部的DR模型。对于接收节点, 当未收到远程实体的状态更新时, 一直根据其DR模型前向外推这些远程实体的位置和姿态, 直到接收到新的状态更新信息为止 (如图1所示) 。

1.2 DR算法的模型和参数

DR算法是一种基于时间的对实体状态 (位置、姿态、速度等) 的前向外推方法, 可用对时间的积分来表示, 如

DR算法中的参数有阈值、平滑步长 (Step) 和平滑时间 (Smoothing Period) 。阈值的大小对仿真系统的性能有着非常重要的影响, 若阈值太大则直接影响仿真精度;若阈值太小将使网上传输的信息量增加。平滑步长越小, 平滑时间越长则图像越平滑, 与实际轨迹误差越小, 但系统开销也越大。

2 常规DR算法分析

目前, DR算法研究主要集中在仿真实体预测模型建立和阈值设置上。仿真实体预测模型建立研究是为了能对仿真实体运动进行准备预测, 进一步减少信息传输量。阈值设置研究是为了兼顾系统对运动精度和可扩展性的要求, 在满足运动精度要求的情况下尽量提高系统规模。例如固定阈值DR算法、多层DR算法和智能DR算法。

2.1 固定阈值DR算法

固定阈值DR算法将阈值设置为某一定值, 当状态预值和实际值的误差没超过这一阈值时, 不传输状态变化信息, 而当误差超过此阈值时则传输变化信息。当没有状态变化信息传到时, 该实体就保持原状态值, 用状态预测模型来推断新状态值。固定阈值DR算法可以提高DVE系统的可扩展性和健壮性, 用户操作的响应时间也很短。但固定阈值DR算法的缺点也很明显, 它不能根据用户当前所从事的任务进行调整。

2.2 多层DR算法

多层DR算法将固定阈值DR算法和兴趣区域 (area of interest, AOI) 方法结合, 对AOI内的实体采用较小的阈值, 对AOI外的实体采用较大的阈值, 使距离近的实体能有较高运动精度。但多层DR算法仅以实体间距离作为确定运动精度的标准, 在很多场合还是很不合理, 仿真实体的方向、体积等同样需要考虑。

2.3 智能DR算法

智能DR算法利用实体两个连续运动信息之间的时间间隔, 当间隔变大时采用较小阈值, 反之采用较大阈值, 在系统运行过程中保持相对稳定的带宽需求。但智能DR算法不能根据系统对运动精度的要求来对阈值进行调整, 当系统对运动精度要求不高时不能有效节省带宽, 对运动精度要求高时不能通过提高带宽占用来保证精度要求。

3 模糊DR算法

模糊DR算法是在多层DR算法基础上, 增加对实体其他属性的考虑, 通过模糊一致关系为实体属性分配权值, 并计算实体之间的模糊关联度, 根据实体间模糊关联度的不同, 设置不同的阈值。模糊DR算法不仅全面考虑实体的属性, 还能根据具体系统的特点进行调整, 在满足仿真系统精度要求的前提下, 最大限度进行信息过滤。

3.1 模糊关联度

模糊关联度是全面考虑实体属性后, 对实体之间关系做出的衡量, 任意两实体间模糊关联度的计算步骤如下所示:

(1) 区分出仿真系统中有用的属性对, 并为每个属性对确定相应的隶属函数。

(2) 设属性对数量为k, 计算每个属性对的权值w (u1) , w (u2) , w (u3) , , w (ut) 。

(3) 通过权值合并公式

计算两实体A、B间的模糊关联度。

3.2 模糊DR算法步骤

模糊DR算法针对多层DR算法仅以实体间距离作为确定运动精度标准所带来的不合理问题, 通过模糊关联度综合考虑实体属性, 然后根据实体间模糊关联度的不同, 设置不同阈值, 以下是算法的步骤:

(1) 确定阈值分配函数, 用它建立模糊关联度与阈值之间的对应关系。例如:

式中:d (A, B) 为实体A、B之间的模糊关联度, ë (A, B) 为实体A、B之间的阈值。

(2) 通过预测模型计算实体运动状态并和实际运动状态相比较, 求出相应偏差。

(3) 源节点对每一可能目标节点计算对应实体间的模糊关联度, 并通过阈值分配函数确定相应阈值。

(4) 根据偏差和阈值判断是否向目标节点发送运动信息。

3.3 性能评价

在仿真系统中对模糊DR算法的效果和性能进行评价, 并与多层DR算法进行比较。

将8~128个实体随机分布在100m200m的二维空间内运动, 初速度为0~2.0m/s的随机值, 初加速度为0~1.0m/s2的随机值, 初始运动方向为-1800~1800的随机值, 整个运动持续200s。仿真过程同时还使用了内、外层半径分别为 (20, 90) 和 (50, 200) 的多层DR算法。

定义1:设仿真过程中产生的运动信息数量为A, 传输的运动信息数量为T, 则称RF= (A-T) /A;RF∈[0, 1]为过滤率。

定义2:设仿真过程中产生的运动信息数量为A, E是被过滤了但从系统精度考虑需要传输的运动信息数量, 则称RA= (A-E) /A;RA∈[0, 1]为准确率。

定义3:设整个仿真过程的过滤率为RF, 准确率为RA, 则称RAF=RARF;RAF∈[0, 1]为准确过滤率。

从表1中可以看出:在不同实体数下, 模糊DR算法比多层DR算法准确过滤率高, 稳定性好。仿真结果表明模糊DR算法可在满足精度要求的基础上最大限度地提高系统可扩展性。

4 基于知识DR算法

基于知识DR算法是在固定阈值DR算法的基础上把实体从事的工作类型考虑进去。DVE系统中的仿真实体要从事不同类型的任务, 而不同任务对传输延迟和实体动作再现精度有不同的任务要求。常规DR算法在设计中没有考虑到任务要求, 因此不能很好地满足DVE系统的要求。基于知识DR算法就是在分析不同任务要求的基础上, 建立任务知识库判断实体所从事任务类型, 调整DR算法阈值。这种算法不仅满足任务要求, 还能有效解决系统可扩展性问题。

4.1 工作类型

根据实体在分布式虚拟环境中所从事工作同步交互程度的不同, 可以对虚拟环境中的协同工作进行如下分类:

(1) 高级别协同。此类协同工作对实体动作再现精度要求非常高, 不允许有失真。

(2) 一般级别协同。此类协同工作对实体动作再现精度要求一般, 允许有少量动作失真。

(3) 低级别协同。此类协同工作对实体动作再现精度要求低, 允许有一定动作失真。

(4) 不协同。此类协同工作对实体动作再现精度基本上没有要求, 允许出现较大动作失真。

4.2 任务知识库

根据工作类型就可以对分布式虚拟环境中实体的工作进行划分, 同时实体在环境中可以在不同类型工作之间进行切换。把某实体所有任务中所用到的工具作为任务标志物, 按工作类型分类并赋予相应的DR算法阈值。所有的任务标志物定义集中在一张表中就形成了系统的任务知识库。例如士兵在战场上要用到武器, 进行移动时要用到汽车, 隐蔽时要用到障碍物及战场上其他物体。如表2所示。

4.3 性能评价

在仿真系统中对基于知识DR算法的效果和性能进行评价, 并与固定阈值DR算法进行比较。

仿真的士兵在水平面上沿着以 (0, 0) 为圆心半径200m的圆以32m/s的速度沿逆时针方向做圆周运动一周。在圆周上分别有四个任务标志物体, 它们的名称及坐标分别是, 武器 (200, 0) , 障碍物 (0, 200) , 汽车 (-200, 0) , 其他物体 (0, -200) 。当经过任务标志物体的时候, 用户将原来拿在手上的任务标志物体丢弃, 并拣起新的任务标志物体, 系统每隔200ms触发一次用户行为感知部分和场景感知部分, 检查系统有没有发生变化, 如果发生变化则进行信息过滤, 如果变化信息不能被过滤则由信息传输部分进行传输。评价参数为过滤率RF、准确率RA和准确过滤率RAF。

从表3中可以看出:在固定阈值DR下, 阈值越小发送的信息量越小, 准确过滤率越低, 而基于知识DR算法可以在发送信息量少的情况下保持高的准确过滤率。仿真结果表明基于知识DR算法可在满足精度要求的基础上最大限度地提高系统可扩展性。

5 结束语

分布式虚拟环境的可扩展性是DVE系统需要解决的首要问题, DR技术就是通过有效地减少通信负载来实现系统容量的扩充。本文从DR算法的模型和原理入手, 针对常规DR算法存在的问题, 提出了模糊DR算法和基于知识DR算法。这两种DR算法在实体预测模型建立和阈值设置上对旧的DR算法进行改进, 有效得减少了信息传输量, 缓解了DVE系统用户增加、规模扩大所造成的系统过载, 从仿真测试结果来看, 能很好的平衡了DVE系统扩展性要求和精度要求。

参考文献

[1]LU T C, LEE C C, HISA W Y.Supporting large scale distributed simulation using HLA[J].ACM Transactions on Modeling and Computer Simulation.2000.

[2]钱雪平, 赵沁平.基于关联空间的数据过滤方法[J].计算机学报.2002.

[3]潘志庚, 姜晓红, 张明敏.分布式虚拟环境综述[J].软件学报.2000.

[4]S.STACHINAK, W.STUERZLINGER.An Algorithm for Automated Fractal Terrain Deformation[J].ACM Transactions on Graphics.2004.

[5]ZHU W, GENG Z.A bottom-up inference of loss rate[J].Compu-ter Communications.2005.

分布式虚拟现实系统 第5篇

分布式虚拟实验平台是一种能让在不同地域的众多实验者通过网络在同一时间访问同一实验室完成同一实验项目的虚拟实验环境。他们可以不受时间、空间限制互相合作地完成同一实验,也可以实时地单独完成实验。分布式虚拟实验平台是分布式虚拟现实技术的典型应用,而分布式虚拟现实技术是虚拟现实(Virtual Reality,VR)技术与现代先进网络技术结合的产物。它既有虚拟现实技术的特征,又有分布式系统的特点,也就是说它不但有良好的异构性和交互性,还具有良好的实时性和时空一致性。分布式虚拟实验平台的开发涉及分布式系统设计技术、网络技术和分布式数据库技术等。但最重要的是应该有一个兼容性和扩展性良好的结构框架。本文在对CORBA技术深入研究的基础上,提出了一种基于CORBA技术的分布式虚拟实验平台结构框架。该平台由于CORBA技术的操作系统无关性和开发语言无关性而具有良好的兼容性和扩展性,对分布式环境中操作系统的异构性进行了很好的屏蔽。

1 CORBA技术简介

通用对象代理体系结构CORBA(Common Object Request Broker Architecture)是对象管理组织(OMG)所定义的用来实现大量硬件、软件之间互操作的解决方案。CORBA允许应用之间在分布式环境下相互通信,从而实现互操作、互调用。CORBA1.1于1991年由OMG发布,其中定义了接口定义语言(IDL)以及在对象请求代理(ORB)中实现客户对象与服务器对象之间交互的编程接口(API)。CORBA2.0于1994年发布,规定了各个供应商之间的ORB通信规则。CORBA标准主要分为三个部分:接口定义语言(IDL)、对象请求代理(ORB)以及ORB之间的互操作协议IIOP。其中ORB是对象之间建立Client/Server关系的中间件。使用ORB,客户可以透明地调用一个服务对象上的一个方法,而无需关心该服务对象的网络地址、操作系统等。ORB截获这一调用同时负责查找实现服务的对象并向其传递参数、调用方法返回最终结果。这样,ORB在异构分布环境下为不同机器上的应用提供了互操作功能,并无缝地集成了各种对象系统。

2 基于CORBA技术的网络虚拟实验平台构架

通过以上对C/S和B/S两种网络构架的比较,本网络虚拟实验平台采用B/S结构构建。在学校局域网环境下,客户可以利用Web浏览器从局域网服务器中下载CORBA客户端程序。客户可以利用客户端程序提供的接口,通过ORB与相应的服务端程序进行互操作,完成相应的功能。其结构模型如图一所示。

2.1 客户端的实现

客户端是直接面对用户的接口部分,主要完成与用户的交互,即人机交互界面。客户端通过浏览器从Web服务器下载HTML页面及嵌入在页面中的Applet小程序。在HTML页面中,用户可以进行基本信息的交互(譬如注册、登录、修改密码等)。最主要的是HTML页面中嵌有实现各种虚拟实验项目的Applet小程序。Applet是CORBA与Web结合的桥梁。一方面它可以作为浏览器的内嵌对象与浏览器中的其他对象进行交互;另一方面它可以通过嵌入其中的CORBA客户存根(桩)(stub)调用远程CORBA服务器上对应的对象框架(skeleton),服务器端的CORBA对象根据调用请求完成相应的功能,将结果返回客户端的CORBA对象,从而实现了分布式交互。因此,在客户端,与CORBA服务器的交互操作由嵌入在Applet中的CORBA客户对象来完成,由ORB代理来实现。客户端的ORB使用IIOP协议与CORBA服务器的ORB通信,传递客户端的对象服务请求。这样对于客户对象来说,只需要像调用本地方法一样调用对象服务就可以了,ORB代理实现的操作对客户对象而言是透明的。

2.2 服务器端的实现

服务器端包括Web服务器和CORBA服务器。Web服务器主要提供HTML页面供客户浏览。同时在一些页面中嵌入提供虚拟实验功能的CORBA客户存根,这些存根随HTML页面中的Applet下载到客户端,为客户端对虚拟实验功能的调用提供了CORBA客户对象。CORBA服务器接收到客户端的ORB代理请求后,通过对应的对象框架找到在服务器端已注册的CORBA服务对象,实现相应的业务处理。然后,将处理结果返回给客户端。具体业务处理是通过调用后台虚拟实验构件库来实现。

3 CORBA构件开发

CORBA技术是当今主流的三大构件技术之一。所谓构件是指软件系统的基本单元,它由一个或多个在逻辑上紧密关联的对象封装而成。实际上它也是一种开发人员不必改变软件源代码就可以跨平台运行,并在各种软件环境下实现重用的、具有某种功能的独立软件。构件技术能很好地解决分布式计算环境中异构数据源间的互联共享和互操作问题,实现各种应用程序间的协同工作。此外,利用构件的重构性还可以大大提高软件系统的开发效率,增强系统的稳定性和开放性,大大提高系统的可扩展性和可维护性。其中ORB是CORBA的基础,是在分布环境下CORBA所使用的、基于对象模型的软件总线。它的基本职责是解决对象引用的请求和建立应用对象之间的联结,并通过标准接口,使这种联结独立于所使用的硬件和软件平台,从而保证了平台的透明性以及操作系统、网络协议和编程语言的透明性。

第一步:面向对象建模阶段。

在该阶段,你必须确定所开发的应用程序应该包括的对象,定义它们的接口,明确它们的关系。这个过程通常比较困难,需要反复多次。COBRA技术不可能使开发生存周期的这部分更容易。

第二步:使用IDL语言描述对象的接口。

在上面的步骤中,我们已经从模型中抽象出了服务对象及其属性和操作。在这个阶段,我们将使用IDL语言对对象的属性和操作进行描述,从而实现封装。IDL语言是一种描述性的中性语言,可以映射成各种实际编程语言。

第三步:编译IDL文件,产生客户方和服务方框架。

通常,ORB实现提供IDL编译器,这些编译器遵循将IDL文件编译成客户机存根和服务器框架所要求的语言的映射规则。对于C++来说,使用IDL语言来描述对象的公共接口,创建idl文件之后,开发人员使用idl编译器来产生C++框架代码,包括客户方的框架代码(stub代码)和服务方的框架代码(skeleton代码)。对于本文使用的starbus3.0来说,可以使用如下命令进行编译:

idl编译器编译xxx.idl文件,产生以下四个文件:

●xxx.hxxx类的声明。

●xxx.cppxxx类的实现,即stub代码,负责将本地请求转换为网络请求。

●xxx_skel.hxxx_skel框架类的声明。

●xxx_skel.cppxxx_skel框架类的实现,即skeleton代码,负责将请求传递到对象的具体实现。

第四步:声明和实现能具体化CORBA对象的伺服类。

在ORB能够调度一个请求之前,每个CORBA对象必须由一个伺服类的实例来具体化。所以必须定义伺服类,该伺服类继承自服务方的框架类,并实现它们的成员函数(它表示它们的IDL方法),以便完成为客户机程序提供CORBA对象的服务。

第五步:编写一个服务器main程序。

与所有C++程序一样,main函数提供一个C++CORBA应用程序的进口和出口。对服务器来说,这个main函数必须对ORB和POA进行初始化,并创建一些伺服程序,安排具体化的CORBA对象的伺服程序,最后开始监听请求。

4 结束语

该网络虚拟实验平台由于采用了CORBA技术,具有良好的分布式计算能力。在分布式异构环境下,该系统具有良好的可扩展性、可维护性和灵活性,有较大的推广价值。

摘要:随着高等教育规模的不断扩大,学生规模与实验室规模的矛盾日益突出,尤其是对于工科专业而言。为了缓解这种矛盾,网络虚拟实验室的开发就变得尤为重要。针对这种需求,提出了一种基于CORBA技术的分布式网络虚拟实验平台的构架,详细阐述了构架的组成和CORBA构件的开发流程。由于在系统开发过程中应用CORBA构件技术,使系统具有良好的可维护性、可扩展性和灵活性。

关键词:虚拟实验,分布式环境,构件技术,通用对象代理体系结构

参考文献

[1]朱其亮,郑武.CORBA原理及应用[M].北京:北京邮电大学出版社,2001.

[2]贺志明.基于CORBA与XML的课程实验程序自动测试系统[J].上海工程技术大学学报,2004,18(3):225-229.

[3]唐权.基于CORBA及多层C-S模式的分布式软件控制xi同[J].重庆工学院学报(自然科学版),2008,22(1):150-153.

分布式虚拟现实系统 第6篇

关键词:虚拟实验室,分布式组建,浏览器/Web服务器,数字签名

现代计算机技术和网络技术为远程教育的发展提供了强有力的技术保障, 尤其是www浏览器技术和数据库技术的发展使得师生之间不受地域和时间的限制, 利用Internet就能进行实时或非实时的教与学, 从而实现了跨时间、跨空间的学习, 这是传统教育无可比拟的。然而在远程教育中, 由于学生不能在学校实验室里做实验, 理工科技术类课程的实验课的网上学习将会非常困难, 如何在网络课件中解决好这个问题对于进一步办好远程教育具有重要现实意义。本文研究利用DCOM (Distributed Component Object Module) 技术, 将单机版的虚拟电路实验室系统升级为网络版的虚拟电路实验室系统。

1 虚拟实验室

以电子线路实验虚拟实验室为例。用户通过界面在计算机屏幕上选用各种元器件搭建电路、测试波形, 并得到实验数据, 用模拟真实实验的方式使用户掌握电路方面的知识。从功能上讲, 虚拟实验室系统分为两个模块:一个是仿真计算部分, 它是整个系统的核心部分, 负责输入数据的处理、大量的模拟计算, 并向输出界面部分传送结果;另一个则包括输入界面和输出界面两部分, 输入部分完成用户电路搭建时的界面处理, 从某种角度来讲它完成了数据的采集, 同样, 输出界面完成结果的输出, 如波形输出、数据输出等。

为满足远程教学的需要, 必须将单机虚拟实验室系统改造为可在网络上运行的系统。从通信的成本来讲, Socket是最合适的;但是Socket本身是面向通信的, 有复杂的通信细节需要处理, 而且Socket服务器对于客户来说很难提供稳定的应用程序接口, 一旦服务器发生了变化, 客户必须相应地变化, 不利于客户和服务器单独开发和维护。另外一种方法则是本文采用的基于DCOM技术的ActiveX控件实现的网络虚拟实验室。

2 DCOM技术在网络虚拟实验室中的应用

从程序设计的角度看, DCOM的结构是:对象是构建组件的基本元素, 而服务器为组件提供进程内/外的服务, 提供了组件工作的场所。对象是一个自包含的结构, 提供一定的功能, 它不能直接被客户使用, 客户必须通过接口访问它;对象必须通过接口来表现自己的功能, 甚至对象的创建都不能由客户直接完成, 必须借助一个特殊的对象即类厂来完成。

对于客户, DCOM可以是一个组件对象, 也可以是一个支持COM的普通程序, 它通过COM API来调用类厂和创建对象, 并增加引用计数来决定对象的生存期, 这样COM库和COM服务器会在适当的时候卸载。虽然C++对象和COM对象有本质的区别, 但是它们在二进制一级的构造上有一定的相似性, 都使用VTable;而且, C++的对象描述能力使它很容易创建COM, 因此C++是实现COM的最佳选择。Visual C++在COM编程方面提供了两种方式:一种是MFC ( Microsoft Foundation Class) ;一种是ATL (Active Template Library) 。MFC是以嵌套类的方式来实现COM的;ATL则大量地使用了模板, 采用多重继承的方式来实现COM。但不论是MFC还是ATL, 都为开发软件提供了极大的方便, 很多处理都由MFC和ATL共同完成。本文将介绍以MFC为基础设计的网络虚拟实验室。

2.1 ActiveX对浏览器/Web服务器功能的扩充

ActiveX技术在B/W构架上的应用是以ActiveX控件的形式出现的。ActiveX控件是一个非常快的小型ActiveX Automation Serve, 分为客户端控件和服务器端控件。

客户端控件是面向用户的, 以可视化的图形视频、文字界面或者音频形式在浏览器上出现, 但它可能并不是浏览器的组成部分, 这些控件原先是放在服务器上的。当浏览器发出请求时, Web服务器回传页面, 由浏览器负责解释。在解释过程中, 若发现页面中要求调用ActiveX控件时, 则用该控件在页面中注明的ID值先在本地的注册表内进行查询, 若已经存在, 则说明该控件已经在本地安装, 然后通过注册表中的相关信息直接调用该控件;否则就要根据页面中所提示的该控件所在服务器上的路径到服务器上去下载并且自动完成在本地的安装注册, 使该控件成为本地资源供今后使用, 这就是所谓的“一次下载, 永久使用”。客户端控件一旦在本地安装完毕, 就等价于一个可执行的应用程序, 它能访问使用本地的系统资源, 甚至进行远程访问, 由此带来了安全性问题。

服务器端控件是位于Web服务器上与Application Server进行交互的控件。它是面向服务器的, 在这种控件上运行的操作对于浏览器端是透明的。它始终位于服务器上, 不会像客户端控件那样被下载, 也不能以可视或可听方式让服务器管理者监控, 只能完全在服务器上运行。该控件是Web服务器与Application Server的接口, Web服务器可以作为客户端通过它便捷地访问和使用Application Server上的资源和服务, 又由于控件对浏览器透明, 因此对于最终用户是安全的。具体分析情况如图1所示。

2.2 用ActiveX构建虚拟仪器

事实上, ActiveX控件即由原来的OLE控件或OCX控件发展而成为现在能够运行在Web页面上的软件组件, 这也就是说把Active X控件嵌入到Web页中, 利用VBScript (一种微软IE的脚本语言) 等脚本语言编写程序代码, 使得创建的应用程序能够供客户端下载运行, 实现Internet逐步从信息平台向应用平台的转变。

软件是虚拟仪器的核心, 基于上述软件组件的概念, 可将仪器按功能划分成若干模块:采集模块、分析模块、显示模块;如果对仪器软面板进行划分的话, 可将其视作一系列开关、旋钮和波形显示面板等的集合。如果将各个实现不同功能的模块创建成ActiveX控件, 那么构造虚拟仪器的工作便是通过一种“粘合剂”将各种 Active X控件按照工程要求“粘合”在一起, 当工程要求改变时, 只需添加某些控件并加以重组, 从而充分体现了虚拟仪器不同于传统仪器的一些优点:用户自定义, 可重复利用, 大大节省开发和维护费用, 等等。

如前所述, Active X技术支持应用程序在网络环境下的运行, 那么通过ActiveX控件以及Web页面的开发工具 (如微软的 ActiveX ControlPad) 可创建以网页形式通过 Internet/Intranet发布的虚拟仪器。在 web服务器上开发一个基于web页的虚拟实验室程序, 其中在客户端包括了两个主要的ActiveX控件, 一个用于完成用户电路搭建时的界面处理, 另一个用于显示数据, 在客户端只需配备web浏览器 (如 Internet Explorer) 。当浏览器接收到有关嵌入在Web页面中的ActiveX的组件信息, 它首先要使用Classid属性, 并调用CoGetClassObject API函数来查询Windows注册表, 如果浏览器已经被安装并注册, 它会使用Classid属性启动ActiveX组件的一个例程;只有当这个属性不与Windows注册表中的GUID相应时, 才使用internet download service进行下载、检验并安装该控件。在服务器端放置核心控件即运算控制器, 它的主要功能是仿真计算。运算控制器是整个系统的核心部分, 负责输入数据的处理以及大量的模拟计算, 并向输出界面传送结果。将计算部分单独做成一个控件并放置在服务器端的优点是:提高了安全性, 即可在处理前检查用户身份, 可对有效期和权限进行有效的设置;提高了可维护性, 即易于升级, 用户可以不必关心它的内部处理;加强了与数据库的交互。

2.3 网络服务器负载平衡的构建

在多用户的情况下, 当用户的数量达到一定程度的时候, 多个用户在主机上创建的对象实例会使服务器的压力增大, 从而造成服务器性能下降, 影响服务质量。当然, 可以使用多个服务器来提供服务, 人工地平衡多个服务器上的负载, 但这将给维护带来极大的困难, 一旦用户群动态地变化, 服务器的负载平衡将被打破。显然, 仅用这种没有任何分布式策略的分布式COM/DCOM是不足以平衡负载的。虽然DCOM提供了位置透明性, 但是没有提供分布式的策略, 分布式策略需要软件开发者来提供, 因此, 提供负载平衡是DCOM组件开发的一个重要任务。为了平衡负载, 建立了如图2所示的系统结构。

模拟计算COM对象时为了避免多次重复地创建和释放, 本文采用服务对象, 即已创建的COM对象实例。该系统中还引入了简单的调度对象。调度对象是一个中间对象, 它以STA (单线程 Apartment) 方式工作, 负责建立服务对象Simulator, 并维护主机列表 COSERVERINFO Server[N]、对象列表 ISimulate* p1Simulate[N]和对象状态列表 Int State[N]。主机列表保存主机名字, 对象列表存放对象接口指针, 状态列表是一个对象的状态值。对于对象来讲, 它有三种状态: (l) 未创建或创建失败; (2) 忙; (3) 闲。三个列表都以全局变量的形式出现。由于使用了STA, 可以不必考虑对象的同步问题, 但是多个同类对象访问全局变量仍然可能造成对象在线程上的安全问题。因此, 本文使用临界区 (Critical Section) 来同步。此外, 调度对象是一个可连接对象, 它必须与服务对象通信井获得服务对象的状态。

调度对象负责在主机列表指定的主机上创建服务对象并初始化, 所有的客户在需要服务的时候应向调度对象发出请求。当有客户向调度对象请求服务时, 调度对象检索主机列表、对象列表和状态列表, 在选定主机上查询并检查对象的有效性, 获取服务对象接口指针并返回给客户, 然后客户与服务对象通信。根据COM的特性, 此时客户和服务对象之间的通信是直接进行的, 不经过调度对象。调度对象根据什么原则来获取某个主机上的对象是一个策略上的问题, 实际应用中必须考虑主机的负载平衡。对于复杂的系统, 这种策略相当的复杂, 为简单起见, 本文采用以执行任务的对象在主机上的数量多少作为平衡负载的标准, 在客户使用完毕对象后, 对象激发一个调度对象事件, 调度对象负责将对象状态复位。因此, 调度对象是一个可连接对象, 实现了通过一个接收器接收来自服务对象的事件。

此外, 调度对象还负责将服务对象卸载。应该看到调度对象的引入增加了网络通信量, 但对于采用分布式策略的系统来说是必要的。实际上调度对象在很大程度上起到了目录服务的作用, 如果必要的话, 调度对象加上适当的模块可以作为一个简单的中间管理模块, 比如控制用户登录、限制用户数量等。

3 系统的安全性讨论

虚拟实验系统中要有大量的数据交互, 同时ActiveX控件可以不受限制地访问本地资源。由于对本地资源的操作和网络数据传输有潜在危险, 网络的安全性已成为人们关注的焦点。在Internet上若不采用安全措施, 进行信息传输时, 计算机和服务器之间进行传输是很可能延伸到其它计算机上的, 而其它计算机就有可能访问在该计算机和服务器之间传送的信息。为了保证网络的正常运行, 需要对传送的信息采取安全保障措施。

对网络数据传输一般采取公用密钥体制、数字签名和数字认证等方法来保护数据的安全。公用密钥方式用一个公用密钥和一个只有用户自己知道的私有密钥进行信息加密和解密, 即使用一对相关的密钥 (即密钥对) 来进行信息的加密和解密:使用密钥对中的公钥进行加密的消息只能用该密钥对中的另一个密钥 (私钥) 来解密;相反使用密钥对中的私钥加密的消息只能通过与之相对应的公钥才能解密。该机制的主要优点在于不存在任何双方共享密钥。实际上, 谁手中拥有公钥的问题已并不重要, 重要的是只有相应的私钥才可以解开密文。另外, 还可利用密钥对中私钥与公钥的对应关系来认证发送方用户身份的真伪。

数字签名是证明文件作者的身份和在文件从发送者到接收者的传输中没有被破坏的唯一数值。数字签名是由特殊的标识软件通过hash数学操作遍历来标识文件。hash操作将计算这一数值, 该数值不能通过hash数值直接推导出。创建这一数值后, 标识软件将用文件加密者 (即用户) 的个人密钥加密hash为核实签名;文件的接收者首先运行软件, 并用发送者的公用密钥来解密签名的hash值, 解密hash值之后, 如果数值与以前的相同, 接受者的软件会通知用户这一签名是正确的。

4 总结

基于DCOM技术的网络虚拟实验室与传统的单机版相比有以下不同:在B/W构架中, 客户端只有一个浏览器, 因此其应用程序界面是高度统一的;客户端与服务器之间基于TCP/IP协议通信, Browser与 Web之间按标准的HTTP传输数据;Browser对用户需求的响应是以页面为单位进行的;Browser只提出请求服务所要求的参数, 而具体的请求命令在Web Server或Application Server上解释、生成并运行。网络虚拟实验室由于在技术上有明显的优势, 易于升级和更新, 彻底改变了传统的实验教学模式, 实现了教育资源共享, 提高了设备的利用率, 具有广阔的前景。

参考文献

[1]COMMR C, CADMAN J.COM/DCOM primer plug[M].Indi-anapolig:Samg Publicbing, 2004:347-380.

[2]T ELGANAL.A public key cryplosystem and a singature schemebased or discrete logarithms[J].IEEE, Trans.Inform.Theory, 2005 (10) :259-264.

[3]PAN AIMIN.COM principle and application[M].Beijing:QingHua University, 2003:521-543.

[4]朱晓华, 冯玉田, 章玉签.基于组建技术的虚拟仪器开发方法的研究[J].上海大学学报, 1999, 5 (4) :45-49.

分布式虚拟现实系统 第7篇

计算机软件与硬件技术的飞速发展导致了计算模型的不断演化。继分布式计算、并行计算和网格计算等模型之后, 计算机工业界提出了云计算[1]模型。云计算通过互联网将超大规模的计算存储资源整合起来, 形成一个虚拟的计算资源池, 并以服务的形式按需提供给用户。

随着云计算平台上用户及各种类型应用的增加, 如何有效利用系统范围内的资源成为一个关键问题。在云计算环境下, 计算机相互连接共同处理任务, 会出现一些计算机的负载过重, 一直处于忙碌状态, 而另一些计算机的负载则过轻, 一直处于空闲状, 大大降低了系统范围内资源的利用率。

负载均衡[2]算法是实现资源有效利用的重要手段, 负载均衡就是将计算机的资源进行重新分配, 使资源得到合理的利用, 获得最佳的资源利用率。负载均衡是实现资源有效共享和利用的重要手段, 因此一直是云计算研究的重点。

虚拟化技术[2]为负载均衡方案提供了一种有效的解决办法。通过将服务封装在虚拟机中并映射到各台物理服务器上, 虚拟化技术能够根据负载的变化进行虚拟机和物理资源的重映射, 从而动态地实现整个系统的负载均衡[3]。虚拟机和物理资源的重映射可以借助虚拟机的动态迁移技术来实现, 将包括操作系统在内的整个运行环境从一台物理主机迁移到另一台物理主机上。虚拟机迁移机制因其资源颗粒大及应用无关性等优点成为实现负载均衡算法的一种有效机制。

1 相关研究

虚拟机迁移[4]的主要目的是实现虚拟机与主机的重映射, 提高系统的资源利用率, 增强系统可靠性, 避免主机故障给用户带来的损失。

现在, 已有大量基于虚拟机迁移的负载均衡研究, Khanna等[5]监控主机和虚拟机的资源 (CPU和内存) 使用情况, 一旦发现某台主机资源的使用超过了提前设定的阈值或是某些用户服务等级协议SLA (Service Level Agreement) 受到威胁, 系统则进行虚拟机迁移, 将主机中的某台虚拟机迁移到另一台主机中。Sandpiper系统[6]为虚拟机迁移提出了黑盒和灰盒策略, 能够自动地进行资源监控和热点侦测, 一旦发现热点, 即进行虚拟机迁移, 实现主机和虚拟机的重映射。Bobroff等[7]提出了一种虚拟机迁移算法, 该算法主要用来保证随机的服务等级协。然而这些研究都采用集中式的方案进行虚拟机迁移, 如图1所示, 迁移模块主要分为两个部分:中央控制引擎和本地迁移代理, 分别位于中央管理服务器和各主机上。中央控制引擎从整体上掌握数据中心中各平台资源的使用情况, 根据策略, 发起虚拟机的迁移, 实现数据中心整体范围内的负载均衡, 提高资源利用率。

但是集中式方案存在一个很大的缺陷, 即中央控制引擎故障会造成整个数据中心负载均衡的失效, 而且中央控制引擎需要监控所有主机的资源使用情况, 容易造成系统瓶颈, 降低了系统的可靠性。因此本文提出了一种分布式的虚拟机迁移方案, 该方案建立了主机负载均衡状态域模型, 划分主机的负载均衡域, 由各主机的迁移代理自行监控其资源的使用情况, 一旦超载, 便发起虚拟机迁移过程。而且该算法借鉴了蚁群算法中信息素的思想进行主机搜索, 并对信息素的最大最小值进行了限制, 增强了全局搜索的能力。分布式的虚拟机迁移方案克服了集中式方案中单点故障造成整个负载均衡失效的缺陷。

2 迁移算法设计

2.1 虚拟机迁移过程

虚拟机迁移主要涉及以下四个重要方面:

(1) 监测策略:用于实现对负载指标的监测[8], 决定何时、如何收集负载信息, 并根据收集到的负载信息计算负载情况。

(2) 触发策略:就是虚拟机进行迁移的触发策略, 决定何时进行虚拟机迁移。现在大多数负载均衡算法的迁移策略都是基于特定阈值的, 即当虚拟机的某个指标超过提前设定的特定阈值时, 就会触发虚拟机的迁移。

(3) 选择策略:就是在负载过重的节点上选择虚拟机进行迁移, 虚拟机的迁移需要完成虚拟机状态和资源的迁移, 包括CPU、内存、I/O和硬盘等信息。所以在进行迁移时, 要选择合适的虚拟机, 以减少虚拟机迁移带来的系统开销。

(4) 迁移策略:为待迁移虚拟机确定合适的迁移目的节点的策略, 目的主机的选择可以基于不同的标准, 例如随机选择、最快反应速度、首次适应或最佳适应等。

2.2 负载均衡状态域模型

本文主要考虑四种主机资源:CPU、内存、带宽和硬盘。为了衡量主机的负载均衡情况, 定义变量:

根据主机的负载均衡值, 将其分为四个状态域, 如图2所示。

其中M2是危险区阈值, 危险区即为平衡区与过载区之间的缓冲区域, 当服务器处于危险区域时应提前采取措施以防止其进入过载区, 因为处于过载区的服务器进行虚拟机迁移时, 由于虚拟机迁移需要占用一定的CPU和网络带宽等资源, 可能导致资源不足而迁移失败。M3是过载区阈值, 一旦主机的本地迁移代理监测到其负载超过该值时, 即发起虚拟机迁移过程。而处于低负载区的主机代表其负载较低, 可以作为虚拟机迁移的目的主机。

2.3 蚁群优化算法

蚁群算法[9]模仿蚂蚁寻食时的群体行为, 采用人工蚂蚁行走路径来寻找问题可行解。人工蚁群中各个蚂蚁相互独立在问题解空间中搜索, 以概率方式选择解的部件, 并在其所选位置留下一定信息素。后续的蚂蚁再次进行搜索时, 会以较大概率选择信息素较多的解, 并留下更多的信息素, 形成正反馈机制。照此方法进行多次迭代搜索后, 信息素会在问题解的最优路径上逐渐增多, 而其他路径上的信息素会随着迭代次数增加而挥发, 后续蚂蚁的搜索路径逐渐向最优解收敛。在整个寻优过程中虽然每只蚂蚁都能寻找出一个问题的解, 但选择能力有限, 然而系统各个个体间通过信息素进行信息交换, 形成集体自催化行为, 最终找到问题的最优解。

蚁群算法被用来解决许多实际的组合优化问题并取得了很好的应用效果, 比如最优路径、智能机器人、分配和负载均衡问题等等。Messor[10]系统很好地应用了蚁群算法进行负载均衡。Messor系统中的蚂蚁可以分为两个过程:Search-Max和SearchMin。在Search-Max过程中蚂蚁随机游荡步数m找到一个最高负载的节点, 然后该蚂蚁转变到Search-Min过程游荡步数m去寻找最低负载节点。找到高负载和低负载节点后, 蚂蚁会对它们进行负载均衡。在Search-Max和Search-Min过程中, 蚂蚁每经过一个节点, 会将已经过节点的信息留在该节点中。当其他蚂蚁经过该节点时可以利用它进行更高效地搜索, 以更快地搜索到高负载和低负载节点。但是由于云计算环境的动态性, 这些信息并不是长久有效的, 应该进行实时的更新。

2.4 触发策略

主机的本地代理每隔一段时间T就会获取其资源 (CPU、内存、带宽和硬盘) 的使用情况, 并根据最近获取的m个数据来预测n个资源未来的使用情况。本文采用经典的时间序列方法来进行预测, 预测方法如式 (3) 所示:

Lt代表时间t资源的使用, εt代表躁音扰动。分别计算m个最近获取数据的平均值 (cpunowaverage, memorynowaverage, netnowaverage和disknowaverage) 和n个预测数据的平均值 (cpufutureaverage, memoryfutureaverage, netfutureaverage和diskfutureaverage) 。然后按如下公式分别计算其平均值:

计算完成后按照式 (1) 、式 (2) 计算主机的负载均衡情况。当主机的Lhost超过过载区阈值M3时便会触发一次负载均衡操作, 产生带有一定内存空间的蚂蚁进行游荡, 蚂蚁游荡的步数为m。

2.5 选择策略

选择策略就是在负载过重的节点上选择虚拟机进行迁移, 现存的选择策略, 有的迁移占用主机资源最多的虚拟机, 有的迁移占用主机资源最少的虚拟机, 而这些策略考虑因素过于单一。本文提出的选择策略, 不仅考虑了导致主机负载过高这一因素, 而且考虑了迁移成本因素。

首先, 本地迁移代理按照以下公式计算资源的使用变化趋势:

以上四个变量分别代表了CPU、内存、带宽和硬盘的使用变化趋势, 值最大的变量即为导致主机负载过高的主要因素。然后决定需要迁移的虚拟机

1) 如果CPU的使用是导致主机过载的主要因素:

定义变量VML, 按照式 (12) 计算主机中每台虚拟机的VML。

VML值最大的虚拟机即为需要迁移的虚拟机。

2) 如果内存的使用是导致主机过载的主要因素:

占用内存最大的虚拟机即为需要迁移的虚拟机。

3) 如果带宽的使用是导致主机过载的主要因素:

定义变量VML, 按照式 (13) 计算主机中每台虚拟机的VML。

VML值最大的虚拟机即为需要迁移的虚拟机。

4) 如果硬盘的使用是导致主机过载的主要因素:

定义变量VML, 按照式 (14) 计算主机中每台虚拟机的VML。

VML值最大的虚拟机即为需要迁移的虚拟机。

2.6 迁移策略

(1) 蚂蚁游荡规则

将该虚拟机的状态信息记录到蚂蚁的内存后, 蚂蚁接着进行游荡, 蚂蚁搜索服务器时, 并不是完全随机地进行寻找, 它根据节点的信息素浓度决定下一个游荡的节点。本文借鉴蚁群算法中信息素浓度的思想, 但是其应用的方法不同, 蚁群算法中, 信息素浓度越大, 该路径被选择的概率就越大。在本文的应用场景中, 蚂蚁经过某一路径后, 表示该路径上的节点已经进行了负载均衡操作, 为了使蚂蚁能尽量搜寻所有的节点, 达到整体的负载均衡, 本文对信息素的应用为:信息素浓度越大被选择的概率越小, 初始情况, 每个节点拥有相同的信息素浓度。时刻t, 蚂蚁在节点i选择节点j的概率如式 (15) 所示:

τij (t) 表示节点i观察到的节点j的信息素浓度, advoids (t) 表示时刻t时蚂蚁的禁忌列表, 蚂蚁每经过一个节点就将该节点加入到禁忌列表中以防止进行重复搜寻, netij (t) 作为启发因子, 用来考虑节点i和节点j之间带宽的影响, α和β体现了信息素与启发因子在蚂蚁选择中的相对重要性, α≥0, β≥0。

为了及时反映信息素的更新变化, 本地更新策略会实时地修改节点的信息素浓度。只有蚂蚁遍历过的节点信息素浓度才允许增加, 比如蚂蚁在节点i时选择了节点j, 那么节点i中关于节点j以及节点j中关于节点i的信息素浓度都要进行增加。这是为了使后续蚂蚁进行全局范围的搜索, 实现全局的负载均衡。全局信息素更新方式如式 (16) 所示:

其中ρ是全局信息素挥发参数, 且0<ρ<1, Δτij (t) 为信息素增加量, 确定如下:

其中netij (t) 为时间t时节点i和节点j之间的带宽, Ljhost (t) 为时间t时节点j的负载均衡值, 即当迁移完成后节点j剩余的资源越大, 其再次被选择的概率就越大, γ和λ是调和参数, 本文取γ=3.5, λ=1。

(2) 信息素限制

为了防止节点信息素变成负值或信息素值太大, 影响搜索过程, 节点的信息素限制在[τmin, τmax]之间, 超出范围的值将被设定为上下限:

这样可以避免某些节点上的信息素浓度远远小于或大于其他节点, 使算法进行更高效地搜寻, 防止出现算法重复遍历某些节点或是某些节点得不到遍历。

首先对于信息素上限τmax取值进行推导。设节点的初始信息素浓度为τij (0) , 节点最大的信息素浓度, 应该是在每次路径选择时都选择该节点。在进行了n次迭代搜索后, 根据文献[10]可知最大最小信息素为 (假设节点间的带宽始终为Δτij) :

可见τijmax是一个动态值, 当每次获得的节点间带宽不同时, 便对其进行更新。其中n代表蚂蚁要搜寻的服务器个数。

2.7 匹配迁移

蚂蚁游荡完后, 蚂蚁的内存中记载着待迁移的虚拟机列表{Vm1, Vm2, , Vmi}和目的主机列表{Ser1, Ser2, , Serk}, 其中, i+km, m为蚂蚁的游荡步数。接下来进行虚拟机与主机的匹配, 决定迁移方案。

本文提出适合度FitSer-Vm (以下简写为Fitij) 概念, 适合度是指待迁移虚拟机需求性能和主机空闲性能之间的适合程度, 公式为:

其中, Ser Acpu, Ser A内存, Ser Anet和Ser Adisk分别代表主机j剩余的CPU, 内存, 带宽和硬盘资源。Vmcpu, Vm内存, Vmnet和Vmdisk则分别代表虚拟机i需要的CPU, 内存, 带宽和硬盘资源。若Fitness (Vmi, Serj) <0, 则说明虚拟机需要的资源超过了主机的剩余资源。

虚拟机与主机进行匹配的算法描述如下:

1) 虚拟机排序:对虚拟机进行匹配的顺序进行排序, 处于过载区而发起负载均衡过程的虚拟机优先进行匹配。其他的虚拟机按照对资源的需求及性能等级进行排序。

2) 计算适合度:按照式 (21) 计算优先虚拟机与各主机的适合度, 适合度最大的主机即为该虚拟机迁移的目的主机, 输出结果。

3) 资源更新:确定了虚拟机迁移的目的主机后, 对该目的主机的剩余资源进行更新。

4) 若得到的适合度值都小于0, 则表示没有主机满足该虚拟机的资源要求, 产生新的蚂蚁将该虚拟机记录到蚂蚁的内存中, 若还有匹配不成功的虚拟机, 则直接将虚拟机记录到蚂蚁的内存中。

5) 按照排序选取下一需要迁移的虚拟机, 重复步骤2) , 步骤3) 和步骤4) 。

6) 重复步骤5) 直到所有的虚拟机都匹配完毕。

7) 进行虚拟机迁移, 若存在未匹配成功的虚拟机则进行新一轮的负载均衡过程。

以上的匹配算法如图3所示。

3 仿真实验与分析

本文采用澳大利亚墨尔本大学的网格实验室和Gridbus项目提出的云仿真平台Cloud Sim作为实验仿真工具, 使用版本为Cloud Sim-2.1.1。本文修改了Vm Allocation Policy类中的虚拟机放置方法allocate Host For Vm (Vm vm) , 实现其对虚拟机列表的放置, 并同时需要修改Host类, 在其中增加变量和方法, 增加对信息素的支持, 以实现蚂蚁搜索算法。其他类如Vm和Datacenter等也需要进行相应的修改。修改完成后用Ant工具重新编译Cloud Sim, 获得仿真环境。并在此基础上编写仿真程序。

首先建立一个具有20台主机 (Host) 和20个虚拟机 (Vm) 的数据中心 (Datacenter) , 主机的配置参数统一为:CPU为400MIPS, 内存为4GB, 硬盘为250GB, 带宽为2000Mb/s。将服务器划分为四个区域的阈值设为M1=0.45, M2=0.7, M3=0.8。蚂蚁游荡的步数设为m=6。

进行实验验证, 在服务器上开启的虚拟机如表1所示。

实验中的20台服务器, 6台处于缓冲区, 3台处于平衡区, 其余的11台都处于低负载区。为了实验需要设定每台虚拟机每秒有5%的概率增加5%的负载量。

3.1 算法参数选定分析

表2为挥发系数ρ对于算法结果的影响。在实验环境中进行4次负载均衡操作, 改变ρ的值, 分别计算负载均衡等级值。

首先计算负载均衡值, 如式 (22) 所示:

其中, Mik代表第i台虚拟机在第k秒 (k=1, 2, , 40) 时的负载。即为数据中心在第k秒时的平均负载。接着计算负载均衡等级值, 如式 (23) 所示:

不同的ρ值得到的负载均衡等级值如表2所示, 从表中可以看出初始时随着ρ减小, 负载均衡等级值逐渐减小, 但是超过0.6时, 又不断增大, 这是因为当ρ值太大或太小时, 各节点信息素值间的差异不明显, 降低了信息素在指导蚂蚁搜寻过程中所起的作用。

3.2 负载均衡等级比较分析

为了进一步验证方案的有效性, 将本文提出的方案与采用最快反应速度的虚拟机迁移方案及不采用任何负载均衡措施的方案进行比较。取参数ρ=0.6, 每隔1秒统计整个数据中心的平均负载, 实验进行40次。实验结果如图4所示。

4 结语

本文提出了一种分布式的虚拟机迁移方案, 借鉴了蚁群算法中信息素的想法, 但是对信息素的使用方式进行了修改;制定了蚂蚁信息素更新策略, 并对信息素的最大最小值进行限制, 提高了算法收敛性。提出虚拟机与主机的适合度概念, 进行虚拟机与主机的重映射, 提高资源利用率。最后, 用Cloudsim工具对该算法进行了实验仿真, 实验证明, 该算法在系统负载均衡和资源利用率方面明显优于现有的基于最快反应速度的负载均衡方案, 而且具有更好的收敛性和扩展性。因此本文提出的算法可以很好地解决云计算环境下负载均衡问题。

参考文献

[1]Above the clouds:a Berkeley view of cloud computing[EB/OL].http://www.eec.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.html.

[2]王庆波, 何乐, 赵阳.虚拟化与云计算[M].北京电子工业出版社, 2010:115.

[3]Gagan Aggarwal, Rajeev Motwani, Zhu An.The load rebalancing problem[C]//SPAA03:Proceedings of the 15th annual ACM symposium on Parallel Algorithms and architectures, Jun 2003.

[4]Clark C, Fraser K, Hand S, et al.Live migration of virtual machines[C]//Proceedings of the 2nd ACM/USENIX Symposium on Networked Systems Design and Implementation (NSDI) :273-286.

[5]Khanna G, Beaty K, Kar G, et al.Application Performance Management in Virtualized Server Environments[C]//Proc.of Network Operations and Management Symp, 2006.

[6]Wood T.Black-box and Gray-box Strategies for Virtual Machines Migration[C]//Proceedings of the 4th Int’1-Conference on Networked Systems Design&Implementation.IEEE Press, 2007.

[7]Bobroff N, Kochut A, Beaty K.Dynamic Placement of Virtual Machines for Managing SLA Violations[C]//Proc of the 10th IFIT/IEEE International Symp.on Integrated Network Management, 2007.

[8]Mendel R, Tal G.Virtual machine monitors:Current technology and future trends[J].IEEE Computer, 2005, 38 (5) :39-47.

[9]Zhang Zehua, Zhang Xuejie.A Loading Balancing Mechanism Based on Ant Colony and Complex Network Theory in Open Cloud Computing Federation[C]//2nd International Conference on Industrial Mechatronics and Automation, 2010:240-243.

[10]Montresor, et al.Messor:Load-Balancing through a Swarm of Autonomous Agents[C]//Proc.Of 1st Int.Workshop on Agents and Peer-toPeer Computing, Itatly, 2002.

[11]Paola Pellegrini, Daniela Favaretto, Elena Moretti.On MAX-MIN Ant System’s parameters[M].2006.

分布式虚拟现实系统 第8篇

近些年来,随着电网中分布式发电资源DER(Distributed Energy Resources)的不断增多,国内外学者针对DER的研究也越来越深入。其中,针对风力发电的研究与应用尤为突出。在欧洲,风力发电的发电量已在总发电量中占据了很高的比例。其中,西班牙风力发电占总发电量的11%,丹麦风力发电所占比例更是达到了20%[1]。虽然风力发电以其环保、成本相对其他可再生能源较低的优势得到了较好的应用与发展,但风力发电有着很明显的短板,限制了其更加广泛的普及与应用[2,3]。风力发电的不确定性与预测误差大的特点,给电网运营商造成了很大的困扰。风力发电一般在夜晚出力达到最大,而此时的电力需求较低,且电价也较低[4,5]。因此,从经济学角度而言,相对于其他成熟的发电形式,风力发电在电力市场中则缺少了一定的竞争优势。

针对以上问题,许多国家都给予风电高于市场价格的上网补贴。但是随着风电的发展规模越来越大,对风力发电给予上网补贴显然不是一个长久之计。基于此,需要研究一个更适用于风力发电发展的策略,使其可以更加合理地参与到电力市场的运营中。

近年来国内外研究学者提出了虚拟发电厂VPP(Virtual Power Plant)技术[6]。VPP可认为是通过先进的通信技术与软件管理系统将配电网中的DER聚合与优化,作为一个特别的电厂参与到电网运行中,进而协调电网与DER的矛盾[7,8]。储能作为平衡风力发电的一种有效手段得到了广泛共识,但是储能因其高成本的缺点,不能得到广泛的推广使用。但电动汽车作为电力系统中的一种储能应用形式有着很大的潜力,其在配电网中可与分布式风力发电单元配合,进而平衡分布式风力发电的不确定性。为此,本文利用电动汽车储能解决风力发电的不足,联合配电网中的分布式风力发电单元与电动汽车形成VPP,参与到日前电力市场中。

针对储能与其他发电资源联合发电的形式,文献[9]分析了储能与风电联合发电的经济效益,并利用动态规划的方法分析了该组合形式在电力市场环境下的运行形式。但该文献中的储能与风力发电属于同一所有者,而本文所提出的利用电动汽车作为储能形式的方法,电动汽车与风力发电的所有者不属于同一个所有者。文献[10]研究了微型燃气轮机与风力发电的协调运行机制,使之形成一个VPP,进而研究VPP的在线协调控制机制。文献[11]基于多代理方法研究了以聚合形式出现的电动汽车向电网输送电能的机制与方法,但主要是以监管者的角度进行分析研究,而非供电方角度。文献[12]考虑风电电源与电动汽车充放电负荷的双随机性,以最大化动态条件风险备用为目标,建立了电力系统短期充裕性多阶段决策模型,实现了在购电成本约束下,电力公司购买不同类型电源的配比决策和电动汽车调度方案优化。文献[13]计及电动汽车数量与风电机组出力的不确定性,同时在一系列假设的基础上研究了含电动汽车和风电机组的VPP协同竞价问题。

本文通过对VPP市场化建模,利用滚动时域分析方法,分析对比相对于无电动汽车参与的由配电网中分布式风力发电单元所构成的VPP,电动汽车与分布式风力发电单元联合所构成的VPP在效益方面的表现。针对电动汽车储能电池参与VPP后会造成损耗的问题,对其补偿机制进行了分析研究。

1 市场环境下VPP模型建立

本文所提及的市场环境下VPP的参与方为配电网内分布式风力发电单元与电动汽车。因参与VPP运行后,电动汽车受VPP的统一控制,因此,本文不考虑电动汽车充放电的随机性问题。同时,由于风电的预测准确性较差,本文所指VPP参与的市场为日前电力市场。

在日前电力市场中的第k-1日,VPP上报分时段的第k日电量供应策略。其中风力发电的出力基于第k日的天气预报,同时考虑到愿意参与到第k日VPP中的电动汽车的数量,风力发电运营商计算出在日前电力市场中,第k日最有利的供应策略所需的电动汽车的数量。在第k日的实际运行中,基于VPP的实际运行情况,同时依据前一日所制定的合同,为了保证VPP运营效益最大化,虚拟发电厂运行控制中心VPPCC(Virtual Power Plant Control Center)进行持续优化。

如前所述,VPP于第k-1日上报分时段的第k日的供电策略,设z(n)为第n个时段VPP预测可以产生的电量,电量z(n)可以直接输送至电网,也可向电动汽车充电,或二者同时进行。此外,在相同时间段内,VPP也可利用之前存储在电动汽车中的电量,与z(n)一起向电网传输。具体在第n个时段采取什么样的方式,取决于当时的市场价格以及利用电动汽车储能所产生的费用。

1.1 电动汽车补偿机制

一般情况下,配电网中的分布式风力发电单元与电动汽车的所有者不同,分布式风力发电单元一般属于风电运营商,而电动汽车则属于具体的电动汽车拥有者。同时,由于电动汽车参与到VPP中势必会使充放电的频率增多,这就会使电动汽车的电池寿命缩短。所以,建立一套电动汽车补偿机制,使得电动汽车车主愿意参与到VPP运营中就显得尤为重要。

在本文中,电动汽车的补偿机制并不是通过直接向电动汽车车主发放补贴的方式体现。在电力市场电价机制中有零售电价与批发电价,零售电价通常要高于批发电价,通过利用这2种电价之间的差异则可建立电动汽车补偿机制。需要指出,在建立补偿机制时并不需要考虑输配电费用,因为该费用已作为前期电动汽车充电设备安装费用的一部分向电动汽车车主收取。

对于VPP而言,其向电网输电时是按批发电价计算获得收益的。而对于电动汽车车主而言,当电动汽车充电时,电网是按零售电价计算收取费用的。如果电动汽车参与到VPP运行中,那么VPP为其充电将不再收取费用。作为回报,电动汽车需要参与到VPP的整体运行中,成为VPP的一部分。例如,设批发电价为0.2元/(k W·h),零售电价为0.4元/(k W·h)。VPP每向电动汽车输送1 k W·h的电量,将会减少其向电网供电所获得的0.2元的收益,但电动汽车车主则免去了向电网缴纳0.4元的费用。虽然VPP减少了向电网的售电量,但VPP可通过利用这种补偿机制所争取到的电动汽车储能,形成一个范围更大、更加稳定的VPP,进而更好地参与到电力市场中以获取更高的收益。

1.2 电动汽车收益模型

为了体现参与VPP运行后对电动汽车电池使用寿命的影响,本文利用文献[14]中所提的方法进行建模。

设LET为在某一特定放电深度DOD(DepthOf-Discharge)下,电池在其使用寿命内的放电总量,cb为电池的成本,则电动汽车参与到VPP中的损耗CEV为:

其中,Es(DOD)为VPP在储能电池特定的放电深度下,利用电动汽车储能电池的容量。电池寿命一般通过可充电次数来表达,即通过特定的放电深度描述,即:

其中,L(DOD)为某一放电深度下电动汽车电池的使用寿命。

因此,电动汽车参与到VPP中的损耗CEV为:

本文利用文献[15]中所提的电动汽车储能电池放电深度与可利用次数间的关系,具体如表1所示。

作为电动汽车参与VPP的补偿,电动汽车会从VPP得到一定免费的电能。设Ef(DOD)为电动汽车从VPP获得的电量,假设零售电价为0.4元/(k W·h)。因此,电动汽车的利益函数为:

提供给VPP的放电深度是按电动汽车车主的意愿所决定的,较小的放电深度可延长电池的使用寿命,但同时收益将会减少。相反,较大的放电深度会缩短电池的寿命,但收益将增多。

1.3 VPP日前市场策略模型

为确定下一日的策略,含电动汽车储能的VPP需要确定以下5个方面:(1)直接向电网输送的电量,表示为x;(2)向电动汽车输送的电量,表示为b;(3)电动汽车向电网输送的电量,表示为d;(4)VPP所需利用的电动汽车储能的容量(以确定含电动汽车储能的VPP中所需电动汽车的数量),表示为y;(5)作为回报向电动汽车输送的电量,表示为g。

设VPP可利用电动汽车储能容量的最大值为s(即y的最大值),s=[s(0),s(1),…,s(N-1)]T,,其中v∈V,V为一组电动汽车集合。

设VPP向电网输送电量(直接输送或从所利用的电动汽车储能输送)时的电价为pe(n)。同时,设作为补偿输送给电动汽车的电量与所需利用的电动汽车储能容量之比为σ,σ∈[0,1](σ≤g(n)/y(n))。因通过电网向电动汽车充电时会产生损耗,同时电动汽车储能参与到VPP运行中后,向电网送电也会产生损耗。故设η∈(0,1)为电池的整体转换损失。同时,为了反映每个电动汽车单元真实的输电电量,在数学表达式上需将原先一个单位的输电电量变为(1+η)个单位的输电电量。

综上,以最大化VPP效益建立模型,VPP日前市场策略模型如下。

目标函数可表示为:

约束条件为:

其中,n=0,1,…,N-1;N为总的时段数;p(x,d)为基于预测产生的电量z,VPP向电网输送电能所获得的收益;Δ(n)为时段n开始时电动汽车中所储存的电量,可表示为式(7)。

式(6)中,第1个约束条件为时段n直接送向电网的电量x(n)、转化储存在电动汽车储能中的电量b(n)、作为参与补偿输送给电动汽车的电量g(n)三者之和等于VPP预测产生的电量z(n);第2个约束条件保证了有足够的电动汽车满足需要存储的电量;第3个约束条件保证了电动汽车中存储的电量满足输出的要求;第4个约束条件保证电动汽车所获得的补偿电量至少达到VPP所需利用储能容量的规定比例(即σ)。

2 滚动时域优化方法

为解决大规模优化决策中计算难处理的问题与反映复杂动态环境的优化决策过程,控制领域在20世纪70年代提出了滚动时域控制和预测控制概念。预测控制与传统的最优控制有着很大的不同,预测控制因其基本原理对于复杂工业环境有着很强的适应性,使其在工业过程中得到了广泛的应用。这些原理主要包含模型预测、滚动优化、反馈矫正。滚动时域优化方法是借鉴预测控制的思想,通过预测模型计算该时段内的最优控制,并将得到的最优策略应用到该时段内。到下一个时间段的起点时,系统状态再次更新,滚动时域控制再次计算该时段的最优控制,依此类推。预测控制中的滚动时域方法实质上是利用随时间反复进行的一系列小规模优化问题求解的过程取代一个静态的大规模优化问题求解的结果,从而达到在优化前提下降低计算量并适应不确定性的目的[16]。

从时间维度而言,滚动时域优化方法在有限时域内采用滚动式的优化策略,也就意味着该优化策略不是一次完成的,而是随着时间的推移反复进行,即优化策略只是在基于当前采样时间之后的未来有限时间段内进行,并在基于当前采样时间的滚动窗口内执行决策结果。在下一个采样时间点,优化时段会向后移动。所以滚动时域优化方法不是以一个对整体相同的优化指标,而是在每个采样时间都有一个相对于该时段的局部优化指标。这2种优化指标在形式上是相同的,但其包含的时间段不同[17]。

从问题维度而言,滚动时域优化方法将一个整体的问题分拆成若干个子问题。根据在采样时间之前所获得的反馈信息和当前预测窗口的预测信息,在每个采样时间做出决策,进而解决当前时段的子问题[17]。

3 基于滚动时域优化方法的VPP日前市场策略模型

在电能输送的第k日当天,越接近每个时间段,越能更加准确地预测该时间段所产生的电量。在第k日的任意时间段内,因第k-1日预测会出现误差,1.3节中的模型需要进行一定的调整,以适应这一误差。

为此,针对上述问题,本文利用滚动时域优化方法进行处理。设z′t=[z′t(t),z′t(t+1),…,z′t(N-1)]T为一天内剩余N-t个时间段在时段t已知的新预测VPP产生的出力,z′t(t)、z′t(t+1)、…、z′t(N-1)分别为时段t对时段t、t+1、…、N-1的预测出力。同理,s′t=[s′t(t),s′t(t+1),…,s′t(N-1)]T为一天内剩余N-t个时间段在时段t VPP可以利用的储能容量新的最大值。设pup为实际的送电量小于日前市场所签订的合同值时的惩罚费用量。但是,如果送电量高于合同值,多送出的电量的价格不高于合同所签订的价格pe,这2个价格的差异(合同价格减去实际的盈余价格)用pdown表示。即:pdown(n)=pe(n)-psurplus(n),其中psurplus(n)为时段n多送出电量的价格。由此可得到pdown≥0。

在每个时间段t,根据日前市场签订的合同,即VPP需要提供w(w=x+d)的电量,含电动汽车储能的VPP现需要计算出针对1.3节中所提到的5个量对于一天中剩余的N-t个时间段的更新量x′t、b′t、d′t、g′t、y′t。因此新的供应电量为w′t=x′t+d′t,需要在每个时段t都计算一遍,其中t∈{0,1,…,N-1}。同时,utup为在时段t少送出的电量值,utup=[max(0,w(t)-w′t(t)),max(0,w(t+1)-w′t(t+1)),…,max(0,w(N-1)-w′t(N-1))]T,同理utdown为在时段t多送出的电量值,utdown=[max(0,w′t(t)-w(t)),max(0,w′t(t+1)-w(t+1)),…,max(0,w′t(N-1)-w(N-1))]T。

因此,综上所述,考虑了不平衡惩罚量的VPP利益函数为:

3.1 目标函数

尽管式(8)为凹函数,但由于其含有max函数,故不是处处可微,因此将式(8)修改成式(9)。

为此,基于滚动时域优化方法的VPP日前市场策略模型的目标函数为:

其中,α(n)、β(n)为去除式(8)中不可微量的变量。

3.2 约束条件

(1)能量平衡约束。

该约束条件为每个时段t直接送向电网的电量x′t(n)、转化储存在电池中的电量b′t(n)、作为补偿输送给电动汽车的电量g′t(n)三者之和等于VPP每个时段t产生的电量z′t(n)。其中,n∈(t,t+1,…,N-1)。

(2)所需储能约束。

该约束条件保证了在每个时段t有足够的电动汽车满足所需存储的电量。其中,Bt为每个时段t电动汽车的电量;y′t(n)为每个时段t需要利用电动汽车储能的容量;Δ′t(n)为每个时段t电动汽车储存的电量,可表示为:

(3)输出约束。

该约束条件保证了在每个时段t内电动汽车中所储存的电量满足输出的要求。其中,d′t(n)为每个时段t电动汽车向电网输送的电量。

(4)消耗补偿约束。

该约束条件保证了在每个时段t内电动汽车所获得的补偿电量至少达到VPP所需利用储能容量的规定比例(即σ)。其中,g′t(n)为每个时段t作为回报向电动汽车输送的电量。

(5)VPP需求约束。

该约束条件保证了在每个时段t内作为回报向电动汽车输送的电量与VPP所需利用的储能容量之和不能大于VPP所能利用储能的最大值。其中,s′t(n)为每个时段t VPP所能利用储能容量的最大值(即y′t(n)的最大值)。

(6)其他约束。

每天系统运行中,式(9)在每个时段t都需要求解一遍,并且在时间段t所用的值为:x′t(n)、b′t(n)、d′t(n)、g′t(n)。

4 算例分析

4.1 算例描述

为了验证所提模型的有效性,本文选取由10个分布式风力发电单元所组成的VPP为例进行分析,其中每个分布式风力发电单元的标称功率为1.3 MW。因需要向下一日市场提交发电策略,风电运营商需要根据下一日01:00—24:00的风力预测值,估计计划出力z。同时,为了体现风电的预测误差,本文收集了某地连续2个月01:00—24:00的风力预测值以及实际值,然后对时段t风力预测误差进行计算,对于每个时段t的预测误差,计算其平均值与方差值,最终通过平均值与方差值确定出预测误差的正态分布。为了仿真电力市场价格变动,本文利用某地的历史电价信息[18]。每个电动汽车电池容量取值为30 k W·h,总的电池转换参数取为0.27[14]。

4.2 算例结果分析

本文通过对比相同地点,相对于无电动汽车储能参与的分布式风力发电单元所构成的VPP,电动汽车储能与分布式风力发电单元联合所构成的VPP在效益方面的优异性。利用MATLAB仿真软件实现滚动时域优化方法的求解。设p(x,d)为电动汽车储能与分布式风力发电单元相联合所构成的VPP参与到日前电力市场所获得的实际效益(即去除作为补贴向电动汽车输送的电量与实际运行中支付市场的不平衡惩罚量后所获得的效益),p(x,d|s=0)为仅由分布式风力发电单元构成的VPP获得的实际效益(即实际运行中支付市场的不平衡惩罚量后所获得的效益)。

本文所提方法多获得的收益以式(17)形式表示:

图1给出了不同σ取值下每个月含电动汽车储能的VPP所多获得的收益,σ的取值分别为0.05、0.1、0.15。由图1可看出,在风力较大的冬季和春季含电动汽车储能的VPP所多获取的收益更多;相对于不含电动汽车储能的VPP,含电动汽车储能的VPP所获得的收益多出了25%以上(例如3月与12月,而在1月更是多出将近45%);当σ为0.05时,由于利用电动汽车储能相对比较便宜,则VPP就会尽可能多地利用储能;但随着σ值增大,由于利用储能的代价越来越大,当σ取值为0.1、0.15时含电动汽车储能的VPP所多获取的收益将减少。

图2给出了含电动汽车储能的VPP获取最优收益时,利用电动汽车储能发出的电能所占的百分比。由图2可看出,随着利用储能代价的增大(即σ值的增加),利用储能所占的百分比随之减少。

假设1月是VPP需要利用储能最多的月份,则当σ=0.05时,VPP需要的可利用储能容量为60 MW·h,当σ=0.15时,VPP需要的可利用储能容量为20 MW·h。由此就产生了一个问题,到底需要多少电动汽车满足最佳储存容量需求。这一问题需要通过分析电动汽车放电深度来解决。假设每辆电动汽车通过提供对其最有益的放电深度向VPP提供储能服务,即放电深度为40%时(如图3所示),则每辆电动汽车可提供0.4×30=12(k W·h)的容量,VPP就需要1 667~5 000辆电动汽车以满足VPP对储能20~60 MW·h的需求。

基于1.2节所述的电动汽车收益模型可得不同σ与放电深度值下的电动汽车年收益,如图3所示。

由图3可看出,当σ=0.05时,储能的利用代价较低,较多的电动汽车储能被利用,对于电动汽车车主而言,虽然每次获得的收益较低(免费获得的电力较少),但是从长期的角度而言,因为参与VPP运行的次数较多,反而获得了更好的收益。但随着σ值的增大,VPP利用储能的代价增大,故电动汽车储能利用的频率也随之降低,因此电动汽车车主所获得收益也随之减少。由此可看出,σ值越小,电动汽车储能利用的次数增多,电动汽车车主的收益就会越多,足以满足电动汽车储能电池参与VPP后充放电次数增多所造成的损失。当电动汽车储能电池最佳放电利用深度DOD=40%,σ=0.05,可充电次数12000次,电池容量30 k W·h,零售电价0.4元/(k W·h),电动汽车车主在其储能电池寿命内可由VPP获得57 600元的电能,参考文献[15]所提供的电动汽车储能电池的成本相当于50 400元,因此电动汽车参与VPP所造成的损失足以得到补偿。

5 结论

本文主要研究了VPP内部分布式发电资源优化运行方式。为了使风电这类具有间歇性、可预测性差、受自然环境影响较大的新能源能参与到电力市场中,本文利用电动汽车作为储能解决风力发电的不足,联合配电网中的分布式风力发电单元与电动汽车形成VPP,进而参与到日前电力市场中。

本文建立了日前电力市场环境下的VPP模型,该模型以VPP效益最大化为目标,对由电动汽车储能与分布式风力发电单元联合构成的VPP进行了分析。利用某地风电的实际数据,采用滚动时域分析方法,对本文所提出的模型与机制进行了仿真分析。通过仿真验证了含电动汽车储能的VPP在效益方面可获得较大的提升。

同时,由于电动汽车与分布式风力发电单元的所有者不同,本文阐述了电动汽车参与VPP运行后的补偿机制,算例表明该补偿机制具有良好的可行性。

分布式虚拟现实系统

分布式虚拟现实系统(精选8篇)分布式虚拟现实系统 第1篇关键词:虚拟化,分布式,LogOS,软件日志管理1 基于虚拟化的二进制动态翻译平台Log...
点击下载文档文档内容为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部