第7章 Simulink子系统技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

A
B
图7.4 使能子系统模型
使能子系统 A 结构及使能状态设置
使能子系统 A 结构及使能状态设置 B
图7.5 使能子系统A、B的内部实现及使能参数设置
此系统模型中各模块的参数设置如下: (1) 系统输入为采用默认设置的正弦信号(即单位幅值, 单位频率的单位正弦信号)。 (2) 使能子系统的控制信号源,使用Sources模块库中的 Pulse Generator脉冲信号发生器所产生的方波信号。其 设置为:脉冲周期(Period)为5 s,其余采用默认设置。 (3) 使能子系统A中的使能信号,其使能状态设置为重 置reset;使能子系统B中的使能信号,其使能状态设置 为保持held。
① 控制信号上升沿触发:控制信号具有上升沿形式。 ② 控制信号下降沿触发:控制信号具有下降沿形式。 ③ 控制信号的双边沿触发:控制信号在上升沿或下降 沿时触发子系统。 (3) 函数调用子系统:这时条件子系统是在用户自定义 的S-函数中发出函数调用时开始执行。有关S-函数的概念 将在后续章节中介绍。
图7.9 触发子系统的仿真结果
7.2.4 触发使能子系统 在介绍条件执行子系统时已经提到,对于某些条 件执行子系统而言,其控制信号可能不止一个。在很 多情况下,条件执行子系统同时具有触发控制信号与 使能控制信号,这样的条件执行子系统一般称之为触 发使能子系统。顾名思义,触发使能子系统指的是子 系统的执行受到触发信号与使能信号的共同控制,也 就是说,只有当触发条件与使能条件均满足的情况下, 子系统才开始执行。触发使能子系统的工作原理如图 7.10所示。
虚子系统具有如下的特点: (1) 子系统只是系统模型中某些模块组的图形表示。 (2) 子系统中的模块在执行时与其上一级模块统一被 排序,不受子系统的限制。 (3) 在一个仿真时间步长内,Simulink可以多次进出 一个子系统。
原子子系统具有如下的特点: (1) 子系统为一“实际”的模块,需要按照顺序连续 执行。 (2) 子系统作为一个整体进行仿真,其功能类似于一 个单独的系统模块。 (3) 子系统中的模块在子系统中被排序执行。
(3) 系统输出Scope模块。在Scope模块参数设置中, 设置其坐标轴数目为4,以使用4个示波器同时显示4组 信号。其方法与使能子系统中一样,这里不再赘述。 (4) 各触发子系统参数设置如图7.8中所示。分别设置 其触发方式为Rising、Falling及Either即可。
系统仿真参数设置如下: (1) 仿真时间范围0至8 s。 (2) 采用变步长连续求解器,最大步长为0.01,以避 免信号的不连续。 运行此系统进行仿真,仿真结果如图7.9所示。其中 第一个示波器输出为系统输入正弦
7.2.1 条件执行子系统的建立方法 在进一步介绍条件执行子系统之前,首先介绍如 何建立条件执行子系统(如图7.3所示)。其中需要使 用Subsystems模块库中的Enabled Subsystem(使能子系 统)模块、TriggeredSubsystem(触发子系统)模块及 Enabled and Triggered Subsystem(使能触发子系统)模 块。 在建立条件执行子系统前需要注意以下两点: (1) 对于Simulink的早期版本而言,不存在专门的 Subsystems模块库。
(2) 子系统编辑:用鼠标左键双击子系统模块图标, 打开子系统以对其进行编辑。 (3) 子系统的输入:使用Sources模块库中的Inport输 入模块(即In1模块)作为子系统的输入端口。 (4) 子系统的输出:使用Sinks模块库中的Outport输出 模块(即Out1模块)作为子系统的输出端口。
(2) Simulink系统模型的最高层不允许使用Enable 与Trigger信号,而仅允许在子系统中使用。 图7.3中并没有建立一个完整的动态系统的模型, 而仅仅是给出建立条件执行子系统的方法,因此并没 有给出执行系统所需的使能信号源与触发信号源(如 图7.3中椭圆曲线所示,使能输入端与触发输入端采用 不同的信号标志)。如果此时用户运行此系统进行仿 真,MATLAB命令窗口中会给出输入端口没有信号连 接的警告,而且系统的输出均为0。
【例7.2】 触发子系统的建立与仿真分析。 在这个例子中,存在着三个使用不同触发方式的触 发子系统,分别是上升沿触发、下降沿触发以及双边 沿触发。图7.8所示为此系统的系统模型。
图中左上部分为系统整体模型
图中右侧分别 为上升沿、下降 沿及双边沿触 发子系统。
触发信号类型设置:这里仅给出过零触发子系统设置,至于上升沿与 下降沿触发子系统设置,只需选择触发类型 rising 或 falling 即可
7.2 Simulink高级子系统技术
条件执行子系统的执行受到控制信号的控制,根据 控制信号对条件子系统执行的控制方式的不同,可以 将条件执行子系统划分为如下的几种基本类型。 (1) 使能子系统:是指当控制信号的值为正时,子系 统开始执行。 (2) 触发子系统:是指当控制信号的符号发生改变时 (也就是控制信号发生过零时),子系统开始执行。 触发子系统的触发执行有三种形式:
图7.3 条件执行子系统的建立方法示意图
7.2.2 使能子系统 在对具体的条件执行子系统进行介绍时,采用实际 的系统模型进行说明非常有利于读者的理解。因此, 本书均以实际的系统模型为例进行说明。 所谓的使能子系统,是指只有当子系统的使能信号 输入为正时,子系统才开始执行。
【例7.1】 使能子系统的建立与仿真。 按照7.1节中的方法建立如图7.4所示的动态系统模型。 在此系统模型中,存在着两个由方波信号驱动的使 能子系统(图中虚线框所框的子系统,以A与B表示)。 当控制信号(即系统模型中的方波信号)为正时开始执 行子系统A,控制信号为负时(方波信号经过一反相信 A 号操作,由Math模块库中的Logical Operator逻辑操作模 块NOT操作符实现)开始执行子系统B。图7.5所示为使 能子系统A与B的结构以及相应的使能状态设置。
图7.8 触发子系统的系统模型与触发类型设置
下面给出系统模型中各个系统模块的参数以及仿真 参数设置,最后给出系统仿真结果并进行一定的分析。 模块参数设置如下: (1) 系统输入正弦信号,其模块参数除频率选择为8 rad/sec外,其余采用默认的参数。 (2) 系统触发控制信号为方波信号,使用Sources模块 Sources 库中的信号发生器Signal Generator模块生成方波信号, 其参数设置为:波形waveform为方波square,幅值为 0.5,频率为1 Hz。
双击子系统图 标进行编辑
首先建立空的子系统, 然后对其进行编辑
图7.2 子系统建立:生成空子系统并编辑
7.1.2子系统的基本操作 在用户使用Simulink子系统建立系统模型时,有几个 简单的操作比较常用,这里做一个简单的列举: (1) 子系统命名:命名方法与模块命名类似。为增 强系统模型的可读性,应使用有代表意义的文字给子 系统进行命名。
输出被重置
控制信号为 方波信号
输出被保持
图7.7 【例7.1】中使能子系统的仿真结果
7.2.3 触发子系统 所谓的触发子系统指的是只有在控制信号的符号 发生改变的情况下(也就是控制信号出现过零事件 时),子系统才开始执行。如前所述,根据控制信号 符号改变方式的不同可以 (1) 上升沿触发子系统。系统在控制信号出现上升 沿时开始执行。 (2) 下降沿触发子系统。系统在控制信号出现下降沿 时开始执行。 (3) 双边沿(上升沿或下降沿)触发子系统。系统在 控制信号出现任何过零时开始执行。
同时显示三个 示波器以输出 三组信号
标记所有的示 波器坐标系
图7.6 Scope模块参数设置
从图7.7中可以明显看出,只有在控制信号为正时, 使能子系统才输出,而且设置不同的使能状态可以获 得不同的结果(结果被重置或被保持)。对于采用状 态重置的使能子系统A,其输出被重置;而采用状态保 持的使能子系统B,其输出被保持。如果在使能子系统 中存在着状态变量,那么当使能模块状态设置为重置 时,它的状态变量将被重置为初始状态(可能不为 零),当使能模块设置为保持时,它的状态变量将保 持不变。至于系统的输出,取决于系统的状态变量以 及系统的输入信号,这里不再赘述。
触发事件
使能输入信 号大大0? 是 执行子系统一次
否 不执行wenku.baidu.com系统
图7.10 触发使能子系统的工作原理
7.2.5 原子子系统 1. 原子子系统的概念 至此,本章已经介绍了通用子系统、使能子系统以 及触发子系统等三种不同子系统的概念及其使用。虽 然子系统都可以将系统中相关模块组合封装成一个单 独的模块,大大方便了用户对复杂系统的建模、仿真 及分析;但是对于不同的子系统而言,它们除了有如 上的共同点之外,还存在着本质上的不同。下面介绍 此三种子系统的不同本质,并简单介绍原子子系统的 概念。
建立空原子 子系统并进 行编辑
强制转换已有 的子系统为原 子子系统
图7.11 原子子系统的建立方法
7.2.6 其它子系统介绍 在Simulink Block Library(Simulink模块库,版本4.1) 中的Subsystems子系统模块库中除了前面所介绍的通用 子系统、触发子系统、使能子系统以及原子子系统之 外,Simulink还提供了许多其它的条件执行子系统。图 7.12 7.12所示为Subsystems模块库中的所有子系统模块。在 Subsystems 此对其进行简单的介绍。 (1) 可配置子系统(Configurable Subsystem):用 来代表用户自定义库中的任意模块,只能在用户自定 义库中使用。
7.1.1 通用子系统的生成 在使用Simulink子系统技术时,通常子系统的生成有 如下两种方法: (1) 在已经建立好的系统模型之中建立子系统(如图 7.1所示)。首先选择能够完成一定功能的一组模块, 然 后 选 择 Simulink 模 型 创 建 编 辑 器 中 Edit 菜 单 下 的 Create Subsystem,即可建立子系统并将这些模块封装 , 到此子系统中,Simulink自动生成子系统的输入与输出 端口。
(4) 下方使能子系统中饱和模块(Saturation),其参 数设置为:饱和上限为0.75,饱和下限为-0.75。 (5) 偏移常数信号,其参数设置分别为[2 0]与[0 2], 如图7.4中系统模型所示。 (6) 系统输出Scope模块参数设置,如图7.6所示。 系统仿真参数设置如下: (1) 仿真时间:设置仿真时间范围为0至20 s。 (2) 求解器设置:采用默认设置,即连续变步长,具 有过零检测能力的求解器。
第7章 章
Simulink子系统技术 子系统技术
7.1 Simulink简单子系统概念:回顾与复习 简单子系统概念: 简单子系统概念 7.2 Simulink高级子系统技术 高级子系统技术 7.3 Simulink的子系统封装技术 的子系统封装技术 7.4 Simulink模块库技术 模块库技术
7.1 Simulink简单子系统概念:回顾与复习 简单子系统概念: 简单子系统概念
选择模块组,单击Edit菜 选择模块组,点击 Edit 菜 单中的Create Subsystem 建 单中的 Create Subsystem 立子系统 建立子系统
用鼠标左键双击 左键双击子系统图 子系统图标打开子 标打开子系统 系统
图7.1 子系统建立:由模块组生成子系统
(2) 在建立系统模型时建立空的子系统(如图7.2所 示)。使用Subsystems模块库中的Subsystem模块建立 子系统,首先构成系统的整体模型,然后编辑空的子 系统内的模块。注意,对于多输入与多输出子系统而 言,需要使用Sources模块库中的In1输入虚模块与Sinks 模块库中的Out1输出虚模块来实现。
2. 建立原子子系统 触发子系统在触发事件发生时,子系统中的所有 模块一同被执行,当所有的模块都执行完毕后, Simulink才开始执行上一级其它模块或其它子系统,因 此触发子系统为一原子子系统。 在Simulink中有两种方法可以建立原子子系统: Simulink (1) 建立一个空的原子子系统。 (2) 将已经建立好的子系统强制转换为原子子系统。
相关文档
最新文档