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

📄 fuzzy500.m

📁 一阶500s模型的模糊控制
💻 M
字号:
%原结构(单位反馈)的修改程序
%文章阶跃信号用于k>=500时过程kp,tol变大.tp变小。
clear all;
close all;
a=readfis('m500nochange');

%被控对象模型:一阶纯滞后
ts=1;
kp1=1;
Tp1=30;
tol1=30;
sys1=tf([kp1],[Tp1,1],'inputdelay',tol1);
dsys1=c2d(sys1,ts,'zoh');
[num1,den1]=tfdata(dsys1,'v');
rin=1.0;
n1=(tol1/ts);
zz=0;

% signal initialisation
xee(1)=0;
xec(1)=0;
xm(1)=0;
e2(1)=0;
ec(1)=0;
ee(1)=0;
u(1)=0;
r(1)=1;
lanmda0=30;
p=1000;
ym=zeros([1,p]);
y=zeros([1,p]);
for k=2:1:p
%timef(k)=k*ts;
   r(k)=rin;
    zero(k)=zz;
   if k>=500
        kp=kp1*1.4;
       Tp=Tp1*0.6;
        tol=tol1*1.4;
    
    else
        kp=kp1;
       Tp=Tp1;
       tol=tol1;
   end
   n0=(tol/ts);
    sys=tf([kp],[Tp,1],'inputdelay',tol);
    dsys=c2d(sys,ts,'zoh');
    [num,den]=tfdata(dsys,'v');
   xm(k)=-den1(2)*xm(k-1)+num1(2)*u(k-1);
       if k>n0
          y(k)=-den(2)*y(k-1)+num(2)*u(k-n0);
      end
      if k>n1
      ym(k)=-den1(2)*ym(k-1)+num1(2)*u(k-n1);
      end
  %No precise Model:PI+Smith
   xee(k)=r(k)-y(k);
    xec(k)=xee(k)-xee(k-1);
    ee(k)=y(k)-ym(k);
    ec(k)=ee(k)-ee(k-1);
    e1(k)=r(k)-ee(k);
    e2(k)=e1(k)-xm(k);
   alf1=1;
    alf2=1;
    
   %alf1= 1- 0.7*exp(-1*xee(k)^2);
  % alf2= 1- 0.7*exp(-1*xec(k)^2); 
     

   w=[xee(k)/alf1,xec(k)/alf2];
    lanmda_pid=2*evalfis(w,a);
   %lanmda_pid=0;
    lanmda(k)=lanmda0+lanmda_pid; 
    u(k)=u(k-1)+[Tp1/(kp1*lanmda(k))]*e2(k)-[Tp1/(kp1*lanmda(k))]*e2(k-1)+[1/(kp1*lanmda(k))]*e2(k-1);  
end
%displaying the results
figure(1)
plot(r,':')
%axis([3 length(r-10) 0 1.5]);
hold on 
plot(y(2:length(y)));

xlabel('time(s)');
ylabel('r,y');
%figure(2)
%plot(uo,':')
%hold on 
%stairs(u(2:length(u)));
%xlabel('time(s)');
%ylabel('u');
%figure(3)
%plot(e1(2:length(e1)))
%xlabel('time(s)');
%ylabel('e1');
figure(4)
plot(lanmda,'r');
xlabel('time(s)');
ylabel('lanmda');
%figure(5)
%plot(ee(2:length(ee)))
%xlabel('time(s)');
%ylabel('model error');
figure(6)
plot(zero,':')
hold on
plot(xee(2:length(xee)))
xlabel('time(s)');
ylabel('error');

⌨️ 快捷键说明

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