利用宏编程实现风电场缺失数据的插补

时间:2022-10-27 04:22:07

利用宏编程实现风电场缺失数据的插补

摘 要:研究人员在进行数据插补的时候,需要进行大量的数学计算。利用宏编程可以用来实现回归分析的重复计算,从而得出更精确的分析结果。使用这种方法解决了风电场缺失数据的插补问题。本方法能够为研究人员整理和分析数据节省大量的时间。

关键词:宏编程;回归分析;数据插补;风电

中图分类号:TM614

风电场在运行过程中,涉及到大量的数据,观测数据和运行数据都需要进行记录,在掌握大量数据的基础上进行分析、评价和预测。但是现实情况由于建设时间、设备损坏等原因,会出现数据缺失的情况,而不完整的数据对科学计算和分析会造成偏差,这就需要对缺失的数据进行插补。

数据的插补有多种方法,对于风电场数据,尤其是观测数据的插补研究出了一些方法和技术[1,2]。但是建立的数学模型和算法,为了达到更高的精确度,需要进行大量的计算,而这些也都要借助计算机来辅助计算。

用计算机编程来实现复杂的公式运算,要有专门的编程人员来进行程序编写。然而,一个公式的确定,参数的设定,往往需要多次修正,对于许多非计算机专业的研究人员来说,是一个比较难以解决的问题。况且软件的开发大多需要涉及人力、物力,开发一个新的程序既浪费时间,还难以重复使用,等发明新的算法常常又要重新开发。如何在现有的条件下,有效利用相对简单的计算机工具去解决问题才是一个合理的方法。这里介绍一种关于回归分析问题的宏编程解决的方法。

1 相关概念和技术

1.1 回归分析

回归分析是利用数理统计原理,对大量的统计数据进行数学处理,并确定因变量和自变量之间的相关关系,建立一个相关性较好的回归方程,根据风电场观测数据的特点,可以用来进行缺失数据的插补。

回归分析可用来分析单个因变量是如何受一个或几个自变量影响的。可以由一组已知的数据,对未知的数据做出推测。回归模型包括线性回归和非线性回归。传统的回归分析方法是对线性回归模型采用最小二乘法来拟合回归方程,然后计算相关系数进行显著性检验,而对于非线性方程,还得作适当的变换,把非线性方程转化为线性方程,然后再用线性回归的方法处理[3]。

1.2 宏编程

在EXECL中可以使用很多的函数,在数理统计和回归分析上也有相应的函数,但是依靠人工来操作和工具仍然会需要大量的时间,为了得到可以接受的数据往往需要几天或者几周的时间。

宏可以让常用的任务实现自动化,除了能够一些记录操作,也可以使用宏语言来编写功能强大的程序。可以使用宏记录器记录使用者的各种操作形成VBA 程序代码。在其基础上编程,就可以使工作自动化,提高工作效率。另外,由于VBA 可以直接应用Office软件的各项功能,所以使程序的设计和开发更加方便快捷。可以让研究人员轻松掌握,既不需要深入的了解编程,也不需要做大量的代码编写工作。

2 风电场缺失数据的插补

利用宏编程实现回归分析可以实现数据预测和缺失数据的插补问题。下面就以风电场的缺失数据插补为例,介绍如何解决类似的问题。

在风电场对于风速的测量是一个重要的数据,一般测风塔在不同的测层高度设置风速仪和风向仪进行监测,期间会出现数据不合理和缺失的情况。在《风电场风能资源评估办法》中,对不合理以及缺失数据的相关性和插补的要求为相关系数达到80%以上。而要进行评估分析要求数据的完整率达到90%以上。

有两种比较理想的情况:一种是相同地理位置,在同一个塔上,出现某些测层高度的数据缺失。测风塔在10米、30米、50米和70米会设置风速传感器。由于地点和气候情况相同,数据的相关性很高,很容易就能得出高质量的插补数据。

另一种情况是不同地理位置,但是位置相近,或者是地形、地貌以及气候条件相似,有数据完整的风塔监测数据去插补缺失风塔的数据。这种情况相关性稍低,但是也会满足要求。这两种情况都可以用回归分析的办法来进行数据插补。

因为在分析范围内的数据,不同的数据计算出的相关系数的数值也不一样,这就需要多次重复计算,在可接受的相关系数中,找出最合适的数值来建立回归方程,从而得到更精确的数据。同时,缺失的数据往往不是几个,在插补较多数据的时候,计算和操作的次数将快速增长,占用大量的时间。最好的办法是利用EXECL本身的宏来完成回归分析工作,然后在其基础上进行宏编程,这样就可以在短时间内获得满意的结果。

要注意的是:EXECL中回归分析的宏为Regress,要想使用这个宏,必须先加载宏,加载分析工具后才能使用。下面是此宏程序的关键代码:

Dim row, col, As Integer '分析范围的行、列数和长度

Dim i, j As Integer '单元格的行、列数

(注:以上变量值要根据情况赋值,以下变量值在程序运行时获得)

Dim area As String '回归分析数据范围

Dim a, b As Double '方程截距、斜率

Dim r As Double '相关系数

area = "$" + Chr$(col) + "$" + LTrim$(Str$(row)) + ":$" + Chr$(col) + "$" + LTrim$(Str$(row + 20)

Application.Run"ATPVBAEN.XLA!Regress",.Range(area), _.Range(area), False, False, , "", False, False, _False, False, , False '计算回归参数值

r = ActiveSheet.Cells(4, 2) '为相关系数赋值

If r >= 0.8 Then

Cells(i, j) = Int(a + b *.Cells(i, j)) '相关系数满足条件则进行填充

End If

因为本方法只是给出利用宏编程快速实现回归分析,不同的插补算法要根据具体的数据情况进行选择。

3 总结

利用EXECL宏编程来解决风电缺失数据的插补,可以取得比较好的效果,实验结果表明通常两周能填充完的100个的数据量,用宏编程的方法只需要十分钟左右即可完成,从而节省了大量的时间,可以成为研究人员进行数据插补的有效方法。当然此种方法也可用在其他领域数据的插补和预测中。

参考文献:

[1]谢建华,汪萍萍,张焕宇.风电场测风数据的插补和修正[J].新能源及工艺,2010.

[2]王远,钟华.风电场缺失测风数据插补方法的分析可再生能源.2012.

[3]涂虬.Excel在回归分析中的应用[J].武钢职工大学学报,2001.

作者简介:李天宇(1972-),男,吉林人,讲师,硕士,主要研究方向:软件工程。

作者单位:长春工程学院,长春 130012;国网吉林省电力有限公司松原供电公司,吉林松原 138000

上一篇:汽车自动变速器的故障与维修 下一篇:巧设注册表解决电脑典型故障