熊国江, 张 靖, 何 宇
(贵州大学 电气工程学院, 贵阳 550025)
经济调度(economic dispatch,ED)是指通过合理分配各台发电机的发电功率,使总发电费用最小,从而达到节能降耗的目的,在此过程中需要满足一定约束条件。在数学上,ED问题是一个典型的含多重复杂约束条件的非线性优化问题,而发电机阀点效应的引入进一步加剧了该问题的求解难度。为了有效求解ED问题,国内外学者提出了诸多求解方法,一类是传统数学规划方法。这类方法以梯度信息为基础,具有严密的数学逻辑,但对初始点和梯度较为敏感,在求解多峰优化问题时容易陷入局部寻优。
现代智能优化方法作为计算机技术与人工智能技术不断发展的产物,其兴起为ED问题的求解提供了另外一种新途径。智能优化算法在求解过程中摒弃了梯度信息的计算,从而对初始点的选择不敏感,不依赖梯度信息,具有良好的全局搜索能力。目前已成功应用于ED问题中的智能优化算法包括:进化规划算法(evolutionary programming, EP)[1],遗传算法(genetic algorithm, GA)[2],粒子群优化算法(particle swarm optimization, PSO)[3-8],市场交易算法(exchange market algorithm, EMA)[9],差分进化算法(differential evolution, ED)[10-12],布谷鸟算法(cuckoo search, CS)[13],人工蜜蜂群算法(artificial bee colony, ABC)[14-15],萤火虫算法(firefly algorithm, FA)[16]等。
根据“没有免费的午餐”(no-free-lunch theorem)理论[17],没有任何一种优化方法能永远保持最优。该理论也激励研究者们不断寻找更加高效的方法来求解ED问题,探讨其他方法在该问题上的可行性和有效性,丰富ED问题的求解思路。正余弦优化算法(sine cosine algorithm, SCA)[18]是近年来提出的一种新的智能优化算法,采用正弦函数与余弦函数完成迭代运算,其设计遵循简单、快速的原则,算法无需额外调节的参数,从而提高了应用的便利性。与GA、PSO等相比,SCA在多峰优化问题上表现出了较强的竞争力。基于上述背景,本文将SCA算法应用于求解ED问题,探讨该求解方法的可行性和有效性。在Matlab软件平台[19-21]上,计及了阀点效应、爬坡率约束、运行禁区约束等实际情形,利用一种规避罚因子方法来处理ED问题的多重复杂约束条件,通过3个不同类型算例从不同角度验证了SCA算法的优化性能。仿真实验结果表明,与GA和PSO相比,SCA算法可以快速获得更加稳定、经济的调度方案。
ED是一个非线性优化问题,可描述为[22]:
(1)
式中:C为发电费用;N为并网发电机台数;P=[P1,P2,…,PN]为发电机组出力向量;Pn为第n台发电机的出力;Fn(Pn)为第n台发电机的成本函数;gj(P)和hj(P)分别为不等式约束和等式约束。传统上,Fn(Pn)可近似为如下二次函数[2-4]:
(2)
式中,an、bn、cn为成本系数。
火电机组在实际运行过程中存在阀点效应,该效应可表示为[3-4]:
(3)
阀点效应使目标函数存在很多极值点,极大地增加了ED问题的优化难度。
供需平衡约束:
(4)
式中:Pdem为总负荷;Ploss为总网损。一般计算如下[2-4]:
(5)
式中,Bij、B0i、B00分别为常数系数。
发电机出力约束:
(6)
发电机爬坡率约束:
(7)
n=1,2,…,N
式(6)和式(7)可以统一为:
(8)
发电机运行禁区约束:发电机在实际运行过程中,受自身或某些辅机的影响,不能运行在某些区域内,否则可能会造成设备损坏。
(9)
SCA算法的设计遵循简单、快速的原则,每个个体可表示为:
Xi=[xi,1,xi,2,…,xi,D],i=1, 2, …, NP
NP为种群规模。SCA的迭代过程仅仅依据式(10)和式(11)所示的正弦函数与余弦函数实现:
(10)
(11)
式中,G=[g1,g2,…,gD]为最优个体;r1随机分布于(0,1)范围内,r2随机分布于(0,2π)范围内,r3随机分布于(0,2)范围内。
SCA在迭代过程中,采用一个(0,1)范围内的随机数r4来选择式(10)或式(11)。SCA算法流程:
1. 初始化种群X=[X1,X2,…,XN]
2. 计算种群所有个体的目标函数值
3. 初始化迭代次数t=1
4. While终止判据未满足do
5. 通过目标函数值确定最优个体G
6. fori=1 to NP do
7. ford=1 to D do
8. 生成随机数r4
9. ifr4<0.5 do
10. 采用式(10)更新xi,d
11. else
12. 采用式(11)更新xi,d
13. end if
14. end for
15. end for
16. 计算所有更新个体的目标函数值
17.t=t+1
18. End while
基于SCA算法的ED问题求解流程如图1所示。首先输入系统相关参数并初始化SCA,然后按照SCA的流程进行循环迭代,待达到终止条件后,结束SCA并输出优化结果,从而获取所有发电机的出力分配方案。值得说明的是,在计算每个个体的目标函数值之前,需要对其进行处理以满足所有约束条件。本文采用文献[23-24]中提出的规避罚因子方法来处理约束条件。
图1 基于SCA算法的ED求解流程
采用3个系统来检测SCA算法:
(1) 13机系统和40机系统[1],均考虑发电机阀点效应;
(2) 15机系统[9],考虑发电机爬坡率约束、运行禁区约束和系统网损。
为了测试SCA的优化性能,采用GA和PSO进行对比,各算法独立执行50次。所有仿真均在Matlab R2010b中进行,硬件参数为3.70 GHz CPU,8 GB内存。对于所有算法,NP=100,最大迭代次数Tmax=100×D。3个算例的实验结果列于表1~3中,平均成本对应的收敛曲线见图2~4。
表1 13机系统仿真结果(算例1)
表2 15机系统仿真结果(算例2)
表3 40机系统仿真结果(算例3)
(1) 经济性比较。算例2的目标函数是二次函数,运行禁区使其解空间呈现出多分段、非连续特性,但其解空间只有一个极值点,对求解方法的局部寻优能力要求较高。由表2可知,SCA在50次独立重复实验中,不管是最大成本、最小成本还是平均成本均最优,表明SCA的局部搜索能力较强。
图2 算例1收敛曲线
图3 算例2收敛曲线
图4 算例3收敛曲线
算例1和3考虑了发电机阀点效应,解空间具有很多极值点,对求解方法的要求更高,特别是算例3,其维度更多,解空间更加复杂,不仅要求求解方法能实现局部精细搜索,而且还需要有足够的摆脱局部极值点吸附的全局搜索能力。由表1和表3可知,SCA的优化结果均优于GA和PSO的优化结果,且在40机系统上的优势更大,说明SCA可以有效跳出局部极值点,朝着更优的方向继续搜索。
此外,与部分文献的仿真结果比较,SCA也表现出了很强的竞争力。
(2) 快速性比较。虽然ED问题的首要目标是提高系统经济性,节能降耗,但对求解方法的求解速度也有一定要求。由表1~3可知,SCA在3个算例上的求解耗时分别为6.39、20.12、56.61 s,求解速度最快,能满足ED问题的求解需求,这也正是SCA遵循简单、快速的设计原则的结果。
(3) 收敛性比较。由图2~4可知,GA的收敛速度最慢;PSO虽然在前期的收敛速度较快,但后期明显呈现停滞现象,特别是对于13机系统和40机系统,表明算法在进化后期陷入了局部搜索,产生早熟; SCA自始至终均保持较快的收敛速度,从另一个角度表明该算法能有效跨过局部极值点,具有较强的全局搜索能力。
(4) 鲁棒性比较。标准差可以用于评价一个算法的鲁棒性。由表1~3可知,SCA在3个算例上50次仿真结果的标准差分别为20.53、2.29、46.37,均小于其他方法,表明该算法的稳定性较好,即具有较强的鲁棒性。
本文将SCA算法应用于求解ED问题,通过3个算例从经济性、快速性、收敛性、鲁棒性4个角度验证了该方法的求解性能。仿真结果表明,与其他算法相比,SCA算法能有效兼顾局部搜索和全局搜索,表现出了较强的竞争力,可作为ED问题求解的一种有效方法。