simulink用于对动态系统进行仿真与建模

目录

  • 一、simulink仿真基础
  • 二、子系统的创建与封装
  • 三、S函数的设计与应用

一、simulink仿真基础

本节内容:

simulink启动方式
启动之后,点击black model,从而打开模型编辑窗口。



看一下simulink中的simulink Library Browser,
注1:左面窗口是模块库列表,单击左面某个模块库则右面显示该模块的子模块库,双击其中一个子模块库图表,则列出此子模块库的所有模块。
注2:注意看:左侧窗口的simulink是基本模块库,左侧窗口除了simulink之外的模块库是专业模块库。
注3:模块是构成仿真模型的基本单元,在模型编辑窗口中,添加所需要的模块,并将各种模块连接在一起,就构成了系统的仿真模型。

simulink模块操作



模型创建完成之后,将模型存盘:

模块参数的设置


仿真参数的设置
打开仿真参数设置的方法:

你要重点了解的是左侧窗口的solver的设置,其内容为下图右侧窗口的三个红圈分别代表仿真起始时间、结束时间、选择微分方程求解算法。


运行当前模型:

例:
正弦信号由信号源模块中的正弦信号模块提供
余弦信号还是由正弦信号模块提供,只是相角设置为pi/2
把仿真结果送给示波器模块和XY Graph模块
其中示波器模块设置两个输入端口,分别显示sin t 和con t随仿真时间的变化曲线。
XY Graph模块显示sint对cont的变化曲线。

模型建好后将模型存盘,设置仿真起始时间为0 ~ 2pi,仿真算法为固定步长ode5算法(即5阶龙格库塔算法)
启动仿真,双击示波器模块和XY Graph模块,仿真结果如下:

本节总结:

二、子系统的创建与封装

子系统是指将若干个模块组合到一起形成的新的模块。使用子系统可以减少模型中模块的数量,便于模块的组织与原理。子系统作为独立的模块可以在仿真模型中直接作为标准的simulink模块使用。
本节内容:

1、子系统的创建
两种方法:

例:
以创建y = kx + b子系统为例:

方法一:通过Subsystem(即子系统)来创建子系统。
首先选中Subsystem子系统模块库,将Subsystem模块拖拽到空白区。
双击子系统模块,打开子系统编辑窗口,如下图中间所示。我们添加模块最终形成下图右侧所示:

然后输入端添加一个正弦波(即下图的y=sint),输出端添加一个示波器,并将输入端和输出端都连接到示波器。
注:你需要在MATLAB命令行窗口对k、b赋值。

方法二:将已有的模块转换为子系统

操作方法为:
先添加所有模块并创建模块之间关系,然后选中所有模块,然后按下图右侧的三个红圈进行点击选中,然后就形成了下下一幅图的效果。

2、对子系统进行封装
首先选中子系统,然后按下图操作,这时将出现封装编辑对话框,如下下一幅图所示

注:我们上面所说的k、b参数就可以在第二个选项卡中设置,从而封装了起来,避免你再去MATLAB命令行窗口赋值了。

下面介绍一下子系统封装编辑器的第二个选项卡
左侧区域为控件,中间区域显示对话框中的控件,右侧显示和修改控件的属性。
双击左侧的edit,中间将出现k、b的编辑,我们可以编辑二者的提示信息的名称。
点击子系统封装编辑器的OK,这时就会让你输入k、b的值。

3、条件执行子系统

使能子系统
注:控制信号既可以是标量也可以是向量。
控制信号为标量时,其大于0时,子系统执行。
控制信号为向量时,其任一个元素大于0,子系统执行。

我们可以直接添加使能子系统,当然了,也可以把原来不是使能子系统的模块添加一个使能模块从而1变成了一个使能子系统。

例:
输入端的分支接到了子系统使能端。
运行如右图所示,这里正弦信号当控制信号。控制信号为负值时,子系统停止执行,输出是零。

触发子系统

触发子系统的触发方式有4种形式

例:
最左侧的是一个信号发生器,双击信号发生器,显示右侧参数编辑框。
幅值设置为4,频率设置为1Hz.
示波器接输入端和输出端,以便于将二者比较。

然后再打开触发子系统参数编辑模块,选择触发事件方式为双边沿触发:

运行结果,示波器图形:
每当锯齿波过0时,子系统开始接受输入值;在两次触发事件之间,子系统维持前一点数值不变。

使能加触发子系统
注:使能信号为正时,触发事件才起作用。

三、S函数的设计与应用

虽然simulink提供了很多模块,但是当这些模块不能满足我们的需求时,我们可以自定义一个模块,即S函数。
本节内容

S函数是非可视化的,需要我们自己去编程

我们使用MATLAB语言编写S函数,为了高效,我们在模板文件上进行写S文件。
在模板文件中,在主函数中可是使用switch case选择六个子函数之一。



S函数的应用

看case为0的初始化函数mdlInitializeSizes函数定义:

mdlOutputs函数定义
注:k、b为自定义参数。

好,以上一个主函数,两个子函数,用各自函数名存盘这样S函数就建好了。

在sinmulink模型中使用S函数,必须从用户自定义函数模块库中向模型编辑窗口添加S函数模块,然后在S函数模块的对话框中,输入S函数的文件名。
下图是正弦波模块、S函数模块、示波器模块。双击S函数模块,打开其参数对话框,输入S函数名(因为你可能会有很多个S函数啊,你得选一个吧),输入外部参数k、b

S函数参数对话框:

然后选中S函数模块,打开封装编辑器,在第二个选项卡,设置k、b参数。设置完毕后单击OK按钮,然后退出并赋予k、b值。
运行得到仿真结果:

10 -simulink系统仿真相关推荐

  1. 基于matlab的局放仿真,基于MATLAB/Simulink系统仿真权威指南

    基于MATLAB/Simulink系统仿真权威指南 作者:王江;付文利 出版日期:2013年09月 文件大小:78.00M 支持设备: ¥50.00在线试读 适用客户端: 言商书局 iPad/iPho ...

  2. matlab/simulink石良臣,《MATLAB/Simulink系统仿真超级学习手册》——2.6 MATLAB的图形绘制...

    本节书摘来自异步社区<MATLAB/Simulink系统仿真超级学习手册>一书中的第2章,第2.6节,作者:MATLAB技术联盟 , 石良臣著,更多章节内容可以访问云栖社区"异步 ...

  3. 【Matlab】Simulink系统仿真(了解)

    专题九    Simulink系统仿真(了解) 需在安装MATLAB时安装Simulink组件. 1. Simulink的启动 在MATLAB主窗口选择"主页"选项卡,再单击&qu ...

  4. 9. Simulink系统仿真

    文章目录 1. Simulink仿真基础 1.1 Simulink的启动 1.2 系统仿真模型的创建 1.3 仿真参数的设置 2. 子系统的创建与封装 2.1 子系统的创建 2.2 子系统的封装 2. ...

  5. Simulink系统仿真

    1.Simulink仿真基础 Simulink的启动 在 MATLAB主窗口选择"主页"选项卡,再单击"文件"命令组的"新建命令按钮,然后从下拉菜单中 ...

  6. MATLAB混合编程视频教程下载 SIMULINK系统仿真视频

    下载链接: http://item.taobao.com/item.htm?id=43401674106 精通MATLAB混合编程视频讲解  MATLAB各类函数视频讲解 基于MATLAB的高等数学问 ...

  7. matlab模拟燃烧,基于MATLAB/Simulink的燃烧过程控制系统仿真

    2012 年 3 月 郑 州 大 学 学 报 ( 工 学 版 ) Mar. 2012 第 33 卷 第 2 期 Journal of Zhengzhou University ( Engineerin ...

  8. 自动驾驶仿真 (三)—— 基于PreScan与Simulink的AEB系统仿真

    自动驾驶仿真三-- 基于PreScan与Simulink的AEB系统仿真 1. AEB自动紧急制动系统 1. 1 TTC碰撞时间模型 1. 2 C-NCAP法规部分术语与定义 1. 3 主动安全ADA ...

  9. 相量法matlab仿真编程,电力系统的MATLAB/SIMULINK仿真与应用 王晶,翁国庆,张有兵著 西安电子科技大学出版社 9787560620...

    商品描述: 基本信息 书名:电力系统的MATLAB/SIMULINK仿真与应用 原价:32.00元 作者:王晶,翁国庆,张有兵 编著 出版社:西安电子科技大学出版社 出版日期:2008-9-1 ISB ...

最新文章

  1. canvas 闭合_想使用SVG或者canvas 手绘闭合多边形,使用vml效果已经实现了,由于vml只能支持ie所以想转成SVG或canvas...
  2. [转载] - QWidget、QMainWindow、QDialog和QFrame的区别
  3. html注释绕过,关于javascript:提交时绕过HTML的“ required”属性
  4. jq 地区(省市县区)联动菜单
  5. One order search dynamic sql statement生成位置
  6. YbtOJ#20089-[NOIP2020模拟赛B组Day10]平衡的树【贪心】
  7. jstorm 读取mysql_jstorm运维经验转载
  8. c语言基础程序设计报告,c语言程序设计基础课程设计报告.doc
  9. 【Vue】—计算属性
  10. spring第二冲刺阶段第七天
  11. ps写php,PS是什么
  12. My SQL数据库基本操作
  13. lavas -pwa vs RN vs WEEX
  14. Mysql和ES数据同步方案汇总
  15. 怎么把png格式图片转换成jpg格式?
  16. java程序代码实现手机号码归属地查询
  17. 副业搞钱的几个野路子:两个年入10万的零成本赚钱项目
  18. Debut of Hyper-V, departure of Gates usher[引导,展示,招待员] in new era for Microsoft
  19. 基于matlab的正交振幅调制与解调,通信原理与matlab仿真 第一章 BPSK调制解调器(1)...
  20. Auto CAD2010下载地址及图文安装教程(带注册机)

热门文章

  1. 套汇问题 Floyd
  2. 浅谈网站黑链检测和清除的方法
  3. Python怎么获取节假日信息?
  4. 用 C# 编写 C# 编译器,先有鸡还是先有蛋?
  5. centos6关闭防火墙
  6. 计算机基础教学改革申报书,计算机应用基础精品课申报书.doc
  7. 人员抽烟行为识别检测算法
  8. 借贷期末余额 oracle,应交税费期末余额分别在借贷方表示什么
  9. 新人贴:MATLAB 错误使用 surf (line 74) X、Y、Z 和 C 不能是复数。
  10. 使用阿里云rocketmq引用ons-client包从1.2.7.Final-1.8.0.Final JSONPResponseBodyAdvice