S 函数的简介及编写 摘自恒润科技 S-fu nction 的编写 1. S 函 数 模 板 编 辑 环 境 进 入 : 在 MATLAB 主 界 面 中 直 接 输 入 : edit sfu ntmpl 即 可 弹 出 S 函 数 模 板 编 辑 的 M 文 件 环 境 , 修 改 即 可 。 在 MATLAB 主 界 面 中 直 接 输 入 : sfu ndemos, 即 可 调出 S 函 数 的 许多编程例子。 2. 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 函 数 , 用 于 更 新 离 散 状 态 , 采 样 时 间 和 主 时 间步 的 要 求 ; Flag = 3 时 , 调 用 mdlOutputs 函 数 , 计 算 S 函 数 的 ...