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

📄 a11202.m

📁 用MATLAB写的神经网络PID控制源程序
💻 M
字号:
error_1=0;
error_2=0;
ts=0.001;
t=[1;1;1];
y_1=0;
u_1=0;
kpid=[1;1;1];
net=newff([0 100; 0 100; 0 100; 0 100],[5,3],{'tansig','purelin'},'traingd');
net.trainParam.show = NaN;
net.trainParam.lr = 0.3;
net.trainParam.epochs = 2;
for k=1:1:100
    time(k)=k*ts
    rin(k)=1.0;
    
    a(k)=1.2*(1-0.8*exp(-0.1*k));
    yout(k)=a(k)*y_1/(1+y_1^2)+u_1;
    error(k)=rin(k)-yout(k);
    xi=[rin(k);yout(k);error(k);1];
    x(1)=error(k)-error_1;
    x(2)=error(k);
    x(3)=error(k)-2*error_1+error_2;
    epid=[x(1);x(2);x(3)];
    [net,tr]=train(net,xi,kpid);
    kpid = sim(net,xi)
    du(k)=kpid'*epid
    u(k)=u_1+du(k);
    if u(k)>=10
        u(k)=10;
    end
    if u(k)<=-10
        u(k)=-10;
    end
    y_1=yout(k);
    u_1=u(k);
    error_2=error_1;
    error_1=error(k);
    
end
figure(1);
plot(time,rin,'r',time,yout,'b');
xlabel('t');
ylabel('o');

⌨️ 快捷键说明

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