仿真_6_SIMULINK_子系统及封装
【优】Simulink仿真技术最全PPT
• 示波器的工具栏 u(t)输入:Step time设为0.
建立Simulink模型应该养成添加模型注释的良好习惯。
• 坐标轴的范围调整 打开Simulink模块库浏览器;
连续系统通常都是用微分方程描述的系统,而现实中的多数实际系统也都是连续变化的。
第六讲 Simulink仿真技术
本章主要介绍一个针对动态系统进行建 模、仿真与分析的工具——Simulink。
Simulink简介 模型的建立 Simulink中的系统模型 子系统的创建和封装 Simulink仿真的应用
1. Simulink简介
1)什么是Simulink:
Simulink是Matlab软件的扩展,它是实现动态系 统建模和仿真的一个软件包。
由于非线性系统不利于系统分析和设计,通常 我们都是将非线性近似为线性系统,所以我们 重点学习线性系统。
线性系统
要对线性系统建模,通常都要使用到积分模块。
• 积分模块的功用:
例: 利用阶跃信号进 行复位积分。 操作步骤: ➢ 构造Simulink
模型,保存为
➢ 双击积分模块,在弹出的对话框中在External reset 中选择rising选项,在Initial condition source下拉列 表中选择
仿真精细、贴近实际:它提供了大量特种函数 模块为用户摆脱理想化假设的无奈提供了途径。
3)Simulink使用入门:
打开Simulink模块库浏览器;
查看各种信源模块; 创建模型窗口; 添加所需的模块; 连接模块直间的信号线 ; 进行仿真:『Simulink: Start』
第六讲Simulink仿真
Simulink操作基础
点击进入Simulink
点击打开新建模型
拖拽模块加入模型
添加连线
2 系统仿真模型
2.1 Simulink的模块 Simulink的模块库提供了大量模块。单击模 块库浏览器中Simulink前面的“+”号,将看到 Simulink模块库中包含的子模块库,单击所需要 的子模块库,在右边的窗口中将看到相应的基本 模块,选择所需基本模块,可用鼠标将其拖到模 型编辑窗口。同样,在模块库浏览器左侧的 Simulink栏上单击鼠标右键,在弹出的快捷菜单 中单击Open the ‘Simulink’ Libray 命令,将打开 Simulink基本模块库窗口。单击其中的子模块库 图标,打开子模块库,找到仿真所需要的基本模 块。
3.2 启动系统仿真与仿真结果分析
设置完仿真参数之后,从Simulation中选择 Start菜单项或单击模型编辑窗口中的Start Simulation命令按钮,便可启动对当前模型的仿 真。此时,Start菜单项变成不可选, 而Stop菜单项 变成可选, 以供中途停止仿真使用。从Simulation菜 单中选择Stop项停止仿真后,Start项又变成可选。 为了观察仿真结果的变化轨迹可以采用3种方法: (1) 把输出结果送给Scope模块或者XY Graph模块。 (2) 把仿真结果送到输出端口并作为返回变量,然后 使用MATLAB命令画出该变量的变化曲线。 (3) 把输出结果送到To Workspace模块,从而将结果 直接存入工作空间,然后用MATLAB命令画出该 变量的变化曲线。
连续系统 基本模块
微分环节 积分环节 状态方程 传递函数 时间延迟 可变时间延迟 可变传输延迟 零-极点模型
连续系统模块库(Continuous)
Simulink仿真教程
Simulink动态仿真
Simulink模块库 2. Sinks 库
③ :示波器。显示在仿真过程产生的信号波形。双击该图 标,弹出示波器窗如右图所示:
建立Simulink仿真模型 f) 模块的连接 模块之间的连接是用连接线将一个模块的输出端与另一模块 的输入端连接起来;也可用分支线把一个模块的输出端与几 个模块的输入端连接起来。 连接线生成是将鼠标置于某模块的输出端口 ( 显一个十字光 标) ,按下鼠标左键拖动鼠标置另一模块的输入端口即可。 分支线则是将鼠标置于分支点,按下鼠标右键,其余同上。
建立Simulink仿真模型 e) 模块参数设置 用鼠标双击指定模块图标,打开模块对话框,根据对话框栏 目中提供的信息进行参数设置或修改。 例如双击模型窗口的传递函数模块,弹出图示对话框, 在对话框中分别输入分子、分母多项式的系数,点击OK 键,完成该模型的设置,如右下图所示:
Simulink动态仿真
[说明]若不设置仿真参数,则采用Simulink缺省设置 .
Simulink动态仿真
Simulink 基本操作
系统仿真运行 1. Simulink模型窗口下仿真 步骤 ③ 仿真运行和终止:在模型窗口选取菜单【Simulation: Start】, 仿真开始,至设置的仿真终止时间,仿真结束。若在仿真过程 中要中止仿真,可选择【Simulation: Stop】菜单。也可直接点 击模型窗口中的 (或 )启动(或停止)仿真。
连接线(左键 )
Simulink仿真操作基本教程
◼ 在 Simulink 模 型 或 模 块 库 窗
口内,用鼠标左键单击所需 模块图标,图标四角出现黑 色小方点,表明该模块已经 选中。
c) 模块拷贝及删除
◼ 在模块库中选中模块后,按 住鼠标左键不放并移动鼠标 至目标模型窗口指定位置, 释放鼠标即完成模块拷贝。
◼ 模块的删除只需选定删除的 模块,按Del键即可。
a) 启动Simulink。
➢ 单击MATLAB Command窗口工具条上的Simulink图标,或者
在MATLAB命令窗口输入simulink,即弹出图示的模块库窗 口界面(Simulink Library Browser)。该界面右边的窗口给出 Simulink所有的子模块库。
➢ 常用的子模块库有 Sources( 信 号 源 ) , Sink( 显 示输出),Continuous(线性连 续系统),Discrete(线性离 散系统),Function & Table (函数与表格),Math(数学 运算), Discontinuities (非 线性),Demo(演示)等。
图9-15 定步长算法
图9-16 变步长算法
第一章 Simulink动态仿真
① Solver页 ➢ Error Tolerance(误差限度): 算法的误差是指当前状态值与当前
状态估计值的差值,分为Relative tolerance(相对限度)和Absolute tolerance(绝对限度),通常可选auto。
第一章 Simulink动态仿真
a) 启动Simulink
① 用鼠标右键点击Simulink菜单项,则弹出一菜单条,点击该菜单
条即弹出该子库的标准模块窗口.如单击左图中的【Sinks】,出现 “Open the ‘Sinks’Library”菜单条,单击该菜单条,则弹出右图所 示的该子库的标准模块窗口。
子系统的创建与封装
In1 Subsystemil
>CZ
D
Outl
Ccretant
启动仿真后查看示波器的曲线,其中蓝色曲线是正弦曲线,黄色曲线 是经过y=kx+b变换之后的曲线,这里在MATLAB命令行窗口事先给k赋3, b赋2,即黄色曲线代表y=3sint+2。
澧黒it患与芯戏'吨資
(2)通过已有的模块建立子系统 建立的系统模型如图所示,选中系统模型中的所有模块,在模型编辑窗 口选择Diagram菜单项中的相关命令(Diagram —Subsystem & Model Reference^Create Subsystem from Selection命令),或按Ctrl+G组 合键建立子系统,所选模块将被一个子系统模块取代,如果想要査看子 系统的内部结构又可以双击子系统模块。
选择模块,再建立子系统。
下面以创建y=kx+b子系统为例,说明具体操作。
Mlviillth (amputiixi *
MATl AB I anuuoqif _
MATLABifiB
(1)通过Subsystem模块建立子系统
双击子系统模块打开子系统编辑窗口,窗口中已经自动添加了相互连接 的一个输入模块和输出模块,表示子系统的输入端口和输出端口。将要 组合的模块插入到输入模块和输出模块中间,这里需要k和b两个常数模 块,一个乘法模块和一个加法模块,将这些模块重新连接起来,一个子 系统就建好了。
•: CcllacvihlaParial
Dialog box Type Prompt
Name
%<MaskType> %<MaskDescri ption*
Xi)#2 Bias b
simulink封装模块端口名称
simulink封装模块端口名称Simulink是一款常用的工具,也是MATLAB的重要部分,它能够为设计和仿真系统提供效率和方便性。
在Simulink中,封装模块是非常常见的,而其中的端口名称也是非常重要的组成部分。
在本文中,我们将详细介绍如何在Simulink中封装模块端口名称。
第一步,打开Simulink软件,创建一个新的模型。
接着,右键单击画布,选择“Library Browser”选项,然后在搜索框中输入“subsystem”,找到“Subsystem”这个模块,将其拖动到画布中。
第二步,系统将自动给你生成一个新的子系统。
接下来,我们需要从系统中添加输入和输出端口。
右键单击子系统,选择“Add & Connect”选项,然后在弹出的菜单中选择“Port”选项,此时会在子系统中生成一个新的端口。
第三步,按照你的需求设定端口。
例如,如果你需要一个模拟信号输入端口,可以右键单击端口,然后选择“Block Parameters”选项,在新的窗口中,选择“Port”选项卡,就可以将端口的数据类型设定为模拟信号输入。
第四步,为端口添加名称。
右键单击端口,然后选择“Properties”选项,在弹出的菜单中选择“Port properties”选项卡,然后将端口的名称设定为你需要的名称。
第五步,添加更多的端口。
在Sub System中,添加到足够的输入和输出端口,按照刚刚的方法为每个端口添加名称。
第六步,将子系统保存为一个封装模块。
右键单击子系统,选择“Subsystem”选项,然后在新的窗口中,将名称、描述和图标等设定为你需要的名称,接着点击“OK”保存即可。
第七步,将封装模块添加到库中。
右键单击封装模块,选择“Save As”选项,然后在新的窗口中,选择“User-Defined Functions”或“Simulink”图标库,点击“Save”。
经过上述步骤,你已经成功封装了一个模块,并为其添加了名称。
二阶电路的simulink仿真及封装
二阶电路的simulink仿真及封装
Simulink仿真和封装的双阶电路技术步骤如下:
(1)利用Simulink仿真双阶电路,确定电路的行为特性,如增益、闭环时延和始终稳定性。
(2)研究双阶电路构型,在Simulink中编程模拟双阶电路,使用性能参数对其进行封装,以确定双阶电路的架构和参数。
(3)在Simulink中进行综合建模,针对特定的电路构型,向模型中添加资源,完成电路仿真电路封装,确定其行为特性及参数。
(4)在封装后的Simulink仿真电路中测试双阶电路的性能,以检验仿真是否准确,并调整参数以实现最佳性能。
(5)在模拟环境中测试及验证整个电路系统,以确保电路参数有效且安全。
Simulink仿真教程讲解
Simulink动态仿真
Simulink 基本操作
系统仿真运行 1. Simulink模型窗口下仿真 步骤 ① 打开Simulink仿真模型窗口,或打开指定的.mdl文件; ② 设置仿真参数:在模型窗口选取菜单【Simulation: Parameters】 ,弹出 “Simulation Parameters” 对话框,设置仿真参数,然后按 【OK】即可;
建立Simulink仿真模型 f) 模块的连接 模块之间的连接是用连接线将一个模块的输出端与另一模块 的输入端连接起来;也可用分支线把一个模块的输出端与几 个模块的输入端连接起来。 连接线生成是将鼠标置于某模块的输出端口 ( 显一个十字光 标) ,按下鼠标左键拖动鼠标置另一模块的输入端口即可。 分支线则是将鼠标置于分支点,按下鼠标右键,其余同上。
Simulink动态仿真
பைடு நூலகம்
Simulnk动态仿真
内容如下: Simulink基本操作 模块库和系统仿真 子系统创建与封装 Simulink仿真举例
Simulink动态仿真
Simulink动态仿真
Simulink 中的“Simu”一词表示可用于计算机仿真,而 “Link”一词表示它能进行系统连接,即把一系列模块 连接起来,构成复杂的系统模型。作为MATLAB的一 个重要组成部分,Simulink由于它所具有的上述的两大 功能和特色,以及所提供的可视化仿真环境、快捷简 便的操作方法,而使其成为目前最受欢迎的仿真软件。 本章主要介绍Simulink的基本功能和基本操作方法,并 通过举例介绍如何利用Simulink进行系统建模和仿真。
建立Simulink仿真模型 e) 模块参数设置 用鼠标双击指定模块图标,打开模块对话框,根据对话框栏 目中提供的信息进行参数设置或修改。 例如双击模型窗口的传递函数模块,弹出图示对话框, 在对话框中分别输入分子、分母多项式的系数,点击OK 键,完成该模型的设置,如右下图所示:
Simulink 第八章 子系统及其封装技术
m 3 3 k 3 ( x 2 x 3 ) 0 x 3 x 1 m3
m3
k 3 ( x 2 x 3 )
单个质量的运动方程:
n x
1 mn
k n ( x n 1 x n ) k n 1 ( x n 1 x n )
0
Left Disp Right Spring-mass1 Left Disp Right Spring-mass2 Left
0.4
Displacement
Scope
Gain
0.8
Gain1
操作步骤: (1)使用范围框将要压缩的子系统的部分选中,包括木块和信 号线;(注意:只能使用范围框,而不能使用 Shift逐个 选定) (2)在模块窗口选项中选择【Edit>Creat Subsystem】, Simulink 将会用一个子系统模块代替被选中的模块组; (3)进行模型美观调整。
作业:
封装第六章所建立的蹦极系统。要求:封装后的蹦极 子系统只有一个输出端口,封装后子系统的参数设置包括 蹦极者的体重、弹性绳索的弹性常数。通过仿真分析蹦极 系统在下述情况下是否安全,并绘制响应的响应曲线: (1)蹦极者体重 80 kg,弹性绳索的弹性常数为 30; (2)蹦极者体重 70 kg,弹性绳索的弹性常数为 20。
Simulink子系统技术
块库中的Subsystem模块建立子系统,首先构成系统的整体模型,然后编辑空的子
系统内的模块。注意,对于多输入与多输出子系统而言,需要使用Sources模块库
中的In1输入虚模块与Sinks模块库中的Out1输出虚模块来实现。
•
双击子系统图 标进行编辑
首先建立空的子系统, 然后对其进行编辑
图7.2 子系统建立:生成空子系统 并编辑
辑。
•
(3) 子系统的输入:使用Sources模块库中的Inport输入模块(即In1模块)作为
子系统的输入端口。
•
(4) 子系统的输出:使用Sinks模块库中的Outport输出模块(即Out1模块)作为
子系统的输出端口。
7.2 Simulink高级子系统技术
•
条件执行子系统的执行受到控制信号的控制,根据控制信号对条件子系统执行的
发子系统为一原子子系统。
•
在Simulink中有两种方法可以建立原子子系统:
•
(1) 建立一个空的原子子系统。
•
(2) 将已经建立好的子系统强制转换为原子子系统。
建立空原子 子系统并进
行编辑
强制转换已有 的子系统为原
子子系统
图7.11 原子子系统的建立方法
• 7.2.6 其它子系统介绍
•
在Simulink Block Library(Simulink模块库,版本4.1)中的Subsystems子系统模
人口动态变化的非线性离散模型生成包含所选模块组的子系统选择需要封装的子系统单击鼠标右键选择masksubsystem或是使用edit菜单项中的相应命令以封装子系统选择需要封装的子系统单击鼠标右键选择masksubsystem或使用edit菜单项中的相应命令以封装子系统图14子系统封装流程示意图32封装编辑器之图标编辑对话框当选择masksubsystem菜单命令进行子系统封装时将出现如图15所示的封装编辑器并显示图标编辑对话框
matlabsimulink子系统的封装
matlabsimulink⼦系统的封装⼦系统的封装的意义⼦系统封装技术可以让⼀个⼦系统有⾃⼰的特点。
封装后的⼦系统可以有⾃⼰的图标、⾃⼰的参数和具有功能描述的控制对话框,甚⾄⾃⼰的help⽂档,同时参数的修改更为⽅便(不⽤深⼊⼦系统,只需在对话框中修改便可),内部结构也不易被修改。
封装技术的简要介绍封装是在Mask Editor中进⾏的。
要打开Mask Editor,需要两步:①选中要封装的⼦系统;②选择菜单Edit->Edit Mask或者右键菜单中的Edit Mask。
Mask Editor的样⼦如下:图⼀可见,Mask Editor中共有如下四个选项页:●Icon&Port,主要是对⼦系统的外观图标进⾏设置;●Parameters,主要对封装⼦系统的参数进⾏设置。
如果⼦系统中有⼀个或多个模块需要⼿动设置参数,那么在仿真之前需要进⼊到⼦系统⾥⾯去对这些模块分别进⾏参数设计,很⿇烦。
⽽⽤Mask Editor中的Parameters设置参数,使这些参数能够将参数值传⼊到subsystem的模块中去。
这样就可以直接对subsystem进⾏参数设计,既明了⼜⽅便;●Initialization,提供了⼀个Matlab语⾔命令框,可以在其中写⼊⼀些程序,当⼦系统有被载⼊、改变参数或初始化等情况发⽣时,Simulink会⾃动执⾏这些程序。
所以可以将⼀些仿真前需要对subsystem做的设置,以程序的形式写⼊到编辑框内来实现;●Documentation,编辑⼦系统的描述和⽣成help⽂档。
注意:左下⾓的Unmask按钮可以取消对subsystem的封装。
详细阐述下⾯对这四个选项页进⾏详细阐述,由于Icon&Port和Documentation对subsystem的功能影响不是很⼤,故只做简要介绍,详细内容参考help⽂档。
Icon&port如图⼀所⽰,该选项页有三部分:Options、Icon Drawing Commands和Examples of drawing commands。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PID调节器
标签页(1) Icon 模块名字和外观
目 录
前页
后页
标签页(2) Parameters 输入参数
目 录
前页
后页
标签页(3) Initialization 参数初始化
目 录
前页
后页
标签页(4) Documentation 模块文字说明
目 录
前页
后页
6.3 复杂系统的综合仿真 一、仿真模型的参数化
利用Simulink的封装功能,就可以子定义做出一 个模块的对话框和图标。
目 录
前页 后页
Kp 1 1 U ( s) K p (1 Td s) K p K pTd s Ti s Ti s 1 K p K I Kd s s
封装过程:
mypid1.mdl
①用以上两种方式模块化方法创建子系统,需在各模块上 给封装后需赋值的参数指定变量名(字母); ②选中子系统,然后选择EditMask Subsystems; ③使用封装编辑器设计图标、对话框、文本。
目 录
前页
后页
例:由脉冲发生器作为触发控制的信号,设置为上升沿触发
例:由脉冲发生器作为触发控制的信号,设置为下降沿触发
例:由脉冲发生器作为触发控制的信号,设置为过零沿触发
目 录
前页 后页
使能子系统
Enable模块
Enable 模块对话框 States when enabling: held 表示使能子系统开始执行时,系统中的状态保持不变。 States when enabling: reset 表示使能子系统开始执行时,系统中的状态重新被设置 为初始参数值。 Show output port 选择是否输出激活控制信号
在Simulink环境下,仿真模型的参数可以 是实际数值,也可以是字母表示的变量名。字 母表示的仿真模型参数可以在Workspace工作 空间中赋值,也可在M文件中赋值,然后进行 模型的运行。
目 录
前页
后页
例如某系统结构固定,参数较多,根据不同实际情况有多套参 数。
二、从命令行运行Simulink仿真模型
有四个标签页: Icon 模块名字和外观 Parameters 输入参数 Initialization 参数初始化 Documentation 模块文字说明 完成封装后,再双击模块,就出现新的封装对话框,而 非子系统内部模块。 若要解除封装,在Edit Mask中用Unmask即可。
目 录
前页 后页
目 录
前页 后页
例:利用使能子系统将幅值为4的正弦交流信号转换为同幅 值的直流信号
2、触发子系统(Triggered Subsystem) 1)rising 上升沿触发 控制信号出现上升沿时开始执行
触发子系统除原有的输入、输出外,也有一个控制系统的激活端口, 2)Falling 下降沿触发 控制信号出现下降沿时开始执行
目 录
前页 后页
三、与 复杂环节具有特殊结构和特 殊运算,在Simulink提供的现成的模块库中找不到, 用户可以自行编制M函数,再连接到Simulink搭建的 仿真模型中。 在Simulink模块库User-Defined Functions中选择 MATLAB Fcn加入搭建的仿真模型中,双击模块打开 M函数对话框,键入要连接的M函数文件名,模型运行 时就会调用该M函数文件。 例题:将实验四 函数文件中的非线性饱和函数加 入simulink 的模型中。
②把Ports & Subsystems 中的Subsystems模块加入到模型 中,双击打开子系统编辑窗口,添加模块。
这时,经模块化后,双击子系统仍可看到内部模块。 要修改参数,需要逐个打开各模块来设置,比较麻烦。 如要有一个子系统的参数设置对话框代替多个对话框, 就要采用封装技术。
目 录
前页 后页
使能子系统除原有的输入、输出外,还有一个控制系统的激活端口, 只有当控制信号为正,子系统被激活,使能子系统才执行。 控制信号可为标量或向量,标量的信号值大于0是子系统被激活; 向量的任一个元素大于0,就能激活。 使能子系统模块位于 Ports & Subsystems 使能子系统模块中,打开 Enable 模块对话框,可以设置其状态时保 持还是重置、是否输出激活控制信号等。
前面都是在Simulink环境下,用菜单命令运行 仿真模型,从命令行运行模型的方式可使用户在M文 件中运行仿真,可允许用户改变仿真模型的参数, 也可在M文件中控制模型的运行。
[t,x,y]=sim(model,timespan,options,ut)
t —— 返回仿真的时间向量 x —— 返回仿真的状态矩阵 y —— 返回仿真的输出矩阵
其中,只有model是必需的参数。
目 录
前页
后页
simset 指定仿真参数必须用于sim命令中,主要包括: AbsTol:默认值为1e-6,设定绝对误差范围。 Decimation:默认值为1,决定隔多少个点返回状态和输出值。 Solver:解法器的选择。 MaxRows:默认0,表示不限制。若为大于零的值,表示 限制输出和状态的规模,使其最大行数等于该数值。 InitialState:一个向量值,用于设定初始状态。 FixedStep:正数表示步长的大小,仅用于固定步长。 MaxStep:默认auto,变步长模式中最大的步阶大小。 Simget (‘模型文件名’)得到该模型的仿真参数: get_param 获取仿真模型或仿真模块的参数 set_param 设置仿真模型或仿真模块的参数
MATLAB 与系统仿真 第六章 主讲教师:姜萍
6.2 模块化与封装(建立子系统)
一、模块化
当模型很大很复杂时,可将一些模块组合成一个子 系统,可简化仿真模型,便于系统的设计与分析。建立 子系统可有两种形式: ①组合已经存在的模块:用鼠标选中需组合的模块, EditCreate Subsystems;
目 录
前页
后页
[t,x,y]=sim(model,timespan,options,ut)
model ——仿真模型名称 timespan ——仿真的起始和终止时间 两种: 1、tFinal 终止时间,起始时间为0 2、[ tStart tFinal ] 起始和结束时间
options —— 指定可选的仿真参数,由simset 建立 u t —— 可选的对顶层输入端口模块的外部输入
四、 条件子系统
前面的子系统,对于一定的输入,子系统必定产生输出。但有些 情况下,只有满足一定的条件子系统才执行。即:子系统的执行依赖 于一个控制信号,由子系统单独的控制端口输入。由此,条件子系统 执行时,不仅依赖于子系统本身的输入信号,还受到控制信号的约束。
1、使能子系统(Enable Subsystem)
组合已经存在的模块
把Subsystems模块加入到模型中,再添加模块
二、封装
先看Simulink Extra中的PID模块,内部也是多个 模块组成的子系统,但不需要逐个打开各模块来修改 参数,而有一个子系统的参数设置对话框(自己创建) 代替多个对话框,设置一些关键参数。优点: 用户与模块内部的复杂性隔绝; 提供一个描述性的、友好的用户接口; 保护模块的内容免受无意识的干扰。
3)either 边沿触发 控制信号出现任何过零时开始执行
根据触发模块的四种触发事件进行选择,使触发子系统执行。 触发子系统模块位于 Ports & Subsystems
4)Function-call 函数调用触发
由S-function内部逻辑控制
触发子系统模块中,打开 Trigger 模块对话框,可以选择触发事件。