[已答复] MATLAB S-function 'semitrailer', flag = 3 (output), at ti...

[复制链接]
huobing 发表于 2014-12-11 10:23:45
function [sys,x0,str,ts] = semitrailer(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  = 4;
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = 4;
sizes.NumInputs      = 1;
sizes.DirFeedthrough = 0;
sizes.NumSampleTimes = 1;  
sys = simsizes(sizes);
x0  =[0 0 0 0];
str = [];
ts  = [0 0];
A=[ 0 0 1225900000 0
    0 0 585900000 0
    0 0 -77700000 0
    0 0 0 0];
B=[89.8870
    27.0807
    -0.3362
    0];
C=[1 0 0 0
   0 1 0 0
   0 0 1 0
   0 0 0 1];
D=[0 0 0 0];
function sys=mdlDerivatives(t,x,u,A,B,C,D)
sys =A*x+B*u;
function sys=mdlOutputs(t,x,u,A,B,C,D)
sys = C*x+D*u;
function sys=mdlGetTimeOfNextVarHit(t,x,u)
sampleTime = 1;  
sys = t + sampleTime;
function sys=mdlTerminate(t,x,u)
sys = [];


1 条回复


zlsv587 发表于 2014-12-11 11:07:25
这个s function是用来干啥的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表