1 简介
镍镉电池组作为移动电源对于现代军民用品是必不可少的.为了能够有效的提高镍镉电池寿命的预测精准度,在建立BP神经网络的电池寿命预测模型的基础上,运用差分进化算法(DE)优化BP神经网络连接的初始权值与阈值.预测结果表明:该改进的预测模型有较高的预测精度,误差控制在5%以内,有效地提高了BP神经网络的收敛速度,符合现实中镍镉电池实际运行的特性,对提高电池寿命评估的时效性和精确性具有重要的意义.
BP(Back Propagation)神经网络算法是一种多层前馈神经网络,其信号是正向传播,而误差是逆向传播的.BP神经网络过程可以拆分为两部分:正向传播和误差的逆向传播.其中正向传播是从输入层经过隐含层,再到达输出层.逆向传播是从输出层到隐含层,然后到输入层.在模拟过程中收集系统所产生的误差,来不断地调整隐含层到输出层、输入层到隐含层的权重和阈值,使网络误差达到设置的训练精度要求,训练结束[9].通过对镍镉电池容量衰退分析,选取镍镉电池充电截止电压x1、放电截止电压x2,电池内阻x3作为输入变量,输出变量为电池循环放电容量z.其网络拓扑结构如图1所示.下面具体介绍输入、输出和隐含层相关参数计算公式,隐含节点yk的计算方法是用输入层的网络节点去乘相应的隐含层权值,再加上相应的阈值来得到的.同理可以计算出zj,计算公式为:
2 部分代码
function error = objfun_BP(x,inputnum,hiddennum,outputnum,net,inputn,outputn)
%该函数用来计算适应度值
%x input 个体
%inputnum input 输入层节点数
%outputnum input 隐含层节点数
%net input 网络
%inputn input 训练输入数据
%outputn input 训练输出数据
%error output 个体适应度值
%提取
w1=x(1:inputnum*hiddennum);
B1=x(inputnum*hiddennum+1:inputnum*hiddennum+hiddennum);
w2=x(inputnum*hiddennum+hiddennum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum);
B2=x(inputnum*hiddennum+hiddennum+hiddennum*outputnum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum);
%网络进化参数
net.trainParam.epochs=20;
net.trainParam.lr=0.1;
net.trainParam.mc = 0.8;%动量系数,[0 1]之间
net.trainParam.goal=0.01;
net.trainParam.show=100;
net.trainParam.showWindow=0;
%网络权值赋值
net.iw{1,1}=reshape(w1,hiddennum,inputnum);
net.lw{2,1}=reshape(w2,outputnum,hiddennum);
net.b{1}=reshape(B1,hiddennum,1);
net.b{2}=B2;
%网络训练
net=train(net,inputn,outputn);
an=sim(net,inputn);
error=sum(abs(an-outputn));
3 仿真结果
4 参考文献
[1]卢顺, 李英顺. 基于差分进化算法优化BP神经网络的镍镉电池寿命预测[J]. 广西工学院学报, 2020, 031(002):93-98.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,有科研问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。