在 Simulink 中给 Inport(输入端口)赋值的方法有很多种,取决于你的使用场景,比如是否是在测试模型、生成代码,还是在仿真时动态赋值。
下面是常见的一些 Inport 赋值方法:
1. 在顶层模型中连接信号源
这是最常见的方法,即直接在模型中连接一个信号源块,如:
- Constant(常数)
- Signal Builder
- From Workspace
- From File
- Sine Wave / Step / Pulse Generator 等信号发生器
- Simulink.Signal 对象
1.1. 在 MATLAB Workspace 中赋值(From Workspace)
在模型中使用 From Workspace
块
然后在 MATLAB 中定义变量,比如:
time = (0:0.01:10)';
data = sin(time);
input = [time, data];
在 From Workspace
块中设置变量名为 input
。
1.2. 用输入数据文件赋值(From File)
使用 .mat
或 .mdl
文件输入数据
使用 From File
块导入,或将数据加载到 workspace 后通过 From Workspace
块使用
1.3. 使用 Signal Editor 或 Signal Builder
Signal Editor 支持导入多个测试场景
Signal Builder 是早期版本用于设计输入信号的工具,也可以生成多个信号组合
1.4. 使用外部函数或 MATLAB Function 动态生成输入
可以在 MATLAB Function
块中通过逻辑生成一个信号,用于测试模型响应。
2. 用 Test Harness 或测试模型赋值
(适用于单元测试)
通过建立一个 test harness 或 test model,将上层的测试信号通过 Inport 传递进去。
常配合 Simulink Test 使用。
3. 用 Simulink.SimulationInput 脚本方式赋值
(推荐用于批量仿真)
in = Simulink.SimulationInput('your_model');
in = in.setExternalInput('input');
sim(in);
或者使用 .setVariable('varname', value)
给变量赋值。
4. 用外部控制器输入
(如 ROS、CAN、UDP)
用于 HIL(硬件在环)仿真或实时控制,输入通过外设传入 Inport。
5. 通过参数映射给 Inport
(适用于 Simulink Test 或快速切换输入)
设置 Inport 的信号名称,然后在参数化测试中映射不同变量或信号到该输入。