👨🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
📚2 运行结果
🌈3 Matlab代码实现
🎉4 参考文献
💥1 概述
BP神经网络是一种多层的前馈神经网络,其主要的特点是:信号是前向传播的,而误差是反向传播的。具体来说,对于如下的只含一个隐层的神经网络模型:
BP神经网络的过程主要分为两个阶段,第一阶段是信号的前向传播,从输入层经过隐含层,最后到达输出层;第二阶段是误差的反向传播,从输出层到隐含层,最后到输入层,依次调节隐含层到输出层的权重和偏置,输入层到隐含层的权重和偏置。
📚2 运行结果
🌈3 Matlab代码实现
部分代码:
for k=1:1:1000
%时间
time(k)=k*ts;
%% 输入层
%BP输入1
u(k)=0.50*sin(3*2*pi*k*ts);
%控制对象输出,BP输入2
y(k)=u_1^3+y_1/(1+y_1^2);
%% 隐含层
for j=1:1:6
I(j)=x'*w1(:,j);
Iout(j)=1/(1+exp(-I(j)));
end
%% 输出层
yn(k)=w2'*Iout; % Output of NNI networks
%% 跟踪误差
e(k)=y(k)-yn(k); % Error calculation
%% 反向传播
w2=w2_1+(xite*e(k))*Iout+alfa*(w2_1-w2_2);
for j=1:1:6
FI(j)=exp(-I(j))/(1+exp(-I(j)))^2;
end
for i=1:1:2
for j=1:1:6
dw1(i,j)=e(k)*xite*FI(j)*w2(j)*x(i);
for k=1:1:1000
%时间
time(k)=k*ts;
%% 输入层
%BP输入1
u(k)=0.50*sin(3*2*pi*k*ts);
%控制对象输出,BP输入2
y(k)=u_1^3+y_1/(1+y_1^2);
%% 隐含层
for j=1:1:6
I(j)=x'*w1(:,j);
Iout(j)=1/(1+exp(-I(j)));
end
%% 输出层
yn(k)=w2'*Iout; % Output of NNI networks
%% 跟踪误差
e(k)=y(k)-yn(k); % Error calculation
%% 反向传播
w2=w2_1+(xite*e(k))*Iout+alfa*(w2_1-w2_2);
for j=1:1:6
FI(j)=exp(-I(j))/(1+exp(-I(j)))^2;
end
for i=1:1:2
for j=1:1:6
dw1(i,j)=e(k)*xite*FI(j)*w2(j)*x(i);
🎉4 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]张海荣,舒志兵.BP神经网络整定的PID在机器人轨迹跟踪中的应用[J].电气传动,2007(09):36-39.DOI:10.19457/j.1001-2095.2007.09.010.