第7章_Simulink子系统技术

上传人:洪易 文档编号:57108494 上传时间:2018-10-19 格式:PPT 页数:101 大小:11.18MB
返回 下载 相关 举报
第7章_Simulink子系统技术_第1页
第1页 / 共101页
第7章_Simulink子系统技术_第2页
第2页 / 共101页
第7章_Simulink子系统技术_第3页
第3页 / 共101页
第7章_Simulink子系统技术_第4页
第4页 / 共101页
第7章_Simulink子系统技术_第5页
第5页 / 共101页
点击查看更多>>
资源描述

《第7章_Simulink子系统技术》由会员分享,可在线阅读,更多相关《第7章_Simulink子系统技术(101页珍藏版)》请在金锄头文库上搜索。

1、第7章 Simulink子系统技术,7.1 Simulink简单子系统概念:回顾与复习 7.2 Simulink高级子系统技术 7.3 Simulink的子系统封装技术 7.4 Simulink模块库技术,7.1 Simulink简单子系统概念:回顾与复习,7.1.1 通用子系统的生成在使用Simulink子系统技术时,通常子系统的生成有如下两种方法:(1) 在已经建立好的系统模型之中建立子系统(如图7.1所示)。首先选择能够完成一定功能的一组模块,然后选择Simulink模型创建编辑器中Edit菜单下的Create Subsystem,即可建立子系统并将这些模块封装到此子系统中,Simuli

2、nk自动生成子系统的输入与输出端口。,图7.1 子系统建立:由模块组生成子系统,(2) 在建立系统模型时建立空的子系统(如图7.2所示)。使用Subsystems模块库中的Subsystem模块建立子系统,首先构成系统的整体模型,然后编辑空的子系统内的模块。注意,对于多输入与多输出子系统而言,需要使用Sources模块库中的In1输入虚模块与Sinks模块库中的Out1输出虚模块来实现。,图7.2 子系统建立:生成空子系统并编辑,7.1.2子系统的基本操作在用户使用Simulink子系统建立系统模型时,有几个简单的操作比较常用,这里做一个简单的列举:(1) 子系统命名:命名方法与模块命名类似。

3、为增强系统模型的可读性,应使用有代表意义的文字给子系统进行命名。,(2) 子系统编辑:用鼠标左键双击子系统模块图标,打开子系统以对其进行编辑。(3) 子系统的输入:使用Sources模块库中的Inport输入模块(即In1模块)作为子系统的输入端口。(4) 子系统的输出:使用Sinks模块库中的Outport输出模块(即Out1模块)作为子系统的输出端口。,7.2 Simulink高级子系统技术,条件执行子系统的执行受到控制信号的控制,根据控制信号对条件子系统执行的控制方式的不同,可以将条件执行子系统划分为如下的几种基本类型。(1) 使能子系统:是指当控制信号的值为正时,子系统开始执行。(2)

4、 触发子系统:是指当控制信号的符号发生改变时(也就是控制信号发生过零时),子系统开始执行。触发子系统的触发执行有三种形式:, 控制信号上升沿触发:控制信号具有上升沿形式。 控制信号下降沿触发:控制信号具有下降沿形式。 控制信号的双边沿触发:控制信号在上升沿或下降沿时触发子系统。(3) 函数调用子系统:这时条件子系统是在用户自定义的S-函数中发出函数调用时开始执行。有关S-函数的概念将在后续章节中介绍。,7.2.1 条件执行子系统的建立方法在进一步介绍条件执行子系统之前,首先介绍如何建立条件执行子系统(如图7.3所示)。其中需要使用Subsystems模块库中的Enabled Subsystem

5、(使能子系统)模块、TriggeredSubsystem(触发子系统)模块及Enabled and Triggered Subsystem(使能触发子系统)模块。在建立条件执行子系统前需要注意以下两点:(1) 对于Simulink的早期版本而言,不存在专门的Subsystems模块库。,(2) Simulink系统模型的最高层不允许使用Enable与Trigger信号,而仅允许在子系统中使用。 图7.3中并没有建立一个完整的动态系统的模型,而仅仅是给出建立条件执行子系统的方法,因此并没有给出执行系统所需的使能信号源与触发信号源(如图7.3中椭圆曲线所示,使能输入端与触发输入端采用不同的信号标志

6、)。如果此时用户运行此系统进行仿真,MATLAB命令窗口中会给出输入端口没有信号连接的警告,而且系统的输出均为0。,图7.3 条件执行子系统的建立方法示意图,7.2.2 使能子系统在对具体的条件执行子系统进行介绍时,采用实际的系统模型进行说明非常有利于读者的理解。因此,本书均以实际的系统模型为例进行说明。所谓的使能子系统,是指只有当子系统的使能信号输入为正时,子系统才开始执行。,【例7.1】 使能子系统的建立与仿真。按照7.1节中的方法建立如图7.4所示的动态系统模型。在此系统模型中,存在着两个由方波信号驱动的使能子系统(图中虚线框所框的子系统,以A与B表示)。当控制信号(即系统模型中的方波信

7、号)为正时开始执行子系统A,控制信号为负时(方波信号经过一反相信号操作,由Math模块库中的Logical Operator逻辑操作模块NOT操作符实现)开始执行子系统B。图7.5所示为使能子系统A与B的结构以及相应的使能状态设置。,图7.4 使能子系统模型,图7.5 使能子系统A、B的内部实现及使能参数设置,此系统模型中各模块的参数设置如下:(1) 系统输入为采用默认设置的正弦信号(即单位幅值,单位频率的单位正弦信号)。(2) 使能子系统的控制信号源,使用Sources模块库中的Pulse Generator脉冲信号发生器所产生的方波信号。其设置为:脉冲周期(Period)为5 s,其余采用

8、默认设置。(3) 使能子系统A中的使能信号,其使能状态设置为重置reset;使能子系统B中的使能信号,其使能状态设置为保持held。,(4) 下方使能子系统中饱和模块(Saturation),其参数设置为:饱和上限为0.75,饱和下限为-0.75。(5) 偏移常数信号,其参数设置分别为2 0与0 2,如图7.4中系统模型所示。(6) 系统输出Scope模块参数设置,如图7.6所示。 系统仿真参数设置如下:(1) 仿真时间:设置仿真时间范围为0至20 s。(2) 求解器设置:采用默认设置,即连续变步长,具有过零检测能力的求解器。,图7.6 Scope模块参数设置,从图7.7中可以明显看出,只有在

9、控制信号为正时,使能子系统才输出,而且设置不同的使能状态可以获得不同的结果(结果被重置或被保持)。对于采用状态重置的使能子系统A,其输出被重置;而采用状态保持的使能子系统B,其输出被保持。如果在使能子系统中存在着状态变量,那么当使能模块状态设置为重置时,它的状态变量将被重置为初始状态(可能不为零),当使能模块设置为保持时,它的状态变量将保持不变。至于系统的输出,取决于系统的状态变量以及系统的输入信号,这里不再赘述。,图7.7 【例7.1】中使能子系统的仿真结果,7.2.3 触发子系统所谓的触发子系统指的是只有在控制信号的符号发生改变的情况下(也就是控制信号出现过零事件时),子系统才开始执行。如

10、前所述,根据控制信号符号改变方式的不同可以(1) 上升沿触发子系统。系统在控制信号出现上升沿时开始执行。(2) 下降沿触发子系统。系统在控制信号出现下降沿时开始执行。(3) 双边沿(上升沿或下降沿)触发子系统。系统在控制信号出现任何过零时开始执行。,【例7.2】 触发子系统的建立与仿真分析。在这个例子中,存在着三个使用不同触发方式的触发子系统,分别是上升沿触发、下降沿触发以及双边沿触发。图7.8所示为此系统的系统模型。,图7.8 触发子系统的系统模型与触发类型设置,下面给出系统模型中各个系统模块的参数以及仿真参数设置,最后给出系统仿真结果并进行一定的分析。模块参数设置如下:(1) 系统输入正弦

11、信号,其模块参数除频率选择为8 rad/sec外,其余采用默认的参数。(2) 系统触发控制信号为方波信号,使用Sources模块库中的信号发生器Signal Generator模块生成方波信号,其参数设置为:波形waveform为方波square,幅值为0.5,频率为1 Hz。,(3) 系统输出Scope模块。在Scope模块参数设置中,设置其坐标轴数目为4,以使用4个示波器同时显示4组信号。其方法与使能子系统中一样,这里不再赘述。(4) 各触发子系统参数设置如图7.8中所示。分别设置其触发方式为Rising、Falling及Either即可。,系统仿真参数设置如下:(1) 仿真时间范围0至8

12、 s。(2) 采用变步长连续求解器,最大步长为0.01,以避免信号的不连续。运行此系统进行仿真,仿真结果如图7.9所示。其中第一个示波器输出为系统输入正弦,图7.9 触发子系统的仿真结果,7.2.4 触发使能子系统在介绍条件执行子系统时已经提到,对于某些条件执行子系统而言,其控制信号可能不止一个。在很多情况下,条件执行子系统同时具有触发控制信号与使能控制信号,这样的条件执行子系统一般称之为触发使能子系统。顾名思义,触发使能子系统指的是子系统的执行受到触发信号与使能信号的共同控制,也就是说,只有当触发条件与使能条件均满足的情况下,子系统才开始执行。触发使能子系统的工作原理如图7.10所示。,图7

13、.10 触发使能子系统的工作原理,7.2.5 原子子系统1. 原子子系统的概念至此,本章已经介绍了通用子系统、使能子系统以及触发子系统等三种不同子系统的概念及其使用。虽然子系统都可以将系统中相关模块组合封装成一个单独的模块,大大方便了用户对复杂系统的建模、仿真及分析;但是对于不同的子系统而言,它们除了有如上的共同点之外,还存在着本质上的不同。下面介绍此三种子系统的不同本质,并简单介绍原子子系统的概念。,虚子系统具有如下的特点:(1) 子系统只是系统模型中某些模块组的图形表示。(2) 子系统中的模块在执行时与其上一级模块统一被排序,不受子系统的限制。(3) 在一个仿真时间步长内,Simulink

14、可以多次进出一个子系统。,原子子系统具有如下的特点:(1) 子系统为一“实际”的模块,需要按照顺序连续执行。(2) 子系统作为一个整体进行仿真,其功能类似于一个单独的系统模块。(3) 子系统中的模块在子系统中被排序执行。,2. 建立原子子系统触发子系统在触发事件发生时,子系统中的所有模块一同被执行,当所有的模块都执行完毕后,Simulink才开始执行上一级其它模块或其它子系统,因此触发子系统为一原子子系统。 在Simulink中有两种方法可以建立原子子系统:(1) 建立一个空的原子子系统。 (2) 将已经建立好的子系统强制转换为原子子系统。,图7.11 原子子系统的建立方法,7.2.6 其它子

15、系统介绍在Simulink Block Library(Simulink模块库,版本4.1)中的Subsystems子系统模块库中除了前面所介绍的通用子系统、触发子系统、使能子系统以及原子子系统之外,Simulink还提供了许多其它的条件执行子系统。图7.12所示为Subsystems模块库中的所有子系统模块。在此对其进行简单的介绍。(1) 可配置子系统(Configurable Subsystem):用来代表用户自定义库中的任意模块,只能在用户自定义库中使用。,图7.12 Subsystems模块库中的所有子系统模块,(2) 函数调用子系统(Function-Call Subsystem):

16、使用S-函数的逻辑状态而非普通的信号作为触发子系统的控制信号。函数调用子系统属于触发子系统,在触发子系统中触发模块Trigger的参数设置中选择Function-Call可以将由普通信号触发的触发子系统转换为函数调用子系统,如图7.13所示。,图7.13 函数调用触发类型设置,(3) For循环子系统(For Iterator Subsystem):For循环子系统的目的是在一个仿真时间步长之内循环执行子系统。 (4) While循环子系统(While Iterator Subsystem):与For循环子系统相类似,While循环子系统同样可以在一个仿真时间步长内循环执行子系统,但是其执行必须满足一定的条件。 (5) 选择执行子系统(Switch Case Action Subsystem):在某些情况下,系统对于输入的不同取值,分别执行不同的功能。,(6) 表达式执行子系统(If Action Subsystem):为了与前面的条件执行子系统相区别,这里我们称If Action Subsystem为表达式执行子系统。此子系统的执行依赖于逻辑表达式的取值,这与C语言中的If Else语句类似。需要注意的是,表达式执行子系统必须同时使用If模块与If Action Subsystem模块(均在Subsystems模块库中)。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号