csu2020 发表于 2009-6-23 11:57

s函数状态更新

%
function sys=mdlDerivatives(t,x,u)
sys = [];
%
function sys=mdlUpdate(t,x,u)
a=0.1;
sudu=u(1);
sflux=u(2);
if(sudu<=20)
if ((sflux<a&&sflux>-a)||(sflux-pi/3<a&&sflux-pi/3>-a)||(sflux-2*pi/3<a&&sflux-2*pi/3>-a)||(sflux-pi<a&&sflux-pi>-a)||(sflux-4*pi/3<a&&sflux-4*pi/3>-a)||(sflux-5*pi/3<a&&sflux-5*pi/3>-a))
    x(2)=0;
    x(1)=x(2);
else
    x(2)=x(1);
end
end
if(sudu>20)
if ((sflux<a&&sflux>-a)||(sflux-pi/3<a&&sflux-pi/3>-a)||(sflux-2*pi/3<a&&sflux-2*pi/3>-a)||(sflux-pi<a&&sflux-pi>-a)||(sflux-4*pi/3<a&&sflux-4*pi/3>-a)||(sflux-5*pi/3<a&&sflux-5*pi/3>-a))
    x(2)=1;
    x(1)=x(2)                   %我本意是想将x(2)状态保存到想x(1)使得if条件不满足的时候x(2)不变
else
      x(2)=x(1)               %x(2)不变
end
end
sys(2)=x(2);
%sys = [];
%

csu2020 发表于 2009-6-23 11:59

我应该怎么弄啊,结果是x(1)又被从初始化为0了

csu2020 发表于 2009-6-23 15:59

怎么没人知道吗?
页: [1]
查看完整版本: s函数状态更新