You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Matlab脚本提取Simulink模型中Display、Display2、Display3的输出

报错根因

sim函数的多返回值格式有固定规则:当使用多变量直接接收返回结果时,前两个返回值固定为仿真时间序列T、模型状态序列X,后续的返回值才对应模型根层级Outport模块的输出,你直接用3个变量接收返回值自然和要求的格式不匹配。

可行解决方法

方案1:添加根输出端口,直接从sim返回值提取

  • 打开Simulink模型,给Display、Display2、Display3的输入信号线各接1个根级Outport模块(位于Simulink > Sources库,直接拖到模型根画布即可),共需添加3个Outport。
  • 修改sim调用代码如下:
% 前两个返回值为固定的时间向量T、状态向量X,不需要X可以用~占位忽略
[T, ~, Display, Display2, Display3] = sim('test_lau.slx', t_stop, options);

运行后三个变量就对应三个Display的输出值/输出序列。

方案2:无需修改模型,仿真后直接读取Display模块属性

如果不想改动原模型加Outport,也可以仿真结束后通过get_param直接读取Display模块的显示值,代码如下:

% 先运行仿真
sim('test_lau.slx', t_stop, options);
% 读取三个Display模块的数值,注意模块路径要和你模型内的实际命名一致
Display = str2double(get_param('test_lau/Display', 'Value'));
Display2 = str2double(get_param('test_lau/Display2', 'Value'));
Display3 = str2double(get_param('test_lau/Display3', 'Value'));

如果需要提取全量时间序列而非最终显示值,可以给三个Display对应的输入信号勾选「Log signal data」选项,仿真结束后从仿真输出对象的logsout属性中提取对应信号的完整序列即可。


内容的提问来源于stack exchange,提问作者elle.delle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 13:45:01