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

资源简介

用RBF核函数整定PID控制。M=1时为RBF正定的PID控制,M=2时为未加整定的PID控制。

资源截图

代码片段和文件信息

clear all;
close all;
xite=0.25;
alfa=0.05;
belte=0.01;
x=[000]‘;

ci=30*ones(36);
bi=40*ones(61);
w=10*ones(61);

h=[000000]‘;

ci_1=ci;ci_3=ci_1;ci_2=ci_1;
bi_1=bi;bi_3=bi_1;bi_2=bi_1;
w_1=w;w_3=w_1;w_2=w_1;

u_1=0;y_1=0;
xc=[000]‘;
error_1=0;error_2=0;error_3=0;

%kp=rand(1);
%ki=rand(1);
%kd=rand(1);
kp0=0.03;
ki0=0.01;
kd0=0.03;

kp_1=kp0;
ki_1=ki0;
kd_1=kd0;

xitekp=0.20;
xitekd=0.20;
xiteki=0.20;

ts=0.001;
for k=1:1:2000
    time(k)=k*ts;
    rin(k)=1.0*sign(sin(2*pi*k*ts));
    yout(k)=(-0.1*y_1+u_1)/(1+y_1^2); 
    
    for j=1:1:6
        h(j)=exp(-norm(x-ci(:j))^2/(2*bi(j)*bi(j)));
    end
    ymout(k)=w‘*h;
    
    d_w=0*bi;
    for j=1:1:6
        d_w(j)=xite*(yout(k)-ymout(k))*h(j);
    end
    w=w_1+d_w+alfa*(w_1-w_2)+belte*(w_2-w_3);
    
    d_bi=0*bi;
    for j=1:1:6
        d_bi(j)=xite*(yout(k)-ymout(k))*w(j)*h(j)*(bi(j)^-3)*norm(x-ci(:j))^2;
    end
    bi=bi_1+d_bi+alfa*(bi_1-bi_2)+belte*(bi_2-bi_3);
    for j=1:1:6
        for i=1:1:3
            
             d_ci(ij)=xite*(yout(k)-ymout(k))*w(j)*h(j)*(x(i)-ci(ij))*(bi(j)^-2);
         end
     end
     ci=ci_1+d_ci+alfa*(ci_1-ci_2)+belte*(ci_2-ci_3);
     
     %%%%%%%%%%%%%jacobian%%%%%%%%%%%5
    yu=0;
    for j=1:1:6
        yu=yu+w(j)*h(j)*(-x(1)+ci(1j))/bi(j)^2;
    end
    dyout(k)=yu;
    %%%%%%%%%

评论

共有 条评论