Simulink建模基础: 基本模块的使用

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内容,但是忽略了最基本的东西,所以回来补充一下。

>>返回个人博客总目录

### Simulink 中 Constant 模块仿真异常解决方案 当遇到 Simulink 的 `Constant` 模块在仿真过程中出现问题时,可以从多个角度排查并解决问题。 #### 1. 参数配置检查 确保 `Constant` 模块的参数设置正确无误。特别是对于常量值的选择以及输出信号的数据类型设定应符合整个系统的预期[^3]。如果这些参数不匹配下游模块的需求,则可能导致仿真错误或不符合预期的结果。 #### 2. 数据类型兼容性验证 确认 `Constant` 输出端连接的所有后续处理单元能够接受该特定数据类型的输入。有时即使看起来简单的数值传递也可能由于浮点数与整型之间的转换而引发隐含的问题。因此建议仔细核对路径上各节点间的数据交换特性[^1]。 #### 3. 初始条件和采样时间同步 注意初始化阶段可能存在的不同步现象——即某些部分已经开始运行但其他关联组件尚未准备好接收来自 `Constant` 的初始脉冲或静态电平。另外还需保证所有涉及的时间轴(如离散事件驱动 vs 连续变化)保持一致协调工作模式下不会互相干扰[^2]。 #### 4. 断开重连测试法 尝试暂时断开 `Constant` 和其直接相连的第一个元件间的连线关系,单独观察两者的独立行为表现;然后再逐步恢复连接直至定位到具体引起冲突的地方为止。这种方法有助于缩小问题范围从而更精准地找到根源所在。 ```matlab % MATLAB命令窗口调试示例 set_param('YourModelName/Constant', 'Value', 'new_value'); % 修改常量值 disp(get_param(gcb, 'DataType')); % 查看当前数据类型 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

chhttty

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

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

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

打赏作者

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

抵扣说明:

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

余额充值