Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2008-05-28, 15:26   #1
xs1119
初级会员
 
注册日期: 2008-04-24
年龄: 43
帖子: 21
声望力: 18
xs1119 正向着好的方向发展
默认 [求助]请问一下,sfunction的flag位,在simulink中是如何给出的?

我看仿真程序,其中Sfunction不知道如何给出的flag位的值,规则是什么?


附:程序

function [sys,x0,str,ts] =spacemode(t,x,u,flag)

switch flag,
case 0,
[sys,x0,str,ts]=mdlInitializeSizes;
case 1,
sys=mdlDerivatives(t,x,u);
case 3,
sys=mdlOutputs(t,x,u);
case {2,4,9}
sys=[];
otherwise
error(['Unhandled flag = ',num2str(flag)]);
end

function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates = 2;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 1;
sizes.NumInputs = 3;
sizes.DirFeedthrough = 0;
sizes.NumSampleTimes = 1; % At least one sample time is needed
sys = simsizes(sizes);
x0 = [0;0];
str = [];
ts = [0 0];

function sys=mdlDerivatives(t,x,u) %Time-varying model
kp=10;
ki=2;
kd=1;

ut=kp*u(1)+ki*u(2)+kd*u(3);

J=20+10*sin(6*pi*t);
K=400+300*sin(2*pi*t);

sys(1)=x(2);
sys(2)=-J*x(2)+K*ut;

function sys=mdlOutputs(t,x,u)

sys(1)=x(1);

[IMG]C:\Documents and Settings\Administrator\桌面\00[/IMG]
xs1119 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
【求助】菜鸟请教关于MATLAB与系统主题 月月 MATLAB论坛 4 2008-03-25 09:50


所有时间均为北京时间。现在的时间是 15:44


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.