第六讲Simulink仿真
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.4 模块的参数和属性设置
1.模块的参数设置 Simulink中几乎所有模块的参数都允许用户进行 设置 (1)双击要设置的模块或在模块上按鼠标右键并在 弹出的快捷菜单中选择相应模块的参数设置命令 就会弹出模块参数对话框。该对话框分为两部分, 上面一部分是模块功能说明,下面一部分用来进 行模块参数设置。 (2)选择要设置的模块,在模型编辑窗口Edit菜单 下选择相应模块的参数设置命令也可以打开模块 参数对话框。
接收模块库(Sinks)
端口和子系统模块库(Port & Subsystem)
2.2 模块的编辑
1.添加模块---在模型库中选定模块,按住鼠标左 键拖出 2.选取模块---在模块上点击鼠标左键,模块四周 出现4个小黑点 3.复制模块----选中模块,按住鼠标左键和Ctrl 键拖出即可 4.模块外形的调整 ---选中模块,鼠标移动到4角 的小黑点, 光标变化后按住左键拖动即可 5.模块名的处理---单击模块名后即可修改
例3 有初始状态为0的二阶微分方程 x"+0.2x'+0.4x=2u (t), 其中u(t)是单位阶跃函 数,试建立系统模型并仿真。 方法1:用积分器直接构造x”=-0.2x’-0.4x+2u, 求解微分方程的模型。 方法2:利用传递函数模块建模。 方法3:利用状态方程模块建模。
1:用积分器直接构造求解微分方程的模型
2:利用传递函数模块建模
参数
3:利用状态方程模块建模
微分方程 状态方程
0.2 x 0.4 2u (t ) x
1 x 2 x 2 0.4 x1 0.2 x 2 2u x
状态方程的矩阵形式
AX BU X Y CX DU
百度文库
1 0 1 x1 0 x u x 2 0.4 0.2 x 2 2 x1 y 1 0 0u x2
Simulink简介
SIMULINK是MATLAB最重要的组件之一, 它向用户提供一个动态系统图形建模、仿 真和综合分析的集成环境。在这环境中, 用户无须书写大量的程序,而只需通过简 单直观的鼠标操作,选取适当的库模块, 就可构造出复杂的仿真模型 .
1. Simulink的启动与退出
Simulink的启动 1.在MATLAB的命令窗口输入simulink 2.单击MATLAB主窗口工具栏上的Simulink命令按 钮 即可 3.双击*.mdl文件图标 Simulink启动后会显示Simulink模块库浏览 器(Simulink Library Browser)窗口 4.Simulink的退出 关闭所有模型编辑窗口和Simulink模块库浏览 器窗口即可
(2)添加模块
(3)添加信号连线
(4)设置模块参数
设置模块参数
初值
示波器模块的设置
单击右键, 设置幅值, 添加图标
示波器模块的设置
3.3 系统仿真实例
可以总结出利用Simulink进行系统仿真的 步骤如下: (1) 建立系统仿真模型,这包括添加模块、设 置模块参数以及进行模块连接等操作。 (2) 设置仿真参数。 (3) 启动仿真并分析仿真结果。
在图所示的弹簧—质量— 阻尼系统系统中,已知质 量m=1kg,阻尼 b=2Nsec/m,弹簧系数 k=100N/m,且质量块的初 始位移x(0)=0.05m,其初 始速度为0m/sec,要求创 建该系统的SIMULINK模 型,并进行仿真运行。
(1)建立理论数学模型
对于无外力作用的“弹簧—质量—阻尼” 系统,据牛顿定律可写出
Simulink操作基础
点击进入Simulink
点击打开新建模型
拖拽模块加入模型
添加连线
模块库浏览器
2 系统仿真模型
2.1 Simulink的模块 Simulink的模块库提供了大量模块。单击模 块库浏览器中Simulink前面的“+”号,将看到 Simulink模块库中包含的子模块库,单击所需要 的子模块库,在右边的窗口中将看到相应的基本 模块,选择所需基本模块,可用鼠标将其拖到模 型编辑窗口。同样,在模块库浏览器左侧的 Simulink栏上单击鼠标右键,在弹出的快捷菜单 中单击Open the ‘Simulink’ Libray 命令,将打开 Simulink基本模块库窗口。单击其中的子模块库 图标,打开子模块库,找到仿真所需要的基本模 块。
连续系统 基本模块
微分环节 积分环节 状态方程 传递函数 时间延迟 可变时间延迟 可变传输延迟 零-极点模型
连续系统模块库(Continuous)
离散系统模块库(Discrete)
信号与系统模块库(Signals & System)
非线性模块库(Nonlinear)
数学运算 模块库(Math)
x”=-0.2x’-0.4x+2u
2:利用传递函数模块建模
微分方程 拉式变换 传递函数
2
0.2 x 0.4 2u (t ) x
s x( s) 0.2sx( s) 0.4 x(s) 2u( s)
x( s ) 2 2 u ( s) s 0.2s 0.4
Simulink模型的修改与保存
如果要对一个已经存在的模型文件进行编辑 修改,需要打开该模型文件,其方法是, 1.在MATLAB命令窗口直接输入模型文件名(不要 加扩展名.mdl)。 2.在模块库浏览器窗口或模型编辑窗口的File菜单中 选择Open命令,然后选择或输入欲编辑模型的名 字,也能打开已经存在的模型文件。 3.单击模块库浏览器窗口工具栏上的Open a model 命令按钮 4.模型编辑窗口工具栏上的Open model 命令按钮。 模型创建完成后,从模型编辑窗口的File菜单项 中选择Save或Save As命令,可以将模型以模型文 件的格式(扩展名为.mdl)存入磁盘。
2.模块的属性设置
(1)选定要设置属性的模块,然后在模块上按鼠标 右键并在弹出的快捷菜单中选择Block properties (2)先选择要设置的模块,再在模型编辑窗口的 Edit菜单下选择Block properties命令,将打开模 块属性对话框。该对话框包括General、Block annotation(注释)和Callbacks 3个可以相互切 换的选项卡。其中General选项卡中可以设置3个 基本属性:Description(说明)、Priority(优先级) 、 Tag(标记)。
建立新模型
1.在MATLAB主窗口File菜单中选择New菜单项下的 Model命令,在出现Simulink模块库浏览器的同 时,还会出现一个名字为untitled的模型编辑窗 口。 2.在Simulink窗口File菜单中选择New菜单项下的 Model命令 3.在启动Simulink模块库浏览器后再单击其工具栏 中的Create a new model 命令按钮,也会弹出 模型编辑窗口。利用模型编辑窗口,可以通过鼠 标的拖放操作创建一个模型。
Matlab基础与应用(六)
MATLAB Basic and Application
-----SIMULINK动态仿真
自动控制与测试教学实验中心
第6讲内容 1 Simulink基本操作 2 系统仿真模型 3 系统的仿真 4 使用命令操作对系统进行仿真 5 子系统及其封装技术 6 S函数的设计与应用
3.2 启动系统仿真与仿真结果分析
设置完仿真参数之后,从Simulation中选择 Start菜单项或单击模型编辑窗口中的Start Simulation命令按钮,便可启动对当前模型的仿真。 此时,Start菜单项变成不可选, 而Stop菜单项变成 可选, 以供中途停止仿真使用。从Simulation菜单中 选择Stop项停止仿真后,Start项又变成可选。 为了观察仿真结果的变化轨迹可以采用3种方法: (1) 把输出结果送给Scope模块或者XY Graph模块。 (2) 把仿真结果送到输出端口并作为返回变量,然后 使用MATLAB命令画出该变量的变化曲线。 (3) 把输出结果送到To Workspace模块,从而将结果 直接存入工作空间,然后用MATLAB命令画出该 变量的变化曲线。
2x u x
输入极性、数量
初值
继承
增益
输入参数
时间 幅值
3 系统的仿真
3.1 设置仿真参数 打开系统仿真模型,从模型编辑窗口的Simulation菜单中选 择Simulation parameters命令,打开一个仿真参数配置窗,点 击左面的选择栏,选择不同的仿真参数对话栏,在其中可以设 置仿真参数: (1) Solver解算选项栏:用于设置仿真起始和停止时间,选择微分 方程求解算法并为其规定参数,以及选择某些输出选项。 (2) Data Import/Export选项栏:用于管理对MATLAB工作空间的 输入和输出。 (3) Diagnostics选项栏:用于设置在仿真过程中出现各类错误时发 出警告的等级。 (4)Optimization选项栏:用于设置一些高级仿真属性,更好地控 制仿真过程。 (5) Real-time Workshop选项卡:用于设置若干实时工具中的参数。 如果没有安装实时工具箱,则将不出现该选项卡。
2.3 模块的连接
连线---移动鼠标到模块的输出端,鼠标便变成十 字,按住鼠标左键移动到模块的输入端,十字光 标出现重影时释放左键。 连线的折弯-----按住Shift键,在折弯点单击鼠 标,产生折弯点。 给连线加分支-----鼠标移动到分支起点,按住鼠 标右键拉出或按住Ctrl键和鼠标左键,拖到模块 输入端释放。 改变线型-----选中线段,选择Format菜单下的 相应命令 标注连线----在线上双击,即可标注连线
例 不同步长刚性方程 Eula算法的仿真
kx 方程:x 其中k=100,x(0)=5
例 不同算法刚性方程的仿真
kx Step:0.0015 方程:x 其中k=1000,x(0)=5
Eula欧拉法 Heun改进欧拉法 RK4 外推法
例2 基于微分方程的SIMULINK建模
2x u 试建立系统仿真模型 x 例1 给定微分方程,
操作过程如下: (1) 在MATLAB主菜单中,选择File菜单中New菜单 项的Model命令,打开一个模型编辑窗口。 (2) 将所需模块添加到模型中。 (3) 设置模块参数并连接各个模块组成仿真模型。 设置模块参数后,用连线将各个模块连接起来组 成系统仿真模型。模型建好后,从模型编辑窗口 的File菜单中选择Save或Save as命令将它存盘。
mx bx kx 0
代入具体数值并整理,可得
x 2 x 100 x
建模基本思路
整理方程如 x 2 x 100 x 用“积分”而不是用“求导”模块描写导 数关系 右边各项系数用“增益”模块实现 等号右面的代数和运算采用“求和”模块 用“示波器”模块观察结果
Simulink的子模块库
连续系统模块库(Continuous) 离散系统模块库(Discrete) 数学运算模块库(Math) 非线性模块库(Nonlinear) 信号与系统模块库(Signals & System) 接收模块库(Sinks) 输入源模块库(Source) 端口和子系统模块库(Port & Subsystem) 通用模块库(Commonly Used)
仿真参数配置窗
步长
算法
仿真积分算法
积分算法
Discrete Ode4 Ode1 Ode113 Ode15s Ode23s
算法说明(收敛性、稳定性)
离散系统,差分方程 4阶Runge-Kutta法数值积分,应用最广 Eula法,速度快,误差大 Adams-Bashforth-Moulton的变阶解法, 比Ode45有效,精度高 Gear法,用于解刚性方程数值积分问题 修正的Rosenbrock二阶法, 解决部分Ode15s无法解决的刚性方程问题