25利用 灰色预测模型预测发电量(附matlab程序)

1.简述

      学习目标: 灰色预测模型预测发电量

                         根据原始发电量数据预测需要年份的发电量

         发电量预测是电力系统规划与运行的基础,是电力市场运作中的重要组成部分.目前,对发电量预测的研究已经比较深入,常用的发电量预测方法有:灰色预测法,线性回归模型,自回归移动平均模型及人工神经网络算法等.其中回归预测模型和时间序列模型是该领域最成熟的两个模型.回归预测模型通过建立发电量与其他相关变量之间的模型来预测发电量,但是由于影响发电量的外部因素错综复杂,准确分析其对发电量的影响比较困难.另一种有效的方法是利用时间序列模型对发电量本身的历史数据进行分析研究,进而预测未来的发电量.本文采用时间序列模型对发电量预测进行研究. 在电力市场化过程中,发电量预测的精度直接关系到各方的利益.因此,如何提高模型的预测精度吸引了越来越多人的关注.本文在现有模型的基础上探究更为精确,有效的方法.

灰色系统是由华中科技大学的邓聚龙教授于80年代初创立,该系统作为新兴的横断学科,在短短的二十年里已得到了长足的发展。 其已经成为社会,经济,科教,科技等很多领域进行预测,决策,评估,规划,控制,系统分析和建模的重要方法之一。特别是它对于时间序列短,统计数据少,信息不完全系统的建模与分析,具有非常显著的功效。

灰色预测是一种对含有不确定因素的系统进行预测的方法。灰色预测通过鉴别系统因素之间发展趋势的相异程度,即进行关联分析,并对原始数据进行生成处理来寻找系统变动的规律,生成有较强规律性的数据序列,然后建立相应的微分方程模型,从而预测事物未来发展趋势的状况。其用等时距观测到的反映预测对象特征的一系列数量值构造灰色预测模型,预测未来某一时刻的特征量,或达到某一特征量的时间。

灰色系统的基本原理

公理1,差异信息原理

”差异“是信息,凡信息必有差异。

公理2,解的非唯一性原理

信息不完全,不确定的解是非唯一的。该原理是灰色系统理论解决实际问题所遵循的基本法则。

公理3,最少信息原理

灰色系统理论的特点是充分开发利用已占有的”最少信息”。

公理4,认知根据原理

信息是认知的根据。

公理5,新信息优先原理

新信息对认知的作用大于老信息。

公理6,灰性不灭原理

“信息不完全”是绝对的。

2.2 灰生成技术

灰色序列生成:是一种通过对原始数据的挖掘,整理来寻求数据变化的现实规律的途径,简称灰生成。

灰生成特点:在保持原序列形式的前提下,改变序列中的数据的值与性质。一切灰色序列都能通过某种生成弱化其随机性,显现其规律性。

灰生成的作用

  1. 统一序列的目标性质,为灰决策提供基础。

2.将摆动序列转化为单调增长序列,以利于灰建模。

3.揭示潜藏在序列中的递增势态,变不可比为可比序列。

常见的几种灰色生成类型:

1.累加生成算子(AGO)

2.逆累加生成算子(IAGO)

3.均值生成算子(MEAN)

4.级比生成算子

2.代码

function huisexitong()
%%  原始发电量数据
X0=[306.35,311.2,324.9,343.4,361.61,390.76,421.36,458.75,494.9,522.78,547.22,588.7,647.18,712.34,778.32,835.31,888.1,923.16,939.48];
KK=300;                %KK大于30,越大越没有问题
x0=sin(sqrt(X0)/KK);    %得到变换后的值,作为原始的数据

n=length(x0);
for k=1:n   
    x1(k)=sum(x0(1:k));              %计算x1
end
z(1)=0;
for k=1:n-1
    z(k+1)=(x1(k)+2*Newton(1:n,x1,k+2/4)+4*(Newton(1:n,x1,k+1/4)+Newton(1:n,x1,k+3/4))+x1(k+1))/12;        %计算z1
end

Y=(x0(2:end))';
B=[-1*(z(2:end))' ones(n-1,1)];
au=(inv(B'*B))*(B')*Y;              %得到a和u
a=au(1);
u=au(2);

%x01表示预测值
for m=1:n
    for k=0:n-1
        x01(k+1)=(x1(m)-u/a)*exp(-a*(k-m+1))+u/a;    %按预测公式计算预测值
    end
    x02=huanyuan(x01);           %预测出来的值需要前后两项相减得到预测值
    derta(m)=100*sum(abs((x02(1:n)-x0)./x0))/n;
end
figure
plot(derta)
title('各m下的平均误差曲线')
xlabel('m')
ylabel('平均误差 %')
[Y m_min]=min(derta);    %找到平均误差最小时对应的m

dd=3;       %需要预测的年数
m=m_min;    %此处m取平均误差最小的m,也可以在此修改m
for k=0:n-1+dd
    x01(k+1)=(x1(m)-u/a)*exp(-a*(k-m+1))+u/a;    %按预测公式计算预测值
end
x02=huanyuan(x01);           %预测出来的值需要前后两项相减得到预测值

yucezhi=(asin(x02)*KK).^2;


X0all=[306.35,311.2,324.9,343.4,361.61,390.76,421.36,458.75,494.9,522.78,547.22,588.7,647.18,712.34,778.32,835.31,888.1,923.16,939.48,988.6,1073.62,1164.29];
num=1;
for i=1980:2001
    year{num}=num2str(i);
    num=num+1;
end

figure
axes('XTickLabel',year,'XTick',1:22)
axis([1 22 200 1400])
hold on
h(1)=plot(yucezhi,'*-');
h(2)=plot(X0all,'ro-');
legend(h,{'预测值','原始值'},'Location','NorthWest')
title('原始发电量和预测发电量')
xlabel('年份');
ylabel('发电量')
end

function XD=huanyuan(X)
%% 灰色系统:还原算子,输入原序列(仅包含一行),输出始点零化生成序列(仅包含一行)
n=length(X);
XD(1)=X(1);
for k=2:n
    XD(k)=X(k)-X(k-1);
end
end

function yi=Newton(x,y,xi)
%%  Newton插值方法,给定一系列插值的点(x,y),得到在x=xi处的,牛顿插值多项的值yi
n=length(x);
m=length(y);
A=zeros(n);    %定义差商表
A(:,1)=y;      %差商表第一列为y
for j=2:n               %j为列标
    for i=1:(n-j+1)     %i为行标
        A(i,j)=(A(i+1,j-1)-A(i,j-1))/(x(i+j-1)-x(i));   %计算差商表
    end
end
%%  根据差商表,求对应的牛顿插值多项式在x=xi处的值yi
N(1)=A(1,1);
for j=2:n
    T=1;
    for i=1:j-1
        T=T*(xi-x(i));
    end
    N(j)=A(1,j)*T;
end
yi=sum(N);   %将x=xi带入牛顿插值多项式,得到的yi的值
end

3.运行结果

25利用 灰色预测模型预测发电量(附matlab程序)_第1张图片

 25利用 灰色预测模型预测发电量(附matlab程序)_第2张图片

 4.参考文献

[1]彭慧婷. 基于GM-ARIMA模型的发电量预测研究[D]. 兰州大学.

你可能感兴趣的:(数学建模,算法,matlab,学习)