Matlab simulink建模与仿真 第八章(数学运算库)【下】

参考视频: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模块正好相反,它会根据输入的实部和虚部得出标准形式的复数并输出之。(可以选择实部从外部输入,虚部在模块中配置,也可以选择虚部从外部输入,实部在模块中配置)

相关推荐
轻口味16 分钟前
命名空间与模块化概述
开发语言·前端·javascript
晓纪同学1 小时前
QT-简单视觉框架代码
开发语言·qt
威桑1 小时前
Qt SizePolicy详解:minimum 与 minimumExpanding 的区别
开发语言·qt·扩张策略
飞飞-躺着更舒服1 小时前
【QT】实现电子飞行显示器(简易版)
开发语言·qt
明月看潮生1 小时前
青少年编程与数学 02-004 Go语言Web编程 16课题、并发编程
开发语言·青少年编程·并发编程·编程与数学·goweb
明月看潮生1 小时前
青少年编程与数学 02-004 Go语言Web编程 17课题、静态文件
开发语言·青少年编程·编程与数学·goweb
Java Fans1 小时前
C# 中串口读取问题及解决方案
开发语言·c#
盛派网络小助手2 小时前
微信 SDK 更新 Sample,NCF 文档和模板更新,更多更新日志,欢迎解锁
开发语言·人工智能·后端·架构·c#
Chinese Red Guest2 小时前
python
开发语言·python·pygame
一棵星2 小时前
Java模拟Mqtt客户端连接Mqtt Broker
java·开发语言