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

📄 indirectmain.m

📁 本程序运用广义模糊神经网络理论采用MATLABL编程
💻 M
字号:
%indirect adaptive/ neural network/ e.g 1
x=[0,0,0];T=0.01;r=0.005;
y=[x(1),x(3)];yy=y;
w1=0.01*rand(12,3);T1=0.01*rands(1,12);r1=rand(1,12);
w2=0.01*rand(12,3);T2=0.1*rands(1,12);r2=rand(1,12);
st1=[T1,w1(:,1)',w1(:,2)',w1(:,3)',r1];
st2=[T2,w2(:,1)',w2(:,2)',w2(:,3)',r2];
%global u x e de
t=0;tt=[t];u=[0,0];uu=[0,0];i=0;
ym=[2*sin(0.5*t+0.5),sin(t)];yym=ym;
ddym1=-0.5*sin(0.5*t+0.5);dym2=cos(t);
e1=[0,0];
for t=0.01:0.01:20
   i=i+1
   e=ym-y;
   de=(e-e1)/T;
   ua1=-(2.5*e(1)+2.5*de(1))/r;
   ua2=-0.5*e(2)/r;
   [o11,o12]=kexi2(w1,T1,r1,x);
   [o21,o22]=kexi2(w2,T2,r2,x);
   u(1)=(-o11+ddym1+2*e(1)+3*de(1)-ua1)/o12;
   u(2)=(-o21+dym2+10*e(2)-ua2)/o22;
   if (abs(u(1))>3) 
      u(1)=sign(u(1))*3;
   end   
   if (abs(u(2))>3)
      u(2)=sign(u(2))*3;
   end
   tspan=[t-0.01,t];
   options=odeset('reltol',1e-3,'abstol',[1e-6,1e-6,1e-6]);
   [t1,xx]=ode45('seq',tspan,x,options,u);
   m=size(xx,1);
   tspan;
   x=xx(m,:);
  if (abs(x(1))>5)
   x(1)=sign(x(1))*5;
end   
   if (abs(x(2))>5)
     x(2)=sign(x(2))*5;
 end   
   if (abs(x(3))>5)
      x(3)=sign(x(3))*5;
  end   
   x1=xx(m-1,:);
   if (abs(x1(1))>5)
     x1(1)=sign(x1(1))*5;
 end   
  if (abs(x1(2))>5)
      x1(2)=sign(x1(2))*5;
  end   
   if (abs(x1(3))>5)
      x1(3)=sign(x1(3))*5;
  end
   y=[x(1),x(3)]
   y1=[x1(1),x1(3)];
   if (i==100)
      uu=[uu;u];
      yy=[yy;y];
      tt=[tt;t1(m)];
      i=0;
   end   
   T=t1(m)-t1(m-1);
   ym=[2*sin(0.5*t1(m)+0.5),sin(t1(m))];
   ym1=[2*sin(0.5*t1(m-1)+0.5),sin(t1(m-1))];
   e1=ym1-y1;
   ddym1=-0.5*sin(0.5*t1(m)+0.5);dym2=cos(t1(m));
   option1=odeset('reltol',1e-3,'abstol',1e-6*ones(1,12*5));
   [t2,stt1]=ode45('adapp',tspan,st1,option1,x,e,de,u);
   [t3,stt2]=ode45('adappp',tspan,st2,option1,x,e,de,u);
   m=size(stt1,1);
   st1=stt1(m,:);
   m1=size(stt2,1);
   st2=stt2(m1,:);
   T1=st1(1:12),w1=[st1(13:24)',st1(25:36)',st1(37:48)'];r1=st1(49:60);
   T2=st2(1:12),w2=[st2(13:24)',st2(25:36)',st2(37:48)'];r2=st2(49:60);
end
tt;
uu;
yy
figure(1);
plot(tt,yy(:,1),'r',tt,yy(:,2),'b--')
for (t=1:1:20)
   yym=[yym;2*sin(0.5*t+0.5),sin(t)];
end   
yyym=yym-yy;
figure(2);
plot(tt,yyym(:,1),'r',tt,yyym(:,2),'b--')
figure(3);
plot(tt,uu)

⌨️ 快捷键说明

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