分布式虚拟环境
分布式虚拟环境(精选7篇)
分布式虚拟环境 第1篇
近年来, 随着虚拟现实技术和网络技术的发展, 基于虚拟现实和网络应用的分布式虚拟环境 (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.
分布式虚拟环境 第2篇
计算机软件与硬件技术的飞速发展导致了计算模型的不断演化。继分布式计算、并行计算和网格计算等模型之后, 计算机工业界提出了云计算[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.
分布式虚拟环境 第3篇
分布式虚拟实验平台是一种能让在不同地域的众多实验者通过网络在同一时间访问同一实验室完成同一实验项目的虚拟实验环境。他们可以不受时间、空间限制互相合作地完成同一实验,也可以实时地单独完成实验。分布式虚拟实验平台是分布式虚拟现实技术的典型应用,而分布式虚拟现实技术是虚拟现实(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.
分布式虚拟环境 第4篇
目前常用的资源调度模式主要有3种:集中式调度模式、分布式调度模式和多级调度模式[1,2]。显然,上述资源调度模式对网络环境下的高技术虚拟企业(High-tech Virtual Enterprise,HTVE)不太合适。HTVE一旦形成,与其相应的目标,组织模型也将确定,各成员企业之间的业务活动环环相扣,HTVE资源形成一个内部供应链系统,主要解决的是由成员变更、运行过程重构以及成员企业间资源管理等问题所引起的成员企业的资源需求、供给及成员企业之间的调度问题。
因此,本文根据工作流理论,深入研究HTVE资源调度过程要解决的关键问题,综合已存在的资源调度模式优点,从HTVE运行的不同阶段的角度出发,制定不同的调度目标,建立适合HTVE特点的二级分布式资源调度模式。
2 资源调度关键问题
调度HTVE环境中的资源是很复杂的任务,HTVE资源调度过程要解决的关键问题包括以下几个方面:
(1)资源需求描述
HTVE资源需求包括执行任务所需资源的成员企业个数、资源类型以及所需要的相关的数据资源等等。同时,需要设计简单合理的资源需求描述协议,对资源需求进行结构化描述,这既是成员企业执行分配任务时所需要的资源描述,也是监控成员企业任务执行参数的描述。
(2)资源提供描述
与HTVE资源需求相对应,资源提供描述包括提供资源的成员企业、可用资源类型以及可用的相关的数据资源等等。HTVE资源提供描述与需求描述具有相同的重要性,并且资源提供描述决定了资源的存储方式,对其描述的是否合理,直接关系着HTVE资源管理和组织调度的效率和性能。
(3)资源信息存储
HTVE环境中,资源信息的存储直接关系到资源匹配的效率。优于成员企业资源种类、数目各异,需要设计合理的数据库方式存储,不仅方便信息的查询和匹配,而且提高资源匹配和搜索的效率,便于实现资源共享。
(4)资源分类
无论是资源需求描述、资源提供描述还是资源信息存储为了便于管理,应对其进行分类。对资源及时准确地把握是提高HTVE敏捷性的前提和基础。不同的研究目的可以有多种不同的分类方法,本文把资源按性质分为内部资源和服务资源二大类。
内部资源是与HTVE有关的成员企业内部的资源,可由各成员企业以自组织的方式进行调度管理。服务资源是各成员企业为完成业务活动所提供,以弥补其他成员企业自身的不足,帮助完成业务活动的资源。可分为:可重复使用资源、不可重复使用资源和共享资源。(1)可重复使用资源包括:基础资源:计算资源、通信资源、存储资源、辅助设备、以及各类数据库等。人力资源:高级管理人员、专业技术人员、市场营销人员等。设备资源:机器资源、工装资源、刀具资源等。销售资源:运输资源、库存资源、客户管理、售后服务、销售网络等。(2)不可重复使用资源包括:能源、资金(流动资产、股票、债务、存款)、物料资源(在制品、原材料、成品)等。(3)双重性质资源包括:伙伴企业资源:金融机构、科研院所、供应商、转包商、合作商等。技术资源:工艺设计资源、工艺知识、技术文件、专利与非专利技术成果等。各种相关的标准:行业标准、企业标准、通讯规则等。培训:企业文化、管理和经营方法、资格、与工作相关的诀窍能力等。
资源分类不是目的,而是手段,通过分类,资源管理可以最大程度满足需要,克服成员企业自身资源的限制,使成员企业资源调度子系统和资源调度中心配置资源合理顺畅,成本最低。
3 基于不同运行阶段的资源调度分类
实施资源调度的基础是建立正确的模型,可是由于HTVE的动态特性,其运行过程细节无法全面掌握、信息流管理的不确定性因素增多、承担的风险增大、层次增多、控制难度增大,并且上下游企业关系复杂,成员企业无法完全了解也无法完全控制业务过程上各个企业的内部业务流程[3],尤其对各成员企业的核心能力、业务活动执行时间等只能是大概了解,具有很强的不确定性。因此,在HTVE资源调度问题中,不能一次建立不变的、完善的资源调度模型,即使是建立了模型,由于随着HTVE业务过程的进行各种因素会发生变化,如:成员企业、过程执行进度、资源利用情况、时间计划信息等变化。以致模型不能反应HTVE业务过程的动态变化的情况而影响对资源的调度。因此,在设计HTVE资源调度模式时,必须先要根据HTVE不同的运行阶段,制定不同的调度目标,建立相应的资源调度分类模型,具体分类如下:
(1)起始调度
起始调度是指对服务资源的调度,其发生主要有两种情况:一是HTVE运行前,二是HTVE运行中成员企业发生变化时,目的是根据HTVE业务活动的分解情况、成员企业的服务资源拥有情况,确定资源的传输路径、进行资源配给和任务安排,同时也为HTVE动态合同的签订提供依据。
(2)再调度
再调度是指对可重复使用资源的调度,主要是在HTVE运行中,为了完成已提交的所确定的任务和满足成员企业提出的资源需求,预测并找出HTVE资源发生冲突的情况,目的是优化资源,把HTVE中所有可用资源进行匹配,找到最合理的资源分配方式,保障HTVE运行的顺利进行。
4 二级分布式资源调度模式设计
HTVE中的资源是由多个成员企业提供的,每个提供资源或需求资源的成员企业都具有自己的调度子系统,HTVE的资源调度中心与成员企业的资源调度子系统之间存在相似性。一级资源调度中心设在信息系统平台上,负责整个HTVE的资源调度,二级调度中心设为各个成员企业的资源调度子系统,负责调度成员企业内的资源。同时,各成员企业可以根据自身的运行情况,通过HTVE信息系统平台的资源调度中心进行双向选择,来决定是否接受所分配的任务,这样的资源调度模式不仅具有良好的可扩展性,而且还可以减小各成员企业之间进行交互所带来的高昂的通信代价。HTVE资源调度模式,如图1所示,其详细资源调度过程如下:(1)HTVE管理者(盟主、协调委员会或代理)通过过程建模对HTVE的业务过程进行粗粒度的分解以业务活动序列及参数的形式形成过程定义,提交后触发任务接受模块。任务接受模块就将其加入WaitingList(WaitingList用来存放需要分配资源的业务活动)中排队。(2)在HTVE运行中,任务接受模块还可以接收不同角色提出的资源需求,同样加入到WaitingList队列中。(3)资源选择模块首先提取任务接受模块的信息,根据WaitingList中的资源需求情况,查询由成员企业注册到资源库中的所有可用资源。资源库由静态资源库和动态资源库组成。其中静态资源库描述与活动有关的资源分布情况以及具体的业务活动运行所占用的时间等;动态资源库则记录了当前业务活动对资源的消耗情况。然后,选择合适的资源提交。(4)资源监视器动态监控HTVE资源的变化情况,并把资源随着时间的推进进行动态更新的信息,发送到协作信息中心,便于具有权限的角色通过统一的界面查看各成员企业的状态以及资源的使用情况。当HTVE资源短缺时,向成员企业发出请求,拥有资源的成员企业经过任务接受模块,资源提供描述、出价模块按照自身的资源调度策略运行任务执行队列ExecuteList中的资源调度任务,由结果发送模块将任务结果发送给资源注册模块,更新HTVE的资源库。(5)资源调度模型选择模块根据协议指定的资源调度规则,选择合适的调度模型并计算调度结果存入FinishedList(用来存放资源调度完毕的业务活动)中,并将结果发送给资源需求的角色和作业调度管理器,最终形成具体的任务表。(6)角色接受资源调度中心分配的资源。当角色资源短缺时转到(2)。
5 结语
模式(Pattern)是解决某一类问题的方法论。在一个良好模式的指导下,有助于设计一个优良的资源调度方案,达到事半功倍的效果,而且会得到解决问题的最佳办法。HTVE资源调度模式不仅依赖于要调度的任务、资源的数量和资源的分布情况,而且还依赖于HTVE的类型(如:盟主式、联邦式、民主式),因此,建立的二级分布式资源调度模式,更加符合客观实际,并能够为HTVE资源调度策略的制定奠定基础。
摘要:为确保高技术虚拟企业的顺利运行,深入研究了高技术虚拟企业资源调度过程要解决的关键问题,对不同运行阶段的资源调度进行分类,制定不同的调度目标,建立了适合高技术虚拟企业特点的二级分布式资源调度模式,增强了其适应动态变化的能力,以期为高技术虚拟企业信息系统平台的构建提供新的研究视点。
关键词:高技术虚拟企业,资源调度,模式
参考文献
[1]田世海,高长元.基于Web Services的高技术虚拟企业信息集成[J].中国软科学,2006(6):150-155
[2]泽仁志玛,李鑫,胡彬.关于网格资源调度的探讨[J].地震,2006,26(3):116-122.
[3]田世海,高长元.高技术虚拟企业运行过程元模型及应用[J].情报杂志,2007,26(5):5-9.
分布式虚拟环境 第5篇
由多个分布式电源(distributed generator,DG)、负载、控制装置等构成的微电网系统能够协调不同种类的分布式能源,有利于分布式能源的有效利用。近年来已成为国内外研究的焦点[1,2,3]。
微电网既可以并网运行,也可以独立运行[4]。在独立微电网中,功率下垂控制技术是DG单元的常用控制方法,为微电网提供了频率和电压支撑,同时使负荷在多个DG单元之间合理分配[3,4,5]。下垂控制和系统的等效阻抗特性相关,不同形式的下垂方程分别对应于感性[5,6,7]、阻性[7,8,9,10]、阻感性[6,11]以及容性[12]的不同阻抗特性。在线路阻抗主要呈阻性的低压网络中,DG单元中逆变器采用有功功率—幅值(P-V)和无功功率—频率(Q-f)阻性下垂方式[3,8,9]。
受微电网拓扑结构、线路阻抗等因素的影响,传统下垂控制难以保证DG单元按照预定比例分配负荷,如感性下垂中阻抗影响无功功率的分配,而阻性下垂中有功功率的分配受到影响[6,7]。很多学者就此问题展开了相关研究,以提高DG单元功率分配的精度[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]。文献[14,15]基于同步信号调节DG单元输出电压或虚拟阻抗。文献[16]的分层控制法在二次控制中附加了功率分配功能。文献[17,18]基于中央能量管理器自适应调节虚拟阻抗或下垂系数。但是,上述文献中所提方法均依赖于中心控制器,其集中控制方式降低了系统的可靠性。分布式控制结构可有效提高系统的可靠性。文献[19]所提的分布式控制方式能够在通信时延或数据丢包的情况下,获得优于传统集中控制的性能。但是,该算法中每个DG单元需要获得微电网中其余所有DG单元的信息。文献[20]所提基于多智能体理论的控制方式中,DG单元只需和相邻的DG单元进行信息交换。然而DG单元本地电压的差异影响了功率分配的精度,需要附加额外的功率控制方法[21]。
鉴于上述问题,本文将微电网等效为多智能体系统,其中每个DG单元作为智能体,并将DG单元的功率分配问题等效为功率的一致性问题,提出了一种基于自适应虚拟阻抗的分布式功率控制策略,以实现负荷功率在DG单元之间的合理分配。根据多智能体的一致性协同理论,所提策略实现了分布式的控制方式,各DG单元仅需使用本地和相邻电源的功率信息自适应调节虚拟阻抗的模,无需依赖于全局信息的搜集。通信的结构可采用任何包含生成树的拓扑,稀疏网络就能够满足系统要求。此外,根据输出功率因数调节自适应虚拟阻抗的阻抗角,避免了仅调节虚拟阻抗的模在部分工作点无法提供所需电压补偿的问题,系统的鲁棒性得到了提高。由多台DG单元构成的微电网系统的仿真结果验证了所提策略的有效性。
1 传统下垂控制分析
图1为2台DG并联运行的等效模型。DG单元用简化的交流电压源Ei∠δi表示。Vcom为微电网公共交流母线电压。总阻抗Zi=Ri+j Xi包括了线路阻抗Zli和逆变器等效输出阻抗Zoi。
在低压线路中,DG所采用的阻性下垂控制方程为[3]:
式中:ω*和E*分别为DG单元额定电压的角频率和幅值;Pi和Qi分别为第i台DG单元的有功和无功功率;kPi和kQi分别为有功功率和无功功率的下垂系数。通过下垂方程得到的ωi和Ei分别为第i台DG单元输出电压的参考角频率和幅值。
由于系统频率是全局变量,所以无功功率能够按照下垂系数的反比例进行分配,即有kQ1Q1=kQ2Q2。但采用阻性下垂方程,DG单元的有功功率不一定能够实现精确分配[8]。由式(1)可得,按下垂系数加权后的有功功率分配误差等于DG单元的电压幅值差,即
考虑阻抗压降,DG电压与母线电压关系为[17]:
结合式(3)和式(4)得到,有功功率按下垂系数的反比例合理分配的充分条件是总阻抗满足式(5)。
在式(5)条件下,DG单元电压幅值相同,ΔE=0,有功功率分配误差为0。
虚拟阻抗法是一种常用的提高功率分配精度的方法[22,23]。通过设置虚拟阻抗改变DG单元的等效输出阻抗,使总阻抗满足式(5)条件,有功功率能够实现合理分配。然而,实际微电网中电源或负荷的切入切出将改变系统的等效阻抗网络,实时辨识线路阻抗并实现阻抗匹配的方法较为复杂[22]。
2 基于自适应虚拟阻抗的分布式控制策略
为实现低压阻性微电网中有功功率按照下垂系数的反比例合理分配,本文提出了一种改进的基于自适应虚拟阻抗的分布式控制策略,控制框图如图2所示。图中:LPF和HPF分别表示低通滤波器和高通滤波器。虚拟阻抗设置为Zvi=KZi∠θi=Rvi+j Xvi,其中Rvi=KZicosθi,Xvi=KZisinθi。在所提策略中,DG单元采用分布式控制策略,根据系统中部分电源的有功功率信息调节虚拟阻抗的模KZi,对虚拟阻抗的电阻Rvi和电抗Xvi同时进行调节。另外,根据输出功率因数自适应调节虚拟阻抗的阻抗角θi。虚拟阻抗用于提供附加的电压降,补偿DG单元之间的电压差,使ΔE=0,消除不匹配的馈线阻抗对有功功率分配的影响。虚拟阻抗所提供的电压降为:
2.1 分布式控制策略
图2中,将n台DG单元的有功功率按照下垂系数定标为Pc=[P1c,P2c,…,Pnc]T,作为通信网络中传递的有功功率信号向量,其中Pic=kPiPi。为实现分布式的控制结构,所提策略将微电网视为一个多智能体系统,将功率分配的控制目标等效为实现Pic的一致性,优势在于仅需获取相邻DG单元的信息。
相邻的含义是:通信网络的拓扑结构用一个有向图表示[24],如图3所示,n个节点V={v1,v2,…,vn]代表n个DG单元,有向边代表DG单元之间的通信链路,有向边构成的集合为E。有向图中存在从节点j指向节点i的一条有向边(vj,vi),表明DGi能够接收DGj的有功功率信息,此时称DGj(节点j)是DGi(节点i)的相邻单元(邻居)。如图3中DGi是DGn的邻居,而DG1和DG2都不是DGn的邻居。DGi的所有相邻单元构成的集合Ni={j|(vj,vi)∈E}为节点i(DGi)的邻居集。
所提策略中各DG单元利用本地和相邻DG单元的有功功率信息调节虚拟阻抗的模KZi。控制方程为:
式中:KI为积分系数;aij为通信网络的邻接矩阵A的元素,其取值和网络拓扑相关,若有(vj,vi)∈E,则aij=1,否则aij=0。
令KZ=[KZ1,KZ2,…,KZn]T表示由各DG单元虚拟阻抗的模构成的列向量,则式(7)的向量形式记为:
式中:L=(lij)为通信网络拓扑图的拉普拉斯矩阵,其元素定义为。
当系统达到稳态后,各DG单元的虚拟阻抗不再随时间变化。此时,式(8)积分项的输入为0,有
根据多智能体控制的一致性协同理论[24,25],当通信拓扑图中包含生成树,即存在一个根节点和其他所有节点都存在至少一条有向通路,拉普拉斯矩阵L的秩rank(L)=n-1,0是L的单重特征值,相应的右特征向量为(1)n=[1,1,…,1]T∈Rn×1。因此,齐次线性方程组式(9)只有唯一的解向量(1)n,即Pc=c(1)n,其中c为常数。于是,采用所提出的分布式控制策略,当系统达到稳态时,有功功率能够实现按下垂系数反比例进行合理分配,有kP1P1=kP2P2=…=kPnPn。
在所提策略中,控制器采用的是分布式的构建方式,DG单元中虚拟阻抗的模KZi的调节仅使用了本地功率信息和来自其余部分DG单元的功率信息(局部信息),无需所有DG单元的信息(全局信息),系统具有较高的可靠性。而在传统的集中式控制中,中心控制器需要采集所有DG单元的功率信息,并依据全局功率信息给出每台DG单元的功率参考[17]。当某台DG单元发生通信故障时,其余DG单元的功率参考值将无法确定,系统可靠性较低。所提分布式控制策略对通信网络的要求是网络拓扑图中包含生成树,易于通过构造一个稀疏的通信拓扑满足此条件。另外,可构建冗余链路增强系统的可靠性。通信网络的优化构建与微电网的地理结构相关,可依据最小化通信链路长度或最大化应用现有网络等准则进行优化设计[20]。
2.2 自适应虚拟阻抗角
虚拟阻抗的作用是提供附加的电压降,补偿DG单元之间的电压差。阻抗角的设计方法同样影响着控制策略的性能。将式(6)重写为:
式中:Si为DG单元的视在功率;αi为功率因数角。
传统方法中虚拟阻抗的阻抗角θi设置为固定值(如θi=π/4),仅对虚拟阻抗的模KZi自适应调节[17]。当DG单元运行于功率因数角α=kπ/2+θi(k为奇数,α∈[-π,π])的工作点时,式(10)的分子为0,无论模KZi如何取值,虚拟阻抗所提供的压降ΔVZi始终为0,不能对DG单元之间的电压差进行补偿,有功功率的分配误差无法消除。从控制方程式(7)得到的虚拟阻抗的模KZi将趋于无穷大,超出容许的阻抗限制,易引起系统不稳定[17]。
所提策略对虚拟阻抗的阻抗角也进行了自适应调节。如图2所示,DG单元根据所测输出电压电流实时计算输出有功、无功功率,并计算出功率因数角,令阻抗角θ等于功率因数角α。当工作点变化引起功率因数角改变时,阻抗角也随之变化,即
采用所提自适应阻抗角法,式(10)中cos(θi-αi)恒为1,保证了在任意功率因数下,从控制方程式(7)得到的虚拟阻抗的模KZi是有界值。系统总阻抗将具有复阻抗特性,根据已有研究[26],仍可以采用阻性下垂方程式(1)和式(2)进行控制。
以附录A表A1中DG1和DG2的参数为例,说明采用所提自适应阻抗角方法的必要性。由式(3)和式(4)可知,虚拟阻抗所提供的电压降ΔVZ应等于2台DG单元的馈线阻抗上的电压降之差,有
式中:ΔR=R1-R2,ΔX=X1-X2分别为2台DG单元馈线电阻和电抗的差值。两机的有功功率和无功功率相同,即P1=P2=P,Q1=Q2=Q。
结合式(10)和式(12),有
根据式(13),不同工作点下ΔKZ随功率因数角的变化曲线如图4所示。采用所提自适应阻抗角θ=α时,有cos(θ-α)=1,ΔKZ有界(即)。图4同时给出了传统自适应虚拟阻抗法中,阻抗角设置为固定值时(以θ=π/4为例),ΔKZ的变化曲线。在α=-π/4和3π/4的工作点附近,ΔKZ将趋向于无穷,易超出容许的阻抗限制。
因此,所提自适应阻抗角方法能够在功率因数角α∈[-π,π]的整个工作区间内,避免虚拟阻抗的模KZi过大,提高了系统的鲁棒性。
3 仿真验证与分析
在MATLAB R2013a/Simulink软件平台上搭建如附录A图A1所示n=4个DG构成的独立微电网系统,以验证所提出的基于自适应虚拟阻抗的分布式功率控制策略。系统参数如附录A表A1所示。控制参数根据系统在工作点附近的状态空间模型设计所得[27]。4台DG单元的有功、无功功率都分别按照2∶2∶1∶1的比例进行分配,下垂系数与功率分配比例系数成反比。因此,第i台DG单元的有功功率分配误差定义为
式中:为第i台DG的有功参考值,其中Ptotal为系统总有功负荷。
所提分布式控制方案中,系统的通信网络结构允许选择任何包含生成树的拓扑,本文通过最小化通信链路数目对系统通信网络结构进行优化[28]。对于4台DG单元构成的微电网系统,附录A图A2给出了可选择的通信拓扑类型。其中图A2(a)至图A2(c)为分布式的控制方式,都满足包含生成树的条件。在图A2(a)和(b)中,任一条红色通信链路故障将造成网络失去连通性。为包含冗余链路,通信链路的最小数目为4条。图A2(c)的环形通信方案在单条链路故障下通信网络仍包含生成树,因此是包含冗余链路且链路数目少的优化方案。图A2(d)是集中式的控制方式,与分布式控制相比,不仅存在中心控制器的单点故障,而且任一条链路故障将使网络失去连通性,可靠性较低。另外,各DG单元需要与中心控制器双向通信。
在附录A图A1所示系统中,每个DG单元仅使用了本地和另外一台DG的功率信息,通信网络的拉普拉斯矩阵为:
算例1:验证所提策略的有效性。4台DG单元并联运行时功率分配的结果如图5所示。通过负荷Zload2的切出与切入实现工作点在1kW/-1kvar和3kW/1kvar之间的切换。t=0~4s,DG单元采用传统的下垂控制法,由于馈线阻抗不匹配,有功功率不能按比例分配。在t=4s,启用所提的分布式控制策略。各DG单元自适应调整自身虚拟阻抗的模KZi,并始终使阻抗角等于输出功率因数角。达到稳态时,有功功率的分配误差得到了消除,从而实现有功功率按照预定比例进行分配,同时不影响无功功率的比例分配。对于馈线阻抗按比例相对较大的DG1,KZ1为负值,相当于减小了物理馈线阻抗。母线电压跌落主要是由功率流在总阻抗上的压降和下垂控制的电压下垂特性造成的,而所提策略引起的系统母线电压变化可以忽略不计。
算例2:验证阻抗角采取自适应方法的有效性。对自适应虚拟阻抗采用固定阻抗角(以θ=π/4为例)而仅对模KZi进行调节的情况进行了与图5过程相同的仿真,结果如附录A图A3所示。虽然固定阻抗角的方法在t=4~8s能够实现有功功率的比例分配,但当Zload2切出后,功率因数角变为α=-π/4=-π/2+θ,式(10)中分子为0。从图A3中可以看出,与理论分析一致,各DG单元虚拟阻抗的模逐渐增大,最终导致系统不稳定。
算例3:验证通信故障下所提策略的优越性。图6给出了当通信发生故障时所提控制策略的性能。起初通信无故障。t=2~9s,DG1和DG4之间的通信链路发生故障,由于系统存在冗余链路,此时通信网络仍包含生成树,结果表明,系统的有功/无功功率可以按比例分配。由于DG1接收不到相邻DG的功率信息,其虚拟阻抗的模保持为故障前的最终值。当负荷发生突变,其他DG单元能够通过自适应调整虚拟阻抗,保证功率的合理分配。因此,系统能够容许部分通信链路的故障。t=9~16s,所有通信链路均出现故障,之后所有DG单元的KZ都不再调整。在t=10s,Zload2的切入造成工作点变化后,有功功率的分配出现误差,4台DG单元的分配误差分别为-4.6%,1.8%,6.1%,-0.5%,均远小于图5中相同负荷条件下采用传统下垂控制策略的4台DG单元-30.4%,-3.2%,65.4%,1.7%的分配误差。在t=13s重新切除Zload2,负荷条件和通信故障前相同,于是稳态时仍然能够保证有功功率的比例分配。
另外,对所提分布式控制策略和集中式的控制方式在单条通信链路故障的情况下进行了性能对比,结果如附录A图A4所示。初始采用传统下垂控制,t=2s启用自适应虚拟阻抗,t=8s切除负荷Zload1。集中式控制中,DG1和中心控制器之间的通信链路故障,DG1既不能向中心控制器发送功率信息,也不能获得功率参考值,无法自适应调节虚拟阻抗。中心控制器接收其余通信未故障的DG单元的功率信息并给出功率参考,仅能保证通信未故障的DG单元之间的有功功率实现比例分配。由于中心控制器缺少全局信息,4台DG单元的有功功率出现分配误差。所提策略在DG1和DG4之间的通信链路故障时,DG1的虚拟阻抗同样不能调节。但根据一致性理论,所提分布式策略仍然能够实现有功功率的比例分配,具有较高可靠性。
算例4:验证所提策略在DG单元具有本地负荷情况下的有效性。为附录A图A1系统中DG2和DG3各设置0.5kW,0.3kvar的本地负荷,作为此算例下的微电网模型。从附录A图A5可以看出,使能所提策略能够消除有功功率的分配误差。在负荷Zload1切出、切入的不同负荷条件下,DG单元都能够实现有功功率的比例分配,证明了在较复杂结构的微电网中所提策略的有效性。
4 结语
本文提出了一种基于自适应虚拟阻抗的分布式功率控制策略,较好地解决了低压微电网中馈线阻抗不匹配的情况下,采用阻性下垂控制的DG单元的有功功率的分配问题。所提策略根据多智能体一致性理论构建了分布式的控制方式,使各DG单元仅需获取系统局部功率信息,避免了对全局信息的需求,具有较高可靠性。通信网络拓扑包含生成树的要求易于满足。阻抗角调节方法避免了过大的虚拟阻抗,使系统鲁棒性有所增强。所提策略研究了线性负载的功率分配问题,对非线性负载的情况有待进一步研究。在理论分析的基础上,通过构建由多个DG单元构成的具有复阻抗特性馈线的微电网系统仿真模型,验证了所提控制策略的有效性及在通信故障下的性能。
分布式虚拟环境 第6篇
关键词:虚拟化,分布式,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对云容错平台的性能影响大小。
分布式虚拟环境 第7篇
近些年来,随着电网中分布式发电资源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运行后的补偿机制,算例表明该补偿机制具有良好的可行性。
分布式虚拟环境
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。


