基于改进鲶鱼效应粒子群算法的电站优化调度
2018-09-10丁相毅张博
丁相毅 张博
摘要:为提高梯级电站的综合效益、获得较优的调度方案,建立了基于改进鲶鱼效应粒子群算法(CE-PSO)的梯级电站优化调度模型,针对鲶鱼效应粒子群算法在制作鲶鱼粒子时容易陷入局部加速的局限性,考虑到鲶鱼粒子的空间分布位置对改善粒子的多样性具有重要影响,尝试通过一定的途径将鲶鱼粒子均匀分布于整个搜索空间,提高种群的搜索效率,弥补CE-PSO算法容易陷入局部加速的局限性。将改进后的算法应用于某河流梯级电站的优化调度,结果表明,改进后的鲶鱼效应粒子群优化算法与标准PSO和CE-PSO相比,在全局搜索能力和收敛速度方面均有改善。
关键词:优化调度;多目标粒子群;鲶鱼效应;均匀分布;梯级水电站
中图分类号:TV737;TV697.1+2
文献标志码:A
doi: 10.3969/j.issn.1000-1379.2018.04.031
梯级水电站优化调度是水资源系统优化的重要内容,科学合理的水电站调度方案对提高水资源利用效率和效益以及供电可靠性具有重要作用。对于梯级电站来说,其优化调度综合考虑了上下游不同水库间的水力联系及补偿作用,具有非线性、动态、多维等特点。目前国内外对梯级电站的优化调度研究较多,多目标决策、模糊数学、遗传算法、人工神经网络等许多算法得到了成功应用。其中:胡铁松等以人工神经网络为例,分析了训练方法、优化参数的改变对训练结果和应用效果的影响,提出了研究水库群优化调度函数的人工神经网络方法:胡国强等提出一种以年发电量和一级水电站耗水量为优化目标的梯级水电站多目标长期优化调度模型:吴成国等3针对群体智能优化算法在梯级水电站优化调度中存在大量约束条件不易处理和“维数灾”的问题,将加速遗传算法应用于梯级水电站的优化,通过“分类假设”的思路寻找可行决策空间,解决了大量复杂约束条件下的“维数灾”问题。
针对标准粒子群算法易陷入局部最优、收敛速度慢等缺点,纪昌明等提出了基于鲶鱼效应的粒子群优化算法(CE-PSO),并在梯级电站优化调度方面取得了一定的成果。但这种算法没有考虑鲶鱼粒子的空间分布位置对优化效率的影响,在引入鲶鱼粒子对沙丁鱼粒子加速的过程中,容易陷入局部加速的困境。基于此,本文尝试通过改变鲶鱼粒子空间位置的方法改善鲶鱼效应粒子群算法的驱赶作用,进而提高整个种群的优化效率。
1 梯级电站优化调度模型
1.1 目标函数
发电量是衡量电站效益的重要指标之一,合理优化梯级电站的用水过程对提高电站发电量具有积极作用。因此,以发电量最大为目标函数,建立梯级电站优化调度模型。发电量的数学表达式为式中:F为电站总发电量,kW.h:n为调度时段数;m为电站个数;Nit为i电站在t时段的出力,kW;△t为计算时段,h;Hit为i电站在t时段的水头,m;Qit为i电站在t时段的發电流量,m3/s;η为出力系数。
1.2 约束条件
(1)水量平衡约束。表达式为式中:vit和vi,i+1,分别为水库i在t时段初和t时段末的蓄水量,m3;Fit、Qit和Sit分别为水库i在t时段的入库流量、发电流量和弃水流量,m3/s。
(2)电站出力约束。表达式为式中:Nmin和Nmaxit分别为i电站t时段的出力下限和出力上限,kW。
(3)蓄水量约束。表达式为式中:vminit和vmaxit分别为i水库f时段最小和最大蓄水量,m3。
(4)下泄流量约束。表达式为式中:qminit和qmaxit分别为水库下泄流量的下限和上限,m3/s。
2 鲶鱼效应粒子群算法
2.1 鲶鱼效应粒子群算法原理
2.1.1 PSO算法
粒子群优化算法(PSO)是模拟鸟群觅食行为而提jLI_:的一种智能优化算法,最初由JamesKennedy和Russell Eberhart提出,很快得到广泛应用。但是这种算法存在早熟收敛和搜索能力不强的缺陷,因此基于这种算法的改进算法比较常见。其中,将PSO算法与其他算法结合是改进的重要趋势,包括将选择、交叉、变异等算子引入PSO算法。比如,Angeline将选择算子引入PSO算法,为确保每次迭代后的粒子群都具有较好的性能,在优化过程中总是选择迭代后的较好粒子来复制下一代:交叉是按照一定的几率交换粒子群之间各维数据的改进方法,通过交叉重组产生子代,实现改善粒子群性能的目的:变异算子的引入是为了克服早熟收敛的缺陷,利用变异算子帮助粒子群跳出局部极值点,提高PSO算法的全局搜索能力。
2.1.2 鲶鱼效应粒子群算法
“鲶鱼效应”是经济学中广泛应用的一种激励机制,来源于鲶鱼对沙丁鱼群的驱赶作用。鲶鱼效应的实质是巧妙地利用一定的措施或手段激发企业参与竞争的积极性,实现活跃市场的目的。鲶鱼效应粒子群算法(CE-PSO)充分利用鲶鱼效应的驱赶机制,通过鲶鱼粒子对沙丁鱼粒子的驱赶作用实现整个种群的多样性,弥补了粒子群容易陷入局部最优的缺陷。但鲶鱼粒子对沙丁鱼粒子的驱赶作用与距离有关,当沙丁鱼粒子与鲶鱼粒子相距较远时,其驱赶作用就会减弱,不利于整个种群多样性的改善。此外,当鲶鱼粒子的空间分布比较集中时,也会限制鲶鱼粒子对沙丁鱼粒子驱赶作用的发挥。基于此,本文对CE-PSO算法进行改进,尝试通过定义鲶鱼粒子驱赶范围和改变鲶鱼粒子空间分布位置的策略提高粒子群的性能。
2.1.3 鲶鱼效应粒子群算法的改进
(1)对远距离加速作用不明显的改进。鲶鱼粒子对沙丁鱼粒子的驱赶作用与距离成正比,为解决远距离加速作用不明显的缺陷,尝试通过定义驱赶半径的方法保证鲶鱼粒子对沙丁鱼粒子较强的驱赶作用。
(2)对空间分布位置的改进。鲶鱼粒子的空间位置对改善离子种群的多样性具有重要作用。CE-PSO算法把当前种群中适应性最强的沙丁鱼粒子作为鲶鱼粒子。当连续多代中适应性最强的粒子是同一个粒子时,如果不改变鲶鱼粒子的空间位置,则该鲶鱼粒子始终对固定范围内的沙丁鱼粒子起加速作用,存在加速的局限性。基于此,尝试通过改变鲶鱼粒子空间位置的方法使鲶鱼粒子均匀分布于整个搜索空间中,解决CE-PSO算法加速的局限性。具体流程为:当粒子群的多样性不满足要求时,鲶鱼启发器就会被驱动,制作出的鲶鱼粒子会驱赶沙丁鱼粒子,如果粒子种群的多样性仍然不满足要求,继续制作鲶鱼粒子,并定义统计量sum记录引入鲶鱼粒子的数量。如此反复迭代,直到沙丁鱼粒子的种群多样性满足要求。值得注意的是,当鲶鱼粒子的数量大于等于2时,就需要考虑鲶鱼粒子的空间位置对沙丁鱼粒子驱赶作用的影响,并确保每次制作鲶鱼粒子重新调整鲶鱼粒子的空间位置。
(3)驱赶半径及鲶鱼粒子空间位置的定义。驱赶半径是鲶鱼粒子对沙丁鱼粒子驱赶范围的动态变量,其随着引入鲶鱼粒子数量的变化而变化。假设在整个迭代过程中共引进m个鲶鱼粒子,搜索空间的半径为R,则驱赶半径r的确定方法为:首先,假设鲶鱼粒子的搜索范围是n维坐标空间中的规则球体,且每个鲶鱼粒子的驱赶半径r是相同的:其次,将m个大小完全相同的球体放在搜索空间中,确保搜索空间完全被m个球体占满:最后,第i个球体的球心位置即为第i个鲶鱼粒子的空间位置。搜索空间的半径按照体积等换的方法确定,假设m个鲶鱼粒子将搜索空间均分为m个部分,则任意一个球体的体积可近似表示为v=1/mv:根据体积等换的原理则有1/mv=4/3π3,经简化得r=3√1/mR。
假设引入2个虚拟粒子后种群的多样性满足要求,为了提高驱赶效率,重新分配鲶鱼粒子的位置,鲶鱼粒子位置变化前后对比见图1。
2.2 改进CE-PSO算法在水资源优化配置中的实现步骤
用xmn表示任一个粒子Xj在空间中的位置,设粒子的搜索空间为Q,种群个数为S。当粒子群的多样性满足要求时,达到终止条件,跳出循环停止搜索。鲶鱼效应粒子群算法在水资源优化配置中的应用步骤(图2)如下。
(1)初始化粒子群。判断空间粒子是否满足水资源优化配置的初始条件,对满足初始条件的Ⅳ个粒子进行初始化,并将其命名为沙丁鱼粒子。
(2)计算粒子的适应度。直接把目标函数作为鲶鱼效应粒子群优化算法的适应度计算公式,按照式(1)计算粒子的适应度f(Xj),记录粒子的局部极值pbest和全局极值gbest。
(3)判断种群的多样性是否满足要求。设种群的多样性阈值为ξ,则当ξ(k)>ξ时,说明种群的多样性满足要求,这时直接按照标准PSO算法更新粒子的速度和位置(式(10)和式(11));当ξ(k)<ξ时,说明种群的多样性不满足要求,种群容易陷入局部最优,需要引入鲶鱼粒子,激发粒子的多样性,提高粒子的全局搜索能力。
当进化到第k代时,种群多样性的判别公式为式中:div是计算种群多样性的中间变量,div(k)表示第k代粒子的多样性,div(0)表示初始多样性;xjit为i电站t时段第i个粒子的位置;Xgbestit为粒子群搜索到的全局最优解位置;bit和ait分别为xjit的上限和下限,即i电站t时段出力的上限和下限。
(4)利用鲶鱼效应更新粒子的速度和位置。根据CE-PSO算法原理,直接将当前沙丁鱼种群中适应度最大的粒子设置为鲶鱼粒子。此时,沙丁鱼粒子受到鯰鱼粒子的驱赶,按照式(9)和式(10)更新速度和位置,鲶鱼粒子按照标准PSO算法更新自己的速度和位置。当引入一个鲶鱼粒子不足以驱动整个粒子种群的多样性时,继续引入鲶鱼粒子、调整其空间位置,使所有引入的鲶鱼粒子能够均匀分布于整个搜索空间中。记录引入鲶鱼粒子的数量,直到种群的多样性满足要求,停止引入鲶鱼粒子。CE-PSO算法和标准PSO算法的迭代公式为式(9)~式(11)。式中:w为惯性权重,它的大小表示粒子对当前速度继承的多少;c1、c2为学习因子,取值为正整数,r1、r2是0~1之间均匀分布的随机数;ci、si分别表示鲶鱼粒子和沙丁鱼粒子:k为进化迭代次数;v表示粒子i在空间中的飞行速度,粒子的飞行速度对算法的全局收敛性影响较大,当飞行速度过大时,粒子以较快的速度飞向全局最优解的临近区域,但容易飞越最优解,当飞行速度过小时,就会存在收敛速度慢、飞行时间长、不易找到全局最优解的缺陷;xjpbestit为粒子j搜索到的局部最优解位置:xjpbestit为粒子j搜索到的全局最优解位置:/为iXt分量上与j沙丁鱼粒子距离最小的鲶鱼粒子的编号,其意义为沙丁鱼粒子被离它最近的鲶鱼粒子驱赶,具体的计算公式为I={k|minb(xckj-Xsij)};P为跨度,最大数据与最小数据的差值;Q=A/P,A是一正整数,其取值根据仿真优化确定:Sta为二元状态变量,其作用是判别沙丁鱼粒子是否受到鲶鱼粒子的驱赶,当子代的适应度小于父代的适应度时,Sta赋值为1,表示沙丁鱼粒子受鲶鱼粒子的驱赶,反之,Sta赋值为0,表示沙丁鱼粒子不受鲶鱼粒子的驱赶,按照标准PSO算法更新速度和位置。
Sta的计算公式为
(5)当沙丁鱼种群的多样性满足要求时,迭代结束,终止运算。
3 实例分析
某河流建有A、B两座水电站,A为年调节电站,B为日调节电站,两座电站都有区间人流,电站参数见表1。
模型参数取值:粒子总数N设为25(小于15会导致局部收敛,大于25规模的增大对优化效率的提高不显著),推荐学习因子c1、c2均设为2.0,种群相对多样性阈值设为0.4。
为了对比模型的实用性和有效性,分别采用标准PSO、标准CE-PSO和改进的CE-PSO计算梯级电站的发电量,结果见表2。
由表2可以看出,相比CE-PSO和改进的CE-PSO,标准PSO算法的年发电量明显较小,说明引人鲶鱼粒子后,粒子种群的多样性得到了很好的改善。改进的CE-PSO相比标准CE-PSO性能有所提升,尽管提升不是很大,但具有一定的积极作用。
4 结论
梯级水电站优化调度是合理利用水资源、提高用水效率的重要方法,是缓解水资源短缺现状、推动水资源可持续利用的重要途径。本文针对鲶鱼效应粒子群算法在发挥鲶鱼粒子驱赶作用中存在的不足,对鲶鱼效应粒子群算法进行改进,认为鲶鱼粒子的空间位置对提高种群多样性具有重要影响,提出均匀分布鲶鱼粒子空间位置的思想。为了验证改进CE-PSO算法的可行性和实用性,将标准PSO算法、CE-PSO算法和改进的CE-PSO算法应用于某河流梯级水电站优化调度,结果表明CE-PSO算法和改进的CE-PSO算法均比标准PSO算法搜索效率高,而改进的CE-PSO算法相比CE-PSO算法搜索效果更好,说明改进的CE-PSO算法能够较好地解决粒子群优化算法“早熟收敛”的问题,对提高种群多样性具有积极作用。