RBF-UKF径向基神经网络结合无迹卡尔曼滤波估计锂离子电池SOC(附MATLAB代码)RBF神经网络训练部分

1.清空变量

close all
clear,clc

2.导入数据用以RBF神经网络训练,一共14组,训练数据P(第一列为电压值,第二列为SOC值,第三列为电流值。),并将所有数据存储在变量PP中,所有电压数据存储在变量TT中。

addpath('F:\锂电池数据')
for i=1:6
 eval(['load data.',int2str(i),'.mat']) 
 Tfinal=length(I.data);
 x1=SOC.data(1:2:Tfinal)';   %SOC数据
 x2=I.data(1:2:Tfinal)';     %电流数据
 x3=V.data(1:2:Tfinal)';     %电压数据
 P=[x3(1:end-1);x1(2:end);x2(2:end)];   
 T=x3(2:end);
 PP{i}=P;
 TT{i}=T;
end

3.用第1、2、3、4、5组数据来训练网络用第六组数据来测试网络的精度

P_train=[PP{1},PP{2},PP{3},PP{4},PP{5}];%用第1、2、3、4、5组数据来训练网络
T_train=[TT{1},TT{2},TT{3},TT{4},TT{5}]; 
P_test=[PP{6}];
T_test=[TT{6}]; %用第六组数据来测试网络的精度

 4.建立RBF神经网络没有想象中的那么复杂,只需要一个语句即可完成,即net=newrb(P_train,T_train,0.0004);P_train表示输入(第一列为电压值,第二列为SOC值,第三列为电流值。),T_train表示输出(电压),训练的目标goal为0.0004.使用sim即可调用训练好的神经网络,y=sim(net,P_train);这行代码表示的意思是:通过sim函数调用训练好的神经网络,求以P_train为输入的输出电压。

net=newrb(P_train,T_train,0.0004);%goal是0.0004
view(net)
y=sim(net,P_train);%训练的神经网络的输出

5.根据上面的数据绘图,画出的真实电压值与RBF神经网络输出的电压值得对比如下图所示:

t_T_train=[1:1:length(T_train)];
figure(1)
plot(t_T_train,T_train,'r')
t_y=[1:1:length(y)];
figure(1)
hold on
plot(t_y,y,'k')
legend('actual Voltage','RBFNN output');

 6.以测试数据作为神经网络的输入,得到的输出结果返回给变量y1,测试数据的真实电压值与神经网络预测出的电压值y1的对比如下图所示:

y1=sim(net,P_test);
t_T_test=[1:1:length(T_test)];
figure(2)
plot(t_T_test,T_test,'r')
t_y1=[1:1:length(y1)];
figure(2)
hold on
plot(t_y1,y1,'k')
legend('actual Voltage','RBFNN output');

7.这个语句是用来求训练好的神经网络的一些参数。

ti是输入层与第一层隐含层之间的权值,是一个63行3列的矩阵。

wi是两个隐含层之间的权值,是一个1行63列的矩阵。

sigma是第一层隐层的权值阈值,是一个63行1列的矩阵,应该是隐含层之间的阈值。

w0是输出层的阈值,是一个1行1列的值。

ti=net.Iw{1};
wi=net.Lw{2};
sigma=net.b{1};
w0=net.b{2};

至此,神经网络训练参数部分已经搭建完成,将训练好的参数ti、wi、sigma、w0代入这篇博客搭建的程序中即可完成SOC的估计。RBF-UKF径向基神经网络结合无迹卡尔曼滤波估计锂离子电池SOC(附MATLAB代码)_新能源姥大的博客-CSDN博客

参考文献:

[1] Sun W ,  Qiu Y ,  Sun L , et al. Neural network-based learning and estimation of batterystate-of-charge: A comparison study between direct and indirect methodology[J]. International journal of energy research, 2020(13):44.
 

硕博期间所有的程序代码,一共2个多g,可以给你指导,赠送半个小时的语音电话答疑。电池数据+辨识程序+各种卡尔曼滤波算法都在里面了,后续还会有新模型的更新。快速入门BMS软件。某鹅:2629471989

猜你喜欢

转载自blog.csdn.net/m0_60354177/article/details/130216123