S-function函数
在MATALAB命令行窗口输入命令,打开模板
>>edit sfuntmpl.m
模板文件stuntmpl.m包括:
1个主函数
6个子函数
(1)主函数
主函数的引导语句为:function[sys,x0,str,ts]=fname(t.x,u,flag)
fname是S函数的函数名。
输入形参t、x、u、flag分别为仿真时间、状态向量、输入向量和子函数调用标志。
输出形参sys代表一种返回参数(取决于flag的值);xo是初始状态值;对于M文件S函数,str将被置成一个空阵;ts是一个两列矩阵(状态变量的采样周期和采样时间的偏移量;连续系统:都为0)。
(2)子函数
S函数共有6个子函数,这些子函数的前辍为mdl,由flag的值来控制在仿真的各阶段调用S函数的哪一个子函数。
例如:flag取0:调用初始化子函数mdllnitializesizes 。
flag取1:调用子函数mdlDerivatives实现连续状态的更新。
flag取2:调用子函数mdUpdate实现离散状态的更新。
flag取3:调用输出子函数mdlOutputs
S函数的应用
采用S函数实现y=kx+b
(1)定义S函数
-
1. 主函数
- function[sys.x0,str,ts