[em7]大虾们 我第一次编S函数 不知道错在哪里了 望请教下 谢谢了
function [sys,x0,str,ts] = PNGV02(t,x,u,flag)
switch flag,
  case 0,
    [sys,x0,str,ts]=mdlInitializeSizes;
  case 1,
    sys=mdlDerivatives(t,x,u);
  case 2,
    sys=mdlUpdate(t,x,u);
  case 3,
    sys=mdlOutputs(t,x,u);
  case 9,
    sys=mdlTerminate(t,x,u);
  otherwise
    error(['Unhandled flag = ',num2str(flag)]);

end

function [sys,x0,str,ts]=mdlInitializeSizes()

sizes = simsizes;

sizes.NumContStates  = 2;
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = 2;
sizes.NumInputs      = 5;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;  
sys = simsizes(sizes);
x0  = [0;0];
str = [];
ts  = [0 0];

function sys=mdlDerivatives(t,x,u)
[A,B,C,D,il]=calcABCD(x,u);

sys =A*x+B*il;
%%%%%%%%%%%%%%%%%%%%
function calcABCD(x,u);
R1=u(1);
C1=u(2);
R2=u(3);
C2=u(4);
P=u(5);
A=[0 0;0 -1/C2*R2];B=[1/C1;1/C2];C=[-1,-1];D=[-R1];
il=((E-x(1)-x(2))-((E-x(1)-x(2))^2-4*R1*P)^0.5)/(2*R1);

function sys=mdlUpdate(t,x,u)

sys = [];

function sys=mdlOutputs(t,x,u)
[A,B,C,D,il]=calcABCD(x,u);

Uout=C*x+D*il

sys = [Uou il];

function sys=mdlTerminate(t,x,u)

sys = [];

出错说什么too many output argument。。。