matlabM文件S函数标准模板
matlabM文件S函数标准模板
matlabM文件S函数标准模板
function [sys,x0,str,ts] = sfuntmpl(t,x,u,flag)ﻫ% SFUNTMPL 是M-文件 S函数模板ﻫ% 通过剪裁,用户可以生成自己的S函数,不过一定要重新命名ﻫ% 利用S函数可以生成连续、离散混合系统等,实现任何模块的功能ﻫ%
% M—文件S函数的语法为:
% [SYS,X0,STR,TS] = SFUNC(T,X,U,FLAG,P1,...,Pn)ﻫ%
% 参数含义:
% t是当前时间ﻫ% x是S函数相应的状态向量
% u是模块的输入
% flag是所要执行的任务ﻫ%ﻫ% FLAG 结果 功能ﻫ% —-—-— ———-—- —-—-—-—-—-——-—-—--——————--—---—---—--———----ﻫ% 0 [SIZES,X0,STR,TS] 模块初始化ﻫ% 1 DX 计算模块导数ﻫ% 2 DS 更新模块离散状态ﻫ% 3 Y 计算模块输出ﻫ% 4 TNEXT 计算下一个采样时间点ﻫ% 9 [] 结束仿真
%
%ﻫ% 用户切勿改动输出参数的顺序、名称和数目ﻫ% 输入参数的数目不能小于1,这四个参数的名称和排列顺序不能改动
matlabM文件S函数标准模板
matlabM文件S函数标准模板
matlabM文件S函数标准模板
% 用户可以根据自己的要求添加额外的参数,位置依次为第5,6,7,8,9等。
% S函数的flag参数是一个标记变量,具有6个不同值,分别为0,1,2,3,4,9
% flag的6个值分别指向6个不同的子函数
% flag所指向的子函数也成为回调方法(Callback Methods)
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 4,ﻫ sys=mdlGetTimeOfNextVarHit(t,x,u);
%结束,调用“结束仿真”子函数%
case 9,ﻫ sys=mdlTerminate(t,x,u);
%其他的flag%ﻫ otherwiseﻫ DAStudio。e
matlabM文件S函数标准模板 来自淘豆网m.daumloan.com转载请标明出处.