2.2.1 SVR函数
该函数根据训练样本设计出最优回归函数,并找出支持向量。该函数有6个参数,分别是训练样本的输入、训练样本的输出、核函数、惩罚因子、损失函数和不敏感系数。输出参数为支持向量个数、拉格朗日乘子及偏置量。即
[nsv,beta,bias]=svr(X,Y,ker,C,loss,ε);
X——训练样本的输入,在本文中就是样本中用于学习和检验的风速值。
Y——训练样本的输出。就是样本中对应的桨距角。
ker——核函数,要使误差小需选择适当的核函数,这里选择的是rbf核函数。
C——惩罚因子,C取的过小,训练误差变大,系统的泛化能力变差,C取的过大,也会导致系统的泛化能力变差。
loss——损失函数。
ε——不敏感系数,ε取的小,回归估计精度高,但支持向量数增多,ε取的大,回归估计精度降低,但支持向量数少。
nsv——支持向量的个数。
beta——拉格朗日乘子。
Bias——偏置量。2.2.2 输出函数SVRoutput
该函数利用svr函数得到的最优回归函数来计算测试样本的输出,并返回。
2.2.3 svrplot
该函数用来绘制出最优回归函数曲线,并标识出支持向量。
2.2.4 svrerror
该函数用来显示根据最优回归函数计算的测试样本的拟合误差。
2.2.5 核函数的选择
常用的核函数有4种:线性核函数(linear)、多项式核函数(polynomial)、径向基核函数(RBF)和Sigmoid核函数。在一般情况下,首先考虑的是RBF,主要基于以下原因:1)RBF可以将样本映射到一个更高维的空间,可以处理类别标签和特征之间的关系是非线性时的样本。2)与多项式核函数相比,RBF需要确定的参数要少,核函数参数的多少直接影响模型的复杂度。3)对某些参数,RBF与sigmoid核函数具有相似的性能。
衡量SVR的最小误差和泛化能力准则,并优化该准则,本文选择了RBF核函数。
2.3 Matlab仿真
2.3.1回归拟合
在Matlab编程实现函数的回归拟合,并检验数据。主函数程序段如下:
2.3.2 函数回归拟合并检验的仿真结果
应用Matlab支持向量机工具箱编程实现系统的学习训练过程,由80个学习样本训练而得到的函数拟合结果如下图1所示。
利用训练好的神经网络模型可以对桨距角进行预测,只要输入即时风速,就可确定出相应桨距角大小。之前利用BP算法的均方误差为0.290 3,LM算法的均方误差为0.278 1。图2为由SVR算法对48个样本值检验的结果。可知,预测值与实际桨距角值基本一致。拟合误差err=0.175 6。
3 结束语
文中介绍了支持向量机的回归算法理论,用SVR算法代替之前的BP算法和LV算法,研究了风力发电系统中随风速变化桨距角的值,由函数拟合理论对桨距角进行了预测并检验,由于支持向量机采用结构最小化原则代替经验经验最小化原则,采用适当的核函数,同比其他算法使拟合误差达到了最小,大大提高了变桨距系统的精度和效率。将该算法应用于DSP芯片上稍作改进,加上外围电路的设计,即可应用在风电系统的控制领域。
用户评论
共 0 条评论