zl程序教程

您现在的位置是:首页 >  后端

当前栏目

基于BP神经网络的轨迹跟踪(Matlab代码实现)

MATLAB神经网络代码 实现 基于 跟踪 bp 轨迹
2023-09-14 09:05:21 时间

 👨‍🎓个人主页:研学社的博客 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥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.