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

参考视频:simulink1.1simulink简介_哔哩哔哩_bilibili

一、数学运算库中的模块概览

二、与加减相关的模块

1、Add加法模块与Subtract减法模块

(1)Add模块与Subtract模块的功能基本完全相同,不同的是它们的默认配置不一样,Add模块默认有两个加数输入端口,而Subtract默认有一个减数和一个被减数输入端口。

(2)以Add模块为例,双击Add模块,可以通过修改“Icon shape”属性设置模块的形状为圆形(round)或者方形(rectangular)。

(3)以Subtract模块为例,双击Subtract模块,属性“List of signs”表示输入端口的符号排列,比如下图的Subtract模块有两个输入端口,那么就有两个符号,其中每个符号各自代表其对应输入端口的量是作为加数还是减数,“+”对应加法,“-”对应减法,至于“|”符号,它起到一个占位的作用(可认为把它也当成一个输入端口,不过这个输入端口是被堵死的)。

(4)如果将模块的“List of signs”配置成一个加号或者一个减号,那么模块将会实现求和功能或者求和的相反数功能,这时模块的输入虽然只有一个端口,但往往不止一个操作数,这个输入端口可能连接一个矩阵输入,亦或者是一根有多个信号传输的信号线。

2、Sum of Elements累加模块

(1)该模块只有一个输入端口,其作用是将输入的所有信号量全部累加,然后将结果输出。

(2)该模块实际上和Add模块、Subtract模块是差不多的,只是初始的默认配置不同,累加模块的属性“List of signs”默认配置为“+”。

(3)相比于加法模块和减法模块,累加模块可以设置运算的维度,默认情况下“Sum over”为All dimensions,即所有维度进行求和,简单说就是所有元素全部求和,如果将其更改为Specified dimension,那么可以指定元素在某个维度分别进行相加(对二维输入而言,可以按列求和或者按行求和,维度分别为1和2)。

3、Sum求和模块

        Sum模块实现的功能和Add模块完全相同,甚至基本配置也是一模一样,除了默认形状为圆形、输入端口排列为“三缺一”以外,这里不再赘述。

4、Bias偏移模块

        该模块的作用是对输入信号u追加一个偏移量Bias(可正可负),然后将结果输出。

三、与乘除相关的模块

1、Gain增益模块

(1)增益模块将输入u乘以一个常量K(增益),然后将结果输出,输入和增益都可以是标量、矢量或矩阵。

(2)通过配置乘法参数,可以指定增益模块的乘法规则(主要针对乘法运算中有操作数为向量或矩阵时,可以选择点乘、增益左乘输入、增益右乘输入等)。

2、Slider Gain滑动增益模块

        相比于普通的增益模块,滑动增益模块可通过拖动滑块修改增益系数,为此需要设置滑动增益模块增益系数的上限(High)和下限(Low)。

3、Product乘法模块和Divide除法模块

(1)两个模块均可实现标量、向量和矩阵的乘除运算,它们可实现的功能可以说完全一样,只是默认配置略有差别,下面以Product模块为例进行介绍,并将其称为乘除法模块。

(2)该模块的输入端有乘除运算之分,默认当前“运算结果”为1,“×”输入表示该端口的量作为乘数,“÷”输入表示该端口的量作为除数,当输入量全为乘数时,模块仅显示一个“×”;运算结果从输出端中输出。

(3)将乘除法模块添加到模型文件中,双击它,可以打开其属性配置框,属性“Number of inputs”表示输入端口的数量,当该属性值为数字时默认所有端口的输入量作为乘数,如果希望一些输入量作为除数,属性“Number of inputs”的设置可以仿照加减法模块,比如该乘除法模块有两个输入端口,那么就有两个符号,其中每个符号各自代表其对应输入端口的量是作为乘数还是除数,“*”对应乘法,“/”对应除法。

(4)当输入量中有矩阵/向量时,需要考虑按元素进行矩阵点乘运算(Element-wise),还是按线性代数运算规则进行矩阵乘法运算(Matrix),不管采用哪种运算,都需要注意矩阵/向量维数的匹配。

①如果所有输入都是非标量,那么它们需要有相同的维度。

②如果其中有部分输入是标量,其它输入是向量或者矩阵(需要有相同的维度),那么这个标量将会自动进行拓展,与其它输入的向量或者矩阵进行匹配。

4、Product of Elements连乘模块

(1)当Product模块或者Divide模块的输入只有一个乘数端口时,它们都会转变为连乘模块;当Product模块或者Divide模块的输入只有一个除数端口时,它们都会转变为连除模块(不过模块库中并没有连除模块,为了方便称呼,这里把它也算作连乘模块)。

(2)连乘模块和累加模块类似,不同的是连乘模块是对所有输入信号按顺序做乘法或除法。

(3)相比于乘法模块和除法模块,连模块可以设置运算的维度,默认情况下“Multiply over”为All dimensions,即所有维度进行连乘/连除,简单说就是所有元素全部连乘/连除,如果将其更改为Specified dimension,那么可以指定元素在某个维度分别进行连乘/连除(对二维输入而言,可以按列连乘/连除或者按行连乘/连除,维度分别为1和2)。

5、Dot Product点乘模块

        该模块可求出两个输入向量的数量积(两个向量的模相乘,再乘以它们夹角的余弦值),并输出之。

四、几种单目运算模块

1、Unary Minus单目减运算模块

        该模块的作用是将输入信号值取相反数,然后输出之。(尽量避免溢出的情况,比如16位有符号整型数据-32768,取反后是不能表示出+32768的)

2、Abs绝对值/求模模块

        该模块的作用是将输入信号取绝对值/取模,然后输出之。(尽量避免溢出的情况,比如int16类型的数据-32768,取绝对值后是不能表示出+32768的)

3、Sign符号模块

        该模块只有一个输入端口,当输入信号大于0时Sign输出1,当输入信号等于0时Sign输出0,当输入信号小于0时Sign输出-1。

4、Weighted Sample Time Math加权采样时间运算模块

(1)该模块可以将输入信号u加、减、乘或除以加权采样时间,然后将结果输出,或仅输出加权采样的时间或加权采取率(加权采样的时间的倒数)。

(2)所谓加权采样时间,就是采样时间Ts乘以权值w,采样时间在仿真配置中设置。

五、数学函数和多项式模块

1、Math Function数学函数模块

(1)数学函数模块的功能是将输入作为函数参数,通过运算后将结果输出。

(2)数学函数模块提供若干种函数选择,有exp(以e为底的指数函数)、log(以e为底的对数函数)、10^u(以10为底的指数函数)、log10(以10为底的对数函数)、magnitude^2(求输入的模平方)、square(求输入的平方)、pow(输入u为底数,输入v为指数)、conj(求共轭)、reciprocal(求输入的倒数)、hypot(求两个输入的平方之和的平方根)、rem(求两个输入做除法的余数,余数的符号与被除数相同)、mod(求两个输入做除法的余数,余数的符号与除数相同)、transpose(对输入的矩阵做转置)、hermitian(求输入矩阵的埃尔米特矩阵)。

(3)模块输出信号的数据类型可选择自动(auto)、实数(real)和复数(complex)。

2、Polynomial多项式模块

(1)使用多项式模块时需要为其配置多项式系数,多项式系数按照降幂排列(即次数较高项的系数在前),组成一个矩阵。

(2)多项式模块仅有一个输入,模块根据多项式系数矩阵进行相应的计算,然后将结果输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zevalin爱灰灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值