【预测模型】基于Elman神经网络预测电力负荷matlab代码
?1 簡介
為提高甘肅電網負荷預測精度,提出了一種基于神經網絡的負荷預測方法.針對甘肅電力系統負荷數據的非線性和動態特性,在多層前向BP網絡中引入特殊關聯層,形成有"記憶"能力的Elman神經網絡,從而可以映射系統的非線性和動態特性.在網絡訓練算法中,采用自適應學習速率動量梯度下降反向傳播算法,顯著提高了網絡的訓練速率,有效地抑制了網絡陷入局部極小點.文中分別采用El-man神經網絡與BP神經網絡建立模型,對甘肅電網實際歷史數據進行仿真預測,經分析比較,證明前者具有收斂速度快,預測精度高的特點.這表明利用Elman回歸神經網絡建模對甘肅電網負荷進行預測是可行的,能有效提高負荷預測精度,在負荷預測領域有著較好的應用前景.
Elman 型回歸神經元網絡一般分為四層 :輸入 層、 中間層(隱含層)、 承接層和輸出層, 如圖 3 所 示。其輸入層、 隱含層和輸出層的連接類似于前饋 網絡 , 輸入層的單元僅起信號傳輸作用, 輸出層單 元起線性加權作用。隱含層單元的傳遞函數可采用 線性或非線性函數, 承接層又稱為上下文層或狀態 層, 它用來記憶隱含層單元前一時刻的輸出值, 可 以認為是一個一步延時算子。 Elman 回歸神經元網絡的特點是隱含層的輸出 通過承接層的延遲與存儲, 自聯到隱含層的輸入, 這種自聯方式使其對歷史狀態的數據具有敏感性, 內部反饋網絡的加入增加了網絡本身處理動態信息 的能力 , 從而達 到了 動態建 模的 目的 。此 外, Elman回歸神經網絡能夠以任意精度逼近任意非線 性映射, 可以不考慮外部噪聲對系統影響的具體形 式, 如果給出系統的輸入輸出數據對 , 就可以對系統進行建模 。
2 部分代碼
%% 基于Elman神經網絡的電力負荷預測模型研究 %% 清空環境變量clc; clear?all close?all nntwarn?off;%% 數據載入load?data; a=data;%% 選取訓練數據和測試數據for?i=1:6p(i,:)=[a(i,:),a(i+1,:),a(i+2,:)]; end % 訓練數據輸入 p_train=p(1:5,:); % 訓練數據輸出 t_train=a(4:8,:); % 測試數據輸入 p_test=p(6,:); % 測試數據輸出 t_test=a(9,:);% 為適應網絡結構 做轉置p_train=p_train'; t_train=t_train'; p_test=p_test';%% 網絡的建立和訓練 % 利用循環,設置不同的隱藏層神經元個數 nn=[7?11?14?18]; for?i=1:4threshold=[0?1;0?1;0?1;0?1;0?1;0?1;0?1;0?1;0?1];% 建立Elman神經網絡 隱藏層為nn(i)個神經元net=newelm(threshold,[nn(i),3],{'tansig','purelin'});% 設置網絡訓練參數net.trainparam.epochs=1000;net.trainparam.show=20;% 初始化網絡net=init(net);% Elman網絡訓練net=train(net,p_train,t_train);% 預測數據y=sim(net,p_test);% 計算誤差error(i,:)=y'-t_test; end%% 通過作圖 觀察不同隱藏層神經元個數時,網絡的預測效果plot(1:1:3,error(1,:),'-ro','linewidth',2); hold?on; plot(1:1:3,error(2,:),'b:x','linewidth',2); hold?on; plot(1:1:3,error(3,:),'k-.s','linewidth',2); hold?on; plot(1:1:3,error(4,:),'c--d','linewidth',2); title('Elman預測誤差圖') set(gca,'Xtick',[1:3]) legend('7','11','14','18','location','best') xlabel('時間點') ylabel('誤差') hold?off;3 仿真結果
4 參考文獻
[1]芮執元, 任麗娜, and 馮瑞成. "基于Elman神經網絡的甘肅電網負荷預測模型." 現代電力 24.2(2007):4.
?
總結
以上是生活随笔為你收集整理的【预测模型】基于Elman神经网络预测电力负荷matlab代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MSP432P401R TI Drive
- 下一篇: XState Viz 可视化和调试状态机