SIMULINK仿真
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.Data Import/Export类设置 ① 矩阵形式。MATLAB把矩阵的第一列默认为时间向量,
后面的每一列对应每一个输入端口,矩阵的第一行表示某 一时刻各输入端口的输入状态。另外,也可以把矩阵分开 来表示,即MATLAB默认的表示方法[t,u],其中t是一维 时间列向量,表示仿真时间,u是和t长度相等的n维列向 量(n表示输入端口的数量),表示状态值。例如,在命 令窗口中定义t和u:
条件执行子系统分为
1.使能子系统
使能子系统表示子系统在由控制信号控制时,控制信号由 负变正时子系统开始执行,直到控制信号再次变为负时结 束。控制信号可以是标量也可以是向量。
建立使能子系统的方法是:打开Simulink模块库中的Ports & Subsystems模块库,将Enable模块复制到子系统模型 中,则系统的图标发生了变化。
阵、结构和包含时间的结构3种选择。“Limit data points to last”用来限定保存到工作空间中 的数据的最大长度。 输出选项(Output options)有: ① Refine output(细化输出) ② Produce additional output(产生附加输出) ③ Produce specified output only(仅在指定 的时刻产生输出)
4.1 初识Simulink—— 一个简单的仿 真实例
在MATLAB的命令窗口输入Simulink,或单击MATLAB主 窗口工具栏上的“Simulink”命令按钮即可启动Simulink。 Simulink启动后会显示如图4.1所示的Simulink模块库浏览 器(Simulink Library Browser)窗口。
U (s)
Kp
Ki s
Kd s
建立 PID 控制器的模型并建立子系统。
先建立PID控制器的模型
选中模型中所有模块,使用模型编辑窗口Edit菜单中 的Create Subsystem命令建立子系统,模型将被一个 Subsystem模块取代
4.4.2 子系统的条件执行
子系统的执行可以由输入信号来控制,用于控制子系统执 行的信号称为控制信号,而由控制信号控制的子系统称为 条件执行子系统。
模型建好后,将模型以模型文件的格式 (扩展名为.mdl)存盘。
Simulink仿真环境
(5)设置系统仿真参数。
(6)仿真操作。
4.2 仿真模型的建立
4.2.1 Simulink的基本模块 模块是构成系统仿真模型的基本单元。构建系
统仿真模型主要涉及Simulink模块的操作。 基本模块库 专业模块库
先选择要建立子系统的模块,不包括输入端口和输出端口。选择模型 编辑窗口Edit菜单中的Create Subsystem命令,这样,子系统就建好 了,原来的模块变为子系统的图标。
【例 10.4】PID 控制器是在自动控制中经常使用的模块,PID 控制器由比例单元(P)、积分单
元(I)和微分单元(D)组成。PID 控制的传递函数为
(3)把输出结果送到To Workspace模块,从而将结果直 接存入工作空间,然后用MATLAB命令画出该变量的变化 曲线。
【例4.2】利用Simulink仿真求
2 x3dx
首先打开一个模型编辑窗口,将所需0模块添加到模型中。
设置模块参数并连接各个模块组成仿真模型。
设置系统仿真停止时间为2s。单击模型编辑窗口中的Start simulation按钮或选择模型编辑窗口Simulation菜单中的Start 命令开始系统仿真。系统仿真结束后,显示模块Display,显 示仿真结果为4。
1.模型元素
一个典型的Simulinnk模型包括以下3种元 素。
● 信号源(Source)
● 被模拟的系统模块 输入
系统
输出
● 信号输出(Sink)
2.仿真步骤
(1)建立系统仿真模型,包括添加模块、 设置模块参数、进行模块连接等操作。
(2)设置仿真参数。
(3)启动仿真并分析仿真结果。
3.仿真实例
【例4.1】利用Simulink仿真曲线。 正弦信号由信号源模块库(Sources)中的Sine Wave模
块提供,求和用数学运算模块库(Math Operations)中 的数学函数模块(Add)产生,再用信号输出模块库 (Sinks)中的示波器模块(Scope)输出波形 (1)打开一个名为untitled的模型编辑窗口 (2)将所需模块添加到模型中。 (3)用连线将各个模块连接起来组成系统仿真模型 (4)设置模块参数并连接各个模块组成仿真模型。
写成状态 方程为 :
x'
y
Ax Bu Cx Du
式中,
A
0 10
11.5,B
0 1
,C
=
[10
2],D
=
0。
示波器
示波器属性对话框
示波器属性对话框
示波器纵坐标设置
4.4 子系统与封装
子系统把功能上有关的一些模块集中到一起保存,能够完成几个模块 的功能。
4.4.1 子系统的建立 1.通过Subsystem模块建立子系统 新建一个仿真模型,打开Simulink模块库中的Ports & Subsystems模
优先顺序。 ③ Tag:用户为模块添加的文本格式的标记。 “Block Annotation”选项卡中指定在该模块的图标下显示
模块的哪个参数。“Callbacks”选项卡中指定当对该模块 实施某种操作时需要执行的MATLAB命令或程序。
Simulink仿真环境
4.3.1 设置仿真参数 打开系统仿真模型,从模型编辑窗口的“Simulation”菜单中选择
4.3.3 系统仿真实例 【例4.3】有初始状态为0的二阶微分方程
y" + 1.5y' + 4y = 2u'(t) + 4u(t),其中u(t)是单位阶跃函数,试建立系统 模型并仿真。
方法1:用微分/积分器直接构造求解微分方程的模型。 把原微分方程改写为
y" = 2u' (t) + 4u(t) − 1.5y' − 4y u经微分作用得u',y"经积分作用得y',y'再经积分模块作用就得y,而
块库,将Subsystem模块添加到模型编辑窗口中。双击Subsystem模 块打开一个Subsystem窗口,窗口中已经自动添加了一个输入模块和 输出模块(表示子系统的输入端口和输出端口)。将要组合的模块插 入到输入模块和输出模块中间,一个子系统就建好了。若双击该 Subsystem模块,则打开原来的子系统内部结构窗口。 2.通过已有的模块建立子系统
t=(0:0.1:4)'; A.time=t; A.signals(1).values=sin(t); A.signals(2).values=cos(t).*sin(t);
A.signals(3).values=exp(-2*t)空间(Save to workspace) 在Save to workspace栏中,可以选择的选项
1.Solver类设置
(1)设置仿真起始和停止时间(Simulink time)
(2)仿真算法的选择(Solver options)
在“Type”编辑框中设定算法类别:固定步长(Fixed-step) 和变步长(Variable-step)算法,在“Solver”编辑框中选 择具体算法。
Simulink仿真环境
u'、u、y'和y经代数运算又产生y",据此可以建立系统模型并仿真。 (1)利用Simulink模块库中的基本模块建立系统模型
(2)设置系统仿真参数。 在模型编辑窗口的 Simulation stop time栏把仿 真的停止时间设置为5。 (3)仿真操作。
方法 2:利用传递函数模块建模。
对方程 y" + 1.5y' + 10y = 2u'(t) + 10u(t)两边取 Laplace 变换,得 s2Y(s) + 1.5sY(s) + 10Y(s) = 2sU(s) + 10U(s)
Simulink仿真环境
4.2.2 模块操作 1.添加与删除模块 2.选取模块 3.复制模块 4.模块外形的调整 5.模块名的处理
Simulink仿真环境
4.2.3 模块的连接 1.连接两个模块 2.模块间连线的调整 3.连线的分支 4.标注连线
4.3 系统的仿真与分析
4.2.4 模块的参数和属性设置 1.模块的参数设置 2.模块的属性设置 ① Description:对该模块在模型中的用法进行说明。 ② Priority:规定该模块在模型中相对于其他模块执行的
经整理得传递函数:
G(s)
Y (s) U (s)
s2
2s 10 1.5s 10
方法 3:利用状态方程模块建模。 若令 x1 = y,x2 = y',那么微分方程 y" + 1.5y' + 10y = 2u'(t) + 10u(t)可写成:
x1 x2 x2 10x1 1.5x2 u y 10x1 2x2
t=(0:0.1:4)';
u=[sin(t),cos(t).*sin(t),exp(-2*t).*sin(t)];
Simulink仿真环境
② 包含时间数据的结构形式。结构变量包含若干个成员,对结构成员 的引用格式为:结构变量名.成员名。在结构中必须有成员:time和 signals。在time成员中包含一个列向量,表示仿真时间;在signals成 员中包含一个数组,数组中的每个元素对应一个输入端口,并且每个 元素必须包含一个名字同样不能改变的values成员,values成员也包 含一个列向量,对应于输入端口的输入数据。例如,对于上例,若改 为包含数据的结构输入,则命令格式如下:
有:Time(时钟)、States(状态)、Output (输出端口)、Final state(最终状态)和 Signal logging(信号)。同载入数据的形式 一样,保存数据也有矩阵、结构和包含时间数 据的结构3种形式
Simulink仿真环境
(3)保存选项(Save options) 在保存选项栏中的“Format”下拉列表中有矩
第4章 Simulink仿真环境
Simulink仿真环境
Simulink是一个以MATLAB为基础的软件包,用 于对动态系统进行建模和仿真。它使得MATLAB 的功能得到进一步扩展,它可以非常容易的实现 可视化建模,把理论研究和工程实践有机的结合 在一起。
【本章学习目标】 ● 熟悉Simulink的操作环境。 ● 掌握绘制系统模型的方法。 ● 掌握子系统模块的建立与封装技术。 ● 了解S函数的功能与设计方法。
Simulink仿真环境
4.3.2 仿真结果分析 为了观察仿真结果的变化轨迹可以采用3种方法。 (1)把输出结果送给Scope模块或者XY Graph模块。
Scope模块显示系统输出量对于仿真时间的变化曲线,XY Graph模块显示送到该模块上的两个信号中的一个对另一 个的变化关系。
(2)把仿真结果送到输出端口并作为返回变量,然后使 用MATLAB命令画出该变量的变化曲线。
“Configuration Parameters”命令,打开一个仿真参数对话框,在其中可以 设置仿真参数。在此对话框中,仿真参数设置被分为8类。 ● Solver类:用于设置仿真起始和停止时间,选择微分方程求解算法并为 其规定参数,以及选择某些输出选项。 ● Data Import/Export类:用于管理工作空间数据的导入和导出。 ● Optimization类:用于设置仿真优化模式。 ● Diagnostics类:用于设置在仿真过程中出现各类错误时发出警告的等级。 ● Hardware Implementation类:用于设置实现仿真的硬件。 ● Model Referencing类:用于设置参考模型。 ● Simulation Target类:用于设置仿真模型目标。 ● HDL Coder类:用于设置通过自动代码生成技术将设计算法生成HDL代 码的方法
Simulink仿真环境
2.触发子系统
触发子系统是指当触发事件发生时开始执行子系统。与使 能子系统相类似,触发子系统的建立要把Ports & Subsystems模块库中的Trigger模块添加到子系统中或直 接选择Triggered Subsystem模块来建立触发子系统。
后面的每一列对应每一个输入端口,矩阵的第一行表示某 一时刻各输入端口的输入状态。另外,也可以把矩阵分开 来表示,即MATLAB默认的表示方法[t,u],其中t是一维 时间列向量,表示仿真时间,u是和t长度相等的n维列向 量(n表示输入端口的数量),表示状态值。例如,在命 令窗口中定义t和u:
条件执行子系统分为
1.使能子系统
使能子系统表示子系统在由控制信号控制时,控制信号由 负变正时子系统开始执行,直到控制信号再次变为负时结 束。控制信号可以是标量也可以是向量。
建立使能子系统的方法是:打开Simulink模块库中的Ports & Subsystems模块库,将Enable模块复制到子系统模型 中,则系统的图标发生了变化。
阵、结构和包含时间的结构3种选择。“Limit data points to last”用来限定保存到工作空间中 的数据的最大长度。 输出选项(Output options)有: ① Refine output(细化输出) ② Produce additional output(产生附加输出) ③ Produce specified output only(仅在指定 的时刻产生输出)
4.1 初识Simulink—— 一个简单的仿 真实例
在MATLAB的命令窗口输入Simulink,或单击MATLAB主 窗口工具栏上的“Simulink”命令按钮即可启动Simulink。 Simulink启动后会显示如图4.1所示的Simulink模块库浏览 器(Simulink Library Browser)窗口。
U (s)
Kp
Ki s
Kd s
建立 PID 控制器的模型并建立子系统。
先建立PID控制器的模型
选中模型中所有模块,使用模型编辑窗口Edit菜单中 的Create Subsystem命令建立子系统,模型将被一个 Subsystem模块取代
4.4.2 子系统的条件执行
子系统的执行可以由输入信号来控制,用于控制子系统执 行的信号称为控制信号,而由控制信号控制的子系统称为 条件执行子系统。
模型建好后,将模型以模型文件的格式 (扩展名为.mdl)存盘。
Simulink仿真环境
(5)设置系统仿真参数。
(6)仿真操作。
4.2 仿真模型的建立
4.2.1 Simulink的基本模块 模块是构成系统仿真模型的基本单元。构建系
统仿真模型主要涉及Simulink模块的操作。 基本模块库 专业模块库
先选择要建立子系统的模块,不包括输入端口和输出端口。选择模型 编辑窗口Edit菜单中的Create Subsystem命令,这样,子系统就建好 了,原来的模块变为子系统的图标。
【例 10.4】PID 控制器是在自动控制中经常使用的模块,PID 控制器由比例单元(P)、积分单
元(I)和微分单元(D)组成。PID 控制的传递函数为
(3)把输出结果送到To Workspace模块,从而将结果直 接存入工作空间,然后用MATLAB命令画出该变量的变化 曲线。
【例4.2】利用Simulink仿真求
2 x3dx
首先打开一个模型编辑窗口,将所需0模块添加到模型中。
设置模块参数并连接各个模块组成仿真模型。
设置系统仿真停止时间为2s。单击模型编辑窗口中的Start simulation按钮或选择模型编辑窗口Simulation菜单中的Start 命令开始系统仿真。系统仿真结束后,显示模块Display,显 示仿真结果为4。
1.模型元素
一个典型的Simulinnk模型包括以下3种元 素。
● 信号源(Source)
● 被模拟的系统模块 输入
系统
输出
● 信号输出(Sink)
2.仿真步骤
(1)建立系统仿真模型,包括添加模块、 设置模块参数、进行模块连接等操作。
(2)设置仿真参数。
(3)启动仿真并分析仿真结果。
3.仿真实例
【例4.1】利用Simulink仿真曲线。 正弦信号由信号源模块库(Sources)中的Sine Wave模
块提供,求和用数学运算模块库(Math Operations)中 的数学函数模块(Add)产生,再用信号输出模块库 (Sinks)中的示波器模块(Scope)输出波形 (1)打开一个名为untitled的模型编辑窗口 (2)将所需模块添加到模型中。 (3)用连线将各个模块连接起来组成系统仿真模型 (4)设置模块参数并连接各个模块组成仿真模型。
写成状态 方程为 :
x'
y
Ax Bu Cx Du
式中,
A
0 10
11.5,B
0 1
,C
=
[10
2],D
=
0。
示波器
示波器属性对话框
示波器属性对话框
示波器纵坐标设置
4.4 子系统与封装
子系统把功能上有关的一些模块集中到一起保存,能够完成几个模块 的功能。
4.4.1 子系统的建立 1.通过Subsystem模块建立子系统 新建一个仿真模型,打开Simulink模块库中的Ports & Subsystems模
优先顺序。 ③ Tag:用户为模块添加的文本格式的标记。 “Block Annotation”选项卡中指定在该模块的图标下显示
模块的哪个参数。“Callbacks”选项卡中指定当对该模块 实施某种操作时需要执行的MATLAB命令或程序。
Simulink仿真环境
4.3.1 设置仿真参数 打开系统仿真模型,从模型编辑窗口的“Simulation”菜单中选择
4.3.3 系统仿真实例 【例4.3】有初始状态为0的二阶微分方程
y" + 1.5y' + 4y = 2u'(t) + 4u(t),其中u(t)是单位阶跃函数,试建立系统 模型并仿真。
方法1:用微分/积分器直接构造求解微分方程的模型。 把原微分方程改写为
y" = 2u' (t) + 4u(t) − 1.5y' − 4y u经微分作用得u',y"经积分作用得y',y'再经积分模块作用就得y,而
块库,将Subsystem模块添加到模型编辑窗口中。双击Subsystem模 块打开一个Subsystem窗口,窗口中已经自动添加了一个输入模块和 输出模块(表示子系统的输入端口和输出端口)。将要组合的模块插 入到输入模块和输出模块中间,一个子系统就建好了。若双击该 Subsystem模块,则打开原来的子系统内部结构窗口。 2.通过已有的模块建立子系统
t=(0:0.1:4)'; A.time=t; A.signals(1).values=sin(t); A.signals(2).values=cos(t).*sin(t);
A.signals(3).values=exp(-2*t)空间(Save to workspace) 在Save to workspace栏中,可以选择的选项
1.Solver类设置
(1)设置仿真起始和停止时间(Simulink time)
(2)仿真算法的选择(Solver options)
在“Type”编辑框中设定算法类别:固定步长(Fixed-step) 和变步长(Variable-step)算法,在“Solver”编辑框中选 择具体算法。
Simulink仿真环境
u'、u、y'和y经代数运算又产生y",据此可以建立系统模型并仿真。 (1)利用Simulink模块库中的基本模块建立系统模型
(2)设置系统仿真参数。 在模型编辑窗口的 Simulation stop time栏把仿 真的停止时间设置为5。 (3)仿真操作。
方法 2:利用传递函数模块建模。
对方程 y" + 1.5y' + 10y = 2u'(t) + 10u(t)两边取 Laplace 变换,得 s2Y(s) + 1.5sY(s) + 10Y(s) = 2sU(s) + 10U(s)
Simulink仿真环境
4.2.2 模块操作 1.添加与删除模块 2.选取模块 3.复制模块 4.模块外形的调整 5.模块名的处理
Simulink仿真环境
4.2.3 模块的连接 1.连接两个模块 2.模块间连线的调整 3.连线的分支 4.标注连线
4.3 系统的仿真与分析
4.2.4 模块的参数和属性设置 1.模块的参数设置 2.模块的属性设置 ① Description:对该模块在模型中的用法进行说明。 ② Priority:规定该模块在模型中相对于其他模块执行的
经整理得传递函数:
G(s)
Y (s) U (s)
s2
2s 10 1.5s 10
方法 3:利用状态方程模块建模。 若令 x1 = y,x2 = y',那么微分方程 y" + 1.5y' + 10y = 2u'(t) + 10u(t)可写成:
x1 x2 x2 10x1 1.5x2 u y 10x1 2x2
t=(0:0.1:4)';
u=[sin(t),cos(t).*sin(t),exp(-2*t).*sin(t)];
Simulink仿真环境
② 包含时间数据的结构形式。结构变量包含若干个成员,对结构成员 的引用格式为:结构变量名.成员名。在结构中必须有成员:time和 signals。在time成员中包含一个列向量,表示仿真时间;在signals成 员中包含一个数组,数组中的每个元素对应一个输入端口,并且每个 元素必须包含一个名字同样不能改变的values成员,values成员也包 含一个列向量,对应于输入端口的输入数据。例如,对于上例,若改 为包含数据的结构输入,则命令格式如下:
有:Time(时钟)、States(状态)、Output (输出端口)、Final state(最终状态)和 Signal logging(信号)。同载入数据的形式 一样,保存数据也有矩阵、结构和包含时间数 据的结构3种形式
Simulink仿真环境
(3)保存选项(Save options) 在保存选项栏中的“Format”下拉列表中有矩
第4章 Simulink仿真环境
Simulink仿真环境
Simulink是一个以MATLAB为基础的软件包,用 于对动态系统进行建模和仿真。它使得MATLAB 的功能得到进一步扩展,它可以非常容易的实现 可视化建模,把理论研究和工程实践有机的结合 在一起。
【本章学习目标】 ● 熟悉Simulink的操作环境。 ● 掌握绘制系统模型的方法。 ● 掌握子系统模块的建立与封装技术。 ● 了解S函数的功能与设计方法。
Simulink仿真环境
4.3.2 仿真结果分析 为了观察仿真结果的变化轨迹可以采用3种方法。 (1)把输出结果送给Scope模块或者XY Graph模块。
Scope模块显示系统输出量对于仿真时间的变化曲线,XY Graph模块显示送到该模块上的两个信号中的一个对另一 个的变化关系。
(2)把仿真结果送到输出端口并作为返回变量,然后使 用MATLAB命令画出该变量的变化曲线。
“Configuration Parameters”命令,打开一个仿真参数对话框,在其中可以 设置仿真参数。在此对话框中,仿真参数设置被分为8类。 ● Solver类:用于设置仿真起始和停止时间,选择微分方程求解算法并为 其规定参数,以及选择某些输出选项。 ● Data Import/Export类:用于管理工作空间数据的导入和导出。 ● Optimization类:用于设置仿真优化模式。 ● Diagnostics类:用于设置在仿真过程中出现各类错误时发出警告的等级。 ● Hardware Implementation类:用于设置实现仿真的硬件。 ● Model Referencing类:用于设置参考模型。 ● Simulation Target类:用于设置仿真模型目标。 ● HDL Coder类:用于设置通过自动代码生成技术将设计算法生成HDL代 码的方法
Simulink仿真环境
2.触发子系统
触发子系统是指当触发事件发生时开始执行子系统。与使 能子系统相类似,触发子系统的建立要把Ports & Subsystems模块库中的Trigger模块添加到子系统中或直 接选择Triggered Subsystem模块来建立触发子系统。