APP下载

基于飞蛾扑火算法的电力系统负荷经济调度研究

2019-12-11管春伟

山东电力技术 2019年11期
关键词:飞蛾出力适应度

徐 威,管春伟

(1.天地电研(北京)科技有限公司武汉分公司,湖北 武汉 430074;2.国网山东省电力公司青岛供电公司,山东 青岛 266700)

0 引言

电力系统负荷经济调度(Economic Load Dispatch,ELD)是在某一时段负荷需求给定的情况下,确定该时段电力系统各机组的出力,使各机组在满足实际约束的前提下共同承担负荷需求,并寻求整个系统总运行成本的最小化[1]。ELD 是现代电力系统运行的一个关键问题,在提高电力系统运行经济性方面起着重要作用[2]。

在简单的电力系统负荷经济调度模型中,一般仅需考虑机组容量限制和功率平衡两个约束。然而,实际的经济调度问题需要考虑电力系统运行过程中存在的许多实际非线性约束,包括机组禁运区约束、“阀点效应”和爬坡速率限制等[3-4]。因此,电力系统负荷经济调度问题本质上属于一个非光滑、高度非线性的多约束优化问题。对电力系统经济调度问题的求解方法主要分为两类:一类是传统的经典数学类算法,包括拉格朗日松弛法、线性规划(LP)等,但这类优化算法在解决经济调度问题时一般需要简化发电成本函数、约束条件[5],或出现“维数灾”问题,计算时间长[6],不能满足实际电力系统的需求;另一类包括Hopfield 神经网络、动态HNN、禁忌搜索等智能算法,这些方法普遍存在“早熟”现象,并且收敛过程比较缓慢,导致很难收敛到全局最优解等问题[7],此外,智能算法在处理机组出力平衡约束时,若单独使用罚函数法处理约束条件,所得结果往往不太理想。因此,获取一种计算精度更高,实用性更强的方法来解决经济调度问题是当前电力系统研究的一个热点课题。

飞蛾扑火算法(Moth flame Optimization,MFO)是近年来一种新兴群体智能算法,其思想来源于对飞蛾扑火行为背后所蕴含的横向飞行机制的模拟[8]。由于飞蛾扑火算法模型简单,易于实现,在工程领域得到了广泛应用。国内有学者将MFO 算法应用于分析抽水试验数据,为精确估计承压含水层参数提供了有效方法[9]。另外,在文献[10]中,MFO 算法被用来优化马斯京根模型参数,获得了更高的模拟精度。在国外,Siddharth A.Parmar 等人将MFO 算法应用于电力系统最优潮流优化问题,展示了该算法在电力系统优化问题上的良好应用前景[11]。

针对上述问题,将综合考虑包括爬坡速率限制、禁运区、“阀点效应”及网络传输损耗等诸多电力系统运行中实际存在的约束,建立一个相对全面的、与实际运行更为接近的负荷经济调度模型。在模型的求解方法上,为了克服目前大部分算法所存在的“早熟”、局部收敛等问题,提高全局优化能力,引入MFO 算法对所建模型进行求解。此外,对于模型中的功率平衡约束问题,提出采用平衡机组法与罚函数法相结合的方式来处理功率平衡等式约束和不平衡功率分配问题,从而提高算法的收敛速度和计算精度。

1 电力系统负荷经济调度模型

ELD 问题是一个考虑多种约束的非线性优化问题,在确保系统安全稳定运行的前提下,通过决策确定投入机组的出力大小,以在满足出力计划的同时,最小化系统的发电成本。

1.1 目标函数

为确定负荷在运行机组之间的经济分配,机组运行成本一般表达成机组出力的函数。

若将电力系统的燃油成本函数看成一系列二次多项式的累加求和,则ELD 目标函数可表示为

式中:Fi(Pi)为第i 台机组的燃油成本函数;αi、βi、γi为第i 台机组燃油成本函数的系数;Pi为第i 台机组的出力;n′为投入运行的机组总数。

在实际电力系统中,考虑“阀点效应”的ELD 目标函数可以表示为

式中:ei、fi为第i 台机组反映“阀点效应”的系数;为第i 台机组出力下限。

1.2 约束条件

1)功率平衡约束为

式中:Pload为电力系统总负荷;Ploss为电力系统的网损,可用系数矩阵B 来近似表达为机组出力的函数:

式中:Bij、B00、B0i为已知的传输损耗参数;Pi和Pj分别为第i 台机组和第j 台机组的出力。

2)发电容量约束为

3)禁运区约束为

4)爬坡速率限制。

当出力增加时,为

当出力减少时,为

3 基于飞蛾扑火算法的经济调度模型

3.1 飞蛾扑火算法原理

2015 年Mirjalili 提出了飞蛾扑火算法(MFO),在MFO 算法中,飞蛾和火是2 种重要群体。飞蛾作为问题的候选优化解,在决策空间中飞行,而火则是飞蛾到目前所处迭代次数为止所找寻到的最好位置。因此,火可以作为飞蛾在搜索空间中搜索的“风向标”,每个飞蛾围绕在一个火的周围搜索,当找到一个更好的解时,就更新自己的位置。

飞蛾和火的n×d 个元素可分别用矩阵M 和F表示。

式中:n 为飞蛾(火)的数目;d 为变量的维度。

存储所有飞蛾和火适应度的向量可表示为

式中:OM为飞蛾的适应度矩阵;OM1为第1 只飞蛾的适应度;OMn为第n 只飞蛾的适应度;OF为火的适应性矩阵;OF1为第1 个火的适应度;OFn为第n 个火的适应度。

每个飞蛾围绕其所对应的火来更新位置:

式中:Mi为第i 个飞蛾的位置;Fj为第j 个火的位置;S 为对数螺旋函数。对数螺旋函数为

式中:Dij为第i 个飞蛾与第j 个火之间的距离;b 为用来确定对数螺旋函数形状的常数系数;t 为r~1 之间的随机数,r 在迭代过程中一般由-1 线性地减少到-2。t 越小,搜索的位置离火越近,通过t 取不同的值,可以得到飞蛾与火的不同位置关系,具体如图1所示。

MFO 算法的更新机制如图2 所示,横坐标t是范围在r~1 之间的随机数,纵坐标为飞蛾的位置,对数螺线更新公式通过飞蛾在火的周围搜索新的位置,有效利用历史优化解(局部开发能力)和探索未知区域(全局搜索能力),实现优化问题的求解。

为了使算法的探索与开发能力达到平衡,用来更新位置的火的数目随着迭代次数的增加动态的减少,当前迭代次数下火的数目计算公式为

式中:Nflame为当前迭代次数下火的数目,四舍五入取整数;T 为算法的最大迭代次数;L 为当前的迭代次数;N=n 为用来更新位置的火的最大数目(与飞蛾的数目相同)。

图1 t 对搜索位置的影响

图2 MFO 算法的更新机制

3.2 基于飞蛾扑火算法的经济调度模型求解

3.2.1 约束处理

电力系统负荷经济调度问题的优化变量是各台机组的有功出力,问题的维数等于机组的总数。结合MFO 算法和ELD 模型各自的特点,将每个飞蛾代表电力系统负荷经济调度问题的一个候选解,每个飞蛾的位置是由各台机组的出力组成的向量。

式中:P 为发电机组出力飞蛾矩阵,矩阵P 的行向量代表具体的每个飞蛾位置。

飞蛾扑火算法属于无约束的优化算法,应用于负荷经济调度问题时需要对各种约束进行处理,对于出力容量约束和禁运区约束,只需保证修正后的位置在满足约束的区域即可。

受到机组容量和爬坡速率的限制,第i 台机组的出力容量存在上下界限。

飞蛾在更新位置的过程中,可能会越过由出力容量约束式(15)和式(16)形成的可行边界。当飞蛾的位置存在一台或者多台机组不满足出力容量约束时,按照违反边界约束的多少对称地映射到边界内部,作为修正约束的最大范围,然后再在边界和边界内的映射位置之间随机确定修正后的机组出力,具体数学表达式为

式中:R 是0~1 之间均匀分布产生的随机数。

禁运区的存在让决策空间变得不再连续,出现了中断区域。飞蛾在更新位置的过程中,没有利用到禁运区约束的信息。因此,需要对飞蛾的位置进行禁运区的处理,简单的处理方法是,当存在某台机组出力落在禁运区中,则在上下边界之间重新随机初始化该台机组出力,直到机组出力不再落到禁运区中为止。

功率平衡约束是一个等式约束,传统方法一般是用罚函数法对不平衡功率进行惩罚,使算法尽可能在可行解区域或者尽可能接近可行边界的区域中寻优。然而,单独使用罚函数法处理约束因算法前期耗费大量的时间得到的多为不可行解。

3.2.2 功率平衡约束新算法

为了更有效地处理功率平衡约束,提出了一种平衡机组法与罚函数法相结合的方法。该方法通过寻找平衡机组,并在平衡机组的出力范围内调整它的出力来使得机组总出力满足系统的有功功率平衡。如果在遍历了所有机组后,仍然无法找到能使功率相平衡的平衡机组,则再结合罚函数法在目标函数中对不平衡功率进行惩罚。该方法显著增加飞蛾在可行解区域内进行寻优的可能,从而加速收敛过程,获得精度更高的优化解。

该方法的基本步骤如下(考虑网络传输损耗)。

步骤1:设置飞蛾的数目n,最大循环迭代次数Q 以及可接受的不平衡功率值P0,循环计数C0=1。

步骤2:T 为可能存在某个机组为平衡机组的机组数目,初始值等于机组总数n′,并生成一个由有序序列{1,2,…,g}产生的随机序列X。

步骤3:由随机序列X 生成一个含有n′-T+1 元素的平衡机组序列。

步骤4:计算网络传输损耗Ploss,再近似确定平衡机组的出力

式中:PI为用作平衡机组的功率。

步骤5:1)如果平衡机组的出力在机组出力上下界限之内,则看是否落在禁运区中,如果落在禁运区中,则平衡机组的出力设定为最接近的禁运区边界值;如果没有落在禁运区中,则直接将temp的值设定为平衡机组出力值;2)如果平衡机组的出力越过机组出力边界,则重新寻找平衡机组,T1=T0-1,如果T大于0,则返回步骤3 重新进入内部循环;否则说明本次循环已遍历完所有机组,未找到平衡机组。

步骤6:重新计算网络传输损耗Ploss,并利用式(19)计算不平衡功率的大小ΔP,如果C0≤Q 并且ΔP>P0,则C1=C0+1 并返回步骤2 重新进入外部循环迭代,否则约束处理结束。

3.2.3 算法实现流程

应用飞蛾扑火算法求解电力系统负荷经济调度模型的具体流程如下所示。

步骤1:飞蛾位置初始化,所有飞蛾在式(15)和式(16)所示的机组出力容量约束的上下界之间随机初始化位置

步骤2:机组运行约束处理,检查所有飞蛾的位置,如果某个飞蛾存在机组出力落在禁运区中的情形,则重新随机初始化该粒子落在禁运区的机组的出力,直到满足禁运区约束为止。如果某个粒子有部分机组出力超过上下界限,按照式(16)重新给机组出力赋值。

步骤3:功率平衡约束处理,利用平衡机组法处理功率平衡约束,结合步骤2 和步骤3 可得到完成约束处理过程的新的飞蛾种群。

步骤4:适应度评估,使用式(1)或式(2)所示的成本函数来评估所有飞蛾的适应度。如果利用平衡机组法后仍不满足等式约束,则利用式(21)所示的罚函数法对不平衡功率进行惩罚,迫使飞蛾飞离不可行区域,进而探索可行区域。其中,是考虑惩罚成本的总燃油成本(总的适应度),是第i 台机组的燃油成本函数,为罚因子。

步骤5:更新火的位置和适应度,如果是在第一代,飞蛾的初始种群直接作为火的初始种群。在迭代过程中,从火的种群和更新后的飞蛾种群所组成的种群中取前m 个适应度最好的个体作为新的火的种群,并更新火的适应度。

步骤6:飞蛾位置更新,飞蛾利用式(12)来参照对应的火更新自己的位置,火的数目按照式(13)动态的减少。

步骤7:最优发终止条件判断,如果达到最大迭代次数,则迭代终止。输出经济调度问题的最优调度方案(最好的火的位置)及发电成本(最好的火的适应度);否则,则跳到步骤2 重复迭代过程,直至满足终止条件。

4 实例应用

4.1 研究系统介绍

为了验证所提方法的可靠性和有效性,分别采用IEEE 6 机组系统[12]、15 机组系统[12]、40 机组系统进行仿真测试[13]。

6 机组系统为IEEE30BUS 系统,总的负荷需求是1 263 MW。模型计算中考虑爬坡速率限制、网络传输损耗以及禁运区约束,忽略“阀点效应”。

15 机组系统的总负荷需求是2 630 MW,禁运区约束、爬坡速率限制、网络传输损耗等实际约束均被考虑在内。其中2、5、6 号机组均有3 个禁运区,12号机组有2 个禁运区。该系统的决策区间是一个包含192 个凸区间的非凸决策空间。

40 机组系统的总负荷总需求是10 500 MW,不考虑禁运区约束,比6 机和15 机系统有着更多局部最优解的较大型系统。在本文中,考虑到模型的实用性,将考虑“阀点效应”和网络传输损耗的存在。

4.2 仿真计算与结果分析

所提出的方法使用MATLAB 编程实现,为验证方法的高效性和鲁棒性,针对每个算例都单独运行了50 次。

MFO 算法的参数设定如下:飞蛾种群数为40;应用于3 个不同算例时,最大迭代次数分别取100、250 和800。在式(12)中,b 取常数1,t 是范围在r~1之间的随机数,r 在迭代过程中,由-1 线性地减少到-2。罚因子在前一半迭代次数时取50,后一半迭代次数时取100。约束处理方法的最大循环迭代次数取5,不平衡功率偏差允许值取0.01 MW。

表1—表3 分别给出了6、15、40 机系统50 次寻优的发电成本的均值、最小值、最大值、最大偏差(最大发电成本与最小发电成本之差)和标准差。作为对比,表1 中给出了粒子群算法(PSO)遗传算法(GA)、差分进化算法(DE)和BF-NM 算法的计算结果;表2中给出了粒子群算法(PSO)、遗传算法(GA)、SOHPSO 算法和GA-API 算法的计算结果;表3 中给出了GA-API 算法、SDE 算法、TLBO 算法和QOTLBO算法的计算结果。

表1 不同算法的结果比较(6 机组系统)

从表1 可以看出,对于6 机系统,从MFO 算法50次试验结果来看,其最好结果是15443.07 美元/h,最差结果是15443.08 美元/h,平均结果是15443.07 美元/h,标准差是0.001 0。最差结果和最好结果仅相差0.01 美元/h,说明MFO 具有很好的鲁棒性。另外,从表1 还可以看出,MFO 的平均成本比PSO、GA、DE 和BF-NM 算法分别降低了10.93 美元/h、25.93 美元/h、6.71 美元/h 和3.88 美元/h,说明MFO算法在求解精度上显著优于其他算法。

表2 不同算法的结果比较(15 机组系统)

从表2 可以看出,对于15 机系统,MFO 算法50 次试验结果的最小、最大和平均成本分别是32697.15 美元/h、32698.04 美元/h 和32697.95 美元/h,标准差是0.029 3。相比其他算法,MFO 仍然表现出高效稳定的寻优能力,其最大偏差仅为0.89 美元/h,说明MFO 算法具有良好的鲁棒性和稳定性。就平均发电成本而言,PSO、GA、SOH-PSO 和GA-API 算法的求解结果比MFO 算法分别多了633.05 美元/h、530.05 美元/h、54.06 美元/h 和37.11 美元/h。

从表3 可以看出,对于40 机系统,MFO 算法50 次试验结果的最小、最大和平均成本分别 是136 876.38 美元/h、137 442.43 美元/h和137 081.00 美元/h,标准差是136.902 4,最大偏差为566.05 美元/h。就最小发电成本而言,相比GAAPI、SDE、TLBO、QOTLBO算法分别节省了2 988.58 美元/h、1 271.08 美元/h、937.97 美元/h 和453.48 美元/h,经济效益显著。通过对最优调度方案进行约束验证可知,MFO 所得调度方案仍能够很好地满足功率平衡和机组出力约束,表明了所提约束处理方法的合理性和有效性。

表3 不同算法的结果比较(40 机组系统)

图3 分别给出了飞蛾扑火算法在求解6 机、15机和40 机组系统的收敛曲线。从图3(a)中可以看出,在求解6 机系统时,MFO 算法迭代15 次就找到了可接受的最优解,说明MFO 算法能以较快的收敛速度获得高质量的优化解。从图3(b)中可以看出,在求解15 机组系统时,发电成本在50 次迭代以后已趋于稳定,说明此时MFO 已经找到可接受的优化解。从图3(c)可以看出,在求解40 机系统时,收敛曲线在100 代以内的下降梯度比较大,反映出MFO 算法具有良好的全局搜索能力,在100 代以后发电成本仍在进一步下降,反映出MFO 算法具有良好的局部开发能力。因此,收敛过程证实了MFO 算法在解决负荷经济调度问题时具有良好的全局搜索能力和局部开发能力。

图3 MFO 算法求解负荷经济调度问题的收敛曲线

5 结语

将MFO 算法应用于求解电力系统负荷经济调度问题,在模型构建中充分考虑了“阀点效应”、禁运区、网损、机组爬坡速率限制等诸多实际约束。在约束问题处理上,提出了平衡机组法和罚函数法结合的新型约束处理方法。

仿真结果验证了提出的混合约束处理方法可以通过分配不平衡功率和惩罚偏差值来有效的处理功率平衡约束问题,加速了算法收敛速度。

通过对3 个典型算例的仿真测试表明,相比于其他方法,所提方法具有更好的收敛特性、寻优能力及算法鲁棒性。

猜你喜欢

飞蛾出力适应度
改进的自适应复制、交叉和突变遗传算法
可爱的你
Trolls World Tour魔发精灵2
飞蛾说
一种基于改进适应度的多机器人协作策略
“出力”就要做为人民“出彩”的事
基于实测数据的风电场出力特性研究
勇敢的小飞蛾
基于空调导风板成型工艺的Kriging模型适应度研究
汽车内饰件用塑料挂钩安装力及脱出力研究