一种基于树回归的二次优化光伏发电功率预测值的实现方法与流程

文档序号:13915551阅读:460来源:国知局

本发明属于光伏功率预测领域,具体为一种基于树回归的二次优化光伏发电功率预测值的实现方法。在一次预测值的基础上,用统计学的方法选出合格点作为输入项,利用树回归算法分段数据二次生成预测值。



背景技术:

随着社会发展的需要,光伏发电系统越来越多,而其输出功率受气象因素影响较大,具有不连续性和不稳定的特点。预测光伏发电功率有助于统筹安排常规电源和光伏发电的协调配置。目前大家一般采用机器学习的方法,主要包括多项式算法、bp神经网络、灰色模型、数据挖掘、svm径向基模型等进行一次预测,无论采用哪一种方法,都存在预测值合格率不稳定的情况。



技术实现要素:

为解决上述存在问题,本发明提供了一种基于树回归的二次优化光伏发电功率预测值的实现方法。分为数据获取步骤、逆变器理论输出功率计算步骤、数据清洗和预处理步骤、统计计算步骤,数据分类步骤、树回归计算步骤。

从scada中取实时气象数据和逆变器各项参数数据用于计算逆变器理论输出功率,把功率预测值和理论计算值作为原始数据存储在原始数据库系统中;通过清洗和预处理步骤处理实测、一次预测气象数据。通过统计计算步骤,按指标计算合格率,按指标值把数据分为合格数据、不合格数据、全部数据;把分类后的数据存入到待分析数据库系统;树回归计算步骤中对待分析数据库中的数据进行建模计算,值存临时表中,计算各项指标和调参后,得出最优模型,生成二次预测值,结果存于二次预测数据系统中。

所述数据获取步骤,具体为:原始数据存储系统中存有一次的功率预测值和理论计算值,每组逆变器功率实测值、实测气象值,设备参数及性能数据,一次功率预测值。

所述逆变器理论输出功率计算步骤,具体为:

逆变器理论输出功率计算公式如下:

p=nη1η2η3arβ[1-α(tc-25)]

n:为正常工作的光伏组件个数,

η1:光伏组件在额定条件下的光电转换效率,η2最大功率点跟踪的工作效率,η3逆变器效率;

a光伏组件的面积,rβ光伏阵列斜面太阳总辐照度,α光伏组件的温度系数,tc光伏组件的板温;

β阵列的倾角。

所述数据清洗和预处理步骤,具体为:

子步骤1、去除/补全有缺失的数据;

子步骤2、去除/修改格式和内容错误的数据;

子步骤3、去除/修改逻辑错误的数据;

子步骤4、去除不需要的数据;

子步骤5、关联性验证;

子步骤6、去掉功率为0时相应差值点的数据;

子步骤7、补全通讯中断数据;

子步骤8、差值法补全指定时间内的缺失数据。

所述统计计算步骤,具体为:

数据指标项:

上下限内的点数、合格点数、最大偏差值、最大偏差率、均方根误差、平均绝对误差、合格率、相关性系数、符合率最大预测输出功率。

所述数据分类步骤,具体为:

根据指标项设定的指标值分类数据。

所述树回归计算步骤,具体为:

采用树回归算法建模、调参,按照统计计算步骤中设定的指标项计算指标,确定最优参数,生成最优模型,计算二次预测值存入二次预测值数据库系统;

具体步骤:1)输入待分析数据库中分类后的数据

2)树回归算法建模计算,算法调优

3)计算特征指标

4)根据特征值指标调树模型参数得出最优模型

5)计算二次功率预测值

树回归模型算法:

对待分析数据库中数据集合选择最优分割点,以此将数据集分割为两个子集,并在子集上递归完成树的构建;函数splitdata根据最优分割点切分数据集,将集合中对应feature值小于分割点中value的划分为子集lefttree,大于等于的记录划分为righttree;

具体步骤:1)读取数据;

2)找到最佳的待切分特征;

3)如果该节点不能再分,该节点存为叶节点;

4)如果可以切分,执行二元切分,分别创建lefttree,和righttree,

此为一递归过程,直到把数据集全部分割完毕为止;

其中分割数据函数有三个参数[data(数据集合)、spf(待切分特征)、spfv(特征值)],树的属性有四个参数[data(数据集),leaf(叶节点函数),errtype(误差计算函数),ops(其它参数的元祖)]。

本发明具有的优点和积极效果是:

1、本发明是在一次预测的基础上的二次修正,提高预测值的稳定性。

2、本发明二次模型的输入数据是统计出的合格数据,属于优质数据,使得模型的泛化能力得以保证。

3、本发明用树回归的方式分段处理数据,符合光伏发电功率分段性强的数据特点。更贴近真实情况。

附图说明

图1为本发明实施例的实现模块框图。

图2为本发明实施例的统计分类数据流程图。

图3为本发明实施例的树回归算法流程图。

图4为本发明实施例一次预测合格率。

图5为本发明实施例二次预测合格率。

图6为本发明实施例各项目指标统计表1。

具体实施方式

以下结合具体实施例和附图对本发明的技术方案做进一步的说明。

本实施例的基于树回归的二次优化光伏发电功率预测值的实现方法,该方法有三个主要的数据库系统,分别是原始数据存储系统、待分析数据库系统、二次预测值数据库系统。原始数据存储系统中存有一次的功率预测值和理论计算值。理论计算值是用实时气象值按照逆变器发电功率计算公式计算出的值。经过数据清洗、预处理和统计计算、分类后存入待分析数据库系统。统计计算步骤的特征在于筛选出符合要求的数据点,树回归计算步骤的特征在于选取分类后的点形成最优模型,生成二次预测,预测结果存入二次预测值数据系统中。

统计计算步骤中合格数据的指标项包括:上下限内的点数、合格点数、最大偏差值、最大偏差率、均方根误差、平均绝对误差、合格率、相关性系数、符合率最大预测输出功率。一般误差率值为人为设置,可以是任意值,如设定为10%,则小于10%为合格,选取这些值作为新预测模型的输入项。

树回归算法是机器学习中的一种数据预测的方法,思路是将输入的数据集合递归分割为多个子集,构建树模型,并在每个子集上构建预测模型。预测模型一般分为两种,选取某个值或线性方程作为集合的预测值。光伏发电受天气影响因素很大,晴,雨,日出,日落,冬天,夏天,光伏发电功率的数值分段性很强,且无法用手动设置分段性,用树回归的方式分段拟合较为适合。

树回归算法具体步骤如下:

1.读取数据;

2.找到最佳的待切分特征;

3.如果该节点不能再分,该节点存为叶节点;

4.如果可以切分,执行二元切分,分别创建lefttree,和righttree;

此为一递归过程,直到把数据集全部分割完毕为止。

其中分割数据函数有三个参数[data(数据集合)、spf(待切分特征)、spfv(特征值)],树的属性有四个参数[data(数据集),leaf(叶节点函数),errtype(误差计算函数),ops(其它参数的元祖)]。

leaf:均值

errtype:均方差

如图1所示,为本发明实施例基于树回归的二次优化光伏发电功率预测值的实现方法的模块框图。具体实施的过程为:

原始数据存储系统数据存取步骤。原始数据存储系统中存有一次的功率预测值和理论计算值。理论计算值是用实时气象值按照逆变器发电功率计算公式的值。

公式p=nη1η2η3arβ[1-α(tc-25)]

n:为正常工作的光伏组件个数;

η1:光伏组件在额定条件下的光电转换效率,η2最大功率点跟踪的工作效率,η3逆变器效率;

a光伏组件的面积,rβ光伏阵列斜面太阳总辐照度,α光伏组件的温度系数,tc光伏组件的板温;

β阵列的倾角;

其中太阳总辐照度取的是实时气象站中的辐照度实测值。

数据清洗和预处理步骤其特征在于去除不良数据。

去除/补全有缺失的数据、去除/修改格式和内容错误的数据、.去除/修改逻辑错误的数据、去除不需要的数据、关联性验证、去掉功率为0时相应差值点的数据、补全通讯中断数据、差值法补全指定时间内的缺失数据

实施例中主要是去掉了无光照时段和无通讯时段数据,保证各数据表中时段一致性,且无0值。

图2为本发明实施例的统计分类数据流程图。统计计算步骤,数据分类步骤其特征在于按照指标项和指标值筛选出符合要求的数据。指标项包括:上下限内的点数、合格点数、最大偏差值、最大偏差率、均方根误差、平均绝对误差、合格率、相关性系数、符合率最大预测输出功率。

本实施例中部分指标设定值和计算公式如下:

上限值:额定功率

下限值:额定功率*75%

最大偏差值:σ=max|y1-y2|

均方根误差:

平均绝对误差:

合格率:

y1功率实测值,y2功率预测值。

本实例中选取的是qr>0.8如表1所示。

根据qr值的判断把数据分类后存储到待分析数据库中。

图3为本实施例的树回归算法流程图。树回归计算步骤特征在于从待分析数据库读取数据完成二次预测建模,调参,生成最优模型的过程。利用最优模型二次计算预测值,存入二次预测值数据库系统中。

具体步骤如下:1.输入待分析数据库中分类后的数据;

2.树回归算法建模计算,算法调优;

3.计算特征指标;

4.根据特征值指标调树模型参数得出最优模型;

5.计算二次功率预测值。

其中的树回归算法实施的具体步骤如下:

1.读取数据

2.找到最佳的待切分特征

3.如果该节点不能再分,该节点存为叶节点,

4.如果可以切分,执行二元切分,分别创建lefttree,和righttree。

实施例结果如图4、图5所示,一次预测合格率为57.2%,优化后二次预测合格率为87.4%。

树回归算法的4个关键函数的python代码如下:

1.树函数

2.分割函数

3.叶节点函数

defleaf(data):

returnmean(data[:,-1])。

4.误差计算函数

defregerr(data):

returnvar(data[:,-1])*shape(data)[0]。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1