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

📄 pid.m

📁 基于二次型性能指标的单神经元pid控制程序
💻 M
字号:
%Single Neural Net PID Controller based on Second Type Learning Algorithm 
clear all; 
close all; 

xc=[0,0,0]'; 

K=0.02;P=2;Q=1;d=6; 

xiteP=120; 
xiteI=4; 
xiteD=159; 

%Initilizing kp,ki and kd 
wkp_1=rand; 
wki_1=rand; 
wkd_1=rand; 

wkp_1=0.34; 
wki_1=0.32; 
wkd_1=0.33; 

error_1=0;error_2=0; 
y_1=0;y_2=0; 
u_1=0.1726;u_2=0;u_3=0;u_4=0;u_5=0;u_6=0;u_7=0; 

ts=0.001; 
for k=1:1:250 
   time(k)=k*ts; 
   rin(k)=1.0;                           %Tracing Step Signal 
    
   ym(k)=0; 
   if k==100 
       ym(k)=0.10;  %Disturbance 
   end 
   yout(k)=0.368*y_1+0.26*y_2+u_6+0.632*u_7+ym(k); 
   error(k)=rin(k)-yout(k); 
    
   wx=[wkp_1,wkd_1,wki_1]; 
   wx=wx*xc; 
    
  b0=yout(1); 
  %   b0=0.05; 
   K=0.0175;   
   wkp(k)=wkp_1+xiteP*K*[P*b0*error(k)*xc(1)-Q*K*wx*xc(1)]; 
   wki(k)=wki_1+xiteI*K*[P*b0*error(k)*xc(2)-Q*K*wx*xc(2)]; 
   wkd(k)=wkd_1+xiteD*K*[P*b0*error(k)*xc(3)-Q*K*wx*xc(3)]; 
    
   xc(1)=error(k)-error_1;               %P 
   xc(2)=error(k);                       %I 
   xc(3)=error(k)-2*error_1+error_2;     %D 
    
   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*xc;     % Control law 
    
   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_7=u_6;u_6=u_5;u_5=u_4;u_4=u_3; 
   u_3=u_2;u_2=u_1;u_1=u(k); 
    
   wkp_1=wkp(k); 
   wkd_1=wkd(k); 
   wki_1=wki(k); 
    
   y_2=y_1;y_1=yout(k); 
end 
figure(1); 
plot(time,rin,'r',time,yout,'b'); 
xlabel('time(s)');ylabel('rin,yout'); 
figure(2); 
plot(time,u,'r'); 
xlabel('time(s)');ylabel('u'); 
figure(3); 
subplot(311); 
plot(time,wkp,'r'); 
xlabel('time(s)');ylabel('wkp'); 
subplot(312); 
plot(time,wki,'r'); 
xlabel('time(s)');ylabel('wki'); 
subplot(313); 
plot(time,wkd,'r'); 
xlabel('time(s)');ylabel('wkd'); 

⌨️ 快捷键说明

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