Simulink 最基础教程(三)常用模块

本文介绍了Simulink中的关键模块,如源模块(如clock和constant)、运算模块(包括线性/离散传输函数、比较逻辑等)、终点模块(scope)、流程控制模块(如switch)和信号线属性管理。这些模块有助于初学者理解并构建复杂的系统模型。
摘要由CSDN通过智能技术生成

3.1源模块

在这里插入图片描述
1)clock
这个模块的输出是 y(t)=t。很多信号都是和时间 t 相关的,例如正弦波信号,可以写成 sin(w*t) 的形式。虽然软件也提供了正弦波模块,但如果用 clock 模块+三角运算模块,对初学者而言,也是很好的做法,至少减轻了很多负担:基于几个模块就可以建立大部分信号源。

2)constant
模块的输出是 y(t)=value,其中value的默认值是1。这里引出一个“模块参数”的概念。双击模块后,弹出的对话框里,所有可以设定的量,就称为模块参数,比如 constant 模块最重要的模块参数,就是 value。需要注意的是,这个value可以写1*1的标量,也可以写向量或者矩阵。在 signal attributes 标签下,还有其他的模块参数,比如之前一直强调的 data type,就可以设定后续信号线上的数据类型。
在这里插入图片描述
3)repeating sequence
只看模块图片,一般人会以为这是“锯齿波”,但其实这个模块的功能远不止如此。双击模块可以看到 time 和 output 两个 value,填入两个等长的向量即可。效果上,相当于输出一个信号 plot(time,output) 的周期延拓。和 plot 的思路一样,只要能用描点法描述的函数波形,都能用这个模块实现。
在这里插入图片描述

3.2运算模块

1)连续传函
自动控制原理里,会大量用到线性时不变系统,这些模块都在这个库里,用状态方程描述的state-space,用传递函数描述的 transfer Fcn,以及其中的特例,积分模块。
在这里插入图片描述
2)离散传函
与连续传函对应的,是离散传函。特别的,unit delay模块。这里对应1.4.2求解常微分方程组的例子,如果是求解离散系统的迭代方程 x(k+1)=f(x(k),u(k),t(k)),那么这个过程就是拖拽一堆unit delay模块,将他们的输出定义为 x(k),搭建函数 f 后,再将结果交给 unit delay 的输入。
在这里插入图片描述
3)比较和逻辑运算
主要是两个模块,Logical Operator用来实现与或非的运算,双击之后,除了 operator 这个模块参数外,还有一个 icon shape,用来调整模块的外观,可以让模块看起来更像逻辑门。Relational Operator是比较模块,一般使用时,先将信号线连到比较模块,然后再交给与或非运算,用来实现 MATLAB 中的 if 逻辑表达式。
在这里插入图片描述
4)数学运算
这个库涵盖了加减乘除、三角、指数等常用数学符号,基本上初等函数都在这里了。Add模块双击后,会有模块参数 list of signs,用于控制输入的个数和其运算的规则。例如三个加号,那么输出信号就是三个信号相加的结果。同样的逻辑也适用于divide模块。对乘除法模块有一些额外说明,就是multiplication这个模块参数,可以选择点乘,也可以选叉乘。这两种乘法与 MATLAB 中的定义一样。剩下的几个模块,都是双击后能有多种选择,都是初等函数。
在这里插入图片描述

3.3终点模块

暂时只需要知道 scope 就足够日常使用了。双击 scope后,有几个需要注意的地方
1)小齿轮按钮,可以调节输入个数,从而一个模块观察多个输入。
2)工具栏上有缩放,用来观察特定区域的信号
3)有个logging限制,可以只显示信号线 y(t) t=最后一段时间,的时域波形。
在这里插入图片描述

3.4流程控制模块

MATLAB里说的流程控制,一般是指for,while,if,switch这些,Simulink里要实现 for 和 while 比较少见,但实现 if 的情况还是很多的,这时,需要 switch 模块。这个模块的原理是根据第二个信号的值,来判断输出第一个信号还是第三个信号,相当于MATLAB的代码
if u2>th
Out=u1
else
Out=u3
end
在这里插入图片描述

3.5 信号线属性模块

在 2.3 中有讲,信号线的基本属性是采样时间、维度、数据类型,这里有两个模块可以强制信号线的采样时间和数据类型,当遇到关于信号线属性不匹配的报错时,可以用这两个模块解决。例如图中,假设左边模块输出 int8 数据类型,而右边模块希望输入是 int16 数据类型,这样直接连线会造成报错,说数据类型不匹配。此时加入一个 convert,将左边的 int8 输出,转成 int16,就满足了右边模块的要求。
在这里插入图片描述
在这里插入图片描述

3.6小结

Simulink提供了如此众多的模块,就如同 MATLAB提供了如此众多的函数一般,这里只是介绍了一些我自认为常用的模块,更多模块还是要边用边学。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

凉亭下

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

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

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

打赏作者

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

抵扣说明:

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

余额充值