分形插值在风速时间序列中的应用
2020-09-29郭秀婷朱昶胜张生财赵奎鹏
郭秀婷,朱昶胜,张生财,赵奎鹏
(1.兰州理工大学计算机与通信学院,兰州 730050;2.兰州理工大学理学院,兰州 730050)
0 引言
可再生能源发电具有不依赖化石燃料、减少温室气体排放、保护环境等一系列优点,因此得到了快速发展;其中风能作为一种低成本、分布域广的清洁能源得到了各国的高度重视[1]。但风的间歇性和随机性给风力发电的规划及管理带来了很多困扰[2-3],而风速预测和风电功率预测是应对风电大规模并网运行问题的重要手段,因此风速预测和风电功率预测成为全球研究的热点[4-6]。受天气因素、地理环境因素、传感器精度、电磁干扰以及通信故障等因素影响,采集到的风速数据会出现一定的异常值甚至一段时间的缺失值,但在研究过程中这些异常值和缺失值却至关重要,因此研究适用于风速的异常值检测及插值算法具有重要的意义[7-8]。
陈伟等[8]在处理风电异常数据时采用三次样条插值进行数据重构,但自然风速时间序列是一个波动强烈的非线性时间序列,Lagrange、三次样条和线性插值等传统插值算法中,任意两个信息点之间用直线或者光滑的曲线连接,掩盖了相邻插值点间的局部变化特征,因此用于波动强烈的风速时间序列效果并不理想;武艳强等[9]提出的多点三次样条插值算法对于频率相对稳定的低频和中频曲线插值效果比较理想,但对于包含多种频率混合的非线性风速曲线却不适合;杨茂等[10]提出用支持向量机重构风电数据,但由于参数的敏感性因素导致误差较大;陈伟等[11]提出一种粒子群优化的最小二乘支持向量机对风速数据进行重构,但将缺失风速置为零后的时间序列参与模型训练,如果连续缺失数据较多,则参与模型训练的数据本身误差较大,无法保证插值效果,且计算量大;自然风速时间序列具有典型的分形特征[12-13];文献[14-15]用分形插值算法及分段分形插值算法处理TurbSim 仿真软件在特定条件下生成的模拟风速时间序列,这种理想风速时间序列不受瞬时天气条件的影响,与实测风速有一定的差距。
本文将自适应粒子群算法优化的分形插值算法应用到甘肃省某风电场实测风速时间序列的连续缺失值的重构问题,实验证明针对波动强烈、连续缺失数据量大的风速时间序列,分形插值算法可以取得比传统插值算法更高的精度。
1 分形插值原理
分形插值的概念是由美国数学家Barnsley于1986年提出来的。分形插值[16]与多项式插值和曲线插值不同,它是由一类特殊的迭代函数系统(Iterated Function System,IFS)产生的,它是针对集合而非针对点的,能够反映出相邻已知相关点之间的局部特征,得到比传统插值方法更高的精度。
1.1 数据集
假设点集 {(xi,yi)∈R2|i=0,1,…,N},其中{(xi,yi)∈R2|i=0,1,…,N},对应于这个数据集合的插值函数是一个连续函数f:[x0,xN]→R,使得:
点(xi,yi)∈R2称为插值点,函数f内插该数据且f的图形穿过该插值点。吸引子G={(x,f(x));x∈[x0,xN]}是内插数据的连续函数的图像。
1.2 构造IFS
考虑IFS{R2;Wn,n=1,2,…,N},其中Wn是具有如下形式的仿射变换:
将已知点代入方程(4),不断迭代,使系统收敛到其构造的吸引子G附近,即完成了插值运算。
1.3 分形维数
分形维数是刻画分形特征的定量指标,它可以衡量两个分形的相似程度,是衡量分形物体不规则程度的参数。对于风速时间序列,分形维数表示研究时间段内风速波动的强烈程度,分形维数越大表明风速波动越剧烈[17]。分形维数的计算遵循如下定理:假定数据集{(xi,yi)}不共线且则满足G的分形维数D是如下方程的唯一常数解:
否则,满足G的分形维数等于1。
式(5)表明分形维数D不依赖于因变量(数据集),而自由变量垂直比例因子dn较为关键,它能影响分形维数D的确定。目前常用盒维数法求解分形维数,即采用边长为δi(i=1,2,…)的正方形的网格覆盖分形体,数出覆盖分形体所需盒子的数目N(δi),随着 limδi→0,得到一组数据(lnδi-1,lnN(δi))(i=1,2,…,M),用最小二乘法拟合,得到的拟合直线的斜率即为分形体的分形维数。
2 自适应变异粒子群优化算法
2.1 粒子群优化算法
粒子群优化(Particle Swarm Optimization,PSO)算法是一种群体智能的优化算法,源于对鸟类捕食行为的研究。这种算法最早由Kennedy 和Eberhart 在1995 年提出,是一种非常成熟的求解优化问题的方法。该算法及其改进算法已在各种行业得到广泛应用[18-20],并取得了很好的效果。粒子群算法收敛速度快,具有很强的通用性。算法中每个粒子都代表问题的一个潜在最优解,用位置、速度和适应度值三项指标表示粒子的特征。位置用来存储用来优化的变量,在本文中表示分形插值的垂直比例因子参数值,适应度值表示粒子的优劣,粒子的速度决定粒子移动的方向和距离,速度随着自身及其他粒子的移动经验进行动态调整。最初随机初始化粒子,计算每个粒子的适应度值,根据适应度值更新个体极值和群体极值,然后粒子在解空间中运动,通过跟踪个体极值和群体极值更新个体的位置和速度,粒子每更新一次位置,就重新计算一次适应度值,通过比较新粒子的适应度值和个体极值、群体极值的适应度值更新个体极值和群体极值,最终的群体极值即最优解。
每次迭代过程中,粒子通过个体极值和群体极值更新自身的位置和速度,公式如下:
其中:Vi为粒子的速度,Xi为粒子的位置,Pi为个体极值,Pg为群体极值,ω为惯性权重,c1和c2为加速度因子,是非负的常数,k为当前迭代次数,r1和r2为分布在[0,1]区间的随机数,γ为约束因子。
其中ω的计算公式如下:
其中:ωstart和ωend分别为初始惯性权重和迭代至最大次数时的惯性权重,分别取值ωstart=0.9、ωend=0.4,Tmax为最大迭代次数。
本文中参数取值为c1=c2=1.49,γ=0.5,最大迭代次数Tmax=100,种群大小p=15。
2.2 自适应变异粒子群算法
粒子群算法虽然具有收敛快、通用性强的优点,但同时存在易早熟收敛、搜索精度低等缺点,因此,在本文中提出将遗传算法中的变异思想引入PSO算法,即在粒子每次更新之后,引入变异算子,以一定的概率重新初始化粒子。变异操作拓展了在迭代中不断缩小的搜索空间,使粒子能够跳出当前搜索到的最佳位置,在更大的空间中开展搜索,保持了粒子的多样性,同时提高算法搜索到更优值的可能性。本文中采用的变异算子公式如下:
其中r为在[0,1]区间的随机数。
3 衡量分形插值结果的指标
3.1 插值误差
插值曲线与实际曲线之间的误差称为插值误差。本次实验采用均方根误差(Root Mean Square Error,RMSE)对插值结果进行评价:
3.2 纳什效率系数
纳什效率系数(Nash-Sutcliffe Efficiency coefficient,NSE),用于表示模拟结果与实际结果的吻合程度,本文用于验证插值曲线与实际曲线的吻合程度,吻合程度越高表示插值效果越好,公式如下:
4 实验结果与讨论
所有实验运行环境均为:1.60 GHz CPU(8 CPUs),8.00 GB RAM,Windows 10,Matlab R2019a。
4.1 实验数据统计分析
采用甘肃省酒泉风电场2017 年1 月9 日09:55 至22:20的间隔5 min 的150条数据集和2017 年1 月10 日00:00 至14:30 间隔5 min 的175 条数据集进行实验,简称Dataset A 和Dataset B,这两组数据统计指标即:均值(Mean),最小值(Min),最大值(Max)和标准方差(Standard deviation,Std.),如表1和图1所示,由此可知该组数据表现出非线性和较强的波动性。在两组数据集中分别抽取30 个数据点和40 个数据点作为插值初始点。
表1 实验数据集的统计指标Tab.1 Statistical indexes of experimental datasets
图1 实验数据集的曲线Fig.1 Curves of experimental datasets
4.2 参数的设定
4.2.1 垂直比例因子
由式(4)可知,有一个自由变量dn(|dn|<1),即垂直比例因子,它是影响分形插值精度的关键因素,当dn=0 时,分形插值函数就变成分段线性插值函数。图2 为选取不同的垂直比例因子时图形呈现的不同形态,由图2可以看出随着|dn|的增大,分形插值拟合曲线越来越粗糙,波动幅度越来越大,曲线的局部特征也更加明显。分形维数是刻画风速序列波动的强烈程度的指标,图3 验证了|dn|越大,分形维数D越大,即风速曲线波动越强烈。
图2 垂直比例因子对曲线的影响Fig.2 Influence of vertical scaling factor on curve
图3 分形维数随垂直比例因子的变化Fig.3 Change of fractal dimension with vertical scaling factor
但|dn|并不是越大越好,即不代表插值曲线局部特征越复杂越好,图4 为RMSE 随dn取值的变化,由此可知,dn严重影响分形插值的误差。
图4 RMSE随垂直比例因子的变化Fig.4 Change of RMSE with vertical scaling factor
本文采用自适应变异粒子群算法对垂直比例因子dn进行寻优,粒子群中每个粒子包含垂直比例因子,且以式(9)RMSE为适应度值,即最优垂直比例因子取值满足以下公式:
4.2.2 迭代次数
表2 给出了迭代次数对分形维数、插值误差、运行时间及插值点数的影响。由表2 可知,随着迭代次数的增多,分形维数基本不变,即曲线波动的强烈程度不随迭代次数的改变而改变,插值误差也基本不受迭代次数的影响,但迭代次数越多,插值得到的数据点数越大,曲线细节会更丰富,但不会变光滑。图5 给出了迭代次数分别为2 和4 时的图形,由局部放大图可以明显看到迭代2 次和迭代4 次插值得到的数据点的密集程度的差别。迭代次数n与生成的插值点数m之间的关系[17]为:
其中q为初始插值点的个数。虽然迭代次数越多,插值得到的曲线细节越丰富,但该参数不宜取得过大,符合实际插值要求即可,迭代次数过大会增加计算时间,降低计算效率,本次实验迭代次数选择2次即可满足要求。
图5 迭代次数对插值点数的影响Fig.5 Influence of iteration number on interpolation point number
表2 迭代次数对各指标的影响Tab.2 Influence of iteration number on different indexes
4.3 分形插值与传统插值的插值结果的对比研究
分别采用三次样条插值、Lagrange 插值等传统插值方法和分形插值算法进行比较分析,Dataset A 数据集的插值结果如图6 所示。结果表明:分形插值较好地保持了图形的形状以及粗糙程度,能更好地凸显图形的局部细节特征;而Lagrange 插值和三次样条插值只是保持了图形的大致形状,相邻点间用光滑曲线连接,忽略了图形局部丰富的信息。
表3是对Dataset A数据集插值结果的各种量化指标,三种插值结果的均值与原始数据相差均不大,对于表征曲线波动强烈程度的分形维数,Lagrange插值与分形插值相当,三次样条插值最差;分形插值误差最小为0.501 8,与Lagrange插值算法比较,减小了66.52%,与三次样条插值算法比较,减小了58.57%;分形插值序列与原始序列的吻合程度同样最佳,达到0.812 0,远远超过Lagrange插值和三次样条插值两种传统插值方法。
图6 Dataset A插值效果比较Fig.6 Interpolation effect comparison of Dataset A
由以上分析可知,对于波动强烈并且连续缺失数据较多的风速时间序列,分形插值不仅可以保持图形的整体形状和波动特性,而且插值精度更高,与原始曲线吻合更好,与传统的插值算法相比,分形插值具有明显的优势。为了进一步证实上述结论的可靠性,对Dataset B数据集插值计算,得到插值结果如图7所示。
表3 Dataset A 插值性能对比Tab.3 Interpolation performance comparison of Dataset A
图7 Dataset B插值效果比较Fig.7 Interpolation effect comparison of Dataset B
表4 给出了Dataset B 数据集的各插值结果。Dataset B 数据集的各插值误差RMSE 和纳什效率系数NSE 的规律与Dataset A 的规律相同,进一步说明了分形插值比传统的插值方法更适合连续缺失数据较多且波动强烈的风速序列。
表4 Dataset B 插值性能对比Tab.4 Interpolation performance comparison of Dataset B
5 结语
自适应变异粒子群优化的分形插值算法为风速序列的连续缺失数据插值提供了一种新途径,并对分形插值算法中的两个重要参数进行讨论分析,利用自适应变异粒子群算法对垂直比例因子寻优,最后对分形插值算法与传统插值算法的进行了对比研究。通过计算和验证得出如下结论:
1)垂直比例因子是影响分形插值精度的重要因素,采用自适应变异粒子群优化垂直比例因子,分形插值取得了很好的插值效果,证明了其有效性。
2)针对连续缺失的波动强烈的风速序列,分形插值比传统插值方法更有优势,分形插值不仅可以保持风速曲线的整体变化趋势,而且可以反映数据的局部波动特征,并且具有更高的插值精度和吻合度。