参考视频:simulink1.1simulink简介_哔哩哔哩_bilibili
一、常用模块库中的模块概览
二、输入输出及子系统模块
1、子系统的概念
(1)随着系统规模的扩大,系统中的模块也会越来越多,如果不加以封装,将会使工程文件变得相当混乱,为此可以根据系统功能,将整个系统划分为几个子系统模块Subsystem(这一步最好在搭建模型前完成),每个子系统都有自己的输入In和输出Out与其它子系统交互,系统的若干功能分别在各子系统模块中实现,最后将各子系统模块连接,组成最终的系统。
(2)子系统可以嵌套,也就是子系统可以由其它的子系统组成。
2、子系统封装操作
(1)以下图所示的系统为例,它可以划分为三个部分,分别是信号输入、信号处理和信号输出。
(2)选中信号处理部分,按下Ctrl+G,或者点击菜单栏“Diagram”→“Subsystem & Model Reference”→“Create Subsystem from Selection”,即可将该部分封装成一个子系统。
(3)双击子系统模块,即可查看子系统内部的结构,其中输入输出端口的数量与子系统模块的输入输出端口的数量相对应。
3、直接创建子系统模块和输入输出模块
除了搭建完成后再封装子系统,还可以先创建子系统模块,然后双击子系统模块,编辑其内部,当需要增加输入或者输出时,直接在子系统模块中添加输入模块或者输出模块即可。
三、Ground及Terminator模块
1、Ground模块
当一个模块的输入端口没有输入信号时,其处于悬空状态,如果不加以处理,仿真时simulink软件会发出警告,而Ground接地模块的作用则是对没有输入信号的输入端口接地,以防止这些未连接的端口发出警告。
接地模块输出与其连接的端口相同数据类型的信号;接地块输出值为零的信号。
2、Terminator模块
当一个模块的输出端口没有连接其它模块时(Scope、子系统输出Out,这些模块它没有输出端口),其处于悬空状态,如果不加以处理,仿真时simulink软件会发出警告,而Terminator接地模块的作用则是对没有连接其它模块的输出端口进行封闭处理,以防止这些未连接的端口发出警告。
3、直接创建子系统模块和输入输出模块
除了搭建完成后再封装子系统,还可以先创建子系统模块,然后双击子系统模块,编辑其内部,当需要增加输入或者输出时,直接在子系统模块中添加输入模块或者输出模块即可。
四、常量及加减乘除模块
1、Constant常量模块
(1)Constant常量模块可以产生实数常量值,也可以产生复数常量值,该模块生成标量、向量或矩阵输出,具体取决于常值参数的维数、将向量参数解释为一维参数的设置。
(2)将Constant常量模块添加到模型文件中,双击它,可以打开其属性配置框,下图红框所示的就是Constant常量模块输出的信号值。(对于“Interpret vector parameters as 1-D”这个选项,在Constant value的内容不是矩阵的前提下,如果将其勾选,则表示按照Constant value输出向量/标量,否则按照Constant value输出矩阵/标量,一般都将其勾选)
2、Sum加减法模块
(1)该模块可实现标量、向量和矩阵的加减运算。
①如果所有输入都是非标量,那么它们需要有相同的维度。
②如果其中有部分输入是标量,其它输入是向量或者矩阵(需要有相同的维度),那么这个标量将会自动进行拓展,与其它输入的向量或者矩阵进行匹配。
(2)该模块的输入端有正负之分,默认当前“运算结果”为0,“+”输入表示该端口的量作为加数,“-”输入表示该端口的量作为减数;运算结果从输出端中输出。
(3)将加减法模块添加到模型文件中,双击它,可以打开其属性配置框,属性“List of signs”表示输入端口的符号排列,比如该加减法模块有两个输入端口,那么就有两个符号,其中每个符号各自代表其对应输入端口的量是作为加数还是减数,“+”对应加法,“-”对应减法,至于“|”符号可以不予理会,它的存在主要影响端口的排列。
3、Product乘除法模块
(1)该模块可实现标量、向量和矩阵的乘除运算。
①如果所有输入都是非标量,那么它们需要有相同的维度。
②如果其中有部分输入是标量,其它输入是向量或者矩阵(需要有相同的维度),那么这个标量将会自动进行拓展,与其它输入的向量或者矩阵进行匹配。
(2)该模块的输入端有乘除运算之分,默认当前“运算结果”为1,“×”输入表示该端口的量作为乘数,“÷”输入表示该端口的量作为除数,当输入量全为乘数时,模块仅显示一个“×”;运算结果从输出端中输出。
(3)将乘除法模块添加到模型文件中,双击它,可以打开其属性配置框,属性“Number of inputs”表示输入端口的数量,当该属性值为数字时默认所有端口的输入量作为乘数,如果希望一些输入量作为除数,属性“Number of inputs”的设置可以仿照加减法模块,比如该乘除法模块有两个输入端口,那么就有两个符号,其中每个符号各自代表其对应输入端口的量是作为乘数还是除数,“*”对应乘法,“/”对应除法。
(4)当输入量中有矩阵/向量时,需要考虑按元素进行矩阵点乘运算(Element-wise),还是按线性代数运算规则进行矩阵乘法运算(Matrix),不管采用哪种运算,都需要注意矩阵/向量维数的匹配。
五、总线及示波器模块
1、概述
(1)在计算机中,一般存在控制总线、数据总线等(如下图所示的Bus Creator),总线上的设备可以共享总线,而总线分配器则是负责管理和分配这些通过总线的信号,确保数据和控制的正确传输。(总线模块不建议经常使用,这里仅做简单介绍)
(2)示波器模块会显示输入端口的信号图象,如正弦波。
2、Bus Creator总线模块
(1)Bus Creator总线模块默认有两个输入端口,可通过更改其属性“Number of inputs”修改输入端口的数量。
(2)总线信号的分配方式:
①继承来自输入端口对应信号的名字。(较为方便,选中列表中的信号,点击“Find”即可知道它实际对应哪个输入信号)
②要求外界信号的名字与下图所示的名字列表相一致。(选中信号名,点击“Up”/“Down”可对它们进行位置的调整)
3、Scope示波器模块
(1)Scope示波器模块根据仿真时长显示其与模拟时间有关的输入。当启动仿真时,Scope窗口不会自动打开,但会将数据写入连接的Scope模块中,在仿真后打开Scope窗口(双击Scope模块),将显示Scope的输入信号。
(2)Scope示波器模块可以有多个输入,也就是可以具有多个坐标轴,并且所有轴具有共同的时域范围和独立的轴。要想添加Scope模块的输入端口数,可按下图所示操作,或者直接从其它模块的输出端向Scope模块拉线,Scope模块在输入端口全部被占用时会自动生成新的输入端口。
(3)Scope示波器模块允许调整显示的时间量和输入值的范围。
(4)当示波器有多个输入时,它会将不同的输入信号以不同颜色表示,示波器默认有六种信号显示颜色,当输入信号超过六个时,会出现两种不同信号用相同颜色表示的情况。
(5)右键坐标轴,选择“Configuration Properties ...”,可以修改坐标轴的范围以及标注等。
(6)在示波器的“View”菜单中激活“Legend”选项,可以添加图例,以提示不同颜色的曲线对应哪个输入信号。(左键点击图例可以隐藏对应信号,右键点击图例可以仅显示对应信号)
(7)Scope还提供测量工具,激活测量工具后可以像实物示波器一样,用差分光标获取两点之间的时间差等数据。
六、复用器与分路器模块
1、复用器与分路器的概念
(1)多路复用是将信息的多个信号流以单一的、复杂的信号的形式同时发送到一个载波上,然后在接收端恢复这些单独的信号的一种方法。
①模拟信号通常使用频分复用(FDM)进行复用,其中载波带宽被分成不同频宽的子信道,每个子信道同时并行地承载一个信号。数字信号通常采用时分复用(TDM)技术进行复用,其中多个信号在交替时隙中通过同一个信道传输。
②如果输入轮流使用输出通道(时分复用),那么输出带宽不需要大于任何输入的最大带宽。如果许多输入可以同时激活,则输出带宽必须至少等于所有同时激活的输入的总带宽。
(2)下图所示的是复用器(Multiplex)和分用器(Demultiplexer),A、B、C、D四个信号通过复用器输入,转换为一路信号X,分路器会对信号X解码,解码的规则由S1、S0决定,具体见真值表。
2、Demux分路器模块
(1)双击Demux分路器,可以修改分路器的输出端口数(分路器只有一个输入端口)。
(2)在MATLAB中,当输入分路器的信号是一个向量或者总线构成的信号,那么分路器的各个输出端口具体输出几个信号,这个是由工程师决定的,排序靠前的信号最先被分配(无论是向量还是总线信号,组成它们的信号都有排序),如果工程师希望由系统自动分配各输出端口的输出信号数量,那么就给输出端口分配“-1”个信号即可,系统会根据剩下未分配的信号尽可能地平均分给这些输出端口。
3、Mux复用器模块
(1)双击Mux复用器,可以修改复用器的输入端口数(复用器只有一个输出端口)。
(2)在MATLAB中,当输入复用器的信号是一个向量或者总线构成的信号,那么分路器的各个输入端口具体输入几个信号,这个是由工程师决定的,如果工程师希望由系统自动分配,可以忽视全部输入信号的组成,直接填写输入端口数即可。