文章目录
- 1 引言
- 2 模块使用实例
- 2.1 In/Out模块
- 2.2 Constant模块
- 2.3 Scope/Display模块
- 2.4 Ground/Terminator模块
- 3 总结
1 引言
本文中博主介绍Simulink中最简单最基础的模块,包括In/Out模块(输入输出),Constant模块(常数),Scope/Display模块(显示),Ground/Terminator。这些构成了最简单的输入输出,可以搭建一个模型的最小框架。因为比较简单所以不研究其代码生成。
2 模块使用实例
2.1 In/Out模块
In/Out模块通常用于模型顶层代表整个模型的输入和输出,或者某个子系统中的输入和输出。In/Out模块并不具备实际的数值大小,无法直接用于仿真测试,而是一种抽象出来的输入输出模块。后文介绍其基本用法和注意点。
1)新建一个Simulink模型<Module_Basics.slx>,在模型中拖入In/Out模块;
可以简单地看到,In模块是输入,所以右侧可以引出信号线接到后面的模块,In模块是输出,所以左侧可以接收其他模块输出的信号线。椭圆形内都有一个数字,当模型或者子系统中有多个输入输出时,可以调整顺序。通常来说需要对In/Out模块进行重命名,以便直观地知道其物理含义。
2)双击In模块或Out模块,可以进行配置,例如配置Port Number,即1)中所说的顺序;
3)在Signal Attribute页面中,比较重要的配置是Data type和Port dimensions,分别表示数据类型和端口维度,例如数据类型配置成single类型,维度配置成2;
这表示In模块是单精度浮点型,以及是个长度为2的数组。这一点对于In模块十分重要,尤其是模型顶层的In模块,因为它能够确定好输入的基本信息。对于Out模块一般保持默认,由前方其他模块计算结果得出。
4)在上方工具栏的Information Overlays中选中Singal Dimensions和Base Data Types就可以在模型中的信号线上显示配置的效果;
2.2 Constant模块
Constant模块是一个输出常数的模块。
1)在模型中拖入Constant模块,模块中默认的常数值是1,右侧带有一个Port口可以输出信号线;
2)双击该模块进入配置,可以修改常数数值;
同理,可以在Signal Attribute页面中配置数据类型;
默认的配置是继承与Constant模块里面数值的类型,由于数值是1,所以该类型是double类型。
3)在数值中直接体现出类型是一个好的习惯,例如将数值改为single(1),这样就能在模块中直接体现类型了;
4)如果输出数组,可以直接在Constant Value中写入数组;
2.3 Scope/Display模块
Scope与Display模块都可以用于显示输出的数值,区别在于Scope可以显示一段时间的的数值并以图形展示,Display模块只可显示当前数值;
1)在模型中拖入Scope模块和Disp模块,并用一个Constant模块作为其输入;
2)双击Scope模块,可以看到其中的时间轴(横轴)和数值轴(纵轴),首先需要配置一下Configuration Properties和Style;
在Configuration Properties中将Sample time改为-1以外的值,这是因为模型当前设置的采样时间是-1,所以Scope模块并不知道应该以多少的采样时间来绘图,必须指定时间;
在Style中将Marker改为none,表示仅显示折线;
3)Display模块不用配置,保持默认,但是可以注意一点,可以配置该模块显示的数值为10进制或者是其他进制;
4)关闭配置,运行模型可以得到显示效果;
Display模块直接显示了数值,Scope模块需要双击进去观察;
由于输入的是常量,Scope模块中显示保持为1;
5)除了上述的直观演示,对于Scope模块还有更多常用的配置,例如如果需要接入多个信号,可以在Configuration Properties中设置 Number of input ports,并点击右侧的Layout按钮改变显示视图数量以及布局,例如改成3个输入信号,布局改成3行;
在模型中Scope模块就会多出3个输入口。
仿真之后也会以三张视图显示;
6)在Scope界面上方的工具栏可以进行缩放,测量等操作,比较简单就不演示了;
2.4 Ground/Terminator模块
Ground/Terminator模块俗称为接地模块,常用于一些暂时用不到的信号线和预留的接口。模块如下所示:
例如某一个In模块暂时用不到,就可以线放在模型中接入Terminator模块中。Ground/Terminator模块的使用不会影响模型仿真或者代码生成。
3 总结
本文讲了一些基本模块的使用,其实之前已经写了大量的Simulink内容,但是忽略了最基本的东西,所以回来补充一下。
>>返回个人博客总目录