MATLAB S函数编辑流程(M语言版本)

本文介绍了MATLAB S函数的编辑流程,特别是针对M语言版本。通过解析simulink的仿真过程,详细讲解了S函数的初始化、状态计算、输出计算等关键步骤,并提供了实例代码进行说明。
摘要由CSDN通过智能技术生成

@MATLAB S函数编辑流程(M语言版本)

Simulink仿真过程(以便理解S函数)

先介绍一下simulink的仿真过程(以便理解s函数),simulink的仿真有两个阶段: 一个为初始化,这个阶段主要是设置一些参数,像系统的输入输出个数、状态初值、 采样时间等;第二个阶段就是运行阶段,这个阶段里要进行计算输出、更新离散状态、 计算连续状态等等,这个阶段需要反复运行,直至结束.

S函数Edit

在matlab的workspace里输入edit sfuntmpl(这是matlab自己提供的s函数模板),我们看它来具体分析s函数的结构.

  1. 函数的函数头;
    函数的第一行:function [sys,x0,str,ts]=sfuntmpl(t,x,u,flag) , 先讲输入与输出变量的含义: t是采样时间, x是状态变量, u是输入(是做成simulink模块的输入), flag是仿真过程中的状态标志(以它来判断当前是初始化还是运行等) sys输出根据flag的不同而不同(下面将结合flag来讲sys的含义), x0是状态变量的初始值, str是保留参数(mathworks公司还没想好该怎么用它, 一般在初始化中将它置空就可以了, str=[]), ts是一个1×2的向量, ts(1)是采样周期, ts(2)是偏移量。
  2. 函数分析;
    下面结合sfuntmpl.m中的代码来讲具体的结构:
    switch flag, %判断flag,看当前处于哪个状态
    case 0,
    [sys,x0,str,ts]=mdlInitializeSizes;
    // 解释说明
    flag
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值