参考视频:simulink1.1simulink简介_哔哩哔哩_bilibili
六、圆整函数及最值函数模块
1、Rounding Function圆整函数模块
圆整函数模块的功能是将小数转换为整数,它提供了四种取整方式:
①floor:向下取整,输出距离输入小数在负无穷方向上最近的整数。
②ceil:向上取整,输出距离输入小数在正无穷方向上最近的整数。
③round:四舍五入,输出距离输入小数在无穷方向上最近的整数,输入为负数则选择负无穷方向,输入为正数则选择正无穷方向。
④fix:输出距离输入小数在朝零方向上最近的整数。
2、MinMax最值函数模块
(1)使用该模块前需要选择使用最大值函数还是最小值函数,其功能也显而易见,如果选择最大值函数,该模块会从若干输入值中选择最大的数值并将其输出,如果选择最小值函数,该模块会从若干输入值中选择最小的数值并将其输出。
(2)该模块可以配置输入端口数。
①只有一个输入端口时,该模块的输入一般是向量(最多是一维矩阵,否则会报错)或者是在同一根信号线上的若干个信号,模块会根据选择的函数从其中提取一个最值并输出之。
②当有多个输入端口时,各输入需要有相同的维度和尺寸,模块会根据选择的函数输出一个与输入有相同维度和长度的数据。
3、MinMax Running Resettable最值运行中复位模块
(1)使用该模块前需要选择使用最大值函数还是最小值函数。
(2)该模块有输入端口u和输入端口R,当R为逻辑真时,该模块的输出复位至初始条件Initial condition,否则输出为u从最后一次复位(启动仿真也算一次复位)到当前时刻为止的最大/小值。
七、三角函数及代数约束模块
1、Trigonometric Function三角函数模块
同数学函数模块一样,三角函数模块也提供了若干种函数(其中atan2有两个参数,这里不对其进行详细介绍),该模块会根据输入参数和所选函数计算输出值。
2、Sine Wave Function正弦波函数模块
(1)正弦波可认为是一个输出随时间变化的函数图像,该模块有一个输入端口,这个端口用于输入时钟信号(这里的"时钟信号"并不是脉冲信号,在第十五章中将会进行介绍),这个时钟信号用来作为正弦波的"计时器"。
(2)正弦波的形式有两种:
①基于时间(Time based):正弦波根据随时间进行连续的变化,不过当发生数值运算导致运行时间较长的情况时,可能会有误差。
②基于采样(Sample based):每个采样时刻正弦波会进行一次离散的变化,可以设置正弦波在每个周期中的采样点个数(Samples per period),这是在间接设置正弦波的周期大小。
(3)可对正弦波的参数进行设置,如幅值(Amplitude)、偏移(Bias)等。
3、Algebraic Constraint代数约束模块
(1)代数约束模块的输入是一个包含z的多项式,该模块根据约束条件Constraint(f(z)=0或f(z)=z)会求解出未知数z并将其输出,这也意味着输入中会包含输出,所以该模块通常会处在一个闭环中。
(2)举例:求解方程
八、分配模块和变形模块
1、Assignment分配模块
(1)分配模块的功能是对输入矩阵中某些指定位置的元素进行替换,Y0端口输入的是原始矩阵,U端口输入的是替换元素。
(2)输出数据的维度需要手动配置。
(3)选择输出数据的维度以后,需要配置被替换元素在原始矩阵中的位置,其索引方式有基于0(Zero-based)和基于1(One-based)两种,也就是第一个元素的下标为0或1,如下图所示,下图的索引方式为基于1,被替换元素在矩阵中的位置为第一行第二列。
(4)分配模块不仅可以只替换原始矩阵的一个元素,还可以同时替换原始矩阵中的多个元素,具体有以下几种办法:
①默认的下标选项为下标向量(Index vector),在此选择方式下,可以用向量的方式选中多个位置,向量的元素为用于索引的下标。
②下标选项可以更改为"Assign all",这样就可以直接选中整个维度上的元素。
③下标选项可以更改为"Starting index",这样,同一个维度中从配置的下标开始往后的元素将全部被选中(这里被选中不代表一定会被替换),输入U需要是一个各维度上元素数均不大于被选中子矩阵的矩阵,分配模块会从被选中子矩阵的第一行第一列开始,将输入U的矩阵替换进原始矩阵中。
(5)用于索引元素的下标,不仅可以通过双击模块进行配置,还可以从外部输入,只要将下标选项更改为端口模式即可。
2、Reshape变形模块
(1)变形模块的作用是将输入的矩阵进行维度上的变换,可以认为是将其中的元素按列的顺序全部排成一维向量,然后根据配置的输出维度和输出尺寸进行重新排列,输出维度可选择自定义方式(Customize),此种方式包含前三种方式,在Output dimensions中写明输出尺寸即可。
(2)除了在模块中配置输出尺寸外,还可以让外部输入Ref决定输出尺寸,输出维度选择"Derive from reference input port",变形模块会直接参照Ref的尺寸对输入U进行处理,至于Ref的内容,变形模块并不关心。
九、拼接模块
1、Matrix Concatenate矩阵拼接模块
(1)矩阵拼接模块的作用已在其名称中体现,该模块有向量模式(Vector)和多维数组模式(Multidimensional array)两种模式,在向量模式中,输入端口输入的数据只能是一维数据,输出的数据要么是单行要么是单列,而多维数组模式输出的数据不局限于单行/单列,而且可以指定输入矩阵的拼接方式,以二维矩阵为例,Concatenate dimension = 1时输入的矩阵在竖直方向上进行拼接,Concatenate dimension = 2时输入的矩阵在水平方向上进行拼接。
(2)多维数组模式下,两个矩阵能拼接的前提是尺寸匹配,比如一个两行三列和一个三行三列的矩阵,它们是不能在水平方向进行拼接的。
2、Vector Concatenate向量拼接模块
(1)向量拼接模块的作用已在其名称中体现,该模块有向量模式(Vector)和多维数组模式(Multidimensional array)两种模式,在向量模式中,输入端口输入的数据只能是一维数据,输出的数据要么是单行要么是单列,而多维数组模式输出的数据不局限于单行/单列,而且可以指定输入矩阵的拼接方式,以二维矩阵为例,Concatenate dimension = 1时输入的矩阵在竖直方向上进行拼接,Concatenate dimension = 2时输入的矩阵在水平方向上进行拼接。
(2)向量模式下,列向量只能与列向量合并,行向量只能与行向量合并,列向量与行向量在没有转置的前提下不能够相互合并。
十、复数相关模块
1、Complex to Magnitude-Angle标准复数转换幅值-相角模块
该模块输入是一个复数,它会将该复数的幅值和相角(弧度制)分别进行输出。(可以选择仅输出幅值或者相角)
2、Magnitude-Angle to Complex幅值-相角转换标准复数模块
该模块的作用与Complex to Magnitude-Angle模块正好相反,它会根据输入的幅值和相角(弧度制)得出标准形式的复数并输出之。(可以选择幅值从外部输入,相角在模块中配置,也可以选择相角从外部输入,幅值在模块中配置)
3、Complex to Real-Imag标准复数转换实部-虚部模块
该模块输入是一个复数,它会将该复数的实部和虚部分别进行输出。(可以选择仅输实部或者虚部)
4、Real-Imag to Complex实部-虚部转换标准复数模块
该模块的作用与Complex to Real-Imag模块正好相反,它会根据输入的实部和虚部得出标准形式的复数并输出之。(可以选择实部从外部输入,虚部在模块中配置,也可以选择虚部从外部输入,实部在模块中配置)