郭松林, 巴艳坤, 李 春
(黑龙江科技大学 电气与控制工程学院, 哈尔滨 150022)
近些年来,随着国家对绿色能源的倡导,生活越来越依靠电能。但由于电能难以大量储存,而负荷的需求也是实时变化的,因此,对于电力负荷的有效预测可以保障电网平稳、安全、经济地运行[1]。对此,国内外学者已经提出了诸多方案对电力负荷进行短期预测,张林等[2]利用正交小波对用电负荷序列进行分解,通过变种LSTM神经网络对各尺度负荷序列进行建模,有效地消除负荷数据的波动性。王剑锋等[3]提出了一种基于改进深度信念网络算法的负荷预测模型,提高了数据处理的效率。陈雪薇等[4]构建了基于迁移学习算法来预测新建建筑电力负荷的预测模型。关书怀等[5]建立了粒子群优化对RBF神经网络的负荷预测模型。冯忠义等[6]提出了一种基于随机森林和改进局部预测模型,提高了短期电力负荷的预测精度。康义[7]建立了基于粒子群算法优化LSTM的预测模型,改善了超短期负荷预测的精度。笔者提出一种改进麻雀搜索算法与BP神经网络相结合的短期负荷预测模型(BSSABP),将麻雀搜索算法中发现者的觅食行为由跳跃改为移动,优化BP神经网络的初始权值和阈值,以提高负荷预测模型的预测性能。
改进传统的SSA算法,主要是对算法的步长更新因子和发现者、警戒者位置更新公式进行调整,运用用BSSA算法迭代得到的结果赋值给BP神经网络作为其初始权值和阈值。由于改进后的麻雀搜索算法拥有较强的全局搜索能力,稳定性更强,由此,可以构建一个收敛更快,误差更小的短期负荷预测模型。
麻雀搜索算法是受麻雀觅食启发产生的。麻雀觅食时,会将所有个体进行调整,分为发现者和跟随者,并随机分配警戒者进行反捕食行为。
发现者要为整个种群指引方向,寻找觅食区域,发现者位置数学表达式为
(1)
α——(0,1]中的均匀随机数;
Q——标准正态分布的随机数;
R2——[0,1]中的均匀随机数;
ST——警戒阈值;
M——最大迭代次数。
当R2≥ST时,觅食区域可能存在危险,麻雀们必须飞往附近的安全位置;当R2 跟随者则是在发现者的指引下,在觅食区域内进行觅食,跟随者位置数学表达式为 (2) i——第i个个体; D——维度; n——种群数量; 由式(2)可以看出,若i>n/2时,该麻雀处于饥饿状态,必须马上飞往其他位置进行觅食行为;若i≤n/2时,麻雀会飞往附近最优位置。 麻雀会随机分配警戒者,负责守护种群进行觅食,警戒者位置数学表达式为 (3) 式中:β——符合标准正态分布的随机数; k——[-1,1]的均匀随机数; ε——极小数,防止分母为零; fw——最差位置麻雀的适应度; fi、fb——任意位置麻雀和最优位置麻雀的适应度值。 当fi>fb时,说明当前的麻雀正位于觅食区域的边缘,已经遭到其他捕食者的威胁,麻雀会逃到最优位置附近,可能丧失其他最优解;当fi=fb时,该预警的麻雀处于当前的最优位置时,它会飞往到自身附近的一个位置。 对传统SSA算法进行改进主要是对步长更新公式和发现者、警戒者位置更新公式的改进。 (1)步长更新公式的改进 在算法迭代的过程中,较大的步长会使群体大范围的进行搜索行为;较小的步长因子则会使群体在局部区域进行集中搜索[7]。但是在式(3)中,β和k的选取都是在一定范围内随机的,而随机选取可能不一定能满足算法的需求,且可能会使算法陷入局部最优解。 (4) 式中:fb——最优位置上的麻雀的适应度值; t——当前迭代次数。 证明:设t1 ∵fb-fw>0,t1-t2<0, ∴β1<β2。 因此,β是一个递增函数。 由式(4)可以看出,β不再是随机取值,而是表现出非线性变化,且是一个递增函数。对算法改进后,前期的β取值范围相对比较小,会使个体的局部搜索能力得到加强,而后期的取值相对较大,能够使麻雀进行大范围搜索,进而解决可能陷入局部最优的问题。 (5) 由式(5)知,k在迭代前期是递增的,迭代后期则会快速减少。该改进可以促使麻雀前期对于整个觅食区域的搜索更加充分,后期则可以极大地提高算法的收敛速度。 (2)位置更新公式的改进 改进后发现者位置更新公式为 (6) 对式(1)改进后,可以消除掉麻雀群体收敛于原点的操作,并且向最优位置的操作也由跳跃变为移动。改进后警戒者位置更新公式为 (7) 证明当fi≠fb时 当fi=fb时 对式(3)改进后可以看出,如果警戒者所处的位置最好,那么它会逃到最优和最差的位置之间的随机位置,否则,它将会逃到自己和最优位置之间的随机位置。在对整个算法进行改进后,可以看出麻雀不会再集中于原点了,大范围搜素能有效避免陷入局部最优的问题。选取基准函数测试BSSA的寻优性能。 单峰值函数Sphere基准测试函数为 (8) 多峰值函数Rastrign基准测试函数为 (9) 由式(8)和(9)可知,维度分别为30和4,理论上最优解均为0。改进前后算法的各初始参数均一致,分别运行30次,并对结果进行记录,计算出平均值和标准差,如表1所示。收敛性能对比如图1所示。 图1 测试函数收敛曲线Fig. 1 Convergence cure of test function 表1 测试结果Table 1 Test results 利用BSSA算法对BP神经网络进行优化的流程如图2所示,其适应度函数J的数学模型为 (10) 式中:N——训练样本的样本数; C——输出神经元个数; yij——神经网络输出值。 改进麻雀搜索算法优化BP神经网络的流程如图2所示。 图2 BSSA算法优化BP神经网络流程Fig. 2 Flow of BP neural network optimized by BSSA 选取所要预测日前一周、前两天、前一天的负荷数据、预测日平均温度和预测日类型当作输入变量,考虑工作日和双休对电力负荷也有相应的影响,因此,文中将工作日影响因子λ1确定为0.8,双休日影响因子λ2确定为0.2。选取预测日的电力负荷作为输出变量。并对负荷数据进行归一化处理,为了使模型得到更快的收敛速度和更高的精度,文中将数据处理在[0,1]之内。 对于隐含层神经元个数的选取是一个难题,个数过多的话,可能会出现过拟合的问题,而个数过少有可能会导致误差过大[8]。通过前人的研究[9],对于隐含层神经元选取时,试凑法不失为一个相对而言比较科学的办法;根据隐含层神经元个数不同时,造成的误差结果也有大有小,进而选择误差最小时的隐含层神经元个数,数学表达式为 (11) 式中:l、m、n——隐含层、输入层、输出层神经元个数; a——调整常数。 通过试凑法[10]进行测试,实验结果表明隐含层节点数为7时,误差最小。因此,确定5-7-1作为文中的神经网络拓扑结构。将误差目标设置为0.00 001,网络学习率设置为0.2,最大训练次数为1 000。 文中采集了某地从5月1日起到6月30日为止的共61组电力负荷样本数据,由于硬件故障或者数据传输过程中存在问题,负荷数据中可能存在异常点。文中对数据处理的表达式为 (12) 式中:A、A′——原始数据矩阵和处理完成的数据矩阵; i——矩阵行数取值范围,i=1,2,…,61; j——矩阵列数,取值范围,j=1,2,…,24。 将处理完异常点的数据作为数据样本,并对数据进行归一化操作,提高网络的迭代速度和精度。文中采用最大最小归一化法[11],其数学模型为 (13) 式中:X、X′——数据量; Xmax、Xmin——数据中的最大值和最小值。 选取前51组作为训练样本,剩下的10组数据作为测试样本。将两种模型分别得到的预测值与实际值作对比,得到结果如图3和4所示。 图3 SSABP和BSSABP预测结果Fig. 3 Prediction results of SSABP and BSSABP 由图3可知,BSSABP预测模型得到的预测更符合实际值,且经过计算得到SSABP的平均误差为0.012,而SSABP的平均误差为0.060。由此可见,改进之后的SSA算法在克服全局搜索能力弱,易陷入局部最优解等问题是可行的。 由图4可以看出,BSSABP预测模型明显收敛更快,且在同样的迭代次数下,训练后BSSABP预测模型误差更小。 图4 BSSABP和SSABP预测模型的训练结果Fig. 4 Training results of BSSABP and SSABP (1)优化SSA后,发现者向最优位置的移动方式由跳跃改为移动,提高了模型的全局搜索能力,步长更新因子由随机选取转换为非线性变化,增强了模型预测能力的稳定性。 (2)仿真实验表明,采用BSSA优化BP神经网络后,预测结果的平均误差降低了4.80%,BSSABP能够应用于短期电力负荷预测中,且预测精度更高。1.2 改进麻雀搜索算法
1.3 BP神经网络结构参数的设置
2 实例应用
3 结 论
——中国制药企业十佳品牌