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 = [];
% 我应该怎么弄啊,结果是x(1)又被从初始化为0了 怎么没人知道吗?
页:
[1]