MATLAB第5章S函数

第5章 S-函 数 5.1 S-函数概述 5.2 S-函数的工作原理 5.3 编写M文件S-函数 5.1 S-函数概述 5.1.1 S-函数的基本概念 S-函数是系统函数(System Function) 的简称,是指采用非图形化的方式描述的一个功能块。用户可以采用MATLAB代码,C,C++等语言编写S-函数。S-函数由一种特定的语法构成,用来描述并实现连续系统、离散系统以及复合系统等动态系统。 简单来说,用户可以从如下的几个角度来理解S-函数: (1) S-函数为Simulink的“系统”函数。 (2) 能够响应Simulink求解器命令的函数。 (3) 采用非图形化的方法实现一个动态系统。 (4) 可以开发新的Simulink模块。 (5) 可以与已有的代码相结合进行仿真。 (6) 采用文本方式输入复杂的系统方程。 (7) 扩展Simulink功能。M文件S-函数可以扩展图形能力,C MEX S-函数可以提供与操作系统的接口。 5.1.2 如何使用S-函数 在动态系统设计、仿真与分析中,用户可以使用Functions & Tables模块库中的S-function模块来使用S-函数;S-function模块是一个单输入单输出的系统模块,如果有多个输入与多个输出信号,可以使用Mux模块与Demux模块对信号进行组合和分离操作。 一般而言,S-函数的使用步骤如下: (1) 创建S-函数源文件。创建S-函数源文件有多种方法,当然用户可以按照S-函数的语法格式自行书写每一行代码,但是这样做容易出错且麻烦。Simulink为我们提供了很多S-函数模板和例子,用户可以根据自己的需要修改相应的模板或例子即可。 (2) 在动态系统的Simulink模型框图中添加S-function模块,并进行正确的设置。 (3) 在Simulink模型框图中按照定义好的功能连接输入输出端口。 【例5.1】 使用S-函数实现系统:y=2u。 解:(1) 打开模板M文件S-函数模板文件sfuntmpl.m ,在\MATLABroot\work目录下另存为doublesfunction.m。 (2) 找到函数mdlInitializeSizes,修改以下代码: sizes.NumOutputs = 1; sizes.NumInputs = 1; (3) 找到函数mdlOutputs,加入以下代码: sys=2*u; (到现在为止我们的第一个S-函数写完了。下面演示一下它的作用。) (4) 在Simulink空白页中添加S-function 块,打开S-function 块对话框,参数S-function name设置为doublesfunction 。按照图5.2添加连接好其余的各个模块。 (5) 开始仿真,在Scope中观察输出结果,可以看到输入正弦信号被放大为原来的2倍,如图5.2所示。 5.2 S-函数的工作原理 5.2.1 状态方程 在对动态系统建模时,总是能够采用广义的状态空间形式对无论是线性系统还是非线性系统进行描述。这个描述包含以下两个方程: 状态方程: 输出方程: 其中A、B、C、D分别是状态矩阵、输入矩阵、输出矩阵、前馈矩阵。 Simulink框图的大部分模块都具有一个输入向量u、一个输出向量y和一个状态向量x,如图5.3所示。 S-函数同样是一个Simulink模块。它的以下几个例程函数清楚地体现了状态空间所描述的特性。 (1) ?S-函数中的连续状态方程描述。状态向量的一阶导数是状态x、输入u和时间t的函数。在S-函数中,状态的一阶导数是在mdlDerivatives例程中计算的,并将结果返回供求解器积分。 (2) ?S-函数中的离散状态方程描述。下一步状态的值依赖于当前的状态输入u和时间t。这是通过mdlUpdate例程完成的,并将结果返回供求解器在下一步时使用。 (3) ?S-函数中的输出方程描述。输出值是状态、输入和时间的函数。 5.2.2 Simulink仿真的两个阶段 理解S-函数首先要很好地了解Simulink的仿真过程。仿真包含两个主要阶段,第一个阶段是初始化,这时块的所有参数都已确定下来。初始化阶段完成了以下工作: (1) 传递参数给MATLAB进行求值。 (2)

matlab s函数模板,MATLAB第5章S函数.ppt相关推荐

  1. matlab贝塞尔函数重积分,第三章 贝塞尔函数 柱函数.pdf

    第十四章 贝塞尔函数 柱函数 贝塞 尔函数(也称 为圆柱 函数)是现代科 学技术领 域 中经常遇 到的一类特殊 函数 .1732 年伯努利研究 直悬链的摆动 问题,以及 1764 年欧拉研 究拉 紧圆 ...

  2. matlab 车牌识别模板,MATLAB的车牌识别

    MATLAB的车牌识别 matlab 2020-12-13 下载地址 https://www.codedown123.com/55034.html 基于MATLAB的车牌识别,主要包括车牌定位.字符分 ...

  3. c++函数模板,有默认参数的函数

    1.函数模板 #include <iostream> using namespace std; template <typename T> //template<clas ...

  4. php中unset函数是在哪一章_php函数可以分为哪三种

    1.变量函数 变量函数又叫可变函数,php脚本在执行中会寻找与变量的值同名的函数并且去执行它,这样的好处是可以将不同的函数名称赋值给同一个变量,赋给变量那个函数名,在程序中使用变量名加上圆括号就调用那 ...

  5. MATLAB 作图SCI模板

    MATLAB 作图SCI模板 MATLAB作图概述 在不进行特定设置时,matlab画出的图是很难满足大多数期刊的要求的.其中关键的问题在于作图的尺寸,图中线条的配色,与导出图片的分辨率等原因. MA ...

  6. matlab上机实验报告,matlab实验报告格式.doc

    matlab实验报告格式,matlab实验报告,matlab实验报告总结,matlab综合实验报告,matlab数学实验报告,matlab仿真实验报告,matlab上机实验报告,matlab实验报告模 ...

  7. c++ swap函数头文件_C++函数模板(泛型编程)

    模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码. 模板是创建泛型类或函数的蓝图或公式.库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念. 每个容器都有一个单 ...

  8. 函数模板的载体-HPP

    在C++中,我们通常将声明放在.h头文件中,将具体的实现代码放在.cpp文件中.但是函数模板通常不这么做,函数模板是将其声明和实现都放在.hpp文件中.hpp是Header Plus Plus的缩写, ...

  9. C++之函数模板探究

    函数模板概念:   有很多函数仅仅是参数类型不同,但是实现过程很类似.在C++里,我们可以写一个通用函数,使用非实例化的函数类型,该参数在函数被调用时进行实例化,这种函数被称为函数模板. 例1:未使用 ...

  10. 25.C++- 泛型编程之函数模板(详解)

    本章学习: 1)初探函数模板 2)深入理解函数模板 3)多参函数模板 4)重载函数模板 当我们想写个Swap()交换函数时,通常这样写: void Swap(int& a, int& ...

最新文章

  1. 【Python CheckiO 题解】Probably Dice
  2. Java基础——构造代码块
  3. 可以判断用户打开页面次数吗?_看前端如何单枪匹马实现小程序页面级版本控制...
  4. 一个通用的VB磁盘文件搜索引擎类
  5. java 图形界面---字体的设置
  6. python3 循环获取checkbutton_Python3 tkinter基础 Menu add_checkbutton 多选的下拉菜单
  7. Oracle刷建表语句
  8. 智能优化算法的常用改进方法
  9. 转载 | 自动驾驶中的9种传感器融合算法
  10. Android自定义华为睡眠,Android自定义View
  11. python有架构师吗_运维架构师-Python 自动化运维开发-021
  12. 学生信息管理系统——python版(附流程图)
  13. 斐波那契问题——上台阶问题
  14. Python之进程 3 - 进程池和multiprocess.Poll
  15. Latex图片、公式、参考文献插入技巧
  16. pycharm运行按钮灰色解决方法
  17. 重复最多字符次数java_利用Java实现求字符串中出现次数最多的字符及次数
  18. 中美青年创客大赛启动,50万奖金等你来挑战!
  19. 01-简历设计(模板1)
  20. 小区宽带需求分析解决方案

热门文章

  1. Qt QApplication 类简介--Qt 类简介专题(四)
  2. 系统服务启动交互式程序(C++)
  3. Oracle数据库存储过程 ,去除给定字符串中重复的字符串
  4. MOSS中集成各个子网站的数据到一个页面,做决策支持页面的首选: Web Capture
  5. P2046 [NOI2010]海拔
  6. jmeter 中的Parameters 和Body Data的区别
  7. 【BZOJ4818】序列计数(动态规划,生成函数)
  8. 关于18183-王者荣耀专区网站的TDK简要分析(更多内容请访问http://www.eduaskx6.com/)...
  9. 心得:调整边缘、叠加模式的妙用
  10. Linux的安装和使用技巧