⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clznkz.m

📁 智能控制bp算法
💻 M
字号:
% 使用BP网络逼近对象y(k)=u(k)^3+y(k-1)/(1+y(k-1)^2)
% 采样时间为1ms.输入信号为u(k)=0.5sin(6*pi*t)。
% 权值w1,w2的初始值取[-1,+1]之间的随即值,取a=0.05,b=0.50。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all;
close all;
xite=0.50;
alfa=0.05;
w2=rands(6,1);
w21=w2;
w22=w21;
w1=rands(2,6);
w11=w1;
w12=w1;
dw=0*w1;
x=[0,0]';
u1=0;
y1=0;
I=[0,0,0,0,0,0]';
Iout=[0,0,0,0,0,0]';
FI=[0,0,0,0,0,0]';
ts=0.001;
for k=1:1:1000
    time(k)=k*ts;
    u(k)=0.5*sin(3*2*pi*k*ts);
    y(k)=(u1)^3+y1/(1+y1^2);
    for j=1:1:6
        I(j)=x'*w1(:,j);
        Iout(j)=1/(1+exp(-I(j)));
    end
    yn(k)=w2'*Iout;%网络的输出
    e(k)=y(k)-yn(k);%误差
    w2=w21+(xite*e(k))*Iout+alfa*(w21-w22);
    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
            dw(i,j)=e(k)*xite*FI(j)*w2(j)*x(i);
        end
    end 
    w1=w11+dw+alfa*(w11-w12);
    %%%%%%%%%Jacobian
    yu=0;
    for j=1:1:6
        yu=yu+w2(j)*w1(1,j)*FI(j);
    end
    dyu(k)=yu;
    x(1)=u(k);
    x(2)=y(k);
    w12=w11;
    w11=w1;
    w22=w21;
    w21=w2;
    u1=u(k);
    y1=y(k);
end
figure(1);
plot(time,y,'r',time,yn,'b');
title('BP网络逼近效果');
xlabel('times');
ylabel('y an yn');
figure(2);
plot(time,y-yn,'r');
title('误差曲线');
xlabel('times');
ylabel('error');
figure(3);
plot(time,dyu);
title('Jacobian信息的辨识');
xlabel('times');
ylabel('dyu');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -