【问题标题】:Input Parameters of a 'From Workspace' Block in SimulinkSimulink 中“From Workspace”模块的输入参数
【发布时间】:2015-12-03 08:40:47
【问题描述】:

我有一个 .mat 文件,它的结构已加载到工作区中。我创建了一个 simulink 模型并希望从工作区导入信号。 'From Workspace' 块的数据参数的输入值应该是什么。结构的名称是 Measurements,信号名称是 B_cal,它还有其他元素,如时间、名称、单位和值。我知道可以通过类似于以下命令的方式访问这些结构:

Measurements.B_cal.value

但我无法设置输入参数。谁能帮我解决这个问题?

【问题讨论】:

  • 不确定您的数据是什么样的,但我会尝试Measurements.B_cal

标签: matlab import signals simulink workspace


【解决方案1】:

通过 FromWorkspace 块使用结构有一些限制:

计算结果为以下之一的 MATLAB 表达式:

  • 一个 MATLAB 时间序列对象
  • MATLAB 时间序列对象的结构
  • 二维矩阵: 每个矩阵行的第一个元素是时间戳。 每行的其余部分是信号值的标量或向量。
  • 一个结构,有或没有时间,它包含: 1) 一个 signals.values 字段,其中包含一个信号值向量 2) 一个可选的 signals.dimensions 数组,其中包含信号的维度 3) 一个可选的时间向量,包含时间戳

您可以在help找到更多有用的信息。

因此,在您的情况下,您可以使用不同的方法。我举几个例子:

1) 以必要的格式定义您的struct

t = (1:10)'; %'
v = [6 9 3 1 7 0 7 3 8 1]'; %'
measure.time = t;
measure.signals.values = v;

这里的重要时刻:tv 必须是列!行将不起作用! 如果您需要使用多行数据,请使用多维v 并添加

measure.signals.dimentions = size(v,2); 

2) 你可以看到time 字段是可选的。如果没有,则需要在块中设置除 0 以外的采样时间,并清除插值数据,将最终数据值后的表单输出设置为外插值以外的值。此外,您需要定义时间字段:

mystruct.time = [];

3)如果你不想改变你的结构,你可以使用next:

t = (1:10)'; %'

并在 FromWorkspace 块的数据中设置:[t, Measurements.B_cal.value]

4) 有一些有用的方法:使用时间序列或仅使用矩阵。但如果你需要使用你的结构,这并不是你的实际情况。

【讨论】:

  • 是的,这就是我要找的...非常感谢 :) @Mikhail_Sam
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-22
  • 1970-01-01
相关资源
最近更新 更多