请教一个关于S函数错误的问题
本帖最后由 amfk2006 于 2010-10-25 15:34 编辑Output returned by S-function '***' in '***' during flag=3 call must be a real vector of length 1
单独加常数或正弦输入,没有问题,但是放在大的模型一起仿真,就出现如上错误,请大侠看看,谢谢!
function = mpt(t,x,u,flag,Kc)
switch flag
case 0
=mdlInitializeSizes;
case 2
sys=mdlUpdate(t,x,u);
case 3
sys=mdlOutputs(t,x,u,Kc);
case{1,4,9}
sys=[];
otherwise
error(['Unhandled flag = ',num2str(flag)]);
end
function =mdlInitializeSizes(t,x,u)
sizes = simsizes;
sizes.NumContStates= 0;
sizes.NumDiscStates= 2;
sizes.NumOutputs = 1;
sizes.NumInputs = 2;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0= ;
str = [];
ts= ;
function sys=mdlUpdate(t,x,u)
sys(1,1) = u(1);
sys(2,1) = u(2);
function sys=mdlOutputs(t,x,u,Kc)
sys = u(1)-u(2);
首先程序可能有问题 你这个是两个输入的差用不到mdlUpdate 另外在你的系统里面 注意输入的维数
页:
[1]