• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-20
  • 语言: Matlab
  • 标签: BP  PID  

资源简介

基于BP神经网络的自整定PID控制仿真,经测试,可成功运行,放心下载!

资源截图

代码片段和文件信息

clear all;
close all;
xite=0.25;
alfa=0.02;
IN=4;
H=10;
Out=3;
wi=[ 0.4634 -0.4173  0.3190  0.4563
     0.1839  0.3021  0.1112  0.3395
    -0.3182  0.0470  0.0850 -0.0722
    -0.6266  0.0846  0.3751 -0.6900
    -0.3224  0.1440 -0.2873 -0.0193
    -0.0232 -0.0992  0.2636  0.2011
    -0.4502 -0.2928  0.0062 -0.5640
    -0.1975 -0.1332  0.1981  0.0422
     0.0521  0.0673 -0.5546 -0.4830
    -0.6016 -0.4097  0.0338 -0.1503]
wi_1=wi;wi_2=wi;wi_3=wi;

wo=[-0.1620  0.3674  0.1959
    -0.0337 -0.1563 -0.1454
     0.0898  0.7239  0.7605
     0.3349  0.7683  0.4714
     0.0215  0.5896  0.7143
    -0.0914  0.4666  0.0771
     0.4270  0.2436  0.7026
     0.0215  0.4400  0.1121
     0.2566  0.2486  0.4857
     0.0198  0.4970  0.6450];
wo_1=wo;wo_2=wo;wo_3=wo;

x=[000];
u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;
y_1=0;y_2=0;y_3=0;

Oh=zeros(H1);
I=Oh;
error_2=0;
error_1=0;

ts=0.01;
for k=1:1:600
 time(k)=k*ts;
 rin(k)=1;

 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)];

 I=xi*wi‘;%Middle layer
 for j=1:1:H    
   Oh(j)=(exp(I(j))-exp(-I(j)))/(exp(I(j))+exp(-I(j))); 
 end

 K=wo‘*Oh;%Output layer
 for l=1:1:Out
   K(l)=exp(K(l))/(exp(K(l))+exp(-K(l)));
 end
 
 kp(k)=K(1);

评论

共有 条评论