粒式搜索者算法优化的SVM短期风电功率预测
2018-04-23陈国初
林 凯,陈国初
(上海电机学院电气学院,上海 201306)
0 引言
风能的不确定性和随机性使得风电功率预测成为风电场并网运行不可或缺的方法。风电功率的精准预测可以为电力调度提供依据,从而降低风电并网过程中对电网造成的不利影响。当前,风电功率预测主要预测时间尺度、预测模型分类[1]。本文采用支持向量机模型进行短期风电功率预测。支持向量机的预测精度主要受核函数参数g和惩罚因子c的影响。这两个参数的选择没有明显的规律可循。若随机选取参数,则不易获取理想的精度。文献[2]提出了基于改进遗传算法优化支持向量机(support vector machine,SVM)参数的方法。文献[3]提出了基于混合梯度下降优算法的支持向量机参数的优化。
搜索者算法(seeker optimization algorithm,SOA)是一种基于种群的启发式随机搜索算法。搜索者算法具有原理简单、鲁棒性强、收敛速度较快的特点,但较易陷入局部极值。支持向量机c和g参数的寻优问题是二维最小值问题,故本文针对SOA的二维寻优能力进行改善,提出基于粒式搜索者算法的SVM风电功率预测。
1 支持向量机
SVM由Vapink和Corinna Cortes等人[4-6]在1995年首先提出。统计学理论基础是支持向量机的理论基础,更确切地说,SVM是近似地实现结构风险最小化。近年来,支持向量机在预测方面的研究也越来越多,文献[7]提出了基于模拟退火算法、贝叶斯证据框架和交叉验证优化算法优化最小二乘支持向量机参数的方法,实现对蓄电池荷电状态的预测。文献[8]利用搜索者算法对支持向量机进行参数优化,实现了负荷功率的预测。构造支持向量机学习算法的关键是输入空间抽取的向量和支持向量之间的内积核。标准的支持向量机算法是通过非线性函数,将给定训练集中的n维输入数据映射到高维空间形成线性模型。回归方程公式如式(1)所示。
f(x)=ωφ(x)+b
(1)
式中:φ(x)为非线性映射函数;ω为权向量;b为阈值。
支持向量机最优化问题可表示为:
(2)
支持向量机结构图如图1所示。
图1 支持向量机结构图 Fig.1 The structure of the SVM
图1中:K(X,Xn)为核函数,主要有线性核函数、多项式核函数、高斯径向基核函数、两层感知器和函数。而高斯径向基核函数具有较高灵活性、参数少、数值计算方便等优点,故本文选用高斯径向基核函数,见式(3)。
(3)
式中:K(x,xi)为输入向量;xi为第i个径向基函数的中心点;σ为核参数。
2 基于二维参数改进的粒式搜索者算法
2.1 标准搜索者算法
SOA[9-11]以搜索队伍为种群,通过利己行为、利他行为、预动行为和不确定推理行为来模拟人类搜索的不确定性推理和“经验梯度”,实现步长和搜索方向的确定,从而更新位置,完成对问题的优化。
模糊变量采用高斯隶属函数:
(4)
式中:UA为高斯隶属度;x为输入量;u、均为隶属度函数参数,后者可由式(5)求得。
(5)
式中:xmax为函数值最大的位置;xmin为函数值最小的位置;ω为惯性权值;iter为当前迭代次数itermax为最大迭代次数。
步长和搜索方向公式分别如式(6)、式(7)所示。
(6)
(7)
式中:xij(t)为当前迭代次数;gij,best为第i个个体的第j维在邻域内的全局历史最佳位置;pij,best为第i个个体的第j维在邻域内的个体历史最佳位置;sign为符号函数;φ1、φ2为(0,1)之间的随机数;ω为惯性权值。
搜索位置更新公式如式(8)所示:
(8)
2.2 粒式搜索者算法
粒式搜索者算法是为加快收敛速度、加强全局搜索能力而改进的搜索者算法。在方向搜索中,引入粒子群算法搜索公式,在搜索后期结合强化局部搜索的方向搜索公式,同时,结合改进步长确定公式,使其能够合理平衡全局搜索能力和局部开发能力。这种方法称作粒式搜索者算法(particle type seeker optimization algorithm,PTSOA )。
2.2.1 搜索方向的确定
为加快算法前期收敛速度,增强算法在搜索后期跳出局部极值的能力,本文在方向搜索公式中加入了带有压缩因子的粒子群位置搜索公式,并强化原有搜索方向公式的局部搜索能力。同时,为了更好地利用全局搜索能力和局部开发能力,本文采用了自适应动态更换搜索方式的策略,使得算法的搜索方向能在宏微调控中动态地自如转换;在局部开发陷入极值陷阱时,搜索方向进行宏调方式,从而跳出局部极值;在全局搜索过度时,搜索方向进行微调方式,进行局部搜索。宏搜索方向公式、微搜索方向公式分别如式(9)、式(10)所示:
(9)
dij(t)=sign(ωdij,pro+φ1sign(dij,ego)+
φ2sign(dij,alt)
(10)
2.2.2 步长确定
常规的搜索步长以种群中的最大值和最小值的位置差的绝对值为基准。若算法初始化参数时出现了最差位置,会使得迭代过程中种群最差位置恒定不变,从而使步长失准。为增加搜索的多样性,在步长确定公式中引入随机位置参数代替种群最差位置,则步长确定公式如式(11)所示:
(11)
式中:xbest为群体最佳位置;为(0,1)之间的随机数;H为步长基准值。这样使得搜索步长灵活变化,增强种群活性。
2.2.3 越界位置处理
当搜索队伍跳出搜索范围时,常规方法是将搜索队伍的位置重置在边界处,致使在搜索后期,在边界处大量聚集搜索队伍,从而陷入局部极值,减少搜索覆盖面。本文采用式(12)进行重置。
Xij=Xmin,j-rand(0,1)(Xmax,j-Xmin)Xij (12) PTSOA实现步骤如下。 ①设置种群数目sizepop、连续未更新次数limit、最大迭代次数maxCycle等必要参数。 ②初始化sizepop个搜索队伍位置Xij(i=1,2,…,sizepop;j=1,2,…,D)。 ③计算初始位置的目标函数适应值fit。 ④while(iter<=maxCycle)do。 ⑤for i=1 to sizepopdo。 ⑥计算利己行为、利他行为和预动行为。 ⑦判断最优值连续未更新次数trail是否超限。是,按原公式进行搜索方向确定;否,则变换搜索方向确定公式进行搜索方向确定。 ⑧根据式(11)确定搜索步长。 ⑨根据式(12)对跳出搜索边界的搜索队伍进行处理。 五个经典基准测试函数[9]仿真结果如表1所示。f1~f2为单模函数,用于考察算法的寻优精度、收敛速度;f3~f5为多模函数,考察算法摆脱局部最优解的能力和全局搜寻能力。 表1 五个经典测试函数仿真结果Tab.1 Simulation results of five classic test functions 在PTSOA的测试过程中,为了让试验结果更具说服力,将对以上五种经典基准测试函数进行寻优,并与标准搜索者算法相比较。本文通过大量试验确定算法参数阀值。搜索者算法的参数设置如下:种群数目sizepop=50,迭代次数maxCycle=300,最大允许的连续开采次数limit=5,误差极限为1e-6。在每个基准测试函数都进行二维测试,每组都独立测试30次,将结果中的平均值、最优值、最差值、标准差这四种指标进行比较。经典基准函数测试优化结果如表2所示。五种经典测试函数优化曲线如图2所示。 表2 经典基准函数测试优化结果Tab.2 Optimization results of theclassical benchmark functions 图2 五种经典测试函数优化曲线 Fig.2 Optimization curves of five classic test functions 从表2可知,对于二维Sphere、Rosenbrock、Ackley函数,虽然SOA和PTSOA均未找到理论最优值,但是PTSOA最为接近最优值,且均值、最差值和标准差均优于SOA;对于二维Rastrigin函数,PTSOA以60%的达优率搜索到最优值,明显优于SOA,且PTSOA的均值和标准差更小,说明PTSOA比较稳定;对于二维Schwefel函数,SOA和PTSOA分别以40%和60%的达优率找到全局最优值,但从均值和标准差上看,PTSOA更加稳定。 由图2可见,在迭代过程中,PTSOA曲线下降收敛速度均快于SOA曲线的收敛速度。PTSOA曲线更加接近最优解,未达到最大迭代次数时,算法就已经找到比SOA更优的解。由此可以看出,PTSOA能更精准、快速地找到最优解,为之后PTSOA优化风电功率预测模型参数奠定基础。 支持向量机的c和g会影响其建立的预测模型的预测回归性能,因此,采用PTSOA对其进行优化,可提高模型预测回归性能,具体操作步骤如下。 ①对风电场原始数据进行数据处理,然后进行归一化,通过支持向量机建立风电功率预测模型。 ②以风电功率预测结果的平均相对误差作为粒式搜索者算法的适应度函数。 ③将支持向量机的g和c作为待优化参数,并作为搜索队伍的位置变量,初始化搜索队伍的位置,计算初始适应度值。 ④根据式(7)计算利己行为、利他行为、预动行为。 ⑤选择对应的搜索方向确定公式,进行方向确定。 ⑥根据式(11)确定搜索步长,并根据式(8)进行搜索队伍位置更新;然后根据式(12)对超出搜索范围的搜索队伍进行重置位置。 ⑦判断个体最佳适应度值是否更新(本文约定为3代),若连续未更新次数超限,更换搜索方向确定公式。 ⑧判断算法是否满足收敛条件(一般为达到最大迭代次数或设定的误差精度要求),若满足则跳出循环结束搜索;反之,则跳回步骤④继续搜索。 ⑨将得到的最优解作为SVM模型参数,建立预测模型。 ⑩通过风电功率数据进行测试,将得到的预测结果进行误差分析。 本文采用某近海风电场实测风电功率数据对预测模型行进测试,验证搭建的模型可行性。风电功率序列如图3所示。选用的风电功率数据的时间尺度单位为小时,每个数据点之间的时间间隔为1 h,本文选取其中300组数据用于训练模型,预测未来50组风电功率值。设置算法参数:搜索队伍规模为30,循环次数为100,连续未更新限制次数limit为3,学习参数分别为2.8、2.05,惯性权值最大值和最小值分别为0.9、0.1,隶属度最大值和最小值分别为0.95和0.011 1,c和g的搜索范围分别为(0.01,100)、(0.001,5)。本文将PTSOA-SVM预测模型与交叉验证(cross validation,CV)优化参数的SVM预测模型相比。通过PTSOA-SVM模型进行训练,得到c=0.398 7,g=0.638 5;通过CV-SVM模型进行训练得到c=0.25,g=4。风电功率预测对比如图4所示。预测结果绝对误差对比如图5所示。 图3 风电功率序列图 Fig.3 Sequence diagram of wind power 图4 风电功率预测对比图 Fig.4 Comparison of wind power prediction values 图5 预测结果绝对误差对比图 Fig.5 Comparison of the absolute errors of two prediction methods 两种方法的预测结果都能显示出实际风电功率的变化趋势,但PTSOA-SVM模型预测结果明显比CV-SVM模型更加切合实际值。为更好地比较两者的预测效果,表3给出了两种模型预测结果的平均相对误差(mean relative error,MRE)、平均绝对误差(mean absolute error,MAE)、最大绝对误差(max-absolute error,Max-AE)、均方根误差(root mean squared error,RMSE)。 表3 MRE、MAE、Max-AE和RMSE比较Tab.3 Comparison of MRE,MAE,Max-AE and RMSE 精确的风电功率预测能有效降低风电不确定性对电网的影响,反之,则会造成更大的冲击。本文通过引入新的搜索方向确定公式,并合理搭配两种方向确定公式,使得搜索方向确定多样化。同时,改进步长确定公式和边界越限处理方式,提高了搜索队伍在算法迭代过程中保持的灵活性,从而更易跳出局部极值陷阱。然后将基于二维参数优化改进的PTSOA算法应用于SVM风电功率预测模型,提高了其风电功率预测精度。结果表明,与CV-SVM相比,PTSOA-SVM模型的拟合精度更佳。 参考文献: [1] 钱政,裴岩,曹利宵,等.风电功率预测方法综述[J].高电压技术,2016(4):1047-1060. [2] 陆梓端,高茂庭.基于改进遗传算法的支持向量机参数优化[J].现代计算机(专业版),2014(9):25-29,34. [3] 莫赞,刘希良,谢海涛.基于混合梯度下降算法的支持向量机参数优化[J].网络新媒体技术,2014(2):54-58. [4] CHANG C C,LIN C J.LIBSVM:A library for support vector machines[J].ACM,2011(2):1-27. [5] 郭明玮,赵宇宙,项俊平,等.基于支持向量机的目标检测算法综述[J].控制与决策,2014(2):193-200. [6] 丁世飞,齐丙娟,谭红艳.支持向量机理论与算法研究综述[J].电子科技大学学报,2011(1):2-10. [7] 王琪,孙玉坤,黄永红.基于参数优化的最小二乘支持向量机HEV阀控铅酸蓄电池SOC预测[J].中南大学学报(自然科学版),2015(1):113-119. [8] 魏立兵,赵峰,王思华.基于人群搜索算法优化参数的支持向量机短期电力负荷预测[J].电测与仪表,2016(8):45-49. [9] 赵伟.基于SOA-LSSVM的短时交通流量预测[J].计算机与现代化,2015(6):27-31. [10]王琪,孙玉坤,黄永红.基于参数优化的最小二乘支持向量机HEV阀控铅酸蓄电池SOC预测[J].中南大学学报(自然科学版),2015(1):113-119. [11]余胜威,曹中清.基于人群搜索算法的PID控制器参数优化[J].计算机仿真,2014(9):347-350.2.3 PTSOA算法基本流程
3 PTSOA优化性能
4 PTSOA-SVM在风电功率预测中的应用
4.1 基于PTSOA算法的SVM模型
4.2 实例分析
5 结束语