- 积分
- 0
- 注册时间
- 2009-6-15
- 仿真币
-
- 最后登录
- 1970-1-1
|
本帖最后由 ljelly 于 2010-5-28 09:15 编辑
这个S函数怎么建啊 我建出来的出错function [sys,x0,str,ts] = PNGV02(t,x,u,flag,R1,C1,R2,C2,P)
switch flag,
case 0,
[sys,x0,str,ts]=mdlInitializeSizes(E);
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(E)
sizes = simsizes;
sizes.NumContStates = 2;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 2;
sizes.NumInputs = 5;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0 = [E];
str = [];
ts = [0 0];
function sys=mdlDerivatives(t,x,u)
[A,B,C,D,il]=calcABCD(x,u);
sys =A*x+B*il;
%calcABCD
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=Cx+Dil+E
sys = [Uout,il];
function sys=mdlTerminate(t,x,u)
sys = []; |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|