马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
function [sys,x0,str,ts]=exp_pidf(t,x,u,flag,T,kp,ki,kd,MTab)
switch flag,
case 0
[sys,x0,str,ts]=mdlInitializesSizes(T);
case 2
sys=mdlUpdates(x,u,T)
case 3
sys=mdlOutputs(t,x,u,kp,ki,kd,MTab);
case{1,4,9}
sys=[];
otherwise
error(['Unhandled flag=',num2str(flag)]);
end
function [sys,x0,str,ts]=mdlInitializesSizes(T)
x0=[0;0;0];
str=[];
ts=[-1 0];
function sys=mdlUpdates(x,u,T)
sys=[u(1);x(2)+u(1)*T;(u(1)-u(2)/T)];
function sys=mdlOutputs(t,x,u,kp,ki,kd,MTab)
i=find(abs(x(1))>MTab(:,1));
if length(i)>0
sys=MTab(i(1),2);
else
sys=M[kp,ki,kd]*x;
end
if x(1)*x(3)|(abs(x(3))<eps)
if abs(x(1))>=0.05
sys=u(3)+2*kp*x(1);
else
sys=u(3)+0.4*kp*x(1);
end
end
if x(1)*x(3)<0 & x(3)*u(4)<0
if abs(x(1))>=0.05
sys=u(3)+2*kp*u(2);
else
sys=u(3)+0.6*kp*u(2);
end
end
if abs(x(1))<=0.001
sys=0.5*x(1)+0.010*x(2);
end
sys=[sys;x(3)];
这个程序在仿真的时候输入s-function parameters的时候怎么填
希望各位大侠指教 |