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

📄 chap8_2.m

📁 这是关于刘金琨《智能控制》上我自己编写一部分程序
💻 M
字号:
%Pi-Sigma Type Fuzzy Neural Network
clear all;
close all;

xite=0.85;
alfa=0.05;

p0=0.1*ones(9,1);
p1=0.1*ones(9,1);
p2=0.1*ones(9,1);

p0_1=p0;p0_2=p0_1;
p1_1=p1;p1_2=p1_1;
p2_1=p2;p2_2=p2_1;

c0=[-5,0,5];
b0=[3,3,3];
for i=1:1:3
for j=1:1:3
m=3*(i-1)+j;
c(m,1)=c0(i);
c(m,2)=c0(j);

b(m,1)=b0(i);
b(m,2)=b0(j);
end
end

c_1=c;
c_2=c_1;
b_1=b;
b_2=b_1;

yd_1=0;
u_1=0;

ts=0.001;
for k=1:1:1000
time(k)=k*ts;
   
u(k)=0.50*sin(6*pi*k*ts);
yd(k)=u_1^3+yd_1/(1+yd_1^2);

x(1)=u(k);
x(2)=yd_1;

for i=1:1:2
for j=1:1:9
    fz(i,j)=exp(-(x(i)-c(j,i))^2/b(j,i));
end
end

for i=1:1:9
 	 w(i)=fz(1,i)*fz(2,i);
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
addw=0;
for i=1:1:9
    addw=addw+w(i);
end

for i=1:1:9
    yi(i)=p0_1(i)+p1_1(i)*x(1)+p2_1(i)*x(2);
end

addyw=0;
for i=1:1:9
    addyw=addyw+yi(i)*w(i);
end

yn(k)=addyw/addw;
e(k)=yd(k)-yn(k);

%Learning
d_p=0*p0;
for i=1:1:9
    d_p(i)=xite*e(k)*w(i)/addw;
end
   p0=p0_1+ d_p+alfa*(p0_1-p0_2);
   p1=p1_1+ d_p*x(1)+alfa*(p1_1-p1_2);
   p2=p2_1+ d_p*x(2)+alfa*(p2_1-p2_2);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
d_b=0*b_1;
for i=1:1:9
for j=1:1:2
   d_b(i,j)=xite*e(k)*(yi(i)*addw-addyw)*(x(j)-c(i,j))^2*w(i)/(b(i,j)^2*addw^2);
end
end
   b=b_1+d_b+alfa*(b_1-b_2);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
d_c=0*c_1;
for i=1:1:9
for j=1:1:2
   d_c(i,j)=xite*e(k)*(yi(i)*addw-addyw)*2*(x(j)-c(i,j))*w(i)/(b(i,j)*addw^2);
end
end
c=c_1+d_c+alfa*(c_1-c_2);
   
p0_2=p0_1;p0_1=p0;
p1_2=p1_1;p1_1=p1;
p2_2=p2_1;p2_1=p2;

c_2=c_1;c_1=c;   
b_2=b_1;b_1=b;
 
u_1=u(k);
yd_1=yd(k);
end   
figure(1);
plot(time,yd,'r',time,yn,'b');
xlabel('time(s)');ylabel('Approaching');

figure(2);
plot(time,yd-yn,'r');
xlabel('time(s)');ylabel('Approaching error');

⌨️ 快捷键说明

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