|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
小弟在做课程设计的时候,要设计一个双容水柜的控制器,但是这个模型是非线性连续系统,
下面是我自己写的s函数,当仿真的时候,无论输入怎么变化,输出图形都不变化,不知道原因,请各位大侠帮忙解决一下!谢谢!s函数如下:
function [sys,x0,str,ts] = mysh(t,x,u,flag)
Cv2=10.4;
Cv3=11.79;
A1=50;
A2=57;
switch flag,
case 0
[sys,x0,str,ts] = mdlInitializeSizes(Cv2,Cv3,A1,A2);
case 1
sys=mdlDerivatives(t,x,u,Cv2,Cv3,A1,A2);
case 3
sys = mdlOutputs(t,x,u,Cv2,Cv3,A1,A2);
case {2,4,9}
sys = [];
otherwise
error(['Unhandled flag = ',num2str(flag)]);
end
function [sys,x0,str,ts] = mdlInitializeSizes(Cv2,Cv3,A1,A2)
sizes = simsizes;
sizes.NumContStates = 2;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 1;
sizes.NumInputs = 1;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0 = [50; 0];
str = [];
ts = [0 0];
function sys=mdlDerivatives(t,x,u,Cv2,Cv3,A1,A2)
sys(1)=x(2);
sys(2)=(u/(A2*x(2)+Cv3*x(1)^0.5)-A1*Cv3*x(2)/(Cv2^2*x(1)^0.5)-1)*Cv2^2/(2*A1*A2)
function sys = mdlOutputs(t,x,u)
sys = x(1);
恳请各位大侠指出错误! |
|