1 簡介
锂電池健康狀态(SOH)的預測是電動汽車锂電池管理系統的最重要的關鍵技術之一;傳統的誤差逆向傳播(BP)神經網絡容易使權值和門檻值陷入局部最優,進而導緻預測結果不精确;結合布谷鳥搜尋算法(CS)的全局優化能力,提出一種基于CS算法優化BP神經網絡的锂電池SOH預測方法,該方法的核心在于優化BP神經網絡的初始權值和門檻值,進而減小算法對初始值的依賴。
編輯
編輯
編輯
編輯
編輯
編輯
編輯
編輯
2 部分代碼
clc
clear
%讀取資料
load data
z=data';
n=length(z);
for i=1:6;
sample(i,:)=z(i:i+n-6);
end
%訓練資料和預測資料
input_train=sample(1:5,1:1400);
output_train=sample(6,1:1400);
input_test=sample(1:5,1401:1483);
output_test=sample(6,1401:1483);
%節點個數
inputnum=5;
hiddennum=3;
outputnum=1;
n=25;
%選連樣本輸入輸出資料歸一化
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);
%建構網絡
net=newff(inputn,outputn,hiddennum);
[bestnest,fmin]=cuckoo_search(n,inputnum,hiddennum,outputnum,net,inputn,outputn);
fmin
x=bestnest;
%% BP網絡預測
%資料歸一化
inputn_test=mapminmax('apply',input_test,inputps);
an=sim(net,inputn_test);
test_simu=mapminmax('reverse',an,outputps);
error=test_simu-output_test
E=mean(abs(error./output_test))
plot(output_test,'g*')
hold on;
plot(test_simu,'-o')
title('布谷鳥算法優化BP神經網絡實際值和預測值對比','fontsize',10)
legend('實際值','預測值')
xlabel('時間')
ylabel('比較值')
3 仿真結果
編輯
4 參考文獻
[1]孫晨, 李陽, 李曉戈, et al. 基于布谷鳥算法優化BP神經網絡模型的股價預測[J]. 計算機應用與軟體, 2016, 33(2):4.