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

📄 chap5_2.m

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

T=0.1;
x1=-1:T:1;
x2=-1:T:1;

L=2;
h=0.2;
N=L/h+1;

for i=1:1:N     %N MF
  for j=1:1:N
    e1(i)=-1+L/(N-1)*(i-1);
    e2(j)=-1+L/(N-1)*(j-1);
	 gx(i,j)=0.52+0.1*e1(i)^3+0.28*e2(j)^3-0.06*e1(i)*e2(j);
	end
end

df=zeros(L/T+1,L/T+1);
cf=zeros(L/T+1,L/T+1);
for m=1:1:N                       %u1 change from 1 to N
   if m==1
		u1=trimf(x1,[-1,-1,-1+L/(N-1)]);   %First u1
   elseif m==N
		u1=trimf(x1,[1-L/(N-1),1,1]);      %Last u1
   else
   	u1=trimf(x1,[e1(m-1),e1(m),e1(m+1)]); 
   end
figure(1);
hold on;
plot(x1,u1);
xlabel('x1');ylabel('Membership function');

for n=1:1:N                              %u2 change from 1 to N
   if n==1
      u2=trimf(x2,[-1,-1,-1+L/(N-1)]);   %First u2  
   elseif n==N
      u2=trimf(x2,[1-L/(N-1),1,1]);      %Last u2
   else 
      u2=trimf(x2,[e2(n-1),e2(n),e2(n+1)]);
   end
figure(2);
hold on;
plot(x2,u2);
xlabel('x2');ylabel('Membership function');

	for i=1:1:L/T+1
      for j=1:1:L/T+1
        d=df(i,j)+u1(i)*u2(j);
        df(i,j)=d;
        c=cf(i,j)+gx(m,n)*u1(i)*u2(j);
        cf(i,j)=c; 
      end
   end
end
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:1:L/T+1
    for j=1:1:L/T+1
        f(i,j)=cf(i,j)/df(i,j);
        y(i,j)=0.52+0.1*x1(i)^3+0.28*x2(j)^3-0.06*x1(i)*x2(j);
    end
end
figure(3);
subplot(211);
surf(x1,x2,f);
title('f(x)');
subplot(212);
surf(x1,x2,y);
title('g(x)');
figure(4);
surf(x1,x2,f-y);
title('Approaching error');

⌨️ 快捷键说明

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