• 大小: 582B
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: Matlab
  • 标签: 单神经元  PID  

资源简介

用单神经元PID实现智能控制的一个MATLAB程序,程序可以直接运行。

资源截图

代码片段和文件信息

clear all
close all
ts=1;
sys=tf(-3.6642[10-39.5002]);
dsys=c2d(systs‘z‘);
[numden]=tfdata(dsys‘v‘);
x=[0 0 0]‘;
xiteP=11.78;
xiteI=0.2;
xiteD=0.7313;
wkp_1=0.1;
wki_1=0.1;
wkd_1=0.1;
error_1=0;
error_2=0;
y_1=0;y_2=0;y_3=0;
u_1=0;u_2=0;u_3=0;
ts=1;
for k=1:1:5000
    time(k)=k*ts;
    rin(k)=1;
    yout(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;
    error(k)=rin(k)-yout(k);
    wkp(k)=wkp_1+xiteP*u_1;
    wki(k)=wki_1+xiteI*u_1;
    wkd(k)=wkd_1+xiteD*u_1;
    K=-1;
    x(1)=error(k)-error_1;
    x(2)=error(k);
    x(3)=error(k)-2*error_1+error_2;
    wadd(k)=abs(wkp(k))+abs(wki(k))+abs(wkd(k));
    w11(k)=wkp(k)/wadd(k);
    w22(k)=wki(k)/wadd(k);
    w33(k)=wkd(k)/wadd(k);
    w=[w11(k) w22(k) w33(k)];
    u(k)=u_1+K*w*x;
if u(k)>10
   u(k)=10;
end
if u(k)<-10
   u(k)=-10; 
end
error_2=error_1;
error_1=error(k);
u_3=u_2;u_2=u_1;u_1=u(k);
y_3=y_2; y_2=y_1;y_1=yout(k);
wkp_1=wkp(k);
wki_1=wki(k);
wkd_1=wkd(k); 
end
%figure(1);
%plot(timerin‘r‘timeyout‘b‘);
%figure(2);
%plot(timeerror‘r‘);
%figure(3);
plot(timeyout‘r‘);xlabel(‘time(s)‘);ylabel(‘rinyout‘);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1149  2011-04-14 11:48  SNPID.m

----------- ---------  ---------- -----  ----

                 1149                    1


评论

共有 条评论