S 函数编辑流程及相关 1
S 函数模板编辑环境进入: 在MATLAB 主界面中直接输入:edit sfu ntmpl 即可弹出S 函数模板编辑的M 文件环境,修改即可
在MATLAB 主界面中直接输入:sfu ndemos,即可调出S 函数的许多编程例子
S 函数模板的相关基础: 1) M 文件S 函数的引导语句为: ,
)2,1,,,,(],,0,[ppflaguxtftsstrxsysFunction S 函数默认的四个输入参数:t ,x ,u ,flag S 函数默认的四个输出函数:sy s ,x 0 ,str ,ts 各个参数的含义如下: T :代表当前的仿真时间,该输入决定了下一个采样时间; X :表示状态向量,行向量,引用格式:X(1),X(2) U :表示输入向量; Flag :控制在每一个仿真阶段调用哪一个子函数的参数,由 SIMULINK 在调用时自动取值; Sy s :通用的返回变量,返回的数值决定 Flag 值,mdlUpdates里:列向量,引用格式:Sy s(1,1),Sy s(2,1) ;mdlOu tpu ts 里:行向量,引用格式:Sy s =x
X0 :初始的状态值;列向量,引用格式:X0=[ 0;0;0 ] Str :空矩阵,无具体含义; Ts :包含模块采样时间和偏差的矩阵
[period, offset] 当Ts为-1时,表示与输入信号同采样周期
2) S 函数工作方式: Flag = 0 时,调用mdlInitializeSizes 函数,定义S 函数的基本特性,包括采样时间,连续或者离散状态的初始条件和Sizes数组; Flag = 1 时,调用mdlDerivatives 函数,计算连续状态变量的微分方程;求所给表达式的等号左边状态变量的积分值的过程
Flag = 2 时,调用mdlUpdate 函数