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

📄 chap9_5.m

📁 北航刘金锟老师的《智能控制》附带的完整matlab源程序!
💻 M
字号:
%Preidctive control based on RBF Identification
clear all;
close all;

xite=0.30;
alfa=0.04;
x=[0,0,0]';

c=[ -3 -2 -1 1 2 3;
    -3 -2 -1 1 2 3;
    -3 -2 -1 1 2 3];
b=20*ones(6,1);

%w=rands(6,1)
w =[0.0310
   -0.3321
   -0.1342
   -0.5481
    0.1596
    0.5207];
h=[0,0,0,0,0,0]';
    
c_1=c;
c_2=c_1;

b_1=b;
b_2=b_1;

w_1=w;
w_2=w_1;

u=0;u_1=0;u_2=0;u_3=0;
y_1=0;y_2=0;y_3=0;
dy_1=0;dy_2=0;dy_3=0;

xiteu=0.3;

ts=0.001;
for k=1:1:2000
   time(k)=k*ts;
   r(k)=0.5*sign(sin(1*2*pi*k*ts));
   
   y(k)=y_1-y_2+y_3+u_1+u_2+u_3;

   x(1)=u_1;
   x(2)=y_1;
   x(3)=y_2;
   for j=1:1:6
      h(j)=exp(-norm(x-c(:,j))^2/(2*b(j)*b(j)));
   end
   ym(k)=w'*h;         

   d_w=0*w;
   for j=1:1:6
      d_w(j)=xite*(y(k)-ym(k))*h(j);
   end
   w=w_1+d_w+alfa*(w_1-w_2);
   
   d_b=0*b;
   for j=1:1:6
      d_b(j)=xite*(y(k)-ym(k))*w_1(j)*h(j)*(b(j)^-3)*norm(x-c(:,j))^2;
   end
   b=b_1+ d_b+alfa*(b_1-b_2);
   
   for j=1:1:6
     for i=1:1:3
      d_c(i,j)=xite*(y(k)-ym(k))*w_1(j)*h(j)*(x(i)-c(i,j))*(b(j)^-2);
     end
   end
   c=c_1+d_c+alfa*(c_1-c_2);
 
  %%%%%%%%%%%%%%%%%%%%%%%%%Jacobian%%%%%%%%%%%%%%%%%%%%%%%%%
  yu=0;
  for  j=1:1:6
      yu=yu+w(j)*h(j)*(-x(1)+c(1,j))/b(j)^2; 
   end
  dy(k)=yu;
  
  dJu(k)=2*0.5*u_1+2*0.5*(y(k)-r(k))*dy(k)+2*0.5*(y_1-r(k))*dy_1+2*0.5*(y_2-r(k))*dy_2+2*0.5*(y_3-r(k))*dy_3;
       
  u(k)=u_1-xiteu*dJu(k);
  
   u_3=u_2;
   u_2=u_1;
   u_1=u(k);
   
   y_3=y_2;
   y_2=y_1;
   y_1=y(k);
   
   w_2=w_1;
   w_1=w;
   
   c_2=c_1;
   c_1=c;
   
   b_2=b_1;
   b_1=b;
   
   dy_3=dy_2;
   dy_2=dy_1;
   dy_1=dy(k);
end
figure(1);
plot(time,r,'r',time,y,'b');
xlabel('time(s)');ylabel('Position tracking');
%figure(2);
%plot(time,dy,'r');
%xlabel('time(s)');ylabel('Jacobian');

⌨️ 快捷键说明

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