天天看點

【負荷預測】基于灰色理論負荷預測的應用研究(Matlab代碼實作)

  👨‍🎓個人首頁:研學社的部落格 

💥💥💞💞歡迎來到本部落格❤️❤️💥💥

🏆部落客優勢:🌞🌞🌞部落格内容盡量做到思維缜密,邏輯清晰,為了友善讀者。

⛳️座右銘:行百裡者,半于九十。

📋📋📋本文目錄如下:🎁🎁🎁

目錄

💥1 概述

📚2 運作結果

🌈3 Matlab代碼實作

🎉4 參考文獻

【負荷預測】基于灰色理論負荷預測的應用研究(Matlab代碼實作)

💥1 概述

參考文獻:

【負荷預測】基于灰色理論負荷預測的應用研究(Matlab代碼實作)

 負荷預測是電力系統規劃和運作中的重要工作之一,它決定了發電、輸電和電量的配置設定,在一定規劃期内負荷與用電量的大小決定了電力系統的發展規劃和發展速度。

目前,負荷預測方法很多,其中灰色預測是一種比較有效的方法,而且廣泛用于中長期負荷預測中。本文對灰色系統GM(1,1)預測模型及其在負荷預測中的應用進行讨論,并且對如何提高模型的預測精度進行分析。

📚2 運作結果

【負荷預測】基于灰色理論負荷預測的應用研究(Matlab代碼實作)
【負荷預測】基于灰色理論負荷預測的應用研究(Matlab代碼實作)

 部分代碼:

for i=1:(b-1)

    yuc(i)=l*exp(-h*i)+j;                            

end                             %預測模型表達式

yuc;

x0(1,1);

yuce=[x0(1,1) yuc];              %沒有累減時的預測值

for i=1:b-1

    yce(i)=yuce(1,i+1)-yuce(1,i);

end

yce;                              %缺少第一個資料的預測數列

x0(1,1);

ycz=[x0(1,1) yce];                  %最終預測值(隻是對原資料的拟合值)

ycz;

for i=1:b                           %後驗差校驗

    cancha(i)=x0(i)-ycz(i);

end

cancha;                              %殘差(初始值-預測值)

x2=mean(x0);                         %初始值的平均值

x3=mean(cancha);                     %殘差平均值

s=sum((x0-x2).^2)/b;                  %實際值方差

t=sum((cancha-x3).^2)/b;              %殘差方差

s1=sqrt(s);                            %實際值均方差

s2=sqrt(t);                            %殘差均方差

m=s2/s1;                              %後驗差比值即預測值與實際值的離散程度(越小越好)

s0=0.6745*s1;                           %給定值0.6745s1

p1=abs(cancha-x3);                        %小誤差  p=p{|ε(k)-ε平均值|<0.6745s1}

n=0;                                   %計算p1<s0的個數n

for i=1:b

    if p1(i)<s0

        n=n+1;

    else n=n;

    end

end

n;

p=n/b;                                   %小誤差機率(越大越好)

if p>0.95&m<0.35

    %預測精度好(一級)')

    H=0;

elseif p<=0.7&m>=0.65

    %預測精度不合格,進行模型改進')

    H=1;

ca0=abs(cancha(1:b-2));

x11=cumsum(ca0);                   

b1=length(ca0);

for i=1:b1-1

    ave1(i)=1/2*(x11(i)+x11(i+1));

end

ave1 ;                      

z1=ave1';                             %平均值 @取0.5

a1=ones(b1-1,1);

B1=[-z1,a1] ;                 %資料矩陣B

Y1=ca0;

Y1(:,1)=[]  ;                 %資料向量(由矩陣x0删除第一列得)

c1=B1';                       %g=inv((B'B))B'Y  (求解a u)

s1=c1*B1;

d1=inv(s1);

f1=d1*c1;

g1=f1*Y1';                          %g=(a,u)'

h1=g1(1,1);                    %h實際為a

u1=g1(2,1);

j1=u1/h1 ;                      %預測值=(x(1)-u/h)e +u/h

k1=ca0(1,1);

l1=k1-j1;

for i=1:(b1-1)

    yuc1(i)=l1*exp(-h1*i)+j1;                            

end                             %預測模型表達式

yuc1;

ca0(1,1);

yuce1=[ca0(1,1) yuc1];              %沒有累減時的預測值

for i=1:b1-1

    yce1(i)=yuce1(1,i+1)-yuce1(1,i);

end

yce1;                              %缺少第一個資料的預測數列

ca0(1,1);

ycz1=[ca0(1,1) yce1] ;                 %最終預測值(隻是對原資料的拟合值)

ycz1;

o1=1;   %input('輸入預測個數')

for i=b1:b1+o1-1

    yuc1(i)=l1*exp(-h1*i)+j1;                            

end

yuc1;

yucezhi11=yuc1(b1-1:b1+o1-1) ;             %沒有累減時的未來預測值

for i=1:o1

    yucezhi21(i)=yucezhi11(i+1)-yucezhi11(i);

end

yucezhi21 ;                            %最終預測值

elseif p>0.8&m<0.5

    %'預測精度合格(二級)')

    H=0;

else

    %'預測精度勉強合格')

    H=0;

end

o=1;%input('輸入預測個數');

for i=b:b+o-1

    yuc(i)=l*exp(-h*i)+j;                            

end

yuc;

yucezhi1=yuc(b-1:b+o-1);              %沒有累減時的未來預測值

for i=1:o

    yucezhi2(i)=yucezhi1(i+1)-yucezhi1(i);

end

yucezhi2 ;                             %最終預測值

else                                   %級比不滿足要求,進行資料處理

    for i=1:b

        y0(i)=log10(log10(x0(i)));

    end

    H=2;

    y0;                                %進行兩次對數處理後的原始數列

end

switch H

 case 0

    yc=yucezhi2;

 case 1

    yc=yucezhi21+yucezhi2;         %最最終預測值

 case 2

    yc=mean(x0);

end

f=yc;

end

🌈3 Matlab代碼實作

部落格首頁:電氣輔導幫

🎉4 參考文獻

部分理論來源于網絡,如有侵權請聯系删除。

[1]張俊芳,吳伊昂,吳軍基.基于灰色理論負荷預測的應用研究[J].電力自動化裝置,2004(05):24-27.

繼續閱讀