原创
©著作权归作者所有:来自51CTO博客作者matlab科研助手的原创作品,请联系作者获取转载授权,否则将追究法律责任
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
个人主页:Matlab科研工作室
个人信条:格物致知。
⛄ 内容介绍
锂电池健康状态(SOH)的预测是电动汽车锂电池管理系统的最重要的关键技术之一;传统的误差逆向传播(BP)神经网络容易使权值和阈值陷入局部最优,从而导致预测结果不精确;结合布谷鸟搜索算法(CS)的全局优化能力,提出一种基于CS算法优化BP神经网络的锂电池SOH预测方法,该方法的核心在于优化BP神经网络的初始权值和阈值,从而减小算法对初始值的依赖;为了验证算法的泛化性,利用美国国家航空航天局开源锂电池数据集6号电池和7号电池进行仿真实验,仿真得到该算法预测SOH的均方根误差(RMSE)分别为0.265 8和0.262 0,平均绝对百分比误差(MAPE)分别为0.331 9%和0.260 5%;通过与BP神经网络,粒子群优化的BP神经网络(PSO-BP),遗传算法优化的BP神经网络(GA-BP)对比,布谷鸟算法优化的BP神经网络(CS-BP)具有更小的预测误差.
⛄ 部分代码
Ts=0.00001; fs=1/Ts; Tm=0.002; EndTime=0.004-Ts; %2s Nset=(EndTime+Ts)/Ts; y=zeros(Nset,1); i=0; xd=zeros(1,N); while i<N i=i+1; switch (x(i)) case 00 [u1,time1]=gensig('sin',Tm/1,EndTime,Ts); xd(i)=1; case 01 [u1,time1]=gensig('sin',Tm/2,EndTime,Ts); xd(i)=2; case 10 [u1,time1]=gensig('sin',Tm/3,EndTime,Ts); xd(i)=3; case 11 [u1,time1]=gensig('sin',Tm/4,EndTime,Ts); xd(i)=4; otherwise disp( '输入错误'); end ER1=zeros(1,9); count=1; NT=EndTime*fs+1; for i=-8:0 j=0; ersum=0; while (j<60) y1 = awgn(FHsignal,i,'measured'); z1=hilbert(y1); [tfr,dgr,gam]=TFRGABOR(z1,length(z1)/10,length(z1)/100,h,0); fmax3=max(abs(tfr)); % figure(10) % plot(fmax3) fFH3=abs(fft(fmax3)); [maxr3,f3]=max(abs(fFH3(2:length(fFH3)/2))); N3=length(z)/f3; er=abs(N3-NT)/NT*100; % T3=N3*Ts; % Endtime=EndTime+Ts; % er1=abs(T3-Endtime); % er=er1/(Endtime); ersum=er+ersum; j=j+1; end average=ersum/60; ER1(count)=average; count=count+1; end; sdb=-8:0; figure(5) plot(sdb,ER1, '-r'); xlabel('snr/dB')1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.
⛄ 运行结果
⛄ 参考文献
[1]魏新尧, 佘世刚, 容伟,等. 基于布谷鸟算法优化BP神经网络的锂电池健康状态预测[J]. 计算机测量与控制, 2021, 029(004):65-69,75.
⛳️ 代码获取关注我
❤️部分理论引用网络文献,若有侵权联系博主删除❤️ 关注我领取海量matlab电子书和数学建模资料 赞 收藏 评论 举报相关文章