amfk2006 发表于 2010-10-25 15:00

请教一个关于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);

yufeng 发表于 2010-10-26 11:18

首先程序可能有问题 你这个是两个输入的差用不到mdlUpdate 另外在你的系统里面 注意输入的维数
页: [1]
查看完整版本: 请教一个关于S函数错误的问题